/* Bio do ChurrasPao · /bio/ (so PT).
   Molde: bio do Bar da Lapa (cs-bar-da-lapa-website), com a marca do ChurrasPao (123-brand-chp/DESIGN.md).
   Trocar o tema = trocar so o bloco :root. Contraste medido na pagina renderizada (ver o PR). */
/* Bebas Neue (400), Raleway (400-700) e Barlow Semi Condensed (600), subconjunto latin do Google Fonts (OFL), servidos de /bio/fontes/ */
@font-face{font-family:"Bebas Neue";font-style:normal;font-weight:400;font-display:swap;src:url(/bio/fontes/bebas-neue-latin-v16.woff2) format("woff2")}
@font-face{font-family:"Raleway";font-style:normal;font-weight:400 700;font-display:swap;src:url(/bio/fontes/raleway-latin-v37.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/bio/fontes/barlow-semi-condensed-600-latin-v16.woff2) format("woff2")}
:root{
  --bg:#030406; --bg-2:#14110E;                    /* preto da marca (cor principal); superficie de foto carregando */
  --fg:#F3E7D3;                                    /* creme: texto no escuro, 16.78:1 */
  --fg-2:#B8AE9F;                                  /* creme apagado pra apoio */
  --fg-3:#8F877B;                                  /* creme bem apagado: subfooter */
  --accent:#F47A20; --accent-hover:#FF8E3A;        /* laranja: chamada e botao, 7.47:1 no preto */
  --on-accent:#030406;                             /* preto sobre o laranja */
  --fil:#EE3D22; --fil-2:#CCB478;                  /* filete do titulo: vermelho nas linhas creme, dourado na linha laranja */
  --ink-rgb:244,122,32;                            /* o laranja em rgb, pro brilho do fundo */
  --hi-rgb:243,231,211;
  --line:rgba(var(--hi-rgb),.09);
  --glass:linear-gradient(180deg,rgba(243,231,211,.07),rgba(243,231,211,.025));
  --glass-hi:inset 0 1px 0 rgba(var(--hi-rgb),.09);
  --glass-on-media:rgba(3,4,6,.86);
  --on-photo:#FFFFFF; --on-photo-2:#EDE3D1;
  --display:"Bebas Neue",Oswald,Impact,"Arial Narrow",sans-serif;
  --detalhe:"Barlow Semi Condensed","Arial Narrow",Raleway,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --gutter:20px;
  color-scheme:dark;
}
@media (max-width:359px){:root{--gutter:16px}}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:Raleway,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;
  font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
::selection{background:var(--accent);color:var(--on-accent)}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.disp{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.01em}

