/* ==========================================================
   Dra. Isabele Reche — site
   ========================================================== */

/* ---------- fontes ---------- */
@font-face { font-family: "Helvetica Neue LT"; src: url(../assets/fonts/helvetica-neue-200.woff2) format("woff2"); font-weight: 200; font-display: swap; }
@font-face { font-family: "Helvetica Neue LT"; src: url(../assets/fonts/helvetica-neue-300.woff2) format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Helvetica Neue LT"; src: url(../assets/fonts/helvetica-neue-400.woff2) format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Helvetica Neue LT"; src: url(../assets/fonts/helvetica-neue-500.woff2) format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url(../assets/fonts/merriweather-300.woff2) format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url(../assets/fonts/merriweather-400.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url(../assets/fonts/merriweather-300i.woff2) format("woff2"); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: "Merriweather"; src: url(../assets/fonts/merriweather-400i.woff2) format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

/* ---------- tokens ----------
   Fundo único com luzes suaves; acento cinza rosado. */
:root {
  --bg: #FAF8F7;
  --surface: #FFFFFF;
  --surface-2: #F4F0EF;
  --text: #2A2626;
  --body: #574D4B;
  --muted: #8A7F7C;
  --line: rgba(42, 38, 38, .1);
  --card-border: rgba(42, 38, 38, .08);

  --rose: #A8918E;
  --rose-d: #8C7572;
  --rose-l: #D8C9C6;
  --em-a: #8C7572;
  --em-b: #BCA5A1;
  --glow: rgba(168, 145, 142, .2);

  --light-a: rgba(201, 180, 176, .55);
  --light-b: rgba(226, 212, 208, .7);
  --light-c: rgba(168, 145, 142, .3);

  --glass: rgba(250, 248, 247, .6);
  --glass-border: rgba(255, 255, 255, .7);

  --deep: #231F1F;
  --deep-text: #F6F2F1;
  --deep-body: #CFC5C3;
  --deep-muted: #9E9391;
  --deep-line: rgba(246, 242, 241, .12);
  --deep-rose: #D3C0BC;

  --serif: "Merriweather", Georgia, serif;
  --sans: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --pad: clamp(1.1rem, 4vw, 3rem);
  --max: 1240px;
  --sec: clamp(4.5rem, 8vw, 7rem);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --radius: 20px;
  color-scheme: light;
}

[data-theme="dark"] {
  --bg: #151313;
  --surface: #1E1B1B;
  --surface-2: #262222;
  --text: #F4F0EF;
  --body: #CFC5C3;
  --muted: #9E9391;
  --line: rgba(244, 240, 239, .1);
  --card-border: rgba(199, 177, 173, .14);

  --rose: #C7B1AD;
  --rose-d: #B39C98;
  --em-a: #B9A29E;
  --em-b: #E6D8D5;
  --glow: rgba(199, 177, 173, .14);

  --light-a: rgba(140, 117, 114, .32);
  --light-b: rgba(90, 74, 72, .38);
  --light-c: rgba(199, 177, 173, .14);

  --glass: rgba(30, 27, 27, .55);
  --glass-border: rgba(255, 255, 255, .09);

  --deep: #0E0D0D;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
body {
  margin: 0; background: var(--bg); color: var(--body);
  font-family: var(--sans); font-weight: 400; font-size: clamp(.95rem, .93rem + .12vw, 1.02rem); line-height: 1.65;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
  transition: background-color .6s var(--ease), color .6s var(--ease);
}
body.is-loading { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
em { font-style: italic; }
::selection { background: var(--rose); color: #fff; }
:focus-visible { outline: 2px solid var(--rose); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* grão */
body::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 90; opacity: .035;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* luzes de fundo: a página inteira é um só fundo */
.ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ambient i { position: absolute; border-radius: 50%; filter: blur(90px); will-change: transform; }
.ambient i:nth-child(1) { width: 48vw; height: 48vw; right: -14vw; top: -16vw; background: radial-gradient(circle, var(--light-a), transparent 65%); }
.ambient i:nth-child(2) { width: 42vw; height: 42vw; left: -16vw; top: 38vh; background: radial-gradient(circle, var(--light-b), transparent 65%); }
.ambient i:nth-child(3) { width: 36vw; height: 36vw; right: 6vw; bottom: -18vw; background: radial-gradient(circle, var(--light-c), transparent 65%); }

.wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--pad); }
.skip { position: fixed; left: 1rem; top: -60px; z-index: 300; padding: .7rem 1rem; border-radius: 999px; background: var(--text); color: var(--bg); text-decoration: none; transition: top .3s; }
.skip:focus { top: 1rem; }

:root { --hero-bg: #ECE5DF; --edge: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))); }
[data-theme="dark"] { --hero-bg: #1B1817; }

/* ---------- tipografia: uma família só nos títulos ---------- */
.display, .h2, .final__title { font-family: var(--sans); font-weight: 300; letter-spacing: -.03em; color: var(--text); }
.display { font-size: clamp(2rem, 1.3rem + 1.9vw, 3.1rem); line-height: 1.08; }
.h2 { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); line-height: 1.12; text-wrap: balance; }
.display em, .h2 em, .final__title em, .motto__text em, .story__text em, .paths__grow-title em, .cta-strip span {
  font-family: inherit; font-style: normal; color: var(--rose-d);
}
.display em .w > span, .h2 em .w > span {
  background: linear-gradient(105deg, var(--em-a) 0%, var(--em-b) 50%, var(--em-a) 100%);
  background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: emshift 8s ease-in-out infinite;
}
@keyframes emshift { 50% { background-position: 100% 0; } }
.soft { color: var(--muted); }
h3 { font-family: var(--sans); font-weight: 400; font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); line-height: 1.3; letter-spacing: -.01em; color: var(--text); }

/* rótulo discreto: texto + linha */
.label { display: inline-flex; align-items: center; gap: .55rem; font-size: .78rem; letter-spacing: .01em; color: var(--muted); margin-bottom: 1.1rem; }
.label span { color: var(--rose); font-size: .85em; }
.label::after { content: ""; width: 44px; height: 1px; background: currentColor; opacity: .45; }
.label--light { color: rgba(255,255,255,.82); }
.label--light span { color: #EADDDA; }

.section-head { margin-bottom: clamp(2rem, 4vw, 3.25rem); padding-top: 1.6rem; border-top: 1px solid var(--line); }
.section-head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem 3rem; flex-wrap: wrap; }
.section-head .h2 { max-width: 20ch; }
.section-head__lead { max-width: 38ch; color: var(--muted); font-weight: 300; font-size: .95rem; }

.w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.w > span { display: inline-block; will-change: transform, filter; }

.monogram { font-family: var(--serif); font-weight: 300; font-size: 1.2rem; letter-spacing: -.06em; line-height: 1; white-space: nowrap; }
.monogram em { font-style: normal; margin-left: -.02em; }
.monogram--xl { font-size: clamp(3rem, 5vw, 4.2rem); color: var(--deep-text); }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; gap: .7em; justify-content: center;
  padding: 1.05em 1.9em; border-radius: 999px; text-decoration: none; font-weight: 500;
  font-size: .84rem; letter-spacing: .02em; min-height: 48px; white-space: nowrap;
  border: 1px solid transparent; position: relative; overflow: hidden; isolation: isolate;
  transition: transform .6s var(--ease), background-color .6s var(--ease), border-color .6s var(--ease), box-shadow .6s var(--ease), color .6s var(--ease);
}
.btn::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%; z-index: -1; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.4), transparent); transform: skewX(-20deg); transition: left 1.1s var(--ease);
}
.btn:hover { transform: translateY(-1px); }
.btn:hover::after { left: 130%; }
.btn--primary { background: var(--text); color: var(--bg); box-shadow: 0 10px 24px -14px rgba(0,0,0,.45); }
.btn--primary:hover { background: color-mix(in srgb, var(--text) 86%, var(--rose)); box-shadow: 0 16px 30px -16px rgba(0,0,0,.5); }
.btn--light { background: #FAF8F7; color: #2A2626; box-shadow: 0 10px 26px -14px rgba(0,0,0,.4); }
.btn--light:hover { background: #fff; }
.btn--light::after { background: linear-gradient(100deg, transparent, rgba(168,145,142,.28), transparent); }
.btn--ghost { background: color-mix(in srgb, var(--surface) 40%, transparent); color: var(--text); border-color: var(--line); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.btn--ghost:hover { border-color: color-mix(in srgb, var(--text) 40%, transparent); }
.btn--ghost::after { background: linear-gradient(100deg, transparent, rgba(168,145,142,.2), transparent); }
.btn--sm { padding: .82em 1.45em; font-size: .8rem; min-height: 42px; }
.btn__arrow { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform .6s var(--ease); }
.btn:hover .btn__arrow { transform: translateX(3px); }
.link-arrow { display: inline-flex; gap: .5em; align-items: center; font-size: .84rem; color: var(--text); text-decoration: none; padding-bottom: .2rem; border-bottom: 1px solid var(--line); transition: border-color .5s; }
.link-arrow span { transition: transform .5s var(--ease); }
.link-arrow:hover { border-color: var(--rose); }
.link-arrow:hover span { transform: translateX(3px); }

/* botão de WhatsApp que acompanha a página (como na F2C) */
.btn-wa {
  display: inline-flex; align-items: center; gap: .65rem; padding: .32rem 1.15rem .32rem .32rem; border-radius: 999px;
  background: var(--text); color: var(--bg); text-decoration: none; font-size: .8rem; font-weight: 500; letter-spacing: .01em;
  box-shadow: 0 12px 26px -14px rgba(0,0,0,.45); transition: transform .6s var(--ease), background-color .6s var(--ease);
}
.btn-wa:hover { transform: translateY(-1px); background: color-mix(in srgb, var(--text) 86%, var(--rose)); }
.btn-wa__icon { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #25D366; flex: none; }
.btn-wa__icon svg { width: 18px; height: 18px; fill: #fff; }

.theme-toggle {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; flex: none;
  border: 1px solid var(--glass-border); background: var(--glass); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  color: var(--text); transition: transform .6s var(--ease);
}
.theme-toggle:hover { transform: rotate(25deg); }
.theme-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.theme-toggle .i-moon { display: none; }
[data-theme="dark"] .theme-toggle .i-sun { display: none; }
[data-theme="dark"] .theme-toggle .i-moon { display: block; }

/* ---------- loader ---------- */
.loader { position: fixed; inset: 0; z-index: 200; background: var(--deep); color: var(--deep-text); display: grid; place-items: center; align-content: center; gap: 1.4rem; }
.loader__mark { position: relative; width: 110px; height: 110px; display: grid; place-items: center; }
.loader__ring { position: absolute; inset: 0; transform: rotate(-90deg); }
.loader__ring circle { fill: none; stroke: var(--deep-rose); stroke-width: 1; stroke-dasharray: 352; stroke-dashoffset: 352; }
.loader__ir { font-family: var(--serif); font-weight: 300; font-size: 2.6rem; letter-spacing: -.06em; opacity: 0; }
.loader__ir em { font-style: normal; }
.loader__line { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: .95rem; opacity: 0; color: var(--deep-rose); }

/* ---------- header: tema, menu e WhatsApp no mesmo vidro, alinhados à coluna do texto ---------- */
:root { --hx: max(var(--pad), min(13.6vw, 290px)); }
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100; display: flex; align-items: center;
  padding: clamp(1rem, 2.2vw, 2.4rem) var(--pad) 1rem calc(var(--hx) - 3.1rem);
  color: var(--text); pointer-events: none; transition: padding .5s var(--ease);
}
.nav.is-scrolled { padding-top: .8rem; }
.nav__left, .nav__right { display: flex; align-items: center; gap: .5rem; pointer-events: auto; }
.nav { justify-content: space-between; }
.nav__right { margin-right: calc(var(--hx) - var(--pad) - 3.1rem); }
.nav__links {
  display: flex; gap: 1.7rem; padding: .78rem 1.5rem; border-radius: 999px;
  background: var(--glass); border: 1px solid var(--glass-border);
  backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2);
  box-shadow: 0 10px 30px -18px rgba(0,0,0,.25);
}
.nav__links a { text-decoration: none; font-size: .8rem; position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.nav__links a:hover::after { transform: scaleX(1); transform-origin: left; }
/* WhatsApp na mesma estética do menu, com o botão verde */
.nav__wa {
  display: inline-flex; align-items: center; gap: .55rem; padding: .3rem 1.05rem .3rem .3rem; border-radius: 999px; text-decoration: none;
  font-size: .8rem; font-weight: 500; color: var(--text);
  background: var(--glass); border: 1px solid var(--glass-border);
  backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2);
  box-shadow: 0 10px 30px -18px rgba(0,0,0,.25); transition: transform .6s var(--ease), border-color .6s;
}
.nav__wa:hover { transform: translateY(-1px); border-color: color-mix(in srgb, #25D366 50%, transparent); }
.nav__wa-icon { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #25D366; flex: none; box-shadow: 0 6px 14px -6px rgba(37,211,102,.7); }
.nav__wa-icon svg { width: 17px; height: 17px; fill: #fff; }
/* tema: destacado, à esquerda do menu */
.theme-toggle {
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; flex: none;
  border: 1px solid var(--glass-border); background: var(--glass); color: var(--text);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 10px 30px -18px rgba(0,0,0,.25);
  transition: transform .6s var(--ease);
}
.theme-toggle:hover { transform: rotate(25deg); }
.theme-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.theme-toggle .i-moon { display: none; }
[data-theme="dark"] .theme-toggle .i-sun { display: none; }
[data-theme="dark"] .theme-toggle .i-moon { display: block; }
.nav__burger { display: none; width: 44px; height: 44px; position: relative; border-radius: 50%; border: 1px solid var(--glass-border); background: var(--glass); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.nav__burger span { position: absolute; left: 13px; right: 13px; height: 1.5px; background: currentColor; transition: transform .4s var(--ease); }
.nav__burger span:first-child { top: 18px; } .nav__burger span:last-child { top: 24px; }
.nav__burger[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }
.mnav {
  position: fixed; inset: 0; z-index: 99; background: var(--bg); display: flex; flex-direction: column;
  justify-content: center; gap: 1rem; padding: var(--pad); clip-path: inset(0 0 100% 0); transition: clip-path .8s var(--ease);
}
.mnav a { font-size: 1.8rem; text-decoration: none; color: var(--text); font-weight: 300; letter-spacing: -.03em; }
.mnav.is-open { clip-path: inset(0 0 0 0); }

/* ---------- hero: foto estourada, rosto grande (gabarito LP AJUSTES) ---------- */
.hero { position: relative; height: clamp(560px, 40.8vw, 880px); overflow: hidden; background: var(--hero-bg); isolation: isolate; }
.hero__media { position: absolute; inset: 0; z-index: -1; }
.hero__img { position: absolute; width: 115vw; height: auto; max-width: none; left: 4.1vw; top: -19.8vw;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%); mask-image: linear-gradient(90deg, transparent 0, #000 9%); }
.hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--hero-bg) 45%, transparent) 0%, transparent 42%); }
[data-theme="dark"] .hero__media::after { background: linear-gradient(90deg, rgba(20,17,16,.82) 0%, rgba(20,17,16,.55) 30%, transparent 55%), linear-gradient(0deg, rgba(20,17,16,.4), transparent 30%); }
.hero__content { position: absolute; left: var(--hx); top: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center; padding-top: 4.5rem; }
.hero__eyebrow { margin-bottom: 1.4rem; }
.hero__title { font-size: clamp(2.1rem, 3.3vw, 4.2rem); line-height: 1.08; }
.hero__title .line { display: block; white-space: nowrap; }
.hero__sub { margin-top: 1.2rem; font-size: clamp(.95rem, .5rem + .85vw, 1.5rem); line-height: 1.4; font-weight: 300; color: var(--body); max-width: 24em; }
.hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2.2rem; }
.hero__link { position: relative; font-size: .86rem; font-weight: 500; color: var(--text); text-decoration: none; }
.hero__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.hero__link:hover::after { transform: scaleX(1); transform-origin: left; }
.hero__author { position: absolute; right: calc(var(--hx) * 1.03); top: clamp(5.5rem, 5.4vw, 7rem); color: #fff; text-decoration: none; margin: 0; text-shadow: 0 1px 12px rgba(0,0,0,.25); }
.hero__author { animation: floaty 5s ease-in-out infinite; }
@keyframes floaty { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.author { display: inline-flex; align-items: center; gap: .9rem; font-size: .86rem; letter-spacing: .02em; }
.author__pics { position: relative; width: 82px; height: 54px; flex: none; }
.author__pics i, .author__pics img { position: absolute; top: 0; width: 54px; height: 54px; border-radius: 50%; border: 1px solid rgba(255,255,255,.85); }
.author__pics i { left: 0; }
.author__pics img { left: 28px; object-fit: cover; }

/* ---------- frase: faixa compacta, corre com o scroll, selo 3D ao lado ---------- */
.motto { position: relative; }
.motto__pin { position: relative; padding-top: clamp(1.2rem, 2vw, 2rem); overflow: hidden; }
.motto__top { position: relative; display: flex; align-items: center; justify-content: space-between; padding-inline: var(--hx); min-height: 2.6rem; }
.motto__label { margin: 0; }
.motto__text {
  position: relative; z-index: 1; white-space: nowrap; text-transform: uppercase; font-weight: 300; letter-spacing: -.04em; line-height: .86;
  font-size: clamp(3.6rem, 9vw, 11rem); color: var(--text); padding-left: var(--hx); margin: clamp(.6rem, 1vw, 1.2rem) 0 -.02em; width: max-content; will-change: transform;
}
.motto__text em { font-style: normal; color: var(--rose-d); }
.motto__row { display: grid; grid-template-columns: 42.2% 1fr; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.motto__row > p { padding: clamp(1.2rem, 2.2vw, 2.2rem) 0; display: flex; align-items: center; }
.motto__lead { padding-left: calc(var(--hx) + 2.1vw) !important; padding-right: 2rem !important; border-right: 1px solid var(--line); font-size: clamp(.95rem, .7rem + .5vw, 1.2rem); line-height: 1.3; color: var(--rose-d); display: block !important; }
.motto__lead strong { font-weight: 500; }
.motto__sub { justify-content: flex-end; padding-right: 5.1vw !important; padding-left: 2rem !important; font-size: clamp(.9rem, .7rem + .35vw, 1.1rem); color: var(--rose-d); font-weight: 300; text-align: right; }

/* selo 3D (referência Nervana): moeda com espessura girando, órbitas e linha pontilhada */
.seal[hidden] { display: none; }
.seal { position: absolute; right: var(--hx); top: 50%; width: clamp(96px, 8.5vw, 160px); aspect-ratio: 1; transform: translateY(-14%); z-index: 2; perspective: 900px; }
.seal__dots { position: absolute; right: calc(100% + 1.2rem); top: 50%; width: clamp(80px, 26vw, 520px); height: 20px; margin-top: -10px; overflow: visible; }
.seal__dots line { stroke: var(--rose); stroke-width: 1; stroke-dasharray: 2 6; vector-effect: non-scaling-stroke; opacity: .7; }
.seal__orbit { position: absolute; border-radius: 50%; border: 1px dashed color-mix(in srgb, var(--rose) 55%, transparent); pointer-events: none; }
.seal__orbit--a { inset: -16%; transform: rotateX(64deg) rotateZ(0); animation: orbit 26s linear infinite; }
.seal__orbit--b { inset: -30%; border-style: dotted; opacity: .6; transform: rotateX(70deg) rotateY(18deg); animation: orbit 40s linear infinite reverse; }
@keyframes orbit { to { rotate: 360deg; } }
.seal__coin { position: absolute; inset: 0; transform-style: preserve-3d; will-change: transform; }
.seal__face { position: absolute; inset: 0; width: 100%; height: 100%; backface-visibility: hidden; -webkit-backface-visibility: hidden; filter: drop-shadow(0 16px 26px rgba(60,40,35,.22)); }
.seal__face--front { transform: translateZ(1px); }
.seal__face--back { transform: rotateY(180deg) translateZ(13px); }
.seal__layer { position: absolute; inset: 1%; border-radius: 50%; background: #9C8277; }
.seal__ring { fill: #B9A094; }
.seal__inner { fill: #F3EAE5; }
.seal__star { fill: #4A3B33; }
.seal__text { fill: #4A3B33; font: 500 15px var(--sans); letter-spacing: 5.2px; }

/* faixa de chamada: texto e botão alinhados ao centro */
.cta-strip { align-items: center; }
.cta-strip p { margin: 0; }

/* ---------- os caminhos: tela em 4, estrela que se abre ---------- */
.paths__pin { position: relative; height: 100svh; overflow: hidden; }
.paths__v, .paths__h { position: absolute; background: var(--line); z-index: 1; }
.paths__v { left: 50%; top: 0; bottom: 0; width: 1px; }
.paths__h { top: 50%; left: 0; right: 0; height: 1px; }
.paths__grid { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.path { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .6rem; padding: 3rem clamp(1.5rem, 4vw, 4rem); }
.path__n { font-size: .72rem; letter-spacing: .14em; color: var(--rose-d); }
.path__t { font-family: var(--sans); font-weight: 300; letter-spacing: -.03em; font-size: clamp(1.6rem, 1rem + 1.7vw, 2.5rem); line-height: 1.08; }
.path p { max-width: 28ch; font-size: .88rem; color: var(--muted); font-weight: 300; }
.paths__glow { position: absolute; left: 50%; top: 50%; width: 360px; height: 360px; margin: -180px 0 0 -180px; border-radius: 50%; background: radial-gradient(circle, var(--glow), transparent 65%); z-index: 1; pointer-events: none; }
.paths__star { position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; margin: -18px 0 0 -18px; z-index: 2; color: var(--rose-d); filter: drop-shadow(0 0 10px var(--rose)) drop-shadow(0 0 24px var(--glow)); }
.paths__star svg { width: 100%; height: 100%; fill: currentColor; }
.paths__grow {
  --ms: 0px; position: absolute; inset: 0; z-index: 3;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0c.8 7.3 3.4 10.6 12 12-8.6 1.4-11.2 4.7-12 12-.8-7.3-3.4-10.6-12-12C8.6 10.6 11.2 7.3 12 0z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 0c.8 7.3 3.4 10.6 12 12-8.6 1.4-11.2 4.7-12 12-.8-7.3-3.4-10.6-12-12C8.6 10.6 11.2 7.3 12 0z'/></svg>");
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: var(--ms) var(--ms); mask-size: var(--ms) var(--ms);
}
.paths__grow img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 40%; }
.paths__grow::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(28,22,22,.78) 0%, rgba(28,22,22,.35) 38%, rgba(28,22,22,.08) 65%); }
.paths__grow-text { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center; padding: var(--pad) var(--pad) clamp(3rem, 8vh, 5.5rem); }
.paths__grow-title { font-family: var(--sans); font-weight: 300; letter-spacing: -.03em; color: #fff; font-size: clamp(2rem, 1.3rem + 2.4vw, 3.6rem); line-height: 1.05; }
.paths__grow-title em { color: #EADDDA; }

/* ---------- procedimentos: lista + descrição ---------- */
.procs__pin { min-height: 100svh; display: flex; align-items: center; padding-block: 6rem 3rem; }
.procs__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.procs__head { margin-bottom: 1.8rem; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.plist { position: relative; height: clamp(300px, 46svh, 430px); overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 14%, #000 80%, transparent); mask-image: linear-gradient(180deg, transparent, #000 14%, #000 80%, transparent); }
.plist__items { list-style: none; padding: 0; position: absolute; left: 0; right: 0; top: 0; will-change: transform; }
.pitem {
  font-family: var(--sans); font-weight: 300; letter-spacing: -.035em; font-size: clamp(1.8rem, 1.1rem + 2vw, 3rem); line-height: 1.18;
  color: var(--text); opacity: var(--o, .18); white-space: nowrap; cursor: pointer; transition: opacity .6s var(--ease);
}
/* seta delicada, em outra cor */
.pitem::before { content: "→"; display: inline-block; width: 0; opacity: 0; overflow: hidden; vertical-align: .32em; font-weight: 200; font-size: .5em; color: var(--rose); transition: width .6s var(--ease), opacity .6s; }
.pitem.is-active { opacity: 1; }
.pitem.is-active::before { width: 1.7em; opacity: 1; }
.pview { padding-left: clamp(1.5rem, 3vw, 3rem); border-left: 1px solid var(--line); display: grid; gap: 1.1rem; align-content: center; min-height: 320px; }
.pview__top { display: flex; align-items: center; gap: 1rem; }
.pview__count { font-size: .78rem; color: var(--muted); letter-spacing: .06em; }
.pview__count b { color: var(--text); font-weight: 500; }
.pview__tag { font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; color: var(--rose-d); padding: .45em .9em; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--rose) 40%, transparent); }
.pview__title { font-weight: 300; letter-spacing: -.03em; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); line-height: 1.1; color: var(--text); }
.pview__desc { color: var(--body); font-weight: 300; font-size: 1rem; max-width: 40ch; }
.pview__chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.pview__chips li { font-size: .72rem; padding: .45em 1em; border-radius: 999px; border: 1px solid var(--line); color: var(--body); background: var(--glass); }
.pview .btn { justify-self: start; }

/* faixa de chamada no meio da página */
.cta-strip { display: flex; justify-content: space-between; align-items: center; gap: 1rem 2rem; flex-wrap: wrap; padding-block: 1.5rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-block: 1rem var(--sec); }
.cta-strip p { font-size: clamp(1rem, .95rem + .3vw, 1.2rem); font-weight: 300; color: var(--text); letter-spacing: -.01em; }
.cta-strip span { color: var(--rose-d); }
.testi .cta-strip { margin-top: 3rem; margin-bottom: 0; }

/* ---------- mapa facial: rosto centralizado ---------- */
.facemap { padding-bottom: var(--sec); overflow: hidden; overflow: clip; }
.facemap__head { text-align: center; display: flex; flex-direction: column; align-items: center; max-width: 640px; margin: 0 auto clamp(2.5rem, 5vw, 3.5rem); }
.facemap__head .h2 { max-width: 18ch; }
.facemap__lead { margin-top: 1rem; color: var(--muted); font-weight: 300; font-size: .95rem; max-width: 44ch; }
.face { position: relative; width: min(440px, 84vw); margin: 0 auto; }
.face::before { content: ""; position: absolute; inset: -18%; border-radius: 50%; background: radial-gradient(circle, var(--glow), transparent 62%); z-index: -1; }
.face__frame {
  position: relative; aspect-ratio: 1856 / 2304; border-radius: 50% / 42%; overflow: hidden; background: #e9dfd3;
  box-shadow: 0 0 0 1px var(--line), 0 0 0 16px color-mix(in srgb, var(--surface) 35%, transparent), 0 0 0 17px var(--line), 0 40px 80px -46px rgba(0,0,0,.45);
}
.face__img { width: 100%; height: 100%; object-fit: cover; }
.spot { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); width: 40px; height: 40px; display: grid; place-items: center; z-index: 3; }
.spot i { width: 12px; height: 12px; border-radius: 50%; background: #FAF8F7; box-shadow: 0 0 0 0 rgba(251,248,247,.7); animation: pulse 2.4s infinite; transition: transform .4s var(--ease), background .3s; }
.spot i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border-radius: 50%; border: 1px solid rgba(251,248,247,.7); }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(251,248,247,.7); } 70% { box-shadow: 0 0 0 14px rgba(251,248,247,0); } 100% { box-shadow: 0 0 0 0 rgba(251,248,247,0); } }
.spot:hover i, .spot.is-active i { transform: scale(1.3); background: var(--rose-l); }
.bubble {
  position: absolute; z-index: 5; width: 250px; padding: 1rem 1.1rem 1.1rem; border-radius: 16px; display: grid; gap: .45rem;
  background: color-mix(in srgb, var(--surface) 82%, transparent); border: 1px solid var(--card-border);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 24px 50px -28px rgba(0,0,0,.4);
}
.bubble__t { font-weight: 500; font-size: .95rem; color: var(--text); }
.bubble__d { font-size: .84rem; color: var(--muted); font-weight: 300; line-height: 1.5; }
.bubble .link-arrow { justify-self: start; margin-top: .3rem; font-size: .78rem; }
.face__note { margin-top: 2rem; font-size: .72rem; color: var(--muted); text-align: center; }

/* ---------- como funciona: linha do tempo no scroll ---------- */
.steps__pin { min-height: 100svh; display: flex; align-items: center; padding-block: 6rem 4rem; }
.steps__pin > .wrap { width: 100%; }
.steps__head { margin-bottom: clamp(2.5rem, 5vw, 4rem); padding-top: 1.6rem; border-top: 1px solid var(--line); }
.steps__grid { list-style: none; padding: 0; position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 3vw, 2.5rem); }
.steps__line { position: absolute; left: 0; right: 0; top: 6px; height: 1px; background: var(--line); }
.steps__line span { position: absolute; inset: 0; background: linear-gradient(90deg, var(--rose-d), var(--rose-l)); transform: scaleX(0); transform-origin: left; }
.step { position: relative; padding-top: 2.4rem; display: grid; gap: .5rem; align-content: start; opacity: .28; transition: opacity .8s var(--ease), transform .8s var(--ease); transform: translateY(12px); }
.step.is-in { opacity: 1; transform: none; }
.step__dot { position: absolute; top: 0; left: 0; width: 13px; height: 13px; border-radius: 50%; background: var(--bg); border: 1px solid var(--rose); z-index: 1; transition: background .5s, transform .5s var(--ease), box-shadow .5s; }
.step.is-in .step__dot { background: var(--rose-d); transform: scale(1.15); box-shadow: 0 0 0 6px var(--glow); }
.step__n { font-size: .7rem; letter-spacing: .14em; color: var(--rose-d); }
.step h3 { font-weight: 300; letter-spacing: -.025em; font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); }
.step p { font-size: .88rem; color: var(--muted); font-weight: 300; max-width: 30ch; }
.steps__cta { margin-top: clamp(2.5rem, 5vw, 3.5rem); }

/* ---------- sobre: foto fixa, frases trocando, barra de vidro ---------- */
.story { position: relative; height: 320svh; }
.story__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; color: #fff; }
.story__media { position: absolute; inset: 0; z-index: -2; }
.story__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 22%; transform-origin: 60% 40%; }
.story__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(30,24,23,.78) 0%, rgba(30,24,23,.45) 40%, rgba(30,24,23,.15) 70%, rgba(30,24,23,.45) 100%), linear-gradient(0deg, rgba(30,24,23,.5), transparent 35%); }
.story__content { position: absolute; left: 0; right: 0; top: 0; bottom: 96px; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 3rem; }
.story__slides { position: relative; height: clamp(14rem, 32svh, 18rem); max-width: 34rem; }
.story__slide { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 0; }
.story__slide:first-child { opacity: 1; }
.story__text { font-weight: 300; letter-spacing: -.03em; color: #fff; font-size: clamp(1.8rem, 1.2rem + 1.9vw, 2.9rem); line-height: 1.14; }
.story__text em { color: #EADDDA; }
.story__asides { position: relative; height: 9rem; justify-self: end; width: min(100%, 22rem); }
.story__aside { position: absolute; inset: 0; opacity: 0; font-size: .92rem; font-weight: 300; line-height: 1.6; color: rgba(255,255,255,.82); padding-left: 1.2rem; border-left: 1px solid rgba(255,255,255,.3); }
.story__aside:first-child { opacity: 1; }
/* barra de vidro de fora a fora, com divisórias verticais */
.story__bar {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr);
  background: rgba(255,255,255,.07); border-top: 1px solid rgba(255,255,255,.2);
  backdrop-filter: blur(20px) saturate(1.1); -webkit-backdrop-filter: blur(20px) saturate(1.1);
}
.story__bar div { padding: 1.3rem var(--pad); opacity: .22; transition: opacity .8s var(--ease); }
.story__bar div:first-child { padding-left: var(--edge); }
.story__bar div + div { border-left: 1px solid rgba(255,255,255,.2); }
.story__bar div.is-on { opacity: 1; }
.story__bar dt { font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.62); margin-bottom: .3rem; }
.story__bar dd { margin: 0; font-size: 1rem; font-weight: 300; color: #fff; }

/* ---------- resultados: antes e depois com régua de arrastar ---------- */
.results { padding-block: var(--sec); }
.results__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.ba { margin: 0; }
.ba__frame { position: relative; aspect-ratio: 4 / 4.6; border-radius: 20px; overflow: hidden; background: var(--surface-2); touch-action: pan-y; }
.ba__frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(2.1); }
.ba__before { clip-path: inset(0 calc(100% - var(--p)) 0 0); }
.ba__handle { position: absolute; top: 0; bottom: 0; left: var(--p); width: 1px; background: rgba(255,255,255,.9); pointer-events: none; }
.ba__handle::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; margin: -19px 0 0 -19px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; letter-spacing: .1em; color: #2A2626; background: rgba(250,248,247,.92); box-shadow: 0 8px 20px -8px rgba(0,0,0,.4); }
.ba__tag { position: absolute; top: .8rem; font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; padding: .45em .9em; border-radius: 999px; background: rgba(250,248,247,.88); color: #2A2626; pointer-events: none; }
.ba__tag--b { left: .8rem; } .ba__tag--a { right: .8rem; background: #2A2626; color: #FAF8F7; }
.ba__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.ba figcaption { padding-top: .9rem; display: grid; gap: .15rem; }
.ba figcaption strong { font-weight: 500; font-size: .9rem; color: var(--text); }
.ba figcaption span { font-size: .8rem; color: var(--muted); }

/* ---------- depoimentos ---------- */
.testi { padding-bottom: var(--sec); overflow: hidden; }
.qrail { position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.qtrack { display: flex; gap: 1rem; width: max-content; padding: .5rem 0 1rem; animation: qmove 60s linear infinite; }
.qrail:hover .qtrack, .qrail.is-paused .qtrack { animation-play-state: paused; }
@keyframes qmove { to { transform: translateX(-50%); } }
.q { position: relative; width: 330px; flex: none; display: flex; flex-direction: column; gap: .8rem; padding: 1.5rem; border-radius: 22px; background: color-mix(in srgb, var(--surface) 75%, transparent); border: 1px solid var(--card-border); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: border-color .5s; }
.q:hover { border-color: color-mix(in srgb, var(--rose) 45%, transparent); }
.q__top { display: flex; justify-content: space-between; align-items: center; }
.q__mark { font-family: var(--serif); font-size: 2.2rem; line-height: .6; color: var(--rose); height: 1rem; }
.q__type { font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; padding: .5em 1em; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); }
.q--audio .q__type { color: var(--rose-d); border-color: color-mix(in srgb, var(--rose) 45%, transparent); }
.q__title { font-size: 1.02rem; font-weight: 400; color: var(--text); line-height: 1.4; letter-spacing: -.01em; }
.q__text { font-size: .84rem; color: var(--muted); font-weight: 300; line-height: 1.55; flex: 1; }
.q__play { display: flex; align-items: center; gap: .8rem; padding: .45rem 1rem .45rem .45rem; border-radius: 999px; border: 1px solid var(--line); background: var(--bg); color: var(--muted); font-size: .76rem; }
.q__play i { width: 32px; height: 32px; border-radius: 50%; background: var(--text); position: relative; flex: none; }
.q__play i::after { content: ""; position: absolute; left: 13px; top: 10px; border-left: 9px solid var(--bg); border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.q__play.is-playing i::after { left: 11px; top: 10px; width: 10px; height: 12px; border: 0; border-left: 3px solid var(--bg); border-right: 3px solid var(--bg); }
.q__play em { font-style: normal; }
.q__wave { flex: 1; height: 20px; min-width: 90px; display: flex; align-items: center; gap: 2px; }
.q__wave b { flex: 1; max-width: 3px; border-radius: 2px; background: var(--rose); opacity: .7; height: var(--h, 40%); }
.q__play.is-playing .q__wave b { animation: wave .9s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -.07s); opacity: 1; }
@keyframes wave { from { height: 20%; } to { height: 100%; } }
.q__play[aria-disabled="true"] { cursor: default; }
.q__who { display: flex; align-items: center; gap: .7rem; padding-top: .9rem; border-top: 1px solid var(--line); }
.q__avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); color: var(--muted); font-size: .72rem; flex: none; }
.q__who strong { display: block; font-weight: 500; font-size: .84rem; color: var(--text); }
.q__who small { font-size: .74rem; color: var(--muted); }

/* ---------- faq ---------- */
.faq { padding-bottom: var(--sec); }
.faq__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; padding-top: 1.6rem; border-top: 1px solid var(--line); }
.faq__intro { position: sticky; top: 7rem; }
.faq__intro .h2 { max-width: 14ch; }
.faq__more { margin-top: 1.2rem; color: var(--muted); font-weight: 300; font-size: .92rem; }
.faq__more a { color: var(--text); text-underline-offset: 4px; }
.qa { border-bottom: 1px solid var(--line); }
.qa summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 0; font-weight: 400; letter-spacing: -.01em; font-size: clamp(1rem, .95rem + .3vw, 1.12rem); color: var(--text); }
.qa summary::-webkit-details-marker { display: none; }
.qa summary i { flex: none; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; position: relative; transition: background .4s; }
.qa summary i::before, .qa summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1px; background: var(--text); transform: translate(-50%, -50%); }
.qa summary i::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .5s var(--ease); }
.qa[open] summary i { background: var(--text); }
.qa[open] summary i::before, .qa[open] summary i::after { background: var(--bg); }
.qa[open] summary i::after { transform: translate(-50%, -50%) rotate(0); }
.qa__a { overflow: hidden; }
.qa__a p { padding-bottom: 1.4rem; color: var(--muted); max-width: 58ch; font-weight: 300; font-size: .92rem; }

