/* ============================================================
   PINE BARBER CO. · site
   Versão noturna do manual: chão quase preto puxado do Bark,
   Pine como luz baixa, Cream como texto, Rust só no botão e na
   pétala acesa. Jost fala, DM Mono etiqueta. A roseta é o eixo.
   ============================================================ */
:root{
  --noite:#171210;
  --noite-rgb:23,18,16;
  --bark:#3E2D26;
  --bark-2:#241B17;        /* superfície de cartão, sombra do Bark */
  --pine:#515733;
  --pine-esc:#3E4327;
  --pine-noite:#2A2E1B;    /* pétala apagada, sombra do Pine escuro */
  --cream:#F1ECE8;
  --cream-rgb:241,236,232;
  --sand:#DCD5CB;
  --rust:#C8501A;
  --rust-esc:#A8420F;      /* botão pressionado */

  --tinta:var(--cream);
  --tinta-2:rgba(var(--cream-rgb),.74);
  --tinta-3:rgba(var(--cream-rgb),.58);
  --linha:rgba(var(--cream-rgb),.12);
  --linha-forte:rgba(var(--cream-rgb),.28);

  --f-txt:"Jost",system-ui,sans-serif;
  --f-mono:"DM Mono",ui-monospace,SFMono-Regular,monospace;

  --t-display:clamp(3.1rem,7.6vw,6.8rem);
  --t-h2:clamp(2.3rem,4.6vw,4.2rem);
  --t-h3:clamp(1.3rem,1.7vw,1.6rem);
  --t-lead:clamp(1.08rem,1.35vw,1.3rem);
  --t-corpo:1.02rem;
  --t-mono:.72rem;

  --gutter:clamp(20px,4vw,56px);
  --inset:var(--gutter);   /* recuo lateral; em tela larga cresce para reservar o trilho da bússola */
  --max:1320px;
  --sec:clamp(80px,9vw,128px);
  --nav-h:84px;
  --r:6px;
  --r-pill:999px;

  --ease:cubic-bezier(.16,1,.3,1);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--noite);color:var(--tinta);
  font:400 var(--t-corpo)/1.6 var(--f-txt);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--rust);outline-offset:4px;border-radius:2px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:1.1em;height:1.1em;flex:none}
.container{width:min(100% - 2*var(--inset),var(--max));margin-inline:auto}
.mono{font-family:var(--f-mono);font-size:var(--t-mono);font-weight:500;letter-spacing:.18em;text-transform:uppercase;line-height:1.5}
.mono i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--linha-forte);vertical-align:middle;margin:0 .9em 2px}
.lead{font-size:var(--t-lead);line-height:1.55;color:var(--tinta-2);max-width:52ch;text-wrap:pretty}
h2{font:600 var(--t-h2)/1.02 var(--f-txt);letter-spacing:-.022em;text-wrap:balance;max-width:14ch;margin-bottom:.55em}
h3{font:500 var(--t-h3)/1.2 var(--f-txt);letter-spacing:-.01em}
.sec{padding-block:var(--sec)}
main{position:relative;z-index:1}

/* ---------- botões ---------- */
.botao{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:52px;padding:0 26px;border-radius:var(--r-pill);
  font:500 1rem/1 var(--f-txt);letter-spacing:.01em;white-space:nowrap;
  transition:transform .6s var(--ease),background-color .3s,border-color .3s,color .3s;
  will-change:transform;
}
.botao--rust{background:var(--rust);color:var(--cream)}
.botao--rust:hover{background:var(--rust-esc)}
.botao--linha{border:1px solid var(--linha-forte);color:var(--cream)}
.botao--linha:hover{border-color:var(--cream)}
.botao--grande{min-height:62px;padding:0 34px;font-size:1.08rem}
.botao .ico{transition:transform .5s var(--ease)}
.botao:hover .ico:last-child{transform:translateX(4px)}