/* fundo: reticula de pontos, como impressao de cartaz (grafismo do brand book), e o calor do fogo no topo */
.bgfx{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.bgfx::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 900px 600px at 50% -18%,rgba(var(--ink-rgb),.15),transparent 62%)}
.bgfx::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(var(--hi-rgb),.08) 1.6px,transparent 2px);background-size:12px 12px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 78%);mask-image:linear-gradient(180deg,#000,transparent 78%)}

.wrap{position:relative;z-index:1;width:100%;max-width:480px;margin:0 auto;padding:14px var(--gutter) 0}

/* 1 · header: so o logo (a bio e so em portugues, sem seletor de lingua) */
.top{display:flex;align-items:center;gap:12px;min-height:48px}
.top .logo{height:44px;width:auto;flex:none}
.chev{width:16px;height:16px;flex:none}

/* 2 · frase grande: uma linha por frase, "sanduiche" em laranja, filete deslocado atras como no logo */
.hero{padding-top:22px}
/* uma frase por linha, nunca quebrando: "DE CHURRASCO" e a mais larga (--h1w, em em), entao o tamanho acompanha a largura da caixa */
:root{--h1w:4.9}
h1{font-size:min(6rem,calc((100vw - 2 * var(--gutter)) / var(--h1w)));line-height:.88}
h1 .l{display:block;white-space:nowrap;width:max-content}
h1 .l2{color:var(--accent)}
/* filete: uma copia do texto so em contorno, deslocada .045em (brand book: .chp-fil) */
.fil{position:relative;isolation:isolate}
.fil::before{content:attr(data-t);position:absolute;left:.045em;top:.045em;width:100%;color:transparent;-webkit-text-stroke:2px var(--fil);z-index:-1;pointer-events:none}
.l2.fil::before{-webkit-text-stroke-color:var(--fil-2)}

/* 3 · topo: video em retrato 3:4, poster por baixo (e o LCP), CTA em vidro escuro encostado na base */
.palco{position:relative;margin-top:22px}
.palco .arte{position:relative;aspect-ratio:3/4;border-radius:24px;overflow:hidden;background:var(--bg-2);box-shadow:0 30px 70px -34px rgba(0,0,0,.6)}
.palco .arte img,.palco .video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.palco .video{opacity:0;transition:opacity .6s var(--ease)}
.palco .video.tocando{opacity:1}
.palco .arte::after{content:"";position:absolute;z-index:1;inset:auto 0 0 0;height:30%;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(3,4,6,.75))}
.pausa{position:absolute;z-index:3;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  color:var(--fg);background:rgba(3,4,6,.62);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--glass-hi)}
.pausa[hidden]{display:none}
.pausa svg{width:16px;height:16px}
.pausa .i-play,.pausa[aria-pressed=true] .i-pausa{display:none}
.pausa[aria-pressed=true] .i-play{display:inline}
.cta{position:relative;z-index:2;margin:-64px 10px 0;padding:14px 14px 14px;border-radius:20px;
  background:var(--glass-on-media);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);
  box-shadow:var(--glass-hi),0 10px 40px -12px rgba(0,0,0,.5)}
.selo{display:inline-flex;align-items:center;gap:8px;font-family:var(--detalhe);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.selo i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(var(--ink-rgb),.6)}
@media (prefers-reduced-motion:no-preference){.selo i{animation:ping 2.4s var(--ease) infinite}}
@keyframes ping{70%{box-shadow:0 0 0 7px rgba(var(--ink-rgb),0)}100%{box-shadow:0 0 0 0 rgba(var(--ink-rgb),0)}}
.cta h2{margin-top:6px;font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.2;text-wrap:balance}
.btn{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;padding:0 20px;border-radius:999px;
  background:var(--accent);color:var(--on-accent);font-size:16px;font-weight:700;letter-spacing:-.01em;
  transition:background .2s,gap .3s var(--ease),transform .15s var(--ease)}
.btn:hover{background:var(--accent-hover);gap:12px}.btn:active{transform:scale(.97)}
/* par de botoes: todo destino de pedido e por unidade (Fonseca ou Regiao Oceanica), entao os dois tem o mesmo peso */
.par{margin-top:12px;display:grid;gap:10px}
.par .btn{margin-top:0}
.par-2{grid-template-columns:1fr 1fr}
.par-2 .largo{grid-column:1 / -1}  /* terceiro botao do par (Retirada na Regiao Oceanica) ocupa a linha inteira */
/* tela estreita: "Pedir na Regiao Oceanica" tem que caber em uma linha no card do topo */
@media (max-width:359px){.btn{padding:0 12px;font-size:15px;gap:6px}.cta{margin-left:6px;margin-right:6px}}

/* destaque com validade (opcional): o <head> marca html.expirado depois de data-destaque-ate; sem JS o <noscript> mostra a reserva */
.reserva{display:none}
.expirado .destaque{display:none}
.expirado .reserva{display:block}

