:root{
  --verde: #363F2A;
  --verde-deep: #20261A;
  --avorio: #F6F0E4;
  --avorio-2: #EFE6D4;
  --oro: #C9982F;
  --oro-light: #E8C468;
  --oliva: #6E7350;
  --azul: #46647E;
  --nero: #211714;
  --tinta: #211714;
  --tinta-soft: #57493f;
  --linha: rgba(33,23,20,0.14);
  --serif: 'Fraunces', serif;
  --sans: 'Inter', sans-serif;
  --topbar-h: 38px;
  --nav-h: 78px;

  --r-sm: 4px;
  --r-md: 10px;
  --r-lg: 18px;
  --ease: cubic-bezier(.16,.8,.4,1);
  --shadow-sm: 0 1px 2px rgba(33,23,20,0.05), 0 2px 6px rgba(33,23,20,0.05);
  --shadow-md: 0 10px 26px -10px rgba(33,23,20,0.22), 0 3px 8px rgba(33,23,20,0.06);
  --shadow-lg: 0 30px 70px -20px rgba(33,23,20,0.32), 0 8px 20px rgba(33,23,20,0.08);
  --tex-verde: url('/static/img/texture-verde.jpg');
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--avorio);
  color:var(--tinta);
  font-family:var(--sans);
  font-size:18px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body:not(.admin-body){padding-top:calc(var(--topbar-h) + var(--nav-h));}
a{color:inherit; text-decoration:none;}
img,svg{display:block; max-width:100%;}
img[hidden]{display:none;}
button{font-family:inherit; cursor:pointer;}
::selection{background:var(--verde); color:var(--avorio);}
.wrap{max-width:1200px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:var(--sans); font-size:12.5px; letter-spacing:0.22em; text-transform:uppercase;
  font-weight:600; color:var(--verde);
  display:inline-flex; align-items:center; gap:9px;
}
.eyebrow::before{content:""; width:18px; height:1.5px; background:currentColor; opacity:0.6; display:inline-block;}
.eyebrow.on-dark{color:var(--oro-light);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001s !important; transition-duration:0.001s !important;}
}

/* ===== reveal on scroll ===== */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ===== ICON SPRITE ===== */
.motif-sprite{position:absolute; width:0; height:0; overflow:hidden;}

/* ===== TOPBAR ===== */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:101; height:var(--topbar-h);
  background:var(--nero); color:var(--avorio); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center;
}

/* ===== NAV (fixed, sempre escuro) ===== */
.site-nav{
  position:fixed; top:var(--topbar-h); left:0; right:0; z-index:100; height:var(--nav-h);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px;
  padding:0 32px; background:var(--verde-deep); box-shadow:0 1px 0 rgba(0,0,0,0.25);
}
.nav-links{display:flex; gap:30px; font-size:14px; letter-spacing:0.08em; text-transform:uppercase;}
.nav-links a{
  position:relative; color:var(--avorio); opacity:0.85; transition:opacity .2s;
  padding-bottom:3px;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:currentColor;
  transition:right .3s var(--ease);
}
.nav-links a:hover{opacity:1;}
.nav-links a:hover::after{right:0;}
.nav-links-left{justify-self:start;}
.nav-drop-trigger{
  position:relative; display:inline-flex; align-items:center; gap:5px;
  background:none; border:none; color:var(--avorio); opacity:0.85;
  font-family:var(--sans); font-size:14px; letter-spacing:0.08em; text-transform:uppercase;
  padding-bottom:3px; cursor:pointer; transition:opacity .2s;
}
.nav-drop-trigger svg{width:13px; height:13px; transition:transform .25s var(--ease);}
.nav-drop-trigger:hover{opacity:1;}
.nav-drop-trigger.open{opacity:1;}
.nav-drop-trigger.open svg{transform:rotate(180deg);}

/* ===== DROPDOWN DO NAV (mega-menu) ===== */
.nav-dropdown-overlay{position:fixed; inset:0; z-index:96; background:transparent; pointer-events:none;}
.nav-dropdown-overlay:not([hidden]){pointer-events:auto;}
.nav-dropdown{
  position:fixed; top:calc(var(--topbar-h) + var(--nav-h)); left:0; right:0; z-index:97;
  background:var(--avorio); box-shadow:var(--shadow-lg);
  border-radius:0 0 var(--r-lg) var(--r-lg);
  opacity:0; transform:translateY(-8px); pointer-events:none;
  transition:opacity .25s var(--ease), transform .25s var(--ease);
  max-height:70vh; overflow-y:auto;
}
.nav-dropdown.open{opacity:1; transform:translateY(0); pointer-events:auto;}
.nav-dropdown-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px 32px;
  max-width:1200px; margin:0 auto; padding:36px 32px;
}
.nav-dropdown-grid[hidden]{display:none;}
.nav-dropdown-item{
  background:none; border:none; text-align:left; color:var(--tinta); font-size:15.5px; font-weight:600;
  padding:4px 0; transition:color .2s ease, padding-left .2s var(--ease);
}
.nav-dropdown-item:hover{color:var(--verde); padding-left:4px;}

@media(max-width:768px){
  .nav-dropdown-grid{grid-template-columns:1fr 1fr; padding:24px 20px; gap:14px 20px;}
}

.nav-brand{
  justify-self:center; display:flex; align-items:center; gap:12px; color:var(--avorio);
}
.nav-brand img{width:38px; height:38px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 1.5px rgba(246,240,228,0.5);}
.nav-brand-text{display:flex; flex-direction:column; line-height:1.3;}
.nav-brand-text strong{font-family:var(--serif); font-style:italic; font-size:20px; font-weight:500;}
.nav-brand-text em{font-style:normal; font-size:9.5px; letter-spacing:0.22em; text-transform:uppercase; opacity:0.65; white-space:nowrap;}

