/* Protótipo 02 · Clube do Corte — estilos (elemento 4: hero). Depende de tokens.css. */
@font-face { font-family: "Oswald"; font-style: normal; font-weight: 200 700; font-display: swap; src: url("fontes/oswald-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fontes/inter-latin-wght-normal.woff2") format("woff2"); }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--color-primary); color: var(--color-text-primary); font: 400 var(--text-base)/var(--leading-body) var(--font-body); -webkit-font-smoothing: antialiased; }
img, video, svg { display: block; max-width: 100%; }
button { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
::selection { background: var(--color-accent); color: var(--color-primary-dark); }
:where(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

.site-shell { width: min(calc(100% - 2 * max(var(--container-gutter), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px))), var(--container-max)); margin-inline: auto; }
.pular { position: absolute; left: var(--space-4); top: -100px; z-index: 50; padding: var(--space-3) var(--space-4); background: var(--color-accent); color: var(--color-black); font: 500 var(--text-sm)/1 var(--font-ui, var(--font-button)); text-decoration: none; }
.pular:focus { top: var(--space-2); }

/* ——— botões ——— */
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 20px; border: 1px solid transparent; border-radius: var(--radius-sm);
  font: 500 var(--text-sm)/1 var(--font-button); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); }
.button--primary { background: var(--color-accent); color: var(--color-black); }
.button--primary:hover { background: var(--color-accent-hover); }
.button--primary:active { background: var(--color-accent-pressed); }
.button--outline { background: transparent; border-color: var(--color-text-primary); color: var(--color-text-primary); }
.button--outline:hover { background: var(--color-text-primary); color: var(--color-primary-dark); }

/* ——— cabeçalho ——— */
.site-header { position: sticky; top: 0; z-index: 20; background: var(--color-primary-dark); border-bottom: 1px solid var(--color-border-subtle); padding-top: env(safe-area-inset-top, 0px); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 60px; position: relative; }
.logo { display: inline-flex; align-items: center; gap: 10px; color: var(--color-white); text-decoration: none; min-height: 44px; }
.logo__emblema { width: 36px; height: 36px; flex: none; }
.logo__texto { font: 600 1rem/1 var(--font-button); letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.logo:hover .logo__texto { color: var(--color-accent-text); }
.site-header__acoes { display: flex; align-items: center; gap: var(--space-4); }
.proto-tag { display: none; font: 500 var(--text-xs)/1 var(--font-button); letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-secondary); border: 1px solid var(--color-border-input); border-radius: var(--radius-sm); padding: .35rem .5rem; }
.socials { display: none; align-items: center; gap: var(--space-4); }
.socials svg { width: 20px; height: 20px; fill: none; stroke: var(--color-white); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.menu-botao { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid var(--color-border-input); border-radius: var(--radius-sm); color: var(--color-white); cursor: pointer; }
.menu-botao svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }

/* navegação: no celular é um painel que abre sob o cabeçalho (sem JS, fica visível em linha) */
.site-nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-6); font: 500 var(--text-sm)/1 var(--font-body); letter-spacing: .02em; }
.site-nav a:not(.button) { color: var(--color-text-primary); text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.site-nav a:not(.button):hover, .site-nav a[aria-current="true"] { color: var(--color-accent-text); }
.js .site-nav { display: none; position: absolute; left: calc(-1 * var(--container-gutter)); right: calc(-1 * var(--container-gutter)); top: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: var(--space-2) var(--container-gutter) var(--space-4); background: var(--color-primary-dark); border-bottom: 1px solid var(--color-border-subtle); }
.js .site-nav.is-open { display: flex; }
.js .site-nav a:not(.button) { border-bottom: 1px solid var(--color-border-subtle); }
.js .site-nav__cta { margin-top: var(--space-4); }
@media (min-width: 480px) { .proto-tag { display: inline-flex; } }
@media (min-width: 640px) { .socials { display: flex; } }
@media (min-width: 768px) {
  .menu-botao { display: none; }
  .js .site-nav, .site-nav { display: flex; position: static; flex-direction: row; align-items: center; gap: var(--space-6); padding: 0; background: none; border: 0; flex: 1; justify-content: center; }
  .js .site-nav a:not(.button) { border: 0; }
  .js .site-nav__cta { margin: 0; }
  .site-nav__cta { display: none; }
  .logo__texto { font-size: 1.125rem; letter-spacing: .16em; }
}
@media (min-width: 1024px) { .site-nav__cta { display: inline-flex; margin-left: var(--space-4); } .site-nav { justify-content: center; } }
@media (max-width: 359px) { .logo__texto { font-size: .8125rem; letter-spacing: .08em; } .logo__emblema { width: 30px; height: 30px; } }

/* ——— hero ——— */
.hero { --title-line: calc(var(--text-display) * var(--leading-display)); display: grid; grid-template-columns: minmax(0, 1fr); padding-top: var(--space-6); position: relative; isolation: isolate; }
.hero__title { grid-column: 1 / -1; position: relative; z-index: 3; margin: 0; font: 700 var(--text-display)/var(--leading-display) var(--font-display); letter-spacing: var(--tracking-display); text-transform: uppercase; color: var(--color-white); }
.hero__title span { display: block; }
.hero__intro { position: relative; z-index: 3; margin-top: var(--space-4); max-width: 28rem; }
.hero__tagline { margin: 0; font: 500 var(--text-lg)/var(--leading-heading) var(--font-display); letter-spacing: .06em; text-transform: uppercase; color: var(--color-accent-text); }
.hero__texto { margin: var(--space-2) 0 0; color: var(--color-text-secondary); }

.hero__portrait { position: relative; z-index: 4; margin: var(--space-6) 0 0; width: 100%; max-width: 520px; aspect-ratio: 1200 / 1274; }
.hero__portrait-img, .hero__portrait-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: bottom; }
.hero__portrait-video { display: none; }
.video-ok .hero__portrait-video { display: block; }
.video-ok .hero__portrait-img { visibility: hidden; }

.hero__services { position: relative; z-index: 2; padding-block: var(--space-6) var(--space-8); }
.hero__services-title { margin: 0 0 var(--space-3); font: 500 var(--text-xs)/1.3 var(--font-button); letter-spacing: .12em; text-transform: uppercase; color: var(--color-accent-text); }
.hero__services-title span { color: var(--color-text-secondary); } /* secundário (5,2:1 na zona mais clara do degradê); o muted não passa ali */
.service-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.service-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); min-height: var(--service-row-height); border-bottom: 1px solid var(--color-border); }
.service-row:first-child { border-top: 1px solid var(--color-border); }
.service-row__name { color: var(--color-text-primary); font-size: clamp(1rem, 1.5vw, 1.375rem); line-height: var(--leading-ui); }
.service-row__price { font: 500 clamp(1.0625rem, 1.6vw, 1.375rem)/1 var(--font-display); letter-spacing: .02em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.service-row--acao { display: block; min-height: 0; padding-block: var(--space-4) 0; border-bottom: 0; }
.service-row--acao .button { width: 100%; }

/* seção seguinte (provisória) */
.agendar { padding-block: var(--section-space); border-top: 1px solid var(--color-border-subtle); scroll-margin-top: 72px; }

/* tablet: título largo; retrato à esquerda sobreposto; serviços em coluna lateral */
@media (min-width: 768px) {
  .hero { grid-template-columns: 1.6fr 1fr; column-gap: var(--grid-gap); grid-template-rows: auto 1fr; }
  .hero__title { grid-row: 1; }
  .hero__intro { grid-column: 2; grid-row: 1; align-self: start; margin-top: calc(var(--space-2)); }
  .hero__portrait { grid-column: 1; grid-row: 2; align-self: end; margin: calc(-1 * (var(--title-line) * .18 + 5.3%)) 0 0; /* topo do cabelo entra só ~18 % da altura das letras */ max-width: none; }
  .hero__services { grid-column: 2; grid-row: 2; align-self: end; padding-block: 0 var(--space-6); }
  .hero__tagline { font-size: var(--text-lg); }
  .service-row--acao .button { width: auto; }
}
/* desktop: grade de 12 colunas — retrato em 7, serviços em 4 */
@media (min-width: 1024px) {
  .hero { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .hero__intro { grid-column: 9 / -1; }
  .hero__portrait { grid-column: 1 / 8; }
  .hero__services { grid-column: 9 / -1; }
}
@media (min-width: 1280px) { .hero { --service-row-height: 62px; padding-top: var(--space-6); } .hero__portrait { grid-column: 1 / 7; max-width: 540px; } .hero__tagline { font-size: var(--text-xl); } }

/* ===== refinos do hero (celular) ===== */
/* base do retrato esmaece no celular, onde ele não "sangra" para fora da seção */
.hero__portrait { -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); }
@media (min-width: 768px) { .hero__portrait { -webkit-mask-image: none; mask-image: none; } }
/* rótulo "Protótipo": no cabeçalho a partir de 400 px; abaixo disso, no hero */
.hero__proto { display: inline-flex; margin: var(--space-3) 0 0; font: 500 var(--text-xs)/1 var(--font-button); letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-secondary); border: 1px solid var(--color-border-input); border-radius: var(--radius-sm); padding: .35rem .5rem; }
@media (min-width: 400px) { .proto-tag { display: inline-flex; } .hero__proto { display: none; } }