/* secoes */
section.s{padding-top:76px}
.label{font-family:var(--detalhe);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.h2{margin-top:10px;font-size:clamp(2.5rem,12vw,3.3rem);line-height:.92}
.h2 span{display:block;color:var(--fg-2)}

/* 4 · cards 3:4 das unidades: foto de ponta a ponta, nome grande sobre o degrade de leitura, um botao por card */
.cards{margin-top:24px;display:grid;gap:14px}
.card-foto{position:relative;display:block;aspect-ratio:3/4;border-radius:24px;overflow:hidden;background:var(--bg);isolation:isolate;
  box-shadow:0 18px 40px -26px rgba(0,0,0,.6);transition:transform .6s var(--ease)}
.card-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.card-foto::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,rgba(3,4,6,.96) 0%,rgba(3,4,6,.84) 30%,rgba(3,4,6,.5) 46%,transparent 62%)}
.card-foto .txt{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:22px 22px 20px}
.card-foto .n{font-family:var(--detalhe);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--on-photo-2)}
.card-foto h3{margin-top:2px;color:var(--on-photo);font-size:clamp(2.4rem,12vw,3.3rem);line-height:.9}  /* "REGIAO OCEANICA" (~5.8em) cabe em uma linha de 320 a 430 */
.card-foto p{margin-top:8px;font-size:14.5px;line-height:1.45;color:var(--on-photo-2);text-wrap:balance}
.card-foto .go{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--accent);transition:gap .3s var(--ease)}
@media (hover:hover){
  .card-foto:hover{transform:translateY(-4px)}
  .card-foto:hover img{transform:scale(1.035)}
  .card-foto:hover .go{gap:10px}
}

/* 4b · outros canais: WhatsApp e site de delivery de cada unidade, em botoes de contorno (o primario da tela e o de pedir) */
.canal-lista{margin-top:24px;display:grid;gap:12px}
.canal{padding:20px 22px 22px;border-radius:24px;background:var(--glass);box-shadow:var(--glass-hi)}
.canal h3{font-size:2rem;line-height:.95}
.canal .par{margin-top:14px}

/* 5 · prova: 3 diferenciais em vidro */
.nums{display:grid;grid-template-columns:1fr;gap:8px;list-style:none}  /* no celular um embaixo do outro */
.nums .num b br{display:none}
.num{padding:16px 6px 14px;border-radius:18px;background:var(--glass);box-shadow:var(--glass-hi);text-align:center}
.num b{display:block;font-size:clamp(1.7rem,8vw,2.3rem);line-height:.95;color:var(--accent);text-wrap:balance;hyphens:none}
.num span{display:block;margin-top:6px;font-size:13px;line-height:1.35;color:var(--fg-2);text-wrap:balance}

/* 6 · avaliar no Google: vidro como os diferenciais, botao secundario (o primario da tela e o do banner final) */
.opiniao{padding:24px 22px 22px;border-radius:24px;background:var(--glass);box-shadow:var(--glass-hi)}
.opiniao h2{margin-top:8px;font-size:clamp(2.5rem,12vw,3.3rem);line-height:.95}
.opiniao .par{margin-top:18px}
.btn-2{background:rgba(var(--ink-rgb),.14);color:var(--accent)}
.btn-2:hover{background:rgba(var(--ink-rgb),.24)}
/* terceiro nivel: contorno do mesmo tamanho */
.btn-3{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1.5px rgba(var(--hi-rgb),.28)}
.btn-3:hover{background:rgba(var(--hi-rgb),.06);box-shadow:inset 0 0 0 1.5px rgba(var(--hi-rgb),.5)}

/* 7 · CTA final clicavel: foto em cima, texto e os dois botoes de pedido embaixo */
.final{padding-top:72px}
.banner{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;background:var(--glass);box-shadow:var(--glass-hi),0 24px 60px -36px rgba(0,0,0,.5)}
.banner-foto{aspect-ratio:4/3;background:var(--bg-2)}
.banner-foto img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.banner-txt{padding:22px 22px 22px}
.banner h2{margin-top:8px;font-size:clamp(2.8rem,13.5vw,3.5rem);line-height:.92}
.banner .par{margin-top:18px}