/* ---------- roseta: um símbolo, três usos ----------
   As pétalas leem --p0..--p7 do elemento que as usa; a pétala da
   seção ativa vem por data-on. Na bússola a pétala acesa é Rust. */
.roseta{
  --p0:var(--pine-noite);--p1:var(--pine-noite);--p2:var(--pine-noite);--p3:var(--pine-noite);
  --p4:var(--pine-noite);--p5:var(--pine-noite);--p6:var(--pine-noite);--p7:var(--pine-noite);
  --pc:var(--pine-esc);
  color:var(--pine-noite);
}
.roseta[data-on="0"]{--p0:var(--pine)}.roseta[data-on="1"]{--p1:var(--pine)}
.roseta[data-on="2"]{--p2:var(--pine)}.roseta[data-on="3"]{--p3:var(--pine)}
.roseta[data-on="4"]{--p4:var(--pine)}.roseta[data-on="5"]{--p5:var(--pine)}
.roseta[data-on="6"]{--p6:var(--pine)}.roseta[data-on="7"]{--p7:var(--pine)}
.roseta--fixa{
  position:fixed;z-index:0;top:50%;right:-28vmin;
  width:112vmin;height:112vmin;
  transform:translateY(-50%);
  pointer-events:none;will-change:transform;
  /* depois da capa só as pétalas apagadas e o centro esmaecem (--apagada vem do JS);
     a pétala acesa fica inteira, é ela que diz onde você está */
  --o0:var(--apagada,1);--o1:var(--apagada,1);--o2:var(--apagada,1);--o3:var(--apagada,1);
  --o4:var(--apagada,1);--o5:var(--apagada,1);--o6:var(--apagada,1);--o7:var(--apagada,1);
  --oc:var(--apagada,1);
}
.roseta--fixa[data-on="0"]{--o0:1}.roseta--fixa[data-on="1"]{--o1:1}
.roseta--fixa[data-on="2"]{--o2:1}.roseta--fixa[data-on="3"]{--o3:1}
.roseta--fixa[data-on="4"]{--o4:1}.roseta--fixa[data-on="5"]{--o5:1}
.roseta--fixa[data-on="6"]{--o6:1}.roseta--fixa[data-on="7"]{--o7:1}
.roseta--nav[data-on="0"]{--p0:var(--rust)}.roseta--nav[data-on="1"]{--p1:var(--rust)}
.roseta--nav[data-on="2"]{--p2:var(--rust)}.roseta--nav[data-on="3"]{--p3:var(--rust)}
.roseta--nav[data-on="4"]{--p4:var(--rust)}.roseta--nav[data-on="5"]{--p5:var(--rust)}
.roseta--nav[data-on="6"]{--p6:var(--rust)}.roseta--nav[data-on="7"]{--p7:var(--rust)}
.roseta--nav{--pc:var(--pine);color:var(--pine-esc)}

@media (min-width:1400px){:root{--inset:136px}}

/* ---------- abertura: a roseta se monta, gira e pousa na roseta da capa ----------
   A linha do tempo mora no JS (abertura()). Aqui ficam o palco e as redes de segurança. */
.loader{
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;cursor:pointer;
  animation:loader-some 0s linear 8s forwards;   /* se o JS nunca rodar, o painel some sozinho */
}
@keyframes loader-some{to{visibility:hidden;pointer-events:none}}
.loader__fundo{position:absolute;inset:0;background:var(--noite)}
.loader__roseta{position:relative;width:min(58vw,440px);height:auto;aspect-ratio:1;overflow:visible;will-change:transform}
html.intro .roseta--fixa{visibility:hidden}     /* a roseta da capa só aparece quando a da abertura pousa nela */

