:root{
  --navy:#0E2A3D;
  --navy-light:#16394F;
  --paper:#F1EAD9;
  --paper-2:#E8E0CC;
  --ink:#132420;
  --teal:#3E7C74;
  --teal-deep:#25514C;
  --accent-blue:#341D8F;
  --accent-blue-light:#8C9EFF;
  --coral:#D40103;
  --line: rgba(19,36,32,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.5;
}
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:650;
  margin:0;
  letter-spacing:-0.01em;
}
em{font-style:italic; color:var(--teal-deep);}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--teal-deep);
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--accent-blue);display:inline-block;}
.hero .eyebrow, .pagehero .eyebrow, .about .eyebrow, .contact-hero .eyebrow{color:var(--accent-blue-light);}
.hero .eyebrow::before, .pagehero .eyebrow::before, .about .eyebrow::before, .contact-hero .eyebrow::before{background:var(--accent-blue-light);}
.hero em{color:var(--accent-blue-light); font-style:italic;}

/* ---------- BANNER (nota interna, não é o site) ---------- */
.devnote{
  background:var(--ink); color:#EFEAD8; text-align:center;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px;
  padding:10px 16px; letter-spacing:0.02em;
}
.devnote b{color:var(--accent-blue-light);}

/* ---------- HEADER ---------- */
header{
  background:#fff;
  color:var(--ink);
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--line);
  box-shadow:0 2px 12px rgba(14,42,61,0.05);
}
.headbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; max-width:1180px; margin:0 auto; gap:18px;
}
.logo{
  font-family:'Fraunces',serif; font-weight:800; font-size:22px;
  letter-spacing:0.01em; display:flex; align-items:center; gap:6px;
  white-space:nowrap; text-decoration:none; flex-shrink:0;
}
.logo-mark{display:inline-flex; align-items:center;}
.logo-mark img{display:block; height:60px; width:auto;}
.complaints-seal{display:inline-block; margin-top:18px; opacity:0.9; transition:opacity .15s ease;}
.complaints-seal:hover{opacity:1;}
.complaints-seal img{height:46px; width:auto;}
nav.mainnav{display:flex; gap:19px; font-size:13.5px; font-weight:500; white-space:nowrap;}
nav.mainnav a{text-decoration:none; opacity:0.68; position:relative; padding:4px 0; color:var(--ink); transition:opacity .15s ease;}
nav.mainnav a:hover{opacity:1;}
nav.mainnav a.active{opacity:1; color:var(--teal-deep);}
nav.mainnav a.active::after,
nav.mainnav a:hover::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent-blue);}
.headactions{display:flex; align-items:center; gap:12px; font-size:14px; flex-shrink:0;}
.hamburger{
  display:none; flex-direction:column; justify-content:center; align-items:flex-end; gap:5px;
  width:38px; height:38px; background:none; border:none; cursor:pointer; padding:0; flex-shrink:0;
}
.hamburger span{display:block; height:2px; background:var(--ink); border-radius:2px; transition:all .25s ease;}
.hamburger span:nth-child(1){width:22px;}
.hamburger span:nth-child(2){width:16px;}
.hamburger span:nth-child(3){width:22px;}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg); width:22px;}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg); width:22px;}

@media (max-width: 1140px){
  nav.mainnav{gap:13px; font-size:12.5px;}
  .headbar{gap:12px;}
}