/* ===== degradê do hero (como na referência) ===== */
.hero-fundo { background: var(--gradient-hero); background-color: var(--color-primary-dark); overflow: clip; }

/* ===== Elemento 5 — lista de serviços ===== */
/* destaques no hero: cada linha agora é um link para o agendamento */
.service-row { display: block; min-height: 0; }
.service-row__link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); min-height: var(--service-row-height); margin-inline: -12px; padding-inline: 12px; color: inherit; text-decoration: none; border-radius: var(--radius-sm); transition: background var(--transition-fast); }
.service-row__link:hover { background: rgb(244 242 236 / 6%); }
.service-row__link:hover .service-row__name { color: var(--color-accent-text); }
.service-row--acao { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); padding-block: var(--space-4) 0; border-bottom: 0; }
.service-row--acao .button--primary { flex: 1 1 100%; }
.button--ghost { background: transparent; color: var(--color-text-primary); padding-inline: 0; border-color: transparent; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--color-border-input); }
.button--ghost:hover { color: var(--color-accent-text); text-decoration-color: var(--color-accent-text); }

/* seção completa */
.servicos { background: var(--color-primary); border-top: 1px solid var(--color-border-subtle); padding-block: var(--section-space); scroll-margin-top: 72px; }
.servicos__head { display: grid; gap: var(--space-2); max-width: 40rem; margin-bottom: var(--space-8); }
.servicos__eyebrow { margin: 0; font: 500 var(--text-xs)/1.3 var(--font-button); letter-spacing: .12em; text-transform: uppercase; color: var(--color-accent-text); }
.servicos__title { margin: 0; font: 700 clamp(2rem, 5vw, 3.5rem)/1 var(--font-display); letter-spacing: .01em; text-transform: uppercase; color: var(--color-white); }
.servicos__nota { margin: 0; color: var(--color-text-secondary); }
.servicos__grupo { margin-top: var(--space-8); }
.servicos__grupo h3 { margin: 0 0 var(--space-2); padding-bottom: var(--space-3); border-bottom: 1px solid var(--color-border); font: 600 var(--text-sm)/1.2 var(--font-button); letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-text); }
.servicos__lista { list-style: none; margin: 0; padding: 0; }
.svc { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-4); align-items: start; padding: var(--space-4) 0; border-bottom: 1px solid var(--color-border-subtle); color: inherit; text-decoration: none; }
/* o fundo do hover vaza 12 px para os lados, sem deslocar o texto nem as divisórias */
.svc::before { content: ""; position: absolute; inset: 0 -12px; z-index: -1; border-radius: var(--radius-sm); transition: background var(--transition-fast); }
a.svc:hover::before { background: rgb(244 242 236 / 5%); }
a.svc:hover .svc__name { color: var(--color-accent-text); }
.svc__info { display: grid; gap: 4px; min-width: 0; }
.svc__name { font: 500 clamp(1.0625rem, 1.6vw, 1.375rem)/1.3 var(--font-body); color: var(--color-text-primary); }
.svc__desc { color: var(--color-text-secondary); font-size: var(--text-base); max-width: 38rem; }
.svc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: 4px; font: 500 var(--text-sm)/1 var(--font-button); letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-secondary); }
.svc__tag { display: inline-flex; padding: .25rem .5rem; border: 1px solid var(--color-accent); border-radius: var(--radius-sm); font: 500 var(--text-xs)/1 var(--font-button); letter-spacing: .1em; text-transform: uppercase; color: var(--color-accent-text); }
.svc__tag--off { border-color: var(--color-border-input); color: var(--color-text-secondary); }
.svc__price { font: 500 clamp(1.25rem, 2vw, 1.5rem)/1.2 var(--font-display); letter-spacing: .02em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.svc__seta { display: none; width: 24px; height: 24px; fill: none; stroke: var(--color-accent-text); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--transition-base), opacity var(--transition-fast); }
.svc--off { cursor: not-allowed; }
.svc--off .svc__name, .svc--off .svc__price { color: var(--color-text-secondary); }
@media (min-width: 768px) {
  .svc { grid-template-columns: minmax(0, 1fr) auto 24px; column-gap: var(--space-6); }
  .svc__seta { display: block; align-self: center; opacity: .55; }
  a.svc:hover .svc__seta, a.svc:focus-visible .svc__seta { opacity: 1; transform: translateX(4px); }
  .service-row--acao .button--primary { flex: 0 0 auto; }
}
@media (min-width: 1024px) {
  .servicos__grupo { display: grid; grid-template-columns: 14rem minmax(0, 1fr); column-gap: var(--grid-gap); align-items: start; }
  .servicos__grupo h3 { border-bottom: 0; padding-bottom: 0; padding-top: var(--space-4); }
  .servicos__lista { border-top: 1px solid var(--color-border); }
}
@media (prefers-reduced-motion: reduce) { .svc__seta { transition: none; } }