/* ---------- cabeçalho ---------- */
.header{
  position:fixed;z-index:100;inset:0 0 auto;height:var(--nav-h);
  display:flex;justify-content:space-between;align-items:center;
  padding-inline:var(--inset);
  transition:transform .55s var(--ease),background-color .4s,border-color .4s;
  border-bottom:1px solid transparent;
}
.header.is-solid{background:rgba(var(--noite-rgb),.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--linha)}
.header.is-hidden{transform:translateY(-100%)}
.header__marca img{width:clamp(118px,10vw,150px);height:auto}
.header__acoes{display:flex;align-items:center;gap:clamp(18px,2.6vw,36px)}
.burger{display:none;justify-self:end;width:48px;height:48px;position:relative;margin-right:-10px}
.burger span{position:absolute;left:12px;right:12px;height:1.5px;background:var(--cream);transition:transform .5s var(--ease),top .5s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:28px}
body.is-open .burger span:first-child{top:23.5px;transform:rotate(45deg)}
body.is-open .burger span:last-child{top:23.5px;transform:rotate(-45deg)}

/* ---------- menu (celular) ---------- */
.menu{
  position:fixed;inset:0;z-index:95;background:var(--noite);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:calc(var(--nav-h) + 4vh) var(--gutter) max(28px,env(safe-area-inset-bottom));
  opacity:0;visibility:hidden;transition:opacity .45s,visibility 0s .45s;overflow:hidden;
}
body.is-open .menu{opacity:1;visibility:visible;transition:opacity .45s}
body.is-open{overflow:hidden}
.menu__nav{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}
.menu__nav a{font:600 clamp(2rem,9vw,3rem)/1.15 var(--f-txt);letter-spacing:-.02em;opacity:0;transform:translateY(18px);transition:opacity .5s,transform .7s var(--ease)}
body.is-open .menu__nav a{opacity:1;transform:none}
.menu__nav a:nth-child(2){transition-delay:.05s}.menu__nav a:nth-child(3){transition-delay:.1s}
.menu__nav a:nth-child(4){transition-delay:.15s}.menu__nav a:nth-child(5){transition-delay:.2s}.menu__nav a:nth-child(6){transition-delay:.25s}
.menu__pe{position:relative;z-index:1;display:flex;flex-direction:column;gap:22px;color:var(--tinta-3)}
.menu__canais{display:flex;flex-direction:column;gap:10px}
.menu__canais .botao{width:100%}
.menu__roseta{position:absolute;right:-42vw;bottom:-30vw;width:120vw;height:120vw;opacity:.5;pointer-events:none}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;align-items:center;
  padding:calc(var(--nav-h) + 6vh) 0 14vh;
}
.hero__miolo{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,2.4vw,28px);position:relative;z-index:1}
.hero__titulo{
  font:600 var(--t-display)/.98 var(--f-txt);letter-spacing:-.03em;text-wrap:balance;
  max-width:12ch;margin:.05em 0 .1em;
}
.hero__texto{font-size:var(--t-lead);line-height:1.55;color:var(--tinta-2);max-width:44ch;text-wrap:pretty}
.hero__acoes{display:flex;flex-wrap:wrap;gap:12px}