/* ---------- MOBILE MENU (drawer compacto e minimalista) ---------- */
.mobile-menu-overlay{
  position:fixed; inset:0; background:rgba(14,42,61,0.45); z-index:199;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.mobile-menu-overlay.open{opacity:1; pointer-events:auto;}
.mobile-menu{
  position:fixed; top:0; right:0; bottom:0; width:320px; max-width:84vw;
  background:#fff; z-index:200; box-shadow:-16px 0 40px rgba(14,42,61,0.18);
  transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column; padding:20px 22px 24px; overflow-y:auto;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu-top{display:flex; align-items:center; justify-content:space-between;}
.mobile-menu-top .logo-mark img{height:44px;}
.mobile-menu-close{
  background:var(--paper); border:none; font-size:15px; line-height:1; cursor:pointer; color:var(--ink);
  width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.mobile-nav{display:flex; flex-direction:column; margin-top:22px;}
.mobile-nav a{
  font-family:'Inter',sans-serif; font-size:15.5px; font-weight:600; color:var(--ink); text-decoration:none;
  padding:13px 4px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between;
  letter-spacing:0.01em;
}
.mobile-nav a.active{color:var(--accent-blue);}
.mobile-nav a.active::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--accent-blue); margin-right:8px;}
.mobile-nav a::after{content:"›"; opacity:0.3; font-size:17px;}
.mobile-menu-footer{margin-top:auto; display:flex; flex-direction:column; gap:10px; padding-top:22px;}
.mobile-menu-footer .cart-pill, .mobile-menu-footer .account-pill{justify-content:space-between; width:100%;}
.mobile-menu-footer .account-name{max-width:none;}
.mobile-logout{text-align:center; font-size:13.5px; font-weight:600; color:var(--coral); text-decoration:none; padding:4px;}
body.menu-open{overflow:hidden;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 20px; border-radius:3px; font-weight:600; font-size:14.5px;
  text-decoration:none; border:1.5px solid transparent; cursor:pointer;
  transition:transform .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--accent-blue); color:#F6F1E3; border-color:rgba(255,255,255,0.15); box-shadow:0 6px 18px -6px rgba(52,29,143,0.5);}
.btn-ghost{border-color:rgba(241,234,217,0.4); color:#F1EAD9;}
.cart-pill{
  display:flex; align-items:center; gap:9px; background:var(--paper); height:44px;
  padding:0 16px 0 12px; border-radius:999px; border:1px solid var(--line); color:var(--ink);
  text-decoration:none; font-weight:600; font-size:13.5px; transition:border-color .15s ease, background .15s ease;
}
.cart-pill:hover{border-color:rgba(19,36,32,0.3); background:var(--paper-2);}
.cart-ic{position:relative; display:flex;}
.cart-ic svg{width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round;}
.cart-badge{position:absolute; top:-6px; right:-8px; min-width:17px; height:17px; padding:0 4px; border-radius:999px;
  background:var(--coral); color:#fff; font-size:10.5px; font-weight:700; line-height:17px; text-align:center; box-shadow:0 0 0 2px #fff;}
.cart-total{font-variant-numeric:tabular-nums;}

/* Conta: botão em pílula "Nome + foto"; menu ao passar o rato (ou com o teclado) */
.account-menu{position:relative;}
.account-pill{
  display:flex; align-items:center; gap:10px; height:44px; padding:0 5px 0 18px; border-radius:999px;
  background:var(--accent-blue); color:#F6F1E3; text-decoration:none; font-weight:600; font-size:13.5px;
  box-shadow:0 6px 18px -6px rgba(52,29,143,0.5); transition:background .15s ease;
}
.account-pill img{width:34px; height:34px; border-radius:50%; object-fit:cover; background:#fff; border:2px solid rgba(246,241,227,0.85); flex:none;}
.account-name{max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.account-menu:hover .account-pill, .account-menu:focus-within .account-pill{background:#2a1773;}
.account-dropdown{
  position:absolute; right:0; top:100%; padding-top:10px; min-width:200px; z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .15s ease, transform .15s ease, visibility .15s;
}
.account-dropdown::before{content:""; position:absolute; inset:10px 0 0; background:#fff; border:1px solid var(--line);
  border-radius:12px; box-shadow:0 18px 40px -12px rgba(14,42,61,0.25); z-index:-1;}
.account-menu:hover .account-dropdown, .account-menu:focus-within .account-dropdown{opacity:1; visibility:visible; transform:none;}
.account-dropdown a{display:flex; align-items:center; justify-content:space-between; padding:10px 16px; color:var(--ink);
  text-decoration:none; font-size:14px; font-weight:500;}
.account-dropdown a:first-child{margin-top:6px;}
.account-dropdown a:last-child{margin-bottom:6px;}
.account-dropdown a:hover, .account-dropdown a:focus{background:var(--paper); outline:none;}
.account-dropdown .dd-logout{border-top:1px solid var(--line); color:var(--coral); margin-top:4px; padding-top:12px;}
.dd-count{min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--paper-2); font-size:11.5px; font-weight:700; line-height:20px; text-align:center;}

/* ---------- HERO (home, photo bg) ---------- */
.hero{
  background:
    linear-gradient(100deg, rgba(10,26,38,0.96) 0%, rgba(10,26,38,0.93) 42%, rgba(10,26,38,0.78) 62%, rgba(10,26,38,0.45) 85%),
    url('../images/stores/alges-3.png') center 30% / cover no-repeat;
  color:#F1EAD9;
  position:relative;
  overflow:hidden;
  padding:78px 0 110px;
}
.hero .wrap{display:grid; grid-template-columns:1.15fr 0.85fr; gap:50px; align-items:center; position:relative; z-index:2;}
.hero h1{font-size:clamp(38px,4.6vw,58px); line-height:1.03; color:#F6F1E3;}
.hero p.lead{font-size:18px; max-width:480px; color:rgba(241,234,217,0.86); margin:20px 0 32px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
.hero-badges{display:flex; gap:26px; margin-top:46px; flex-wrap:wrap;}
.hero-badges div{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:rgba(241,234,217,0.75);}
.hero-badges b{display:block; font-family:'Fraunces',serif; font-size:23px; color:var(--accent-blue-light); font-weight:700;}

/* Hero simples para páginas internas */
.pagehero{
  background:var(--navy); color:#F1EAD9; padding:56px 0 46px;
  position:relative; overflow:hidden;
}
.pagehero .wrap{position:relative; z-index:2;}
.pagehero h1{font-size:clamp(30px,4vw,46px); color:#F6F1E3;}
.pagehero p{max-width:520px; color:rgba(241,234,217,0.78); margin-top:14px; font-size:15.5px;}

/* Ticket do dia — elemento assinatura */
.ticket-wrap{display:flex; justify-content:center; position:relative; padding-top:12px;}
/* Roda o cartão e o selo juntos. O selo fica fora do .ticket porque a máscara dos recortes laterais
   cortava tudo o que saísse do cartão; pela mesma razão a sombra é um drop-shadow aqui (segue os recortes). */
.ticket-tilt{position:relative; transform:rotate(-3.5deg); filter:drop-shadow(0 26px 24px rgba(0,0,0,0.45));}
.ticket{
  background:#F6F1E3; color:var(--ink); width:290px;
  padding:26px 24px 22px; position:relative;
  -webkit-mask-image:
    radial-gradient(circle 6px at 0 20px, transparent 98%, black 100%),
    radial-gradient(circle 6px at 100% 20px, transparent 98%, black 100%);
  mask-image:
    radial-gradient(circle 6px at 0 20px, transparent 98%, black 100%),
    radial-gradient(circle 6px at 100% 20px, transparent 98%, black 100%);
}
.ticket::before{
  content:"";position:absolute; left:16px; right:16px; top:38px; height:0;
  border-top:1.5px dashed rgba(19,36,32,0.3);
}
.ticket .stamp{
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:11.5px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--teal-deep);
  border:1.5px solid var(--teal-deep); display:inline-block; padding:3px 8px;
  transform:rotate(-2deg); border-radius:2px;
}
.ticket h3{font-size:26px; margin:16px 0 2px;}
.ticket .date{font-family:'IBM Plex Mono',monospace; font-size:12px; color:rgba(19,36,32,0.55); margin-bottom:18px;}
.ticket-row{display:flex; justify-content:space-between; align-items:baseline; margin-top:14px; font-family:'IBM Plex Mono',monospace;}
.ticket-row .lbl{font-size:12px; color:rgba(19,36,32,0.6); text-transform:uppercase; letter-spacing:0.06em;}
.ticket-row .val{font-size:15px; font-weight:600; color:var(--coral);}
.ticket-foot{margin-top:20px; padding-top:14px; border-top:1.5px dashed rgba(19,36,32,0.3); font-size:12.5px; color:rgba(19,36,32,0.65);}
.ticket-pin{
  position:absolute; top:-10px; left:50%; z-index:2; transform:translateX(-50%) rotate(3deg);
  background:var(--coral); color:#fff; font-family:'IBM Plex Mono',monospace; font-size:10.5px;
  padding:4px 10px; border-radius:2px; letter-spacing:0.08em; box-shadow:0 6px 14px rgba(0,0,0,0.35);
}

/* ---------- SECTION GENERIC ---------- */
section{padding:84px 0;}
.sec-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:44px; flex-wrap:wrap;}
.sec-head h2{font-size:clamp(28px,3.4vw,40px);}
.sec-head p{max-width:420px; color:rgba(19,36,32,0.65); font-size:15px;}

/* ---------- CATEGORIES ---------- */
.cat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.cat-card{
  background:#fff; border:1px solid var(--line); border-radius:4px;
  padding:26px 22px; display:flex; flex-direction:column; gap:14px;
  transition:transform .18s ease, box-shadow .18s ease; text-decoration:none; color:var(--ink);
}
.cat-card:hover{transform:translateY(-5px); box-shadow:0 16px 32px -18px rgba(14,42,61,0.35); border-color:var(--teal);}
.cat-card svg{width:38px; height:38px; stroke:var(--teal-deep); color:var(--teal-deep); flex-shrink:0;}
.cat-card h3{font-size:18px; font-weight:650;}
.cat-card .cnt{font-family:'IBM Plex Mono',monospace; font-size:12px; color:rgba(19,36,32,0.5);}
.cat-card .go{margin-top:auto; font-size:13.5px; font-weight:600; color:var(--teal-deep); display:flex; align-items:center; gap:6px;}

/* ---------- FEATURED PRODUCTS ---------- */
.prod-scroller{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.prod-card{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; position:relative;}
.prod-media{
  height:150px; background:linear-gradient(135deg, var(--paper-2), var(--paper));
  display:flex; align-items:center; justify-content:center; position:relative;
}
.prod-media svg{width:64px; height:64px; stroke:var(--teal-deep); opacity:0.75;}
.prod-media img{width:100%; height:100%; object-fit:cover;}
.ribbon{
  position:absolute; top:12px; left:-6px; background:var(--accent-blue); color:#F6F1E3;
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; padding:4px 12px 4px 16px;
  letter-spacing:0.04em; box-shadow:0 4px 10px rgba(0,0,0,0.15);
}
.prod-body{padding:16px 18px 20px;}
.prod-body .tag{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--teal-deep); text-transform:uppercase; letter-spacing:0.06em;}
.prod-body h4{font-size:15.5px; font-weight:650; margin:6px 0 10px; font-family:'Inter',sans-serif;}
.prod-price{display:flex; justify-content:space-between; align-items:center;}
.prod-price .p{font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:16px; color:var(--coral);}
.price-kg{display:block; margin-top:2px; font-size:11.5px; font-weight:500; color:rgba(19,36,32,0.55);} /* preço por kg, informativo (vendidos à unidade) */
/* Selo "Sem stock" (produtos SAGE com stock ≤ 0) — cartões e página do produto */
.stock-out{
  display:inline-block; margin:0 0 8px; padding:3px 10px; border-radius:20px;
  background:#FDECEA; color:#C62828; border:1px solid rgba(198,40,40,0.25);
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
}.add-btn{
  width:34px; height:34px; border-radius:50%; background:var(--navy); color:#F1EAD9;
  display:flex; align-items:center; justify-content:center; font-size:18px; border:none; cursor:pointer;
  transition:background .15s ease;
}
.add-btn:hover{background:var(--teal-deep);}

/* ---------- ABOUT / TIMELINE ---------- */
.about{background:var(--navy); color:#F1EAD9;}
.about .sec-head p{color:rgba(241,234,217,0.65);}
.about .sec-head h2{color:#F6F1E3;}
.timeline{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:10px;}
.tl-item{border-left:2px solid var(--accent-blue-light); padding-left:20px; position:relative;}
.tl-item::before{content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--accent-blue-light);}
.tl-item .yr{font-family:'IBM Plex Mono',monospace; font-size:22px; color:var(--accent-blue-light); font-weight:600;}
.tl-item h4{font-family:'Fraunces',serif; font-size:19px; margin:6px 0 8px; color:#F6F1E3;}
.tl-item p{font-size:14px; color:rgba(241,234,217,0.68); margin:0;}
.haccp-strip{
  margin-top:56px; display:flex; align-items:center; gap:22px; background:rgba(241,234,217,0.06);
  border:1px solid rgba(241,234,217,0.15); border-radius:4px; padding:22px 26px;
}
.haccp-strip svg{width:40px;height:40px; stroke:var(--accent-blue-light); flex-shrink:0;}
.haccp-strip p{margin:0; font-size:14.5px; color:rgba(241,234,217,0.8);}
.haccp-strip b{color:#F6F1E3;}

/* ---------- PHOTO GALLERY ---------- */
.gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.gallery a, .gallery .g-item{display:block; border-radius:4px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3; position:relative;}
.gallery img{width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
.gallery .g-item:hover img{transform:scale(1.06);}
.gallery .cap{
  position:absolute; left:0; right:0; bottom:0; padding:8px 12px;
  background:linear-gradient(0deg, rgba(14,42,61,0.85), transparent);
  color:#F1EAD9; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.03em;
}

/* ---------- STORES ---------- */
.store-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.store-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:0; overflow:hidden;}
.store-photo{height:320px; overflow:hidden; position:relative;}
.store-photo[data-photos]{cursor:pointer;}
.store-photo img{width:100%; height:100%; object-fit:cover;}
.store-photo-btn{
  position:absolute; right:14px; bottom:14px; background:rgba(14,42,61,0.72); color:#fff;
  border:none; padding:9px 16px; border-radius:20px; font-size:12.5px; font-weight:600; cursor:pointer;
  display:flex; align-items:center; gap:7px; backdrop-filter:blur(3px); transition:background .15s ease;
}
.store-photo-btn:hover{background:rgba(14,42,61,0.9);}
.store-info{padding:22px 24px;}
.store-info .eyebrow{margin-bottom:8px;}
.store-info h3{font-size:22px; margin-bottom:10px;}
.store-info .row{display:flex; justify-content:space-between; font-size:13.5px; padding:7px 0; border-top:1px solid var(--line); color:rgba(19,36,32,0.7);}
.store-info .row b{color:var(--ink); font-weight:600;}

/* ---------- LIGHTBOX (galeria de fotos das lojas) ---------- */
.lightbox{
  position:fixed; inset:0; background:rgba(10,20,28,0.94); z-index:500;
  display:none; align-items:center; justify-content:center; padding:40px;
}
.lightbox.open{display:flex;}
.lightbox-img{max-width:90vw; max-height:85vh; object-fit:contain; border-radius:4px; box-shadow:0 30px 80px rgba(0,0,0,0.5);}
.lightbox-close{
  position:absolute; top:20px; right:24px; background:rgba(255,255,255,0.1); border:none; color:#fff;
  font-size:18px; cursor:pointer; width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.lightbox-close:hover{background:rgba(255,255,255,0.2);}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.1); border:none; color:#fff;
  font-size:30px; line-height:1; width:50px; height:50px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:background .15s ease;
}
.lightbox-nav:hover{background:rgba(255,255,255,0.22);}
.lightbox-nav.prev{left:20px;}
.lightbox-nav.next{right:20px;}
.lightbox-count{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,0.75);
  font-size:13px; font-family:'IBM Plex Mono',monospace;
}
@media (max-width: 600px){
  .lightbox{padding:16px;}
  .lightbox-nav{width:40px; height:40px; font-size:24px;}
  .lightbox-nav.prev{left:8px;}
  .lightbox-nav.next{right:8px;}
}

/* ---------- PROMO BANNER ---------- */
.promo-banner{
  background:linear-gradient(120deg, var(--teal-deep), var(--teal));
  color:#F1EAD9; border-radius:6px; padding:46px 50px; display:flex; justify-content:space-between; align-items:center; gap:30px;
}
.promo-banner h3{font-size:27px; color:#F6F1E3; max-width:480px;}
.promo-banner p{color:rgba(241,234,217,0.85); margin-top:10px; max-width:460px; font-size:14.5px;}
.promo-banner .btn-primary{background:var(--accent-blue); color:#F6F1E3; white-space:nowrap;}

/* ---------- PARTNERS ---------- */
.partners{display:flex; gap:16px; flex-wrap:wrap;}
.partner-chip{
  border:1px solid var(--line); background:#fff; padding:16px 26px; border-radius:4px;
  font-family:'Fraunces',serif; font-weight:650; font-size:17px; color:var(--navy);
  display:inline-flex; align-items:center; text-decoration:none;
}
a.partner-chip{transition:border-color .15s ease, transform .15s ease; cursor:pointer;}
a.partner-chip:hover{border-color:var(--teal); transform:translateY(-2px);}
.partner-chip.has-logo{padding:12px 22px;}
.partner-chip.has-logo img{height:32px; width:auto; max-width:140px; object-fit:contain; display:block;}

/* ---------- CONTACT FORM / INFO ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
.info-card{background:#fff; border:1px solid var(--line); border-radius:4px; padding:26px 28px; margin-bottom:18px;}
.info-card h4{font-size:16.5px; margin-bottom:10px;}
.info-card p{margin:0; font-size:14.5px; color:rgba(19,36,32,0.7); line-height:1.6;}
.form-field{margin-bottom:16px;}
.form-field label{display:block; font-size:13px; font-weight:600; margin-bottom:6px; font-family:'IBM Plex Mono',monospace; letter-spacing:0.02em;}
.form-field input, .form-field textarea, .form-field select{
  width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:3px;
  font-family:'Inter',sans-serif; font-size:14.5px; background:#fff; color:var(--ink);
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{outline:none; border-color:var(--teal);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:rgba(241,234,217,0.7); padding:56px 0 26px; font-size:13.5px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; margin-bottom:40px;}
.foot-grid h5{color:#F6F1E3; font-family:'Inter',sans-serif; font-size:13px; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:14px;}
.foot-grid a{display:block; text-decoration:none; opacity:0.75; padding:4px 0;}
.foot-grid a:hover{opacity:1; color:var(--accent-blue-light);}
.foot-bottom{border-top:1px solid rgba(241,234,217,0.12); padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; opacity:0.55;}
.foot-brand-name{
  display:block; font-family:'Fraunces',serif; font-weight:800; font-size:24px; letter-spacing:0.01em; color:#F6F1E3;
}
.foot-brand-sub{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:rgba(241,234,217,0.55);
  letter-spacing:0.02em; margin-top:4px;
}

/* ================= CONTACT PAGE — WOW ================= */

.contact-hero{
  background:
    linear-gradient(120deg, rgba(14,42,61,0.92), rgba(14,42,61,0.8) 60%, rgba(37,81,76,0.65)),
    url('../images/stores/alges-2.jpg') center 30% / cover no-repeat;
  color:#F1EAD9; padding:64px 0 54px; position:relative;
}
.contact-hero .wrap{position:relative; z-index:2;}
.contact-hero h1{font-size:clamp(32px,4.4vw,50px); color:#F6F1E3;}
.contact-hero p.lead{max-width:560px; color:rgba(241,234,217,0.82); font-size:16px; margin:16px 0 28px;}
.live-badge{
  display:inline-flex; align-items:center; gap:8px; background:rgba(241,234,217,0.08);
  border:1px solid rgba(241,234,217,0.2); padding:8px 16px; border-radius:20px;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:0.02em; margin-bottom:24px;
}
.live-badge .dot{width:9px; height:9px; border-radius:50%; background:#5FBF8F; box-shadow:0 0 0 0 rgba(95,191,143,0.6); animation:pulse 2s infinite;}
.live-badge.closed .dot{background:var(--coral); box-shadow:0 0 0 0 rgba(193,68,44,0.6); animation:pulse-red 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(95,191,143,0.55);}70%{box-shadow:0 0 0 8px rgba(95,191,143,0);}100%{box-shadow:0 0 0 0 rgba(95,191,143,0);}}
@keyframes pulse-red{0%{box-shadow:0 0 0 0 rgba(193,68,44,0.55);}70%{box-shadow:0 0 0 8px rgba(193,68,44,0);}100%{box-shadow:0 0 0 0 rgba(193,68,44,0);}}

.quick-pills{display:flex; gap:14px; flex-wrap:wrap;}
.qpill{
  display:inline-flex; align-items:center; gap:10px; padding:13px 22px; border-radius:4px;
  text-decoration:none; font-weight:600; font-size:14.5px; transition:transform .15s ease, box-shadow .15s ease;
  border:1.5px solid rgba(241,234,217,0.25); color:#F1EAD9;
}
.qpill:hover{transform:translateY(-2px);}
.qpill.wpp{background:#25D366; border-color:#25D366; color:#0b2b18;}
.qpill.call{background:var(--accent-blue); border-color:var(--accent-blue); color:#F6F1E3;}
.qpill svg{width:18px; height:18px;}

/* ---------- STORE SWITCHER ---------- */
.switcher-card{background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(14,42,61,0.25);}
.ss-tabs{display:flex; border-bottom:1px solid var(--line);}
.ss-tab{
  flex:1; padding:18px 20px; text-align:left; background:none; border:none; cursor:pointer;
  font-family:'Fraunces',serif; font-weight:650; font-size:17px; color:rgba(19,36,32,0.4);
  border-bottom:3px solid transparent; transition:color .15s ease, border-color .15s ease;
}
.ss-tab .sub{display:block; font-family:'IBM Plex Mono',monospace; font-weight:500; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; margin-top:3px;}
.ss-tab.active{color:var(--ink); border-bottom-color:var(--accent-blue);}
.ss-tab:hover{color:var(--ink);}
.store-panel{display:grid; grid-template-columns:1.1fr 1fr;}
.store-panel[hidden]{display:none;}
.sp-photo{position:relative; min-height:340px;}
.sp-photo img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.sp-body{padding:34px 36px;}
.sp-status{margin-bottom:16px;}
.sp-body h3{font-size:24px; margin-bottom:14px;}
.sp-rows{margin-bottom:22px;}
.sp-row{display:flex; justify-content:space-between; gap:14px; font-size:14px; padding:9px 0; border-top:1px solid var(--line); color:rgba(19,36,32,0.7);}
.sp-row b{color:var(--ink); font-weight:600; text-align:right;}
.sp-ctas{display:flex; gap:10px; flex-wrap:wrap;}
.sp-ctas .btn{font-size:13.5px; padding:10px 16px;}
.sp-ctas .btn-outline{border:1.5px solid var(--line); color:var(--ink); background:none;}
.sp-ctas .btn-outline:hover{border-color:var(--teal); color:var(--teal-deep);}
.btn-outline{border:1.5px solid var(--line); color:var(--ink); background:#fff;}
.btn-outline:hover{border-color:var(--teal); color:var(--teal-deep);}

/* ---------- CONTACT SIDEBAR + FORM ---------- */
.contact-side{position:sticky; top:100px; align-self:start;}
.mini-card{
  display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--line);
  border-radius:6px; padding:18px 20px; margin-bottom:14px; transition:border-color .15s ease, transform .15s ease;
}
.mini-card:hover{border-color:var(--teal); transform:translateX(3px);}
.mini-card .ic{
  width:38px; height:38px; border-radius:50%; background:var(--paper); display:flex; align-items:center;
  justify-content:center; flex-shrink:0; font-size:17px; line-height:1;
}
.mini-card h4{font-size:14.5px; margin-bottom:4px;}
.mini-card p{margin:0; font-size:13px; color:rgba(19,36,32,0.62); line-height:1.5;}
.mini-card a.mail{color:var(--teal-deep); font-weight:600; text-decoration:none;}

/* ---------- PRODUTO: FICHA TÉCNICA ---------- */
.spec-sheet{border:1px solid var(--line); border-radius:6px; overflow:hidden; margin-top:20px; background:#fff;}
.spec-row{display:flex; gap:14px; align-items:flex-start; padding:14px 18px; border-bottom:1px solid var(--line);}
.spec-row:last-child{border-bottom:none;}
.spec-row .ic{
  width:34px; height:34px; border-radius:50%; background:var(--paper); display:flex; align-items:center;
  justify-content:center; flex-shrink:0; color:var(--teal-deep);
}
.spec-row .ic svg{width:17px; height:17px;}
.spec-row .txt h5{font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--teal-deep); margin-bottom:4px;}
.spec-row .txt p{margin:0; font-size:13.5px; line-height:1.55; color:var(--ink);}

/* ---------- PRODUTO: BLOCOS (peso / quantidade / preparação) ---------- */
.blocks-wrap{display:flex; flex-direction:column; gap:14px; margin:14px 0;}
.block-card{border:1px solid var(--line); border-radius:6px; padding:16px 18px; background:var(--paper);}
.block-card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.block-badge{
  width:24px; height:24px; border-radius:50%; background:var(--accent-blue); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0;
}
.block-meta{font-size:12.5px; color:rgba(19,36,32,0.6);}
.block-actions{display:flex; gap:8px;}
.block-actions button{
  background:#fff; border:1px solid var(--line); border-radius:4px; width:26px; height:26px;
  display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ink); font-size:13px; padding:0;
}
.block-actions button:hover:not(:disabled){border-color:var(--teal);}
.block-actions button:disabled{opacity:0.35; cursor:not-allowed;}
.block-fields{display:grid; grid-template-columns:1fr auto 1fr; gap:14px; align-items:end;}
.block-fields label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:rgba(19,36,32,0.55); margin-bottom:6px;}
.block-fields select{
  width:100%; padding:8px 10px; border:1.5px solid var(--line); border-radius:3px; font-family:inherit;
  font-size:13px; background:#fff;
}
.block-fields select:disabled{background:var(--paper-2); color:rgba(19,36,32,0.45); cursor:not-allowed;}
.block-qty{display:flex; align-items:center; gap:6px;}
.block-qty button{
  width:26px; height:26px; border:1.5px solid var(--line); border-radius:3px; background:#fff;
  cursor:pointer; font-size:15px; line-height:1; padding:0;
}
.block-qty input{width:42px; text-align:center; padding:6px 4px; border:1.5px solid var(--line); border-radius:3px; font-family:inherit;}
.blocks-summary{display:flex; justify-content:space-between; align-items:center; gap:14px; background:var(--paper); border-radius:6px; padding:16px 18px;}
.blocks-summary .bs-total{font-family:'Fraunces',serif; font-weight:800; font-size:20px; color:var(--accent-blue);}
.blocks-summary .bs-note{font-size:11px; color:rgba(19,36,32,0.55); margin-top:2px; max-width:220px;}

/* ---------- NOTÍCIAS ---------- */
.news-excerpt{margin:0; font-size:13px; color:rgba(19,36,32,0.62); line-height:1.55;}
.news-content{font-size:15px; line-height:1.75; color:var(--ink);}
.news-content p{margin:0 0 16px;}
.news-content h1, .news-content h2, .news-content h3{font-family:'Fraunces',serif; margin:28px 0 12px;}
.news-content ul, .news-content ol{margin:0 0 16px 22px;}
.news-content img{max-width:100%; border-radius:6px;}
.news-content a{color:var(--teal-deep);}

.wow-form{background:#fff; border:1px solid var(--line); border-radius:8px; padding:36px 38px; box-shadow:0 30px 60px -30px rgba(14,42,61,0.2);}
.field-float{position:relative; margin-bottom:22px;}
.field-float input, .field-float textarea, .field-float select{
  width:100%; padding:18px 14px 8px; border:1.5px solid var(--line); border-radius:4px;
  font-family:'Inter',sans-serif; font-size:15px; background:#fff; color:var(--ink);
}
.field-float textarea{resize:vertical; min-height:110px;}
.field-float label{
  position:absolute; left:14px; top:14px; font-size:14.5px; color:rgba(19,36,32,0.45);
  pointer-events:none; transition:all .15s ease; background:#fff; padding:0 4px;
}
.field-float input:focus, .field-float textarea:focus, .field-float select:focus{outline:none; border-color:var(--teal);}
.field-float input:focus + label, .field-float input:not(:placeholder-shown) + label,
.field-float textarea:focus + label, .field-float textarea:not(:placeholder-shown) + label,
.field-float select:focus + label, .field-float select + label.always-up{
  top:-8px; left:10px; font-size:11px; font-weight:600; letter-spacing:0.03em; color:var(--teal-deep); text-transform:uppercase;
}
.wow-submit{
  width:100%; justify-content:center; padding:15px 20px; font-size:15px; position:relative; overflow:hidden;
}
.success-box{
  display:flex; align-items:center; gap:12px; margin-top:16px; padding:14px 16px; border-radius:4px;
  background:rgba(95,191,143,0.12); border:1px solid rgba(95,191,143,0.4); color:var(--teal-deep);
  font-size:13.5px; font-weight:600; opacity:0; transform:translateY(6px); transition:all .3s ease;
}
.success-box.show{opacity:1; transform:translateY(0);}
.success-box .check{
  width:22px; height:22px; border-radius:50%; background:#5FBF8F; color:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:13px;
}

/* ---------- FAQ ---------- */
.faq-item{border-top:1px solid var(--line); padding:20px 2px;}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-item summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
  font-family:'Fraunces',serif; font-weight:650; font-size:17px; color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{font-family:'IBM Plex Mono',monospace; font-size:20px; color:var(--teal-deep); transition:transform .2s ease;}
.faq-item[open] summary .plus{transform:rotate(45deg);}
.faq-item p{margin:14px 0 0; font-size:14.5px; color:rgba(19,36,32,0.68); max-width:640px;}

/* ---------- FLOATING ACTION BAR ---------- */
.fab-bar{
  position:fixed; right:24px; bottom:24px; z-index:60; display:flex; flex-direction:column; gap:12px;
}
.fab-btn{
  width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 24px -8px rgba(14,42,61,0.4); text-decoration:none; transition:transform .15s ease;
}
.fab-btn:hover{transform:scale(1.08);}
.fab-btn.wpp{background:#25D366; color:#fff;}
.fab-btn.call{background:var(--navy); color:#F1EAD9;}
.fab-btn svg{width:24px; height:24px;}

/* ================= ZONAS DE ENTREGA — MAPA INTERATIVO ================= */

.zones-grid{display:grid; grid-template-columns:1.3fr 0.9fr; gap:34px; align-items:start;}

.metro-map-wrap{background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px; box-shadow:0 30px 60px -30px rgba(14,42,61,0.2); position:relative; isolation:isolate; z-index:0;}
#leaflet-map{width:100%; height:560px; border-radius:8px; background:var(--paper-2); font-family:'Inter',sans-serif; position:relative; z-index:0;}
#leaflet-map .leaflet-control-attribution{font-size:10px;}
/* Fundo OpenStreetMap em tom claro/neutro (só os tiles — as zonas coloridas por cima não são afetadas) */
#leaflet-map .map-tiles-light{filter:grayscale(1) brightness(1.06) contrast(0.88);}
#leaflet-map .leaflet-popup-content-wrapper{border-radius:6px;}
#leaflet-map .leaflet-popup-content{font-family:'Inter',sans-serif; font-size:13.5px; margin:10px 14px;}
#leaflet-map .leaflet-popup-content b{font-family:'Fraunces',serif; font-size:15.5px;}
.map-hint{
  display:flex; align-items:center; gap:8px; margin-top:14px; font-size:12.5px; color:rgba(19,36,32,0.5);
  font-family:'IBM Plex Mono',monospace;
}

.map-legend{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px;}
.legend-item{
  display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; padding:8px 14px;
  border-radius:20px; border:1.5px solid var(--line); background:#fff; transition:border-color .15s ease, color .15s ease;
}
.legend-item:hover{border-color:var(--teal);}
.legend-item.active{border-color:var(--teal-deep); color:var(--teal-deep); font-weight:600; background:rgba(62,124,116,0.08);}
.legend-dot{width:11px; height:11px; border-radius:50%; flex-shrink:0;}
.legend-dot.freq-5{background:var(--teal-deep);}
.legend-dot.freq-2{background:var(--teal);}
.legend-dot.freq-0{background:rgba(19,36,32,0.4);}

.zone-info-panel{
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:30px 32px;
  box-shadow:0 30px 60px -30px rgba(14,42,61,0.25); position:sticky; top:100px;
}
.zone-info-panel .zi-eyebrow{margin-bottom:10px;}
.zone-info-panel h3{font-size:25px; margin-bottom:14px;}
.zi-status{
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:20px;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px; font-weight:600; margin-bottom:22px;
}
.zi-status.ok{background:rgba(37,81,76,0.1); color:var(--teal-deep);}
.zi-status.none{background:rgba(193,68,44,0.1); color:var(--coral);}
.week-strip{display:flex; gap:8px; margin-bottom:24px;}
.week-day{
  flex:1; text-align:center; padding:12px 4px; border-radius:6px; background:var(--paper);
  font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; color:rgba(19,36,32,0.4);
  border:1.5px solid var(--line); transition:all .15s ease;
}
.week-day.on{background:var(--teal-deep); color:#fff; border-color:var(--teal-deep);}
.zi-note{color:rgba(19,36,32,0.6); font-size:14px; line-height:1.6;}
.zi-note a{color:var(--teal-deep); font-weight:600; text-decoration:none;}

.week-schedule{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.day-card{
  background:#fff; border:1px solid var(--line); border-radius:8px; padding:22px 18px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.day-card:hover{transform:translateY(-5px); box-shadow:0 20px 40px -22px rgba(14,42,61,0.3); border-color:var(--teal);}
.day-card .day-name{font-family:'Fraunces',serif; font-weight:650; font-size:19px; display:block;}
.day-card .day-count{
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:rgba(19,36,32,0.45); text-transform:uppercase;
  letter-spacing:0.05em; display:block; margin:3px 0 16px;
}
.day-chips{display:flex; flex-wrap:wrap; gap:7px;}
.day-chip{
  display:inline-flex; align-items:center; gap:6px; font-family:'IBM Plex Mono',monospace; font-size:11px;
  font-weight:600; padding:6px 11px 6px 8px; border-radius:20px; border:1px solid transparent; line-height:1;
}
.day-chip .chip-dot{width:7px; height:7px; border-radius:50%; flex-shrink:0;}
.day-chip.freq-5{background:rgba(37,81,76,0.12); color:var(--teal-deep);}
.day-chip.freq-5 .chip-dot{background:var(--teal-deep);}
.day-chip.freq-2{background:rgba(62,124,116,0.08); color:var(--teal-deep);}
.day-chip.freq-2 .chip-dot{background:var(--teal);}
.schedule-note{margin-top:22px; font-size:13.5px; color:rgba(19,36,32,0.6); line-height:1.6;}
.schedule-note a{color:var(--teal-deep); font-weight:600; text-decoration:none;}

@media (max-width: 900px){
  .hero .wrap{grid-template-columns:1fr;}
  .ticket-wrap{margin-top:30px;}
  .cat-grid{grid-template-columns:repeat(2,1fr);}
  .prod-scroller{grid-template-columns:repeat(2,1fr);}
  .timeline{grid-template-columns:1fr;}
  .store-grid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:repeat(2,1fr);}
  .contact-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  nav.mainnav{display:none;}
  .headactions{display:none;}
  .hamburger{display:flex;}
  .promo-banner{flex-direction:column; align-items:flex-start;}
  .store-panel{grid-template-columns:1fr;}
  .sp-photo{min-height:220px;}
  .contact-side{position:static;}
  .fab-bar{right:16px; bottom:16px;}
  .zones-grid{grid-template-columns:1fr;}
  .zone-info-panel{position:static;}
  #leaflet-map{height:420px;}
  .week-schedule{grid-template-columns:1fr 1fr;}
}

/* ---------- TOP BAR (dinâmica, gerida no portal — carrossel vertical) ---------- */
.topbar{
  background:var(--ink); color:#EFEAD8;
  font-family:'IBM Plex Mono',monospace; font-size:12.5px;
}
.topbar-viewport{
  max-width:1180px; margin:0 auto; padding:0 28px; height:34px;
  position:relative; overflow:hidden;
}
.topbar-track{height:100%;}
.topbar-slide{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .45s ease; pointer-events:none;
}
.topbar-slide.is-active{opacity:1; transform:translateY(0); pointer-events:auto;}
.topbar-item{color:inherit; text-decoration:none; opacity:0.92; white-space:nowrap;}
a.topbar-item:hover{opacity:1; text-decoration:underline;}

/* ---------- PROMO STRIP (faixa, gerida no portal) ---------- */
.promo-strip{background:linear-gradient(120deg, var(--teal-deep), var(--teal)); color:#F1EAD9;}
.promo-strip-inner{
  padding:11px 28px; display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; text-align:center;
}
.promo-strip-text{font-size:14px;}
.promo-strip-text b{color:#F6F1E3;}
.promo-strip-btn{
  background:var(--accent-blue); color:#F6F1E3; text-decoration:none; font-weight:600; font-size:13px;
  padding:6px 14px; border-radius:20px; white-space:nowrap;
}

/* ---------- PROMO POPUP (gerido no portal) ---------- */
.promo-popup-overlay{
  position:fixed; inset:0; background:rgba(14,42,61,0.72); z-index:300;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.promo-popup-overlay[hidden]{display:none;}
.promo-popup{
  background:#F6F1E3; border-radius:8px; max-width:440px; width:100%; position:relative;
  overflow:hidden; box-shadow:0 40px 80px -20px rgba(0,0,0,0.5);
}
.promo-popup-media img{width:100%; max-height:220px; object-fit:cover;}
.promo-popup-body{padding:26px 28px 30px;}
.promo-popup-body h3{font-size:22px; margin-bottom:8px;}
.promo-popup-body p{color:rgba(19,36,32,0.7); font-size:14.5px; margin:0 0 18px;}
.promo-popup-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,0.85); border:none; cursor:pointer; font-size:15px; z-index:2;
}

/* ---------- COOKIE BANNER ---------- */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:250;
  background:var(--ink); color:#EFEAD8; box-shadow:0 -10px 30px rgba(0,0,0,0.25);
}
.cookie-banner[hidden]{display:none;}
.cookie-banner-inner{
  max-width:1180px; margin:0 auto; padding:18px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cookie-banner-inner p{margin:0; font-size:13.5px; max-width:640px; color:rgba(239,234,216,0.85);}
.cookie-banner-inner a{color:var(--accent-blue-light); text-decoration:underline;}
.cookie-banner-actions{display:flex; gap:10px; flex-shrink:0;}

/* ---------- LOJA / CARRINHO / CHECKOUT ---------- */
.shop-toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.shop-toolbar a{
  padding:9px 18px; border-radius:20px; border:1.5px solid var(--line); text-decoration:none;
  font-size:13.5px; font-weight:600; color:var(--ink); background:#fff;
}
.shop-toolbar a.active, .shop-toolbar a:hover{border-color:var(--teal-deep); color:var(--teal-deep); background:rgba(62,124,116,0.08);}
.shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.price-old{text-decoration:line-through; opacity:0.5; font-size:12.5px; margin-right:6px;}
.empty-state{background:#fff; border:1px dashed var(--line); border-radius:6px; padding:50px 30px; text-align:center; color:rgba(19,36,32,0.6);}
.empty-state a:not(.btn){color:var(--teal-deep); font-weight:600;}

/* ---------- LOJA: caixa de pesquisa central ---------- */
/* Loja: a caixa de pesquisa vive dentro do cartão azul (.pagehero-shop), com a largura da grelha */
.pagehero-shop{padding:40px 0 44px;}
.pagehero-shop .shop-search{margin:0; box-shadow:0 18px 40px rgba(0,0,0,0.25); border-color:transparent;}
section.shop-results{padding-top:32px;}
section.shop-results > .wrap{transition:opacity .15s;}
section.shop-results.is-loading > .wrap{opacity:0.45; pointer-events:none;} /* pesquisa em tempo real a carregar */
.shop-search{
  margin:0 0 30px; /* mesma largura que a grelha de produtos (ocupa todo o .wrap) */ padding:22px 24px; background:#fff;
  border:1px solid var(--line); border-radius:14px; box-shadow:0 10px 30px rgba(19,36,32,0.07);
}
.shop-search-main{
  display:flex; align-items:center; gap:10px; padding:6px 6px 6px 16px;
  border:2px solid var(--line); border-radius:999px; background:#fff; transition:border-color .15s, box-shadow .15s;
}
.shop-search-main:focus-within{border-color:var(--teal-deep); box-shadow:0 0 0 4px rgba(62,124,116,0.12);}
.shop-search-icon{width:20px; height:20px; color:rgba(19,36,32,0.45); flex-shrink:0;}
.shop-search-main input{
  flex:1; min-width:0; border:none; outline:none; background:transparent;
  font-family:inherit; font-size:16px; color:var(--ink); padding:10px 0;
}
.shop-search-main input::-webkit-search-cancel-button{cursor:pointer;}
.shop-search-main .btn{border-radius:999px; flex-shrink:0;}

.shop-search-cats{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px;}
.shop-search-cats a{
  padding:7px 15px; border-radius:20px; border:1.5px solid var(--line); text-decoration:none; white-space:nowrap;
  font-size:13px; font-weight:600; color:var(--ink); background:#fff;
}
.shop-search-cats a.active, .shop-search-cats a:hover{border-color:var(--teal-deep); color:var(--teal-deep); background:rgba(62,124,116,0.08);}

.shop-search-controls{
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px 18px;
  margin-top:16px; padding-top:16px; border-top:1px solid var(--line);
}
.shop-control{display:flex; flex-direction:column; gap:6px;}
.shop-control > span{font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:var(--teal-deep);}
.shop-control select, .shop-price input{
  height:40px; padding:0 12px; border:1.5px solid var(--line); border-radius:8px; font-family:inherit;
  font-size:13.5px; color:var(--ink); background:#fff;
}
.shop-control select{
  padding-right:34px; cursor:pointer; appearance:none; min-width:200px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23132420' stroke-width='1.5'%3E%3Cpath d='M3 5l3 3 3-3'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}
.shop-search, .shop-search *{box-sizing:border-box;}
.shop-price{display:flex; align-items:center; gap:8px; color:rgba(19,36,32,0.5);}
.shop-price input{width:92px; min-width:0;}
.shop-control-check{flex-direction:row; align-items:center; gap:9px; height:40px; cursor:pointer; font-size:13.5px; color:var(--ink);}
.shop-control-check > span{font-family:inherit; font-size:13.5px; text-transform:none; letter-spacing:0; color:var(--ink);}
.shop-control-check input{accent-color:var(--accent-blue); width:16px; height:16px;}
.shop-apply{height:40px; margin-left:auto;}

/* etiquetas dos filtros ativos */
.shop-chips{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.shop-chip{
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:20px;
  background:rgba(62,124,116,0.1); color:var(--teal-deep); font-size:12.5px; font-weight:600; text-decoration:none;
}
.shop-chip span{font-size:15px; line-height:1;}
.shop-chip:hover{background:rgba(62,124,116,0.18);}
.shop-chip-clear{font-size:12.5px; color:rgba(19,36,32,0.6); text-decoration:underline;}

/* grelha da loja sem sidebar: 4 → 3 → 2 → 1 colunas */
.shop-grid.shop-grid-wide{grid-template-columns:repeat(4,1fr);}
@media (max-width:1140px){ .shop-grid.shop-grid-wide{grid-template-columns:repeat(3,1fr);} }
@media (max-width:900px){
  .shop-grid.shop-grid-wide{grid-template-columns:repeat(2,1fr);}
  .shop-search{padding:18px 16px;}
  .shop-search-cats{flex-wrap:nowrap; overflow-x:auto; margin-left:-16px; margin-right:-16px; padding:0 16px 4px; scrollbar-width:none;}
  .shop-search-cats::-webkit-scrollbar{display:none;}
  .shop-apply{margin-left:0;}
}
@media (max-width:560px){
  .shop-grid.shop-grid-wide{grid-template-columns:1fr;}
  .shop-search-main{padding-left:12px;}
  .shop-search-main .btn{padding-left:14px; padding-right:14px;}
  .shop-search-controls{flex-direction:column; align-items:stretch;}
  .shop-control{width:100%; min-width:0;}
  .shop-control select{min-width:0; width:100%;}
  .shop-price input{flex:1 1 0; width:0;}  /* os dois campos dividem a largura em partes iguais */
  .shop-apply{width:100%; justify-content:center;}
}

/* ---------- LOJA: paginação ---------- */
.shop-pagination{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; margin-top:36px;}
.shop-pagination .page-num, .shop-pagination .page-nav{
  min-width:40px; height:40px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:20px; border:1.5px solid var(--line); background:#fff; color:var(--ink);
  font-size:13.5px; font-weight:600; text-decoration:none;
}
.shop-pagination a:hover{border-color:var(--teal-deep); color:var(--teal-deep); background:rgba(62,124,116,0.08);}
.shop-pagination .is-current{border-color:var(--teal-deep); background:var(--teal-deep); color:#fff;}
.shop-pagination .is-disabled{opacity:0.4; pointer-events:none;}
.shop-pagination .page-gap{padding:0 4px; color:rgba(19,36,32,0.5);}
.shop-pagination .page-status{display:none; font-size:13.5px; font-weight:600; color:var(--ink);}
/* Mobile: formato compacto "← Anterior · Página 6 de 40 · Seguinte →" */
@media (max-width:560px){
  .shop-pagination{justify-content:space-between; flex-wrap:nowrap;}
  .shop-pagination .page-num, .shop-pagination .page-gap{display:none;}
  .shop-pagination .page-status{display:inline;}
}

/* ---------- LOJA: layout com sidebar de filtros ---------- */
.shop-layout{display:grid; grid-template-columns:260px 1fr; gap:32px; align-items:start;}
.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;}

.filters-sidebar{
  position:sticky; top:100px; background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:22px 20px; align-self:start;
}
.filters-sidebar-head{display:none; align-items:center; justify-content:space-between; margin-bottom:16px; font-weight:700; font-size:15px;}
.filters-close{background:none; border:none; font-size:18px; cursor:pointer; color:var(--ink); line-height:1;}

.filter-group{padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--line);}
.filter-group:last-of-type{border-bottom:none; margin-bottom:14px; padding-bottom:0;}
.filter-group h5{font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--teal-deep); margin-bottom:12px;}
.filter-check{display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ink); margin-bottom:10px; cursor:pointer;}
.filter-check:last-child{margin-bottom:0;}
.filter-check input{accent-color:var(--accent-blue); width:15px; height:15px; flex-shrink:0;}

.price-range{position:relative; height:32px; margin-bottom:10px;}
.price-range-track{position:absolute; top:14px; left:0; right:0; height:4px; background:var(--paper-2); border-radius:2px;}
.price-range-fill{position:absolute; top:0; left:0; right:0; height:100%; background:var(--accent-blue); border-radius:2px;}
.price-range input[type=range]{
  position:absolute; top:0; left:0; width:100%; height:32px; margin:0; background:none;
  pointer-events:none; -webkit-appearance:none; appearance:none;
}
.price-range input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; pointer-events:auto; width:16px; height:16px; border-radius:50%;
  background:var(--accent-blue); border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,0.3); cursor:pointer; margin-top:8px;
}
.price-range input[type=range]::-moz-range-thumb{
  pointer-events:auto; width:16px; height:16px; border-radius:50%; background:var(--accent-blue);
  border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,0.3); cursor:pointer;
}
.price-range input[type=range]::-webkit-slider-runnable-track{background:none;}
.price-range input[type=range]::-moz-range-track{background:none;}
.price-range-inputs{display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(19,36,32,0.6);}
.price-input{
  width:100%; padding:7px 8px; border:1.5px solid var(--line); border-radius:3px; font-family:inherit;
  font-size:13px; color:var(--ink); background:#fff;
}

.filters-clear{display:block; text-align:center; margin-top:12px; font-size:12.5px; color:var(--teal-deep); font-weight:600; text-decoration:none;}
.filters-clear:hover{text-decoration:underline;}

.shop-topbar{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap;}
.shop-count{font-size:13.5px; color:rgba(19,36,32,0.6);}
.shop-topbar-actions{display:flex; align-items:center; gap:12px;}
#filters-open{display:none;}
.shop-sort select{
  padding:9px 32px 9px 12px; border:1.5px solid var(--line); border-radius:3px; font-family:inherit;
  font-size:13px; color:var(--ink); background:#fff; cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23132420' stroke-width='1.5'%3E%3Cpath d='M3 5l3 3 3-3'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}

.filters-overlay{display:none; position:fixed; inset:0; background:rgba(15,23,42,0.5); z-index:1100;}
.filters-overlay.open{display:block;}

@media (max-width: 900px){
  .shop-layout{grid-template-columns:1fr;}
  .filters-sidebar{
    position:fixed; top:0; bottom:0; left:0; width:300px; max-width:85vw; z-index:1200;
    border-radius:0; overflow-y:auto; transform:translateX(-100%); transition:transform .25s ease;
  }
  .filters-sidebar.open{transform:translateX(0);}
  .filters-sidebar-head{display:flex;}
  #filters-open{display:inline-flex;}
}

.cart-table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.cart-table th, .cart-table td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--line); font-size:14px;}
.cart-table th{font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em; color:rgba(19,36,32,0.5);}
.cart-table img{width:52px; height:52px; object-fit:cover; border-radius:4px;}
.cart-product{display:flex; align-items:center; gap:12px;}
.qty-input{width:64px; padding:8px; border:1.5px solid var(--line); border-radius:3px; font-family:inherit;}
.cart-summary{background:#fff; border:1px solid var(--line); border-radius:4px; padding:24px 26px; max-width:360px; margin-left:auto;}
.cart-summary .row{display:flex; justify-content:space-between; padding:8px 0; font-size:14.5px; border-top:1px solid var(--line);}
.cart-summary .row:first-child{border-top:none;}
.cart-summary .row.total{font-weight:700; font-size:18px; color:var(--coral);}
.link-remove{color:var(--coral); font-size:12.5px; text-decoration:none;}
.checkout-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:34px; align-items:start;}
.order-summary-card{background:#fff; border:1px solid var(--line); border-radius:6px; padding:24px 26px; position:sticky; top:100px;}
.order-summary-card .oi-row{display:flex; justify-content:space-between; font-size:13.5px; padding:8px 0; border-top:1px solid var(--line);}
.alert{padding:14px 18px; border-radius:4px; font-size:14px; margin-bottom:20px;}
.alert-error{background:rgba(212,1,3,0.08); border:1px solid rgba(212,1,3,0.3); color:var(--coral);}
.alert-success{background:rgba(95,191,143,0.12); border:1px solid rgba(95,191,143,0.4); color:var(--teal-deep);}
.alert-info{background:var(--paper); border:1px solid var(--line); color:var(--ink);}
.alert-info a{color:var(--teal-deep); font-weight:600;}
.confirm-box{background:#fff; border:1px solid var(--line); border-radius:8px; padding:50px 40px; text-align:center; max-width:560px; margin:0 auto;}
.confirm-box .check-big{width:64px; height:64px; border-radius:50%; background:#5FBF8F; color:#fff; display:flex; align-items:center; justify-content:center; font-size:30px; margin:0 auto 20px;}

/* ---------- CONTA DE CLIENTE ---------- */
.account-layout{display:grid; grid-template-columns:220px 1fr; gap:32px; align-items:start;}
.account-nav{background:#fff; border:1px solid var(--line); border-radius:6px; padding:10px; position:sticky; top:100px;}
.account-nav a{
  display:block; padding:11px 14px; border-radius:4px; text-decoration:none; color:var(--ink);
  font-size:14px; font-weight:500; opacity:0.75;
}
.account-nav a:hover{opacity:1; background:var(--paper);}
.account-nav a.active{opacity:1; background:rgba(62,124,116,0.1); color:var(--teal-deep); font-weight:600;}
.account-nav a.danger{color:var(--coral);}
.order-list-row{display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid var(--line); background:#fff;}
.order-list-row:first-child{border-radius:4px 4px 0 0;}
.order-list-row:last-child{border-bottom:none; border-radius:0 0 4px 4px;}
.order-list{border:1px solid var(--line); border-radius:4px; overflow:hidden;}
.order-status-pill{
  display:inline-flex; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600;
  padding:4px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:0.03em;
}
.order-status-pill.st-em_processamento{background:rgba(52,29,143,0.1); color:var(--accent-blue);}
.order-status-pill.st-criada{background:rgba(212,160,23,0.15); color:#8A6200;}
.order-status-pill.st-concluida{background:rgba(37,81,76,0.12); color:var(--teal-deep);}
.order-status-pill.st-cancelada{background:rgba(19,36,32,0.08); color:rgba(19,36,32,0.6);}
/* Páginas de erro (erro.php: 404 / 410 / 403) */
.error-wrap{max-width:720px; text-align:center; padding-top:10px; padding-bottom:20px;}
.error-code{font-family:'Fraunces',serif; font-weight:800; font-size:clamp(84px, 18vw, 150px); line-height:1; letter-spacing:-4px;
  color:transparent; -webkit-text-stroke:2px rgba(52,29,143,0.22); margin:0 0 18px; user-select:none;}
.error-search{display:flex; gap:10px; max-width:560px; margin:0 auto 18px;}
.error-search input{flex:1; min-width:0; height:48px; padding:0 18px; border:1.5px solid var(--line); border-radius:999px; font:inherit; font-size:15px; background:#fff; color:var(--ink);}
.error-search .btn{border-radius:999px; height:48px;}
.error-search input:focus{outline:none; border-color:var(--accent-blue); box-shadow:0 0 0 3px rgba(52,29,143,0.12);}
.error-cats{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 auto 26px;}
.error-cats a{padding:7px 14px; border-radius:999px; background:var(--paper, #F6F1E3); border:1px solid var(--line); color:var(--ink); font-size:13.5px; font-weight:600; text-decoration:none;}
.error-cats a:hover{border-color:var(--accent-blue); color:var(--accent-blue);}
.error-actions{display:flex; flex-wrap:wrap; justify-content:center; gap:10px;}
@media (max-width:560px){ .error-search{flex-direction:column;} .error-search .btn{width:100%; justify-content:center;} }

/* Fatura da encomenda (A minha conta → encomenda) */
.invoice-box{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 18px; margin-bottom:22px; border:1px solid rgba(52,29,143,0.18); background:rgba(52,29,143,0.05); border-radius:12px;}
.invoice-ic{flex:none; width:40px; height:40px; border-radius:50%; background:var(--accent-blue); display:flex; align-items:center; justify-content:center;}
.invoice-ic svg{width:20px; height:20px; fill:none; stroke:#fff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.invoice-txt{flex:1; min-width:180px;}
.invoice-txt b{display:block; font-size:14.5px; color:var(--ink);}
.invoice-txt span{font-size:13px; color:rgba(19,36,32,0.6);}
.invoice-btns{display:flex; gap:8px; flex-wrap:wrap;}
.address-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.address-card{background:#fff; border:1px solid var(--line); border-radius:6px; padding:20px 22px; position:relative;}
.address-card.is-default{border-color:var(--teal);}
.address-card .badge-default{
  position:absolute; top:16px; right:16px; font-family:'IBM Plex Mono',monospace; font-size:10.5px;
  color:var(--teal-deep); background:rgba(62,124,116,0.1); padding:3px 8px; border-radius:12px;
}
.address-card h4{font-size:15px; margin-bottom:8px;}
.address-card p{margin:0 0 14px; font-size:13.5px; color:rgba(19,36,32,0.7); line-height:1.6;}
.address-card .row-actions{display:flex; gap:14px; font-size:12.5px;}
.address-card .row-actions button, .address-card .row-actions a{background:none; border:none; padding:0; cursor:pointer; font-weight:600; color:var(--teal-deep); text-decoration:none;}
.address-card .row-actions .danger{color:var(--coral);}
.fav-remove{position:absolute; top:12px; right:12px; width:30px; height:30px; border-radius:50%; background:#fff; border:1px solid var(--line); cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2;}
.fav-btn{
  position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:50%; background:#fff;
  border:1px solid var(--line); cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2;
  color:rgba(19,36,32,0.4); transition:color .15s ease, border-color .15s ease;
}
.fav-btn.is-fav{color:var(--coral); border-color:var(--coral);}
.fav-btn svg{width:17px; height:17px;}
.account-danger-box{background:#fff; border:1px solid rgba(212,1,3,0.3); border-radius:6px; padding:26px 28px;}

.account-stats{display:flex; gap:18px; margin-bottom:30px;}
.account-stat{
  flex:1; background:#fff; border:1px solid var(--line); border-radius:6px;
  padding:24px 20px; text-align:center;
}
.account-stat .stat-icon{font-size:24px; margin-bottom:8px;}
.account-stat .stat-num{display:block; font-family:'Fraunces',serif; font-size:32px; font-weight:700; color:var(--teal-deep); line-height:1.1;}
.account-stat .stat-label{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase;
  letter-spacing:0.06em; color:rgba(19,36,32,0.5); margin-top:4px; display:block;
}
.address-section{margin-bottom:36px;}
.address-section h3{font-size:18px; margin-bottom:16px;}
.address-ref-card{background:var(--paper); border:1px solid var(--line); border-radius:6px; padding:18px 20px;}
.address-ref-card h5{
  font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--teal-deep); margin-bottom:8px;
}
.address-ref-card p{margin:0; font-size:13.5px; color:rgba(19,36,32,0.75); line-height:1.6;}
.address-ref-card p.muted{color:rgba(19,36,32,0.45); font-style:italic;}
.address-ref-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px;}

@media (max-width: 900px){
  .shop-grid{grid-template-columns:repeat(2,1fr);}
  .checkout-grid{grid-template-columns:1fr;}
  .order-summary-card{position:static;}
  .account-layout{grid-template-columns:1fr;}
  .account-nav{position:static; display:flex; overflow-x:auto; gap:4px;}
  .address-grid{grid-template-columns:1fr;}
  .account-stats{flex-direction:column;}
  .address-ref-grid{grid-template-columns:1fr;}
}

@media (max-width: 560px){
  .topbar-viewport{padding:0 16px;}
  .topbar-item{white-space:normal; text-align:center; font-size:11.5px; line-height:1.3;}
  .week-schedule{grid-template-columns:1fr;}
  .cat-grid{grid-template-columns:1fr;}
  .prod-scroller{grid-template-columns:1fr;}
  .shop-grid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .hero-badges{gap:18px 26px;}
  .headbar{padding:14px 20px;}
  .wrap{padding:0 20px;}
  section{padding:56px 0;}
}

/* ---------- Carrinho: botão desativado (sem stock) ---------- */
.add-btn:disabled{background:rgba(19,36,32,0.18); color:#fff; cursor:not-allowed;}
.add-btn:disabled:hover{background:rgba(19,36,32,0.18);}
.out-of-stock-box{
  display:flex; flex-direction:column; gap:6px; padding:16px 18px; border-radius:10px;
  background:#FDECEA; border:1px solid rgba(198,40,40,0.25); color:#7a1f1f;
}
.out-of-stock-box b{font-size:15px;}
.out-of-stock-box span{font-size:13.5px; color:rgba(122,31,31,0.85);}
.out-of-stock-box .btn{margin-top:8px; justify-content:center; opacity:0.5; cursor:not-allowed;}

/* ---------- Aviso "adicionado ao carrinho" (em baixo, ao centro) ---------- */
.cart-toast{
  position:fixed; left:50%; bottom:24px; z-index:1500; width:min(640px, calc(100vw - 32px));
  transform:translate(-50%, 24px); opacity:0; transition:transform .3s ease, opacity .3s ease;
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 24px 60px -12px rgba(14,42,61,0.45), 0 0 0 1px rgba(19,36,32,0.08);
}
.cart-toast.is-visible{transform:translate(-50%, 0); opacity:1;}
.cart-toast.is-hiding{transform:translate(-50%, 24px); opacity:0;}
.cart-toast-body{display:flex; align-items:center; gap:14px; padding:16px 18px;}
.cart-toast-icon{
  flex:none; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--teal-deep); color:#fff; font-weight:700; font-size:17px;
}
.cart-toast.is-error .cart-toast-icon{background:#C62828;}
.cart-toast-text{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;}
.cart-toast-text b{font-size:14.5px; color:var(--ink);}
.cart-toast-text span{font-size:13px; color:rgba(19,36,32,0.65); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.cart-toast-actions{display:flex; gap:8px; flex:none;}
.cart-toast-actions .btn{padding:9px 14px; font-size:13px; white-space:nowrap;}
.cart-toast-actions .btn-outline{border:1.5px solid var(--line); color:var(--ink); background:#fff;}
.cart-toast-close{flex:none; background:none; border:none; font-size:15px; color:rgba(19,36,32,0.45); cursor:pointer; padding:4px;}
.cart-toast-close:hover{color:var(--ink);}
.cart-toast-timer{height:4px; background:rgba(62,124,116,0.15);}
.cart-toast-timer span{display:block; height:100%; width:100%; background:var(--teal); transform-origin:left; animation:cartToastTimer 5s linear forwards;}
.cart-toast.is-error .cart-toast-timer span{background:#C62828;}
@keyframes cartToastTimer{from{transform:scaleX(1);} to{transform:scaleX(0);}}
@media (max-width:640px){
  .cart-toast{bottom:12px;}
  .cart-toast-body{flex-wrap:wrap; gap:10px 12px;}
  .cart-toast-text{flex:1 1 calc(100% - 90px);}
  .cart-toast-actions{order:3; width:100%;}
  .cart-toast-actions .btn{flex:1; justify-content:center;}
}

/* ---------- Selo "ligação encriptada" (login / registo) ---------- */
.secure-badge{
  display:flex; align-items:center; justify-content:center; gap:10px; margin-top:20px; padding:9px 12px; border-radius:10px;
  background:rgba(46,125,50,0.07); border:1px solid rgba(46,125,50,0.22); color:#2E7D32;
}
.secure-badge svg{flex:none; width:24px; height:24px;}
.secure-badge b{display:block; font-size:13.5px; color:#1F5E24;}
.secure-badge span{display:block; font-size:12px; color:rgba(19,36,32,0.6); line-height:1.4;}

/* Clientes migrados do site antigo: boas-vindas no login / definir password */
.welcome-back{background:linear-gradient(135deg, rgba(15,94,90,0.08), rgba(15,94,90,0.02)); border:1px solid rgba(15,94,90,0.18);
  border-radius:14px; padding:20px 22px; margin-bottom:20px;}
.welcome-back h3{font-size:20px; margin:0 0 6px; color:var(--teal-deep);}
.welcome-back p{font-size:14px; line-height:1.55; margin:0; color:rgba(19,36,32,0.75);}

.impersonation-bar{position:sticky; top:0; z-index:300; background:#B5121B; color:#fff; text-align:center; font-size:13px; padding:8px 16px;}
.impersonation-bar a{color:#fff; font-weight:700; margin-left:10px; text-decoration:underline;}

/* Conta: foto de perfil no cartão do topo (clicar = enviar nova foto) */
.pagehero-account{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.avatar-box{flex:none; display:flex; flex-direction:column; align-items:center; gap:8px;}
.avatar{position:relative; display:block; width:112px; height:112px; border-radius:50%; overflow:hidden; cursor:pointer;
  border:3px solid rgba(246,241,227,0.85); box-shadow:0 10px 30px -10px rgba(0,0,0,0.5); background:#fff;}
.avatar img{width:100%; height:100%; object-fit:cover; display:block;}
.avatar input[type=file]{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;}
.avatar-overlay{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  background:rgba(14,30,48,0.6); color:#fff; opacity:0; transition:opacity .2s ease; font-size:12px; font-weight:600;}
.avatar-overlay svg{width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round;}
.avatar:hover .avatar-overlay, .avatar:focus-within .avatar-overlay, .avatar.is-loading .avatar-overlay{opacity:1;}
.avatar.is-loading .avatar-overlay span{font-size:0;}
.avatar.is-loading .avatar-overlay span::after{content:'A enviar…'; font-size:12px;}
.avatar-remove button{background:none; border:0; padding:0; font:inherit; font-size:12px; color:rgba(241,234,217,0.7); cursor:pointer; text-decoration:underline;}
.avatar-remove button:hover{color:#fff;}
@media (max-width:640px){
  .avatar{width:84px; height:84px;}
  .pagehero-account{gap:14px;}
}

/* Conta > Segurança: verificação em dois passos */
.mfa-badge{display:inline-block; font-size:11px; font-weight:700; padding:2px 8px; border-radius:20px; background:rgba(95,191,143,0.18); color:var(--teal-deep); vertical-align:1px;}
.mfa-options{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.mfa-option{display:flex; flex-direction:column; gap:8px; align-items:flex-start; border:1px solid var(--line); border-radius:12px; padding:18px;}
.mfa-option b{font-size:15px;}
.mfa-option span{font-size:13px; color:rgba(19,36,32,0.65); line-height:1.5; flex:1;}
.mfa-steps{padding-left:20px; margin:0 0 18px;}
.mfa-steps li{margin-bottom:4px;}
.mfa-qr{display:flex; gap:20px; align-items:center; margin-bottom:20px;}
.mfa-qr svg{flex:none; border:1px solid var(--line); border-radius:8px;}
.mfa-secret{margin-top:8px; padding:8px 10px; background:var(--paper); border-radius:6px; font-size:14px; letter-spacing:1px; word-break:break-all; color:var(--ink);}
.mfa-codes{display:grid; grid-template-columns:repeat(2, max-content); gap:8px 28px; padding:14px 18px; background:var(--paper); border-radius:8px; font-size:15px;}
.mfa-recovery{margin-bottom:20px; border:1px solid rgba(95,191,143,0.5);}
.mfa-link{background:none; border:0; padding:0; font:inherit; font-size:13.5px; color:var(--teal-deep); font-weight:600; cursor:pointer;}
.btn-danger{background:var(--coral); color:#fff; border-color:transparent;}
@media (max-width:640px){
  .mfa-options{grid-template-columns:1fr;}
  .mfa-qr{flex-direction:column; align-items:flex-start;}
}

/* ---------- Contactos: painel de informações úteis ---------- */
.contact-info{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:26px 26px 10px;
  box-shadow:0 30px 60px -30px rgba(14,42,61,0.2);
}
.ci-head{margin-bottom:6px;}
.ci-head h3{font-size:21px; margin-top:6px;}
.ci-item{display:flex; gap:16px; padding:18px 0; border-top:1px dashed var(--line);}
.ci-head + .ci-item{border-top:none;}
.ci-ic{
  flex:none; width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:rgba(62,124,116,0.1); color:var(--teal-deep);
}
.ci-ic svg{width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.ci-body{flex:1; min-width:0;}
.ci-body h4{font-size:15px; margin:0 0 4px; line-height:1.2;} /* topo do título alinhado com o topo do ícone */
.ci-body p{margin:0 0 10px; font-size:13.5px; color:rgba(19,36,32,0.65); line-height:1.5;}
.ci-chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px;}
.ci-chips span{font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:20px; background:var(--paper); color:var(--ink);}
.ci-link{font-size:13.5px; font-weight:600; color:var(--teal-deep); text-decoration:none;}
.ci-link:hover{text-decoration:underline;}
.ci-complaints{display:inline-flex; align-items:center; gap:10px; padding:6px 14px 6px 6px; border-radius:30px; background:var(--ink); color:#F1EAD9; text-decoration:none; font-size:13px; font-weight:600;}
.ci-complaints:hover{background:var(--teal-deep);}
.ci-complaints img{height:34px; width:auto; display:block;}

/* ---------- Páginas legais (Política de Privacidade) ---------- */
.legal{display:grid; grid-template-columns:230px 1fr; gap:48px; align-items:start; padding-top:8px; padding-bottom:20px;}
.legal-toc{position:sticky; top:110px; display:flex; flex-direction:column; gap:2px; font-size:13.5px; border-left:2px solid var(--line); padding-left:16px;}
.legal-toc b{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:rgba(19,36,32,0.55); margin-bottom:8px;}
.legal-toc a{color:var(--ink); text-decoration:none; padding:4px 0; opacity:0.75;}
.legal-toc a:hover{opacity:1; color:var(--teal-deep);}
.legal > *{min-width:0;} /* a tabela larga desliza dentro da caixa, sem alargar a página */
.legal-body{max-width:760px; font-size:15px; line-height:1.7; color:rgba(19,36,32,0.88);}
.legal-updated{display:inline-flex; align-items:center; gap:10px; font-size:14px; font-weight:600; color:var(--teal-deep);
  background:rgba(95,191,143,0.12); border:1px solid rgba(95,191,143,0.35); border-radius:999px; padding:6px 16px 6px 6px; margin:0 0 18px !important;}
.legal-check{flex:none; width:24px; height:24px; border-radius:50%; background:#2E9E5B; display:flex; align-items:center; justify-content:center;}
.legal-check svg{width:15px; height:15px; fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;}
.legal-body h2{font-size:22px; margin:40px 0 12px; color:var(--ink); scroll-margin-top:100px;}
.legal-body h2:first-of-type{margin-top:28px;}
.legal-body p{margin:0 0 14px;}
.legal-body ul{margin:0 0 16px; padding-left:20px;}
.legal-body li{margin-bottom:6px;}
.legal-body a{color:var(--teal-deep); font-weight:600;}
.legal-body code{font-family:'IBM Plex Mono',monospace; font-size:12.5px; background:var(--paper); padding:1px 6px; border-radius:4px;}
.legal-table{overflow-x:auto; margin:0 0 18px; border:1px solid var(--line); border-radius:10px;}
.legal-table table{width:100%; border-collapse:collapse; font-size:13.5px; line-height:1.5;}
.legal-table th{background:var(--paper); text-align:left; font-weight:600; padding:10px 14px; color:var(--ink);}
.legal-table td{padding:10px 14px; border-top:1px solid var(--line); vertical-align:top;}
.legal-table td:first-child{font-weight:600; color:var(--ink); white-space:nowrap;}
@media (max-width:860px){
  .legal{grid-template-columns:1fr; gap:24px;}
  .legal-toc{position:static;}
  .legal-table td:first-child{white-space:normal;}
}
