/* ==========================================================================
   O Caldinho de Queijo - folha de estilo
   Gravata-PE | site de uma pagina
   ========================================================================== */

/* base */
*{box-sizing:border-box}
:root{
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
img{max-width:100%}
[hidden]{display:none !important}

/* Layout: coluna única e quente — barra fixa, selo que enche no topo, cardápio com linha pontilhada, visita no fim.
   Identidade escura e dourada, tirada do próprio selo. */
:root{
  --ink:#0A0907;
  --ink-2:#141109;
  --ink-3:#1D1810;
  --gold:#E3AC41;
  --gold-soft:#F0C877;
  --gold-deep:#A9741A;
  --cream:#F4E8D2;
  --muted:#A08D73;
  --line:rgba(227,172,65,.18);
  --line-2:rgba(227,172,65,.34);
  --font-display:"Bitter",Georgia,"Times New Roman",serif;
  --font-script:"Kaushan Script","Brush Script MT",cursive;
  --font-body:"Karla","Helvetica Neue",Arial,sans-serif;
  color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{
  background:var(--ink);
  color:var(--cream);
  font-family:var(--font-body);
  font-size:16px;line-height:1.6;margin:0;
  overflow-x:hidden;
}
.glow{position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(60% 38% at 50% 0%, rgba(227,172,65,.17), rgba(227,172,65,0) 70%),
    radial-gradient(44% 30% at 85% 42%, rgba(169,116,26,.13), rgba(169,116,26,0) 70%),
    radial-gradient(44% 30% at 12% 78%, rgba(169,116,26,.11), rgba(169,116,26,0) 70%);
  animation:drift 22s ease-in-out infinite alternate;
}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,-26px,0) scale(1.07)}}

.wrap{max-width:780px;margin:0 auto;padding-inline:20px;position:relative;z-index:1}
h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0}
a{color:var(--gold)}

/* ---------- barra fixa ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;
  background:rgba(10,9,7,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s ease, background .3s ease}
.nav.stuck{border-bottom-color:var(--line);background:rgba(10,9,7,.94)}
.nav-in{max-width:780px;margin:0 auto;padding:11px 20px;display:flex;align-items:center;gap:14px}
.nav-mark{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--cream);font-family:var(--font-display);font-weight:700;font-size:.95rem;white-space:nowrap}
.nav-mark img{width:30px;height:30px;border-radius:50%;transition:transform .4s ease}
.nav-mark:hover img{transform:rotate(-14deg) scale(1.08)}
.nav-links{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav-links a{position:relative;text-decoration:none;color:var(--muted);font-size:.86rem;padding:7px 11px;border-radius:999px;transition:color .25s ease,background .25s ease}
.nav-links a:hover{color:var(--cream);background:rgba(227,172,65,.07)}
.nav-links a.active{color:var(--gold)}
.nav-zap{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#17120A !important;font-weight:700;font-size:.84rem;padding:8px 15px;border-radius:999px;text-decoration:none;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease}
.nav-zap:hover{transform:translateY(-1px);box-shadow:0 8px 20px -10px rgba(227,172,65,.9)}
.nav-zap svg{width:15px;height:15px}
.bar{height:2px;background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft));width:0%;transition:width .12s linear}
@media (max-width:700px){ .nav-links a:not(.nav-zap){display:none} .nav-links{margin-left:auto} }

/* ---------- selo que enche ---------- */
.hero{padding-block:52px 44px;text-align:center}
.badge-stage{position:relative;display:inline-block;--bs:min(68vw,264px)}

.steam{position:absolute;left:50%;bottom:calc(var(--bs) * .76);translate:-50% 0;width:96px;height:76px;pointer-events:none;opacity:.5;filter:blur(4px)}
.steam span{position:absolute;bottom:0;width:9px;height:9px;border-radius:50%;background:var(--cream);opacity:0;animation:steam 5s ease-in-out infinite}
.steam span:nth-child(1){left:16px;animation-delay:2.3s}
.steam span:nth-child(2){left:43px;animation-delay:3.1s}
.steam span:nth-child(3){left:70px;animation-delay:3.9s}
@keyframes steam{0%{opacity:0;transform:translateY(0) scale(.5)}25%{opacity:.5}100%{opacity:0;transform:translateY(-64px) scale(2.2)}}