/* marquee no pé da capa */
.marquee{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  border-block:1px solid var(--linha);padding-block:18px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{display:flex;width:max-content;animation:marquee 34s linear infinite}
.marquee__track span{
  display:flex;align-items:center;gap:26px;padding-inline:13px;white-space:nowrap;
  font:400 clamp(.9rem,1.1vw,1rem)/1 var(--f-txt);color:var(--tinta-2);letter-spacing:.02em;
}
.marquee__track span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--linha-forte);margin-left:13px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- carta ---------- */
.carta__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:start}
.carta__cab{position:sticky;top:calc(var(--nav-h) + 28px);display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.carta__cab h2,.carta__cab .lead{margin:0}
.carta__mais{margin-top:22px}
.carta__mais summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.7em;
  min-height:52px;padding:0 26px;border:1px solid var(--linha-forte);border-radius:var(--r-pill);
  font:500 1rem/1 var(--f-txt);color:var(--cream);transition:border-color .3s;
}
.carta__mais summary::-webkit-details-marker{display:none}
.carta__mais summary:hover{border-color:var(--cream)}
.carta__mais summary::after{
  content:"";width:12px;height:12px;
  background:linear-gradient(var(--rust),var(--rust)) center/12px 1.5px no-repeat,linear-gradient(var(--rust),var(--rust)) center/1.5px 12px no-repeat;
  transition:transform .5s var(--ease);
}
.carta__mais[open] summary::after{transform:rotate(45deg)}
.carta__mais[open] summary{margin-bottom:14px}
.carta__mais summary .aberto,.carta__mais[open] summary .fechado{display:none}
.carta__mais[open] summary .aberto{display:inline}
.carta__grupo{padding:38px 0 12px}
.carta__grupo:first-child{padding-top:0}
.carta__grupo h3{font:500 var(--t-mono)/1.5 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-3)}
.item{
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;
  gap:6px clamp(16px,2.4vw,34px);align-items:baseline;
  padding:24px 0;border-top:1px solid var(--linha);
}
.item:last-child{border-bottom:1px solid var(--linha)}
.item__tempo{color:var(--tinta-3)}
.item__preco{font-family:var(--f-mono);font-weight:500;font-size:1.1rem;letter-spacing:.04em}
.item__zap{
  display:inline-flex;align-items:center;gap:.5em;font-weight:500;color:var(--cream);padding-bottom:2px;
  background:linear-gradient(var(--rust),var(--rust)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease);
}
.item__zap .ico{color:var(--rust);transition:transform .5s var(--ease)}
.item__zap:hover,.barbeiro:hover .item__zap{background-size:100% 1px}
.item__zap:hover .ico,.barbeiro:hover .item__zap .ico{transform:translateX(4px)}

/* ---------- casa ---------- */
.casa__cab{display:grid;grid-template-columns:auto minmax(0,52ch);gap:clamp(20px,4vw,72px);align-items:end}
.casa__cab h2{margin-bottom:0}
.casa__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(28px,4vw,56px) clamp(14px,2vw,28px);margin-top:clamp(44px,6vw,80px)}
.foto{position:relative;overflow:hidden;border-radius:var(--r);background:var(--bark-2);isolation:isolate}
.foto img{
  width:100%;height:100%;object-fit:cover;transform:scale(1.12);
  filter:grayscale(.82) sepia(.34) hue-rotate(26deg) saturate(.72) contrast(1.06) brightness(.86);
  will-change:transform;
}
.foto::before{content:"";position:absolute;inset:0;background:var(--pine);mix-blend-mode:color;opacity:.55;z-index:1}
.foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(var(--noite-rgb),.05) 45%,rgba(var(--noite-rgb),.62));z-index:1}
.foto--a{grid-column:1/8}
.foto--a img{position:absolute;inset:0}   /* a fachada não empurra a linha: acompanha a altura do retrato ao lado */
.foto--b{grid-column:8/13;aspect-ratio:3/4}