.nav-right{display:flex; align-items:center; gap:30px; justify-self:end;}
.nav-links-right{margin:0;}
.nav-icons{display:flex; align-items:center; gap:10px;}
.nav-icon-btn{
  background:none; border:none; color:var(--avorio); width:26px; height:26px; padding:6px;
  opacity:0.85; transition:opacity .2s, transform .25s var(--ease);
}
.nav-icon-btn svg{width:26px; height:26px;}
.nav-icon-btn:hover{opacity:1; transform:scale(1.08);}

.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px;}
.hamburger span{width:22px; height:1.5px; background:var(--avorio); transition:all .3s var(--ease); transform-origin:center;}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* ===== BAG BUTTON / DRAWER ===== */
.bag-btn{
  position:relative; background:none; border:none; padding:6px; margin-left:2px;
  color:var(--avorio); width:26px; height:26px; transition:color .3s ease, transform .25s var(--ease);
}
.bag-btn:hover{transform:scale(1.08);}
.bag-btn svg{width:26px; height:26px;}
.bag-count{
  position:absolute; top:-4px; right:-4px; background:var(--oro); color:var(--avorio);
  font-size:11px; font-weight:600; line-height:1; min-width:17px; height:17px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; padding:0 2px; box-shadow:0 0 0 2px var(--verde-deep);
  transition:transform .2s var(--ease);
}
.bag-overlay{
  position:fixed; inset:0; background:rgba(33,23,20,0.45); backdrop-filter:blur(2px); z-index:198; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.bag-overlay.open{opacity:1; pointer-events:auto;}
.bag-drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(400px, 92vw); background:var(--avorio); z-index:199;
  transform:translateX(100%); transition:transform .45s var(--ease); display:flex; flex-direction:column;
  box-shadow:var(--shadow-lg);
}
.bag-drawer.open{transform:translateX(0);}
.bag-head{display:flex; justify-content:space-between; align-items:center; padding:22px 24px; border-bottom:1px solid var(--linha);}
.bag-head h4{font-family:var(--serif); font-style:italic; font-size:23px; font-weight:500;}
.bag-close{background:none; border:none; font-size:18.5px; color:var(--tinta-soft); padding:6px; transition:color .2s ease, transform .2s var(--ease);}
.bag-close:hover{color:var(--verde); transform:rotate(90deg);}
.bag-items{flex:1; overflow-y:auto; padding:18px 24px;}
.bag-empty{font-size:15.5px; color:var(--tinta-soft);}
.bag-item{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:14px 0; border-bottom:1px solid var(--linha);}
.bag-item-name{font-family:var(--serif); font-size:17px; margin-bottom:4px;}
.bag-item-variant{font-size:12.5px; color:var(--tinta-soft); margin-bottom:6px;}
.bag-item-meta{font-size:14px; color:var(--tinta-soft); display:flex; align-items:center; gap:10px;}
.bag-item-qty button{background:var(--avorio-2); border:1px solid var(--linha); width:20px; height:20px; border-radius:50%; font-size:12.5px; line-height:1; transition:background .2s ease, border-color .2s ease;}
.bag-item-qty button:hover{background:var(--avorio); border-color:var(--verde);}
.bag-item-remove{background:none; border:none; font-size:14px; color:var(--verde); text-decoration:underline; padding:0;}
.bag-item-price{font-family:var(--serif); font-size:16px; white-space:nowrap;}
.bag-frete-preview{padding:16px 24px; border-top:1px solid var(--linha);}
.bag-frete-row{display:flex; gap:8px;}
.bag-frete-row input{
  flex:1; padding:10px 12px; border:1px solid var(--linha); border-radius:var(--r-sm);
  font-size:13.5px; background:var(--avorio-2); color:var(--tinta);
}
.bag-frete-row input:focus{border-color:var(--verde); outline:none;}
.bag-frete-row .btn-secondary{padding:10px 16px; font-size:12.5px; white-space:nowrap;}
.bag-frete-preview .pay-hint{margin-top:8px;}
.bag-footer{padding:20px 24px; border-top:1px solid var(--linha);}
.bag-total{display:flex; justify-content:space-between; font-size:17px; margin-bottom:14px;}
.bag-total strong{font-family:var(--serif); font-size:22px;}
.bag-frete-line{font-size:14px; color:var(--tinta-soft); margin-bottom:6px;}
.bag-frete-line strong{font-family:var(--sans); font-size:14px; font-weight:600;}
.bag-total[hidden]{display:none;}
.bag-checkout{border-radius:var(--r-sm);}
.bag-note{font-size:12.5px; color:var(--tinta-soft); text-align:center; margin-top:10px;}