.ring{position:absolute;inset:-14px;border-radius:50%;border:1px solid var(--line);animation:halo 6s ease-in-out infinite}
@keyframes halo{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.045);opacity:.18}}

.badge{position:relative;width:var(--bs);height:var(--bs);border-radius:50%;overflow:hidden;
  cursor:pointer;border:0;padding:0;background:transparent;display:block;
  filter:drop-shadow(0 20px 46px rgba(227,172,65,.26));
  transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.badge:hover{transform:scale(1.03)}
.badge:active{transform:scale(.98)}
.badge img{position:absolute;left:0;bottom:0;width:var(--bs);height:var(--bs);object-fit:contain;display:block}
.badge .base{filter:brightness(.38) saturate(.38)}

.pour{position:absolute;left:0;right:0;bottom:0;height:0;overflow:hidden;animation:pour 3.1s cubic-bezier(.33,.08,.24,1) .5s forwards}
.badge.reset .pour{animation:none;height:0}
.badge.go .pour{animation:pour 3.1s cubic-bezier(.33,.08,.24,1) forwards}
.pour img{filter:brightness(1.07) saturate(1.14) drop-shadow(0 0 12px rgba(227,172,65,.3))}
@keyframes pour{from{height:0}to{height:100%}}

.surface{position:absolute;top:-10px;left:-50%;width:200%;height:22px;animation:slosh 3.4s ease-in-out infinite}
.surface svg{display:block;width:100%;height:100%}
@keyframes slosh{0%,100%{transform:translateX(-5%)}50%{transform:translateX(5%)}}

.replay{margin-top:14px;font-size:.69rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}

.since{font-family:var(--font-script);color:var(--gold);font-size:1.55rem;line-height:1;margin-top:26px}
.hero h1{font-size:clamp(2.1rem,9vw,3.1rem);font-weight:800;letter-spacing:-.015em;margin-top:8px;line-height:1.05}
.tag{color:var(--muted);margin-top:15px;font-size:1.04rem;max-width:38ch;margin-inline:auto}

.actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:28px}
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border-radius:999px;text-decoration:none;font-weight:700;font-size:.95rem;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-main{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#17120A;box-shadow:0 10px 26px -12px rgba(227,172,65,.8)}
.btn-main:hover{box-shadow:0 16px 34px -14px rgba(227,172,65,1)}
.btn-ghost{border:1px solid var(--line-2);color:var(--cream);background:rgba(227,172,65,.05)}
.btn-ghost:hover{background:rgba(227,172,65,.12)}
.btn svg{width:17px;height:17px;flex:none}

.cue{margin-top:34px;color:var(--muted);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;flex-direction:column;align-items:center;gap:7px}
.cue svg{width:16px;height:16px;animation:bob 2.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(5px);opacity:1}}

/* ---------- números ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.stat{background:var(--ink-2);padding:19px 12px;text-align:center;transition:background .3s ease}
.stat:hover{background:var(--ink-3)}
.stat b{display:block;font-family:var(--font-display);font-size:1.32rem;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums}
.stat span{display:block;font-size:.71rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:5px}

/* ---------- seções ---------- */
section{padding-block:46px;border-top:1px solid var(--line);margin-top:40px}
.eyebrow{font-size:.7rem;letter-spacing:.21em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
section h2{font-size:1.6rem;font-weight:700;margin-top:8px}
section > p{color:#D9C9AC;margin-top:15px;max-width:62ch}

.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:26px}
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0;transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s ease}
.panel:hover{transform:translateY(-4px);border-color:var(--line-2)}
.panel h3{font-size:1.04rem;font-weight:700}
.panel p{margin:7px 0 0;font-size:.92rem;color:var(--muted)}
.panel .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(227,172,65,.1);border:1px solid var(--line);margin-bottom:13px}
.panel .ic svg{width:17px;height:17px;stroke:var(--gold)}

