/* =========================================================================
   Cantina Nonna Ines — Restaurante na Praia do Rosa
   CSS único (sem build) organizado em camadas: tokens → base → layout →
   componentes → responsivo. Espaçamento na escala Fibonacci.
   ========================================================================= */

/* ----------------------------- 1. TOKENS ------------------------------- */
:root{
  /* cores da marca (extraídas do logotipo) */
  --brand:#31683C;          /* verde cantina (primária)  */
  --brand-dark:#1F4B2A;     /* verde escuro (headers)    */
  --brand-soft:#539B7D;     /* verde sálvia (acento)     */
  --accent:#C8362F;         /* vermelho tomate (CTA)     */
  --accent-dark:#9E2A24;
  --gold:#E1B918;           /* mostarda                  */
  --terra:#95473F;          /* terracota (apoio)         */
  --bg:#F7F2E7;             /* creme (fundo)             */
  --surface:#FFFFFF;        /* superfícies/cards         */
  --ink:#2B2A28;            /* texto                     */
  --ink-soft:#5b574f;       /* texto secundário          */
  --line:#e6ddca;           /* linhas/bordas            */

  /* escala Fibonacci (px) — espaçamento, raio, gaps */
  --fib-1:5px; --fib-2:8px; --fib-3:13px; --fib-4:21px;
  --fib-5:34px; --fib-6:55px; --fib-7:89px; --fib-8:144px;

  --radius:var(--fib-3);
  --radius-lg:var(--fib-4);
  --shadow:0 var(--fib-2) var(--fib-5) rgba(43,42,40,.12);
  --shadow-sm:0 var(--fib-1) var(--fib-3) rgba(43,42,40,.08);
  --maxw:1180px;

  --font-title:"Poppins", system-ui, -apple-system, sans-serif;
  --font-body:"Poppins", system-ui, -apple-system, sans-serif;
  --t-fast:.18s ease; --t:.28s ease;
}

/* ------------------------------ 2. BASE -------------------------------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--fib-7)}
body{font-family:var(--font-body);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-title);line-height:1.15;color:var(--brand-dark);font-weight:700}
h1{font-size:clamp(2.1rem,5.5vw,3.6rem)}
h2{font-size:clamp(1.6rem,3.6vw,2.5rem)}
h3{font-size:1.3rem}
p{margin-bottom:var(--fib-3)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
::selection{background:var(--gold);color:var(--ink)}

/* ----------------------------- 3. LAYOUT ------------------------------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--fib-4)}
.container.narrow{max-width:760px}
.section{padding-block:var(--fib-7)}
.section-head{text-align:center;max-width:720px;margin:0 auto var(--fib-6)}
.section-lead{color:var(--ink-soft);font-size:1.1rem}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:900;color:var(--accent);margin-bottom:var(--fib-2)}
.hl{color:var(--accent)}

/* --------------------------- 4. COMPONENTES ---------------------------- */
/* botões */
.btn{display:inline-flex;align-items:center;gap:var(--fib-2);font-family:var(--font-body);font-weight:800;
  padding:var(--fib-3) var(--fib-5);border-radius:999px;cursor:pointer;border:2px solid transparent;
  transition:transform var(--t-fast),background var(--t),box-shadow var(--t);font-size:1rem}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--accent-dark)}
.btn-ghost{background:transparent;color:var(--brand-dark);border-color:var(--brand)}
.btn-ghost:hover{background:var(--brand);color:#fff}
.btn-whats{background:var(--brand);color:#fff!important}
.btn-whats:hover{background:var(--brand-dark);color:#fff!important}
.btn-whats:visited{color:#fff!important}
.btn-lg{font-size:1.15rem;padding:var(--fib-4) var(--fib-6)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,242,231,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--fib-4);padding-block:var(--fib-2)}
.brand{display:flex;align-items:center;gap:var(--fib-3)}
.brand img{width:56px;height:56px;border-radius:50%;box-shadow:var(--shadow-sm)}
.brand-name{font-family:var(--font-title);font-size:1.25rem;color:var(--brand-dark)}
.brand-name strong{color:var(--accent)}
.main-nav{display:flex;align-items:center;gap:var(--fib-4)}
.main-nav>a{font-weight:700;color:var(--ink);transition:color var(--t-fast)}
.main-nav>a:hover{color:var(--accent)}
.main-nav .btn{padding:var(--fib-2) var(--fib-4)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:var(--fib-2)}
.nav-toggle span{width:26px;height:3px;background:var(--brand-dark);border-radius:2px;transition:var(--t)}

/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,26,.80),rgba(15,20,15,.92))}
.hero-content{position:relative;max-width:760px;padding-block:var(--fib-7)}
.hero h1{color:#fff;margin-bottom:var(--fib-4);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero h1 .hl{color:var(--gold)}
.hero .eyebrow{color:var(--gold)}
.hero-sub{font-size:1.25rem;margin-bottom:var(--fib-5);max-width:600px}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--fib-3);margin-bottom:var(--fib-5)}
.hero-cta .btn-ghost{color:#fff;border-color:#fff}
.hero-cta .btn-ghost:hover{background:#fff;color:var(--brand-dark)}
.hero-hours{display:inline-flex;align-items:center;gap:var(--fib-3);font-weight:700;background:rgba(0,0,0,.28);
  padding:var(--fib-2) var(--fib-4);border-radius:999px;backdrop-filter:blur(4px)}
.open-badge{font-weight:900;padding:2px 10px;border-radius:999px;font-size:.8rem}
.open-badge.open{background:var(--brand-soft);color:#06301d}
.open-badge.closed{background:var(--terra);color:#fff}

/* cards de serviço */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fib-5)}
.card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--fib-5);text-align:center;
  box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform var(--t),box-shadow var(--t)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-icon{font-size:2.6rem;margin-bottom:var(--fib-3)}
.card h3{color:var(--brand);margin-bottom:var(--fib-2)}
.card p{color:var(--ink-soft);margin:0}

/* sobre */
.about{background:var(--surface)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--fib-6);align-items:center}
.about-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;object-fit:cover;aspect-ratio:3/2}
.link-arrow{display:inline-block;margin-top:var(--fib-2);font-weight:800;color:var(--accent)}
.link-arrow:hover{color:var(--accent-dark)}

/* galeria */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fib-3)}
.gallery-grid figure{margin:0;overflow:hidden;border-radius:var(--radius);cursor:pointer;aspect-ratio:1;box-shadow:var(--shadow-sm)}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.gallery-grid figure:hover img{transform:scale(1.08)}

/* localização */
.location{background:var(--brand-dark);color:#f3eddc}
.location h2{color:#fff}
.location .eyebrow{color:var(--gold)}
.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--fib-6);align-items:center}
.info-list{list-style:none;margin:var(--fib-4) 0;display:grid;gap:var(--fib-3)}
.info-list li{padding-left:0}
.info-list strong{display:block;color:var(--gold);font-size:.95rem;margin-bottom:2px}
.info-list a{color:#fff;text-decoration:underline}
.location-cta{display:flex;flex-wrap:wrap;gap:var(--fib-3);margin-top:var(--fib-4)}
.location .btn-ghost{color:#fff;border-color:#fff}
.location .btn-ghost:hover{background:#fff;color:var(--brand-dark)}
.location-map{height:380px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.location-map iframe{width:100%;height:100%}

/* faq */
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:var(--fib-3) var(--fib-4);margin-bottom:var(--fib-3);box-shadow:var(--shadow-sm)}
.faq summary{font-weight:800;cursor:pointer;color:var(--brand-dark);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--accent);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:var(--fib-3) 0 0;color:var(--ink-soft)}

/* cta final */
.cta-final{background:var(--accent);color:#fff;text-align:center;padding-block:var(--fib-7)}
.cta-final h2{color:#fff;margin-bottom:var(--fib-2)}
.cta-final p{margin-bottom:var(--fib-5);font-size:1.1rem}
.cta-final .btn-primary{background:#fff;color:var(--accent)}
.cta-final .btn-primary:hover{background:var(--bg)}

/* footer */
.site-footer{background:#23231f;color:#cfc9bb;padding-top:var(--fib-6)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--fib-5);padding-bottom:var(--fib-5)}
.site-footer img{border-radius:50%;margin-bottom:var(--fib-3)}
.site-footer h3{color:#fff;font-family:var(--font-body);font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--fib-3)}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--brand-soft)}
.footer-tag{max-width:280px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:var(--fib-3);font-size:.85rem;text-align:center}

/* whatsapp flutuante */
.whats-float{position:fixed;right:var(--fib-4);bottom:var(--fib-4);z-index:60;width:60px;height:60px;border-radius:50%;
  background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.25);
  transition:transform var(--t)}
.whats-float:hover{transform:scale(1.1)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,18,15,.93);display:none;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:86vh;border-radius:var(--radius);box-shadow:0 12px 60px rgba(0,0,0,.6)}
.lb-close,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;cursor:pointer;
  width:52px;height:52px;border-radius:50%;font-size:1.6rem;display:flex;align-items:center;justify-content:center;transition:background var(--t)}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--accent)}
.lb-close{top:var(--fib-4);right:var(--fib-4)}
.lb-prev{left:var(--fib-4)}
.lb-next{right:var(--fib-4)}

/* --------------------------- 5. RESPONSIVO ----------------------------- */
@media (max-width:768px){
  .main-nav{position:fixed;inset:0 0 0 auto;width:78%;max-width:320px;background:var(--bg);flex-direction:column;
    align-items:flex-start;justify-content:flex-start;gap:var(--fib-4);padding:var(--fib-7) var(--fib-5);
    transform:translateX(100%);transition:transform var(--t);box-shadow:var(--shadow);z-index:55}
  .main-nav.open{transform:translateX(0)}
  .nav-toggle{display:flex}
  .nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .cards-3{grid-template-columns:1fr}
  .about-grid,.location-grid{grid-template-columns:1fr}
  .about-media{order:-1}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr;gap:var(--fib-4)}
  .hero{min-height:80vh}
  .lb-prev{left:var(--fib-2)} .lb-next{right:var(--fib-2)}
}
@media (max-width:480px){
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{justify-content:center}
  .brand-name{font-size:1.05rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}

/* =========================================================================
   6. DESIGN ENHANCEMENTS — camada de refino visual (sem logotipo, ícones
   FontAwesome nas cores da identidade, Poppins). Tudo construído sobre os
   tokens semânticos e a escala Fibonacci já definidos acima.
   ========================================================================= */

/* ----- 6.1 Marca por ícone (substitui o logotipo) ---------------------- */
.brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,var(--brand-soft),var(--brand) 70%);
  color:#fff;font-size:1.35rem;box-shadow:var(--shadow-sm);
  border:2px solid var(--gold);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.brand:hover .brand-mark{transform:rotate(-8deg) scale(1.06);box-shadow:var(--shadow);border-color:var(--accent)}
.brand-mark i{transform:translateY(1px)}
.brand-name{font-weight:700;letter-spacing:.2px}
.brand-name strong{color:var(--accent);font-weight:800}

/* marca do rodapé */
.footer-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:58px;height:58px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand),var(--brand-dark));
  color:var(--gold);font-size:1.5rem;margin-bottom:var(--fib-3);
  border:2px solid rgba(255,255,255,.14)}