/* ---------- time ---------- */
.time__cab{display:grid;grid-template-columns:auto minmax(0,52ch);gap:clamp(20px,4vw,72px);align-items:end}
.time__cab h2{margin-bottom:0}
.time__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.2vw,32px);margin-top:clamp(44px,6vw,80px)}
.barbeiro{display:flex;flex-direction:column;gap:8px}
.barbeiro .foto{aspect-ratio:3/4;margin-bottom:14px}
/* retratos reais já vêm na parede verde da casa: grade leve, sem duotone pesado */
.foto--retrato img{filter:saturate(.82) contrast(1.05) brightness(.92)}
.foto--retrato::before{opacity:.16}
.foto--retrato::after{background:linear-gradient(180deg,rgba(var(--noite-rgb),0) 60%,rgba(var(--noite-rgb),.45))}
/* fotos reais da casa: grade leve, cor da casa por cima só um pouco */
.foto--real img{filter:saturate(.85) contrast(1.05) brightness(.9)}
.foto--real::before{opacity:.22}
.foto--b img{object-position:50% 42%}
/* barbeiro sem foto ainda: o símbolo da casa segura o lugar */
.foto--vazia{display:grid;place-items:center;background:var(--bark-2)}
.foto--vazia img{width:42%;height:auto;opacity:.28;transform:none;filter:none;will-change:auto}
.foto--vazia::before,.foto--vazia::after{display:none}
.barbeiro .mono{color:var(--tinta-3)}
.barbeiro .item__zap{margin-top:8px;align-self:flex-start}
.barbeiro{position:relative}
.barbeiro .item__zap::before{content:"";position:absolute;inset:0}
/* zoom suave no hover: a propriedade scale soma com o transform do parallax (escrito pelo JS), sem brigar.
   Fica mesmo com "reduzir movimento": é pequeno e só acontece quando a pessoa aponta. */
.foto--retrato img{transition:scale .9s var(--ease),filter .6s ease}
.foto--vazia img{transition:opacity .6s ease}
@media (hover:hover){
  .barbeiro:hover .foto--retrato img{scale:1.06;filter:saturate(.95) contrast(1.05) brightness(1)}
  .barbeiro:hover .foto--vazia img{opacity:.42}
}

/* ---------- perguntas ---------- */
.perguntas__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:start}
.perguntas__grid h2{position:sticky;top:calc(var(--nav-h) + 28px);max-width:12ch}
.faq{border-top:1px solid var(--linha)}
.faq:last-child{border-bottom:1px solid var(--linha)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:24px 0;font:500 var(--t-h3)/1.25 var(--f-txt);letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";flex:none;width:12px;height:12px;
  background:linear-gradient(var(--rust),var(--rust)) center/12px 1.5px no-repeat,linear-gradient(var(--rust),var(--rust)) center/1.5px 12px no-repeat;
  transition:transform .5s var(--ease);
}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--tinta-2);max-width:60ch;padding-bottom:26px;text-wrap:pretty}

/* ---------- agende ---------- */
.agende{padding-block:calc(var(--sec) * 1.15)}
.agende__miolo{display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px}
.agende h2{max-width:12ch;margin:0}
.agende .lead{max-width:40ch}
.agende__canais{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px clamp(24px,4vw,56px);margin-top:10px;width:min(100%,760px)}
.canal{display:flex;flex-direction:column;align-items:center;gap:14px}
.canal .botao{width:100%}
.canal p{font-size:.95rem;line-height:1.5;color:var(--tinta-3);max-width:30ch;text-wrap:pretty}

/* ---------- rodapé: logo pequena no canto esquerdo, endereço e contato à direita ---------- */
.rodape{position:relative;z-index:1;border-top:1px solid var(--linha);padding:64px 0 28px;background:var(--noite)}   /* manual: logo Cream só sobre fundo escuro e limpo */
.rodape__topo{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;gap:36px clamp(48px,6vw,104px);align-items:start}
.rodape__logo{display:block;width:150px}
.rodape__logo img{width:100%;height:auto}
.rodape__rotulo{color:var(--tinta-3);margin-bottom:12px}
.rodape__endereco{display:block;color:var(--tinta-2);line-height:1.6;transition:color .3s}
.rodape__endereco:hover{color:var(--cream)}
.rodape__links{display:flex;flex-wrap:wrap;gap:12px 32px}
.rodape__links a{display:inline-flex;align-items:center;gap:.6em;color:var(--tinta-2);transition:color .3s;width:max-content}
.rodape__links a:hover{color:var(--cream)}
.rodape__links .ico{color:var(--rust)}
.rodape__base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:56px;padding-top:24px;border-top:1px solid var(--linha);color:var(--tinta-3)}
.rodape__base a:hover{color:var(--cream)}