/* ---------- onde atendo ---------- */
.places { padding-bottom: var(--sec); }
.places__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.place { border-radius: var(--radius); overflow: hidden; background: color-mix(in srgb, var(--surface) 72%, transparent); border: 1px solid var(--card-border); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: transform .7s var(--ease), box-shadow .7s var(--ease); }
.place:hover { transform: translateY(-4px); box-shadow: 0 30px 60px -40px rgba(0,0,0,.4); }
.place__media { position: relative; aspect-ratio: 16 / 8; overflow: hidden; }
.place__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.place:hover .place__media img { transform: scale(1.05); }
.place__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(28,22,22,.7), transparent 60%); }
.place__city { position: absolute; left: 1.5rem; bottom: 1.1rem; z-index: 1; color: #fff; font-weight: 300; letter-spacing: -.03em; font-size: clamp(1.9rem, 1.4rem + 1.4vw, 2.7rem); line-height: 1; }
.place__body { padding: 1.4rem 1.5rem 1.6rem; display: grid; gap: 1.3rem; }
.place dl { display: grid; gap: .7rem; margin: 0; }
.place dl div { padding-top: .7rem; border-top: 1px solid var(--card-border); display: grid; grid-template-columns: 110px 1fr; gap: 1rem; }
.place dt { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding-top: .25rem; }
.place dd { margin: 0; color: var(--text); font-weight: 300; font-size: .9rem; }
.place__actions { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }

/* ---------- CTA final ---------- */
.final { padding: 0 clamp(.6rem, 1.4vw, 1.25rem) clamp(.6rem, 1.4vw, 1.25rem); }
.final__panel { position: relative; min-height: min(86svh, 800px); border-radius: clamp(20px, 2.6vw, 32px); overflow: hidden; isolation: isolate; display: flex; align-items: flex-end; background: var(--deep); }
.final__media { position: absolute; inset: 0; z-index: -1; }
.final__media img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; transform-origin: 60% 40%; }
@media (min-width: 1025px) { .final__media { left: 22%; } }
.final__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--deep) 0%, rgba(35,31,31,.35) 30%, transparent 60%), linear-gradient(0deg, rgba(35,31,31,.5), transparent 40%); }
.final__card { position: relative; margin: clamp(1rem, 3vw, 2.5rem); padding: clamp(1.6rem, 3vw, 2.6rem); max-width: 500px; border-radius: 24px; background: rgba(250,248,247,.1); border: 1px solid rgba(255,255,255,.16); color: var(--deep-text); backdrop-filter: blur(22px) saturate(1.1); -webkit-backdrop-filter: blur(22px) saturate(1.1); }
.final__title { color: var(--deep-text); font-size: clamp(2rem, 1.4rem + 2vw, 3.1rem); line-height: 1.06; }
.final__title em { color: #EADDDA; }
.final__sub { color: var(--deep-body); margin: 1rem 0 1.6rem; font-size: .95rem; font-weight: 300; max-width: 40ch; }
.final__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; }
.final__ig { font-size: .8rem; color: var(--deep-body); text-decoration: none; }
.final__ig span { color: var(--deep-text); border-bottom: 1px solid var(--deep-rose); }