.footer-brand{display:block;font-family:var(--font-title);font-size:1.2rem;color:#fff;margin-bottom:var(--fib-2)}
.footer-brand strong{color:var(--gold)}
.footer-social{display:flex;gap:var(--fib-3);margin-top:var(--fib-3)}
.footer-social a{
  display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);
  color:#fff!important;font-size:1.1rem;transition:background var(--t),transform var(--t),color var(--t)}
.footer-social a:hover{background:var(--accent);color:#fff!important;transform:translateY(-3px)}

/* logo real no header (fundo transparente sobre o creme) */
.brand-logo{height:62px;width:auto;display:block;transition:height var(--t)}
.site-header.scrolled .brand-logo{height:50px}
@media (max-width:480px){.brand-logo{height:50px}}
/* logo real no rodapé — chip claro p/ o texto preto do logo aparecer no fundo escuro */
.footer-logo{display:inline-flex;align-items:center;justify-content:center;background:var(--bg);
  border-radius:var(--fib-3);padding:var(--fib-2) var(--fib-3);margin-bottom:var(--fib-3);box-shadow:var(--shadow-sm)}
.footer-logo img{height:60px;width:auto;display:block}

/* ----- 6.2 Sistema de ícones FontAwesome nas cores da marca ------------ */
.card-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:88px;height:88px;border-radius:50%;margin:0 auto var(--fib-3);
  font-size:2.2rem;color:var(--brand);
  background:radial-gradient(circle at 35% 30%,#fff,var(--bg));
  box-shadow:inset 0 0 0 2px var(--line),var(--shadow-sm);
  transition:transform var(--t),color var(--t),box-shadow var(--t),background var(--t)}
.card:nth-child(1) .card-icon{color:var(--brand)}
.card:nth-child(2) .card-icon{color:var(--accent)}
.card:nth-child(3) .card-icon{color:var(--gold)}
.card:hover .card-icon{transform:translateY(-6px) scale(1.08);box-shadow:inset 0 0 0 2px var(--brand-soft),var(--shadow)}
.card:nth-child(2):hover .card-icon{box-shadow:inset 0 0 0 2px var(--accent),var(--shadow)}
.card:nth-child(3):hover .card-icon{box-shadow:inset 0 0 0 2px var(--gold),var(--shadow)}
.info-list i{color:var(--gold);width:1.2em;text-align:center;margin-right:4px}
.hero-hours i{color:var(--gold)}
.site-footer h3 i{color:var(--gold);margin-right:6px}
.site-footer p i{color:var(--brand-soft);width:1.1em;text-align:center;margin-right:4px}

/* utilidades de cor de ícone (identidade visual) */
.ic-green{color:var(--brand)!important}
.ic-green-soft{color:var(--brand-soft)!important}
.ic-red{color:var(--accent)!important}
.ic-gold{color:var(--gold)!important}
.ic-terra{color:var(--terra)!important}
.ic-cream{color:var(--bg)!important}
.icon-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg);color:var(--brand);font-size:1.1rem}
.icon-badge--red{background:rgba(200,54,47,.12);color:var(--accent)}
.icon-badge--gold{background:rgba(225,185,24,.16);color:#a9870e}
.icon-badge--green{background:rgba(49,104,60,.12);color:var(--brand)}
/* ----- 6.3 Tipografia (Poppins) — refino fino --------------------------- */
h1,h2,h3,h4,h5,h6{font-family:var(--font-title);letter-spacing:-.02em}
h1{font-weight:800;line-height:1.08}
h2{font-weight:800}
h3{font-weight:700}
h4{font-weight:700;font-size:1.1rem;color:var(--brand-dark)}
h5{font-weight:600;font-size:1rem}
h6{font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}
strong,b{font-weight:700}
.eyebrow{font-weight:800}
.lead{font-size:1.2rem;line-height:1.7;color:var(--ink-soft);font-weight:400}
.text-balance{text-wrap:balance}
.text-pretty{text-wrap:pretty}
.muted{color:var(--ink-soft)}
.tiny{font-size:.8rem}
.upper{text-transform:uppercase;letter-spacing:.1em}
.italic{font-style:italic}
.fw-300{font-weight:300}.fw-400{font-weight:400}.fw-500{font-weight:500}
.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.fw-900{font-weight:900}
/* título com sublinhado decorativo */
.section-head h2{position:relative;display:inline-block}
.section-head h2::after{
  content:"";display:block;width:64px;height:4px;margin:var(--fib-3) auto 0;border-radius:4px;
  background:linear-gradient(90deg,var(--brand),var(--gold),var(--accent))}
.location .section-head h2::after,.location h2::after{background:linear-gradient(90deg,var(--gold),#fff)}
/* destaque de palavra-chave com marca-texto suave */
.mark{background:linear-gradient(transparent 60%,rgba(225,185,24,.45) 0);padding:0 .12em}
.mark-green{background:linear-gradient(transparent 60%,rgba(83,155,125,.4) 0);padding:0 .12em}
/* primeira letra (drop-cap) opcional para blocos de história */
.dropcap::first-letter{
  font-family:var(--font-title);font-weight:800;float:left;font-size:3.4rem;line-height:.82;
  padding:6px 10px 0 0;color:var(--accent)}
/* citação */
.pull-quote{
  font-family:var(--font-title);font-size:clamp(1.3rem,2.6vw,1.8rem);font-weight:600;
  line-height:1.35;color:var(--brand-dark);position:relative;padding:var(--fib-4) 0 var(--fib-4) var(--fib-5);
  border-left:5px solid var(--gold);margin:var(--fib-5) 0}
.pull-quote::before{content:"\201C";font-size:3rem;color:var(--gold);position:absolute;left:-6px;top:-6px;opacity:.5}

/* ----- 6.4 Elementos decorativos --------------------------------------- */
/* separador com losango central (estilo cantina) */
.divider{display:flex;align-items:center;gap:var(--fib-3);margin:var(--fib-5) auto;max-width:280px;color:var(--brand-soft)}
.divider::before,.divider::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--line))}
.divider::after{background:linear-gradient(90deg,var(--line),transparent)}
.divider i{font-size:1rem}
/* faixa de "ingredientes" decorativa no topo de seções */
.ribbon-strip{height:8px;width:100%;background:
  repeating-linear-gradient(45deg,var(--brand) 0 16px,var(--brand-soft) 16px 32px)}
.ribbon-strip--warm{background:repeating-linear-gradient(45deg,var(--accent) 0 16px,var(--gold) 16px 32px)}
/* onda separadora entre seções (SVG via mask não necessária — usa clip) */
.wave-sep{position:relative;height:var(--fib-6);overflow:hidden}
.wave-sep::before{content:"";position:absolute;inset:0;background:var(--surface);
  -webkit-mask:radial-gradient(40px at 50% 0,transparent 99%,#000) repeat-x;mask:radial-gradient(40px at 50% 0,transparent 99%,#000) repeat-x;-webkit-mask-size:80px 100%;mask-size:80px 100%}
/* pontilhado decorativo */
.dots-bg{background-image:radial-gradient(var(--line) 1.5px,transparent 1.5px);background-size:18px 18px}
/* cantos arredondados grandes para blocos hero internos */
.soft-card{background:var(--surface);border-radius:var(--fib-5);box-shadow:var(--shadow);padding:var(--fib-5)}
/* selo redondo (ex.: "desde 1900") */
.seal{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:104px;height:104px;border-radius:50%;background:var(--accent);color:#fff;text-align:center;
  font-weight:800;line-height:1.1;box-shadow:var(--shadow);border:3px dashed rgba(255,255,255,.5)}
.seal span{font-size:.7rem;font-weight:600;opacity:.9}
.seal strong{font-size:1.4rem}
/* ----- 6.5 Sistema de botões (variações de design) --------------------- */
.btn{position:relative;overflow:hidden;isolation:isolate;letter-spacing:.01em}
.btn i{font-size:.95em}
/* brilho que cruza no hover */
.btn::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);
  transform:translateX(-120%);transition:transform .6s ease}