/* ===== Elemento 6 — agendamento ===== */
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.agendar__head { display: grid; gap: var(--space-2); max-width: 40rem; margin-bottom: var(--space-8); }
.agendar__noscript { color: var(--color-text-secondary); }
.agenda { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.agenda[hidden] { display: none; }
.agenda__erros { padding: var(--space-4); border: 1px solid var(--color-error); border-radius: var(--radius-sm); background: rgb(242 158 149 / 8%); color: var(--color-text-primary); }
.agenda__erros p { margin: 0 0 var(--space-2); }
.agenda__erros ul { margin: 0; padding-left: 1.25rem; }
.agenda__erros a { color: var(--color-error); text-underline-offset: 3px; }
.agenda__erros[hidden] { display: none; }

.passo { min-width: 0; margin: 0; padding: var(--space-6) 0 0; border: 0; border-top: 1px solid var(--color-border-subtle); }
.passo:first-child { border-top: 0; padding-top: 0; }
.passo__titulo { display: flex; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-3); padding: 0; font: 600 var(--text-sm)/1.2 var(--font-button); letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-text); }
.passo__n { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border: 1px solid var(--color-accent); border-radius: 50%; font-size: var(--text-xs); letter-spacing: 0; color: var(--color-accent-text); }
.passo__dica { margin: 0 0 var(--space-3); color: var(--color-text-secondary); font-size: var(--text-sm); }

.campos { display: grid; gap: var(--space-4); }
.campo label { display: block; margin-bottom: 6px; font: 500 var(--text-sm)/1.3 var(--font-body); color: var(--color-text-primary); }
.campo input, .campo select { width: 100%; min-height: 48px; padding: 0 14px; background: var(--color-primary-dark); color: var(--color-text-primary); border: 1px solid var(--color-border-input); border-radius: var(--radius-sm); font: 400 var(--text-base)/1.3 var(--font-body); }
.campo input::placeholder { color: var(--color-text-muted); }
.campo select { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23E4B77F%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px; }
.campo select option { background: var(--color-primary-dark); color: var(--color-text-primary); }
.campo [aria-invalid="true"] { border-color: var(--color-error); box-shadow: 0 0 0 1px var(--color-error); }
.campo__dica { margin: 6px 0 0; color: var(--color-text-secondary); font-size: var(--text-sm); }
.campo__erro { margin: 6px 0 0; color: var(--color-error); font-size: var(--text-sm); }
.campo__erro::before { content: "Erro: "; font-weight: 600; }
.campo__erro[hidden] { display: none; }
.passo > .campo__erro { margin-top: var(--space-3); }

