/* =========================================================
   1. VARIÁVEIS
========================================================= */
:root {
  --color-ink: #080d12;
  --color-charcoal: #10171d;
  --color-slate: #1a252d;
  --color-stone: #d9d1c3;
  --color-ivory: #f5f1e9;
  --color-paper: #fbfaf7;
  --color-gold: #ad8a53;
  --color-gold-light: #ceb078;
  --color-text-light: #f7f4ee;
  --color-text-dark: #11171c;
  --color-muted-light: #b4bdc3;
  --color-muted-dark: #626c73;
  --color-border-light: rgba(255, 255, 255, 0.14);
  --color-border-dark: rgba(17, 23, 28, 0.14);
  --color-error: #a33838;
  --color-success: #246b4a;
  --shadow-soft: 0 26px 80px rgba(8, 13, 18, 0.12);
  --shadow-dark: 0 28px 90px rgba(0, 0, 0, 0.3);
  --container: min(calc(100% - 2rem), 1220px);
  --container-wide: min(calc(100% - 2rem), 1440px);
  --topbar-height: 2.4rem;
  --header-height: 4.9rem;
  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-sans: "Manrope", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --transition-fast: 180ms ease;
  --transition: 280ms cubic-bezier(.2, .7, .2, 1);
  --radius-sm: .45rem;
  --radius-md: .9rem;
  --radius-lg: 1.4rem;
}

