/* =========================================================
   PROFESSOR DINIZ — LOJA
   loja.css
========================================================= */

:root{
  --green-dark:#171b12;
  --green:#262b1d;
  --green-soft:#343a29;
  --gold:#b89a5a;
  --gold-light:#ebcd78;
  --cream:#f5f1e7;
  --white:#ffffff;
  --text:#222222;
  --text-soft:#666666;
  --line:#e7dfd1;
  --background:#f7f6f1;
  --card:#ffffff;
  --shadow:0 18px 45px rgba(18,22,14,.08);
  --container:1200px;
}

/* =========================================================
   RESET
========================================================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:100px;
}

body{
  margin:0;
  font-family:"Inter",sans-serif;
  color:var(--text);
  background:var(--background);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

body,
button,
input{
  font-family:"Inter",sans-serif;
}

img{
  display:block;
  max-width:100%;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input{
  font:inherit;
}

button{
  cursor:pointer;
}

.section-container{
  width:min(1200px,calc(100% - 40px));
  margin:auto;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* =========================================================
   HEADER
   EXATAMENTE O MESMO PADRÃO DA PÁGINA PRINCIPAL
========================================================= */

.site-header{
  position:sticky;
  top:0;
  z-index:999;
  width:100%;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  box-shadow:none;
}

.header-container{
  width:min(1200px,calc(100% - 40px));
  height:82px;
  margin:auto;

  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* LOGO */

.site-header .brand{
  display:flex;
  align-items:center;
  flex-shrink:0;

  padding:0;
  margin:0;

  background:transparent;
  border:0;
  border-radius:0;
}

.site-header .brand img{
  height:50px;
  width:auto;
  max-height:50px;

  display:block;
  object-fit:contain;

  background:transparent;
}

/* MENU */

.main-nav{
  display:flex;
  align-items:center;
  gap:28px;
  background:transparent;
}

.main-nav a{
  text-decoration:none;
  color:var(--text);

  font-family:"Inter",sans-serif;
  font-size:14px;
  font-weight:600;

  letter-spacing:normal;
  line-height:normal;

  transition:color .2s ease;
}

.main-nav a:hover{
  color:var(--gold);
}

.main-nav a::after{
  display:none;
  content:none;
}

/* =========================================================
   BOTÃO MOBILE
========================================================= */

.menu-toggle{
  display:none;
}

/* =========================================================
   HERO
========================================================= */

.store-hero{
  position:relative;

  min-height:540px;

  display:flex;
  align-items:center;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 72% 35%,
      rgba(184,154,90,.12),
      transparent 30%
    ),
    linear-gradient(
      115deg,
      #151910 0%,
      #242a1c 58%,
      #171b12 100%
    );
}

.store-hero::before{
  content:"";

  position:absolute;

  right:-80px;
  top:-100px;

  width:570px;
  height:570px;

  border:1px solid rgba(184,154,90,.16);

  transform:rotate(45deg);
}

.store-hero::after{
  content:"";

  position:absolute;

  right:13%;
  bottom:-250px;

  width:470px;
  height:470px;

  border:1px solid rgba(184,154,90,.12);

  transform:rotate(45deg);
}

.store-hero-content{
  position:relative;
  z-index:2;

  width:min(1200px,calc(100% - 40px));

  margin:auto;

  padding:90px 0;
}

.eyebrow,
.section-label{
  display:block;

  margin-bottom:18px;

  color:var(--gold);

  font-size:11px;
  font-weight:800;

  letter-spacing:.24em;
  text-transform:uppercase;
}

.store-hero h1{
  max-width:800px;

  color:var(--white);

  font-size:clamp(46px,6vw,82px);

  line-height:.98;

  letter-spacing:-.055em;

  font-weight:300;
}

.store-hero h1 strong{
  display:block;

  color:var(--gold-light);

  font-weight:800;
}

.store-hero p{
  max-width:660px;

  margin-top:30px;

  color:rgba(255,255,255,.7);

  font-size:17px;

  line-height:1.75;
}

.hero-button{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:52px;

  margin-top:34px;

  padding:0 30px;

  background:var(--gold);

  color:#171910;

  font-size:13px;
  font-weight:800;

  letter-spacing:.05em;

  transition:
    transform .2s ease,
    background .2s ease;
}

.hero-button:hover{
  background:var(--gold-light);
  transform:translateY(-2px);
}

