/* Navalha de Ouro — barbearia clássica, Savassi/BH */

@font-face{
  font-family:"Big Shoulders Display";
  src:url("fontes/big-shoulders-display-latin-wght-normal.woff2") format("woff2");
  font-weight:100 900;
  font-display:swap;
}
@font-face{
  font-family:"Archivo";
  src:url("fontes/archivo-latin-wdth-normal.woff2") format("woff2");
  font-weight:100 900;
  font-stretch:62% 125%;
  font-display:swap;
}

:root{
  /* cor */
  --carvao:#14201B;
  --painel:#1C2B24;
  --latao:#C6933C;
  --latao-claro:#E8C77E;
  --osso:#EFE8DA;
  --sangue:#A22E2E;

  --suave:#A6B2A9;
  --linha:rgba(232,199,126,.20);
  --linha-forte:rgba(232,199,126,.42);
  --escuro:rgba(8,14,11,.5);

  /* tipo */
  --display:"Big Shoulders Display","Arial Narrow",sans-serif;
  --texto:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --t-detalhe:.875rem;
  --t-texto:clamp(1rem,.95rem + .25vw,1.125rem);
  --t-sub:clamp(1.3rem,1.15rem + .6vw,1.5rem);
  --t-secao:clamp(1.9rem,1.4rem + 2vw,2.9rem);
  --t-topo:clamp(2.6rem,1.6rem + 5.2vw,5.2rem);

  /* medida */
  --pagina:min(1140px,92vw);
  --altura-topo:74px;
  --curva:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--carvao);
  color:var(--osso);
  font-family:var(--texto);
  font-size:var(--t-texto);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:var(--display);
  font-weight:700;
  line-height:1;
  letter-spacing:.004em;
  text-transform:uppercase;
  text-wrap:balance;
  margin:0;
}

p{margin:0;max-width:65ch;text-wrap:pretty}
a{color:inherit}
img,svg{max-width:100%}

:focus-visible{
  outline:3px solid var(--latao-claro);
  outline-offset:3px;
  border-radius:2px;
}

/* ---------- botões e links ---------- */

.botao{
  display:inline-block;
  background:var(--latao);
  color:#1A1206;
  font-family:var(--texto);
  font-weight:600;
  font-size:var(--t-texto);
  letter-spacing:.01em;
  text-decoration:none;
  padding:.85em 1.5em;
  border:0;
  border-radius:4px;
  cursor:pointer;
  transition:transform 120ms ease, background-color 160ms ease;
}
.botao:hover{background:var(--latao-claro);transform:translateY(-1px)}
.botao:active{transform:translateY(0)}
.botao--largo{width:100%;text-align:center}
.botao--menu{padding:.55em 1.1em}

.link-simples{
  color:var(--latao-claro);
  text-decoration:underline;
  text-decoration-color:var(--linha-forte);
  text-underline-offset:.28em;
  transition:text-decoration-color 160ms ease;
}
.link-simples:hover{text-decoration-color:var(--latao-claro)}

.chip{
  display:inline-block;
  font-size:var(--t-detalhe);
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--latao-claro);
  border:1px solid var(--linha-forte);
  border-radius:999px;
  padding:.05em .6em;
  vertical-align:.15em;
}

/* ---------- topo ---------- */