.btn-primary{
  position:relative; background:var(--avorio); color:var(--verde-deep); padding:16px 32px; border:none;
  font-size:15px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  border-radius:var(--r-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  box-shadow:0 1px 2px rgba(33,23,20,0.1); display:inline-block;
}
.btn-primary:hover{transform:translateY(-3px); box-shadow:var(--shadow-md);}
.btn-primary:active{transform:translateY(-1px); transition-duration:.1s;}
.btn-primary:disabled{opacity:0.45; cursor:not-allowed; transform:none; box-shadow:none;}
.btn-primary[hidden]{display:none;}
.btn-secondary{
  background:var(--avorio-2); color:var(--tinta); border:1px solid var(--linha); padding:11px 20px;
  font-size:13.5px; font-weight:600; border-radius:var(--r-sm); transition:border-color .2s ease, background .2s ease;
}
.btn-secondary:hover{border-color:var(--verde); background:var(--avorio);}
.btn-secondary:disabled{opacity:0.5; cursor:not-allowed;}
.frete-correios-box{margin-top:16px;}
.frete-correios-box .pay-hint{margin-top:10px;}

/* focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:2px solid var(--oro); outline-offset:2px;
}

/* ===== PAYMENT MODAL ===== */
.pay-overlay{
  position:fixed; inset:0; background:rgba(33,23,20,0.55); z-index:298; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.pay-overlay.open{opacity:1; pointer-events:auto;}
.pay-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-46%) scale(.98); width:min(560px, 92vw);
  max-height:88vh; background:var(--avorio); z-index:299; border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--shadow-lg); opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease), transform .35s var(--ease); display:flex; flex-direction:column;
}
.pay-modal.open{opacity:1; transform:translate(-50%,-50%) scale(1); pointer-events:auto;}
.pay-modal[hidden]{display:none;}
.pay-view{display:flex; flex-direction:column; max-height:88vh;}
.pay-view[hidden]{display:none;}
.pay-head{display:flex; justify-content:space-between; align-items:center; padding:22px 26px; border-bottom:1px solid var(--linha); flex-shrink:0;}
.pay-head h4{font-family:var(--serif); font-style:italic; font-size:24px; font-weight:500;}
.pay-close{background:none; border:none; font-size:18.5px; color:var(--tinta-soft); padding:6px; transition:color .2s ease, transform .2s var(--ease);}
.pay-close:hover{color:var(--verde); transform:rotate(90deg);}
.pay-body{padding:20px 26px; overflow-y:auto;}
.pay-order-summary{font-size:14.5px; color:var(--tinta-soft); padding-bottom:16px; margin-bottom:18px; border-bottom:1px solid var(--linha);}
.pay-order-summary div{display:flex; justify-content:space-between; padding:3px 0;}
.pay-section{margin-bottom:26px;}
.pay-section:last-child{margin-bottom:0;}
.pay-section h5{font-size:14px; letter-spacing:0.08em; text-transform:uppercase; color:var(--tinta-soft); margin-bottom:14px;}
.pay-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.pay-grid .pay-col-2{grid-column:1 / -1;}
.pay-grid label{display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--tinta-soft);}
.pay-grid label[hidden]{display:none;}
.pay-grid input, .pay-grid select{
  font-family:inherit; font-size:16px; padding:11px 12px; border:1px solid var(--linha); border-radius:var(--r-sm);
  background:#fff; color:var(--tinta); transition:border-color .2s ease, box-shadow .2s ease;
}
.pay-grid input:focus, .pay-grid select:focus{border-color:var(--verde); box-shadow:0 0 0 3px rgba(107,18,32,0.1); outline:none;}
.pay-methods{display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap;}
.pay-method{
  flex:1; min-width:120px; background:transparent; border:1px solid var(--linha); color:var(--tinta-soft);
  padding:11px 14px; font-size:14.5px; letter-spacing:0.02em; border-radius:var(--r-sm); transition:all .25s var(--ease);
}
.pay-method:hover{border-color:var(--verde); color:var(--verde);}
.pay-method.active{background:var(--verde); border-color:var(--verde); color:var(--avorio); box-shadow:var(--shadow-sm);}
.pay-method:disabled{opacity:0.5; cursor:not-allowed;}
.pay-method:disabled:hover{border-color:var(--linha); color:var(--tinta-soft);}
.pay-method-soon{display:block; font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase; margin-top:2px;}
#cardPaymentBrick_container{margin-top:6px;}
.pix-box, .boleto-box{text-align:center; padding:10px 0;}
.pix-qr-img{width:160px; height:160px; margin:0 auto 14px; padding:8px; background:#fff; border:1px solid var(--linha); border-radius:var(--r-sm); object-fit:contain;}
.pix-box p, .boleto-box p{font-size:14.5px; color:var(--tinta-soft); margin-bottom:14px; line-height:1.6;}
.pix-code, .boleto-code{display:flex; gap:0; max-width:100%;}
.pix-code[hidden], .boleto-code[hidden]{display:none;}
.pix-code input, .boleto-code input{
  flex:1; font-size:12.5px; padding:10px 12px; border:1px solid var(--linha); border-radius:3px 0 0 3px;
  background:var(--avorio-2); color:var(--tinta-soft);
}
.pix-code button, .boleto-code button{
  padding:10px 16px; background:var(--verde); color:var(--avorio); border:none; font-size:14px;
  font-weight:600; border-radius:0 3px 3px 0;
}
.boleto-link{display:inline-block; margin-top:14px; font-size:14px; color:var(--verde); text-decoration:underline;}
.boleto-link[hidden]{display:none;}
.pay-footer{padding:20px 26px; border-top:1px solid var(--linha); flex-shrink:0;}
.pay-error{font-size:14px; color:var(--verde); text-align:center; min-height:16px; margin-top:10px;}
.pay-hint{font-size:13px; color:var(--tinta-soft); line-height:1.5;}
.pay-hint a{color:var(--verde); text-decoration:underline;}
.pay-prazo-producao{font-size:12.5px; color:var(--tinta-soft); margin-bottom:12px;}
.bag-prazo-producao{padding:0 24px; margin-bottom:0;}
.pay-success{align-items:center; text-align:center; padding:50px 36px;}
.pay-success-icon{width:56px; height:56px; color:var(--oliva); margin:0 auto 18px;}
.pay-success h4{font-family:var(--serif); font-style:italic; font-size:27.5px; margin-bottom:10px;}
.pay-success p{font-size:16px; color:var(--tinta-soft); margin-bottom:6px;}
.pay-success strong{color:var(--tinta); font-family:var(--serif); font-style:normal;}
.pay-success .btn-primary{margin-top:20px;}

@media(max-width:480px){
  .pay-grid{grid-template-columns:1fr;}
  .pay-modal{width:100vw; max-height:100vh; top:0; left:0; transform:none; border-radius:0;}
  .pay-modal.open{transform:none;}
  .pay-view{max-height:100vh;}
}
.mobile-panel{
  position:fixed; inset:0; background:var(--verde-deep); z-index:99;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px;
  transform:translateY(-100%); transition:transform .4s ease;
}
.mobile-panel.open{transform:translateY(0);}
.mobile-panel a{color:var(--avorio); font-family:var(--serif); font-style:italic; font-size:27px;}
.mobile-panel{overflow-y:auto; padding:calc(var(--topbar-h) + var(--nav-h) + 30px) 24px 40px; justify-content:flex-start;}
.mobile-accordion{width:100%; max-width:340px;}
.mobile-acc-trigger{
  width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
  background:none; border:none; color:var(--avorio); font-family:var(--serif); font-style:italic; font-size:27px;
  padding:0;
}
.mobile-acc-trigger svg{width:18px; height:18px; transition:transform .25s var(--ease); flex-shrink:0;}
.mobile-acc-trigger.open svg{transform:rotate(180deg);}
.mobile-acc-panel{
  display:flex; flex-direction:column; align-items:center; gap:14px; margin-top:18px;
}
.mobile-acc-panel[hidden]{display:none;}
.mobile-acc-item{
  background:none; border:none; color:rgba(246,240,228,0.85); font-family:var(--sans); font-size:16px;
  letter-spacing:0.02em; padding:0;
}

/* ===== HERO (foto cheia) ===== */
.hero-photo-section{position:relative; height:min(88vh, 780px); overflow:hidden;}
.hero-bg-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero-photo-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,10,0.5) 0%, rgba(20,16,10,0.12) 32%, rgba(20,16,10,0.05) 55%, rgba(20,16,10,0.55) 100%);
}
.hero-photo-text{
  position:absolute; left:0; top:0; bottom:0; display:flex; flex-direction:column; justify-content:center;
  padding:0 60px; max-width:560px; color:var(--avorio);
}
.hero-photo-text h1{
  font-family:var(--serif); font-weight:400; font-style:italic;
  font-size:clamp(38px,4.6vw,58px); line-height:1.12; letter-spacing:-0.01em; margin-bottom:20px;
}
.hero-photo-text p{font-size:17px; line-height:1.6; color:rgba(246,240,228,0.85); max-width:400px; margin-bottom:28px;}