/* opções em forma de chip (rádios nativos, acessíveis por teclado) */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips--dia { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); }
.chips--hora { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
.chip { position: relative; display: block; }
.chip input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.chip__corpo { position: relative; display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--color-border-input); border-radius: var(--radius-sm); font: 500 1rem/1 var(--font-display); letter-spacing: .04em; color: var(--color-text-primary); transition: border-color var(--transition-fast), background var(--transition-fast); }
.chip--dia .chip__corpo { flex-direction: column; gap: 2px; min-height: 72px; padding: 8px 4px; }
.chip__a, .chip__c { font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-secondary); }
.chip__b { font-size: 1.5rem; line-height: 1; }
.chip input:not(:disabled):hover + .chip__corpo { border-color: var(--color-accent-text); }
.chip input:checked + .chip__corpo { border: 2px solid var(--color-accent); background: rgb(194 138 77 / 18%); }
.chip input:checked + .chip__corpo::after { content: "✓"; position: absolute; top: 4px; right: 6px; font: 600 var(--text-xs)/1 var(--font-body); color: var(--color-accent-text); }
.chip input:focus-visible + .chip__corpo { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.chip--off .chip__corpo { border-style: dashed; border-color: var(--color-border-subtle); color: var(--color-text-muted); text-decoration: line-through; }
.chip--dia.chip--off .chip__corpo, .chip--dia.chip--off .chip__a, .chip--dia.chip--off .chip__c { text-decoration: none; color: var(--color-text-muted); }
.chip--off input { cursor: not-allowed; }

/* resumo */
.agenda__resumo { padding: var(--space-6); background: var(--color-primary-dark); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-md); }
.agenda__resumo-title { margin: 0 0 var(--space-4); font: 600 var(--text-sm)/1.2 var(--font-button); letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-text); }
.resumo { display: grid; gap: var(--space-3); margin: 0; }
.resumo > div { display: flex; justify-content: space-between; gap: var(--space-4); }
.resumo dt { color: var(--color-text-secondary); font-size: var(--text-sm); }
.resumo dd { margin: 0; text-align: right; font-weight: 500; color: var(--color-text-primary); }
.resumo__total { padding-top: var(--space-3); border-top: 1px solid var(--color-border-subtle); }
.resumo__total dd { font: 500 1.5rem/1 var(--font-display); }
.agenda__enviar { width: 100%; margin-top: var(--space-6); }
.agenda__nota { margin: var(--space-2) 0 0; color: var(--color-text-secondary); font-size: var(--text-xs); text-align: center; }
@media (min-width: 1024px) {
  .agenda { grid-template-columns: minmax(0, 1fr) 22rem; column-gap: calc(var(--grid-gap) * 2); }
  .agenda__erros { grid-column: 1 / -1; }
  .agenda__resumo { position: sticky; top: 84px; }
}