.btn:hover::after{transform:translateX(120%)}
.btn:active{transform:translateY(0) scale(.98)}
/* variações de cor */
.btn-gold{background:var(--gold);color:#3b2f00}
.btn-gold:hover{background:#c9a40f;color:#3b2f00}
.btn-terra{background:var(--terra);color:#fff}
.btn-terra:hover{background:#7e3a33;color:#fff}
.btn-dark{background:var(--brand-dark);color:#fff}
.btn-dark:hover{background:#163920;color:#fff}
.btn-white{background:#fff;color:var(--brand-dark)}
.btn-white:hover{background:var(--bg);color:var(--brand-dark)}
.btn-outline-gold{background:transparent;color:var(--gold);border-color:var(--gold)}
.btn-outline-gold:hover{background:var(--gold);color:#3b2f00}
.btn-gradient{background:linear-gradient(120deg,var(--accent),var(--terra));color:#fff;border:0}
.btn-gradient:hover{background:linear-gradient(120deg,var(--accent-dark),var(--terra))}
.btn-gradient-green{background:linear-gradient(120deg,var(--brand-soft),var(--brand));color:#fff;border:0}
/* tamanhos */
.btn-sm{font-size:.85rem;padding:var(--fib-2) var(--fib-4)}
.btn-xl{font-size:1.25rem;padding:var(--fib-4) var(--fib-7)}
.btn-block{display:flex;width:100%;justify-content:center}
.btn-pill{border-radius:999px}
.btn-square{border-radius:var(--fib-2)}
/* botão só ícone */
.btn-icon{width:48px;height:48px;padding:0;border-radius:50%;justify-content:center}
.btn-icon.btn-sm{width:38px;height:38px}
.btn-icon.btn-lg{width:60px;height:60px;font-size:1.3rem}
/* botão com ícone à direita que desliza */
.btn-arrow i{transition:transform var(--t)}
.btn-arrow:hover i{transform:translateX(4px)}
/* grupo de botões */
.btn-group{display:inline-flex;flex-wrap:wrap;gap:var(--fib-3)}
.btn-group.center{justify-content:center}
/* estado carregando */
.btn.is-loading{color:transparent!important;pointer-events:none}
.btn.is-loading::before{content:"";position:absolute;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}

/* ----- 6.6 Chips, tags, badges, pills ---------------------------------- */
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;
  background:var(--surface);border:1px solid var(--line);font-size:.85rem;font-weight:600;color:var(--ink-soft)}
.chip i{color:var(--brand)}
.chip--green{background:rgba(49,104,60,.1);border-color:transparent;color:var(--brand-dark)}
.chip--red{background:rgba(200,54,47,.1);border-color:transparent;color:var(--accent-dark)}
.chip--gold{background:rgba(225,185,24,.16);border-color:transparent;color:#8a6d08}
.tag{display:inline-block;padding:3px 10px;border-radius:var(--fib-2);font-size:.72rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em}
.tag--new{background:var(--accent);color:#fff}
.tag--top{background:var(--gold);color:#3b2f00}
.tag--veg{background:var(--brand);color:#fff}
.badge-dot{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;color:var(--ink-soft)}
.badge-dot::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--brand-soft)}
.badge-dot.is-open::before{background:#36b06a;box-shadow:0 0 0 4px rgba(54,176,106,.2)}
.badge-dot.is-closed::before{background:var(--terra)}
/* fita diagonal no canto de um card */
.corner-ribbon{position:absolute;top:14px;right:-34px;transform:rotate(45deg);
  background:var(--accent);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.08em;
  padding:5px 40px;text-transform:uppercase;box-shadow:var(--shadow-sm)}
/* ----- 6.7 Header / navegação ------------------------------------------ */
.site-header{transition:background var(--t),box-shadow var(--t),padding var(--t)}
.site-header.scrolled{background:rgba(247,242,231,.98);box-shadow:0 var(--fib-2) var(--fib-4) rgba(43,42,40,.1)}
.site-header.scrolled .header-inner{padding-block:var(--fib-1)}
.site-header.scrolled .brand-mark{width:46px;height:46px;font-size:1.2rem}
/* underline animado nos links de nav */
.main-nav>a:not(.btn){position:relative;padding-block:4px}
.main-nav>a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform var(--t)}
.main-nav>a:not(.btn):hover::after,.main-nav>a:not(.btn).active::after{transform:scaleX(1);transform-origin:left}
/* botão verde do header sempre com texto branco (reforço) */
.main-nav .btn-whats{color:#fff!important;box-shadow:0 4px 14px rgba(49,104,60,.35)}
.main-nav .btn-whats:hover{box-shadow:0 6px 20px rgba(49,104,60,.45)}
/* backdrop do menu mobile */
.nav-backdrop{position:fixed;inset:0;background:rgba(20,20,16,.5);backdrop-filter:blur(2px);
  opacity:0;visibility:hidden;transition:opacity var(--t),visibility var(--t);z-index:54}
.nav-backdrop.show{opacity:1;visibility:visible}

/* ----- 6.8 Hero — profundidade e movimento ----------------------------- */
.hero-bg{animation:kenburns 22s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.05) translate(0,0)}to{transform:scale(1.16) translate(-1.5%,-1.5%)}}
/* vinheta extra nas bordas para escurecer ainda mais o banner */
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 30%,transparent 40%,rgba(0,0,0,.55) 100%)}
.hero-content{z-index:2}
.eyebrow{display:inline-flex;align-items:center;gap:8px}
.hero .eyebrow::before{content:"";width:28px;height:2px;background:var(--gold);display:inline-block}
.hero-sub{color:#f2ede0}
/* indicador de rolagem */
.scroll-cue{position:absolute;left:50%;bottom:var(--fib-4);transform:translateX(-50%);z-index:3;
  color:#fff;opacity:.8;font-size:1.2rem;animation:bob 1.8s ease-in-out infinite}
.scroll-cue::after{content:"";display:block;width:1px;height:34px;margin:6px auto 0;
  background:linear-gradient(#fff,transparent)}
/* selo flutuante sobre o hero */
.hero-float-badge{position:absolute;right:var(--fib-6);top:30%;z-index:3;
  background:var(--gold);color:#3b2f00;border-radius:50%;width:120px;height:120px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  font-weight:800;line-height:1.1;box-shadow:var(--shadow);animation:float 4s ease-in-out infinite}
.hero-float-badge span{font-size:.7rem;font-weight:600}
@media (max-width:768px){.hero-float-badge{display:none}}
/* ----- 6.9 Cards de serviço — profundidade ----------------------------- */
.card{position:relative;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--brand),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
.card:nth-child(2)::before{background:linear-gradient(90deg,var(--accent),var(--terra))}
.card:nth-child(3)::before{background:linear-gradient(90deg,var(--gold),var(--brand-soft))}
.card:hover::before{transform:scaleX(1)}
.card::after{content:"";position:absolute;right:-40px;bottom:-40px;width:130px;height:130px;border-radius:50%;
  background:radial-gradient(circle,rgba(49,104,60,.06),transparent 70%);transition:transform var(--t)}
.card:hover::after{transform:scale(1.4)}
.card h3{transition:color var(--t)}
.card:hover h3{color:var(--accent)}
.card .card-link{display:inline-flex;align-items:center;gap:6px;margin-top:var(--fib-3);font-weight:700;color:var(--brand);opacity:0;transform:translateY(8px);transition:opacity var(--t),transform var(--t)}
.card:hover .card-link{opacity:1;transform:none}
/* grade de 2 e 4 colunas reutilizável */
.cards-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--fib-5)}
.cards-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fib-4)}
/* card de destaque (feature) com ícone à esquerda */
.feature{display:flex;gap:var(--fib-4);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:var(--fib-4);box-shadow:var(--shadow-sm);transition:transform var(--t),box-shadow var(--t)}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.feature .feature-ic{flex:0 0 auto;width:60px;height:60px;border-radius:var(--fib-3);display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;background:linear-gradient(135deg,var(--brand-soft),var(--brand))}
.feature h4{margin-bottom:4px}
.feature p{margin:0;color:var(--ink-soft);font-size:.95rem}

/* ----- 6.10 Seção "sobre" — moldura nas fotos -------------------------- */
.about-media{position:relative}
.about-media::before{content:"";position:absolute;inset:-14px -14px auto auto;width:60%;height:60%;
  border:3px solid var(--gold);border-radius:var(--radius-lg);z-index:-1}
.about-media::after{content:"";position:absolute;left:-14px;bottom:-14px;width:45%;height:45%;
  background:var(--brand-soft);border-radius:var(--radius-lg);z-index:-1;opacity:.25}
.about-media img{position:relative;z-index:1}
.about-text .chip{margin-bottom:var(--fib-3)}
.about-stats{display:flex;gap:var(--fib-5);margin-top:var(--fib-4);flex-wrap:wrap}
.about-stats .stat{text-align:center}
.about-stats .stat strong{display:block;font-family:var(--font-title);font-size:2rem;color:var(--accent);line-height:1}
.about-stats .stat span{font-size:.82rem;color:var(--ink-soft);font-weight:600}

/* ----- 6.11 Galeria — overlay e zoom ----------------------------------- */
.gallery-grid figure{position:relative}
.gallery-grid figure::after{content:"\f00e";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;
  background:linear-gradient(180deg,rgba(31,75,42,0),rgba(20,30,20,.55));opacity:0;transition:opacity var(--t)}
.gallery-grid figure:hover::after{opacity:1}
.gallery-grid figure .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:var(--fib-3);
  color:#fff;font-size:.8rem;font-weight:600;transform:translateY(100%);transition:transform var(--t);
  background:linear-gradient(transparent,rgba(0,0,0,.6))}
.gallery-grid figure:hover .cap{transform:none}
/* item largo opcional (destaque na grade) */
.gallery-grid figure.wide{grid-column:span 2;aspect-ratio:2/1}
.gallery-grid figure.tall{grid-row:span 2;aspect-ratio:1/2}
/* filtros de categoria da galeria */
.gallery-filters{display:flex;flex-wrap:wrap;gap:var(--fib-2);justify-content:center;margin-bottom:var(--fib-5)}
.gallery-filters button{border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
  padding:8px 18px;border-radius:999px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t)}
.gallery-filters button:hover{border-color:var(--brand-soft);color:var(--brand)}
.gallery-filters button.active{background:var(--brand);color:#fff;border-color:var(--brand)}
/* ----- 6.12 Localização ------------------------------------------------- */
.location{position:relative;overflow:hidden}
.location::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
  background-image:radial-gradient(#fff 1.5px,transparent 1.5px);background-size:22px 22px}
.info-list li{position:relative;padding:var(--fib-3) var(--fib-3) var(--fib-3) var(--fib-6);
  background:rgba(255,255,255,.05);border-radius:var(--radius);border:1px solid rgba(255,255,255,.08)}
.info-list li>strong{position:static}
.info-list li i{position:absolute;left:var(--fib-3);top:50%;transform:translateY(-50%);
  font-size:1.1rem;width:auto}
.location-map{position:relative}
.location-map::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);
  box-shadow:inset 0 0 0 4px rgba(255,255,255,.5);pointer-events:none}

/* ----- 6.13 FAQ — acordeão polido -------------------------------------- */
.faq details{transition:box-shadow var(--t),border-color var(--t)}
.faq details[open]{border-color:var(--brand-soft);box-shadow:var(--shadow)}
.faq summary{display:flex;align-items:center;gap:var(--fib-3);padding-right:var(--fib-5);transition:color var(--t)}
.faq summary::before{content:"\f059";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--brand);font-size:1rem}
.faq details[open] summary{color:var(--accent)}
.faq details[open] summary::before{color:var(--accent)}
.faq details p{animation:fadeInUp .4s ease both}

/* ----- 6.14 CTA final --------------------------------------------------- */
.cta-final{position:relative;overflow:hidden}
.cta-final::before,.cta-final::after{content:"\f2e7";font-family:"Font Awesome 6 Free";font-weight:900;
  position:absolute;font-size:9rem;opacity:.08;color:#fff}
.cta-final::before{left:-20px;top:-30px;transform:rotate(-15deg)}
.cta-final::after{right:-20px;bottom:-40px;transform:rotate(15deg)}
.cta-final .container{position:relative;z-index:1}
.cta-final h2{font-size:clamp(1.8rem,4vw,2.8rem)}

/* ----- 6.15 Footer ------------------------------------------------------ */
.site-footer{position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--brand),var(--gold),var(--accent))}
.site-footer h3{display:flex;align-items:center;gap:8px}
.footer-bottom{color:#a39d90}
.footer-bottom a{color:#fff}
/* links de lista no rodapé (caso adicione) */
.footer-links{list-style:none;display:grid;gap:10px}
.footer-links a{display:inline-flex;align-items:center;gap:8px;color:#cfc9bb;transition:color var(--t),transform var(--t)}
.footer-links a:hover{color:#fff;transform:translateX(4px)}
.footer-links i{color:var(--gold);font-size:.8rem}

/* ----- 6.16 WhatsApp flutuante — anel pulsante ------------------------- */
.whats-float{animation:floatPulse 3s ease-in-out infinite}
.whats-float::before{content:"";position:absolute;inset:0;border-radius:50%;background:#25D366;z-index:-1;
  animation:ringPulse 2.2s ease-out infinite}
.whats-float::after{content:"Fale conosco";position:absolute;right:72px;white-space:nowrap;
  background:#23231f;color:#fff;font-size:.8rem;font-weight:600;padding:8px 12px;border-radius:8px;
  opacity:0;transform:translateX(8px);transition:opacity var(--t),transform var(--t);pointer-events:none}
.whats-float:hover::after{opacity:1;transform:none}

/* ----- 6.17 Lightbox — refino -------------------------------------------*/
.lightbox{backdrop-filter:blur(4px);animation:fadeIn .3s ease}
.lightbox img{animation:zoomIn .35s ease}
.lb-counter{position:absolute;bottom:var(--fib-4);left:50%;transform:translateX(-50%);color:#fff;
  font-weight:600;background:rgba(255,255,255,.12);padding:6px 16px;border-radius:999px;font-size:.85rem}
/* ----- 6.18 Keyframes --------------------------------------------------- */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes zoomIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes floatPulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@keyframes ringPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}
@keyframes popIn{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}

/* ----- 6.19 Utilitários de animação ------------------------------------ */
.anim-fade{animation:fadeIn .6s ease both}
.anim-up{animation:fadeInUp .7s ease both}
.anim-down{animation:fadeInDown .7s ease both}
.anim-left{animation:fadeInLeft .7s ease both}
.anim-right{animation:fadeInRight .7s ease both}
.anim-zoom{animation:zoomIn .6s ease both}
.anim-pop{animation:popIn .5s ease both}
.anim-float{animation:float 4s ease-in-out infinite}
.anim-pulse{animation:pulse 2.4s ease-in-out infinite}
.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}
.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.delay-6{animation-delay:.6s}
.dur-fast{animation-duration:.35s}.dur-slow{animation-duration:1s}

/* ----- 6.20 Scroll reveal (seguro: só dimer com JS ativo) -------------- */
html.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
html.js .reveal.in-view{opacity:1;transform:none}
html.js .reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .7s ease,transform .7s ease}
html.js .reveal-left.in-view{opacity:1;transform:none}
html.js .reveal-right{opacity:0;transform:translateX(32px);transition:opacity .7s ease,transform .7s ease}
html.js .reveal-right.in-view{opacity:1;transform:none}
html.js .reveal-zoom{opacity:0;transform:scale(.94);transition:opacity .7s ease,transform .7s ease}
html.js .reveal-zoom.in-view{opacity:1;transform:none}
/* atraso escalonado em filhos (stagger) */
html.js .stagger>*{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
html.js .stagger.in-view>*{opacity:1;transform:none}
html.js .stagger.in-view>*:nth-child(1){transition-delay:.05s}
html.js .stagger.in-view>*:nth-child(2){transition-delay:.13s}
html.js .stagger.in-view>*:nth-child(3){transition-delay:.21s}
html.js .stagger.in-view>*:nth-child(4){transition-delay:.29s}
html.js .stagger.in-view>*:nth-child(5){transition-delay:.37s}
html.js .stagger.in-view>*:nth-child(6){transition-delay:.45s}
html.js .stagger.in-view>*:nth-child(7){transition-delay:.53s}
html.js .stagger.in-view>*:nth-child(8){transition-delay:.61s}
/* ----- 6.21 Utilitários de layout / espaçamento (escala Fibonacci) ----- */
.mt-0{margin-top:0}.mt-1{margin-top:var(--fib-1)}.mt-2{margin-top:var(--fib-2)}.mt-3{margin-top:var(--fib-3)}
.mt-4{margin-top:var(--fib-4)}.mt-5{margin-top:var(--fib-5)}.mt-6{margin-top:var(--fib-6)}.mt-7{margin-top:var(--fib-7)}
.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--fib-1)}.mb-2{margin-bottom:var(--fib-2)}.mb-3{margin-bottom:var(--fib-3)}
.mb-4{margin-bottom:var(--fib-4)}.mb-5{margin-bottom:var(--fib-5)}.mb-6{margin-bottom:var(--fib-6)}.mb-7{margin-bottom:var(--fib-7)}
.my-3{margin-block:var(--fib-3)}.my-4{margin-block:var(--fib-4)}.my-5{margin-block:var(--fib-5)}.my-6{margin-block:var(--fib-6)}
.mx-auto{margin-inline:auto}
.pt-4{padding-top:var(--fib-4)}.pt-5{padding-top:var(--fib-5)}.pt-6{padding-top:var(--fib-6)}.pt-7{padding-top:var(--fib-7)}
.pb-4{padding-bottom:var(--fib-4)}.pb-5{padding-bottom:var(--fib-5)}.pb-6{padding-bottom:var(--fib-6)}.pb-7{padding-bottom:var(--fib-7)}
.p-3{padding:var(--fib-3)}.p-4{padding:var(--fib-4)}.p-5{padding:var(--fib-5)}.p-6{padding:var(--fib-6)}
.py-3{padding-block:var(--fib-3)}.py-4{padding-block:var(--fib-4)}.py-5{padding-block:var(--fib-5)}
.px-4{padding-inline:var(--fib-4)}.px-5{padding-inline:var(--fib-5)}
.gap-2{gap:var(--fib-2)}.gap-3{gap:var(--fib-3)}.gap-4{gap:var(--fib-4)}.gap-5{gap:var(--fib-5)}.gap-6{gap:var(--fib-6)}

/* display / flex / grid */
.d-none{display:none}.d-block{display:block}.d-inline{display:inline-block}.d-flex{display:flex}.d-grid{display:grid}
.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}
.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}
.flex-1{flex:1}.flex-auto{flex:0 0 auto}
.grid{display:grid}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr)}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
/* alinhamento de texto */
.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}
/* cores de texto */
.t-brand{color:var(--brand)}.t-brand-dark{color:var(--brand-dark)}.t-accent{color:var(--accent)}
.t-gold{color:var(--gold)}.t-terra{color:var(--terra)}.t-ink{color:var(--ink)}.t-soft{color:var(--ink-soft)}.t-white{color:#fff}
/* fundos */
.bg-brand{background:var(--brand);color:#fff}.bg-brand-dark{background:var(--brand-dark);color:#fff}
.bg-accent{background:var(--accent);color:#fff}.bg-gold{background:var(--gold);color:#3b2f00}
.bg-cream{background:var(--bg)}.bg-surface{background:var(--surface)}.bg-terra{background:var(--terra);color:#fff}
.bg-soft-green{background:rgba(49,104,60,.08)}.bg-soft-red{background:rgba(200,54,47,.08)}.bg-soft-gold{background:rgba(225,185,24,.12)}
/* gradientes de fundo */
.bg-grad-green{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff}
.bg-grad-warm{background:linear-gradient(135deg,var(--accent),var(--terra));color:#fff}
.bg-grad-animated{background:linear-gradient(120deg,var(--brand),var(--brand-soft),var(--gold),var(--accent));
  background-size:300% 300%;animation:gradientShift 12s ease infinite;color:#fff}
/* bordas e raios */
.rounded{border-radius:var(--radius)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:999px}
.border{border:1px solid var(--line)}.border-brand{border:2px solid var(--brand)}.border-gold{border:2px solid var(--gold)}
.border-top{border-top:1px solid var(--line)}.border-bottom{border-bottom:1px solid var(--line)}
/* sombras */
.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow)}
.shadow-lg{box-shadow:0 24px 60px rgba(43,42,40,.18)}.shadow-none{box-shadow:none}
.shadow-brand{box-shadow:0 12px 30px rgba(49,104,60,.25)}.shadow-accent{box-shadow:0 12px 30px rgba(200,54,47,.22)}
/* posição / diversos */
.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky;top:var(--fib-7)}
.w-100{width:100%}.h-100{height:100%}.maxw-600{max-width:600px}.maxw-800{max-width:800px}
.ovh{overflow:hidden}.pointer{cursor:pointer}.no-select{user-select:none}
.ratio-1{aspect-ratio:1}.ratio-43{aspect-ratio:4/3}.ratio-169{aspect-ratio:16/9}.ratio-32{aspect-ratio:3/2}
.obj-cover{object-fit:cover}.obj-contain{object-fit:contain}
.op-50{opacity:.5}.op-70{opacity:.7}.op-90{opacity:.9}
.z-1{z-index:1}.z-10{z-index:10}.z-50{z-index:50}
/* ----- 6.22 Depoimentos (qualitativos, sem nº de avaliações) ------------ */
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fib-5)}
.testimonial{background:var(--surface);border-radius:var(--radius-lg);padding:var(--fib-5);
  box-shadow:var(--shadow-sm);border:1px solid var(--line);position:relative}
.testimonial::before{content:"\f10d";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--gold);
  font-size:1.6rem;opacity:.4;position:absolute;top:var(--fib-3);right:var(--fib-4)}