.modes{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.chip{border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.88rem;background:rgba(227,172,65,.06);transition:background .25s ease,transform .25s ease}
.chip:hover{background:rgba(227,172,65,.14);transform:translateY(-2px)}

/* ---------- cardápio ---------- */
.search{margin-top:22px;position:relative;max-width:360px}
.search input{width:100%;background:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:11px 16px 11px 40px;color:var(--cream);font:inherit;font-size:.92rem;transition:border-color .25s ease,box-shadow .25s ease}
.search input::placeholder{color:var(--muted)}
.search input:focus{outline:none;border-color:var(--line-2);box-shadow:0 0 0 3px rgba(227,172,65,.1)}
.search svg{position:absolute;left:15px;top:50%;translate:0 -50%;width:15px;height:15px;stroke:var(--muted)}

.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.card{background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:20px 20px 22px;min-width:0;transition:border-color .3s ease}
.card:hover{border-color:var(--line-2)}
.card[hidden]{display:none}
.card h3{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-family:var(--font-body);font-weight:700}
.list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:9px}
.item{display:flex;align-items:baseline;gap:8px;min-width:0;transition:opacity .2s ease}
.item[hidden]{display:none}
.item .n{flex:0 1 auto;min-width:0;font-size:.94rem}
.item .lead{flex:1 1 14px;min-width:12px;border-bottom:1px dotted rgba(227,172,65,.33);translate:0 -5px}
.item .p{flex:none;color:var(--gold);font-weight:700;font-size:.92rem;font-variant-numeric:tabular-nums}
.item .p.ask{color:var(--muted);font-weight:500;font-size:.82rem}
.item .n small{display:block;color:var(--muted);font-size:.75rem;line-height:1.3}
.empty{color:var(--muted);font-size:.9rem;margin-top:18px}
.taxa{margin-top:22px;font-size:.8rem;color:var(--muted);text-align:center}

/* ---------- movimento ---------- */
.clock{margin-top:24px;background:var(--ink-2);border:1px solid var(--line);border-radius:16px;padding:20px}
.clock-bars{display:flex;align-items:flex-end;gap:3px;height:74px;margin-top:14px}
.clock-bars i{flex:1;border-radius:3px 3px 0 0;background:rgba(227,172,65,.14);height:26%;transform-origin:bottom;transform:scaleY(0);animation:grow .7s cubic-bezier(.2,.8,.3,1) forwards}
.clock-bars i.hot{background:linear-gradient(180deg,var(--gold-soft),var(--gold-deep))}
@keyframes grow{to{transform:scaleY(1)}}
.clock-axis{display:flex;justify-content:space-between;margin-top:9px;font-size:.7rem;color:var(--muted);letter-spacing:.08em}
.clock p{margin:14px 0 0;font-size:.88rem;color:var(--muted)}

/* ---------- avaliações ---------- */
.quotes{display:grid;gap:14px;margin-top:24px}
blockquote{margin:0;background:var(--ink-2);border-left:3px solid var(--gold-deep);border-radius:0 14px 14px 0;padding:17px 19px;transition:transform .3s cubic-bezier(.2,.7,.3,1),border-color .3s ease}
blockquote:hover{transform:translateX(4px);border-left-color:var(--gold)}
blockquote p{margin:0;font-family:var(--font-display);font-style:italic;font-size:1.02rem}
blockquote cite{display:block;margin-top:9px;font-style:normal;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}