/* confirmação */
.confirmacao { width: min(32rem, calc(100% - 32px)); padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-primary-dark); color: var(--color-text-primary); box-shadow: var(--shadow-panel); }
.confirmacao::backdrop { background: rgb(8 11 12 / 72%); }
.confirmacao__corpo { padding: var(--space-8); display: grid; gap: var(--space-3); }
.confirmacao__icone { width: 48px; height: 48px; fill: none; stroke: var(--color-success); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.confirmacao__titulo { margin: 0; font: 700 1.75rem/1.1 var(--font-display); letter-spacing: .02em; text-transform: uppercase; }
.confirmacao__titulo:focus { outline: none; }
.confirmacao__aviso { margin: 0; color: var(--color-text-secondary); }
.resumo--conf { margin-top: var(--space-2); padding-top: var(--space-4); border-top: 1px solid var(--color-border-subtle); }
.confirmacao__codigo { margin: 0; color: var(--color-text-secondary); font-size: var(--text-sm); }
.confirmacao__codigo strong { color: var(--color-accent-text); letter-spacing: .08em; font-family: var(--font-button); }
.confirmacao__acoes { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
/* legenda de fieldset: sai de cima da borda e empurra o conteúdo para baixo */
legend.passo__titulo { float: left; width: 100%; }
legend.passo__titulo + * { clear: both; }
.agenda__erros:focus { outline-offset: 2px; }

/* ===== Elemento 8 — microanimações e estados ===== */
/* estados que valem com ou sem movimento */
.site-header.is-scrolled { background: rgb(37 43 40 / .94); box-shadow: 0 8px 24px rgb(0 0 0 / 25%); }
.site-header { transition: background var(--transition-base), box-shadow var(--transition-base); }
.site-nav a[aria-current="true"]:not(.button) { color: var(--color-accent-text); }
.button:disabled, .button[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
.button--primary:active { transform: translateY(1px); }

/* links do menu: filete cobre que cresce da esquerda (só onde o menu é horizontal) */
@media (min-width: 768px) {
  .site-nav a:not(.button) { position: relative; }
  .site-nav a:not(.button)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 6px; height: 1px; background: var(--color-accent-text); transform: scaleX(0); transform-origin: left; transition: transform var(--transition-base); }
  .site-nav a:not(.button):hover::after, .site-nav a[aria-current="true"]:not(.button)::after { transform: scaleX(1); }
}

/* movimento: tudo aqui some com "reduzir movimento" */
@media (prefers-reduced-motion: no-preference) {
  /* entrada do hero (CSS puro: não depende de JavaScript) */
  @keyframes sobe { from { opacity: 0; translate: 0 22px; } to { opacity: 1; translate: 0 0; } }
  @keyframes aparece { from { opacity: 0; } to { opacity: 1; } }
  .hero__title span:nth-child(1) { animation: sobe .8s cubic-bezier(.2, .8, .2, 1) both; }
  .hero__title span:nth-child(2) { animation: sobe .8s cubic-bezier(.2, .8, .2, 1) .12s both; }
  .hero__intro { animation: sobe .7s cubic-bezier(.2, .8, .2, 1) .35s both; }
  .hero__portrait { animation: aparece 1s ease .15s both; }
  .hero__services-title { animation: sobe .6s cubic-bezier(.2, .8, .2, 1) .5s both; }
  .service-row { animation: sobe .6s cubic-bezier(.2, .8, .2, 1) both; }
  .service-row:nth-child(1) { animation-delay: .55s; } .service-row:nth-child(2) { animation-delay: .61s; } .service-row:nth-child(3) { animation-delay: .67s; }
  .service-row:nth-child(4) { animation-delay: .73s; } .service-row:nth-child(5) { animation-delay: .79s; } .service-row:nth-child(6) { animation-delay: .85s; }

  /* revelação ao rolar (o JS liga "reveal-ok"; sem ele nada fica escondido) */
  /* a transição fica só no estado visível: ao ligar "reveal-ok" o bloco some na hora (sem animar a saída) */
  .reveal-ok .reveal { opacity: 0; translate: 0 20px; }
  .reveal-ok .reveal.is-visible { opacity: 1; translate: none; transition: opacity .6s ease calc(var(--i, 0) * 90ms), translate .6s cubic-bezier(.2, .8, .2, 1) calc(var(--i, 0) * 90ms); }

  /* agendamento: ✓ "pulsa" ao marcar, valor do resumo é destacado, painel de erros desce */
  @keyframes pulso { from { transform: scale(.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }
  .chip input:checked + .chip__corpo::after { animation: pulso 180ms cubic-bezier(.2, .8, .2, 1); }
  @keyframes destaque { from { background: rgb(228 183 127 / 28%); } to { background: transparent; } }
  .resumo dd.is-mudou { animation: destaque .7s ease-out; border-radius: var(--radius-sm); }
  @keyframes desce { from { opacity: 0; translate: 0 -8px; } to { opacity: 1; translate: 0 0; } }
  .agenda__erros:not([hidden]) { animation: desce .22s ease-out; }

  /* caixa de confirmação */
  @keyframes dlg-entra { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
  @keyframes fundo-entra { from { opacity: 0; } to { opacity: 1; } }
  .confirmacao[open] { animation: dlg-entra .24s cubic-bezier(.2, .8, .2, 1); }
  .confirmacao[open]::backdrop { animation: fundo-entra .2s ease; }
  .confirmacao__icone circle, .confirmacao__icone path { stroke-dasharray: 80; stroke-dashoffset: 80; animation: traco .6s ease .12s forwards; }
  @keyframes traco { to { stroke-dashoffset: 0; } }
}

/* ===== Elemento 9 — contato, rodapé e refino do celular ===== */
.contato { background: var(--color-primary-dark); border-top: 1px solid var(--color-border-subtle); padding-block: var(--section-space); scroll-margin-top: 72px; }
.contato__head { display: grid; gap: var(--space-2); max-width: 40rem; margin-bottom: var(--space-8); }
.contato__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
.contato__bloco { display: grid; align-content: start; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.contato__bloco h3 { margin: 0; font: 600 var(--text-sm)/1.2 var(--font-button); letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-text); }
.contato__bloco p, .contato__bloco address { margin: 0; color: var(--color-text-secondary); font-style: normal; font-size: var(--text-base); }
.contato__nota { font-size: var(--text-sm) !important; }
.contato__horarios { display: grid; gap: var(--space-2); margin: 0; }
.contato__horarios > div { display: flex; justify-content: space-between; gap: var(--space-4); padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border-subtle); }
.contato__horarios dt { color: var(--color-text-secondary); }
.contato__horarios dd { margin: 0; color: var(--color-text-primary); font-variant-numeric: tabular-nums; text-align: right; }
.contato__rotulo { display: block; font: 500 var(--text-xs)/1.3 var(--font-button); letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-secondary); }
.contato__fone { color: var(--color-text-primary) !important; font: 500 1.5rem/1.2 var(--font-display) !important; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.contato .button { justify-self: start; margin-top: var(--space-2); }
@media (min-width: 900px) { .contato__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-gap); } }

.site-footer { background: var(--color-black); border-top: 1px solid var(--color-border-subtle); padding-block: var(--space-8) max(var(--space-8), env(safe-area-inset-bottom, 0px)); }
.site-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4) var(--space-8); }
.site-footer__nota { margin: 0; flex: 1 1 16rem; color: var(--color-text-secondary); font-size: var(--text-xs); }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 0 var(--space-6); font: 500 var(--text-xs)/1 var(--font-button); letter-spacing: .1em; text-transform: uppercase; }
.site-footer__nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-text-secondary); text-decoration: none; }
.site-footer__nav a:hover { color: var(--color-accent-text); }
@media (max-width: 599px) { .site-footer__inner { flex-direction: column; align-items: flex-start; } }