/* ===== HERO SPOTLIGHT (produtos em destaque, girando) ===== */
.hero-spotlight{
  position:absolute; left:67%; top:50%; transform:translate(-50%,-50%);
  width:min(30vw, 400px); background:rgba(20,16,10,0.4); backdrop-filter:blur(10px) saturate(1.2); -webkit-backdrop-filter:blur(10px) saturate(1.2);
  border:1px solid rgba(246,240,228,0.25); border-radius:var(--r-lg); padding:24px 24px 20px;
  box-shadow:var(--shadow-lg);
}
.spotlight-track{position:relative;}
.spotlight-item{display:none; text-align:center;}
.spotlight-item.active{display:block; animation:spotlight-in .5s var(--ease);}
@keyframes spotlight-in{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
.spotlight-media{
  aspect-ratio:3/4; border-radius:var(--r-md); overflow:hidden; background:var(--avorio-2);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.spotlight-media-dark{background:var(--verde-deep);}
.spotlight-media img{width:100%; height:100%; object-fit:cover;}
.spotlight-media .tee-mock-photo{object-fit:contain;}
.spotlight-media .tee-mock{width:195%; flex-shrink:0;}
.spotlight-label{color:var(--avorio);}
.spotlight-label span{display:block; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--oro-light); margin-bottom:6px;}
.spotlight-label strong{font-family:var(--serif); font-style:italic; font-size:22px; font-weight:500;}
.spotlight-dots{display:flex; justify-content:center; gap:7px; margin-top:16px;}
.spotlight-dot{width:6px; height:6px; border-radius:50%; background:rgba(246,240,228,0.35); border:none; padding:0; transition:background .2s ease, transform .2s var(--ease);}
.spotlight-dot.active{background:var(--oro-light); transform:scale(1.3);}

/* ===== CATEGORIAS ===== */
.categorias{display:grid; grid-template-columns:repeat(5,1fr); gap:16px; padding:20px 32px; max-width:1500px; margin:0 auto;}
.cat-card{position:relative; aspect-ratio:4/3.1; border-radius:var(--r-sm); overflow:hidden; cursor:pointer;}
.cat-card img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.cat-card:hover img{transform:scale(1.05);}
.cat-card::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,16,10,0.05) 40%, rgba(20,16,10,0.75) 100%);
}
.cat-label{position:absolute; left:0; right:0; bottom:0; padding:20px; text-align:center; color:var(--avorio);}
.cat-label h4{font-family:var(--serif); font-size:22px; font-weight:500; letter-spacing:0.01em;}
.cat-label span{font-size:12px; letter-spacing:0.08em; text-transform:uppercase; opacity:0.75;}