/* ---------- reveals e split ---------- */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .85s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal].in{opacity:1;transform:none}
.js h2[data-reveal]{transform:translateY(26px);filter:blur(8px);transition:opacity .7s ease,transform .95s var(--ease),filter .8s ease;transition-delay:var(--d,0s)}
.js h2[data-reveal].in{filter:blur(0)}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.split .w>i{display:inline-block;font-style:normal;transform:translateY(112%);transition:transform .95s var(--ease);transition-delay:calc(var(--i) * .07s)}
.split.in .w>i{transform:none}
html.reduced [data-reveal],html.reduced .split .w>i{opacity:1;transform:none;filter:none}

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion:reduce){
  html.js:not(.forca) [data-reveal],html:not(.forca) .split .w>i{opacity:1;transform:none;filter:none;transition:none}
  html:not(.forca) .marquee__track{animation-duration:70s}   /* a faixa roda sempre (pedido do cliente); com "reduzir movimento" só fica mais lenta */
}

/* ---------- telas menores ---------- */
@media (max-width:900px){
  .casa__cab,.time__cab{grid-template-columns:1fr;align-items:start}
  .carta__grid,.perguntas__grid{grid-template-columns:1fr;gap:40px}
  .carta__cab,.perguntas__grid h2{position:static}
  .time__grid{grid-template-columns:repeat(4,minmax(230px,1fr));overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}
  .barbeiro{scroll-snap-align:start}
}
@media (max-width:760px){
  :root{--nav-h:68px}
  .header__cta{display:none}
      .header__acoes{gap:14px}
  .burger{display:block}
  .roseta--fixa{top:-6vh;right:-50vw;width:122vw;height:122vw;transform:none}
  /* no celular a roseta ocupa o alto e o texto assenta no pé, logo acima do marquee */
  .hero{align-items:end;padding-bottom:100px}
  .hero__acoes{width:100%}
  .hero__acoes .botao{flex:1 1 100%}
    .item{grid-template-columns:1fr auto;grid-template-areas:"nome preco" "tempo tempo"}
  .item__nome{grid-area:nome}.item__preco{grid-area:preco}.item__tempo{grid-area:tempo}
  .casa__grid{grid-template-columns:1fr;gap:14px;margin-top:36px}
  .foto--a,.foto--b{grid-column:1/-1;aspect-ratio:4/3}
  .rodape__topo{grid-template-columns:1fr}
  .rodape__links{flex-direction:column}
  .agende__canais{grid-template-columns:1fr}
}

/* ============================================================
   SITE OFICIAL · peças que o link na bio não tem
   navegação entre páginas, capa de página interna, ecossistema,
   pontos, produtos, cursos, contato com mapa e formulário
   ============================================================ */

/* ---------- navegação no cabeçalho ---------- */
.header__nav{display:flex;gap:clamp(18px,2.2vw,32px)}
.header__nav a{position:relative;color:var(--tinta-2);padding:8px 0;transition:color .3s}
.header__nav a::before{
  content:"";position:absolute;left:-12px;top:50%;width:5px;height:5px;margin-top:-2px;
  border-radius:50%;background:var(--rust);opacity:0;transform:scale(.4);transition:opacity .3s,transform .4s var(--ease);
}
.header__nav a:hover,.header__nav a[aria-current]{color:var(--cream)}
.header__nav a[aria-current]::before{opacity:1;transform:none}
.menu__nav a[aria-current]::after{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--rust);margin-left:16px;vertical-align:middle}

/* ---------- capa das páginas internas ---------- */
.hero--pagina{min-height:auto;padding:calc(var(--nav-h) + clamp(72px,13vh,150px)) 0 clamp(48px,7vw,96px)}
.hero--pagina .hero__titulo{font-size:clamp(3rem,7vw,6rem);max-width:none}
.hero--pagina .hero__texto{max-width:52ch}