/* =========================================================
   INTRODUÇÃO
========================================================= */

.store-intro{
  padding:105px 0 65px;
}

.store-intro h2{
  max-width:820px;

  font-size:clamp(38px,5vw,62px);

  line-height:1.04;

  letter-spacing:-.045em;
}

.store-intro h2 span{
  color:var(--gold);
}

.store-intro p{
  max-width:620px;

  margin-top:24px;

  color:var(--text-soft);

  font-size:17px;
}

/* =========================================================
   PESQUISA E FILTROS
========================================================= */

.catalog-controls{
  padding:0 0 45px;
}

.search-box{
  margin-bottom:24px;
}

.search-box input{
  width:100%;
  height:62px;

  padding:0 22px;

  border:1px solid var(--line);

  outline:none;

  background:var(--white);

  color:var(--text);

  font-size:15px;

  transition:
    border-color .2s ease,
    box-shadow .2s ease;
}

.search-box input::placeholder{
  color:#999b94;
}

.search-box input:focus{
  border-color:var(--gold);

  box-shadow:0 0 0 3px rgba(184,154,90,.09);
}

.filters{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}

.filter-button{
  min-height:40px;

  padding:0 17px;

  border:1px solid var(--line);

  background:transparent;

  color:#676960;

  font-size:12px;
  font-weight:700;

  transition:all .2s ease;
}

.filter-button:hover{
  border-color:var(--green);
  color:var(--green);
}

.filter-button.active{
  border-color:var(--green-dark);

  background:var(--green-dark);

  color:var(--white);
}

/* =========================================================
   CATÁLOGO
========================================================= */

.catalog-section{
  padding:20px 0 115px;
}

.catalog-heading{
  display:flex;

  align-items:flex-end;
  justify-content:space-between;

  gap:30px;

  margin-bottom:35px;

  padding-bottom:22px;

  border-bottom:1px solid var(--line);
}

.catalog-heading .section-label{
  margin-bottom:8px;
}

.catalog-heading h2{
  font-size:clamp(30px,4vw,44px);

  line-height:1.1;

  letter-spacing:-.035em;
}

.product-count{
  flex-shrink:0;

  color:var(--text-soft);

  font-size:13px;
  font-weight:700;
}

.products-grid{
  display:grid;

  grid-template-columns:repeat(4,minmax(0,1fr));

  gap:34px 22px;
}

/* =========================================================
   PRODUTOS
========================================================= */

.product-card,
.produto-card{
  min-width:0;
}

.product-image,
.produto-imagem{
  position:relative;

  overflow:hidden;

  width:100%;

  aspect-ratio:1 / 1;

  background:var(--green-dark);

  box-shadow:var(--shadow);
}

.product-image img,
.produto-imagem img{
  width:100%;
  height:100%;

  object-fit:cover;

  transition:transform .45s ease;
}

.product-card:hover .product-image img,
.produto-card:hover .produto-imagem img{
  transform:scale(1.025);
}

.product-number{
  position:absolute;

  top:13px;
  left:13px;

  z-index:2;

  display:flex;

  align-items:center;
  justify-content:center;

  min-width:38px;
  height:28px;

  padding:0 9px;

  background:rgba(18,21,14,.88);

  color:var(--gold-light);

  font-size:10px;
  font-weight:800;

  letter-spacing:.08em;
}

.product-content,
.produto-conteudo{
  padding:20px 2px 0;
}

.product-category,
.produto-numero{
  display:block;

  margin-bottom:7px;

  color:var(--gold);

  font-size:10px;
  font-weight:800;

  letter-spacing:.15em;

  text-transform:uppercase;
}

.product-content h3,
.produto-conteudo h3{
  min-height:48px;

  color:var(--text);

  font-size:18px;

  line-height:1.3;

  letter-spacing:-.02em;
}

.product-method,
.produto-subtitulo{
  min-height:23px;

  margin-top:6px;

  color:var(--text-soft);

  font-size:13px;
}

.produto-formato{
  margin-top:8px;

  color:#8a8c84;

  font-size:11px;
  font-weight:700;

  text-transform:uppercase;

  letter-spacing:.06em;
}

.product-footer,
.produto-footer{
  display:flex;

  align-items:flex-end;
  justify-content:space-between;

  gap:15px;

  margin-top:20px;

  padding-top:17px;

  border-top:1px solid var(--line);
}