/* ===== MODAL DE CATEGORIA (tamanho da janela) ===== */
.cat-modal-overlay{
  position:fixed; inset:0; background:rgba(20,16,10,0.6); z-index:198; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.cat-modal-overlay.open{opacity:1; pointer-events:auto;}
.cat-modal{
  position:fixed; top:3vh; left:3vw; right:3vw; bottom:3vh; z-index:199;
  background:var(--avorio); border-radius:var(--r-lg); box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:scale(.97); pointer-events:none;
  transition:opacity .3s var(--ease), transform .35s var(--ease);
}
.cat-modal.open{opacity:1; transform:scale(1); pointer-events:auto;}
.cat-modal[hidden]{display:none;}
.cat-modal-head{
  display:flex; justify-content:space-between; align-items:center; padding:26px 36px;
  border-bottom:1px solid var(--linha); flex-shrink:0;
}
.cat-modal-head h3{font-family:var(--serif); font-style:italic; font-weight:400; font-size:30px;}
.cat-modal-close{background:none; border:none; font-size:20px; color:var(--tinta-soft); padding:8px; transition:color .2s ease, transform .2s var(--ease);}
.cat-modal-close:hover{color:var(--verde); transform:rotate(90deg);}
.cat-modal-body{flex:1; overflow-y:auto; padding:32px 36px 48px;}
.cat-modal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
.cat-modal-grid[hidden]{display:none;}
.cat-modal-empty{
  grid-column:1/-1; text-align:center; padding:70px 20px; color:var(--tinta-soft);
}
.cat-modal-empty-icon{font-size:40px; display:block; margin-bottom:18px;}
.cat-modal-empty h4{font-family:var(--serif); font-style:italic; font-size:26px; color:var(--tinta); margin-bottom:10px;}
.cat-modal-empty p{font-size:16px; max-width:400px; margin:0 auto; line-height:1.6;}
.cat-prod-card{display:flex; flex-direction:column;}
.cat-prod-card[hidden]{display:none;}
.cat-prod-photo{
  position:relative; aspect-ratio:1/1; border-radius:var(--r-md); overflow:hidden;
  background:var(--avorio-2); border:1px solid var(--linha);
}
.cat-prod-photo img{width:100%; height:100%; object-fit:cover;}
.cat-prod-meta{padding-top:14px; display:flex; justify-content:space-between; align-items:flex-start;}
.cat-prod-meta h4{font-family:var(--serif); font-size:18px; font-weight:500;}
.cat-prod-tag{font-size:12.5px; color:var(--tinta-soft); margin-top:4px;}
.cat-prod-meta .price{font-size:15.5px; font-weight:600; font-family:var(--serif); white-space:nowrap;}
.cat-prod-meta .price-block{display:flex; flex-direction:column; align-items:flex-end; gap:2px;}
.price-old{
  font-family:var(--serif); font-size:12.5px; color:var(--tinta-soft); white-space:nowrap;
  text-decoration:line-through; text-decoration-color:#993C1D; text-decoration-thickness:1.5px; opacity:0.8;
}
.zoom-modal-price .price-old{display:block; font-size:15px; margin-bottom:2px;}
.zoom-modal-price .price{display:block;}

/* ===== BUSCA ===== */
.search-overlay{
  position:fixed; inset:0; background:rgba(20,16,10,0.6); z-index:230; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.search-overlay.open{opacity:1; pointer-events:auto;}
.search-modal{
  position:fixed; top:10vh; left:50%; transform:translate(-50%,-8px) scale(.97); width:min(600px, 92vw);
  max-height:70vh; background:var(--avorio); border-radius:var(--r-lg); box-shadow:var(--shadow-lg);
  z-index:231; display:flex; flex-direction:column; overflow:hidden;
  opacity:0; pointer-events:none;
  transition:opacity .25s var(--ease), transform .3s var(--ease);
}
.search-modal.open{opacity:1; transform:translate(-50%,0) scale(1); pointer-events:auto;}
.search-modal[hidden]{display:none;}
.search-modal-head{display:flex; align-items:center; gap:12px; padding:18px 22px; border-bottom:1px solid var(--linha); flex-shrink:0;}
.search-modal-head svg{width:20px; height:20px; color:var(--tinta-soft); flex-shrink:0;}
.search-modal-head input{flex:1; min-width:0; border:none; background:none; font-size:17px; font-family:inherit; color:var(--tinta); outline:none;}
.search-modal-head input::placeholder{color:var(--tinta-soft);}
.search-modal-close{background:none; border:none; font-size:15px; color:var(--tinta-soft); padding:6px; flex-shrink:0; transition:color .2s ease;}
.search-modal-close:hover{color:var(--verde);}
.search-results{flex:1; overflow-y:auto; padding:8px;}
.search-empty{padding:36px 20px; text-align:center; color:var(--tinta-soft); font-size:14px;}
.search-result-item{
  display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%;
  padding:12px 14px; border-radius:var(--r-sm); background:none; border:none; text-align:left;
  font-family:inherit; font-size:15px; color:var(--tinta); cursor:pointer; transition:background .15s ease;
}
.search-result-item:hover{background:var(--avorio-2);}
.search-result-tipo{
  font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--tinta-soft);
  background:var(--avorio-2); padding:3px 9px; border-radius:20px; flex-shrink:0; white-space:nowrap;
}

@media(max-width:960px){
  .cat-modal-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .cat-modal{top:0; left:0; right:0; bottom:0; border-radius:0;}
  .cat-modal-head{padding:20px 22px;}
  .cat-modal-body{padding:22px 22px 40px;}
  .cat-modal-grid{grid-template-columns:1fr 1fr; gap:18px;}
  .search-modal{top:0; left:0; right:0; bottom:0; transform:none; width:100%; max-height:100%; border-radius:0;}
  .search-modal.open{transform:none;}
}


/* ===== SELOS (trust strip escura) ===== */
.trust-strip-dark{background:var(--nero); padding:34px 0;}
.trust-grid-dark{max-width:1200px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.trust-item-dark{display:flex; align-items:center; gap:14px; color:var(--avorio);}
.trust-item-dark svg{width:26px; height:26px; flex-shrink:0; color:var(--oro-light);}
.trust-item-dark strong{display:block; font-size:14.5px; font-weight:600;}
.trust-item-dark span{font-size:12.5px; color:rgba(246,240,228,0.6);}

/* ===== SECTION HEADERS ===== */
.section{padding:100px 0;}
.section-head{max-width:640px; margin-bottom:50px;}
.section-head h2{
  font-family:var(--serif); font-weight:400; font-size:clamp(32px,3.6vw,46px);
  line-height:1.12; letter-spacing:-0.01em;
}
.section-head h2 em{font-style:italic; color:var(--verde);}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}


/* ===== TEE MOCKUP (foto real + estampa/logo posicionados por cima) ===== */
.tee-mock{position:relative; width:92%; aspect-ratio:3/4; isolation:isolate; overflow:hidden;}
.tee-mock-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:contain; display:block;}
.tee-mock-tint{
  position:absolute; inset:0; mix-blend-mode:multiply;
  -webkit-mask-image:url('/static/img/tee-mockup.png'); mask-image:url('/static/img/tee-mockup.png');
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
.tee-mock-motif, .tee-mock-logo{
  position:absolute; aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none;
}
.tee-mock-motif svg, .tee-mock-motif img{width:100%; height:100%; display:block; object-fit:contain;}
.tee-mock-motif svg{color:var(--verde);}
.tee-mock-motif-custom{
  width:100%; height:100%;
  -webkit-mask-size:contain; mask-size:contain;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
}
.tee-mock-logo img{
  width:100%; height:100%; display:block; object-fit:cover; border-radius:50%;
  box-shadow:0 0 0 1px rgba(33,23,20,0.2), 0 1px 3px rgba(33,23,20,0.25);
}
.tee-frame{
  background:var(--avorio-2); border:1px solid var(--linha); border-radius:var(--r-md);
  aspect-ratio:3/4; display:flex; align-items:center; justify-content:center; position:relative;
  overflow:hidden; transition:box-shadow .4s var(--ease);
}
.cust-preview{
  background:var(--avorio); border:1px solid var(--linha); border-radius:var(--r-lg);
  aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; position:relative;
  box-shadow:var(--shadow-md); overflow:hidden;
}
.cust-preview .tee-mock{width:270%; flex-shrink:0;}
.cust-preview .tee-mock-photo{filter:drop-shadow(0 22px 20px rgba(33,23,20,0.18));}
.cust-preview .tee-mock-logo{display:none;}
.tee-frame:hover{box-shadow:var(--shadow-md);}
.tee-frame .tee-mock{transition:transform .45s var(--ease); width:270%; flex-shrink:0;}
.tee-frame:hover .tee-mock{transform:translateY(-3px) scale(1.03);}
.tee-frame .tee-mock-logo{display:none;}
.cat-prod-card{cursor:zoom-in;}
.tee-share-btn{
  position:absolute; top:10px; right:10px; z-index:2; width:34px; height:34px; border-radius:50%;
  background:rgba(246,240,228,0.9); border:1px solid var(--linha); color:var(--tinta);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .2s var(--ease), transform .2s var(--ease); backdrop-filter:blur(2px);
}
.tee-share-btn:hover{background:var(--avorio); transform:scale(1.08);}
.tee-share-btn svg{width:16px; height:16px;}
.tee-share-btn:disabled{opacity:0.5; cursor:wait;}

/* ===== ZOOM DE PRODUTO ===== */
.zoom-modal-overlay{
  position:fixed; inset:0; background:rgba(20,16,10,0.65); z-index:220; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.zoom-modal-overlay.open{opacity:1; pointer-events:auto;}
.zoom-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-48%) scale(.97);
  width:min(1000px, 94vw); max-height:92vh; background:var(--avorio); z-index:221;
  border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden;
  display:grid; grid-template-columns:1fr 1fr;
  opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease), transform .35s var(--ease);
}
.zoom-modal.open{opacity:1; transform:translate(-50%,-50%) scale(1); pointer-events:auto;}
.zoom-modal[hidden]{display:none;}
.zoom-modal-close{
  position:absolute; top:16px; right:16px; z-index:2; width:36px; height:36px; border-radius:50%;
  background:rgba(246,240,228,0.9); border:none; font-size:16px; color:var(--tinta);
  display:flex; align-items:center; justify-content:center; transition:transform .2s var(--ease), background .2s ease;
}
.zoom-modal-close:hover{transform:rotate(90deg); background:var(--avorio);}
.zoom-modal-media{
  background:var(--avorio-2); display:flex; align-items:center; justify-content:center; padding:40px; position:relative;
  overflow:hidden; aspect-ratio:3/4; max-height:92vh;
}
.zoom-modal-media > img{max-width:100%; max-height:70vh; object-fit:contain; border-radius:var(--r-sm);}
.zoom-modal-media .tee-mock{width:270%; flex-shrink:0;}
.zoom-modal-info{padding:48px 44px; display:flex; flex-direction:column; justify-content:center;}
.zoom-modal-tag{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--verde); margin-bottom:10px;}
.zoom-modal-tag:empty{display:none;}
.zoom-modal-info h3{font-family:var(--serif); font-style:italic; font-weight:500; font-size:34px; margin-bottom:14px; line-height:1.2;}
.zoom-modal-price{font-family:var(--serif); font-size:26px; margin-bottom:10px;}
.zoom-modal-info h4{font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--tinta-soft); margin:18px 0 9px;}
.zoom-modal-add{width:100%; margin-top:22px;}
.zoom-modal-add:disabled, .btn-primary:disabled{opacity:.45; cursor:not-allowed;}