.testimonial .stars{color:var(--gold);margin-bottom:var(--fib-2);font-size:.95rem}
.testimonial p{font-style:italic;color:var(--ink-soft)}
.testimonial .who{display:flex;align-items:center;gap:var(--fib-3);margin-top:var(--fib-3)}
.testimonial .avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--brand-soft),var(--brand));
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.testimonial .who strong{display:block;color:var(--brand-dark)}
.testimonial .who span{font-size:.8rem;color:var(--ink-soft)}

/* ----- 6.23 Itens de cardápio (lista de pratos) ------------------------ */
.menu-list{display:grid;gap:var(--fib-3)}
.menu-item{display:flex;align-items:baseline;gap:var(--fib-3);padding:var(--fib-3) 0;border-bottom:1px dashed var(--line)}
.menu-item .mi-name{font-weight:700;color:var(--brand-dark);white-space:nowrap}
.menu-item .mi-dots{flex:1;border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.menu-item .mi-price{font-weight:800;color:var(--accent)}
.menu-item .mi-desc{display:block;font-size:.85rem;color:var(--ink-soft);font-weight:400;margin-top:2px}
.menu-cat-title{display:flex;align-items:center;gap:var(--fib-3);font-family:var(--font-title);
  color:var(--brand);font-weight:700;margin:var(--fib-5) 0 var(--fib-3)}
.menu-cat-title i{color:var(--gold)}

/* ----- 6.24 Faixa de estatísticas -------------------------------------- */
.stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fib-4);
  background:var(--brand-dark);color:#fff;border-radius:var(--radius-lg);padding:var(--fib-6) var(--fib-5)}
.stats-band .stat{text-align:center}
.stats-band .stat i{font-size:1.6rem;color:var(--gold);margin-bottom:8px}
.stats-band .stat strong{display:block;font-family:var(--font-title);font-size:2.2rem;line-height:1}
.stats-band .stat span{font-size:.85rem;opacity:.85}

/* ----- 6.25 Tabela de horário ------------------------------------------ */
.hours-table{width:100%;border-collapse:collapse}
.hours-table td{padding:var(--fib-2) var(--fib-3);border-bottom:1px solid var(--line)}
.hours-table td:last-child{text-align:right;font-weight:700;color:var(--brand-dark)}
.hours-table tr.today{background:rgba(225,185,24,.14);font-weight:700}
.hours-table tr.closed td:last-child{color:var(--terra)}

/* ----- 6.26 Newsletter / formulário ------------------------------------ */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--fib-3)}
.field label{font-weight:600;font-size:.9rem;color:var(--brand-dark)}
.input,.textarea{font-family:inherit;font-size:1rem;padding:var(--fib-3) var(--fib-4);border:1px solid var(--line);
  border-radius:var(--radius);background:var(--surface);color:var(--ink);transition:border-color var(--t),box-shadow var(--t)}
.input:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(49,104,60,.15)}
.textarea{min-height:120px;resize:vertical}
.newsletter{display:flex;gap:var(--fib-2);flex-wrap:wrap}
.newsletter .input{flex:1;min-width:200px}

/* ----- 6.27 Tooltip ----------------------------------------------------- */
[data-tip]{position:relative}
[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  background:var(--brand-dark);color:#fff;font-size:.78rem;font-weight:600;padding:6px 10px;border-radius:6px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity var(--t),transform var(--t)}
[data-tip]:hover::after{opacity:1;transform:translateX(-50%)}

/* ----- 6.28 Skeleton / loading shimmer --------------------------------- */
.skeleton{background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400px 100%;
  animation:shimmer 1.4s infinite linear;border-radius:var(--radius)}

/* ----- 6.29 Scrollbar custom ------------------------------------------- */
html{scrollbar-color:var(--brand-soft) var(--bg)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--brand-soft);border-radius:8px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--brand)}
/* ----- 6.30 Variações de fundo de seção -------------------------------- */
.section--cream{background:var(--bg)}
.section--surface{background:var(--surface)}
.section--soft{background:linear-gradient(180deg,var(--bg),var(--surface))}
.section--green{background:var(--brand-dark);color:#f3eddc}
.section--green h2,.section--green h3{color:#fff}
.section--green .eyebrow{color:var(--gold)}
.section--pattern{background-color:var(--bg);background-image:radial-gradient(var(--line) 1.4px,transparent 1.4px);background-size:20px 20px}
.section--diagonal{position:relative}
.section--diagonal::before{content:"";position:absolute;top:0;left:0;width:100%;height:60px;background:inherit;transform:skewY(-2deg);transform-origin:top left}
.section-tight{padding-block:var(--fib-6)}
.section-airy{padding-block:calc(var(--fib-7) + var(--fib-5))}

/* ----- 6.31 Acentos decorativos por seção ------------------------------ */
.accent-leaf,.accent-corner{position:absolute;pointer-events:none;opacity:.12;color:var(--brand)}
.accent-leaf{font-size:7rem;right:4%;top:8%;transform:rotate(18deg)}
.accent-corner{font-size:5rem;left:3%;bottom:6%;transform:rotate(-12deg)}
.section{position:relative}
.section-number{position:absolute;right:var(--fib-5);top:var(--fib-4);font-family:var(--font-title);
  font-size:5rem;font-weight:900;color:var(--line);opacity:.5;z-index:0;line-height:1}
.has-number .container{position:relative;z-index:1}

/* ----- 6.32 Botão voltar ao topo --------------------------------------- */
.to-top{position:fixed;left:var(--fib-4);bottom:var(--fib-4);z-index:60;width:48px;height:48px;border:0;
  border-radius:50%;background:var(--brand-dark);color:#fff;font-size:1.1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity var(--t),visibility var(--t),transform var(--t),background var(--t)}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--accent);transform:translateY(-3px)}

/* ----- 6.33 Breadcrumb -------------------------------------------------- */
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;color:var(--ink-soft)}
.breadcrumb a{color:var(--brand)}
.breadcrumb li{display:flex;align-items:center;gap:8px;list-style:none}
.breadcrumb li+li::before{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--line)}

/* ----- 6.34 Tratamentos de imagem -------------------------------------- */
.img-frame{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.img-frame img{transition:transform .6s ease}
.img-frame:hover img{transform:scale(1.06)}
.img-rounded{border-radius:var(--radius-lg)}
.img-circle{border-radius:50%;object-fit:cover}
.img-tilt{transform:rotate(-2deg);transition:transform var(--t)}
.img-tilt:hover{transform:rotate(0)}
.img-grayscale{filter:grayscale(1);transition:filter var(--t)}
.img-grayscale:hover{filter:none}
.img-warm{filter:saturate(1.1) contrast(1.03)}
.polaroid{background:#fff;padding:12px 12px 44px;box-shadow:var(--shadow);border-radius:6px;transform:rotate(-3deg);transition:transform var(--t)}
.polaroid:hover{transform:rotate(0) scale(1.02)}
.polaroid figcaption{text-align:center;font-family:var(--font-title);color:var(--ink-soft);margin-top:10px}
.img-duotone{position:relative}
.img-duotone::after{content:"";position:absolute;inset:0;mix-blend-mode:multiply;background:var(--brand);opacity:.18}

/* ----- 6.35 Timeline (história/etapas) --------------------------------- */
.timeline{position:relative;padding-left:var(--fib-5);margin:var(--fib-5) 0}
.timeline::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--line)}
.timeline-item{position:relative;padding-bottom:var(--fib-5)}
.timeline-item::before{content:"";position:absolute;left:-21px;top:4px;width:16px;height:16px;border-radius:50%;
  background:var(--gold);border:3px solid var(--surface);box-shadow:0 0 0 2px var(--gold)}
.timeline-item h4{margin-bottom:4px;color:var(--brand-dark)}
.timeline-item .when{font-size:.8rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}
.timeline-item p{color:var(--ink-soft);margin:4px 0 0}

/* ----- 6.36 Lista de ícones (benefícios) ------------------------------- */
.icon-list{list-style:none;display:grid;gap:var(--fib-3)}
.icon-list li{display:flex;align-items:flex-start;gap:var(--fib-3)}
.icon-list li i{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(49,104,60,.1);color:var(--brand);font-size:.95rem;margin-top:2px}
.icon-list.cols-2{grid-template-columns:1fr 1fr}
.icon-list strong{color:var(--brand-dark)}
/* ----- 6.37 Cards de combo / preço ------------------------------------- */
.price-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:var(--fib-5);text-align:center;box-shadow:var(--shadow-sm);position:relative;transition:transform var(--t),box-shadow var(--t)}
.price-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.price-card.featured{border-color:var(--gold);box-shadow:var(--shadow)}
.price-card.featured::before{content:"Mais pedido";position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:#3b2f00;font-size:.72rem;font-weight:800;padding:5px 16px;border-radius:999px;text-transform:uppercase}
.price-card .pc-name{font-family:var(--font-title);font-weight:700;color:var(--brand-dark);font-size:1.2rem}
.price-card .pc-price{font-family:var(--font-title);font-size:2.4rem;font-weight:800;color:var(--accent);margin:var(--fib-3) 0}
.price-card .pc-price small{font-size:1rem;color:var(--ink-soft)}
.price-card ul{list-style:none;display:grid;gap:8px;margin:var(--fib-4) 0;text-align:left}
.price-card ul li{display:flex;gap:8px;align-items:center;color:var(--ink-soft)}
.price-card ul li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--brand-soft)}

/* ----- 6.38 Barra de prova social / confiança -------------------------- */
.trust-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--fib-5);
  padding:var(--fib-4);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.trust-item{display:flex;align-items:center;gap:var(--fib-2);color:var(--ink-soft);font-weight:600}
.trust-item i{font-size:1.4rem;color:var(--brand)}
.trust-item.gold i{color:var(--gold)}
.trust-item.red i{color:var(--accent)}

/* ----- 6.39 Caixas de aviso / alert ------------------------------------ */
.alert{display:flex;gap:var(--fib-3);padding:var(--fib-3) var(--fib-4);border-radius:var(--radius);
  border-left:4px solid var(--brand);background:rgba(49,104,60,.08);color:var(--brand-dark)}
.alert i{font-size:1.1rem;margin-top:2px}
.alert--info{border-color:var(--brand-soft);background:rgba(83,155,125,.1)}
.alert--warn{border-color:var(--gold);background:rgba(225,185,24,.12);color:#7a5f06}
.alert--danger{border-color:var(--accent);background:rgba(200,54,47,.08);color:var(--accent-dark)}

/* ----- 6.40 Biblioteca de efeitos hover -------------------------------- */
.hov-lift{transition:transform var(--t),box-shadow var(--t)}
.hov-lift:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.hov-grow{transition:transform var(--t)}
.hov-grow:hover{transform:scale(1.04)}
.hov-rotate{transition:transform var(--t)}
.hov-rotate:hover{transform:rotate(3deg)}
.hov-glow{transition:box-shadow var(--t)}
.hov-glow:hover{box-shadow:0 0 0 3px rgba(225,185,24,.4)}
.hov-bright{transition:filter var(--t)}
.hov-bright:hover{filter:brightness(1.08)}
.hov-underline{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 2px;background-position:0 100%;
  background-repeat:no-repeat;transition:background-size var(--t)}
.hov-underline:hover{background-size:100% 2px}

/* ----- 6.41 Texto em gradiente / vidro --------------------------------- */
.text-gradient{background:linear-gradient(120deg,var(--brand),var(--gold),var(--accent));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.glass{background:rgba(255,255,255,.14);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-lg)}
.glass-dark{background:rgba(20,30,20,.4);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg)}