.product-price small{
  display:block;

  margin-bottom:2px;

  color:#8a8c84;

  font-size:10px;
  font-weight:700;

  text-transform:uppercase;

  letter-spacing:.08em;
}

.product-price strong,
.produto-preco{
  color:var(--green-dark);

  font-size:23px;

  line-height:1;
}

.product-button,
.btn-comprar{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:42px;

  padding:0 16px;

  border:1px solid var(--green-dark);

  background:var(--green-dark);

  color:var(--white);

  font-size:11px;
  font-weight:800;

  letter-spacing:.04em;

  transition:all .2s ease;
}

.product-button:hover,
.btn-comprar:hover{
  border-color:var(--gold);

  background:var(--gold);

  color:var(--green-dark);
}

/* =========================================================
   SEM RESULTADOS
========================================================= */

.no-results,
.nenhum-resultado{
  padding:70px 20px;

  text-align:center;

  border:1px solid var(--line);
}

.no-results h3{
  font-size:24px;
}

.no-results p{
  margin-top:8px;

  color:var(--text-soft);
}

/* =========================================================
   COMBOS
========================================================= */

.combos-section{
  position:relative;

  overflow:hidden;

  padding:110px 0;

  background:var(--green-dark);

  color:var(--white);
}

.combos-section::before{
  content:"";

  position:absolute;

  top:-220px;
  right:-160px;

  width:550px;
  height:550px;

  border:1px solid rgba(184,154,90,.12);

  transform:rotate(45deg);
}

.combos-heading{
  position:relative;

  z-index:2;

  max-width:720px;

  margin-bottom:48px;
}

.combos-heading h2{
  font-size:clamp(38px,5vw,60px);

  line-height:1.04;

  letter-spacing:-.045em;
}

.combos-heading p{
  max-width:600px;

  margin-top:20px;

  color:rgba(255,255,255,.63);

  font-size:16px;
}

.combos-grid{
  position:relative;

  z-index:2;

  display:grid;

  grid-template-columns:repeat(3,minmax(0,1fr));

  gap:18px;
}

/* =========================================================
   CARD DE COMBO
========================================================= */

.combo-card{
  position:relative;

  display:flex;

  flex-direction:column;

  min-height:330px;

  padding:30px;

  border:1px solid rgba(255,255,255,.12);

  background:rgba(255,255,255,.035);

  transition:
    transform .25s ease,
    border-color .25s ease,
    background .25s ease;
}

.combo-card:hover{
  transform:translateY(-4px);

  border-color:rgba(184,154,90,.55);

  background:rgba(255,255,255,.055);
}

.combo-card.featured,
.combo-card.combo-destaque{
  border-color:var(--gold);

  background:
    linear-gradient(
      145deg,
      rgba(184,154,90,.13),
      rgba(255,255,255,.035)
    );
}

.combo-tag,
.combo-numero{
  display:inline-block;

  align-self:flex-start;

  margin-bottom:23px;

  color:var(--gold);

  font-size:10px;
  font-weight:800;

  letter-spacing:.16em;

  text-transform:uppercase;
}

.combo-badge{
  display:inline-block;

  align-self:flex-start;

  margin-bottom:14px;

  padding:6px 9px;

  background:var(--gold);

  color:var(--green-dark);

  font-size:9px;
  font-weight:900;

  letter-spacing:.12em;

  text-transform:uppercase;
}

.combo-card h3{
  font-size:24px;

  line-height:1.12;

  letter-spacing:-.03em;
}

.combo-description,
.combo-quantidade{
  margin-top:13px;

  color:rgba(255,255,255,.62);

  font-size:13px;

  line-height:1.6;
}

.combo-models{
  margin-top:18px;

  color:rgba(255,255,255,.72);

  font-size:12px;
}

.combo-lista{
  margin-top:18px;

  padding-left:0;

  list-style:none;

  color:rgba(255,255,255,.7);

  font-size:12px;

  line-height:1.7;
}

.combo-lista li + li{
  margin-top:3px;
}

.combo-lista strong{
  color:var(--gold-light);
}

.combo-footer{
  display:flex;

  align-items:flex-end;
  justify-content:space-between;

  gap:15px;

  margin-top:auto;

  padding-top:25px;
}