/* ===== SELETOR DE TAMANHO (zoom + personalizador) ===== */
.size-picker{display:flex; flex-wrap:wrap; gap:8px;}
.size-btn{
  min-width:44px; height:44px; padding:0 12px; border:1px solid var(--linha); background:var(--avorio-2);
  border-radius:var(--r-sm); font-size:14px; font-weight:600; color:var(--tinta);
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.size-btn:hover{border-color:var(--verde);}
.size-btn.active{background:var(--verde); border-color:var(--verde); color:var(--avorio);}

@media(max-width:720px){
  .zoom-modal{grid-template-columns:1fr; width:94vw; max-height:92vh; overflow-y:auto;}
  .zoom-modal-media{padding:28px;}
  .zoom-modal-info{padding:28px 24px;}
}

/* ===== PERSONALIZAR CAMISETA ===== */
.personalizar-overlay{
  position:fixed; inset:0; background:rgba(20,16,10,0.65); z-index:230; opacity:0; pointer-events:none;
  transition:opacity .3s ease;
}
.personalizar-overlay.open{opacity:1; pointer-events:auto;}
.personalizar-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-48%) scale(.97);
  width:min(980px, 94vw); max-height:90vh; background:var(--avorio); z-index:231;
  border-radius:var(--r-lg); box-shadow:var(--shadow-lg); overflow:hidden;
  display:flex; flex-direction:column;
  opacity:0; pointer-events:none;
  transition:opacity .3s var(--ease), transform .35s var(--ease);
}
.personalizar-modal.open{opacity:1; transform:translate(-50%,-50%) scale(1); pointer-events:auto;}
.personalizar-modal[hidden]{display:none;}
.personalizar-body{
  flex:1; overflow-y:auto; padding:32px 36px 44px; display:grid;
  grid-template-columns:340px 1fr; gap:40px;
}
.personalizar-preview{
  position:sticky; top:0; align-self:start; width:100%; aspect-ratio:3/4;
  background:var(--avorio); border:1px solid var(--linha); border-radius:var(--r-lg);
  box-shadow:var(--shadow-md); display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.personalizar-preview .tee-mock{width:270%; flex-shrink:0;}
.personalizar-controls h4{
  font-size:13px; letter-spacing:0.06em; text-transform:uppercase; color:var(--tinta-soft);
  margin:26px 0 12px;
}
.personalizar-controls h4:first-child{margin-top:0;}
.pcustom-model-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-height:220px; overflow-y:auto;
}
.pcustom-model{
  display:flex; flex-direction:column; align-items:center; gap:6px; padding:8px 6px;
  border:1px solid var(--linha); border-radius:var(--r-sm); background:var(--avorio-2);
  transition:border-color .2s ease, transform .2s var(--ease);
}
.pcustom-model:hover{transform:translateY(-2px);}
.pcustom-model.active{border-color:var(--verde); box-shadow:0 0 0 1px var(--verde);}
.pcustom-model-icon{width:100%; aspect-ratio:1; display:block;}
.pcustom-model-icon svg, .pcustom-model-icon img{width:100%; height:100%; object-fit:contain; color:var(--verde);}
.pcustom-model-name{font-size:11px; text-align:center; line-height:1.25; color:var(--tinta-soft);}
.pcustom-swatches{display:flex; flex-wrap:wrap; gap:10px;}
.pcustom-swatch-color{
  width:34px; height:34px; border-radius:50%; border:2px solid transparent; box-shadow:0 0 0 1px var(--linha);
  transition:transform .2s var(--ease), box-shadow .2s ease;
}
.pcustom-swatch-color:hover{transform:translateY(-2px);}
.pcustom-swatch-color.active{box-shadow:0 0 0 2px var(--avorio), 0 0 0 4px var(--verde);}
.pcustom-slider-row{display:grid; grid-template-columns:80px 1fr 44px; align-items:center; gap:12px; margin-bottom:10px;}
.pcustom-slider-row label{font-size:13.5px; color:var(--tinta-soft);}
.pcustom-slider-row span{font-size:13px; text-align:right; color:var(--tinta-soft);}
.pcustom-slider-row input[type="range"]{width:100%;}
.pcustom-hint{font-size:12.5px; color:var(--tinta-soft); line-height:1.5; margin-top:4px; max-width:420px;}
.pcustom-textarea{
  width:100%; margin-top:10px; padding:12px 14px; border:1px solid var(--linha); border-radius:var(--r-sm);
  background:var(--avorio-2); color:var(--tinta); font-size:14px; font-family:inherit; resize:vertical;
}
.pcustom-textarea:focus{border-color:var(--verde); outline:none;}
.pcustom-qty{display:flex; align-items:center; gap:0; width:fit-content;}
.pcustom-qty button{
  width:38px; height:38px; border:1px solid var(--linha); background:var(--avorio-2); font-size:17px;
  color:var(--tinta); transition:background .2s ease;
}
.pcustom-qty button:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm);}
.pcustom-qty button:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0;}
.pcustom-qty button:hover{background:var(--linha);}
.pcustom-qty input{
  width:56px; height:38px; text-align:center; border:1px solid var(--linha); border-left:none; border-right:none;
  font-size:15px; -moz-appearance:textfield;
}
.pcustom-qty input::-webkit-outer-spin-button, .pcustom-qty input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.pcustom-tiers{font-size:12px; color:var(--tinta-soft); margin-top:10px; line-height:1.6;}
.cust-cta{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-top:28px; padding-top:22px; border-top:1px solid var(--linha);
}
.cust-price{font-family:var(--serif); font-size:28px;}