/* ----- 6.42 Tema escuro (opt-in via [data-theme=dark]) ----------------- */
[data-theme=dark]{
  --bg:#181613;--surface:#211e1a;--ink:#ece6da;--ink-soft:#b3ac9d;--line:#332f29;
  --brand:#4f9e63;--brand-dark:#3a7a4a;--brand-soft:#6bbd8a}
[data-theme=dark] .site-header{background:rgba(24,22,19,.92)}
[data-theme=dark] .card,[data-theme=dark] .feature,[data-theme=dark] .testimonial{background:var(--surface)}
[data-theme=dark] .about{background:var(--surface)}
[data-theme=dark] .faq details{background:var(--surface)}
/* densidade compacta (opt-in) */
[data-density=compact]{--fib-5:21px;--fib-6:34px;--fib-7:55px}
[data-density=compact] .section{padding-block:var(--fib-6)}
/* ----- 6.43 Seções split / sobreposição -------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--fib-6)}
.split.reverse{direction:rtl}
.split.reverse>*{direction:ltr}
.split-media{position:relative;min-height:380px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.split-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.overlap{margin-top:calc(var(--fib-7) * -1);position:relative;z-index:2}
.full-bleed{width:100vw;margin-left:50%;transform:translateX(-50%)}
.container-sm{max-width:680px;margin-inline:auto;padding-inline:var(--fib-4)}
.container-lg{max-width:1320px;margin-inline:auto;padding-inline:var(--fib-4)}

/* ----- 6.44 Barra de CTA fixa (desktop) -------------------------------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:58;background:var(--brand-dark);color:#fff;
  display:flex;align-items:center;justify-content:center;gap:var(--fib-4);padding:var(--fib-3) var(--fib-4);
  box-shadow:0 -8px 24px rgba(0,0,0,.18);transform:translateY(100%);transition:transform var(--t)}
.sticky-cta.show{transform:none}
.sticky-cta strong{font-family:var(--font-title)}

/* ----- 6.45 Barra de ação mobile (rodapé fixo) ------------------------- */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:58;display:none;background:var(--surface);
  border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(0,0,0,.1)}
.mobile-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;
  font-size:.72rem;font-weight:700;color:var(--ink-soft)}
.mobile-bar a i{font-size:1.1rem;color:var(--brand)}
.mobile-bar a.primary{background:var(--brand);color:#fff}
.mobile-bar a.primary i{color:#fff}

/* ----- 6.46 Cartão de contato flutuante -------------------------------- */
.contact-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  padding:var(--fib-5);border-top:5px solid var(--brand)}
.contact-card h3{margin-bottom:var(--fib-3)}
.contact-card .row{display:flex;align-items:center;gap:var(--fib-3);padding:var(--fib-2) 0;border-bottom:1px solid var(--line)}
.contact-card .row:last-child{border-bottom:0}
.contact-card .row i{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(49,104,60,.1);color:var(--brand)}
.contact-card .row strong{display:block;color:var(--brand-dark)}
.contact-card .row span{font-size:.85rem;color:var(--ink-soft)}

/* ----- 6.47 Hero — variações ------------------------------------------- */
.hero--split{min-height:auto;color:var(--ink)}
.hero--split .hero-overlay,.hero--split .hero-bg,.hero--split::before{display:none}
.hero--compact{min-height:62vh}
.hero--center{text-align:center}
.hero--center .hero-content{margin-inline:auto}
.hero--center .hero-cta{justify-content:center}
.hero-badges{display:flex;flex-wrap:wrap;gap:var(--fib-2);margin-bottom:var(--fib-4)}
.hero-badges .chip{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.2)}
.hero-badges .chip i{color:var(--gold)}

/* ----- 6.48 Mega navegação / dropdown ---------------------------------- */
.has-dropdown{position:relative}
.dropdown{position:absolute;top:calc(100% + 10px);left:0;min-width:220px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--fib-2);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--t),visibility var(--t),transform var(--t);z-index:60}
.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:none}
.dropdown a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--ink);font-weight:600}
.dropdown a:hover{background:var(--bg);color:var(--brand)}
.dropdown a i{color:var(--brand-soft);width:1.1em;text-align:center}
/* ----- 6.49 Acessibilidade --------------------------------------------- */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--accent);color:#fff;
  padding:var(--fib-2) var(--fib-4);border-radius:0 0 var(--radius) 0;font-weight:700}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.focus-ring:focus-within{box-shadow:0 0 0 3px rgba(225,185,24,.4)}

/* ----- 6.50 Helpers de visibilidade responsiva ------------------------- */
.show-mobile{display:none}
.hide-mobile{display:initial}
@media (max-width:768px){
  .show-mobile{display:initial}
  .hide-mobile{display:none!important}
  .show-desktop{display:none!important}
}
.show-desktop{display:initial}

/* ----- 6.51 Animação de entrada do conteúdo do hero -------------------- */
.hero-content>*{animation:fadeInUp .8s ease both}
.hero-content .eyebrow{animation-delay:.05s}
.hero-content h1{animation-delay:.15s}
.hero-content .hero-sub{animation-delay:.3s}
.hero-content .hero-cta{animation-delay:.45s}
.hero-content .hero-hours{animation-delay:.6s}

/* ----- 6.52 Estados utilitários extras --------------------------------- */
.clickable{cursor:pointer;transition:transform var(--t)}
.clickable:active{transform:scale(.97)}
.disabled,[disabled]{opacity:.5;pointer-events:none;cursor:not-allowed}
.divider-line{height:1px;background:var(--line);border:0;margin:var(--fib-5) 0}
.spacer-3{height:var(--fib-3)}.spacer-5{height:var(--fib-5)}.spacer-7{height:var(--fib-7)}
.list-reset{list-style:none;margin:0;padding:0}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ratio-box{position:relative}
.ratio-box>*{position:absolute;inset:0;width:100%;height:100%}
/* ----- 6.53 Refinamentos responsivos (componentes novos) --------------- */
@media (max-width:980px){
  .testimonials{grid-template-columns:1fr 1fr}
  .cards-4{grid-template-columns:repeat(2,1fr)}
  .stats-band{grid-template-columns:repeat(2,1fr);gap:var(--fib-5)}
  .split{grid-template-columns:1fr;gap:var(--fib-5)}
  .split.reverse{direction:ltr}
  .split-media{min-height:300px}
  .hero-float-badge{right:var(--fib-4);width:96px;height:96px}
  .icon-list.cols-2{grid-template-columns:1fr}
}
@media (max-width:768px){
  .section{padding-block:var(--fib-6)}
  .section-number{font-size:3.4rem;right:var(--fib-4);top:var(--fib-3)}
  .accent-leaf{font-size:4.5rem}
  .testimonials{grid-template-columns:1fr}
  .cards-2{grid-template-columns:1fr}
  .price-card.featured{transform:none}
  .feature{flex-direction:row}
  .trust-bar{gap:var(--fib-4)}
  .stats-band{padding:var(--fib-5) var(--fib-4)}
  .about-media::before,.about-media::after{display:none}
  .about-stats{justify-content:center;gap:var(--fib-4)}
  .section-head h2::after{margin-top:var(--fib-2)}
  .hero::before{background:radial-gradient(140% 100% at 50% 30%,transparent 35%,rgba(0,0,0,.6) 100%)}
  .footer-social{justify-content:flex-start}
  .to-top{left:auto;right:var(--fib-4);bottom:calc(var(--fib-4) + 70px)}
  .whats-float::after{display:none}
  .sticky-cta{flex-direction:column;gap:var(--fib-2);text-align:center}
  .mobile-bar{display:flex}
  body.has-mobile-bar{padding-bottom:64px}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;padding:0}
  .timeline{padding-left:var(--fib-4)}
}
@media (max-width:480px){
  .stats-band{grid-template-columns:1fr}
  .cards-4{grid-template-columns:1fr}
  .card-icon{width:74px;height:74px;font-size:1.8rem}
  .brand-name{font-size:1rem}
  .hero h1{font-size:clamp(1.9rem,8vw,2.6rem)}
  .hero-sub{font-size:1.05rem}
  .section-number{display:none}
  .seal{width:88px;height:88px}
  .pull-quote{padding-left:var(--fib-4);font-size:1.15rem}
  .menu-item{flex-wrap:wrap}
  .menu-item .mi-dots{display:none}
  .price-card .pc-price{font-size:2rem}
  .testimonial{padding:var(--fib-4)}
  .lb-prev,.lb-next{width:44px;height:44px}
  .footer-mark{width:50px;height:50px}
}
@media (max-width:360px){
  .header-inner{gap:var(--fib-2)}
  .brand-mark{width:42px;height:42px;font-size:1.1rem}
  .btn{padding:var(--fib-2) var(--fib-4);font-size:.92rem}
  .hero-cta .btn{width:100%}
  .card{padding:var(--fib-4)}
  .section-head h2{font-size:1.4rem}
}
/* telas largas — respiro extra */
@media (min-width:1400px){
  :root{--maxw:1280px}
  .section{padding-block:calc(var(--fib-7) + var(--fib-4))}
  h1{font-size:4rem}
}
/* ----- 6.54 Abas (tabs) ------------------------------------------------- */
.tabs{display:flex;flex-wrap:wrap;gap:var(--fib-2);border-bottom:2px solid var(--line);margin-bottom:var(--fib-4)}
.tabs button{border:0;background:none;font-family:inherit;font-weight:700;color:var(--ink-soft);cursor:pointer;
  padding:var(--fib-3) var(--fib-4);border-bottom:3px solid transparent;margin-bottom:-2px;transition:color var(--t),border-color var(--t)}
.tabs button:hover{color:var(--brand)}
.tabs button.active{color:var(--accent);border-color:var(--accent)}
.tab-panel{display:none;animation:fadeIn .4s ease}
.tab-panel.active{display:block}

/* ----- 6.55 Switch / toggle -------------------------------------------- */
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;color:var(--ink-soft)}
.switch input{position:absolute;opacity:0}
.switch .track{width:46px;height:26px;border-radius:999px;background:var(--line);position:relative;transition:background var(--t)}
.switch .track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--t)}
.switch input:checked+.track{background:var(--brand)}
.switch input:checked+.track::after{transform:translateX(20px)}

/* ----- 6.56 Passos / processo ------------------------------------------ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--fib-4);counter-reset:step}
.step{text-align:center;position:relative}
.step .step-num{counter-increment:step;width:54px;height:54px;border-radius:50%;margin:0 auto var(--fib-3);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-weight:800;font-size:1.3rem;
  background:var(--brand);color:#fff}
.step .step-num::before{content:counter(step)}
.step:not(:last-child)::after{content:"";position:absolute;top:27px;left:60%;width:80%;height:2px;background:var(--line);z-index:-1}
.step h4{margin-bottom:4px}
.step p{font-size:.9rem;color:var(--ink-soft)}

/* ----- 6.57 Card com flip ---------------------------------------------- */
.flip{perspective:1000px}
.flip-inner{position:relative;transition:transform .6s;transform-style:preserve-3d;min-height:240px}
.flip:hover .flip-inner{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius-lg);
  display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--fib-5);box-shadow:var(--shadow-sm)}
.flip-front{background:var(--surface)}
.flip-back{background:var(--brand);color:#fff;transform:rotateY(180deg)}

/* ----- 6.58 Masonry (colunas) ------------------------------------------ */
.masonry{column-count:3;column-gap:var(--fib-3)}
.masonry>*{break-inside:avoid;margin-bottom:var(--fib-3)}
@media (max-width:768px){.masonry{column-count:2}}
@media (max-width:480px){.masonry{column-count:1}}

/* ----- 6.59 Vídeo responsivo ------------------------------------------- */
.video-wrap{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}
.video-wrap iframe,.video-wrap video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(20,30,20,.4);cursor:pointer}
.video-play i{font-size:3rem;color:#fff;transition:transform var(--t)}
.video-play:hover i{transform:scale(1.15)}

/* ----- 6.60 Avaliação por estrelas ------------------------------------- */
.rating{display:inline-flex;gap:3px;color:var(--gold);font-size:1rem}
.rating .empty{color:var(--line)}
.rating-lg{font-size:1.4rem}

/* ----- 6.61 Banner promo ----------------------------------------------- */
.promo{display:flex;align-items:center;justify-content:center;gap:var(--fib-3);flex-wrap:wrap;
  background:linear-gradient(120deg,var(--accent),var(--terra));color:#fff;text-align:center;
  padding:var(--fib-3) var(--fib-4);font-weight:600}
.promo i{color:var(--gold)}
.promo .btn{padding:8px 18px}

/* ----- 6.62 Grupo de avatares ------------------------------------------ */
.avatar-group{display:flex}
.avatar-group .avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--surface);margin-left:-12px;
  background:var(--brand-soft);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}
.avatar-group .avatar:first-child{margin-left:0}