.combo-price small{
  display:block;

  color:rgba(255,255,255,.45);

  font-size:10px;
  font-weight:700;

  letter-spacing:.08em;

  text-transform:uppercase;
}

.combo-price strong,
.combo-preco{
  display:block;

  margin-top:3px;

  color:var(--gold-light);

  font-size:27px;

  line-height:1;
}

.combo-button,
.combo-card .btn-comprar{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:43px;

  padding:0 17px;

  border:1px solid var(--gold);

  background:transparent;

  color:var(--gold-light);

  font-size:11px;
  font-weight:800;

  transition:all .2s ease;
}

.combo-button:hover,
.combo-card .btn-comprar:hover{
  background:var(--gold);

  color:var(--green-dark);
}

/* =========================================================
   INFORMAÇÕES
========================================================= */

.store-info{
  padding:105px 0;

  background:var(--cream);
}

.info-grid{
  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:0;

  border-top:1px solid #d9d4c6;

  border-bottom:1px solid #d9d4c6;
}

.info-item{
  padding:42px 42px 42px 0;
}

.info-item + .info-item{
  padding-left:42px;

  border-left:1px solid #d9d4c6;
}

.info-number{
  display:block;

  margin-bottom:25px;

  color:var(--gold);

  font-size:12px;
  font-weight:800;

  letter-spacing:.1em;
}

.info-item h3{
  font-size:21px;

  letter-spacing:-.02em;
}

.info-item p{
  max-width:310px;

  margin-top:10px;

  color:var(--text-soft);

  font-size:14px;
}

/* =========================================================
   SUPORTE
========================================================= */

.support-section{
  padding:90px 0;

  background:var(--white);
}

.support-content{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:60px;
}

.support-content > div{
  max-width:720px;
}

.support-content .section-label{
  margin-bottom:12px;
}

.support-content h2{
  font-size:clamp(32px,4vw,50px);

  line-height:1.08;

  letter-spacing:-.04em;
}

.support-content p{
  margin-top:16px;

  color:var(--text-soft);
}

.support-button{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-width:200px;
  min-height:54px;

  padding:0 25px;

  border:1px solid var(--green-dark);

  background:var(--green-dark);

  color:var(--white);

  font-size:12px;
  font-weight:800;

  white-space:nowrap;

  transition:all .2s ease;
}

.support-button:hover{
  border-color:var(--gold);

  background:var(--gold);

  color:var(--green-dark);
}

/* =========================================================
   FOOTER
========================================================= */

.site-footer{
  background:#11140e;

  color:var(--white);
}

.footer-content{
  display:grid;

  grid-template-columns:1.3fr .7fr 1fr;

  gap:70px;

  padding-top:65px;
  padding-bottom:65px;
}

.footer-brand img{
  width:165px;

  max-height:60px;

  object-fit:contain;
}

.footer-brand p{
  margin-top:15px;

  color:rgba(255,255,255,.48);

  font-size:13px;
}

.footer-links,
.footer-contact{
  display:flex;

  flex-direction:column;

  gap:12px;
}

.footer-links a,
.footer-contact a{
  color:rgba(255,255,255,.65);

  font-size:13px;

  transition:color .2s ease;
}

.footer-links a:hover,
.footer-contact a:hover{
  color:var(--gold-light);
}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.09);
}

.footer-bottom .section-container{
  padding-top:20px;

  padding-bottom:20px;
}

.footer-bottom p{
  color:rgba(255,255,255,.38);

  font-size:11px;
}

/* =========================================================
   WHATSAPP
========================================================= */

.whatsapp-float{
  position:fixed;

  right:22px;
  bottom:22px;

  z-index:900;

  display:flex;

  align-items:center;
  justify-content:center;

  min-height:48px;

  padding:0 20px;

  border-radius:100px;

  background:#25d366;

  color:#ffffff;

  box-shadow:0 12px 30px rgba(0,0,0,.18);

  font-size:12px;
  font-weight:800;

  transition:
    transform .2s ease,
    box-shadow .2s ease;
}

.whatsapp-float:hover{
  transform:translateY(-3px);

  box-shadow:0 16px 35px rgba(0,0,0,.24);
}

/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .products-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .combos-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   MOBILE
   MESMO PADRÃO DA PÁGINA PRINCIPAL
========================================================= */