/* ---------- perguntas ---------- */
.faq{margin-top:24px;display:grid;gap:10px}
.q{background:var(--ink-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .3s ease}
.q.open{border-color:var(--line-2)}
.q button{width:100%;background:none;border:0;color:var(--cream);font:inherit;font-weight:700;font-size:.96rem;text-align:left;padding:15px 18px;display:flex;align-items:center;gap:12px;cursor:pointer}
.q button span{flex:1;min-width:0}
.q button i{flex:none;width:16px;height:16px;position:relative;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.q button i::before,.q button i::after{content:"";position:absolute;background:var(--gold);border-radius:2px}
.q button i::before{left:0;top:7px;width:16px;height:2px}
.q button i::after{left:7px;top:0;width:2px;height:16px;transition:opacity .3s ease}
.q.open button i{transform:rotate(90deg)}
.q.open button i::after{opacity:0}
.q .a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.2,.7,.3,1)}
.q.open .a{grid-template-rows:1fr}
.q .a > div{overflow:hidden}
.q .a p{margin:0;padding:0 18px 17px;color:var(--muted);font-size:.93rem}

/* ---------- visita ---------- */
.facts{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:16px}
.facts li{display:grid;grid-template-columns:100px 1fr;gap:14px;align-items:baseline;min-width:0}
.facts .k{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.facts .v{min-width:0;overflow-wrap:anywhere}
.copy{margin-left:10px;border:1px solid var(--line);background:none;color:var(--gold);border-radius:999px;padding:3px 11px;font:inherit;font-size:.74rem;cursor:pointer;transition:background .25s ease}
.copy:hover{background:rgba(227,172,65,.12)}

footer{border-top:1px solid var(--line);padding-block:34px 48px;text-align:center;color:var(--muted);font-size:.85rem;margin-top:40px;position:relative;z-index:1}
.social{display:flex;gap:10px;justify-content:center;margin-bottom:18px;flex-wrap:wrap}
.social a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 18px;text-decoration:none;color:var(--cream);font-size:.9rem;transition:background .25s ease,transform .25s ease}
.social a:hover{background:rgba(227,172,65,.1);transform:translateY(-2px)}
.social svg{width:16px;height:16px}

.top{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:45;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:rgba(20,17,9,.9);
  color:var(--gold);display:grid;place-items:center;cursor:pointer;
  opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease,background .25s ease}
.top.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.top:hover{background:rgba(227,172,65,.18)}
.top svg{width:17px;height:17px}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- desenhos do caldinho ---------- */
.art{display:block;width:100%;height:auto}
.art .vap,.art .bub,.art .queijo,.art .brilho,.art .colher,
.draw .vp,.draw .bob{transform-box:fill-box;transform-origin:center}

/* vapor que sobe e some */
.vap{fill:none;stroke:var(--cream);stroke-width:3;stroke-linecap:round;
  stroke-dasharray:54 54;opacity:0;animation:vap 4.2s ease-in-out infinite}
@keyframes vap{
  0%{stroke-dashoffset:54;opacity:0}
  18%{opacity:.52}
  70%{opacity:.26}
  100%{stroke-dashoffset:-54;opacity:0}
}

/* bolhas subindo no caldo */
.bub{fill:var(--gold-soft);opacity:0;animation:bub 3.6s ease-in infinite}
@keyframes bub{
  0%{opacity:0;transform:translateY(2px) scale(.4)}
  22%{opacity:.8}
  100%{opacity:0;transform:translateY(-22px) scale(1.2)}
}

/* cubos de queijo boiando */
.queijo{animation:boia 4.6s ease-in-out infinite}
@keyframes boia{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-3px) rotate(7deg)}
}

/* brilho que passa na superfície */
.brilho{animation:brilho 5.2s ease-in-out infinite}
@keyframes brilho{0%,100%{opacity:.18;transform:translateX(-7px)}50%{opacity:.5;transform:translateX(7px)}}

/* colher que mexe o caldo */
.colher{animation:mexe 6s ease-in-out infinite}
@keyframes mexe{0%,100%{transform:rotate(0deg)}50%{transform:rotate(-5deg)}}