@media(max-width:840px){
  .personalizar-body{grid-template-columns:1fr; padding:26px 24px 36px;}
  .personalizar-preview{position:static; max-width:280px; margin:0 auto;}
}
@media(max-width:560px){
  .personalizar-modal{top:0; left:0; right:0; bottom:0; width:100%; max-height:100vh; border-radius:0; transform:translate(-50%,-48%);}
  .personalizar-modal.open{transform:translate(-50%,-50%);}
}

/* ===== NEWSLETTER ===== */
.newsletter-band{
  background-color:var(--verde); background-image:linear-gradient(rgba(0,0,0,0.12),rgba(0,0,0,0.12)), var(--tex-verde);
  background-repeat:repeat; padding:70px 0; color:var(--avorio);
}
.newsletter-grid{display:grid; grid-template-columns:auto 1fr; gap:50px; align-items:center;}
.newsletter-photo{width:190px; height:190px; border-radius:50%; overflow:hidden; box-shadow:var(--shadow-lg); flex-shrink:0;}
.newsletter-photo img{width:100%; height:100%; object-fit:cover;}
.newsletter-content h3{font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(28px,3.2vw,38px); margin:14px 0 24px;}
.newsletter-form{display:flex; gap:0; max-width:440px;}
.newsletter-form input{
  flex:1; padding:15px 18px; border:1px solid rgba(246,240,228,0.5); background:transparent;
  color:var(--avorio); font-size:16px; border-radius:var(--r-sm) 0 0 var(--r-sm); transition:border-color .2s ease;
}
.newsletter-form input:focus{border-color:var(--avorio); outline:none;}
.newsletter-form input::placeholder{color:rgba(246,240,228,0.6);}
.newsletter-form button{
  padding:15px 26px; background:var(--avorio); color:var(--verde-deep); border:none; font-weight:600;
  font-size:15px; letter-spacing:0.04em; text-transform:uppercase; border-radius:0 var(--r-sm) var(--r-sm) 0;
  transition:background .25s ease, transform .25s var(--ease);
}
.newsletter-form button:hover{background:var(--oro-light); transform:translateY(-1px);}
.cta-msg{margin-top:14px; font-size:14.5px; opacity:0; transition:opacity .3s ease;}
.cta-msg.show{opacity:0.9;}