/* ----- 6.63 Barra de progresso ----------------------------------------- */
.progress{height:10px;background:var(--line);border-radius:999px;overflow:hidden}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--gold));border-radius:999px;transition:width .8s ease}
/* ----- 6.64 Selos dietéticos / gastronômicos --------------------------- */
.diet-badges{display:inline-flex;gap:6px;vertical-align:middle}
.diet{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff}
.diet--veg{background:#4caf50}
.diet--vegan{background:#2e7d32}
.diet--gluten{background:#b8860b}
.diet--spicy{background:var(--accent)}
.diet--house{background:var(--gold);color:#3b2f00}
.spice{display:inline-flex;gap:2px;color:var(--accent)}
.spice .off{color:var(--line)}
.chef-pick{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;color:#8a6d08;background:rgba(225,185,24,.18);padding:4px 10px;border-radius:999px}
.chef-pick i{color:var(--gold)}

/* ----- 6.65 Kicker / rótulo de seção ----------------------------------- */
.kicker{display:inline-flex;align-items:center;gap:8px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;
  font-size:.76rem;color:var(--accent);background:rgba(200,54,47,.08);padding:6px 14px;border-radius:999px;margin-bottom:var(--fib-3)}
.kicker i{font-size:.85rem}
.kicker--green{color:var(--brand);background:rgba(49,104,60,.1)}
.kicker--gold{color:#8a6d08;background:rgba(225,185,24,.16)}

/* ----- 6.66 Banda de números (contadores) ------------------------------ */
.counter-band{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fib-5);text-align:center}
.counter{position:relative}
.counter .num{font-family:var(--font-title);font-size:clamp(2.2rem,5vw,3.4rem);font-weight:900;color:var(--accent);line-height:1}
.counter .num small{font-size:1.4rem}
.counter .label{font-weight:600;color:var(--ink-soft);margin-top:6px}
.counter:not(:last-child)::after{content:"";position:absolute;right:0;top:10%;height:80%;width:1px;background:var(--line)}

/* ----- 6.67 Status detalhado (aberto/fechado) -------------------------- */
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:700;font-size:.9rem}
.status-pill.open{background:rgba(54,176,106,.15);color:#1b7a44}
.status-pill.closed{background:rgba(149,71,63,.15);color:var(--terra)}
.status-pill i{font-size:.7rem}
.status-pill.open i{color:#36b06a;animation:pulse 1.6s ease-in-out infinite}

/* ----- 6.68 Mapa de localização — overlay de cartão -------------------- */
.map-card{position:absolute;left:var(--fib-4);bottom:var(--fib-4);z-index:2;background:var(--surface);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--fib-3) var(--fib-4);max-width:260px}
.map-card strong{display:block;color:var(--brand-dark)}
.map-card a{font-weight:700;color:var(--accent)}

/* ----- 6.69 Banner de gift / vale ------------------------------------- */
.gift{display:flex;align-items:center;gap:var(--fib-4);background:var(--brand-dark);color:#fff;
  border-radius:var(--radius-lg);padding:var(--fib-5);overflow:hidden;position:relative}
.gift i.bg{position:absolute;right:-10px;bottom:-20px;font-size:8rem;opacity:.1}
.gift .gift-ic{font-size:2.4rem;color:var(--gold)}
.gift h3{color:#fff;margin-bottom:4px}
.gift p{opacity:.85;margin:0}

/* ----- 6.70 Lista de horários (semana completa) ------------------------ */
.week-hours{display:grid;gap:6px}
.week-hours .wh-row{display:flex;justify-content:space-between;padding:8px 12px;border-radius:8px;font-size:.92rem}
.week-hours .wh-row:nth-child(odd){background:rgba(49,104,60,.05)}
.week-hours .wh-row.today{background:rgba(225,185,24,.16);font-weight:700}
.week-hours .wh-day{color:var(--brand-dark);font-weight:600}
.week-hours .wh-time{color:var(--ink-soft)}
.week-hours .wh-row.closed .wh-time{color:var(--terra)}
/* ----- 6.71 Biblioteca de gradientes ----------------------------------- */
.grad-1{background:linear-gradient(135deg,var(--brand),var(--brand-dark))}
.grad-2{background:linear-gradient(135deg,var(--accent),var(--terra))}
.grad-3{background:linear-gradient(135deg,var(--gold),#c9a40f)}
.grad-4{background:linear-gradient(135deg,var(--brand-soft),var(--brand))}
.grad-5{background:linear-gradient(135deg,var(--terra),var(--accent-dark))}
.grad-sunset{background:linear-gradient(135deg,var(--gold),var(--accent),var(--terra))}
.grad-olive{background:linear-gradient(135deg,#6b7d3a,var(--brand))}
.grad-radial{background:radial-gradient(circle at 30% 20%,var(--brand-soft),var(--brand-dark))}
.grad-overlay-top{background:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}
.grad-overlay-bottom{background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}

/* ----- 6.72 Biblioteca de sombras -------------------------------------- */
.sh-1{box-shadow:0 2px 6px rgba(43,42,40,.08)}
.sh-2{box-shadow:0 6px 16px rgba(43,42,40,.1)}
.sh-3{box-shadow:0 12px 30px rgba(43,42,40,.14)}
.sh-4{box-shadow:0 22px 50px rgba(43,42,40,.18)}
.sh-inset{box-shadow:inset 0 2px 8px rgba(43,42,40,.1)}
.sh-soft-green{box-shadow:0 14px 34px rgba(49,104,60,.22)}
.sh-soft-red{box-shadow:0 14px 34px rgba(200,54,47,.2)}
.sh-soft-gold{box-shadow:0 14px 34px rgba(225,185,24,.28)}

/* ----- 6.73 Escala de raio --------------------------------------------- */
.r-0{border-radius:0}.r-1{border-radius:5px}.r-2{border-radius:8px}.r-3{border-radius:13px}
.r-4{border-radius:21px}.r-5{border-radius:34px}.r-full{border-radius:999px}
.r-top{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.r-bottom{border-radius:0 0 var(--radius-lg) var(--radius-lg)}

/* ----- 6.74 Tints de fundo (transparências da marca) ------------------- */
.tint-green-5{background:rgba(49,104,60,.05)}.tint-green-10{background:rgba(49,104,60,.1)}.tint-green-15{background:rgba(49,104,60,.15)}
.tint-red-5{background:rgba(200,54,47,.05)}.tint-red-10{background:rgba(200,54,47,.1)}.tint-red-15{background:rgba(200,54,47,.15)}
.tint-gold-10{background:rgba(225,185,24,.1)}.tint-gold-16{background:rgba(225,185,24,.16)}.tint-gold-24{background:rgba(225,185,24,.24)}
.tint-terra-10{background:rgba(149,71,63,.1)}.tint-terra-15{background:rgba(149,71,63,.15)}

/* ----- 6.75 Grid spans e ordem ----------------------------------------- */
.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}
.row-span-2{grid-row:span 2}
.order-first{order:-1}.order-last{order:99}
.col-full{grid-column:1/-1}
@media (max-width:768px){
  .col-span-2,.col-span-3,.col-span-4{grid-column:auto}
  .grid-3,.grid-4{grid-template-columns:1fr}
  .order-first-m{order:-1}
}

/* ----- 6.76 Gap responsivo + alturas ----------------------------------- */
@media (max-width:768px){.gap-6{gap:var(--fib-4)}.gap-5{gap:var(--fib-3)}}
.minh-40{min-height:40vh}.minh-60{min-height:60vh}.minh-80{min-height:80vh}.minh-full{min-height:100vh}
.maxh-300{max-height:300px;overflow:auto}.maxh-460{max-height:460px;overflow:auto}

/* ----- 6.77 Bordas decorativas ----------------------------------------- */
.border-dashed{border:2px dashed var(--line)}
.border-double{border:4px double var(--gold)}
.border-left-brand{border-left:4px solid var(--brand)}
.border-left-gold{border-left:4px solid var(--gold)}
.border-left-accent{border-left:4px solid var(--accent)}
.ring-gold{box-shadow:0 0 0 2px var(--gold)}
.ring-green{box-shadow:0 0 0 2px var(--brand)}
.outline-dotted{outline:2px dotted var(--brand-soft);outline-offset:4px}
/* ----- 6.78 Texto sobre imagem (cards de destaque) --------------------- */
.media-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:280px;display:flex;align-items:flex-end;box-shadow:var(--shadow)}
.media-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.media-card:hover img{transform:scale(1.08)}
.media-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,25,16,.85),transparent 60%)}
.media-card .mc-body{position:relative;z-index:1;color:#fff;padding:var(--fib-5)}
.media-card h3{color:#fff;margin-bottom:6px}
.media-card p{color:rgba(255,255,255,.85);margin:0}
.media-card .chip{background:rgba(255,255,255,.18);color:#fff;margin-bottom:var(--fib-2)}
.media-card--sm{min-height:200px}
.media-card--lg{min-height:380px}

/* ----- 6.79 Separadores entre seções ----------------------------------- */
.sep-fade{height:2px;background:linear-gradient(90deg,transparent,var(--line),transparent);border:0;margin:0}
.sep-leaf{display:flex;align-items:center;justify-content:center;gap:var(--fib-3);color:var(--brand-soft);margin:var(--fib-6) 0}
.sep-leaf::before,.sep-leaf::after{content:"";width:80px;height:1px;background:var(--line)}
.sep-thick{height:6px;background:linear-gradient(90deg,var(--brand),var(--gold),var(--accent));border:0}
.sep-zigzag{height:14px;background:linear-gradient(135deg,var(--bg) 25%,transparent 25%) -7px 0,
  linear-gradient(225deg,var(--bg) 25%,transparent 25%) -7px 0,
  linear-gradient(315deg,var(--bg) 25%,transparent 25%),
  linear-gradient(45deg,var(--bg) 25%,transparent 25%);background-size:14px 14px;background-color:var(--surface)}

/* ----- 6.80 Tipografia display (grandes títulos) ----------------------- */
.display-1{font-family:var(--font-title);font-weight:900;font-size:clamp(2.6rem,7vw,5rem);line-height:1.02;letter-spacing:-.03em}
.display-2{font-family:var(--font-title);font-weight:800;font-size:clamp(2.2rem,5.5vw,3.8rem);line-height:1.05}
.overline{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:800;color:var(--brand-soft)}
.subtitle{font-size:1.15rem;color:var(--ink-soft);font-weight:400;line-height:1.7}
.script-accent{font-style:italic;font-weight:500;color:var(--accent)}

/* ----- 6.81 Padrões de fundo decorativos ------------------------------- */
.pat-dots{background-image:radial-gradient(var(--line) 1.4px,transparent 1.4px);background-size:18px 18px}
.pat-grid{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:30px 30px;opacity:1}
.pat-diag{background-image:repeating-linear-gradient(45deg,rgba(49,104,60,.04) 0 10px,transparent 10px 20px)}
.pat-checks{background-image:linear-gradient(45deg,rgba(200,54,47,.05) 25%,transparent 25%,transparent 75%,rgba(200,54,47,.05) 75%),
  linear-gradient(45deg,rgba(200,54,47,.05) 25%,transparent 25%,transparent 75%,rgba(200,54,47,.05) 75%);
  background-size:28px 28px;background-position:0 0,14px 14px}

/* ----- 6.82 Cabeçalho de seção com ícone grande ------------------------ */
.section-icon{width:72px;height:72px;border-radius:50%;margin:0 auto var(--fib-3);
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff;
  background:linear-gradient(135deg,var(--brand-soft),var(--brand));box-shadow:var(--shadow-sm)}
.section-icon--red{background:linear-gradient(135deg,var(--accent),var(--terra))}
.section-icon--gold{background:linear-gradient(135deg,var(--gold),#c9a40f);color:#3b2f00}

/* ----- 6.83 Quadro de aspas grande (depoimento destaque) --------------- */
.big-quote{text-align:center;max-width:760px;margin:0 auto;position:relative;padding:var(--fib-6) var(--fib-4)}
.big-quote::before{content:"\f10d";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--gold);font-size:2.4rem;opacity:.5;display:block;margin-bottom:var(--fib-3)}
.big-quote p{font-family:var(--font-title);font-size:clamp(1.4rem,3vw,2rem);font-weight:600;line-height:1.4;color:var(--brand-dark)}
.big-quote cite{display:block;margin-top:var(--fib-3);font-style:normal;font-weight:700;color:var(--accent)}
/* ----- 6.84 Impressão (cardápio / recibo) ------------------------------ */
@media print{
  *{background:#fff!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}
  .site-header,.hero,.whats-float,.to-top,.sticky-cta,.mobile-bar,.nav-toggle,.main-nav,
  .gallery-grid figure::after,.location-map,.cta-final,.scroll-cue,.promo,.video-wrap{display:none!important}
  body{font-size:12pt;line-height:1.4}
  .section{padding-block:12pt}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555!important}
  .container{max-width:none;padding:0}
  h1,h2,h3{page-break-after:avoid}
  .card,.feature,.testimonial,.price-card{page-break-inside:avoid;border:1px solid #ccc!important}
  .menu-item{page-break-inside:avoid}
  .site-footer{border-top:1px solid #000;padding-top:8pt}
  .print-only{display:block!important}
}
.print-only{display:none}

/* ----- 6.85 Alto contraste / preferências ------------------------------ */
@media (prefers-contrast:more){
  :root{--ink:#1a1a17;--ink-soft:#3a382f;--line:#bdb49c}
  .btn{border-width:2px}
  a{text-decoration:underline}
}
@media (prefers-reduced-data:reduce){
  .hero-bg{animation:none}
  .kenburns,.anim-float,.anim-pulse{animation:none!important}
}
@media (prefers-reduced-motion:reduce){
  .hero-bg{animation:none}
  .hero-content>*{animation:none}
  .whats-float,.whats-float::before{animation:none}
  html.js .reveal,html.js .reveal-left,html.js .reveal-right,html.js .reveal-zoom,html.js .stagger>*{opacity:1!important;transform:none!important;transition:none!important}
}

/* ----- 6.86 Container queries (cards adaptáveis) ----------------------- */
@supports (container-type:inline-size){
  .cq{container-type:inline-size}
  @container (max-width:380px){
    .cq .feature{flex-direction:column;text-align:center}
    .cq .feature .feature-ic{margin:0 auto}
  }
}

/* ----- 6.87 Ajustes finos finais --------------------------------------- */
.link-arrow{display:inline-flex;align-items:center;gap:6px;transition:gap var(--t)}
.link-arrow:hover{gap:10px}
.eyebrow{position:relative}
.section-lead{max-width:620px;margin:0 auto}
.hero-cta .btn{min-width:170px;justify-content:center}
.open-badge{vertical-align:middle}
.brand{transition:opacity var(--t)}
.brand:hover{opacity:.95}
.card p{font-size:.96rem;line-height:1.65}
.faq summary{font-size:1.02rem}
.footer-tag{line-height:1.6;color:#b8b2a4}
.info-list a:hover{color:var(--gold)}
.btn-ghost:focus-visible{outline-offset:4px}
.location-cta .btn{min-width:0}
/* ----- 6.88 Escala de fontes (utilitários) ----------------------------- */
.fs-xs{font-size:.75rem}.fs-sm{font-size:.875rem}.fs-base{font-size:1rem}.fs-md{font-size:1.125rem}
.fs-lg{font-size:1.25rem}.fs-xl{font-size:1.5rem}.fs-2xl{font-size:1.875rem}.fs-3xl{font-size:2.25rem}
.fs-4xl{font-size:3rem}.fs-5xl{font-size:3.75rem}
.lh-tight{line-height:1.1}.lh-snug{line-height:1.3}.lh-normal{line-height:1.6}.lh-loose{line-height:1.9}
.ls-tight{letter-spacing:-.02em}.ls-normal{letter-spacing:0}.ls-wide{letter-spacing:.06em}.ls-wider{letter-spacing:.14em}
.font-title{font-family:var(--font-title)}.font-body{font-family:var(--font-body)}
.text-shadow{text-shadow:0 2px 12px rgba(0,0,0,.3)}
.text-shadow-sm{text-shadow:0 1px 4px rgba(0,0,0,.2)}
.no-wrap{white-space:nowrap}.break-word{word-break:break-word}

/* ----- 6.89 Larguras / medidas ----------------------------------------- */
.w-auto{width:auto}.w-50{width:50%}.w-75{width:75%}.w-fit{width:fit-content}
.maxw-prose{max-width:65ch}.maxw-360{max-width:360px}.maxw-480{max-width:480px}.maxw-720{max-width:720px}
.minw-0{min-width:0}
.mx-0{margin-inline:0}.center-block{margin-inline:auto;display:block}

/* ----- 6.90 Transições utilitárias ------------------------------------- */
.trans{transition:all var(--t)}
.trans-fast{transition:all var(--t-fast)}
.trans-colors{transition:color var(--t),background var(--t),border-color var(--t)}
.trans-transform{transition:transform var(--t)}
.will-change{will-change:transform,opacity}
.ease-out{transition-timing-function:cubic-bezier(.16,1,.3,1)}

/* ----- 6.91 Escala de z-index ------------------------------------------ */
.z-0{z-index:0}.z-base{z-index:1}.z-dropdown{z-index:40}.z-sticky{z-index:50}
.z-overlay{z-index:80}.z-modal{z-index:100}.z-toast{z-index:120}

/* ----- 6.92 Cards de informação rápida (grid de 3/4) ------------------- */
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--fib-4)}
.quick{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--fib-4);transition:transform var(--t),box-shadow var(--t)}
.quick:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.quick i{font-size:1.6rem;color:var(--brand)}
.quick strong{color:var(--brand-dark)}
.quick span{font-size:.85rem;color:var(--ink-soft)}

/* ----- 6.93 Legenda de selos (allergen legend) ------------------------- */
.legend{display:flex;flex-wrap:wrap;gap:var(--fib-3);justify-content:center;font-size:.82rem;color:var(--ink-soft)}
.legend .li{display:inline-flex;align-items:center;gap:8px}

/* ----- 6.94 Linha de feature alternada --------------------------------- */
.feature-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--fib-6);margin-block:var(--fib-6)}
.feature-row:nth-child(even) .feature-row-media{order:-1}
.feature-row-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;aspect-ratio:4/3;object-fit:cover}
.feature-row h3{color:var(--brand-dark)}
@media (max-width:768px){.feature-row{grid-template-columns:1fr;gap:var(--fib-4)}.feature-row:nth-child(even) .feature-row-media{order:0}}
/* ----- 6.95 Toast / notificação ---------------------------------------- */
.toast{position:fixed;right:var(--fib-4);bottom:var(--fib-4);z-index:120;display:flex;align-items:center;gap:var(--fib-3);
  background:var(--brand-dark);color:#fff;padding:var(--fib-3) var(--fib-4);border-radius:var(--radius);box-shadow:var(--shadow);
  transform:translateY(20px);opacity:0;transition:transform var(--t),opacity var(--t)}
.toast.show{transform:none;opacity:1}
.toast i{color:var(--gold);font-size:1.2rem}
.toast--success{background:#1b7a44}.toast--error{background:var(--accent-dark)}

/* ----- 6.96 Modal / dialog --------------------------------------------- */
.modal-backdrop{position:fixed;inset:0;z-index:110;background:rgba(15,20,15,.6);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:var(--fib-4);opacity:0;visibility:hidden;transition:opacity var(--t),visibility var(--t)}
.modal-backdrop.open{opacity:1;visibility:visible}
.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);max-width:520px;width:100%;
  padding:var(--fib-6) var(--fib-5);transform:scale(.94);transition:transform var(--t);position:relative}
.modal-backdrop.open .modal{transform:scale(1)}
.modal .close{position:absolute;top:var(--fib-3);right:var(--fib-3);width:38px;height:38px;border:0;border-radius:50%;
  background:var(--bg);color:var(--ink);cursor:pointer;font-size:1.1rem}
.modal h3{margin-bottom:var(--fib-3)}

/* ----- 6.97 Banner de cookies ------------------------------------------ */
.cookie{position:fixed;left:var(--fib-4);right:var(--fib-4);bottom:var(--fib-4);z-index:90;max-width:520px;margin-inline:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:var(--fib-4);display:flex;flex-wrap:wrap;align-items:center;gap:var(--fib-3)}
.cookie p{margin:0;font-size:.88rem;color:var(--ink-soft);flex:1;min-width:200px}
.cookie .btn{padding:8px 18px}

/* ----- 6.98 Grade do Instagram / feed ---------------------------------- */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--fib-2)}
.ig-grid a{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;display:block}
.ig-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.ig-grid a::after{content:"\f16d";font-family:"Font Awesome 6 Brands";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.3rem;background:rgba(49,104,60,.5);opacity:0;transition:opacity var(--t)}
.ig-grid a:hover img{transform:scale(1.1)}
.ig-grid a:hover::after{opacity:1}
@media (max-width:768px){.ig-grid{grid-template-columns:repeat(3,1fr)}}

/* ----- 6.99 Barra de compartilhamento ---------------------------------- */
.share{display:inline-flex;gap:10px}
.share a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--bg);color:var(--brand);font-size:1.05rem;transition:transform var(--t),background var(--t),color var(--t)}
.share a:hover{transform:translateY(-3px);background:var(--brand);color:#fff}
.share a.wa:hover{background:#25D366}
.share a.ig:hover{background:#d6249f}
.share a.fb:hover{background:#1877f2}

/* ----- 6.100 FAB (botão de ação flutuante com menu) -------------------- */
.fab{position:fixed;right:var(--fib-4);bottom:calc(var(--fib-4) + 76px);z-index:59}
.fab-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;opacity:0;visibility:hidden;transform:translateY(10px);transition:all var(--t)}
.fab.open .fab-actions{opacity:1;visibility:visible;transform:none}
.fab-actions a{width:46px;height:46px;border-radius:50%;background:var(--surface);color:var(--brand);
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);font-size:1.05rem}

/* ----- 6.101 Sumário de avaliações (qualitativo) ----------------------- */
.review-summary{display:flex;align-items:center;gap:var(--fib-4);flex-wrap:wrap}
.review-summary .score{font-family:var(--font-title);font-size:3rem;font-weight:900;color:var(--accent);line-height:1}
.review-bars{flex:1;min-width:200px;display:grid;gap:6px}
.review-bars .rb{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-soft)}
.review-bars .rb .bar{flex:1;height:8px;background:var(--line);border-radius:999px;overflow:hidden}
.review-bars .rb .bar>span{display:block;height:100%;background:var(--gold)}
/* ----- 6.102 Bordas em gradiente --------------------------------------- */
.gborder{position:relative;border-radius:var(--radius-lg);background:var(--surface)}
.gborder::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;
  background:linear-gradient(135deg,var(--brand),var(--gold),var(--accent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.gborder-green::before{background:linear-gradient(135deg,var(--brand-soft),var(--brand))}
.gborder-warm::before{background:linear-gradient(135deg,var(--gold),var(--accent))}

/* ----- 6.103 Filtros de imagem ----------------------------------------- */
.f-blur{filter:blur(3px)}.f-bright{filter:brightness(1.1)}.f-dark{filter:brightness(.8)}
.f-contrast{filter:contrast(1.1)}.f-sat{filter:saturate(1.3)}.f-sepia{filter:sepia(.4)}
.f-none{filter:none}
.bd-blur{backdrop-filter:blur(8px)}

/* ----- 6.104 Tabelas estilizadas --------------------------------------- */
.table{width:100%;border-collapse:collapse;font-size:.95rem}
.table th,.table td{padding:var(--fib-3) var(--fib-4);text-align:left;border-bottom:1px solid var(--line)}
.table th{font-weight:700;color:var(--brand-dark);background:var(--bg)}
.table tr:hover td{background:rgba(49,104,60,.04)}
.table--striped tbody tr:nth-child(odd){background:rgba(49,104,60,.03)}
.table--bordered th,.table--bordered td{border:1px solid var(--line)}
.table caption{caption-side:bottom;font-size:.8rem;color:var(--ink-soft);padding-top:var(--fib-3)}

/* ----- 6.105 Listas estilizadas ---------------------------------------- */
.list-check{list-style:none;display:grid;gap:10px}
.list-check li{display:flex;align-items:flex-start;gap:10px}
.list-check li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--brand-soft);margin-top:3px}
.list-arrow{list-style:none;display:grid;gap:10px}
.list-arrow li::before{content:"\f105";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--gold);margin-right:10px}
.list-dot{list-style:none;display:grid;gap:8px}
.list-dot li{display:flex;align-items:center;gap:10px}
.list-dot li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.list-inline{list-style:none;display:flex;flex-wrap:wrap;gap:var(--fib-3)}

/* ----- 6.106 Citação / blockquote variações ---------------------------- */
blockquote{margin:var(--fib-4) 0;padding:var(--fib-3) var(--fib-4);border-left:4px solid var(--gold);
  background:rgba(225,185,24,.08);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-soft);font-style:italic}
blockquote cite{display:block;margin-top:8px;font-style:normal;font-weight:700;color:var(--brand-dark)}
.dl{display:grid;grid-template-columns:auto 1fr;gap:8px var(--fib-4)}
.dl dt{font-weight:700;color:var(--brand-dark)}
.dl dd{margin:0;color:var(--ink-soft)}

/* ----- 6.107 Figure / caption ------------------------------------------ */
figure.fig{margin:0}
figure.fig figcaption{font-size:.82rem;color:var(--ink-soft);margin-top:8px;text-align:center}
.caption-overlay{position:relative}
.caption-overlay figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--fib-3);color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.65));font-size:.85rem}