.cumbuca-wrap{margin-top:28px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:26px;align-items:center}
.cumbuca{max-width:380px;margin-inline:auto;width:100%;filter:drop-shadow(0 26px 44px rgba(227,172,65,.2))}
.ritual{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:r}
.ritual li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.ritual li > div{min-width:0}
.ritual li::before{counter-increment:r;content:counter(r);
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(227,172,65,.1);border:1px solid var(--line);
  color:var(--gold);font-family:var(--font-display);font-weight:700;font-size:.9rem;
  transition:background .3s ease,transform .3s cubic-bezier(.2,.7,.3,1)}
.ritual li:hover::before{background:rgba(227,172,65,.22);transform:scale(1.08)}
.ritual b{display:block;font-family:var(--font-display);font-size:1rem}
.ritual span{display:block;color:var(--muted);font-size:.9rem;margin-top:2px}
@media (max-width:620px){ .cumbuca-wrap{grid-template-columns:1fr} }

/* ícones desenhados nos cards */
.draw{width:54px;height:54px;margin-bottom:14px}
.draw .ln{fill:none;stroke:var(--gold);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.draw .fl{fill:rgba(227,172,65,.16)}
.draw .pf{fill:var(--gold-soft)}
.draw .vp{fill:none;stroke:var(--cream);stroke-width:2.1;stroke-linecap:round;opacity:0;
  stroke-dasharray:26 26;stroke-dashoffset:26}
.panel:hover .draw .vp{animation:vapmini 1.5s ease-out infinite}
@keyframes vapmini{0%{stroke-dashoffset:26;opacity:0}30%{opacity:.6}100%{stroke-dashoffset:-26;opacity:0}}
.panel:hover .draw .fl{transition:fill .4s ease;fill:rgba(227,172,65,.3)}
.panel:hover .draw .bob{animation:boia 1.8s ease-in-out infinite}

/* faixa de vapor entre as seções */
.faixa{display:block;width:100%;height:30px;margin-top:-1px;opacity:.5}
.faixa path{fill:none;stroke:var(--gold-deep);stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:7 11;animation:corre 16s linear infinite}
@keyframes corre{to{stroke-dashoffset:-180}}

/* grãos de queijo flutuando no fundo */
.flut{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.flut i{position:absolute;width:8px;height:8px;border-radius:2.5px;
  background:rgba(244,232,210,.14);border:1px solid rgba(227,172,65,.2);
  animation:sobe linear infinite}
@keyframes sobe{
  0%{transform:translateY(8vh) rotate(0deg);opacity:0}
  12%{opacity:.75}
  88%{opacity:.5}
  100%{transform:translateY(-104vh) rotate(260deg);opacity:0}
}

/* micro-animação nos itens do cardápio */
.item .n,.item .p{transition:color .25s ease,transform .25s cubic-bezier(.2,.7,.3,1)}
.item:hover .n{color:var(--gold-soft);transform:translateX(3px)}
.item:hover .p{transform:scale(1.07)}
.item:hover .lead{border-bottom-color:var(--line-2)}
.item .lead{transition:border-color .25s ease}

/* reveal: visível por padrão; só esconde quando o script está de pé */
.anim .rv{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}
.anim .rv.in{opacity:1;transform:none}

@media (max-width:560px){ .cards,.split{grid-template-columns:1fr} }
@media (max-width:430px){
  .stats{grid-template-columns:1fr}
  .facts li{grid-template-columns:1fr;gap:3px}
  .btn{flex:1 1 100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pour,.badge.go .pour{animation:none;height:100%}
  .surface,.steam,.ring,.glow,.cue svg{animation:none}
  .steam{display:none}
  .clock-bars i{animation:none;transform:scaleY(1)}
  .anim .rv{opacity:1;transform:none;transition:none}
  .btn:hover,.panel:hover,.chip:hover,blockquote:hover,.social a:hover{transform:none}
}