/* ===== FOOTER ===== */
.footer-dark{background:var(--nero); color:rgba(246,240,228,0.85); padding:64px 0 0;}
.foot-grid-dark{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px;}
.foot-logo{display:flex; align-items:center; gap:14px; margin-bottom:14px;}
.foot-logo img{width:44px; height:44px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 1.5px rgba(246,240,228,0.3);}
.foot-logo span{font-family:var(--serif); font-style:italic; font-size:26px; color:var(--avorio);}
.foot-grid-dark p{font-size:15px; color:rgba(246,240,228,0.6); line-height:1.6; max-width:260px;}
.foot-col h5{font-size:13.5px; letter-spacing:0.05em; text-transform:uppercase; margin-bottom:16px; color:rgba(246,240,228,0.55);}
.foot-col a{transition:color .2s ease, padding-left .2s var(--ease);}
.foot-col a:hover{color:var(--oro-light); padding-left:4px;}
.foot-col a{display:block; font-size:15.5px; margin-bottom:10px; color:rgba(246,240,228,0.85);}
.foot-social{display:flex; gap:12px;}
.foot-social a{
  width:36px; height:36px; border-radius:50%; border:1px solid rgba(246,240,228,0.25); color:var(--avorio);
  display:flex; align-items:center; justify-content:center; transition:background .2s ease, border-color .2s ease;
}
.foot-social a svg{width:16px; height:16px;}
.foot-social a:hover{background:var(--oro); border-color:var(--oro);}
.foot-bottom-dark{
  display:flex; justify-content:space-between; padding:24px 32px; border-top:1px solid rgba(246,240,228,0.12);
  font-size:13.5px; color:rgba(246,240,228,0.5); max-width:1200px; margin:0 auto;
}

@media(max-width:1220px){
  .hero-spotlight{display:none;}
}

@media(max-width:1040px){
  .nav-links-left, .nav-links-right{display:none;}
  .site-nav{grid-template-columns:auto 1fr auto;}
  .nav-brand{justify-self:start;}
  .nav-right{justify-self:end;}
  .hamburger{display:flex;}
  .categorias{grid-template-columns:1fr 1fr; padding:16px 20px;}
  .trust-grid-dark{grid-template-columns:1fr 1fr; gap:20px 16px; padding:0 20px;}
  .hero-photo-text{padding:0 24px; max-width:100%;}
  .newsletter-grid{grid-template-columns:1fr; text-align:center;}
  .newsletter-photo{margin:0 auto;}
  .newsletter-form{margin:0 auto;}
  .foot-grid-dark{grid-template-columns:1fr 1fr;}
  .foot-grid-dark > div:first-child{grid-column:1 / -1;}
}

@media(max-width:480px){
  .wrap{padding:0 20px;}
  .section{padding:70px 0;}
  .trust-grid-dark{grid-template-columns:1fr;}
  .categorias{grid-template-columns:1fr;}
  .newsletter-form{flex-direction:column;}
  .newsletter-form input, .newsletter-form button{border-radius:var(--r-sm);}
  .foot-grid-dark{grid-template-columns:1fr;}
  .foot-bottom-dark{flex-direction:column; gap:6px; text-align:center;}
  .bag-drawer{width:100vw;}
}