/* =========================================================
   2. RESET E BASE
========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--topbar-height) + var(--header-height) + 1.5rem);
  color-scheme: light;
}
body, h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; }
img, picture, svg, iframe { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { border: 0; }
a { color: inherit; text-decoration: none; }
address { font-style: normal; }
body {
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: clip;
  color: var(--color-text-dark);
  background: var(--color-paper);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open, body.modal-open { overflow: hidden; }
button, a, input, select, textarea { outline-offset: 4px; }
:focus-visible { outline: 2px solid var(--color-gold-light); }
::selection { color: var(--color-ink); background: var(--color-gold-light); }

.container { width: var(--container); margin-inline: auto; }
.section { position: relative; padding-block: clamp(5rem, 8vw, 8.5rem); }
.section--paper { background: var(--color-paper); }
.section--light { background: var(--color-ivory); }
.section--stone {
  background:
    linear-gradient(rgba(255,255,255,.55), rgba(255,255,255,.55)),
    repeating-linear-gradient(118deg, rgba(17,23,28,.035) 0 1px, transparent 1px 28px),
    var(--color-stone);
}
.section--dark { color: var(--color-text-light); background: var(--color-charcoal); }

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: .98;
  letter-spacing: -.035em;
  text-wrap: balance;
}
h1 { font-size: clamp(3rem, 7vw, 6.9rem); }
h2 { font-size: clamp(2.35rem, 5vw, 4.8rem); }
h3 { font-size: clamp(1.65rem, 2.4vw, 2.35rem); }
p { max-width: 68ch; }
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* =========================================================
   3. ACESSIBILIDADE E UTILITÁRIOS
========================================================= */
.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 3000;
  padding: .8rem 1rem;
  color: var(--color-ink);
  background: var(--color-gold-light);
  font-weight: 700;
  transform: translateY(-150%);
  transition: transform var(--transition-fast);
}
.skip-link:focus { transform: translateY(0); }
.no-js .reveal { opacity: 1; transform: none; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: #86663b;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.eyebrow::before { width: 2rem; height: 1px; background: currentColor; content: ""; }
.eyebrow--light { color: #dec79f; }
.section-index {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: 2.3rem;
  color: #86663b;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .15em;
}
.section-index::after { width: clamp(3rem, 8vw, 8rem); height: 1px; background: var(--color-border-dark); content: ""; }
.section-index span { color: var(--color-muted-dark); letter-spacing: .1em; text-transform: uppercase; }
.section-index--light { color: #dec79f; }
.section-index--light span { color: var(--color-muted-light); }
.section-index--light::after { background: var(--color-border-light); }
.section-heading { max-width: 56rem; margin-bottom: clamp(3rem, 6vw, 5.2rem); }
.section-heading h2, .location__heading h2 { margin-top: 1rem; }
.section-heading > p:last-child, .location__heading > p:last-child { margin-top: 1.25rem; color: var(--color-muted-dark); font-size: clamp(1rem, 1.3vw, 1.12rem); }
.section-heading--split { display: grid; max-width: none; gap: 2rem; }
.section-heading--light h2, .section-heading--light > p:last-child { color: var(--color-text-light); }
.lead-text { color: var(--color-text-dark); font-family: var(--font-display); font-size: clamp(1.35rem, 2.1vw, 1.8rem); line-height: 1.42; }

/* =========================================================
   4. COMPONENTES
========================================================= */
.button {
  position: relative;
  z-index: 0;
  display: inline-flex;
  min-height: 3.45rem;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  overflow: hidden;
  padding: .9rem 1.35rem;
  border: 1px solid transparent;
  border-radius: .15rem;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .035em;
  text-align: center;
  cursor: pointer;
  transition: color var(--transition), background var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.button::before { position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.09); content: ""; opacity: 0; transform: translateY(100%); transition: transform var(--transition), opacity var(--transition); }
.button:hover::before, .button:focus-visible::before { opacity: 1; transform: translateY(0); }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.button svg { width: 1.1rem; height: 1.1rem; transition: transform var(--transition-fast); }
.button:hover svg { transform: translateX(.18rem); }
.button--accent { color: var(--color-ink); background: var(--color-gold); border-color: var(--color-gold); box-shadow: 0 12px 32px rgba(173,138,83,.2); }
.button--accent:hover { background: var(--color-gold-light); border-color: var(--color-gold-light); box-shadow: 0 15px 38px rgba(173,138,83,.3); }
.button--ghost-light { color: var(--color-text-light); background: rgba(255,255,255,.035); border-color: rgba(255,255,255,.36); backdrop-filter: blur(8px); }
.button--ghost-light:hover { border-color: rgba(255,255,255,.72); background: rgba(255,255,255,.08); }
.button--ink { color: var(--color-text-light); background: var(--color-charcoal); border-color: var(--color-charcoal); }
.button--outline { color: var(--color-text-dark); background: transparent; border-color: var(--color-border-dark); }
.button--outline:hover { border-color: var(--color-gold); background: rgba(173,138,83,.07); }
.button--small { min-height: 2.75rem; padding: .68rem 1rem; font-size: .76rem; }
.button--full { width: 100%; }
.text-link, .text-button {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: .65rem;
  padding: 0;
  color: var(--color-text-dark);
  background: transparent;
  font-size: .86rem;
  font-weight: 700;
  cursor: pointer;
}
.text-link svg, .text-button svg { width: 1.1rem; height: 1.1rem; transition: transform var(--transition-fast); }
.text-link:hover svg, .text-button:hover svg { transform: translateX(.22rem); }
.text-link--light, .text-button--light { color: var(--color-text-light); }
.icon-button { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: inherit; background: transparent; cursor: pointer; }
.icon-button svg { width: 1.35rem; height: 1.35rem; }
.media-frame { position: relative; overflow: hidden; background: var(--color-slate); }
.media-frame img { width: 100%; height: 100%; object-fit: cover; }
.media-frame--landscape { aspect-ratio: 4 / 3; }
.has-image-error { background: linear-gradient(135deg, var(--color-charcoal), var(--color-slate)); }
.image-failed { visibility: hidden; }

/* =========================================================
   5. CABEÇALHO
========================================================= */
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; color: var(--color-text-light); transition: background var(--transition), box-shadow var(--transition), transform var(--transition); }
.topbar { height: var(--topbar-height); border-bottom: 1px solid rgba(255,255,255,.12); background: rgba(8,13,18,.88); backdrop-filter: blur(16px); }
.topbar__inner { display: flex; height: 100%; align-items: center; justify-content: space-between; gap: 1rem; }
.topbar__address { display: flex; align-items: center; gap: .45rem; color: var(--color-muted-light); font-size: .7rem; }
.topbar__address svg { width: .9rem; height: .9rem; color: var(--color-gold-light); }
.topbar__channels { display: flex; align-items: center; gap: .75rem; font-size: .68rem; }
.topbar__channels a { transition: color var(--transition-fast); }
.topbar__channels a:hover { color: var(--color-gold-light); }
.topbar__channels span { width: 1px; height: .8rem; background: var(--color-border-light); }
.navbar-wrap { border-bottom: 1px solid rgba(255,255,255,.11); background: linear-gradient(to bottom, rgba(8,13,18,.58), rgba(8,13,18,.18)); backdrop-filter: blur(10px); transition: background var(--transition), border-color var(--transition), box-shadow var(--transition); }
.site-header.is-scrolled .navbar-wrap, .legal-header .navbar-wrap { border-color: rgba(255,255,255,.08); background: rgba(8,13,18,.96); box-shadow: 0 8px 30px rgba(0,0,0,.14); }
.site-header.is-hidden { transform: translateY(calc(-1 * (var(--topbar-height) + var(--header-height)))); }
.navbar { display: flex; height: var(--header-height); align-items: center; justify-content: space-between; gap: 1.25rem; }
.brand { display: inline-flex; min-width: 0; align-items: center; gap: .75rem; }
.brand__mark { position: relative; display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border: 1px solid rgba(206,176,120,.55); color: var(--color-gold-light); font-family: var(--font-display); font-size: 1rem; }
.brand__mark span:first-child { transform: translate(-.14rem,-.08rem); }
.brand__mark span:last-child { position: absolute; transform: translate(.15rem,.12rem); opacity: .68; }
.brand__text { display: grid; line-height: 1.1; }
.brand__text strong { overflow: hidden; color: var(--color-text-light); font-family: var(--font-display); font-size: clamp(1rem, 1.5vw, 1.25rem); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.brand__text small { margin-top: .28rem; color: var(--color-muted-light); font-size: .58rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.desktop-nav { display: none; align-items: center; gap: clamp(.9rem, 1.5vw, 1.55rem); }
.desktop-nav a { position: relative; padding-block: .9rem; color: #dfe3e5; font-size: .72rem; font-weight: 600; }
.desktop-nav a::after { position: absolute; right: 0; bottom: .5rem; left: 0; height: 1px; background: var(--color-gold-light); content: ""; transform: scaleX(0); transform-origin: right; transition: transform var(--transition); }
.desktop-nav a:hover::after, .desktop-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.navbar__cta { display: none; }
.menu-toggle { display: grid; width: 3rem; height: 3rem; place-content: center; gap: .34rem; color: var(--color-text-light); background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 1.55rem; height: 1px; background: currentColor; transition: transform var(--transition), opacity var(--transition); }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(.44rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-.44rem) rotate(-45deg); }

.mobile-menu-backdrop { position: fixed; inset: 0; z-index: 1090; background: rgba(0,0,0,.56); opacity: 0; transition: opacity var(--transition); }
.mobile-menu-backdrop.is-visible { opacity: 1; }
.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1100;
  display: flex;
  width: min(88vw, 25rem);
  flex-direction: column;
  overflow-y: auto;
  padding: max(1.1rem, env(safe-area-inset-top)) 1.35rem max(1.35rem, env(safe-area-inset-bottom));
  color: var(--color-text-light);
  background: var(--color-charcoal);
  box-shadow: -24px 0 70px rgba(0,0,0,.28);
  transform: translateX(102%);
  transition: transform var(--transition);
}
.mobile-menu.is-open { transform: translateX(0); }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--color-border-light); }
.mobile-menu__label { color: var(--color-muted-light); font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.mobile-menu__links { display: grid; padding-block: 1.1rem; }
.mobile-menu__links a { padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.08); font-family: var(--font-display); font-size: 1.6rem; line-height: 1.2; }
.mobile-menu__footer { display: grid; gap: .7rem; margin-top: auto; padding-top: 1.2rem; }
.mobile-menu__phone { min-height: 2.75rem; display: flex; align-items: center; justify-content: center; color: var(--color-muted-light); font-size: .76rem; text-align: center; }

/* =========================================================
   6. HERO
========================================================= */
.hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  min-height: 100dvh;
  align-items: end;
  overflow: hidden;
  padding: calc(var(--topbar-height) + var(--header-height) + 4.5rem) 0 5.5rem;
  color: var(--color-text-light);
  background: var(--color-ink);
}
.hero__media, .hero__overlay, .hero__architecture { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; transform: scale(1.035); animation: heroZoom 18s ease-in-out infinite alternate; }
.hero__overlay { background: linear-gradient(90deg, rgba(8,13,18,.97) 0%, rgba(8,13,18,.88) 42%, rgba(8,13,18,.5) 72%, rgba(8,13,18,.34) 100%), linear-gradient(0deg, rgba(8,13,18,.82), transparent 55%); }
.hero__architecture { opacity: .22; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 6rem 6rem; mask-image: linear-gradient(90deg, black, transparent 78%); }
.hero__inner { position: relative; z-index: 2; display: grid; gap: 3rem; }
.hero__content { max-width: 58rem; }
.hero h1 { max-width: 12ch; margin-top: 1.2rem; color: var(--color-text-light); }
.hero h1 em { color: var(--color-gold-light); font-style: italic; }
.hero__lead { max-width: 52rem; margin-top: 1.5rem; color: #cbd1d4; font-size: clamp(1rem, 1.45vw, 1.2rem); }
.hero__actions { display: flex; flex-direction: column; gap: .8rem; margin-top: 2rem; }
.hero__facts { display: grid; border-top: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light); background: rgba(8,13,18,.28); backdrop-filter: blur(12px); }
.hero__fact { display: grid; grid-template-columns: 2.2rem 1fr; gap: .9rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border-light); }
.hero__fact:last-child { border-bottom: 0; }
.hero__fact > span { color: var(--color-gold-light); font-size: .65rem; font-weight: 700; letter-spacing: .12em; }
.hero__fact div { display: grid; gap: .22rem; }
.hero__fact small { color: var(--color-muted-light); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.hero__fact strong, .hero__fact a { color: var(--color-text-light); font-size: .88rem; font-weight: 600; }
.scroll-cue { position: absolute; right: 1rem; bottom: 1.15rem; z-index: 2; display: flex; align-items: center; gap: .55rem; color: var(--color-muted-light); font-size: .63rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.scroll-cue svg { width: 1rem; height: 1rem; animation: scrollCue 1.8s ease-in-out infinite; }

/* =========================================================
   7. PRINCÍPIOS
========================================================= */
.principles-bar { position: relative; z-index: 3; color: var(--color-text-light); background: var(--color-charcoal); border-bottom: 1px solid var(--color-border-light); }
.principles-bar__grid { display: grid; }
.principle-chip { display: grid; grid-template-columns: 2rem 1fr; gap: .85rem; padding: 1.3rem 0; border-bottom: 1px solid var(--color-border-light); }
.principle-chip:last-child { border-bottom: 0; }
.principle-chip > span { color: var(--color-gold-light); font-size: .62rem; font-weight: 700; letter-spacing: .12em; }
.principle-chip h2 { color: var(--color-text-light); font-family: var(--font-sans); font-size: .86rem; font-weight: 700; letter-spacing: 0; }
.principle-chip p { margin-top: .2rem; color: var(--color-muted-light); font-size: .72rem; }

/* =========================================================
   8. APRESENTAÇÃO
========================================================= */
.about__grid { display: grid; gap: clamp(3rem, 7vw, 6rem); align-items: center; }
.about__content h2 { max-width: 11ch; margin-top: 1rem; }
.about__content .lead-text { margin-top: 1.6rem; }
.about__content > p:not(.section-index,.eyebrow,.lead-text) { margin-top: 1.2rem; color: var(--color-muted-dark); }
.about__actions { display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; margin-top: 1.6rem; }
.about__composition { position: relative; min-width: 0; padding: 0 0 3.2rem 1.4rem; }
.about__composition::before { position: absolute; inset: 2rem 1.4rem 1.4rem 0; border: 1px solid rgba(173,138,83,.45); content: ""; }
.about__image { position: relative; z-index: 1; aspect-ratio: 4 / 4.7; overflow: hidden; background: var(--color-charcoal); box-shadow: var(--shadow-soft); }
.about__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.65) contrast(1.04); }
.about__seal { position: absolute; right: 0; bottom: 0; z-index: 2; display: grid; width: min(12rem, 42vw); aspect-ratio: 1; place-content: center; padding: 1rem; color: var(--color-text-light); background: var(--color-charcoal); box-shadow: var(--shadow-dark); text-align: center; }
.about__seal span { color: var(--color-gold-light); font-family: var(--font-display); font-size: clamp(3rem, 8vw, 5.5rem); line-height: .8; }
.about__seal small { margin-top: .8rem; color: var(--color-muted-light); font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.about__areas { position: relative; z-index: 3; display: flex; flex-wrap: wrap; gap: .35rem; margin: -1.3rem 0 0 1rem; }
.about__areas span { padding: .48rem .68rem; border: 1px solid var(--color-border-dark); color: var(--color-text-dark); background: rgba(251,250,247,.94); font-size: .62rem; font-weight: 700; }
.about__bio { display: grid; gap: 1rem; margin-top: 1.35rem; }
.about__bio p { color: var(--color-muted-dark); font-size: .88rem; }
.about__bio .lead-text { color: var(--color-text-dark); font-family: var(--font-display); font-size: clamp(1.32rem, 2.25vw, 1.75rem); line-height: 1.34; }
.about__credentials { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 1.8rem; border-top: 1px solid var(--color-border-dark); border-left: 1px solid var(--color-border-dark); }
.about__credentials > div { min-width: 0; padding: 1rem; border-right: 1px solid var(--color-border-dark); border-bottom: 1px solid var(--color-border-dark); background: rgba(245,241,233,.45); }
.about__credentials dt { color: #86663b; font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.about__credentials dd { margin-top: .35rem; color: var(--color-text-dark); font-size: .76rem; line-height: 1.45; }

/* =========================================================
   9. ÁREAS DE ATUAÇÃO
========================================================= */
.practices { overflow: hidden; }
.practices__texture { position: absolute; inset: 0; opacity: .18; background: radial-gradient(circle at 86% 15%, rgba(173,138,83,.35), transparent 26%), repeating-linear-gradient(120deg, rgba(255,255,255,.07) 0 1px, transparent 1px 35px); }
.practices .container { position: relative; }
.practice-grid { display: grid; gap: 1rem; }
.practice-card { position: relative; display: flex; min-width: 0; flex-direction: column; padding: clamp(1.5rem, 4vw, 2.2rem); border: 1px solid var(--color-border-light); color: var(--color-text-light); background: rgba(255,255,255,.025); transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.practice-card:hover, .practice-card:focus-within { border-color: rgba(206,176,120,.58); background: rgba(255,255,255,.055); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.practice-card--featured { background: linear-gradient(160deg, rgba(173,138,83,.15), rgba(255,255,255,.03)); }
.practice-card__top { display: flex; align-items: center; gap: .8rem; margin-bottom: 2.2rem; }
.practice-card__number { color: var(--color-gold-light); font-size: .68rem; font-weight: 700; letter-spacing: .14em; }
.practice-card__line { height: 1px; flex: 1; background: var(--color-border-light); }
.practice-card__icon { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--color-border-light); color: var(--color-gold-light); }
.practice-card__icon svg { width: 1.7rem; height: 1.7rem; }
.practice-card h3 { color: var(--color-text-light); }
.practice-card > p { margin-top: 1rem; color: var(--color-muted-light); font-size: .9rem; }
.check-list { display: grid; gap: .55rem; margin-top: 1.4rem; list-style: none; }
.check-list li { position: relative; padding-left: 1rem; color: #d2d7da; font-size: .78rem; }
.check-list li::before { position: absolute; top: .7em; left: 0; width: .3rem; height: .3rem; border-radius: 50%; background: var(--color-gold); content: ""; }
.practice-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: auto; padding-top: 2rem; }
.icon-link { display: grid; width: 2.9rem; height: 2.9rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--color-border-light); color: var(--color-gold-light); transition: background var(--transition), color var(--transition), border-color var(--transition); }
.icon-link:hover { color: var(--color-ink); background: var(--color-gold-light); border-color: var(--color-gold-light); }
.icon-link svg { width: 1.25rem; height: 1.25rem; }
.practice-disclaimer { margin: 2rem auto 0; color: var(--color-muted-light); font-size: .72rem; text-align: center; }

/* =========================================================
   10. PROCESSO
========================================================= */
.process__layout { display: grid; gap: clamp(3rem, 7vw, 6rem); }
.process__heading h2 { max-width: 10ch; margin-top: 1rem; }
.process__heading > p:not(.section-index,.eyebrow) { margin-top: 1.25rem; color: var(--color-muted-dark); }
.process__heading .button { margin-top: 1.8rem; }
.timeline { position: relative; display: grid; list-style: none; }
.timeline::before { position: absolute; top: 0; bottom: 0; left: 1.55rem; width: 1px; background: var(--color-border-dark); content: ""; }
.timeline__item { position: relative; display: grid; grid-template-columns: 3.2rem 1fr; gap: 1.15rem; padding: 0 0 2.4rem; }
.timeline__item:last-child { padding-bottom: 0; }
.timeline__number { position: relative; z-index: 1; display: grid; width: 3.1rem; height: 3.1rem; place-items: center; border: 1px solid rgba(173,138,83,.5); color: #86663b; background: var(--color-paper); font-size: .68rem; font-weight: 700; }
.timeline__item small { color: #86663b; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.timeline__item h3 { margin-top: .3rem; font-size: clamp(1.6rem, 2.4vw, 2.15rem); }
.timeline__item p { margin-top: .65rem; color: var(--color-muted-dark); font-size: .88rem; }

/* =========================================================
   11. PREPARAÇÃO
========================================================= */
.preparation__grid { display: grid; gap: clamp(3rem, 7vw, 6rem); align-items: center; }
.preparation__visual { position: relative; padding-bottom: 2.5rem; }
.preparation__visual .media-frame { box-shadow: var(--shadow-soft); }
.preparation__caption { position: absolute; right: 0; bottom: 0; display: grid; min-width: min(18rem, 86%); gap: .3rem; padding: 1.15rem 1.3rem; color: var(--color-text-light); background: var(--color-charcoal); }
.preparation__caption span { color: var(--color-gold-light); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.preparation__caption strong { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; }
.preparation__content h2 { max-width: 11ch; margin-top: 1rem; }
.preparation__content > p:not(.section-index,.eyebrow) { margin-top: 1.1rem; color: var(--color-muted-dark); }
.document-list { display: grid; margin-top: 1.6rem; border-top: 1px solid var(--color-border-dark); list-style: none; }
.document-list li { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: .9rem 0; border-bottom: 1px solid var(--color-border-dark); color: var(--color-text-dark); font-size: .82rem; }
.document-list span { color: #86663b; font-size: .65rem; font-weight: 700; }
.safety-note { display: grid; grid-template-columns: 1.6rem 1fr; gap: .75rem; margin-top: 1.4rem; padding: 1rem; border: 1px solid rgba(173,138,83,.3); background: rgba(251,250,247,.58); }
.safety-note svg { width: 1.35rem; height: 1.35rem; color: #86663b; }
.safety-note p { color: var(--color-muted-dark); font-size: .75rem; }

/* =========================================================
   12. REGIÕES
========================================================= */
.regions { position: relative; overflow: hidden; padding-block: clamp(5.5rem, 9vw, 9rem); color: var(--color-text-light); background: linear-gradient(135deg, #091118, #14232c); }
.regions::before { position: absolute; inset: 0; background: radial-gradient(circle at 88% 18%, rgba(173,138,83,.23), transparent 28%); content: ""; }
.regions__background { position: absolute; inset: 0; opacity: .3; }
.regions__background svg { width: 100%; height: 100%; color: rgba(206,176,120,.7); }
.regions__background circle { fill: var(--color-gold-light); stroke: none; }
.regions__inner { position: relative; }
.regions__heading h2 { max-width: 13ch; margin-top: 1rem; color: var(--color-text-light); }
.regions__heading > p:last-child { margin-top: 1.2rem; color: var(--color-muted-light); }
.regions__layout { display: grid; gap: 2rem; margin-top: clamp(3rem, 6vw, 5rem); }
.region-feature { padding: 1.5rem; border: 1px solid var(--color-border-light); background: rgba(8,13,18,.38); backdrop-filter: blur(10px); }
.region-feature__label { color: var(--color-gold-light); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.region-feature > strong { display: block; margin-top: .5rem; font-family: var(--font-display); font-size: clamp(3rem, 8vw, 5.5rem); font-weight: 600; line-height: .95; }
.region-feature p { margin-top: .55rem; color: var(--color-muted-light); }
.region-feature .text-link { margin-top: 1.2rem; }
.region-chips { display: flex; flex-wrap: wrap; align-content: center; gap: .55rem; }
.region-chips button { min-height: 2.8rem; padding: .7rem .9rem; border: 1px solid var(--color-border-light); color: #e0e4e6; background: rgba(255,255,255,.035); font-size: .72rem; cursor: pointer; transition: color var(--transition), border-color var(--transition), background var(--transition), transform var(--transition); }
.region-chips button:hover, .region-chips button:focus-visible { color: var(--color-ink); background: var(--color-gold-light); border-color: var(--color-gold-light); transform: translateY(-2px); }
.regions__disclaimer { margin-top: 2.3rem; color: var(--color-muted-light); font-size: .7rem; }

/* =========================================================
   13. SEDE E MAPA
========================================================= */
.location__heading { max-width: 54rem; margin-bottom: 2.8rem; }
.location__layout { display: grid; gap: 1rem; }
.location__card { position: relative; display: grid; align-content: center; gap: 1.5rem; padding: clamp(1.5rem, 4vw, 2.8rem); border: 1px solid var(--color-border-dark); background: var(--color-ivory); box-shadow: var(--shadow-soft); }
.location__icon { display: grid; width: 3.4rem; height: 3.4rem; place-items: center; border: 1px solid rgba(173,138,83,.5); color: #86663b; }
.location__icon svg { width: 1.6rem; height: 1.6rem; }
.location__label { color: #86663b; font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.location address { margin-top: .45rem; color: var(--color-muted-dark); font-size: .9rem; }
.location address strong { color: var(--color-text-dark); font-family: var(--font-display); font-size: clamp(1.45rem, 2.4vw, 2rem); font-weight: 600; line-height: 1.15; }
.location__actions { display: grid; gap: .65rem; }
.location__contact { display: grid; gap: .6rem; padding-top: 1.2rem; border-top: 1px solid var(--color-border-dark); }
.location__contact a { display: grid; gap: .15rem; padding: .7rem 0; }
.location__schedule { display: grid; gap: .2rem; padding: .85rem 1rem; border-left: 3px solid var(--color-gold); background: rgba(173,138,83,.09); }
.location__schedule small { color: #86663b; }
.location__schedule strong { font-size: .92rem; line-height: 1.35; }
.location__contact small { color: var(--color-muted-dark); font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.location__contact strong { color: var(--color-text-dark); font-size: .9rem; }
.location__map { min-height: 320px; overflow: hidden; border: 1px solid var(--color-border-dark); background: #e6e2d9; box-shadow: var(--shadow-soft); }
.location__map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; filter: saturate(.72) contrast(1.02); }

/* =========================================================
   14. FORMULÁRIO
========================================================= */
.appointment__grid { display: grid; gap: clamp(3rem, 7vw, 6rem); align-items: start; }
.appointment__intro h2 { max-width: 11ch; margin-top: 1rem; }
.appointment__intro > p:not(.section-index,.eyebrow) { margin-top: 1.2rem; color: var(--color-muted-dark); }
.appointment__steps { display: grid; gap: .8rem; margin-top: 2rem; }
.appointment__steps div { display: grid; grid-template-columns: 2.2rem 1fr; align-items: start; gap: .8rem; }
.appointment__steps span { display: grid; width: 2.15rem; height: 2.15rem; place-items: center; border: 1px solid rgba(173,138,83,.42); color: #86663b; font-size: .68rem; font-weight: 700; }
.appointment__steps p { padding-top: .25rem; color: var(--color-muted-dark); font-size: .82rem; }
.appointment__steps strong { color: var(--color-text-dark); }
.appointment__privacy { display: grid; grid-template-columns: 1.7rem 1fr; gap: .8rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border-dark); }
.appointment__privacy svg { width: 1.45rem; height: 1.45rem; color: #86663b; }
.appointment__privacy p { color: var(--color-muted-dark); font-size: .74rem; }
.appointment-form { padding: clamp(1.35rem, 4vw, 2.5rem); border: 1px solid var(--color-border-dark); background: var(--color-paper); box-shadow: var(--shadow-soft); }
.form-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--color-border-dark); }
.form-heading span { font-family: var(--font-display); font-size: 1.45rem; }
.form-heading p { color: var(--color-muted-dark); font-size: .68rem; text-align: right; }
.form-grid { display: grid; gap: 1.05rem; }
.field { min-width: 0; }
.field label { display: block; margin-bottom: .4rem; color: var(--color-text-dark); font-size: .75rem; font-weight: 700; }
.field label span { color: var(--color-muted-dark); font-weight: 500; }
.field input, .field select, .field textarea { width: 100%; min-height: 3.25rem; border: 1px solid #c9c5bd; border-radius: 0; color: var(--color-text-dark); background: #fffefa; font-size: 1rem; transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast); }
.field input, .field select { padding: .75rem .85rem; }
.field textarea { min-height: 8.5rem; padding: .85rem; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #86663b; box-shadow: 0 0 0 3px rgba(173,138,83,.14); }
.field small { display: block; margin-top: .32rem; color: var(--color-muted-dark); font-size: .67rem; }
.field__label-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.character-count { color: var(--color-muted-dark); font-size: .65rem; }
.field__error { display: none; margin-top: .32rem; color: var(--color-error); font-size: .7rem; }
.field.has-error .field__error { display: block; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--color-error); background: rgba(163,56,56,.025); }
.field--checkbox { display: grid; grid-template-columns: 1.3rem 1fr; gap: .7rem; align-items: start; }
.field--checkbox input { width: 1.2rem; height: 1.2rem; min-height: 0; margin-top: .14rem; accent-color: #86663b; }
.field--checkbox label { margin: 0; color: var(--color-muted-dark); font-size: .72rem; font-weight: 500; line-height: 1.5; }
.field--checkbox .field__error { grid-column: 1 / -1; }
.button--submit { margin-top: 1.35rem; }
.form-status { min-height: 1.3rem; margin-top: .7rem; color: var(--color-success); font-size: .72rem; text-align: center; }
.noscript-message { margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border-dark); background: var(--color-paper); font-size: .82rem; }
.noscript-message a { color: #86663b; text-decoration: underline; }

/* =========================================================
   15. FAQ
========================================================= */
.faq__grid { display: grid; gap: clamp(3rem, 7vw, 6rem); }
.faq__heading h2 { max-width: 11ch; margin-top: 1rem; }
.faq__heading > p:not(.section-index,.eyebrow) { margin-top: 1.15rem; color: var(--color-muted-dark); }
.faq__heading .text-link { margin-top: 1.5rem; }
.accordion { border-top: 1px solid var(--color-border-dark); }
.accordion__item { border-bottom: 1px solid var(--color-border-dark); }
.accordion__item h3 { font-family: var(--font-sans); }
.accordion__item button { display: grid; width: 100%; min-height: 3.7rem; grid-template-columns: 1fr 1.4rem; align-items: center; gap: 1rem; padding: 1.2rem 0; color: var(--color-text-dark); background: transparent; font-size: .9rem; font-weight: 700; line-height: 1.45; text-align: left; cursor: pointer; }
.accordion__icon { position: relative; display: block; width: 1.2rem; height: 1.2rem; }
.accordion__icon::before, .accordion__icon::after { position: absolute; top: 50%; left: 50%; width: 1rem; height: 1px; background: #86663b; content: ""; transform: translate(-50%,-50%); transition: transform var(--transition-fast); }
.accordion__icon::after { transform: translate(-50%,-50%) rotate(90deg); }
.accordion__item button[aria-expanded="true"] .accordion__icon::after { transform: translate(-50%,-50%) rotate(0); }
.accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--transition); }
.accordion__panel > div { overflow: hidden; }
.accordion__panel:not([hidden]) { grid-template-rows: 1fr; }
.accordion__panel p { padding: 0 2rem 1.35rem 0; color: var(--color-muted-dark); font-size: .84rem; }

/* =========================================================
   16. CTA FINAL E RODAPÉ
========================================================= */
.final-cta { position: relative; overflow: hidden; padding-block: clamp(4.8rem, 8vw, 7.5rem); color: var(--color-text-light); background: var(--color-ink); }
.final-cta::before { position: absolute; inset: 0; background: radial-gradient(circle at 82% 22%, rgba(173,138,83,.22), transparent 30%), linear-gradient(110deg, #080d12, #142832); content: ""; }
.final-cta__texture { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(90deg, transparent, black); }
.final-cta__inner { position: relative; display: grid; align-items: end; gap: 2rem; }
.final-cta h2 { max-width: 11ch; margin-top: 1rem; color: var(--color-text-light); }
.final-cta p:not(.eyebrow) { margin-top: 1.15rem; color: var(--color-muted-light); }
.final-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.final-cta__actions .button { width: 100%; }
.final-cta__phone { width: 100%; padding-top: .55rem; color: var(--color-gold-light); font-family: var(--font-display); font-size: 1.45rem; text-align: center; }
.footer { position: relative; z-index: 2100; isolation: isolate; color: var(--color-text-light); background: #070b0e; }
.footer__top { display: grid; gap: 2.8rem; padding-block: clamp(4rem, 7vw, 6rem); }
.brand--footer { align-items: flex-start; }
.footer__brand > p { margin-top: 1.2rem; color: var(--color-muted-light); font-size: .8rem; }
.footer__contacts { display: grid; gap: .45rem; margin-top: 1.25rem; }
.footer__contacts a { display: grid; gap: .1rem; padding: .65rem 0; border-bottom: 1px solid var(--color-border-light); }
.footer__contacts small { color: var(--color-muted-light); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.footer__contacts strong { color: var(--color-text-light); font-size: .82rem; }
.footer__column h2 { color: var(--color-gold-light); font-family: var(--font-sans); font-size: .67rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer__column ul { display: grid; gap: .6rem; margin-top: 1rem; list-style: none; }
.footer__column li, .footer__column p, .footer__column address { color: var(--color-muted-light); font-size: .75rem; }
.footer__column a { transition: color var(--transition-fast); }
.footer__column a:hover { color: var(--color-gold-light); }
.footer__column--address address { margin-top: 1rem; }
.footer__address-note { margin-top: .7rem; color: var(--color-gold-light) !important; line-height: 1.45; }
.footer__column--address > a { display: inline-block; margin-top: .8rem; color: var(--color-gold-light); font-size: .72rem; }
.footer__legal { position: relative; z-index: 2110; display: grid; gap: 1.2rem; padding-block: 1.5rem; border-top: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light); }
.footer__notices { display: grid; gap: .6rem; }
.footer__notices p { color: #8e989e; font-size: .64rem; }
.footer__notices strong { color: #b5bec3; }
.footer__legal nav { position: relative; z-index: 2120; display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; isolation: isolate; pointer-events: auto; }
.footer__legal nav a { position: relative; z-index: 2130; display: inline-flex; min-height: 48px; align-items: center; padding: .35rem .15rem; border: 0; color: var(--color-muted-light); background: transparent; font-size: .67rem; text-decoration: underline; text-underline-offset: .2rem; pointer-events: auto; touch-action: manipulation; cursor: pointer; }
.footer__legal nav a:hover, .footer__legal nav a:focus-visible { color: var(--color-gold-light); }
.footer::before, .footer::after, .footer__legal::before, .footer__legal::after { pointer-events: none; }
.footer__bottom { display: flex; flex-direction: column; gap: .35rem; padding-block: 1.2rem; color: #879198; font-size: .62rem; }

/* =========================================================
   17. MODAL, TOAST E CONTROLES FLUTUANTES
========================================================= */
.practice-modal { position: fixed; inset: 0; z-index: 2600; display: grid; place-items: center; padding: 1rem; visibility: hidden; opacity: 0; transition: opacity var(--transition), visibility var(--transition); }
.practice-modal[aria-hidden="false"] { visibility: visible; opacity: 1; }
.practice-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(7px); }
.practice-modal__panel { position: relative; z-index: 1; width: min(100%, 56rem); max-height: min(90dvh, 48rem); overflow-y: auto; padding: clamp(1.4rem, 4vw, 3rem); color: var(--color-text-dark); background: var(--color-paper); box-shadow: var(--shadow-dark); transform: translateY(1.2rem) scale(.985); transition: transform var(--transition); }
.practice-modal[aria-hidden="false"] .practice-modal__panel { transform: translateY(0) scale(1); }
.practice-modal__close { position: absolute; top: .7rem; right: .7rem; color: var(--color-text-dark); }
.practice-modal__heading { padding-right: 2.6rem; }
.practice-modal__index { color: #86663b; font-size: .68rem; font-weight: 700; letter-spacing: .14em; }
.practice-modal__heading .eyebrow { margin-top: 1.2rem; }
.practice-modal__heading h2 { margin-top: .7rem; }
.practice-modal__heading > p:last-child { margin-top: 1rem; color: var(--color-muted-dark); }
.practice-modal__body { display: grid; gap: 2rem; margin-top: 2rem; padding-block: 2rem; border-top: 1px solid var(--color-border-dark); border-bottom: 1px solid var(--color-border-dark); }
.practice-modal__body h3 { font-family: var(--font-sans); font-size: .77rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.practice-modal__body ul { display: grid; gap: .6rem; margin-top: 1rem; list-style: none; }
.practice-modal__body li { position: relative; padding-left: 1rem; color: var(--color-muted-dark); font-size: .82rem; }
.practice-modal__body li::before { position: absolute; top: .68em; left: 0; width: .3rem; height: .3rem; border-radius: 50%; background: var(--color-gold); content: ""; }
.practice-modal__footer { display: grid; gap: 1.2rem; align-items: center; padding-top: 1.5rem; }
.practice-modal__footer p { color: var(--color-muted-dark); font-size: .72rem; }
.practice-modal__footer [data-modal-whatsapp] { position: relative; z-index: 2; pointer-events: auto; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
body.modal-open .floating-whatsapp, body.modal-open .back-to-top { opacity: 0; pointer-events: none; transform: translateY(.7rem) scale(.92); }
.toast { position: fixed; right: 1rem; bottom: calc(5.7rem + env(safe-area-inset-bottom)); z-index: 1900; display: grid; width: min(calc(100% - 2rem), 24rem); grid-template-columns: 1.5rem 1fr 2rem; align-items: center; gap: .7rem; padding: .9rem; color: var(--color-text-light); background: var(--color-charcoal); box-shadow: var(--shadow-dark); opacity: 0; transform: translateY(1rem); transition: opacity var(--transition-fast), transform var(--transition-fast); }
.toast.is-visible { opacity: 1; transform: translateY(0); }
.toast[data-type="error"] .toast__icon { color: #ee9a9a; }
.toast__icon { color: var(--color-gold-light); }
.toast__icon svg, .toast button svg { width: 1rem; height: 1rem; }
.toast p { font-size: .72rem; }
.toast button { display: grid; width: 2rem; height: 2rem; place-items: center; color: var(--color-muted-light); background: transparent; cursor: pointer; }
.floating-whatsapp, .back-to-top { position: fixed; right: max(1rem, env(safe-area-inset-right)); z-index: 2400; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.14); color: var(--color-text-light); background: var(--color-charcoal); box-shadow: 0 12px 35px rgba(0,0,0,.22); transition: opacity var(--transition), transform var(--transition), background var(--transition); }
.floating-whatsapp { bottom: max(1rem, env(safe-area-inset-bottom)); width: 3.75rem; height: 3.75rem; color: var(--color-ink); background: var(--color-gold-light); }
.floating-whatsapp svg { width: 1.75rem; height: 1.75rem; fill: currentColor; stroke: none; }
.floating-whatsapp__tooltip { position: absolute; right: calc(100% + .65rem); width: max-content; padding: .48rem .65rem; color: var(--color-text-light); background: var(--color-charcoal); font-size: .66rem; opacity: 0; pointer-events: none; transform: translateX(.4rem); transition: opacity var(--transition-fast), transform var(--transition-fast); }
.floating-whatsapp:hover .floating-whatsapp__tooltip { opacity: 1; transform: translateX(0); }
.back-to-top { bottom: calc(5.35rem + env(safe-area-inset-bottom)); width: 3rem; height: 3rem; margin: 0; padding: 0; appearance: none; -webkit-appearance: none; opacity: 0; pointer-events: none; transform: translateY(.7rem); cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto !important; transform: translateY(0); }
body.footer-in-view .back-to-top,
body.footer-in-view .floating-whatsapp { opacity: 0; pointer-events: none; transform: translateY(.7rem) scale(.92); }
.back-to-top svg { width: 1.15rem; height: 1.15rem; }
body.form-in-view .floating-whatsapp { opacity: .42; transform: scale(.88); }
body.form-in-view .floating-whatsapp:hover, body.form-in-view .floating-whatsapp:focus-visible { opacity: 1; transform: scale(1); }

/* =========================================================
   18. PÁGINAS LEGAIS E 404
========================================================= */
.legal-page { background: var(--color-paper); }
.legal-page .site-header { position: relative; }
.legal-hero { position: relative; overflow: hidden; padding-block: clamp(4rem, 8vw, 7rem); color: var(--color-text-light); background: linear-gradient(130deg, var(--color-ink), var(--color-slate)); }
.legal-hero::after { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 5rem 5rem; content: ""; }
.legal-hero .container { position: relative; z-index: 1; }
.legal-hero h1 { max-width: 12ch; margin-top: 1rem; }
.legal-hero p:last-child { margin-top: 1.2rem; color: var(--color-muted-light); }
.legal-content { padding-block: clamp(4rem, 8vw, 7rem); }
.legal-content__grid { display: grid; gap: 3rem; }
.legal-summary { align-self: start; padding: 1.2rem; border: 1px solid var(--color-border-dark); background: var(--color-ivory); }
.legal-summary h2 { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.legal-summary ul { display: grid; gap: .5rem; margin-top: 1rem; list-style: none; }
.legal-summary a { color: var(--color-muted-dark); font-size: .75rem; }
.legal-summary a:hover { color: #86663b; }
.legal-article { min-width: 0; max-width: 78ch; }
.legal-section { padding-bottom: 2.5rem; border-bottom: 1px solid var(--color-border-dark); }
.legal-section + .legal-section { padding-top: 2.5rem; }
.legal-section h2 { font-size: clamp(1.9rem, 3.5vw, 2.7rem); }
.legal-section h3 { margin-top: 1.5rem; font-family: var(--font-sans); font-size: .86rem; font-weight: 700; letter-spacing: .06em; }
.legal-section p, .legal-section li { color: var(--color-muted-dark); font-size: .88rem; overflow-wrap: anywhere; }
.legal-section p { margin-top: 1rem; }
.legal-section ul, .legal-section ol { display: grid; gap: .45rem; margin-top: 1rem; padding-left: 1.2rem; }
.legal-contact-card { display: grid; gap: .5rem; margin-top: 1.2rem; padding: 1.1rem; border-left: 3px solid var(--color-gold); background: var(--color-ivory); }
.legal-contact-card a { color: #86663b; text-decoration: underline; text-underline-offset: .2rem; }
.legal-back { margin-top: 2rem; }
.error-page { display: grid; min-height: 100svh; min-height: 100dvh; place-items: center; padding: 2rem; color: var(--color-text-light); background: linear-gradient(135deg, var(--color-ink), var(--color-slate)); }
.error-page__inner { max-width: 48rem; text-align: center; }
.error-page__code { color: var(--color-gold-light); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.error-page h1 { margin-top: 1rem; }
.error-page p { margin: 1rem auto 0; color: var(--color-muted-light); }
.error-page .button { margin-top: 2rem; }

/* =========================================================
   19. ANIMAÇÕES
========================================================= */
.reveal { opacity: 0; transform: translateY(1.3rem); transition: opacity 720ms ease, transform 720ms cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal--hero { transition-delay: 120ms; }
.reveal--hero-delay { transition-delay: 260ms; }
@keyframes heroZoom { from { transform: scale(1.035); } to { transform: scale(1.09); } }
@keyframes scrollCue { 0%,100% { transform: translateY(0); } 50% { transform: translateY(.35rem); } }

/* =========================================================
   20. BREAKPOINTS
========================================================= */
@media (min-width: 430px) {
  .hero__actions { flex-direction: row; flex-wrap: wrap; }
  .hero__actions .button { width: auto; }
  .location__actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .location__contact { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .location__schedule { grid-column: 1 / -1; }
  .final-cta__actions .button { width: auto; }
  .final-cta__phone { text-align: left; }
  .footer__bottom { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 640px) {
  :root { --container: min(calc(100% - 3rem), 1220px); }
  .hero__facts { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .hero__fact { grid-template-columns: 1.9rem 1fr; padding: 1rem; border-right: 1px solid var(--color-border-light); border-bottom: 0; }
  .hero__fact:last-child { border-right: 0; }
  .principles-bar__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .principle-chip { padding: 1.35rem; border-right: 1px solid var(--color-border-light); }
  .principle-chip:nth-child(2) { border-right: 0; }
  .principle-chip:nth-last-child(-n+2) { border-bottom: 0; }
  .practice-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .practice-card:last-child { grid-column: 1 / -1; }
  .form-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .field--full { grid-column: 1 / -1; }
  .practice-modal__body { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .practice-modal__footer { grid-template-columns: 1fr auto; }
  .footer__top { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (min-width: 820px) {
  .section-heading--split { grid-template-columns: minmax(0,1.45fr) minmax(16rem,.55fr); }
  .section-heading--split > p { align-self: end; }
  .hero { padding-bottom: 6rem; }
  .hero__inner { grid-template-columns: minmax(0,1fr) minmax(18rem,24rem); align-items: end; }
  .hero__facts { grid-template-columns: 1fr; }
  .hero__fact { border-right: 0; border-bottom: 1px solid var(--color-border-light); padding: 1rem 0; }
  .principles-bar__grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .principle-chip { border-right: 1px solid var(--color-border-light); border-bottom: 0; }
  .principle-chip:nth-child(2) { border-right: 1px solid var(--color-border-light); }
  .principle-chip:last-child { border-right: 0; }
  .about__grid { grid-template-columns: minmax(0,1fr) minmax(22rem,.86fr); }
  .about__content { order: 1; }
  .about__composition { order: 2; }
  .practice-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .practice-card:last-child { grid-column: auto; }
  .process__layout { grid-template-columns: minmax(17rem,.72fr) minmax(0,1.28fr); align-items: start; }
  .process__heading { position: sticky; top: calc(var(--header-height) + 2rem); }
  .preparation__grid { grid-template-columns: minmax(0,1.05fr) minmax(19rem,.95fr); }
  .regions__layout { grid-template-columns: minmax(17rem,.62fr) minmax(0,1.38fr); align-items: stretch; }
  .region-chips { padding: 1rem 0; }
  .location__layout { grid-template-columns: minmax(20rem,.78fr) minmax(0,1.22fr); }
  .location__map, .location__map iframe { min-height: 520px; }
  .appointment__grid { grid-template-columns: minmax(18rem,.72fr) minmax(0,1.28fr); }
  .appointment__intro { position: sticky; top: calc(var(--header-height) + 2rem); }
  .faq__grid { grid-template-columns: minmax(17rem,.72fr) minmax(0,1.28fr); }
  .final-cta__inner { grid-template-columns: minmax(0,1.15fr) minmax(20rem,.85fr); }
  .final-cta__actions { justify-content: flex-end; }
  .final-cta__phone { text-align: right; }
  .footer__top { grid-template-columns: 1.25fr .72fr .72fr 1fr; }
  .footer__legal { grid-template-columns: 1fr auto; align-items: end; }
  .legal-content__grid { grid-template-columns: 15rem minmax(0,1fr); }
  .legal-summary { position: sticky; top: 2rem; }
}

@media (min-width: 1080px) {
  .desktop-nav { display: flex; }
  .navbar__cta { display: inline-flex; }
  .menu-toggle { display: none; }
  .hero__inner { grid-template-columns: minmax(0,1fr) 24rem; }
  .scroll-cue { right: 2rem; bottom: 1.5rem; }
  .footer__brand { padding-right: 2rem; }
}

@media (min-width: 1440px) {
  :root { --container: min(calc(100% - 5rem), 1320px); }
  .hero__content { max-width: 66rem; }
  .hero__inner { grid-template-columns: minmax(0,1fr) 26rem; }
  .location__layout { grid-template-columns: 32rem minmax(0,1fr); }
}

@media (max-width: 560px) {
  /* Mantém os links legais com a mesma linguagem visual do desktop e acima de controles fixos. */
  .footer {
    z-index: 2100;
    isolation: isolate;
  }
  .footer__legal .footer__legal-links {
    position: relative;
    z-index: 2200;
    display: flex;
    flex-wrap: wrap;
    width: auto;
    gap: .8rem 1.2rem;
    isolation: isolate;
  }
  .footer__legal .footer__legal-links a {
    position: relative;
    z-index: 2201;
    width: auto;
    min-height: 48px;
    padding: .35rem .15rem;
    border: 0;
    background: transparent;
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }
  .footer__legal .footer__legal-links a:active {
    color: var(--color-muted-light);
    background: transparent;
  }
  .legal-header .brand__text { display: none; }
  .legal-header .button { min-height: 2.6rem; padding-inline: .7rem; font-size: .68rem; }
}

@media (max-width: 389px) {
  .about__credentials { grid-template-columns: 1fr; }
  .brand__text strong { max-width: 10rem; }
  .hero { padding-bottom: 4.7rem; }
  .hero h1 { font-size: clamp(2.7rem, 14vw, 3.6rem); }
  .hero__lead { font-size: .92rem; }
  .hero__actions .button,
  .location__actions .button,
  .final-cta__actions .button,
  .practice-modal__footer .button { width: 100%; }
  .topbar__channels a:first-child { display: none; }
  .topbar__channels span { display: none; }
  .about__composition { padding-left: .8rem; }
  .about__seal { width: 9.5rem; }
  .form-heading { align-items: flex-start; flex-direction: column; }
  .form-heading p { text-align: left; }
  .location__actions .button { width: 100%; }
}

/* =========================================================
   21. REDUCED MOTION
========================================================= */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .hero__media img { transform: none; }
}

/* =========================================================
   CORREÇÕES FINAIS DE RESPONSIVIDADE E FORMULÁRIO
========================================================= */
@media (max-width: 560px) {
  .about__composition {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(8.8rem, 43vw);
    grid-template-areas:
      "image image"
      "areas seal";
    column-gap: .75rem;
    row-gap: .9rem;
    padding: 0 0 0 .8rem;
  }
  .about__composition::before { inset: 2rem .8rem 1.2rem 0; }
  .about__image { grid-area: image; }
  .about__seal {
    position: relative;
    right: auto;
    bottom: auto;
    grid-area: seal;
    width: 100%;
    max-width: 10.5rem;
    align-self: start;
    margin-top: 0;
  }
  .about__areas {
    grid-area: areas;
    align-self: start;
    align-content: start;
    margin: 0;
    padding: 0 0 .35rem .75rem;
  }
  .about__areas span {
    max-width: 100%;
    white-space: normal;
  }
}

/* Cidade permanece como campo livre para atender qualquer localidade. */
.field input#city { cursor: text; }

/* Controle de retorno ao topo com área de toque estável em desktop e mobile. */
.back-to-top { text-decoration: none; }