/* ---------- rodapé ---------- */
.footer { background: var(--deep); color: var(--deep-body); padding-top: clamp(3.5rem, 7vw, 6rem); margin-top: clamp(.6rem, 1.4vw, 1.25rem); }
.footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; }
.footer__brand p { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.05rem; margin-top: 1rem; color: var(--deep-text); line-height: 1.45; }
.footer__list { list-style: none; padding: 0; display: grid; gap: .5rem; font-weight: 300; font-size: .88rem; }
.footer a { text-decoration: none; }
.footer a:hover { color: var(--deep-text); }
.footer__big { margin-top: clamp(2.5rem, 5vw, 4rem); text-align: center; white-space: nowrap; overflow: hidden; line-height: .9; padding-bottom: .05em; font-weight: 200; letter-spacing: -.06em; font-size: clamp(3.4rem, 13vw, 12rem); background: linear-gradient(180deg, rgba(246,242,241,.16), rgba(246,242,241,0) 92%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.footer__legal { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding-block: 2rem; border-top: 1px solid var(--deep-line); font-size: .74rem; color: var(--deep-muted); }
.footer__top { color: var(--deep-rose); }

.reveal { will-change: transform, opacity; }

/* ---------- marcações de imagem (?marcacoes) ---------- */
.slot-badge { display: none; }
.show-slots [data-slot] { outline: 2px dashed #E0A040; outline-offset: -2px; }
.show-slots .slot-badge { display: block; position: absolute; z-index: 20; left: .6rem; right: .6rem; bottom: .6rem; max-width: 340px; padding: .6rem .75rem; border-radius: 10px; background: rgba(224,160,64,.95); color: #1A1A1A; font: 500 .7rem/1.35 var(--sans); letter-spacing: 0; text-transform: none; pointer-events: none; }
.slot-badge b { display: block; font-size: .78rem; margin-bottom: .2rem; }

/* ---------- responsivo ---------- */
@media (max-width: 1024px) {
  .nav__links { display: none; }
  .nav__burger { display: block; }
  .nav { padding-left: var(--pad); }
  .nav__right { margin-right: 0; }
  .faq__grid, .procs__grid { grid-template-columns: 1fr; }
  .faq__intro { position: static; }
  .pview { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 1.4rem; min-height: 0; }
  .steps__grid { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  .steps__line { display: none; }
  .story__content { grid-template-columns: 1fr; align-content: center; gap: 1.5rem; }
  .story__asides { justify-self: start; }
  .results__grid { grid-template-columns: 1fr 1fr; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .nav__wa { padding: .3rem; }
  .nav__wa-text { display: none; }
  .hero { height: auto; min-height: 100svh; }
  .hero__img { width: 200vw; left: -44vw; top: -6vw; -webkit-mask-image: none; mask-image: none; }
  .hero__media::after, [data-theme="dark"] .hero__media::after { background: linear-gradient(0deg, var(--hero-bg) 34%, color-mix(in srgb, var(--hero-bg) 70%, transparent) 46%, transparent 60%); }
  .hero__content { position: relative; left: 0; padding: 112vw var(--pad) 2rem; }
  .hero__author { display: none; }
  .br-d { display: none; }
  .hero__title { font-size: clamp(1.8rem, 8vw, 2.2rem); }
  .hero__title .line { white-space: normal; }
  .hero__actions .btn { flex: 1 1 100%; }
  .motto__text { font-size: 17vw; }
  .motto__row { grid-template-columns: 1fr; }
  .motto__lead { border-right: 0; border-bottom: 1px solid var(--line); padding-left: var(--pad) !important; }
  .motto__sub { justify-content: flex-start; text-align: left; padding: 1rem var(--pad) !important; }
  .seal { width: 84px; }
  .seal__dots { display: none; }
  .paths__pin { height: auto; padding-block: var(--sec); }
  .paths__v, .paths__h, .paths__star, .paths__glow { display: none; }
  .paths__grid { position: relative; grid-template-columns: 1fr; grid-template-rows: none; padding-inline: var(--pad); }
  .path { padding: 1.6rem 0; border-top: 1px solid var(--line); }
  .paths__grow { position: relative; inset: auto; -webkit-mask-image: none; mask-image: none; height: 70svh; margin: 1.5rem var(--pad) 0; border-radius: 22px; overflow: hidden; }
  .procs__pin { min-height: 0; padding-block: var(--sec) 2rem; }
  .plist { height: auto; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .plist__items { position: relative; }
  .pitem { font-size: 1.7rem; padding: .2rem 0; white-space: normal; }
  .cta-strip { margin-inline: var(--pad); width: auto; padding-inline: 0; }
  .steps__pin { min-height: 0; padding-block: var(--sec); }
  .steps__grid { grid-template-columns: 1fr; row-gap: 0; padding-left: 1.6rem; }
  .steps__grid::before { content: ""; position: absolute; left: 6px; top: 0; bottom: 0; width: 1px; background: var(--line); }
  .step { padding: 0 0 2rem; opacity: 1; transform: none; }
  .step__dot { left: -1.6rem; top: .2rem; }
  .story { height: 300svh; }
  .story__media img { object-position: 60% 20%; }
  .story__media::after { background: linear-gradient(0deg, rgba(30,24,23,.88) 0%, rgba(30,24,23,.55) 50%, rgba(30,24,23,.15) 80%); }
  .story__content { bottom: 150px; align-content: end; padding-bottom: 1rem; }
  .story__slides { height: 12rem; }
  .story__asides { height: 7rem; }
  .story__aside { font-size: .84rem; }
  .story__bar { grid-template-columns: 1fr; }
  .story__bar div { padding: .55rem var(--pad); display: flex; justify-content: space-between; gap: 1rem; }
  .story__bar div:first-child { padding-left: var(--pad); }
  .story__bar div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.15); }
  .story__bar dt { margin: 0; }
  .story__bar dd { font-size: .86rem; text-align: right; }
  .results__grid { grid-template-columns: 1fr; }
  .q { width: 280px; }
  .places__grid { grid-template-columns: 1fr; }
  .place dl div { grid-template-columns: 1fr; gap: .2rem; }
  .final__panel { min-height: 640px; }
  .final__media img { object-position: 52% 30%; }
  .final__media::after { background: linear-gradient(0deg, var(--deep) 5%, rgba(35,31,31,.4) 50%, transparent 75%); }
  .final__card { margin: .8rem; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
  .bubble { width: 220px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .qtrack { animation: none; }
  .paths__grow { -webkit-mask-image: none; mask-image: none; position: relative; height: 70svh; }
  .story { height: auto; }
  .story__sticky { position: relative; }
  .story__slide, .story__aside { position: relative; opacity: 1; margin-bottom: 1rem; }
  .story__slides, .story__asides { height: auto; }
  .step { opacity: 1; transform: none; }
}


/* ==========================================================
   Rodada 7
   ========================================================== */

/* foto HD da hero (mais aberta que a anterior): escala recalculada para o rosto ficar grande */
.hero__img { width: 160vw; left: -26.2vw; top: -28.7vw; -webkit-mask-image: none; mask-image: none; }

/* botões: degradê sutil, sem brilho passando; no hover crescem um pouco e ganham um brilho por fora */
.btn::after { display: none; }
.btn { transition: transform .6s var(--ease), box-shadow .6s var(--ease), background .6s var(--ease), border-color .6s var(--ease); }
.btn:hover { transform: scale(1.035); }
.btn--primary {
  background: linear-gradient(180deg, color-mix(in srgb, var(--text) 78%, var(--bg)) 0%, var(--text) 62%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 10px 24px -14px rgba(0,0,0,.45);
}
.btn--primary:hover { background: linear-gradient(180deg, color-mix(in srgb, var(--text) 78%, var(--bg)) 0%, var(--text) 62%); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 0 0 1px color-mix(in srgb, var(--rose) 35%, transparent), 0 0 26px 2px var(--glow), 0 14px 30px -14px rgba(0,0,0,.45); }
.btn--ghost {
  background: linear-gradient(180deg, rgba(255,255,255,.62) 0%, rgba(255,255,255,.24) 100%); border: 1px solid rgba(255,255,255,.95); color: var(--text);
  box-shadow: 0 8px 22px -14px rgba(0,0,0,.25);
}
.btn--ghost:hover { border-color: #fff; box-shadow: 0 0 0 1px rgba(255,255,255,.6), 0 0 26px 4px rgba(255,255,255,.55), 0 10px 24px -14px rgba(0,0,0,.25); }
[data-theme="dark"] .btn--ghost { background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.03) 100%); border-color: rgba(255,255,255,.35); }
[data-theme="dark"] .btn--ghost:hover { box-shadow: 0 0 0 1px rgba(255,255,255,.2), 0 0 26px 2px rgba(255,255,255,.12); }
.btn--light { background: linear-gradient(180deg, #FFFFFF 0%, #EFE8E6 100%); border: 1px solid rgba(255,255,255,.9); }
.btn--light:hover { box-shadow: 0 0 26px 4px rgba(255,255,255,.35), 0 12px 26px -12px rgba(0,0,0,.4); }

/* WhatsApp flutuante: canto inferior direito, alinhado aos botões da hero (posição vertical definida no JS) */
.wa-float { position: fixed; right: calc(var(--hx) * 1.03); top: auto; bottom: 2rem; z-index: 95; transform: none; }
.wa-float:hover { transform: scale(1.035); box-shadow: 0 0 26px 2px rgba(37,211,102,.25), 0 10px 30px -18px rgba(0,0,0,.25); }
.nav__right:empty { display: none; }

/* frase: fio mais afastado do texto */
.motto__text { margin-bottom: clamp(1.2rem, 2.2vw, 2.4rem); }

/* caminhos: subtítulo mais compacto, letras mais soltas, números com destaque */
.path__t { letter-spacing: -.015em; }
.path p { line-height: 1.45; letter-spacing: .012em; }
.path__n { padding: .4em .85em; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--rose) 45%, transparent); background: color-mix(in srgb, var(--surface) 55%, transparent); font-size: .66rem; }
/* a imagem que abre da estrela agora é um vídeo num painel menor */
.paths__grow { inset: clamp(4.5rem, 9vh, 6rem) var(--pad) clamp(2rem, 7vh, 4rem); border-radius: clamp(18px, 2.4vw, 30px); overflow: hidden; }
.paths__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.paths__grow::after { z-index: 0; background: linear-gradient(0deg, rgba(28,22,22,.72) 0%, rgba(28,22,22,.18) 40%, transparent 65%); }
.paths__grow-text { align-items: flex-start; text-align: left; padding: clamp(1.4rem, 3vw, 2.6rem); }
.paths__grow-text .label { margin-bottom: .7rem; }
.paths__grow-title { font-size: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }

/* procedimentos: título grande no limite da largura; lista alinhada ao início da descrição */
.procs__head { border-top: 1px solid var(--line); padding-top: 1.4rem; margin-bottom: clamp(1.6rem, 3vw, 2.6rem); }
.procs__title { font-weight: 300; text-transform: uppercase; letter-spacing: -.04em; line-height: .95; white-space: nowrap; color: var(--text); font-size: 6vw; margin: .6rem 0 0; }
.procs__title em { font-style: normal; color: var(--rose-d); }
.procs__pin { align-items: flex-start; padding-top: clamp(5.5rem, 10vh, 7rem); }
.procs__grid { align-items: start; }
.procs__pin { flex-direction: column; justify-content: center; }
.procs__pin > .wrap { width: 100%; }
.plist { -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 calc(var(--off, 0px) * .9), #000 72%, transparent); mask-image: linear-gradient(180deg, transparent 0, #000 calc(var(--off, 0px) * .9), #000 72%, transparent); }
.pview { padding-top: var(--off, 0px); align-content: start; min-height: 0; }

@media (max-width: 720px) {
  .hero__img { width: 260vw; left: -91.7vw; top: -22vw; }
  .wa-float { right: 1rem; bottom: 1rem; top: auto !important; }
  .paths__grow { inset: auto; }
  .procs__title { white-space: normal; font-size: 11vw; }
  .pview { padding-top: 1.4rem; }
}
.lead { position: relative; }

/* ===================== Rodada 8 ===================== */
/* hero: mesmo corte do gabarito (topo da cabeça levemente cortado, até logo abaixo do ombro) */
.hero__img { width: 128.3vw; left: -10.47vw; top: -20.26vw; }

/* selo da autora: anel vazio + foto P&B; no hover as duas bolinhas trocam de lugar */
.author { gap: .65rem; font-size: .875rem; letter-spacing: .01em; }
.author__pics { width: 87px; height: 60px; }
.author__pics i, .author__pics img { width: 60px; height: 60px; border: 1.5px solid #fff; transition: left .8s var(--ease), transform .8s var(--ease), box-shadow .8s var(--ease); }
.author__pics i { left: 0; z-index: 1; }
.author__pics img { left: 27px; z-index: 2; filter: grayscale(1); }
.author__name { transition: transform .8s var(--ease); }
.hero__author:hover .author__pics i { left: 27px; transform: rotate(-90deg); }
.hero__author:hover .author__pics img { left: 0; transform: scale(1.08) rotate(-4deg); box-shadow: 0 10px 26px -10px rgba(0,0,0,.45); }
.hero__author:hover .author__name { transform: translateX(-6px); }

/* brilho que passa pela borda de todos os botões */
.btn::before, .nav__wa::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 2;
  background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%) 0 0 / 300% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: stroke-sweep 5s ease-in-out infinite;
}
.btn--ghost::before, .nav__wa::before { background-image: linear-gradient(115deg, transparent 38%, color-mix(in srgb, var(--rose) 85%, #fff) 50%, transparent 62%); }
.nav__wa:not(.wa-float) { position: relative; }
@keyframes stroke-sweep { 0%, 55% { background-position: 120% 0; } 100% { background-position: -20% 0; } }

/* WhatsApp: na linha dos botões da hero; ao rolar sobe e fica na altura do header (JS) e pulsa de leve */
.wa-float { top: 0; bottom: auto; animation: wa-pulse 2.8s ease-in-out infinite; }
.wa-float::before { animation-duration: 2.8s; }
@keyframes wa-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0), 0 10px 30px -18px rgba(0,0,0,.25); }
  50% { box-shadow: 0 0 0 5px rgba(37,211,102,.12), 0 0 26px 4px rgba(37,211,102,.28), 0 10px 30px -18px rgba(0,0,0,.25); }
}
.wa-float .nav__wa-icon { animation: wa-dot 2.8s ease-in-out infinite; }
@keyframes wa-dot { 0%, 100% { box-shadow: 0 6px 14px -6px rgba(37,211,102,.7); } 50% { box-shadow: 0 0 0 4px rgba(37,211,102,.18), 0 0 18px 3px rgba(37,211,102,.55); } }

/* caminhos: painel com respiro igual em cima e embaixo, para a estrela abrir do mesmo centro */
.paths__grow { inset: clamp(4.5rem, 9vh, 6rem) var(--pad); }
.paths__grow::after { background: rgba(28,22,22,.32); }
.paths__grow-text { align-items: center; justify-content: center; text-align: center; padding: var(--pad); }
.paths__grow-text .label { justify-content: center; }

/* procedimentos: espaço entre seções confortável; título acima do fio, fio separa título e lista */
.procs__pin { justify-content: flex-start; padding-top: clamp(5.5rem, 11vh, 7.5rem); }
.procs__head { border-top: 0; padding-top: 0; border-bottom: 1px solid var(--line); padding-bottom: clamp(1.2rem, 2.2vw, 2rem); margin-bottom: clamp(1.8rem, 3.2vw, 2.8rem); }

@media (max-width: 720px) {
  .hero__img { width: 260vw; left: -91.7vw; top: -22vw; }
  .wa-float { top: auto !important; bottom: 1rem; }
}
.paths__grow-text .label::before { content: ""; width: 44px; height: 1px; background: currentColor; opacity: .45; }

/* ===================== Rodada 9 ===================== */
/* botões da hero: escuro com contorno mais claro e sem fio duro em cima; o claro é branco sólido, como o header */
.btn--primary, .btn--primary:hover { border: 1px solid color-mix(in srgb, var(--text) 55%, #fff); }
.btn--primary { box-shadow: 0 10px 24px -14px rgba(0,0,0,.45); }
.btn--primary:hover { box-shadow: 0 0 0 1px color-mix(in srgb, var(--rose) 30%, transparent), 0 0 26px 2px var(--glow), 0 14px 30px -14px rgba(0,0,0,.45); }
.btn--ghost { background: #fff; border-color: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 0 10px 26px -16px rgba(0,0,0,.3); }
.btn--ghost:hover { background: #fff; }

/* caminhos: o vídeo roda atrás de tudo em P&B e blur; a estrela abre e revela o vídeo original */
.paths__bg { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); object-fit: cover; z-index: 0; pointer-events: none; filter: grayscale(1) blur(22px); opacity: .3; }
.paths__pin::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--bg) 55%, transparent), color-mix(in srgb, var(--bg) 25%, transparent)); }
.paths__grid { z-index: 1; }

/* big numbers no vídeo: número sobe com a rolagem, degradê e brilho passando no contorno */
.stats { list-style: none; margin: clamp(1.6rem, 3.4vw, 2.8rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); width: min(100%, 760px); }
.stat {
  position: relative; display: grid; gap: .35rem; justify-items: center; padding: clamp(1rem, 1.8vw, 1.5rem) 1rem; border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1);
}
.stat::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%) 0 0 / 300% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: stroke-sweep 5s ease-in-out infinite;
}
.stat:nth-child(2)::before { animation-delay: .6s; }
.stat:nth-child(3)::before { animation-delay: 1.2s; }
.stat__n { font-weight: 300; font-size: clamp(2rem, 1.3rem + 2.2vw, 3.4rem); line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; background: linear-gradient(180deg, #fff 30%, #E3CFCB); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat__t { font-size: .8rem; letter-spacing: .01em; color: rgba(255,255,255,.82); max-width: 20ch; }

/* procedimentos: começa mais perto do vídeo para a próxima seção aparecer antes */
.procs__pin { padding-top: 2.5rem; }

@media (max-width: 720px) {
  .paths__bg { display: none; }
  .paths__grow { inset: auto; }
  .stats { width: 100%; gap: .4rem; }
  .stat { padding: .8rem .4rem; border-radius: 14px; }
  .stat__n { font-size: 1.5rem; }
  .stat__t { font-size: .66rem; }
}

/* ===================== Rodada 10 ===================== */
/* rótulo do vídeo como etiqueta (sem estrela e sem traços) */
.tag-pill { display: inline-flex; align-items: center; margin: 0 0 1rem; padding: .45em 1.1em; border-radius: 999px; font-size: .74rem; letter-spacing: .04em; color: #fff; border: 1px solid rgba(255,255,255,.4); background: rgba(255,255,255,.08); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }

/* big numbers: sem cards, só fios separando (como a barra do Sobre); número em destaque com degradê */
.stats { width: min(100%, 860px); gap: 0; margin-top: clamp(1.8rem, 3.6vw, 3rem); border-top: 1px solid rgba(255,255,255,.22); }
.stat { background: none; border: 0; border-radius: 0; backdrop-filter: none; -webkit-backdrop-filter: none; padding: clamp(1.2rem, 2.2vw, 1.8rem) clamp(.8rem, 2vw, 2rem) 0; gap: .5rem; }
.stat + .stat { border-left: 1px solid rgba(255,255,255,.22); }
.stat::before { content: none; }
.stat__n { font-weight: 500; font-size: clamp(2.6rem, 1.6rem + 3vw, 4.6rem); letter-spacing: -.045em; background: linear-gradient(176deg, #fff 50%, #EAD6D2 85%, #C9A9A4); -webkit-background-clip: text; background-clip: text; }
.stat__t { font-size: clamp(.84rem, .78rem + .2vw, .98rem); font-weight: 400; color: #fff; text-align: center; max-width: 22ch; line-height: 1.35; }

/* chamada para rolar até os procedimentos */
.scroll-cue { display: inline-flex; flex-direction: column; align-items: center; gap: .7rem; margin-top: clamp(1.8rem, 3.4vw, 2.8rem); color: rgba(255,255,255,.85); text-decoration: none; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 1px; height: 38px; background: rgba(255,255,255,.28); overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: #fff; animation: cue-drop 1.8s var(--ease) infinite; }
.scroll-cue:hover { color: #fff; }
@keyframes cue-drop { to { top: 100%; } }

@media (max-width: 720px) {
  .stat { padding: 1rem .4rem 0; }
  .stat__n { font-size: 1.9rem; }
  .stat__t { font-size: .72rem; }
  .scroll-cue { font-size: .64rem; }
}

/* ===================== Rodada 11 ===================== */
/* resultados reais: fotos já alinhadas em par, sem zoom; 4 casos lado a lado */
.ba--real .ba__frame img { transform: none; object-fit: cover; }
.results__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .results__grid { grid-template-columns: 1fr; } }

/* ===================== Rodada 12 ===================== */
/* respiro entre seções mais curto */
:root { --sec: clamp(3.5rem, 6vw, 5.5rem); }
.procs__pin { min-height: 0; padding-bottom: 1rem; }
.results { padding-top: clamp(2rem, 4vw, 3.5rem); }

/* resultados: carrossel (3 por vez e um pedaço do próximo) */
.results__track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: .4rem; }
.results__track::-webkit-scrollbar { display: none; }
.results__track .ba { flex: 0 0 calc((100% - 2.4rem) / 3.15); scroll-snap-align: start; }
.results__side { display: grid; gap: 1.2rem; justify-items: start; }
.results__nav { display: flex; gap: .5rem; }
.results__btn { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 1px solid var(--line); color: var(--text); cursor: pointer; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.results__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.results__btn:hover { transform: scale(1.06); box-shadow: 0 0 22px 2px var(--glow); }
.ba figcaption span:empty { display: none; }

/* mapa facial: rosto em vídeo de ponta a ponta; gira até a região escolhida */
.fx { position: relative; height: 100svh; min-height: 640px; overflow: hidden; background: var(--bg); color: var(--text); isolation: isolate; }
.fx__stage { position: absolute; left: 50%; top: 50%; width: max(100%, calc(100svh * 16 / 9)); aspect-ratio: 16 / 9; transform: translate(-50%, -50%); z-index: 0; }
.fx__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.fx__spot { z-index: 2; }
.fx__spot.is-hidden { visibility: hidden; pointer-events: none; }
.fx .spot i { background: #fff; box-shadow: 0 0 0 1px rgba(42,38,38,.12), 0 2px 10px rgba(42,38,38,.25); animation: none; }
.fx .spot i::after { border-color: color-mix(in srgb, var(--rose-d) 55%, transparent); animation: fx-ring 2.4s ease-out infinite; }
.fx .spot:hover i, .fx .spot.is-active i { background: var(--rose-d); transform: scale(1.35); }
@keyframes fx-ring { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.8); opacity: 0; } }
.fx__line { position: absolute; left: 0; right: 0; height: 1px; background: var(--line); z-index: 1; transform-origin: left; pointer-events: none; }
.fx__line--a { top: 41.5%; }
.fx__line--b { top: 65.7%; }
.fx__diag { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.fx__diag line { stroke: var(--line); stroke-width: 1; }
.fx__ui { position: absolute; inset: 0; z-index: 3; pointer-events: none; display: grid; grid-template-columns: 1fr auto; grid-template-rows: 1fr auto; padding-block: clamp(5.5rem, 12vh, 8rem) clamp(2.5rem, 8vh, 5rem); }
.fx__ui > * { pointer-events: auto; }
.fx__head { align-self: start; max-width: 440px; }
.fx__head .label { white-space: nowrap; }
.fx__head .h2 { margin: 0; }
.fx__card { grid-column: 2; grid-row: 2; align-self: end; justify-self: end; width: min(380px, 100%); }
.fx__hint { margin: 0; font-size: .95rem; line-height: 1.5; color: var(--text); font-weight: 400; max-width: 30ch; }
.fx__info { display: grid; gap: .55rem; padding: 1.4rem 1.5rem; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 20px 50px -30px rgba(42,38,38,.45); }
.fx__info[hidden] { display: none; }
.fx__region { margin: 0; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.fx__region b { color: var(--text); font-weight: 500; }
.fx__t { margin: 0; font-size: 1.35rem; font-weight: 300; letter-spacing: -.02em; color: var(--text); }
.fx__d { margin: 0; font-size: .88rem; line-height: 1.5; color: var(--muted); font-weight: 300; }
.fx__actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .4rem; }
.fx__actions .link-arrow { font-size: .8rem; }
.fx__back { font: inherit; font-size: .78rem; color: var(--muted); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.fx__back:hover { color: var(--text); }
/* indicador do ângulo, como os traços verticais da referência */
.fx__views { position: absolute; right: var(--pad); top: 50%; transform: translateY(-50%); display: grid; gap: .55rem; }
.fx__views button { width: 26px; height: 34px; display: grid; place-items: center; background: none; border: 0; padding: 0; cursor: pointer; }
.fx__views i { width: 2px; height: 100%; border-radius: 2px; background: color-mix(in srgb, var(--text) 22%, transparent); transition: background .4s, transform .4s var(--ease); }
.fx__views button.is-on i { background: var(--text); transform: scaleY(1.15); }
.fx__note { position: absolute; left: var(--pad); bottom: 1.2rem; margin: 0; z-index: 3; font-size: .7rem; color: var(--muted); }
/* no escuro a seção continua clara, para o fundo do vídeo sumir no papel */
[data-theme="dark"] .fx { background: #F4F0EE; --text: #2A2626; --muted: #6E6464; --line: rgba(42,38,38,.12); }

@media (max-width: 720px) {
  .results__track .ba { flex-basis: 84%; }
  .fx { height: 92svh; min-height: 560px; }
  .fx__stage { width: max(100%, calc(92svh * 16 / 9)); }
  .fx__ui { grid-template-columns: 1fr; padding-block: 5rem 1.2rem; }
  .fx__card { grid-column: 1; justify-self: stretch; width: 100%; }
  .fx__hint { background: rgba(255,255,255,.7); padding: .9rem 1rem; border-radius: 14px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: .85rem; }
  .fx__views { right: .5rem; }
  .fx__note { display: none; }
}
/* mapa facial no celular: título em cima, rosto no meio, explicação embaixo */
@media (max-width: 720px) {
  .fx { height: auto; min-height: 0; display: flex; flex-direction: column; padding: 5rem 0 2rem; }
  .fx__ui { display: contents; }
  .fx__head { order: 1; padding-inline: var(--pad); max-width: none; margin-bottom: .5rem; position: relative; z-index: 3; }
  .fx__stage { order: 2; position: relative; left: 50%; top: auto; width: 250vw; transform: translateX(-50%); }
  .fx__card { order: 3; padding-inline: var(--pad); margin-top: -1.5rem; position: relative; z-index: 3; }
  .fx__views { top: 58%; }
}

/* ===================== Rodada 13 ===================== */
/* caminhos: painel do vídeo mais alto (respiro só para o header em cima); estrela e cruz descem junto com o centro do painel */
@media (min-width: 721px) {
  .paths__grow { inset: 4.6rem var(--pad) 1rem; }
  .paths__star, .paths__glow { top: calc(50% + 1.8rem); }
  .paths__h { top: calc(50% + 1.8rem); }
  .paths__grid { top: 3.6rem; }
  .paths__grow-text { justify-content: flex-end; padding-bottom: clamp(2rem, 5vh, 3.5rem); }
}
/* números: sem corte no último algarismo e com mais destaque (degradê rosado como na Ouder) */
.stat__n { padding: 0 .08em .06em; letter-spacing: -.03em; background: linear-gradient(172deg, #fff 38%, #F0D9D4 68%, #CFA49C 100%); -webkit-background-clip: text; background-clip: text; filter: drop-shadow(0 6px 24px rgba(0,0,0,.18)); }
/* resultados num tom próprio (taupe rosado claro), para marcar a virada da página */
.results { background: #EEE5E1; padding-block: clamp(3.5rem, 6vw, 5.5rem); margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.results .section-head { border-top-color: rgba(42,38,38,.12); }
.results__btn { background: rgba(255,255,255,.7); }
[data-theme="dark"] .results { background: #221E1E; }
/* mapa facial: fios atrás do rosto (o vídeo multiplica por cima), camada de zoom e pontos em vidro */
.fx__line, .fx__diag { z-index: 0; }
.fx__line { background: rgba(42,38,38,.09); }
.fx__diag line { stroke: rgba(42,38,38,.09); }
.fx__stage { z-index: 1; }
.fx__zoom { position: absolute; inset: 0; --z: 1; will-change: transform; }
.fx__spot { scale: calc(1 / var(--z, 1)); }
.fx .spot i { width: 18px; height: 18px; background: rgba(255,255,255,.22); border: 1.5px solid #fff; backdrop-filter: blur(6px) saturate(1.3); -webkit-backdrop-filter: blur(6px) saturate(1.3); box-shadow: 0 2px 12px rgba(42,38,38,.22); }
.fx .spot i::after { width: 30px; height: 30px; margin: -15px 0 0 -15px; border: 1.5px solid #fff; animation: fx-ring 2.2s ease-out infinite; }
.fx .spot:hover i, .fx .spot.is-active i { background: rgba(255,255,255,.55); transform: scale(1.25); }
.fx__head { max-width: 360px; }
.stat__n { white-space: nowrap; }
.results__track .ba { flex: 1 0 calc((100% - 2rem) / 3); }
.results__nav[hidden] { display: none; }
@media (max-width: 720px) { .results__track .ba { flex: 0 0 84%; } }
/* véu suave atrás do título, para ele seguir legível quando o rosto aproxima */
.fx__head { position: relative; }

/* ===================== Rodada 14 ===================== */
/* resultados: sem o fio do cabeçalho e com margem menor */
.results { margin-top: 0; padding-top: clamp(2.5rem, 4.5vw, 4rem); }
.results .section-head { border-top: 0; padding-top: 0; }
/* frase da segunda dobra centralizada na coluna da direita */
@media (min-width: 721px) {
  .motto__sub { justify-content: center; text-align: center; padding-inline: 2rem !important; }
}
/* caminhos: descrições em duas linhas, sem palavra sozinha */
.path p { max-width: 36ch; text-wrap: balance; }
/* mapa facial: vídeo nítido mesmo no zoom */
.fx__video { image-rendering: auto; transform: translateZ(0); }

/* ===================== Rodada 15 ===================== */
/* hero: botões mais próximos; "Ver procedimentos" em vidro, como o header e o WhatsApp, com o brilho */
.hero__actions { gap: .8rem; }
.btn--ghost, .btn--ghost:hover { background: var(--glass); border: 1px solid var(--glass-border); color: var(--text); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); }
.btn--ghost { box-shadow: 0 10px 30px -18px rgba(0,0,0,.25); }
.btn--ghost:hover { box-shadow: 0 0 0 1px rgba(255,255,255,.5), 0 0 26px 3px rgba(255,255,255,.35), 0 10px 30px -18px rgba(0,0,0,.25); }
[data-theme="dark"] .btn--ghost, [data-theme="dark"] .btn--ghost:hover { background: var(--glass); border-color: var(--glass-border); }
.btn--ghost::before { background-image: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%); }
.btn__spark { width: 12px; height: 12px; fill: var(--rose-d); flex: none; transition: transform .6s var(--ease); }
.btn--ghost:hover .btn__spark { transform: rotate(90deg) scale(1.15); }

/* procedimentos: mais ar entre os itens; o ativo no meio da lista, alinhado ao centro da descrição */
@media (min-width: 721px) {
  .pitem { padding-block: .28em; }
  .plist { height: clamp(360px, 52svh, 500px); -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 24%, #000 76%, transparent); mask-image: linear-gradient(180deg, transparent 0, #000 24%, #000 76%, transparent); }
  .procs__grid { align-items: stretch; }
  .pview { padding-top: 0; align-content: center; min-height: 0; }
}

/* como funciona: trilho horizontal com textos maiores, fecha no agendamento */
.steps__pin { display: flex; flex-direction: column; justify-content: center; padding-block: 5.5rem 3rem; overflow: hidden; }
.steps__head { border-top: 0; padding-top: 0; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.steps__rail { position: relative; padding-left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))); }
.steps__line { left: 0; right: 0; top: 0; }
.steps__track { list-style: none; margin: 0; padding: 0 0 0 0; display: flex; gap: clamp(2rem, 5vw, 5rem); width: max-content; will-change: transform; }
.step { width: clamp(300px, 30vw, 460px); padding-top: 2.6rem; gap: .8rem; }
.step::before { content: ""; position: absolute; left: 0; top: -6px; width: 13px; height: 13px; border-radius: 50%; background: var(--surface-2); border: 1px solid var(--line); transition: background .6s, box-shadow .6s, transform .6s var(--ease); }
.step.is-in::before { background: var(--rose-d); border-color: var(--rose-d); box-shadow: 0 0 0 6px var(--glow); transform: scale(1.1); }
.step__n { font-size: .8rem; letter-spacing: .14em; color: var(--muted); }
.step h3 { font-size: clamp(2rem, 1.3rem + 2vw, 3.4rem); line-height: 1.02; }
.step p { font-size: clamp(1rem, .9rem + .3vw, 1.2rem); line-height: 1.5; max-width: 32ch; color: var(--body); }
.step--cta { padding-right: max(var(--pad), 8vw); }
.step--cta .btn { justify-self: start; margin-top: .8rem; }
.step--cta h3 { color: var(--rose-d); }

@media (max-width: 720px) {
  .steps__pin { padding-block: var(--sec); }
  .steps__rail { padding-inline: var(--pad); }
  .steps__line { display: none; }
  .steps__track { flex-direction: column; width: auto; gap: 2rem; border-left: 1px solid var(--line); padding-left: 1.4rem; }
  .step { width: auto; padding-top: 0; }
  .step::before { left: calc(-1.4rem - 7px); top: .3rem; }
  .step h3 { font-size: 1.9rem; }
  .step--cta { padding-right: 0; }
}
.steps__rail { width: 100%; min-width: 0; box-sizing: border-box; }

/* ===================== Rodada 16 ===================== */
/* procedimentos: itens no espaçamento de antes; fio exatamente no meio; descrição centrada no item ativo */
@media (min-width: 721px) {
  .pitem { padding-block: 0; }
  .plist { height: clamp(300px, 46svh, 430px); }
  .procs__grid { grid-template-columns: 1fr 1fr; column-gap: 0; }
  .procs__left { padding-right: clamp(1.5rem, 4vw, 4rem); }
  .pview { padding-left: clamp(2rem, 4vw, 4rem); align-self: stretch; align-content: center; }
}

/* mapa facial: cartão mais enxuto e botão claro para voltar */
.fx__card { width: min(300px, 100%); }
.fx__info { padding: 1.1rem 1.2rem 1.2rem; gap: .45rem; }
.fx__t { font-size: 1.2rem; }
.fx__d { font-size: .84rem; max-width: 24ch; }
.fx__back { justify-self: start; margin-top: .5rem; display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1rem; border-radius: 999px; background: var(--text); color: var(--bg); font-size: .76rem; font-weight: 500; text-decoration: none; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.fx__back:hover { color: var(--bg); transform: scale(1.04); box-shadow: 0 0 20px 2px var(--glow); }
.fx__note { left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))); }

/* depoimentos sem a faixa de CTA: a seção fecha com o mesmo respiro das outras */
.testi { padding-bottom: clamp(2.5rem, 4.5vw, 4rem); }

/* FAQ: título em duas linhas ("Perguntas que" / "merecem resposta.") e link sem sublinhado */
.faq__intro .h2 { max-width: none; }
.faq__intro .h2 em { display: block; }
.faq__more a { text-decoration: none; color: var(--text); border-bottom: 0; background: none; font-weight: 500; }
.faq__more a span { display: inline-block; transition: transform .4s var(--ease); }
.faq__more a:hover span { transform: translateX(4px); }
.fx__card { width: 280px; max-width: 100%; } .fx__info { width: 100%; }

/* ===================== Rodada 17 ===================== */
/* procedimentos: só um pouco mais de ar entre os itens */
@media (min-width: 721px) { .pitem { padding-block: .08em; } }

/* selo "em breve" com cadeado e brilho passando */
.soon { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: .45rem; margin-top: .6rem; padding: .42em .95em; border-radius: 999px; font-size: .68rem; letter-spacing: .04em; color: var(--rose-d); border: 1px solid color-mix(in srgb, var(--rose) 45%, transparent); background: color-mix(in srgb, var(--surface) 55%, transparent); }
.soon svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.soon::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.85), transparent); transform: skewX(-20deg); animation: soon-shine 3.2s ease-in-out infinite; }
@keyframes soon-shine { 0%, 55% { left: -60%; } 100% { left: 140%; } }

/* sobre: fundo escuro e a foto num quadro vertical entre a frase e a trajetória; troca a cada momento */
@media (min-width: 721px) {
  .story__sticky { background: radial-gradient(120% 90% at 50% 40%, #2C2422 0%, #1A1514 70%); }
  .story__media { inset: auto; left: 50%; top: calc(50% - 48px); width: clamp(260px, 24vw, 400px); aspect-ratio: 3 / 4; transform: translate(-50%, -50%); border-radius: 22px; overflow: hidden; z-index: 0; box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); }
  .story__media::after { background: linear-gradient(0deg, rgba(26,21,20,.35), transparent 40%); }
  .story__media img { position: absolute; inset: 0; object-position: 50% 20%; transform-origin: 50% 40%; }
  .story__content { grid-template-columns: 1fr clamp(260px, 24vw, 400px) 1fr; column-gap: clamp(2rem, 4vw, 4rem); z-index: 1; }
  .story__slides { grid-column: 1; }
  .story__asides { grid-column: 3; justify-self: start; }
  .story__text { font-size: clamp(1.6rem, 1rem + 1.6vw, 2.5rem); }
}

/* onde atendo: bento com o espaço de Sorocaba; São Paulo logo abaixo */
.bento { display: grid; grid-template-columns: 1.15fr 1fr 1fr; grid-template-rows: auto auto; gap: 1rem; }
.bento__cell { margin: 0; border-radius: 22px; overflow: hidden; position: relative; background: var(--surface-2); }
.bento__cell img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ease); }
.bento__cell:hover img { transform: scale(1.04); }
.bento__cell--tall { grid-row: span 2; min-height: 560px; }
.bento__info { grid-column: span 2; display: grid; align-content: center; gap: 1rem; padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--surface); border: 1px solid var(--line); }
.bento__info dl { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0; }
.bento__info dt { font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: .3rem; }
.bento__info dd { margin: 0; font-size: .95rem; color: var(--text); font-weight: 300; }
.bento__lead { margin: 0; font-size: clamp(1.2rem, 1rem + .6vw, 1.6rem); font-weight: 300; letter-spacing: -.02em; line-height: 1.25; color: var(--text); max-width: 26ch; }
.place__city--solid { position: static; justify-self: start; }
.bento .place--sp { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr 2fr; gap: 1rem; align-items: stretch; }
.bento .place--sp .place__media { border-radius: 22px; overflow: hidden; min-height: 260px; }
.bento .place--sp .place__body { border-radius: 22px; border: 1px solid var(--line); background: var(--surface); padding: clamp(1.4rem, 3vw, 2.4rem); display: grid; align-content: center; gap: 1rem; }
.places { padding-bottom: var(--sec); }

@media (max-width: 900px) {
  .bento { grid-template-columns: 1fr 1fr; }
  .bento__cell--tall { grid-row: auto; grid-column: 1 / -1; min-height: 420px; }
  .bento__info { grid-column: 1 / -1; }
  .bento .place--sp { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .bento__info dl { grid-template-columns: 1fr; }
}
.place__city--solid { color: var(--text); }
.bento .place--sp { background: none; border: 0; backdrop-filter: none; -webkit-backdrop-filter: none; overflow: visible; }
.bento .place--sp:hover { transform: none; box-shadow: none; }
.bento .place--sp .place__media { aspect-ratio: auto; }

/* ===================== Rodada 18 ===================== */
/* sobre: colunas de momentos (referência colonnade). Fechadas: P&B com blur; aberta: nítida, colorida e com o texto */
.about { padding-block: var(--sec); }
.about__head { margin-bottom: clamp(1.8rem, 3.5vw, 2.8rem); }
.about__cols { display: flex; gap: .75rem; height: clamp(520px, 74svh, 760px); }
.about__col { position: relative; flex: 1 1 0; min-width: 0; padding: 0; border: 0; border-radius: 22px; overflow: hidden; cursor: pointer; text-align: left; color: #fff; background: #1E1817; font: inherit; transition: flex-grow 1s var(--ease); }
.about__col.is-open { flex-grow: 4.2; cursor: default; }
.about__img { position: absolute; inset: 0; }
.about__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; filter: grayscale(1) blur(6px) brightness(.8); transform: scale(1.12); transition: filter 1s var(--ease), transform 1.4s var(--ease); }
.about__col.is-open .about__img img { filter: none; transform: scale(1); }
.about__col::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(26,21,20,.82) 0%, rgba(26,21,20,.35) 38%, transparent 62%); pointer-events: none; }
/* rótulo da coluna fechada: número e momento na vertical */
.about__tab { position: absolute; left: 50%; bottom: 1.4rem; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: .8rem; transform: translateX(-50%); font-size: .82rem; letter-spacing: .06em; white-space: nowrap; transition: opacity .5s; }
.about__tab b { font-weight: 500; font-size: .7rem; letter-spacing: .14em; padding: .35em .7em; border-radius: 999px; border: 1px solid rgba(255,255,255,.5); }
.about__tab { writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg); }
.about__tab b { writing-mode: horizontal-tb; transform: rotate(180deg); }
.about__col.is-open .about__tab { opacity: 0; }
/* texto da coluna aberta */
.about__text { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: block; padding: clamp(1.4rem, 3vw, 2.6rem); max-width: 62ch; font-size: clamp(.95rem, .85rem + .3vw, 1.1rem); font-weight: 300; line-height: 1.55; color: rgba(255,255,255,.9); opacity: 0; transform: translateY(16px); transition: opacity .5s, transform .7s var(--ease); pointer-events: none; }
.about__col.is-open .about__text { opacity: 1; transform: none; transition-delay: .35s; }
.about__k { display: block; margin-bottom: .7rem; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.about__name { display: block; margin-bottom: .6rem; font-size: clamp(1.8rem, 1.2rem + 1.8vw, 2.8rem); font-weight: 300; letter-spacing: -.03em; line-height: 1.05; color: #fff; }
.about__meta { display: block; margin-top: 1rem; font-size: .74rem; letter-spacing: .06em; color: rgba(255,255,255,.62); }
.about__text--main { max-width: 58ch; }

@media (max-width: 720px) {
  .about__cols { flex-direction: column; height: auto; gap: .5rem; }
  .about__col { flex: none; height: 76px; transition: height 1s var(--ease); }
  .about__col.is-open { height: 78svh; }
  .about__tab, .about__tab b { writing-mode: horizontal-tb; transform: none; }
  .about__tab { flex-direction: row; left: 1.2rem; bottom: 50%; transform: translateY(50%); }
}

/* ===================== Rodada 19 ===================== */
/* sobre, mais perto da referência: colunas separadas por fios, prévias quase brancas, foto em cima e texto embaixo */
.about__cols { gap: 0; height: clamp(660px, 88svh, 900px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about__col { display: flex; flex-direction: column; gap: 1.2rem; padding: clamp(.9rem, 1.6vw, 1.4rem); border-radius: 0; background: transparent; color: var(--text); overflow: hidden; }
.about__col + .about__col { border-left: 1px solid var(--line); }
.about__col::after { content: none; }
.about__img { position: relative; inset: auto; flex: 1 1 auto; min-height: 0; overflow: hidden; border-radius: 0; }
.about__img img { position: absolute; inset: 0; filter: grayscale(1) blur(3px); opacity: .14; transform: scale(1.06); transition: filter 1s var(--ease), opacity 1s var(--ease), transform 1.4s var(--ease); }
.about__col:hover .about__img img { opacity: .24; }
.about__col.is-open .about__img img { filter: none; opacity: 1; transform: scale(1); }
/* rótulo das colunas fechadas: embaixo, na horizontal, como na referência */
.about__tab { position: static; writing-mode: horizontal-tb; transform: none; flex-direction: row; align-items: center; gap: .6rem; font-size: .9rem; letter-spacing: .02em; color: var(--text); white-space: nowrap; }
.about__tab b { writing-mode: horizontal-tb; transform: none; border-color: var(--line); color: var(--muted); }
.about__col.is-open .about__tab { display: none; }
/* texto da coluna aberta, abaixo da foto */
.about__text { position: static; flex: none; padding: 0; max-width: 62ch; color: var(--body); font-size: clamp(.95rem, .88rem + .25vw, 1.08rem); line-height: 1.6; display: none; opacity: 0; transform: translateY(10px); }
.about__col.is-open .about__text { display: block; animation: about-in .8s var(--ease) .3s both; }
@keyframes about-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.about__k { color: var(--muted); }
.about__name { color: var(--text); font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.4rem); }
.about__meta { color: var(--muted); }
.about__col.is-open .about__img { flex-basis: 56%; }

@media (max-width: 720px) {
  .about__cols { height: auto; border-bottom: 0; }
  .about__col { height: auto; padding: 1rem 0; }
  .about__col + .about__col { border-left: 0; border-top: 1px solid var(--line); }
  .about__img { flex: none; height: 0; transition: height 1s var(--ease); }
  .about__col.is-open { height: auto; }
  .about__col.is-open .about__img { height: 52svh; }
  .about__tab { left: auto; bottom: auto; transform: none; }
}

/* ===================== Rodada 20 ===================== */
/* sobre: deck de fotos da jornada (a da frente nítida; as de trás giradas, um pouco apagadas) + texto ao lado */
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.deck { display: grid; justify-items: center; gap: 1.6rem; padding-block: 2rem 0; }
.deck__stack { position: relative; width: min(400px, 78vw); aspect-ratio: 4 / 5; }
.deck__card { position: absolute; inset: 0; padding: 0; border: 0; border-radius: 22px; overflow: hidden; cursor: pointer; background: var(--surface-2); color: #fff; font: inherit; text-align: left;
  box-shadow: 0 30px 60px -36px rgba(42,38,38,.55); transition: translate .8s var(--ease), rotate .8s var(--ease), scale .8s var(--ease), filter .8s var(--ease); }
.deck__card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; display: block; }
.deck__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(26,21,20,.72) 0%, rgba(26,21,20,.2) 32%, transparent 55%); transition: opacity .6s; }
.deck__cap { position: absolute; left: 1.4rem; right: 1.4rem; bottom: 1.3rem; z-index: 1; display: grid; gap: .25rem; transition: opacity .5s; }
.deck__cap b { font-weight: 400; font-size: 1.45rem; letter-spacing: -.02em; }
.deck__cap small { font-size: .78rem; color: rgba(255,255,255,.8); }
.deck__card[data-rank="0"] { z-index: 4; }
.deck__card[data-rank="1"] { z-index: 3; translate: 11% -4%; rotate: 6deg; scale: .93; filter: saturate(.35) brightness(1.06); }
.deck__card[data-rank="2"] { z-index: 2; translate: -10% -6%; rotate: -7deg; scale: .88; filter: saturate(.25) brightness(1.1); }
.deck__card[data-rank="3"] { z-index: 1; translate: 3% -11%; rotate: 2deg; scale: .83; filter: saturate(.2) brightness(1.14); }
.deck__card:not([data-rank="0"]) .deck__cap, .deck__card:not([data-rank="0"])::after { opacity: 0; }
.deck__card[data-rank="0"]:hover { scale: 1.015; }
.deck__hint { margin: 0; font-size: .74rem; letter-spacing: .06em; color: var(--muted); }
.deck__hint .deck__n { color: var(--text); font-weight: 500; }
.about__copy .h2 { margin-bottom: 1.4rem; }
.about__body { display: grid; gap: 1rem; color: var(--body); font-weight: 300; font-size: clamp(.98rem, .9rem + .25vw, 1.1rem); line-height: 1.65; max-width: 52ch; margin-bottom: 2rem; }
.about__body p { margin: 0; }
.about__meta { font-size: .76rem; letter-spacing: .04em; color: var(--muted); }

@media (max-width: 860px) {
  .about__grid { grid-template-columns: 1fr; }
  .deck { padding-top: 3rem; }
}

/* ===================== Rodada 21 ===================== */
/* sobre: carrossel 3D. Centro nítido e colorido com borda brilhante; laterais giradas em profundidade, P&B claro com blur (como o vídeo dos caminhos) */
.deck__stack { width: min(600px, 92vw); aspect-ratio: auto; height: calc(min(600px, 92vw) * .62 * 1.25 + 2rem); perspective: 1600px; transform-style: preserve-3d; }
.deck__card { inset: auto; left: 50%; top: 1rem; width: 62%; aspect-ratio: 4 / 5; translate: -50% 0; rotate: none; scale: 1; transform-style: preserve-3d;
  transition: translate 1.2s cubic-bezier(.65,.05,.25,1), rotate 1.2s cubic-bezier(.65,.05,.25,1), scale 1.2s cubic-bezier(.65,.05,.25,1), filter 1.2s ease, opacity 1.2s ease, box-shadow 1.2s ease; }
.deck__card[data-pos="center"] { z-index: 3; filter: none; opacity: 1; box-shadow: 0 40px 80px -40px rgba(42,38,38,.55), 0 0 0 1px rgba(255,255,255,.6); }
.deck__card[data-pos="right"] { z-index: 2; translate: 4% 3%; rotate: y -28deg; scale: .8; filter: grayscale(1) blur(5px) brightness(1.45) contrast(.65); opacity: .55; box-shadow: none; }
.deck__card[data-pos="left"] { z-index: 2; translate: -104% 3%; rotate: y 28deg; scale: .8; filter: grayscale(1) blur(5px) brightness(1.45) contrast(.65); opacity: .55; box-shadow: none; }
.deck__card[data-pos="back"] { z-index: 1; translate: -50% 1%; rotate: none; scale: .62; filter: grayscale(1) blur(8px) brightness(1.5) contrast(.6); opacity: 0; box-shadow: none; pointer-events: none; }
.deck__card:not([data-pos="center"]) .deck__cap, .deck__card:not([data-pos="center"])::after { opacity: 0; }
.deck__card[data-pos="center"] .deck__cap, .deck__card[data-pos="center"]::after { opacity: 1; transition: opacity .8s ease .5s; }
.deck__card[data-pos="center"]:hover { scale: 1.015; }
.deck__card:not([data-pos="center"]):hover { opacity: .75; }
/* borda brilhante: um brilho que corre pelo contorno do card em destaque */
.deck__card::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; padding: 1.5px; pointer-events: none;
  background: linear-gradient(115deg, transparent 36%, rgba(255,255,255,.95) 50%, transparent 64%) 0 0 / 300% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: stroke-sweep 4.5s ease-in-out infinite; opacity: 0; transition: opacity .8s; }
.deck__card[data-pos="center"]::before { opacity: 1; }
.deck__card img { object-position: 50% 18%; }
.deck { padding-top: 0; }
@media (max-width: 860px) {
  .deck__card[data-pos="right"] { translate: -8% 3%; }
  .deck__card[data-pos="left"] { translate: -92% 3%; }
}

/* ===================== Rodada 22 ===================== */
/* carrossel do sobre: principal maior e sem texto; laterais mais escondidas atrás; ícone de clique no canto */
.deck__stack { width: min(620px, 94vw); height: calc(min(620px, 94vw) * .72 * 1.25 + 2rem); }
.deck__card { width: 72%; }
.deck__card[data-pos="right"] { translate: -22% 4%; rotate: y -26deg; scale: .84; }
.deck__card[data-pos="left"] { translate: -78% 4%; rotate: y 26deg; scale: .84; }
.deck__card::after { content: none; }
.deck__icon { position: absolute; top: .9rem; right: .9rem; z-index: 3; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 0; transition: opacity .6s ease .4s, transform .6s var(--ease); }
.deck__icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.deck__card[data-pos="center"] .deck__icon { opacity: 1; }
.deck__card[data-pos="center"]:hover .deck__icon { transform: rotate(180deg); }
@media (max-width: 860px) {
  .deck__card[data-pos="right"] { translate: -26% 4%; }
  .deck__card[data-pos="left"] { translate: -74% 4%; }
}

/* rodapé no estilo da F2C: marca + frase, navegação, contato; linha de baixo com direitos e crédito */
.footer { padding-top: clamp(3.5rem, 6vw, 5rem); }
.footer__grid { grid-template-columns: 1.6fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.footer__brand .monogram { font-size: 2.2rem; }
.footer__claim { font-family: var(--sans) !important; font-style: normal !important; font-weight: 400 !important; font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem) !important; letter-spacing: -.02em; color: var(--deep-text); margin: 1.4rem 0 .5rem !important; }
.footer__sub { font-family: var(--sans) !important; font-style: normal !important; font-size: .92rem !important; color: var(--deep-body) !important; margin: 0 !important; max-width: 38ch; }
.footer__h { margin: 0 0 1.2rem; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--deep-muted); }
.footer__list { gap: .8rem; font-size: 1rem; }
.footer__list a { color: var(--deep-text); transition: color .3s; }
.footer__list a:hover { color: var(--deep-rose); }
.footer__legal { margin-top: clamp(2.5rem, 5vw, 4rem); }
.footer__credit a { color: var(--deep-text); }
.footer__credit a:hover { color: var(--deep-rose); }
@media (max-width: 720px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }
.footer__brand .monogram { color: var(--deep-text); }

/* ===================== Rodada 23 ===================== */
/* carrossel do sobre: as laterais ficam sempre atrás (sem cruzar a foto principal em 3D); principal com contorno e destaque */
.deck__stack, .deck__card { transform-style: flat; }
.deck__card[data-pos="right"] { translate: -22% 4% -160px; }
.deck__card[data-pos="left"] { translate: -78% 4% -160px; }
.deck__card[data-pos="back"] { translate: -50% 1% -260px; }
.deck__card[data-pos="center"] { translate: -50% 0 0; border: 1.5px solid rgba(255,255,255,.95); box-shadow: 0 0 0 1px color-mix(in srgb, var(--rose) 35%, transparent), 0 0 34px 4px var(--glow), 0 40px 80px -40px rgba(42,38,38,.55); }
.about__body { margin-bottom: 0; }

/* onde atendo: carrossel do espaço + endereços */
.space__track { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: .4rem; }
.space__track::-webkit-scrollbar { display: none; }
.space__slide { position: relative; flex: 0 0 calc((100% - 3rem) / 3.4); aspect-ratio: 4 / 5; margin: 0; border-radius: 22px; overflow: hidden; scroll-snap-align: start; background: var(--surface-2); }
.space__slide img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform 1.2s var(--ease); }
.space__slide:hover img { transform: scale(1.04); }
.space__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(26,21,20,.6), transparent 40%); }
.space__slide figcaption { position: absolute; left: 1.2rem; bottom: 1rem; z-index: 1; display: grid; gap: .15rem; color: rgba(255,255,255,.85); font-size: .8rem; }
.space__slide figcaption b { color: #fff; font-weight: 400; font-size: 1.15rem; letter-spacing: -.02em; }
.locs { display: grid; grid-template-columns: 1fr 1fr; margin-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--line); }
.loc { display: grid; gap: 1.1rem; padding: clamp(1.4rem, 3vw, 2.2rem) 0; }
.loc + .loc { border-left: 1px solid var(--line); padding-left: clamp(1.5rem, 4vw, 3.5rem); }
.loc:first-child { padding-right: clamp(1.5rem, 4vw, 3.5rem); }
.loc__city { margin: 0; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); font-weight: 300; letter-spacing: -.03em; color: var(--text); }
.loc dl { display: grid; gap: .6rem; margin: 0; }
.loc dl div { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; }
.loc dt { font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding-top: .25rem; }
.loc dd { margin: 0; font-size: .95rem; font-weight: 300; color: var(--text); }
.loc__actions { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
@media (max-width: 720px) {
  .space__slide { flex-basis: 78%; }
  .locs { grid-template-columns: 1fr; }
  .loc + .loc { border-left: 0; border-top: 1px solid var(--line); padding-left: 0; }
}

/* rodapé delicado, na cor da página: separado por um fio e com um sobretom leve */
.footer { background: color-mix(in srgb, var(--bg) 94%, var(--rose)); color: var(--body); border-top: 1px solid var(--line); margin-top: 0; padding-top: clamp(3.5rem, 6vw, 5rem); }
.footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
.footer__brand .monogram, .footer .monogram--xl { color: var(--text); }
.footer__brand p { font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.1rem; margin-top: 1rem; color: var(--text); line-height: 1.45; }
.footer .label { color: var(--muted); margin-bottom: 1.1rem; }
.footer__list { gap: .6rem; font-size: .92rem; }
.footer__list a { color: var(--body); }
.footer__list a:hover { color: var(--rose-d); }
.footer__legal { border-top: 1px solid var(--line); color: var(--muted); align-items: center; }
.footer__credit a { color: var(--text); }
.footer__credit a:hover, .footer__top:hover { color: var(--rose-d); }
.footer__top { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem 1.1rem; border-radius: 999px; border: 1px solid var(--line); background: var(--glass); color: var(--text); font-size: .76rem; transition: transform .5s var(--ease), border-color .5s; }
.footer__top:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--rose) 50%, transparent); }
@media (max-width: 720px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }

/* ===================== Rodada 24 ===================== */
/* rodapé: mesma cor da página, com o vídeo passando em P&B e blur bem clarinho ao fundo */
.footer { position: relative; overflow: hidden; isolation: isolate; background: var(--bg); }
.footer__bg { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); object-fit: cover; z-index: -2; pointer-events: none; filter: grayscale(1) blur(22px); opacity: .22; }
.footer::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 55%, transparent) 35%, color-mix(in srgb, var(--bg) 40%, transparent) 100%); }
.loc__place { margin: -.6rem 0 0; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rose-d); }

/* como funciona: o passo final mais enxuto */
.step--cta h3 { font-size: clamp(1.6rem, 1.1rem + 1.4vw, 2.4rem); }
.step--cta p { font-size: .98rem; max-width: 26ch; }
.step--cta { width: clamp(260px, 22vw, 340px); padding-right: max(var(--pad), 4vw); }
.step--cta .btn { margin-top: .4rem; }

/* como funciona: o passo final no mesmo tamanho dos outros, com o botão logo abaixo */
.step--cta { width: clamp(300px, 30vw, 460px); padding-right: max(var(--pad), 6vw); }
.step--cta h3 { font-size: clamp(2rem, 1.3rem + 2vw, 3.4rem); }
.step--cta p { font-size: clamp(1rem, .9rem + .3vw, 1.2rem); max-width: 32ch; }