/* ---------- cabeçalho de seção: título à esquerda, texto à direita ---------- */
.sec__cab{display:grid;grid-template-columns:auto minmax(0,52ch);justify-content:space-between;gap:clamp(20px,4vw,72px);align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.sec__cab h2{margin-bottom:0}

/* ---------- ecossistema: barbearia, moda, academy ---------- */
.eco__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.eco__card{
  position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r);background:var(--bark-2);
  display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(440px,40vw,580px);padding:clamp(22px,2.4vw,34px);
}
.eco__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.85) contrast(1.05) brightness(.82);transition:scale .9s var(--ease),filter .6s ease}
.eco__card--claro img{filter:none}
.eco__card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(var(--noite-rgb),0) 34%,rgba(var(--noite-rgb),.9) 88%)}
.eco__txt{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.roseta--mini{width:40px;height:40px;margin-bottom:6px}
.eco__nome{font:600 clamp(1.9rem,2.6vw,2.5rem)/1.05 var(--f-txt);letter-spacing:-.02em}
.eco__linha{color:var(--tinta-2);max-width:32ch;text-wrap:pretty}
.eco__link{margin-top:10px;display:inline-flex;align-items:center;gap:.5em;font-weight:500;padding-bottom:2px;background:linear-gradient(var(--rust),var(--rust)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.eco__link .ico{color:var(--rust);transition:transform .5s var(--ease)}
@media (hover:hover){
  .eco__card:hover img{scale:1.05;filter:saturate(.95) contrast(1.05) brightness(.92)}
  .eco__card--claro:hover img{filter:none}
  .eco__card:hover .eco__link{background-size:100% 1px}
  .eco__card:hover .eco__link .ico{transform:translateX(4px)}
}

/* ---------- pontos: três ideias lado a lado, com fio em cima ---------- */
.pontos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.pontos--coluna{grid-template-columns:1fr;gap:28px;margin-top:clamp(28px,3vw,40px)}
.ponto{border-top:1px solid var(--linha-forte);padding-top:22px}
.ponto h3{margin-bottom:10px}
.ponto p{color:var(--tinta-2);text-wrap:pretty}

/* ---------- quem somos ---------- */
.nome__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:center}
.nome__p{width:min(100%,420px);height:auto}
.nome__texto h2{margin-bottom:.5em}
.citacao{margin:clamp(64px,8vw,112px) 0 0}
.citacao p{font:600 clamp(2rem,4.2vw,3.6rem)/1.06 var(--f-txt);letter-spacing:-.022em;max-width:18ch;text-wrap:balance}
.time__mais{margin-top:clamp(36px,4vw,56px)}

/* ---------- serviços ---------- */
.carta__acoes{display:flex;flex-wrap:wrap;gap:12px}
.politica__pagamento{margin-top:clamp(32px,4vw,48px);color:var(--tinta-3)}

/* ---------- moda: produtos ---------- */
.produtos{display:grid;gap:clamp(16px,2.2vw,32px)}
.produtos--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.produtos--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.produto{position:relative;display:flex;flex-direction:column;gap:8px}
.produto__foto{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--sand);margin-bottom:14px}
.produto__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:scale .9s var(--ease),opacity .5s ease}
.produto__verso{opacity:0}
.produto p{color:var(--tinta-2);text-wrap:pretty}
.produto .item__zap,.curso .item__zap{margin-top:6px;align-self:flex-start}
.produto .item__zap::before,.curso .item__zap::before{content:"";position:absolute;inset:0}   /* o cartão todo é clicável */
.produtos__nota{margin-top:clamp(28px,3vw,40px);color:var(--tinta-3)}
@media (hover:hover){
  .produto:hover .produto__foto img{scale:1.04}
  .produto:hover .produto__verso{opacity:1}
  .produto:hover .item__zap,.curso:hover .item__zap{background-size:100% 1px}
  .produto:hover .item__zap .ico,.curso:hover .item__zap .ico{transform:translateX(4px)}
}