@media(max-width:900px){

  html{
    scroll-padding-top:82px;
  }

  .header-container{
    height:82px;
  }

  .site-header .brand img{
    height:42px;
    width:auto;
    max-height:42px;
  }

  .menu-toggle{
    display:flex;

    align-items:center;
    justify-content:center;
    flex-direction:column;

    gap:4px;

    border:0;

    background:#111111;

    width:auto;
    height:auto;

    padding:10px 14px;

    border-radius:8px;
  }

  .menu-toggle span{
    display:block;

    width:20px;
    height:2px;

    background:#ffffff;
  }

  .main-nav{
    display:none;

    position:absolute;

    left:20px;
    right:20px;
    top:80px;

    padding:20px;

    background:#ffffff;

    border:1px solid var(--line);

    border-radius:16px;

    box-shadow:0 20px 40px rgba(0,0,0,.08);

    flex-direction:column;

    align-items:stretch;

    gap:0;

    z-index:9999;
  }

  .main-nav.open{
    display:flex;
  }

  .main-nav a{
    padding:10px 0;

    color:var(--text);

    font-family:"Inter",sans-serif;

    font-size:14px;
    font-weight:600;
  }

  .store-hero{
    min-height:auto;
  }

  .store-hero-content{
    padding:80px 0;
  }

  .store-hero h1{
    max-width:600px;
  }

  .store-hero p{
    font-size:15px;
  }

  .store-intro{
    padding:80px 0 50px;
  }

  .products-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .info-grid{
    grid-template-columns:1fr;
  }

  .info-item,
  .info-item + .info-item{
    padding:32px 0;

    border-left:0;
  }

  .info-item + .info-item{
    border-top:1px solid #d9d4c6;
  }

  .support-content{
    align-items:flex-start;

    flex-direction:column;

    gap:30px;
  }

  .footer-content{
    grid-template-columns:1fr 1fr;

    gap:45px;
  }

  .footer-brand{
    grid-column:1 / -1;
  }
}

/* =========================================================
   CELULAR
========================================================= */

@media(max-width:560px){

  .section-container,
  .header-container,
  .store-hero-content{
    width:min(1200px,calc(100% - 40px));
  }

  .site-header .brand img{
    height:42px;
    width:auto;
    max-height:42px;
  }

  .store-hero-content{
    padding:65px 0 70px;
  }

  .eyebrow{
    margin-bottom:14px;

    font-size:9px;
  }

  .store-hero h1{
    font-size:clamp(39px,12vw,55px);

    line-height:1;
  }

  .store-hero p{
    margin-top:22px;

    line-height:1.65;
  }

  .hero-button{
    width:100%;

    margin-top:27px;
  }

  .store-intro{
    padding:65px 0 42px;
  }

  .store-intro h2{
    font-size:38px;
  }

  .store-intro p{
    font-size:15px;
  }

  .search-box input{
    height:56px;
  }

  .filters{
    flex-wrap:nowrap;

    width:100%;

    padding-bottom:8px;

    overflow-x:auto;

    scrollbar-width:none;
  }

  .filters::-webkit-scrollbar{
    display:none;
  }

  .filter-button{
    flex:0 0 auto;
  }

  .catalog-section{
    padding-bottom:80px;
  }

  .catalog-heading{
    align-items:flex-start;

    flex-direction:column;

    gap:10px;
  }

  .products-grid{
    grid-template-columns:1fr;

    gap:42px;
  }

  .product-content h3,
  .produto-conteudo h3{
    min-height:auto;

    font-size:20px;
  }

  .product-method,
  .produto-subtitulo{
    min-height:auto;
  }

  .product-footer,
  .produto-footer{
    align-items:center;
  }

  .product-button,
  .btn-comprar{
    min-width:115px;
  }

  .combos-section{
    padding:80px 0;
  }

  .combos-grid{
    grid-template-columns:1fr;
  }

  .combo-card{
    min-height:310px;

    padding:26px;
  }

  .store-info{
    padding:75px 0;
  }

  .support-section{
    padding:70px 0;
  }

  .support-button{
    width:100%;
  }

  .footer-content{
    grid-template-columns:1fr;

    gap:35px;

    padding-top:55px;
    padding-bottom:55px;
  }

  .footer-brand{
    grid-column:auto;
  }

  .whatsapp-float{
    right:12px;
    bottom:12px;

    min-height:46px;

    padding:10px 16px;

    font-size:13px;
  }
}