.topo{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(20,32,27,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linha);
}
.topo__barra{
  width:var(--pagina);
  margin:0 auto;
  height:var(--altura-topo);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.marca{
  display:flex;
  align-items:center;
  gap:.55rem;
  text-decoration:none;
}
.marca__ico{width:26px;height:26px;flex:none}
.marca__nome{
  font-family:var(--display);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:1.125rem;
  white-space:nowrap;
}

.menu{
  display:flex;
  align-items:center;
  gap:1.6rem;
}
.menu a{
  text-decoration:none;
  font-size:1rem;
  color:var(--osso);
  opacity:.86;
  transition:opacity 160ms ease, color 160ms ease;
}
.menu a:hover{opacity:1;color:var(--latao-claro)}
.menu a.botao{opacity:1}
.menu a.botao:hover{color:#1A1206}

.sanduiche{
  display:none;
  width:46px;
  height:40px;
  background:none;
  border:1px solid var(--linha-forte);
  border-radius:4px;
  padding:0 10px;
  cursor:pointer;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}
.sanduiche span{
  display:block;
  height:2px;
  background:var(--osso);
  border-radius:2px;
  transition:transform 220ms var(--curva), opacity 150ms ease;
}
.sanduiche[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.sanduiche[aria-expanded="true"] span:nth-child(2){opacity:0}
.sanduiche[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- topo / hero ---------- */

.hero{
  width:var(--pagina);
  margin:0 auto;
  padding:clamp(2.4rem,6vw,4.6rem) 0 clamp(2.6rem,5vw,4.2rem);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(1.5rem,4vw,3.4rem);
  align-items:center;
}
.hero__onde{
  color:var(--latao-claro);
  font-size:var(--t-detalhe);
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:1rem;
}
.hero h1{
  font-size:var(--t-topo);
  margin-bottom:1.1rem;
}
.hero__sub{
  font-size:var(--t-sub);
  color:#D9D2C4;
  line-height:1.5;
  max-width:34ch;
  margin-bottom:1.7rem;
}
.hero__acoes{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1.1rem 1.6rem;
  margin-bottom:1.4rem;
}
.hero__nota{
  font-size:var(--t-texto);
  color:var(--suave);
  border-left:2px solid var(--linha-forte);
  padding-left:.9rem;
  max-width:40ch;
}
.hero__arte{justify-self:center;width:100%;display:flex;justify-content:center}

.navalha{
  width:min(100%,500px);
  height:auto;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 26px 46px rgba(0,0,0,.5));
}
.navalha__lamina{
  transform-box:fill-box;
  transform-origin:3% 94%;
  animation:abre-navalha 760ms var(--curva) 180ms both;
}
@keyframes abre-navalha{
  from{transform:rotate(185deg)}
  to{transform:rotate(0deg)}
}
.navalha__brilho{animation:respira 9s ease-in-out infinite}
@keyframes respira{
  0%,100%{opacity:.75}
  50%{opacity:1}
}

/* ---------- seções ---------- */

.secao{
  border-top:1px solid var(--linha);
  padding:clamp(2.8rem,6vw,4.6rem) 0;
}
.secao__interno{width:var(--pagina);margin:0 auto}
.secao h2{
  font-size:var(--t-secao);
  color:var(--osso);
  margin-bottom:.7rem;
}
.secao__intro{
  color:var(--suave);
  max-width:58ch;
  margin-bottom:2.2rem;
}

/* ---------- serviços e preços ---------- */

.servicos{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--linha);
}
.servico{
  display:grid;
  gap:.4rem;
  padding:1.25rem 0;
  border-bottom:1px solid var(--linha);
}
.servico__topo{
  display:flex;
  align-items:baseline;
  gap:.9rem;
}
.servico__nome{
  font-size:var(--t-sub);
  color:var(--osso);
  white-space:nowrap;
}
.servico__pontos{
  flex:1;
  min-width:1.2rem;
  border-bottom:1px dotted var(--linha-forte);
  transform:translateY(-.28em);
}
.servico__preco{
  margin:0;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  color:var(--latao-claro);
}
.servico__preco .rs{
  font-size:var(--t-detalhe);
  font-weight:400;
  color:var(--suave);
  margin-right:.15em;
}
.servico__desc{color:var(--suave);font-size:var(--t-texto)}
.servico__acao{
  justify-self:start;
  margin-top:.3rem;
  font-size:var(--t-detalhe);
  font-weight:600;
  text-decoration:none;
  color:var(--latao-claro);
  border:1px solid var(--linha-forte);
  border-radius:4px;
  padding:.4em 1em;
  transition:background-color 160ms ease, color 160ms ease;
}
.servico__acao:hover{background:var(--latao);color:#1A1206;border-color:var(--latao)}
.servico--combo{background:linear-gradient(90deg,rgba(198,147,60,.08),rgba(198,147,60,0));padding-inline:.9rem}

.marca-exemplo{
  margin-top:1.4rem;
  color:var(--suave);
  font-size:var(--t-detalhe);
  max-width:52ch;
}

/* ---------- dia do noivo ---------- */

.secao--noivo{
  background:var(--painel);
}
.noivo{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:center;
}
.noivo__texto p{color:#D3CCBE;margin:.9rem 0 1.6rem}
.noivo__lista{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.85rem;
}
.noivo__lista li{
  position:relative;
  padding-left:1.9rem;
  color:var(--osso);
  font-size:var(--t-texto);
}
.noivo__lista li::before{
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:.95rem;
  height:2px;
  background:var(--latao);
}

/* ---------- passos ---------- */

.passos{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1.2rem,3vw,2.4rem);
  counter-reset:passo;
}
.passo{
  counter-increment:passo;
  border-top:2px solid var(--linha-forte);
  padding-top:1.1rem;
}
.passo::before{
  content:counter(passo);
  display:block;
  font-family:var(--display);
  font-weight:700;
  font-size:2rem;
  line-height:1;
  color:var(--latao);
  margin-bottom:.5rem;
}
.passo h3{font-size:var(--t-sub);margin-bottom:.4rem}
.passo p{color:var(--suave);font-size:var(--t-texto)}

/* ---------- galeria ---------- */

.galeria{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(.8rem,2vw,1.3rem);
}
.figura{
  margin:0;
  border:1px solid var(--linha);
  border-radius:6px;
  padding:1.1rem 1.1rem 1rem;
  background:var(--painel);
  color:var(--latao);
}
.figura svg{width:100%;height:auto;display:block;margin-bottom:.7rem}
.figura figcaption{
  color:var(--suave);
  font-size:var(--t-detalhe);
  line-height:1.45;
  border-top:1px solid var(--linha);
  padding-top:.7rem;
}

/* ---------- depoimentos ---------- */

.depoimentos{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2.5vw,2rem);
}
.depoimento{
  margin:0;
  border-left:2px solid var(--linha-forte);
  padding-left:1.1rem;
}
.depoimento p{
  font-style:italic;
  color:#D3CCBE;
  margin-bottom:.7rem;
}
.depoimento footer{
  font-size:var(--t-detalhe);
  color:var(--suave);
  letter-spacing:.03em;
}

/* ---------- dúvidas ---------- */

.duvidas{border-top:1px solid var(--linha)}
.duvida{border-bottom:1px solid var(--linha)}
.duvida summary{
  cursor:pointer;
  list-style:none;
  padding:1.05rem 2.4rem 1.05rem 0;
  position:relative;
  font-weight:600;
  color:var(--osso);
  font-size:var(--t-texto);
}
.duvida summary::-webkit-details-marker{display:none}
.duvida summary::after{
  content:"+";
  position:absolute;
  right:.3rem;
  top:50%;
  transform:translateY(-50%);
  font-family:var(--display);
  font-size:1.7rem;
  line-height:1;
  color:var(--latao);
  transition:transform 220ms var(--curva);
}
.duvida[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.duvida p{color:var(--suave);padding:0 0 1.2rem}

/* ---------- onde e quando ---------- */

.onde{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(1.6rem,4vw,3rem);
  align-items:start;
}
.onde__endereco{
  font-size:var(--t-sub);
  line-height:1.45;
  color:var(--osso);
  margin:1rem 0 .6rem;
}
.onde__info p{margin-bottom:1rem}
.onde__info .botao{margin-top:.8rem}
.onde__telefone{
  font-variant-numeric:tabular-nums;
  font-weight:600;
}
.onde__horario{
  background:var(--painel);
  border:1px solid var(--linha);
  border-radius:6px;
  padding:1.6rem;
}
.onde__horario h3{
  font-size:var(--t-sub);
  margin-bottom:1rem;
}
.horario{margin:0}
.horario div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.6rem 0;
  border-bottom:1px solid var(--linha);
}
.horario div:last-child{border-bottom:0}
.horario dt{color:var(--suave)}
.horario dd{
  margin:0;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  color:var(--osso);
}

/* ---------- promoções ---------- */

.secao--promo{background:var(--painel)}
.promo{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1.6rem,4vw,3.2rem);
  align-items:center;
}
.promo__texto p{color:#D3CCBE;margin:.9rem 0}
.promo__aviso{font-size:var(--t-detalhe);color:var(--suave)}
.form{
  display:grid;
  gap:1rem;
  background:var(--carvao);
  border:1px solid var(--linha);
  border-radius:6px;
  padding:1.6rem;
}
.campo{display:grid;gap:.4rem}
.campo label{
  font-size:var(--t-detalhe);
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--suave);
}
.campo input{
  font:inherit;
  color:var(--osso);
  background:#0E1814;
  border:1px solid var(--linha-forte);
  border-radius:4px;
  padding:.75em .9em;
}
.campo input::placeholder{color:#6E7A70}
.campo input:focus{outline:2px solid var(--latao-claro);outline-offset:1px}
.form__status{font-size:var(--t-detalhe);min-height:1.2em}
.form__status--ok{color:var(--latao-claro)}
.form__status--erro{color:#EE9A9A}

/* ---------- rodapé ---------- */

.rodape{
  border-top:1px solid var(--linha);
  background:#0F1815;
  padding:2.6rem 0;
}
.rodape__interno{
  width:var(--pagina);
  margin:0 auto;
  display:grid;
  gap:.7rem;
}
.rodape .rodape__marca{
  font-family:var(--display);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:var(--t-sub);
}
.rodape p{color:var(--suave);font-size:var(--t-texto)}
.rodape__nota{
  border-top:1px solid var(--linha);
  padding-top:.9rem;
  margin-top:.4rem;
  max-width:60ch;
  color:var(--suave);
}

/* ---------- barra fixa do celular ---------- */

.barra-fixa{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:60;
  display:none;
  padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(15,24,21,.96);
  border-top:1px solid var(--linha-forte);
  transform:translateY(130%);
  transition:transform 300ms var(--curva);
}
.barra-fixa.esta-visivel{transform:translateY(0)}

/* ---------- celular ---------- */

@media (max-width:900px){
  .hero,
  .noivo,
  .onde,
  .promo{grid-template-columns:1fr}

  .hero{padding-top:2rem;text-align:left}
  .hero__arte{order:-1}
  .navalha{width:min(100%,380px)}

  .passos{grid-template-columns:1fr;gap:1.4rem}
  .galeria{grid-template-columns:repeat(2,1fr)}
  .depoimentos{grid-template-columns:1fr}

  .sanduiche{display:flex}
  .menu{
    position:fixed;
    top:var(--altura-topo);
    left:0;
    right:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:var(--painel);
    border-bottom:1px solid var(--linha-forte);
    padding:.5rem 4vw 1.2rem;
    opacity:0;
    visibility:hidden;
    transform:translateY(-14px);
    transition:opacity 200ms ease, transform 260ms var(--curva), visibility 0s linear 260ms;
  }
  .menu.esta-aberto{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    transition:opacity 200ms ease, transform 260ms var(--curva), visibility 0s;
  }
  .menu a{
    padding:.95rem .2rem;
    border-bottom:1px solid var(--linha);
    font-size:1.05rem;
    opacity:1;
  }
  .menu a.botao{
    margin-top:.9rem;
    border-bottom:0;
    text-align:center;
  }

  .barra-fixa{display:block}
  body{padding-bottom:76px}
}

@media (max-width:420px){
  .galeria{grid-template-columns:1fr}
  .marca__nome{font-size:1.02rem}
}

/* ---------- menos movimento ---------- */

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .navalha__lamina,
  .navalha__brilho{animation:none}
  .barra-fixa{transition:none}
  .botao:hover{transform:none}
  *,
  *::before,
  *::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