/* ===================== Rodada 25 ===================== */
/* mapa facial: linha do ponto até o card */
.fx__link { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; overflow: visible; opacity: 0; transition: opacity .4s; }
.fx__link line { stroke: #fff; stroke-width: 1.2; stroke-dasharray: 3 4; filter: drop-shadow(0 0 3px rgba(42,38,38,.35)); }
.fx__link circle { fill: #fff; filter: drop-shadow(0 0 4px rgba(42,38,38,.4)); }
/* o mapa é sempre claro: botão de voltar com cor fixa (no escuro ficava preto no preto) */
.fx__back, .fx__back:hover { background: #2A2626; color: #fff; }

/* setas dos carrosséis: quase na cor do fundo, com contorno branco (contraste nos dois temas) */
.results__btn { background: color-mix(in srgb, var(--bg) 82%, transparent); color: var(--text); border: 1px solid rgba(255,255,255,.85); box-shadow: 0 6px 18px -10px rgba(0,0,0,.35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
[data-theme="dark"] .results__btn { background: color-mix(in srgb, var(--bg) 88%, #fff); border-color: rgba(255,255,255,.6); }

/* respiro menor entre "Como funciona" e "Quem conduz o seu cuidado" */
@media (min-width: 721px) {
  .steps__pin { min-height: 0; justify-content: flex-start; padding-block: 5.5rem 1.5rem; }
}
.about { padding-top: clamp(2rem, 4vw, 3.5rem); }

/* sobre: foto principal um pouco mais alta e a Isa mais à esquerda no quadro */
.deck__card { aspect-ratio: 4 / 5.6; }
.deck__stack { height: calc(min(620px, 94vw) * .72 * 1.4 + 2rem); }
.deck__card img { object-position: 64% 18%; }

/* locais: fotos de ponta a ponta, passando sozinhas; contorno branco com brilho como nos botões */
.space { overflow: hidden; padding-block: .5rem 1rem; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.space.is-drag { cursor: grabbing; }
.space__row { display: flex; gap: 1rem; width: max-content; will-change: transform; }
.space__slide { flex: 0 0 auto; width: clamp(240px, 24vw, 380px); border: 1px solid rgba(255,255,255,.85); }
.space__slide img { pointer-events: none; -webkit-user-drag: none; }
.space__slide::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%) 0 0 / 300% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: stroke-sweep 5s ease-in-out infinite; }
.space__slide:nth-child(2n)::before { animation-delay: 1.2s; }
.space__slide:nth-child(3n)::before { animation-delay: 2.4s; }
@media (max-width: 720px) { .space__slide { width: 70vw; } }

/* ===================== Rodada 26 ===================== */
/* mapa facial: card da direita só com região, procedimento e voltar; explicação completa no espaço livre da esquerda */
.fx__d { display: none; }
.fx__card { width: 250px; }
.fx__more { grid-column: 1; grid-row: 2; align-self: end; justify-self: start; max-width: 36ch; padding: 1.3rem 1.5rem; border-radius: 20px;
  background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.9); backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1); box-shadow: 0 20px 50px -34px rgba(42,38,38,.45); margin-bottom: 1.6rem; }
.fx__more[hidden] { display: none; }
.fx__more-k { margin: 0 0 .6rem; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: #8C7572; display: flex; align-items: center; gap: .5rem; }
.fx__more-t { margin: 0; font-size: clamp(1rem, .9rem + .35vw, 1.2rem); font-weight: 300; line-height: 1.6; color: #2A2626; }
@media (max-width: 720px) {
  .fx__more { order: 4; margin: 1rem var(--pad) 0; max-width: none; }
}

/* ===================== Rodada 27 ===================== */
/* letras "comidas": a máscara das palavras animadas cortava acentos e o itálico; espaçamento um pouco mais solto */
.w { overflow: visible; padding-bottom: 0; margin-bottom: 0; }
.display, .h2, .final__title { letter-spacing: -.02em; }

/* palavras em destaque com a Instrument Serif itálica (referência Ouder), em rosado */
.hl { font-family: "Instrument Serif", var(--serif), Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: 0; font-size: 1.14em; line-height: .9;
  color: var(--rose-d); background: linear-gradient(176deg, var(--rose-d) 30%, color-mix(in srgb, var(--rose) 70%, #fff) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-right: .04em; }
.hl .w > span { padding-right: .04em; }
[data-theme="dark"] .hl { background-image: linear-gradient(176deg, #E9D6D2 30%, #C9A7A1 100%); }
.paths__grow-title .hl, .story__text .hl { background-image: linear-gradient(176deg, #fff 20%, #EADDDA 100%); }
/* "em" do mapa volta para a cor do título; só "cada região" fica em destaque */
/* nas palavras animadas, o degradê vai em cada palavra (senão o texto some atrás das camadas da animação) */
.hl .w > span { background: inherit; background-image: inherit; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
/* degradê do destaque como variável, aplicado tanto no texto direto quanto em cada palavra animada */
.hl { --hlg: linear-gradient(176deg, var(--rose-d) 30%, color-mix(in srgb, var(--rose) 70%, #fff) 100%); background-image: var(--hlg); }
[data-theme="dark"] .hl { --hlg: linear-gradient(176deg, #E9D6D2 30%, #C9A7A1 100%); }
.paths__grow-title .hl { --hlg: linear-gradient(176deg, #fff 20%, #EADDDA 100%); }
.hl .w > span { background: var(--hlg); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.hl, .hl .w > span { padding-right: 0; }

/* ===================== Rodada 28 ===================== */
/* locais: endereço + mapinha clicável ao lado + ícone do Instagram do espaço */
.loc { grid-template-columns: 1fr clamp(150px, 15vw, 220px); align-items: center; gap: clamp(1.2rem, 2.5vw, 2rem); }
.loc__info { display: grid; gap: 1rem; min-width: 0; }
.loc__place { margin: -.5rem 0 0; display: flex; align-items: center; gap: .55rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rose-d); }
.loc__ig { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--line); color: var(--text); transition: border-color .4s, color .4s, transform .4s var(--ease); }
.loc__ig svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.loc__ig circle:last-child { fill: currentColor; stroke: none; }
.loc__ig:hover { color: var(--rose-d); border-color: color-mix(in srgb, var(--rose) 50%, transparent); transform: scale(1.08); }
.loc__map { position: relative; display: block; aspect-ratio: 1; border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.85); box-shadow: 0 16px 36px -24px rgba(42,38,38,.5); background: var(--surface-2); }
.loc__map iframe { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); border: 0; pointer-events: none; filter: grayscale(.85) contrast(.95) brightness(1.04); transition: filter .6s, transform 1s var(--ease); }
.loc__map:hover iframe { filter: grayscale(0); transform: scale(1.04); }
.loc__pin { position: absolute; left: .6rem; bottom: .6rem; padding: .35rem .7rem; border-radius: 999px; font-size: .68rem; color: var(--text); background: rgba(255,255,255,.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.loc__map::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.95) 50%, transparent 62%) 0 0 / 300% 100% no-repeat;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); animation: stroke-sweep 5s ease-in-out infinite; }
[data-theme="dark"] .loc__pin { background: rgba(30,27,27,.8); color: #F4F0EF; }
@media (max-width: 560px) { .loc { grid-template-columns: 1fr; } .loc__map { aspect-ratio: 16 / 9; } }
.loc dl { gap: .9rem; } .loc dl div { grid-template-columns: 1fr; gap: .25rem; } .loc dd { max-width: 34ch; line-height: 1.5; }

/* ===================== Rodada 29 ===================== */
/* locais: cada foto marcada com a cidade; Sorocaba em rosado e São Paulo em grafite, com contorno da mesma cor */
.space__city { position: absolute; top: .9rem; left: .9rem; z-index: 3; display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border-radius: 999px;
  font-size: .72rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: #fff; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 8px 20px -10px rgba(0,0,0,.45); }
.space__city::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #fff; }
.space__slide--sorocaba { border: 1.5px solid #C9A49E; }
.space__slide--sorocaba .space__city { background: rgba(140,117,114,.88); border: 1px solid rgba(255,255,255,.6); }
.space__slide--sp { border: 1.5px solid #3A3433; }
.space__slide--sp .space__city { background: rgba(42,38,38,.86); border: 1px solid rgba(255,255,255,.45); }
[data-theme="dark"] .space__slide--sp { border-color: #8E8583; }
/* mesmas cores nos cards de endereço, para ligar foto e cidade */
.loc__city { display: flex; align-items: center; gap: .7rem; }
.loc__city::before { content: ""; width: 10px; height: 10px; border-radius: 50%; flex: none; }
.locs .loc:first-child .loc__city::before { background: #3A3433; box-shadow: 0 0 0 4px rgba(58,52,51,.12); }
.locs .loc:last-child .loc__city::before { background: #C9A49E; box-shadow: 0 0 0 4px rgba(201,164,158,.22); }
[data-theme="dark"] .locs .loc:first-child .loc__city::before { background: #8E8583; }

/* ===================== Rodada 30 ===================== */
/* mapas sempre coloridos */
.loc__map iframe, .loc__map:hover iframe { filter: none; }
/* hero: subtítulo mais longo, numa coluna confortável */
.hero__sub { max-width: 24.5em; font-size: clamp(.9rem, .5rem + .56vw, 1.18rem); line-height: 1.5; }
/* sobre: texto mais longo, com respiro entre os parágrafos */
.about__body { gap: .85rem; font-size: clamp(.95rem, .88rem + .2vw, 1.05rem); max-width: 56ch; }
.about__body p:nth-last-of-type(2) { color: var(--text); }
@media (min-width: 721px) { .hero { height: clamp(600px, 43vw, 920px); } }

/* ===================== Rodada 31 ===================== */
/* segunda dobra: as duas frases no mesmo tamanho e peso */
.motto__lead, .motto__sub { font-size: clamp(.95rem, .75rem + .4vw, 1.15rem) !important; font-weight: 300 !important; line-height: 1.4; color: var(--rose-d); }
.motto__lead strong { font-weight: 300; }
.hero__sub { text-wrap: balance; }

/* ===================== Rodada 32 ===================== */
/* como funciona: a linha fecha no passo 4; o agendamento vira um convite à parte (sem número e sem ponto na linha) */
.step--cta { padding: 1.6rem 1.8rem 1.8rem; margin-top: 1.2rem; border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-border); box-shadow: 0 24px 50px -36px rgba(42,38,38,.45); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); align-self: start; }
.step--cta::before { display: none; }
.step--cta .step__n { letter-spacing: .14em; text-transform: uppercase; color: var(--rose-d); font-size: .72rem; }
.step--cta h3 { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.2rem); color: var(--text); }
.step--cta p { font-size: clamp(.95rem, .9rem + .2vw, 1.05rem); max-width: 30ch; }
.step--cta, .step--cta.is-in { opacity: 1; }

/* crédito do rodapé com o logo do Caio */
.footer__credit { display: inline-flex; align-items: center; gap: .6rem; }
.footer__credit a { display: inline-flex; color: var(--text); opacity: .8; transition: opacity .4s, color .4s; }
.footer__credit a:hover { opacity: 1; color: var(--rose-d); }
.footer__logo { height: 19px; width: auto; display: block; }

/* ---------- depoimentos v2 (2026-11-15): cards do mesmo tamanho, "Ler completo" abre o texto, setas passam ---------- */
.qrail { overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--edge); scrollbar-width: none; -webkit-mask-image: none; mask-image: none; overscroll-behavior-x: contain; }
.qrail::-webkit-scrollbar { display: none; }
.qtrack { animation: none; width: max-content; padding: .5rem var(--edge) 1rem; }
.q { width: 360px; height: 380px; scroll-snap-align: start; }
.q__text { flex: 1 1 auto; min-height: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--lines, 7); line-clamp: var(--lines, 7); overflow: hidden; }
.q--audio .q__text { --lines: 4; }
.q__more { align-self: flex-start; margin-top: -.3rem; padding: 0; background: none; border: 0; font: inherit; font-size: .74rem; letter-spacing: .02em; color: var(--rose-d); cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; transition: gap .4s var(--ease), color .4s; }
.q__more::after { content: "→"; font-size: .9em; }
.q__more:hover { gap: .65rem; color: var(--text); }
.q__more[hidden] { display: none; }
.results__btn:disabled { opacity: .35; cursor: default; transform: none; box-shadow: none; }
@media (max-width: 720px) { .q { width: min(82vw, 330px); height: 360px; } }

.qdlg { width: min(560px, calc(100vw - 2rem)); max-height: min(80svh, 720px); padding: 0; border: 1px solid rgba(255,255,255,.85); border-radius: 26px; background: color-mix(in srgb, var(--bg) 92%, transparent); color: var(--text); box-shadow: 0 30px 80px -30px rgba(40,25,25,.45); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); overflow: hidden; }
.qdlg::backdrop { background: rgba(35,28,28,.35); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.qdlg[open] { animation: qdlgIn .5s var(--ease); }
@keyframes qdlgIn { from { opacity: 0; transform: translateY(14px) scale(.98); } }
.qdlg__box { position: relative; display: grid; gap: 1rem; padding: clamp(1.6rem, 4vw, 2.4rem); max-height: inherit; overflow-y: auto; }
.qdlg__close { position: absolute; top: 1rem; right: 1rem; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg); color: var(--muted); font-size: 1.3rem; line-height: 1; cursor: pointer; transition: color .4s, border-color .4s; }
.qdlg__close:hover { color: var(--text); border-color: var(--rose); }
.qdlg__title { font-size: 1.2rem; font-weight: 400; line-height: 1.35; letter-spacing: -.01em; padding-right: 2.5rem; }
.qdlg__text { font-size: .92rem; font-weight: 300; line-height: 1.65; color: var(--muted); }
.qdlg__who { margin-top: .4rem; }
[data-theme="dark"] .qdlg { border-color: rgba(255,255,255,.25); }

/* depoimentos: sem avatar, nome e legenda juntos */
.q__who { gap: 0; }
.q__who > div { display: grid; gap: .15rem; }
.q__who strong, .q__who small { line-height: 1.3; }

/* loader com o logo por extenso: letras surgem uma a uma, fio desenha embaixo */
.loader { gap: 1.1rem; }
.loader__logo { width: min(78vw, 440px); height: auto; fill: var(--deep-text); overflow: visible; }
.loader__logo path { opacity: 0; }
.loader__rule { display: block; width: min(78vw, 440px); height: 1px; background: var(--deep-rose); transform: scaleX(0); transform-origin: left center; opacity: .7; }
.loader__line { margin-top: .2rem; }

/* rodapé: selo redondo no lugar do monograma */
.footer__seal { display: block; width: 76px; height: 76px; }