/* celular deitado: o hero não precisa ocupar mais que a tela inteira nem empilhar o retrato gigante */
@media (max-height: 480px) and (orientation: landscape) { .hero__portrait { max-width: 280px; } }
.pular { display: inline-flex; align-items: center; min-height: 44px; }
@media (min-width: 768px) and (max-width: 1023px) { .hero { --service-row-height: 56px; } }

/* ===== Hero que cabe exatamente na tela do computador, com o fim suavizado ===== */
/* Antes a altura do hero vinha do conteúdo (título + retrato) e em telas baixas o rosto passava da dobra; agora o hero tem a altura da tela
   (menos o cabeçalho), o título encolhe em telas baixas e o retrato ocupa o que sobra. O degradê já termina na cor da seção seguinte; o risco
   que aparecia no fim do hero era a borda superior de .servicos (removida), e a base do retrato agora some no degradê em vez de ser cortada. */
.servicos { border-top: 0; }
@media (min-width: 1024px) and (min-height: 520px) {
  .hero-fundo { --cab: 61px; }
  .hero { --text-display: clamp(4.5rem, min(12vw, 19svh), 10rem); --solape: calc(var(--title-line) * .2); height: calc(100svh - var(--cab)); min-height: 0; grid-template-rows: auto minmax(0, 1fr); }
  .hero__portrait { align-self: end; justify-self: start; height: calc(100% + var(--solape)); width: auto; margin: calc(-1 * var(--solape)) 0 0; aspect-ratio: 1200 / 1274; -webkit-mask-image: linear-gradient(to bottom, #000 84%, transparent 100%); mask-image: linear-gradient(to bottom, #000 84%, transparent 100%); }
  .hero__services { padding-bottom: var(--space-5); }
}