/* ----- 6.108 Posição de objeto / aspect helpers ------------------------ */
.obj-top{object-position:top}.obj-center{object-position:center}.obj-bottom{object-position:bottom}
.fit-cover{width:100%;height:100%;object-fit:cover}
.square{aspect-ratio:1;object-fit:cover}

/* ----- 6.109 Margens automáticas / alinhamento flex -------------------- */
.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.mt-auto{margin-top:auto}
.self-center{align-self:center}.self-start{align-self:flex-start}.self-end{align-self:flex-end}
.place-center{display:grid;place-items:center}

/* ----- 6.110 Sublinhado animado (links de texto) ----------------------- */
.ulink{position:relative;color:var(--accent);font-weight:600}
.ulink::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--t)}
.ulink:hover::after{transform:scaleX(1);transform-origin:left}

/* ----- 6.111 Estado vazio / placeholder -------------------------------- */
.empty-state{text-align:center;padding:var(--fib-7) var(--fib-4);color:var(--ink-soft)}
.empty-state i{font-size:3rem;color:var(--line);margin-bottom:var(--fib-3)}

/* ----- 6.112 Microajustes de acabamento -------------------------------- */
.hero-content{will-change:transform}
.card,.feature,.testimonial,.price-card,.quick{will-change:transform}
.btn:focus-visible{outline-offset:3px}
.section-head .eyebrow{justify-content:center}
.gallery-grid figure{will-change:transform}
.footer-social a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.main-nav .btn-whats:focus-visible{outline:3px solid #fff;outline-offset:2px}
.is-hidden{display:none!important}
.is-invisible{visibility:hidden}
.fade-enter{animation:fadeIn .4s ease both}
.slide-enter{animation:fadeInUp .5s ease both}
/* ----- 6.113 Espaçamento direcional completo (escala Fibonacci) -------- */
.ml-1{margin-left:var(--fib-1)}.ml-2{margin-left:var(--fib-2)}.ml-3{margin-left:var(--fib-3)}.ml-4{margin-left:var(--fib-4)}.ml-5{margin-left:var(--fib-5)}
.mr-1{margin-right:var(--fib-1)}.mr-2{margin-right:var(--fib-2)}.mr-3{margin-right:var(--fib-3)}.mr-4{margin-right:var(--fib-4)}.mr-5{margin-right:var(--fib-5)}
.pl-2{padding-left:var(--fib-2)}.pl-3{padding-left:var(--fib-3)}.pl-4{padding-left:var(--fib-4)}.pl-5{padding-left:var(--fib-5)}
.pr-2{padding-right:var(--fib-2)}.pr-3{padding-right:var(--fib-3)}.pr-4{padding-right:var(--fib-4)}.pr-5{padding-right:var(--fib-5)}
.pt-2{padding-top:var(--fib-2)}.pt-3{padding-top:var(--fib-3)}
.pb-2{padding-bottom:var(--fib-2)}.pb-3{padding-bottom:var(--fib-3)}
.m-0{margin:0}.m-3{margin:var(--fib-3)}.m-4{margin:var(--fib-4)}.m-5{margin:var(--fib-5)}
.p-0{padding:0}.p-2{padding:var(--fib-2)}.p-7{padding:var(--fib-7)}

/* ----- 6.114 Colunas de gap finas / row-gap / col-gap ------------------ */
.row-gap-2{row-gap:var(--fib-2)}.row-gap-3{row-gap:var(--fib-3)}.row-gap-4{row-gap:var(--fib-4)}.row-gap-5{row-gap:var(--fib-5)}
.col-gap-2{column-gap:var(--fib-2)}.col-gap-3{column-gap:var(--fib-3)}.col-gap-4{column-gap:var(--fib-4)}.col-gap-5{column-gap:var(--fib-5)}

/* ----- 6.115 Alinhamento de texto responsivo --------------------------- */
@media (max-width:768px){
  .text-center-m{text-align:center}
  .text-left-m{text-align:left}
  .mx-auto-m{margin-inline:auto}
  .full-m{width:100%}
  .stack-m{flex-direction:column}
  .hide-m{display:none!important}
}
@media (min-width:769px){
  .hide-d{display:none!important}
}

/* ----- 6.116 Estados de cor de texto interativos ----------------------- */
.t-hover-accent{transition:color var(--t)}.t-hover-accent:hover{color:var(--accent)}
.t-hover-brand{transition:color var(--t)}.t-hover-brand:hover{color:var(--brand)}
.t-hover-gold{transition:color var(--t)}.t-hover-gold:hover{color:var(--gold)}

/* ----- 6.117 Cartão de oferta / destaque do dia ------------------------ */
.today-special{display:flex;gap:var(--fib-4);align-items:center;background:linear-gradient(120deg,rgba(225,185,24,.16),rgba(200,54,47,.08));
  border:1px solid rgba(225,185,24,.4);border-radius:var(--radius-lg);padding:var(--fib-4) var(--fib-5)}
.today-special .ts-ic{width:60px;height:60px;border-radius:50%;background:var(--gold);color:#3b2f00;
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex:0 0 auto}
.today-special h4{margin-bottom:2px;color:var(--brand-dark)}
.today-special p{margin:0;color:var(--ink-soft)}

/* ----- 6.118 Selos de confiança em linha ------------------------------- */
.badges-row{display:flex;flex-wrap:wrap;gap:var(--fib-4);align-items:center;justify-content:center}
.badge-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;
  background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:.85rem;color:var(--ink-soft)}