/* 8 · footer */
.rodape{position:relative;z-index:1;max-width:480px;margin:96px auto 0;padding:0 var(--gutter) max(20px,env(safe-area-inset-bottom))}
.frase{font-size:clamp(2.5rem,12vw,3.3rem);line-height:.92;color:var(--fg-2);text-align:center}
.frase b{display:block;color:var(--accent);font-weight:400}
.row{margin-top:24px;display:flex;align-items:center;justify-content:center;gap:12px}
.soc{display:flex;gap:10px}
.soc a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--fg-2);
  background:var(--glass);box-shadow:var(--glass-hi);transition:color .2s,background .3s,transform .3s var(--ease)}
.soc a:hover{color:var(--on-accent);background:var(--accent);transform:translateY(-2px)}
.soc svg{width:18px;height:18px}
/* subfooter centralizado e discreto, como nas bios de referencia */
.sub{margin-top:28px;padding-top:22px;box-shadow:inset 0 1px 0 var(--line);font-size:12.5px;color:var(--fg-3);line-height:1.65;display:grid;gap:12px;text-align:center}
.sub .quem b{color:var(--fg-2);font-weight:600}
.sub .feito a{display:inline-flex;align-items:center;gap:5px;color:var(--fg-2);font-weight:600;transition:color .2s}
.sub .feito a:hover{color:var(--accent)}
.sub .feito svg{width:13px;height:13px;color:var(--accent)}
/* assinatura grande: o logo da casa com degrade de opacidade */
.mark{margin:28px auto 0;width:min(100%,520px);height:auto;opacity:.32;user-select:none;
  -webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 95%);mask-image:linear-gradient(180deg,#000 30%,transparent 95%)}

@media (min-width:960px){
  :root{--gutter:40px}
  .wrap{max-width:1080px;padding-top:24px}
  /* frase centrada na altura do video: linhas 1fr em volta, a coluna do texto nao estica */
  .hero{display:grid;grid-template-columns:1fr 380px;grid-template-rows:1fr auto 1fr;column-gap:40px;align-items:start;padding-top:40px}
  .hero h1{grid-row:2;grid-column:1}
  /* a coluna do texto e min(100vw,1080) - 80 (gutter) - 380 (video) - 40 (gap); -20px de folga pra barra de rolagem */
  .hero h1{font-size:min(8.2rem,calc((min(100vw,1080px) - 520px) / var(--h1w)))}
  .fil::before{-webkit-text-stroke-width:3px}
  .nums{grid-template-columns:repeat(3,1fr)}
  .nums .num b br{display:inline}
  .palco{margin-top:0;grid-row:1 / -1;grid-column:2}
  section.s{padding-top:112px}
  .cards{grid-template-columns:repeat(3,1fr);gap:18px}
  .card-foto h3{font-size:2.8rem}
  .canal-lista{grid-template-columns:1fr 1fr;gap:18px}
  .canais,.prova,.avaliar .opiniao,.final .banner{max-width:720px;margin-left:auto;margin-right:auto}
  .opiniao .par,.banner .par{grid-template-columns:1fr 1fr}
  .banner-foto{aspect-ratio:21/9}
  .banner-txt{padding:32px 40px 40px}
  .rodape{max-width:1080px;margin-top:128px}
}

/* entrada: a frase, depois o video, depois os cards. Uma curva so (--ease) */
@media (prefers-reduced-motion:no-preference){
  .js .fade{opacity:0;transition:opacity .9s var(--ease)}
  .js.go .fade{opacity:1}
  .js .w{display:inline-block;opacity:0;transform:translateY(.4em);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i) * 90ms + 100ms)}
  .js.go .w{opacity:1;transform:none}
  /* o filete entra depois das palavras, senao o contorno aparece sozinho antes do texto */
  .js .fil::before{opacity:0;transition:opacity .7s var(--ease) .75s}
  .js.go .fil::before{opacity:1}
  /* o poster do video e o LCP: entra so deslizando, sem opacity 0 (opacity 0 adia o LCP no Lighthouse) */
  .js .media{transform:translateY(40px);transition:transform 1.1s var(--ease) .5s}
  .js.go .media{transform:none}
  .js .card{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
  .js .card.on{opacity:1;transform:none}
}