/* ---------- academy ---------- */
.cursos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,32px)}
.curso{
  position:relative;display:flex;flex-direction:column;gap:12px;padding:clamp(26px,2.6vw,36px);
  border:1px solid var(--linha);border-radius:var(--r);background:rgba(var(--noite-rgb),.62);transition:border-color .4s,background-color .4s;
}
.curso:hover{border-color:var(--linha-forte);background:var(--bark-2)}
.curso__nivel{color:var(--tinta-3)}
.curso p:not(.mono){color:var(--tinta-2);text-wrap:pretty}
.curso .item__zap{margin-top:auto;padding-top:16px}
.academy__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:center}
.academy__foto{aspect-ratio:4/5}

/* ---------- contato ---------- */
.contato__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(16px,2.4vw,32px);align-items:stretch}
.contato__cartao{
  border:1px solid var(--linha);border-radius:var(--r);background:var(--bark-2);
  padding:clamp(28px,3.4vw,44px);display:flex;flex-direction:column;gap:28px;
}
.contato__cartao .mono{display:block;color:var(--tinta-3);margin-bottom:8px}
.contato__cartao p{font-size:var(--t-lead);line-height:1.4}
.contato__cep{margin:10px 0 16px}
.contato__horas{display:grid;gap:12px;padding-block:24px;border-block:1px solid var(--linha);margin:0}
.contato__horas div{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.contato__horas .mono{margin:0}
.contato__horas dd{margin:0;font-family:var(--f-mono);font-size:1rem;letter-spacing:.06em}
.contato__fones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.contato__fones p{font-size:1.05rem}
.contato__fones a{border-bottom:1px solid var(--rust)}
.contato__mapa{position:relative;border-radius:var(--r);overflow:hidden;min-height:440px;background:var(--bark-2)}
.contato__mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.9) brightness(.92)}
.mensagem__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,110px);align-items:start}
.mensagem__cab h2{margin-bottom:.4em}
.form{display:grid;gap:18px;color-scheme:dark}
.campo{display:grid;gap:8px}
.campo label{font:500 var(--t-mono)/1.5 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta-3)}
.campo input,.campo select,.campo textarea{
  width:100%;font:400 1.02rem/1.5 var(--f-txt);color:var(--cream);
  background:rgba(var(--noite-rgb),.6);border:1px solid var(--linha-forte);border-radius:var(--r);padding:14px 16px;
  transition:border-color .3s;
}
.campo textarea{resize:vertical;min-height:140px}
.campo input:hover,.campo select:hover,.campo textarea:hover{border-color:rgba(var(--cream-rgb),.45)}
.form.checado :invalid{border-color:var(--rust)}
.form .botao{justify-self:start}
.form__status{min-height:1.5em;color:var(--tinta-2)}

/* ---------- rodapé: linha com as páginas ---------- */
.rodape__paginas{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:44px}
.rodape__paginas a{color:var(--tinta-2);transition:color .3s}
.rodape__paginas a:hover{color:var(--cream)}

/* ---------- telas menores (site) ---------- */
@media (max-width:1100px){
  .header__nav{display:none}
  .burger{display:block}
  .eco__grid,.cursos{grid-template-columns:1fr 1fr}
  .eco__card:last-child,.curso:last-child{grid-column:1/-1}
  .produtos--3{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .sec__cab{grid-template-columns:1fr;align-items:start}
  .nome__grid,.academy__grid,.contato__grid,.mensagem__grid{grid-template-columns:1fr}
  .nome__p{width:min(60%,300px)}
  .pontos{grid-template-columns:1fr;gap:28px}
  .contato__mapa{min-height:360px}
}
@media (max-width:760px){
  .eco__grid,.cursos,.produtos--2,.produtos--3{grid-template-columns:1fr}
  .eco__card{min-height:400px}
  .contato__fones{grid-template-columns:1fr 1fr}
  .form .botao{justify-self:stretch}
}