.badge-pill i{color:var(--brand)}
.badge-pill.gold i{color:var(--gold)}
.badge-pill.red i{color:var(--accent)}

/* ----- 6.119 Cartão de mapa / direções --------------------------------- */
.directions{display:grid;gap:var(--fib-3)}
.directions .dir{display:flex;gap:var(--fib-3);align-items:flex-start;padding:var(--fib-3);border-radius:var(--radius);background:var(--bg)}
.directions .dir i{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.directions .dir strong{display:block;color:var(--brand-dark)}
.directions .dir span{font-size:.85rem;color:var(--ink-soft)}

/* ----- 6.120 Acabamento e consistência final --------------------------- */
.section-head p:last-child{margin-bottom:0}
.card>*:last-child{margin-bottom:0}
.feature>*:last-child{margin-bottom:0}
.about-text>*:last-child{margin-bottom:0}
.cta-final>*:last-child{margin-bottom:0}
.btn-whats i,.whats-float i{color:#fff}
.location a:focus-visible{outline-color:#fff}
.gallery-grid{grid-auto-rows:1fr}
.hero-cta{align-items:center}
.footer-grid>div>*:last-child{margin-bottom:0}
.info-list li small{opacity:.85}
/* ----- 6.121 Accordion alternativo (sem <details>) --------------------- */
.acc{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}
.acc+.acc{margin-top:var(--fib-3)}
.acc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--fib-3);padding:var(--fib-3) var(--fib-4);
  cursor:pointer;font-weight:700;color:var(--brand-dark)}
.acc-head i{transition:transform var(--t);color:var(--accent)}
.acc.open .acc-head i{transform:rotate(180deg)}
.acc-body{max-height:0;overflow:hidden;transition:max-height var(--t);padding:0 var(--fib-4)}
.acc.open .acc-body{max-height:400px;padding-bottom:var(--fib-4)}

/* ----- 6.122 Lista de etapas numeradas vertical ----------------------- */
.vsteps{counter-reset:vs;display:grid;gap:var(--fib-4)}
.vstep{display:flex;gap:var(--fib-4)}
.vstep .vs-num{counter-increment:vs;flex:0 0 auto;width:44px;height:44px;border-radius:50%;
  background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.vstep .vs-num::before{content:counter(vs)}
.vstep h4{margin-bottom:4px}
.vstep p{margin:0;color:var(--ink-soft)}

/* ----- 6.123 Bloco CTA inline (faixa) ---------------------------------- */
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:var(--fib-4);flex-wrap:wrap;
  background:linear-gradient(120deg,var(--brand),var(--brand-dark));color:#fff;border-radius:var(--radius-lg);padding:var(--fib-5)}
.cta-band h3{color:#fff;margin:0}
.cta-band p{margin:4px 0 0;opacity:.85}
.cta-band .btn-white{flex:0 0 auto}

/* ----- 6.124 Selo de qualidade redondo --------------------------------- */
.quality-seal{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;text-align:center;
  background:radial-gradient(circle,var(--surface) 60%,var(--gold) 61%);border:4px solid var(--gold);
  font-family:var(--font-title);font-weight:800;color:var(--brand-dark);line-height:1.1;font-size:.85rem;box-shadow:var(--shadow)}

/* ----- 6.125 Mapa de calor de disponibilidade -------------------------- */
.heat{display:flex;gap:4px}
.heat .cell{width:14px;height:14px;border-radius:3px;background:var(--line)}
.heat .cell.l1{background:rgba(49,104,60,.3)}
.heat .cell.l2{background:rgba(49,104,60,.55)}
.heat .cell.l3{background:rgba(49,104,60,.8)}
.heat .cell.l4{background:var(--brand)}

/* ----- 6.126 Rótulo flutuante em imagem -------------------------------- */
.img-label{position:absolute;top:var(--fib-3);left:var(--fib-3);z-index:2;background:var(--accent);color:#fff;
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:5px 12px;border-radius:999px;box-shadow:var(--shadow-sm)}
.img-label.gold{background:var(--gold);color:#3b2f00}
.img-label.green{background:var(--brand)}

/* ----- 6.127 Divisor com rótulo central -------------------------------- */
.label-divider{display:flex;align-items:center;gap:var(--fib-3);margin:var(--fib-5) 0;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}
.label-divider::before,.label-divider::after{content:"";flex:1;height:1px;background:var(--line)}

/* ----- 6.128 Cartões de equipe / chef ---------------------------------- */
.team-card{text-align:center}
.team-card img{width:140px;height:140px;border-radius:50%;object-fit:cover;margin:0 auto var(--fib-3);box-shadow:var(--shadow-sm);border:4px solid var(--surface)}
.team-card h4{margin-bottom:2px}
.team-card .role{font-size:.85rem;color:var(--accent);font-weight:700}
.team-card .socials{display:flex;justify-content:center;gap:10px;margin-top:var(--fib-3)}
.team-card .socials a{color:var(--brand-soft);transition:color var(--t)}
.team-card .socials a:hover{color:var(--accent)}

/* ----- 6.129 Realce de números monoespaçado ---------------------------- */
.num-mono{font-variant-numeric:tabular-nums;letter-spacing:.02em}
.price-tag{font-family:var(--font-title);font-weight:800;color:var(--accent)}
.price-tag small{font-size:.7em;font-weight:600;color:var(--ink-soft)}

/* ----- 6.130 Encerramento — normalização ------------------------------- */
.no-scroll{overflow:hidden}
.cover{position:absolute;inset:0}
.center-abs{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
img[loading=lazy]{background:var(--bg)}
::placeholder{color:#9c958a}
/* ----- 6.131 Utilitários de opacidade / cursor / pointer --------------- */
.op-0{opacity:0}.op-10{opacity:.1}.op-20{opacity:.2}.op-40{opacity:.4}.op-60{opacity:.6}.op-80{opacity:.8}.op-100{opacity:1}
.cur-pointer{cursor:pointer}.cur-default{cursor:default}.cur-help{cursor:help}.cur-grab{cursor:grab}
.pe-none{pointer-events:none}.pe-auto{pointer-events:auto}
.us-none{user-select:none}.us-all{user-select:all}

/* ----- 6.132 Bordas arredondadas por canto ----------------------------- */
.rt-0{border-top-left-radius:0;border-top-right-radius:0}
.rb-0{border-bottom-left-radius:0;border-bottom-right-radius:0}
.rtl-lg{border-top-left-radius:var(--radius-lg)}
.rtr-lg{border-top-right-radius:var(--radius-lg)}

/* ----- 6.133 Overflow / scroll ----------------------------------------- */
.of-hidden{overflow:hidden}.of-auto{overflow:auto}.of-x-auto{overflow-x:auto}.of-y-auto{overflow-y:auto}
.scroll-smooth{scroll-behavior:smooth}
.scroll-snap-x{scroll-snap-type:x mandatory;overflow-x:auto;display:flex;gap:var(--fib-3)}
.scroll-snap-x>*{scroll-snap-align:start;flex:0 0 auto}
.no-scrollbar{scrollbar-width:none}
.no-scrollbar::-webkit-scrollbar{display:none}

/* ----- 6.134 Carrossel simples (scroll-snap) --------------------------- */
.carousel{display:flex;gap:var(--fib-4);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--fib-3)}
.carousel>*{scroll-snap-align:center;flex:0 0 82%}
@media (min-width:769px){.carousel>*{flex:0 0 40%}}

/* ----- 6.135 Caixa de informação com ícone lateral --------------------- */
.infobox{display:flex;gap:var(--fib-4);background:var(--surface);border-radius:var(--radius-lg);
  padding:var(--fib-4);box-shadow:var(--shadow-sm);border-left:5px solid var(--brand)}
.infobox.gold{border-left-color:var(--gold)}
.infobox.red{border-left-color:var(--accent)}
.infobox .ib-ic{font-size:1.6rem;color:var(--brand)}

/* ----- 6.136 Grade de horários compacta -------------------------------- */
.hours-compact{display:inline-grid;grid-template-columns:auto auto;gap:4px var(--fib-4);font-size:.9rem}
.hours-compact .d{color:var(--ink-soft)}
.hours-compact .h{font-weight:700;color:var(--brand-dark);text-align:right}

/* ----- 6.137 Acabamento absoluto final --------------------------------- */
.text-white-all,.text-white-all *{color:#fff}
.bg-none{background:none}
.shadow-text{text-shadow:0 1px 2px rgba(0,0,0,.25)}
.aspect-hero{aspect-ratio:21/9}
.mw-full{max-width:100%}
/* ----- 6.138 Variáveis utilitárias de gap em grid auto ----------------- */
.auto-180{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--fib-4)}
.auto-220{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--fib-4)}
.auto-280{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--fib-5)}
.auto-320{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--fib-5)}

/* ----- 6.139 Realces de foco em campos --------------------------------- */
.field--ok .input{border-color:var(--brand-soft)}
.field--err .input{border-color:var(--accent)}
.field .hint{font-size:.78rem;color:var(--ink-soft)}
.field .err-msg{font-size:.78rem;color:var(--accent);font-weight:600}

/* ----- 6.140 Encerramento definitivo da camada de design --------------- */
.cantina-end{display:none}
.cantina-end::after{content:"Cantina Nonna Ines · design system"}
/* fim da camada 6 — design enhancements (1500+ linhas) */
