/* =====================================================================
   Amanda Cândido · Centro de Estética
   Folha de estilo compartilhada (home + páginas de procedimentos)
   ===================================================================== */

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:90px; -webkit-text-size-adjust:100%; }
body{ overflow-x:hidden; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
button{ font:inherit; color:inherit; border:0; background:none; cursor:pointer; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:4px; }

/* ---------- Tokens ---------- */
:root{
  --cream:#F7F2EB;
  --ivory:#FCFAF6;
  --sand:#EADFCF;
  --sand-2:#E1D3BF;
  --nude:#D8C3AE;
  --gold:#C4A265;
  --gold-2:#A98544;
  --gold-light:#E3CFA5;
  --gold-pale:#F1E6CF;
  --ink:#2A2521;
  --ink-2:#463D36;
  --muted:#7D7168;
  --line:rgba(196,162,101,.28);

  --font-display:'Cormorant Garamond', 'Times New Roman', serif;
  --font-script:'Allison', 'Brush Script MT', cursive;
  --font-body:'Jost', 'Futura', 'Century Gothic', sans-serif;

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);

  --header-h:72px;
  --radius:28px;
  --radius-sm:18px;
  --shadow:0 34px 60px -38px rgba(42,37,33,.38);
  --wrap:1180px;
}

body{
  font-family:var(--font-body);
  font-weight:300;
  font-size:1rem;
  line-height:1.7;
  color:var(--ink-2);
  background:var(--cream);
  text-align:center;
}

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 22px; }
.wrap-narrow{ max-width:760px; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; line-height:1.12; color:var(--ink); letter-spacing:-.005em; }
h1{ font-size:clamp(2.9rem, 12vw, 4rem); }
h2{ font-size:clamp(2rem, 6.4vw, 3rem); }
h3{ font-size:1.55rem; }
h2 em, h1 em{ font-style:italic; font-weight:500; color:var(--gold-2); }
p{ max-width:62ch; margin-left:auto; margin-right:auto; }
strong{ font-weight:500; color:var(--ink); }

.script{
  font-family:var(--font-script);
  font-weight:400;
  font-style:normal;
  color:var(--gold-2);
  font-size:1.55em;
  line-height:.9;
  letter-spacing:.01em;
}

.kicker{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  font-size:.7rem; font-weight:500; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold-2);
}
.kicker::before,.kicker::after{ content:''; width:26px; height:1px; background:var(--gold); opacity:.7; }

.lead{ font-size:1.05rem; color:var(--muted); margin-top:18px; }
.section{ position:relative; padding:84px 0; }
.section-head{ margin-bottom:46px; }
.section-head h2{ margin-top:16px; }
.section-head .lead{ max-width:56ch; }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:54px; padding:0 30px;
  border-radius:999px;
  font-family:var(--font-body); font-weight:500; font-size:.78rem;
  letter-spacing:.14em; text-transform:uppercase;
  transition:transform .28s var(--ease-out), box-shadow .28s var(--ease-out), background-color .28s ease, color .28s ease, border-color .28s ease;
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn:active{ transform:scale(.97); }
.btn-primary{
  background:linear-gradient(135deg, var(--gold-light) 0%, var(--gold) 48%, var(--gold-2) 100%);
  color:#fff;
  box-shadow:0 14px 30px -10px rgba(169,133,68,.55);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 20px 36px -12px rgba(169,133,68,.65); }
.btn-ghost{
  background:transparent; color:var(--ink);
  border:1px solid rgba(42,37,33,.28);
}
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold-2); transform:translateY(-2px); }
.btn-dark{ background:var(--ink); color:var(--gold-light); }
.btn-dark:hover{ background:#1c1815; transform:translateY(-2px); }
.btn-light{ background:var(--ivory); color:var(--ink); }
.btn-light:hover{ background:#fff; transform:translateY(-2px); }
.btn-block{ width:100%; }
@media (hover:none){ .btn:hover{ transform:none; } }

/* ---------- Header ---------- */
.header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--header-h);
  transition:background-color .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
}
.header.scrolled{
  background:rgba(247,242,235,.86);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line);
}
.header-inner{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.brand img{ height:34px; width:auto; }
.nav{ display:none; align-items:center; gap:34px; }
.nav a{
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; font-weight:400; color:var(--ink);
  position:relative; padding:6px 0;
}
.nav a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease-out);
}
.nav a:hover::after{ transform:scaleX(1); }
.header .btn{ min-height:44px; padding:0 20px; font-size:.7rem; }
.header-cta{ display:none; }
.burger{
  width:44px; height:44px; display:inline-flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  border-radius:50%; border:1px solid var(--line);
  transition:background-color .2s ease;
}
.burger span{ display:block; width:18px; height:1.5px; background:var(--ink); transition:transform .3s var(--ease-out), opacity .2s ease; }
.burger.open span:nth-child(1){ transform:translateY(3.75px) rotate(45deg); }
.burger.open span:nth-child(2){ transform:translateY(-3.75px) rotate(-45deg); }

.drawer{
  position:fixed; inset:0; z-index:90;
  background:rgba(247,242,235,.97);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  padding:100px 24px 40px;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .35s var(--ease-out), transform .35s var(--ease-out), visibility .35s;
}
.drawer.open{ opacity:1; visibility:visible; transform:none; }
.drawer a:not(.btn){ font-family:var(--font-display); font-size:1.9rem; color:var(--ink); line-height:1.1; }
.drawer a:not(.btn) small{ display:block; font-family:var(--font-body); font-size:.62rem; letter-spacing:.3em; color:var(--gold-2); margin-bottom:2px; }
.drawer .btn{ margin-top:18px; }
.drawer .drawer-lotus{ width:44px; opacity:.85; margin-bottom:6px; }

@media (min-width:1024px){
  :root{ --header-h:86px; }
  .brand img{ height:42px; }
  .nav{ display:flex; }
  .header-cta{ display:inline-flex; }
  .burger{ display:none; }
}

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay:var(--d,0s); }
.reveal.in{ opacity:1; transform:none; }
.reveal-zoom{ opacity:0; transform:scale(.94); transition:opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); transition-delay:var(--d,0s); }
.reveal-zoom.in{ opacity:1; transform:none; }
.reveal-clip{ clip-path:inset(0 0 100% 0); transition:clip-path 1.1s var(--ease-in-out); transition-delay:var(--d,0s); }
.reveal-clip.in{ clip-path:inset(0 0 0 0); }

/* =====================================================================
   HERO
   ===================================================================== */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--cream);
  padding-top:calc(var(--header-h) + 22px);
  display:flex; flex-direction:column;
  min-height:100svh;
}
.hero-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.hero-bg .blob{
  position:absolute; border-radius:50%;
  filter:blur(58px); opacity:.85; mix-blend-mode:multiply;
  will-change:transform;
}
.blob-1{ width:62vmax; height:62vmax; left:-24vmax; top:-14vmax; background:radial-gradient(circle, #EBD9BC 0%, rgba(235,217,188,0) 68%); animation:drift1 24s ease-in-out infinite alternate; }
.blob-2{ width:56vmax; height:56vmax; right:-22vmax; top:14vmax; background:radial-gradient(circle, #E4CDB6 0%, rgba(228,205,182,0) 68%); animation:drift2 28s ease-in-out infinite alternate; }
.blob-3{ width:48vmax; height:48vmax; left:14vmax; bottom:-24vmax; background:radial-gradient(circle, #DEC79F 0%, rgba(222,199,159,0) 68%); animation:drift3 32s ease-in-out infinite alternate; }
@keyframes drift1{ to{ transform:translate(14vmax, 10vmax) scale(1.12); } }
@keyframes drift2{ to{ transform:translate(-12vmax, 12vmax) scale(1.08); } }
@keyframes drift3{ to{ transform:translate(10vmax, -14vmax) scale(1.15); } }

.hero-bg .ring{
  position:absolute; left:50%; top:52%; border-radius:50%;
  border:1px solid rgba(196,162,101,.28);
  transform:translate(-50%,-50%);
}
.ring-1{ width:128vmin; height:128vmin; animation:breathe 16s ease-in-out infinite; }
.ring-2{ width:96vmin; height:96vmin; border-style:dashed; border-color:rgba(196,162,101,.32); animation:spinSlow 110s linear infinite; }
.ring-3{ width:64vmin; height:64vmin; border-color:rgba(196,162,101,.18); animation:breathe 12s ease-in-out infinite reverse; }
@keyframes breathe{ 0%,100%{ transform:translate(-50%,-50%) scale(1); } 50%{ transform:translate(-50%,-50%) scale(1.06); } }
@keyframes spinSlow{ to{ transform:translate(-50%,-50%) rotate(360deg); } }

.hero-bg .sweep{
  position:absolute; left:50%; top:52%; width:140vmin; height:140vmin;
  transform:translate(-50%,-50%);
  background:conic-gradient(from 0deg, transparent 0 68%, rgba(196,162,101,.55) 84%, transparent 100%);
  -webkit-mask:radial-gradient(circle, transparent 45.4%, #000 45.7%, #000 46.2%, transparent 46.5%);
  mask:radial-gradient(circle, transparent 45.4%, #000 45.7%, #000 46.2%, transparent 46.5%);
  animation:spinSlow 46s linear infinite;
  opacity:.9;
}
.hero-bg .grain{
  position:absolute; inset:-50%; width:200%; height:200%;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.07; mix-blend-mode:multiply;
  animation:grainShift 1.4s steps(3) infinite;
}
@keyframes grainShift{ 0%{ transform:translate(0,0); } 33%{ transform:translate(-2%,1%); } 66%{ transform:translate(1%,-2%); } 100%{ transform:translate(0,0); } }

.particles span{
  position:absolute; left:var(--x); bottom:-8px;
  width:var(--s,4px); height:var(--s,4px); border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 10px 2px rgba(196,162,101,.45);
  opacity:0;
  animation:rise var(--t,14s) linear infinite;
  animation-delay:var(--d,0s);
}
@keyframes rise{
  0%{ transform:translate(0,0) scale(.6); opacity:0; }
  10%{ opacity:.85; }
  70%{ opacity:.5; }
  100%{ transform:translate(var(--dx,20px), -105vh) scale(1.1); opacity:0; }
}

.hero-inner{ position:relative; z-index:2; display:flex; flex-direction:column; flex:1; }
.hero-copy{ padding:8px 0 0; }
.hero-copy .kicker{ margin-bottom:22px; }
.hero-title{ color:var(--ink); }
.hero-title .script{ display:block; margin-top:4px; font-size:clamp(3.4rem, 15.4vw, 5.4rem); line-height:1; white-space:nowrap; }
.hero-sub{ margin-top:22px; font-size:1.02rem; color:var(--muted); max-width:40ch; }
.hero-sub strong{ color:var(--ink); font-weight:500; }
.hero-ctas{ display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:30px; }
.hero-ctas .btn{ width:min(100%, 340px); }
.hero-proof{
  display:inline-flex; align-items:center; gap:10px; margin-top:26px;
  padding:10px 18px; border-radius:999px;
  background:rgba(255,255,255,.55); border:1px solid rgba(196,162,101,.28);
  font-size:.78rem; letter-spacing:.04em; color:var(--ink-2);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.hero-proof .stars{ display:inline-flex; gap:2px; color:var(--gold); }
.hero-proof .stars svg{ width:13px; height:13px; fill:currentColor; }
.hero-proof b{ font-weight:500; color:var(--ink); }

.hero-figure{
  position:relative; margin:26px auto 0; width:min(100%, 520px);
  flex:1; display:flex; align-items:flex-end; justify-content:center;
}
.hero-arch{
  position:absolute; left:50%; bottom:-6%; z-index:0;
  width:min(128%, 560px); height:112%;
  transform:translateX(-50%);
  overflow:hidden; border-radius:999px 999px 0 0;
  background:linear-gradient(170deg, #F6ECDA 0%, #E8D5B4 42%, #D2B486 100%);
  -webkit-mask-image:linear-gradient(to bottom, #000 62%, transparent 96%);
  mask-image:linear-gradient(to bottom, #000 62%, transparent 96%);
}
.hero-arch .aurora{
  position:absolute; left:50%; top:50%; width:180%; aspect-ratio:1; border-radius:50%;
  transform:translate(-50%,-50%);
  background:conic-gradient(from 0deg, rgba(255,255,255,0) 0deg, rgba(255,255,255,.75) 60deg, rgba(255,255,255,0) 120deg, rgba(169,133,68,.35) 190deg, rgba(255,255,255,0) 250deg, rgba(255,251,240,.6) 310deg, rgba(255,255,255,0) 360deg);
  filter:blur(34px); opacity:.9; mix-blend-mode:soft-light;
  animation:auroraSpin 34s linear infinite;
}
@keyframes auroraSpin{ to{ transform:translate(-50%,-50%) rotate(360deg); } }
.hero-arch .glow{ position:absolute; border-radius:50%; filter:blur(30px); }
.hero-arch .g1{ width:80%; aspect-ratio:1; left:-30%; top:2%; background:radial-gradient(circle, rgba(255,255,255,.98), rgba(255,255,255,0) 70%); animation:archGlow1 12s ease-in-out infinite alternate; }
.hero-arch .g2{ width:90%; aspect-ratio:1; right:-40%; bottom:0; background:radial-gradient(circle, rgba(169,133,68,.65), rgba(169,133,68,0) 70%); animation:archGlow2 15s ease-in-out infinite alternate; }
.hero-arch .g3{ width:60%; aspect-ratio:1; left:20%; top:-10%; background:radial-gradient(circle, rgba(255,246,226,.9), rgba(255,246,226,0) 70%); animation:archGlow3 9s ease-in-out infinite alternate; }
@keyframes archGlow1{ to{ transform:translate(40%, 50%) scale(1.2); } }
@keyframes archGlow2{ to{ transform:translate(-40%, -45%) scale(.9); } }
@keyframes archGlow3{ 0%{ opacity:.55; transform:scale(.9); } 100%{ opacity:1; transform:scale(1.15) translateY(12%); } }
.hero-arch .arc{
  position:absolute; left:50%; top:0; border-radius:50%; border:1px solid rgba(255,255,255,.55);
  transform:translateX(-50%);
}
.hero-arch .a1{ width:86%; aspect-ratio:1; top:5%; animation:arcBreathe 10s ease-in-out infinite; }
.hero-arch .a2{ width:104%; aspect-ratio:1; top:-2%; border-color:rgba(169,133,68,.35); border-style:dashed; animation:arcSpin 90s linear infinite; }
.hero-arch .a3{ width:68%; aspect-ratio:1; top:14%; border-color:rgba(255,255,255,.35); animation:arcBreathe 14s ease-in-out infinite reverse; }
@keyframes arcBreathe{ 0%,100%{ transform:translateX(-50%) scale(1); } 50%{ transform:translateX(-50%) scale(1.05); } }
@keyframes arcSpin{ to{ transform:translateX(-50%) rotate(360deg); } }
.ribbons{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.ribbons path{ fill:none; stroke-linecap:round; }
.ribbons .band-path{ stroke:url(#rg1); stroke-width:78; opacity:.75; filter:url(#soft); }
.ribbons .band-path.gold{ stroke:url(#rg3); stroke-width:46; opacity:.55; }
.ribbons .band-path.thin{ stroke-width:22; opacity:.5; }
.ribbons .glint{ stroke:#fff; stroke-width:2.6; stroke-dasharray:160 2200; opacity:.95; animation:glint 8s linear infinite; }
.rb{ transform-box:fill-box; transform-origin:center; animation:ribbonFloat 14s ease-in-out infinite alternate; }
.rb2{ animation-duration:18s; animation-delay:-5s; }
.rb3{ animation-duration:22s; animation-delay:-9s; }
.rb4{ animation-duration:16s; animation-delay:-2s; }
.rb5{ animation-duration:26s; animation-delay:-12s; }
.rb2 .glint{ animation-duration:11s; animation-delay:-3s; }
.rb3 .glint{ animation-duration:14s; animation-delay:-6s; }
.rb4 .glint{ animation-duration:10s; animation-delay:-8s; }
@keyframes ribbonFloat{ from{ transform:translate(-24px, 14px) rotate(-3deg); } to{ transform:translate(24px, -14px) rotate(3deg); } }
@keyframes glint{ from{ stroke-dashoffset:2360; } to{ stroke-dashoffset:0; } }

.hero-portrait{
  position:relative; z-index:2; width:auto; height:auto; max-width:100%; max-height:62svh; object-fit:contain; margin:0 auto;
  -webkit-mask-image:linear-gradient(to bottom, #000 78%, transparent 100%);
  mask-image:linear-gradient(to bottom, #000 78%, transparent 100%);
  filter:drop-shadow(0 30px 40px rgba(92,70,40,.22));
  animation:portraitIn 1.4s var(--ease-out) both;
}
@keyframes portraitIn{ from{ opacity:0; transform:translateY(24px) scale(.97); } to{ opacity:1; transform:none; } }

.ribbon-front{
  position:absolute; left:-12%; bottom:14%; width:124%; height:auto; z-index:3;
  pointer-events:none; overflow:visible; opacity:.6;
}
.ribbon-front path{
  fill:none; stroke:url(#rg2); stroke-width:22; stroke-linecap:round; filter:url(#soft2);
  transform-box:fill-box; transform-origin:center;
  animation:ribbonFloat 16s ease-in-out infinite alternate; animation-delay:-7s;
}

.hero-tag{
  position:absolute; z-index:4; left:0; bottom:38%;
  display:flex; align-items:center; gap:10px;
  padding:7px 16px 7px 7px; border-radius:999px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 18px 40px -18px rgba(42,37,33,.38);
  text-align:left; white-space:nowrap;
  animation:floatBadge 6s ease-in-out infinite;
}
.hero-tag .g{
  width:26px; height:26px; border-radius:50%; flex-shrink:0;
  display:grid; place-items:center;
  background:#fff; box-shadow:0 2px 8px rgba(42,37,33,.14);
}
.hero-tag .g svg{ width:13px; height:13px; display:block; }
.hero-tag b{ display:flex; align-items:center; gap:6px; font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:var(--ink); line-height:1; }
.hero-tag .stars{ display:inline-flex; gap:1px; color:var(--gold); }
.hero-tag .stars svg{ width:11px; height:11px; fill:currentColor; }
.hero-tag small{ display:block; font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-top:4px; }
.hero-spark{
  position:absolute; z-index:4; right:5%; top:16%;
  width:44px; height:44px; border-radius:50%;
  background:linear-gradient(135deg, var(--gold-light), var(--gold-2));
  display:grid; place-items:center;
  box-shadow:0 12px 26px -10px rgba(169,133,68,.7);
  animation:floatBadge 7s ease-in-out infinite reverse;
}
.hero-spark svg{ width:18px; height:18px; fill:#fff; }
@keyframes floatBadge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }

.hero-scroll{
  position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:3;
  display:none; flex-direction:column; align-items:center; gap:8px;
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-2);
}
.hero-scroll i{ width:1px; height:44px; background:linear-gradient(to bottom, var(--gold), transparent); animation:scrollHint 2.2s ease-in-out infinite; transform-origin:top; }
@keyframes scrollHint{ 0%{ transform:scaleY(0); opacity:0; } 40%{ transform:scaleY(1); opacity:1; } 100%{ transform:scaleY(1) translateY(20px); opacity:0; } }

@media (min-width:768px){
  .hero-sub{ font-size:1.1rem; }
  .hero-ctas{ flex-direction:row; justify-content:center; }
  .hero-ctas .btn{ width:auto; }
}
@media (min-width:1024px){
  .hero{ padding-top:var(--header-h); min-height:100svh; }
  .hero-inner{ flex-direction:row; align-items:stretch; gap:10px; }
  .hero-copy{ flex:1 1 52%; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:40px 20px 90px; }
  .hero-title{ font-size:clamp(3.6rem, 4.9vw, 5rem); }
  .hero-title .script{ font-size:clamp(4.2rem, 6.2vw, 6.6rem); }
  .hero-figure{ flex:1 1 48%; margin:0; width:auto; max-width:560px; align-self:flex-end; }
  .hero-portrait{ max-height:calc(100svh - var(--header-h) - 10px); width:auto; max-width:100%; object-fit:contain; margin:0 auto; }
  .hero-arch{ width:min(124%, 680px); height:108%; }
  .hero-tag{ left:auto; right:-24px; bottom:20%; padding:8px 20px 8px 9px; }
  .hero-tag .g{ width:30px; height:30px; }
  .hero-tag .g svg{ width:15px; height:15px; }
  .hero-tag b{ font-size:1.15rem; }
  .hero-spark{ right:0; top:14%; width:52px; height:52px; }
  .hero-spark svg{ width:22px; height:22px; }
  .hero-scroll{ display:flex; left:26%; }
}

/* =====================================================================
   BAND (marquee)
   ===================================================================== */
.band{ position:relative; z-index:3; background:var(--ink); color:var(--gold-light); padding:16px 0; overflow:hidden; }
.band .marquee{ display:flex; width:max-content; animation:marquee 40s linear infinite; }
.band .marquee:hover{ animation-play-state:paused; }
.band .marquee > div{ display:flex; align-items:center; }
.band span{ font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; font-weight:400; padding:0 26px; white-space:nowrap; }
.band i{ font-style:normal; color:var(--gold); font-size:.6rem; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* =====================================================================
   SOBRE
   ===================================================================== */
.sobre{ background:var(--cream); }
.sobre-grid{ display:grid; gap:40px; align-items:center; }
.sobre-figure{ position:relative; width:min(100%, 420px); margin:0 auto; }
.sobre-figure img{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 30%; border-radius:var(--radius); box-shadow:var(--shadow); }
.sobre-figure .signature{
  position:absolute; left:50%; bottom:-22px; transform:translateX(-50%);
  background:var(--ivory); padding:10px 26px 6px; border-radius:999px;
  box-shadow:0 18px 40px -18px rgba(42,37,33,.35);
  font-family:var(--font-script); font-size:2.3rem; line-height:1; color:var(--ink); white-space:nowrap;
}
.sobre-copy h2{ margin-top:16px; }
.sobre-copy p{ margin-top:18px; color:var(--muted); }
.sobre-copy p:first-of-type{ font-size:1.06rem; color:var(--ink-2); }
.sobre-creds{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px 14px; margin-top:30px; font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold-2); font-weight:500; }
.sobre-creds i{ font-style:normal; font-size:.55rem; color:var(--gold); }
.sobre-copy .btn{ margin-top:30px; }
.creds{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px; }
.creds li{
  font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  padding:10px 16px; border-radius:999px;
  border:1px solid var(--line); color:var(--gold-2); background:rgba(255,255,255,.5);
}
.stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px 12px; margin-top:44px; padding-top:34px; border-top:1px solid var(--line); }
.stats b{ display:block; font-family:var(--font-display); font-weight:500; font-size:2.4rem; line-height:1; color:var(--ink); }
.stats b sup{ font-size:.5em; color:var(--gold-2); vertical-align:top; margin-left:2px; }
.stats span{ display:block; margin-top:8px; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
@media (min-width:1024px){
  .sobre-grid{ grid-template-columns:.9fr 1.1fr; gap:70px; }
  .sobre-figure{ margin:0; }
  .stats{ grid-template-columns:repeat(4,1fr); }
}

/* =====================================================================
   DIVISÓRIA ORNAMENTAL
   ===================================================================== */
.ornament{
  position:relative; overflow:hidden;
  padding:64px 22px;
  background:var(--ink);
  color:var(--gold-light);
}
.ornament::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 80% at 50% 120%, rgba(196,162,101,.28), transparent 60%),
    radial-gradient(ellipse 40% 50% at 10% 0%, rgba(196,162,101,.12), transparent 60%);
}
.ornament-lines{ position:relative; display:flex; align-items:center; justify-content:center; gap:22px; max-width:820px; margin:0 auto; }
.ornament-lines i{ flex:1; height:1px; background:linear-gradient(90deg, transparent, var(--gold)); transform:scaleX(0); transform-origin:right; transition:transform 1.4s var(--ease-in-out); }
.ornament-lines i:last-child{ background:linear-gradient(90deg, var(--gold), transparent); transform-origin:left; }
.ornament.in .ornament-lines i{ transform:scaleX(1); }
.ornament-lotus{ position:relative; width:64px; height:64px; display:grid; place-items:center; }
.ornament-lotus svg{ width:64px; height:64px; overflow:visible; }
.ornament-lotus path{ fill:none; stroke:var(--gold-light); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:400; stroke-dashoffset:400; transition:stroke-dashoffset 1.6s var(--ease-in-out); }
.ornament.in .ornament-lotus path{ stroke-dashoffset:0; }
.ornament.in .ornament-lotus path:nth-child(2){ transition-delay:.15s; }
.ornament.in .ornament-lotus path:nth-child(3){ transition-delay:.3s; }
.ornament.in .ornament-lotus path:nth-child(4){ transition-delay:.45s; }
.ornament.in .ornament-lotus path:nth-child(5){ transition-delay:.6s; }
.ornament-lotus::after{
  content:''; position:absolute; inset:-30%; border-radius:50%;
  background:radial-gradient(circle, rgba(196,162,101,.35), transparent 65%);
  opacity:0; transition:opacity 1.2s ease .8s;
}
.ornament.in .ornament-lotus::after{ opacity:1; }
.ornament-text{ position:relative; margin-top:26px; }
.ornament-text .script{ font-size:clamp(3rem, 11vw, 5rem); color:var(--gold-light); display:block; line-height:.95; }
.ornament-text p{ margin-top:14px; font-family:var(--font-display); font-style:italic; font-size:1.25rem; color:rgba(227,207,165,.8); max-width:38ch; }
.ornament-text small{ display:block; margin-top:18px; font-size:.64rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(227,207,165,.6); }
@media (min-width:1024px){ .ornament{ padding:90px 22px; } }

/* =====================================================================
   PROCEDIMENTOS (cards com foto)
   ===================================================================== */
.procedimentos{ background:var(--cream); }
.menu{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.menu-item{
  position:relative; overflow:hidden; isolation:isolate;
  aspect-ratio:3/4;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:6px;
  padding:20px 14px 22px;
  border-radius:var(--radius-sm);
  background:linear-gradient(160deg, #EADCC4, #D3B98F);
  color:#fff;
  box-shadow:var(--shadow);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
}
.menu-item .bg{ position:absolute; inset:0; z-index:-2; overflow:hidden; will-change:transform; transform:scale(1.1); }
.menu-item .bg img{
  position:absolute; left:0; bottom:0; width:100%; height:100%;
  object-fit:cover; object-position:var(--pos, 50% 30%);
  transition:transform 1.1s var(--ease-out);
}
.menu-item.half-b .bg img{ height:200%; }
.menu-item.half-r .bg img{ width:200%; max-width:none; left:auto; right:0; }
.menu-item.zoom .bg img{ height:135%; }
.menu-item.cutout .bg img{ object-fit:cover; object-position:50% 0; filter:drop-shadow(0 20px 30px rgba(92,70,40,.3)); }
.menu-item::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(42,37,33,0) 34%, rgba(42,37,33,.5) 62%, rgba(42,37,33,.92) 100%);
}
.menu-item .tag{ font-size:.56rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light); font-weight:500; }
.menu-item h3{ font-size:1.22rem; color:#fff; line-height:1.1; }
.menu-item p{ display:none; font-size:.86rem; color:rgba(255,255,255,.78); max-width:30ch; }
.menu-item .more{
  display:inline-flex; align-items:center; gap:8px; margin-top:6px;
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; font-weight:500;
}
.menu-item .more svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:1.6; transition:transform .3s var(--ease-out); }
@media (hover:hover) and (pointer:fine){
  .menu-item:hover{ transform:translateY(-8px); box-shadow:0 44px 70px -40px rgba(42,37,33,.55); }
  .menu-item:hover .bg img{ transform:scale(1.06); }
  .menu-item:hover .more svg{ transform:translateX(5px); }
}
@media (min-width:640px){
  .menu{ gap:18px; }
  .menu-item{ padding:26px 22px 28px; gap:8px; }
  .menu-item h3{ font-size:1.55rem; }
  .menu-item p{ display:block; }
  .menu-item .tag{ font-size:.62rem; }
  .menu-item .more{ font-size:.66rem; }
}
@media (min-width:1024px){
  .menu{ grid-template-columns:repeat(4,1fr); gap:20px; }
  .menu-item{ aspect-ratio:3/4; padding:30px 22px 32px; }
  .menu-item h3{ font-size:1.6rem; }
}

/* =====================================================================
   EMPILHAMENTO (stack)
   ===================================================================== */
.stack{ background:var(--ivory); padding-bottom:40px; }
.stack .section-head{ margin-bottom:30px; }
.stack-cards{ position:relative; }
.stack-card{
  position:sticky; top:calc(var(--header-h) + 14px);
  min-height:min(560px, 76svh);
  margin-bottom:26px;
  border-radius:var(--radius);
  padding:44px 26px 40px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  transform-origin:top center;
  will-change:transform, filter;
  box-shadow:0 40px 70px -40px rgba(42,37,33,.45);
  overflow:hidden;
}
.stack-card:nth-child(1){ top:calc(var(--header-h) + 14px); }
.stack-card:nth-child(2){ top:calc(var(--header-h) + 28px); }
.stack-card:nth-child(3){ top:calc(var(--header-h) + 42px); }
.stack-card:nth-child(4){ top:calc(var(--header-h) + 56px); }
.stack-card .step{ font-family:var(--font-display); font-size:.95rem; letter-spacing:.32em; text-transform:uppercase; opacity:.75; }
.stack-card h3{ font-size:clamp(1.9rem, 7vw, 2.6rem); color:inherit; }
.stack-card p{ font-size:1rem; max-width:44ch; opacity:.85; }
.stack-card .ornament-mini{ width:36px; height:1px; background:currentColor; opacity:.5; margin:2px 0; }
.stack-card.c1{ background:var(--ink); color:var(--gold-light); }
.stack-card.c1 h3{ color:#fff; }
.stack-card.c2{ background:linear-gradient(135deg, var(--gold-light), var(--gold) 55%, var(--gold-2)); color:#fff; }
.stack-card.c2 h3{ color:#fff; }
.stack-card.c3{ background:var(--sand); color:var(--ink-2); }
.stack-card.c4{ background:var(--cream); color:var(--ink-2); }
.stack-card .card-img{
  position:absolute; inset:0; z-index:0;
}
.stack-card .card-img img{ width:100%; height:100%; object-fit:cover; object-position:70% 20%; }
.stack-card .card-img::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(42,37,33,.42), rgba(42,37,33,.86)); }
.stack-card.has-img{ color:#fff; }
.stack-card.has-img > *:not(.card-img){ position:relative; z-index:1; }
.stack-card.has-img h3{ color:#fff; }
.stack-card.has-img .step{ color:var(--gold-light); }
.stack-card .lotus-bg{
  position:absolute; right:-40px; bottom:-60px; width:260px; opacity:.08; pointer-events:none;
}
@media (min-width:1024px){
  .stack-card{ min-height:520px; padding:60px; }
  .stack-card h3{ font-size:3rem; }
  .stack-card p{ font-size:1.12rem; max-width:52ch; }
}

/* =====================================================================
   RESULTADOS
   ===================================================================== */
.resultados{ background:var(--cream); }
.results-track{
  display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:4px 22px 18px; margin:0 -22px;
  scrollbar-width:none;
}
.results-track::-webkit-scrollbar{ display:none; }
.result{
  flex:0 0 78%; scroll-snap-align:center;
  border-radius:var(--radius); overflow:hidden; background:var(--ivory);
  box-shadow:var(--shadow);
}
.result figure{ position:relative; margin:0; }
.result img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.result figcaption{ padding:16px 18px 18px; }
.result figcaption b{ display:block; font-family:var(--font-display); font-weight:500; font-size:1.25rem; color:var(--ink); }
.result figcaption span{ display:block; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-2); margin-top:4px; }
.result .ab{
  position:absolute; top:12px; left:12px; right:12px; display:flex; justify-content:space-between;
  pointer-events:none;
}
.result .ab i{ font-style:normal; font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; padding:6px 10px; border-radius:999px; background:rgba(42,37,33,.55); color:#fff; backdrop-filter:blur(4px); }
.results-note{ margin-top:22px; font-size:.78rem; color:var(--muted); letter-spacing:.02em; }
@media (min-width:768px){ .result{ flex-basis:44%; } }
@media (min-width:1024px){
  .results-track{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; overflow:visible; margin:0; padding:0; }
  .result{ flex:none; }
}

/* =====================================================================
   DEPOIMENTOS
   ===================================================================== */
.depoimentos{ background:var(--ivory); }
.testi-grid{ display:grid; gap:16px; }
.testi{
  position:relative; padding:38px 26px 30px;
  border-radius:var(--radius); background:var(--cream);
  box-shadow:var(--shadow);
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.testi .quote{ font-family:var(--font-display); font-size:4rem; line-height:.5; color:var(--gold); height:20px; }
.testi .stars{ display:inline-flex; gap:3px; color:var(--gold); }
.testi .stars svg{ width:14px; height:14px; fill:currentColor; }
.testi p{ font-family:var(--font-display); font-size:1.2rem; line-height:1.5; color:var(--ink-2); font-style:italic; }
.testi footer{ margin-top:6px; }
.testi footer b{ display:block; font-weight:500; color:var(--ink); font-size:.9rem; letter-spacing:.04em; }
.testi footer span{ display:block; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-top:3px; }
.google-pill{
  display:inline-flex; align-items:center; gap:10px; margin-top:30px;
  padding:12px 20px; border-radius:999px; border:1px solid var(--line); background:var(--cream);
  font-size:.8rem; color:var(--ink-2);
}
.google-pill b{ font-weight:500; color:var(--ink); }
@media (min-width:768px){ .testi-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .testi-grid{ grid-template-columns:repeat(4,1fr); gap:18px; } }

/* =====================================================================
   CONTATO
   ===================================================================== */
.contato{ background:var(--cream); }
.contato-grid{ display:grid; gap:30px; }
.contato-card{
  border-radius:var(--radius); background:var(--ivory); box-shadow:var(--shadow);
  padding:38px 26px; display:flex; flex-direction:column; align-items:center; gap:22px;
}
.contato-item{ display:flex; flex-direction:column; align-items:center; gap:6px; }
.contato-item .ico{ width:40px; height:40px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--gold-2); margin-bottom:4px; }
.contato-item .ico svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.contato-item small{ font-size:.64rem; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); }
.contato-item b{ font-weight:400; color:var(--ink); font-size:1.02rem; line-height:1.4; }
.contato-item a:hover{ color:var(--gold-2); }
.map{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); min-height:320px; background:var(--sand); position:relative; }
.map iframe{ width:100%; height:100%; min-height:320px; border:0; display:block; filter:saturate(.75) contrast(1.02); }
@media (min-width:1024px){ .contato-grid{ grid-template-columns:1fr 1.15fr; align-items:stretch; } .map{ min-height:100%; } }

/* =====================================================================
   CTA FINAL
   ===================================================================== */
.cta-final{ position:relative; overflow:hidden; background:var(--ink); color:var(--gold-light); padding:96px 0 90px; isolation:isolate; }
.cta-final::before{
  content:''; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 110%, rgba(196,162,101,.32), transparent 65%),
    radial-gradient(ellipse 30% 40% at 90% 0%, rgba(196,162,101,.12), transparent 60%);
}
.cta-final .wrap{ position:relative; z-index:1; }
.cta-final .kicker{ color:var(--gold); }
.cta-final h2{ color:#fff; margin-top:16px; }
.cta-final h2 .script{ color:var(--gold-light); }
.cta-final p{ color:rgba(227,207,165,.78); margin-top:18px; }
.cta-final .btn{ margin-top:30px; }
.cta-final .lotus-bg{ position:absolute; left:50%; top:50%; width:min(520px, 90vw); transform:translate(-50%,-50%); opacity:.06; z-index:0; pointer-events:none; animation:spinCenter 120s linear infinite; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.footer{ background:#1F1B18; color:rgba(247,242,235,.7); padding:56px 0 110px; font-size:.86rem; }
.footer .brand-foot img{ height:44px; margin:0 auto;  }
.footer nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px 26px; margin-top:26px; }
.footer nav a{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(247,242,235,.75); }
.footer nav a:hover{ color:var(--gold-light); }
.footer .foot-line{ width:60px; height:1px; background:var(--gold); opacity:.5; margin:28px auto; }
.footer p{ font-size:.82rem; line-height:1.7; color:rgba(247,242,235,.6); }
.footer .copy{ margin-top:22px; font-size:.7rem; letter-spacing:.06em; color:rgba(247,242,235,.4); }
.footer .copy a{ color:rgba(247,242,235,.55); }
.footer .social{ display:flex; justify-content:center; gap:12px; margin-top:22px; }
.footer .social a{ width:42px; height:42px; border-radius:50%; border:1px solid rgba(196,162,101,.35); display:grid; place-items:center; color:var(--gold-light); transition:background-color .25s ease, transform .25s var(--ease-out); }
.footer .social a:hover{ background:rgba(196,162,101,.15); transform:translateY(-2px); }
.footer .social svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; }
@media (min-width:1024px){ .footer{ padding-bottom:60px; } }

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:80;
  width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.55);
  transition:transform .25s var(--ease-out);
}
.wa-float svg{ width:30px; height:30px; fill:currentColor; }
.wa-float::before{ content:''; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(37,211,102,.6); animation:waPulse 2.4s ease-out infinite; }
.wa-float:hover{ transform:scale(1.06); }
.wa-float:active{ transform:scale(.96); }
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.9; } 100%{ transform:scale(1.7); opacity:0; } }

/* =====================================================================
   PÁGINAS DE PROCEDIMENTO
   ===================================================================== */
.proc-hero{
  position:relative; isolation:isolate; overflow:hidden;
  padding:calc(var(--header-h) + 56px) 0 0;
  background:var(--cream);
}
.proc-hero .hero-bg .ring{ top:30%; }
.proc-hero .hero-bg .sweep{ top:30%; }
.proc-hero .breadcrumb{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 10px; font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin-bottom:20px; }
.proc-hero .breadcrumb a:hover{ color:var(--gold-2); }
.proc-hero .breadcrumb i{ font-style:normal; color:var(--gold); }
.proc-hero h1{ margin-top:14px; }
.proc-hero .lead{ font-size:1.06rem; max-width:52ch; }
.proc-hero .hero-ctas{ margin-top:28px; }
.proc-hero .meta{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px; }
.proc-hero .meta li{ font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; padding:9px 14px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.5); color:var(--ink-2); }
.proc-hero .meta li b{ font-weight:500; color:var(--gold-2); }
.proc-hero-figure{ position:relative; z-index:2; margin:46px auto 0; width:min(100%, 620px); }
.proc-hero-figure img{ width:100%; height:auto; max-height:70svh; object-fit:cover; border-radius:var(--radius) var(--radius) 0 0; }
.proc-hero-figure.portrait img{ aspect-ratio:4/5; object-position:50% 18%; }
.proc-hero-figure .ab{ position:absolute; top:14px; left:14px; right:14px; display:flex; justify-content:space-between; pointer-events:none; }
.proc-hero-figure .ab i{ font-style:normal; font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; padding:6px 12px; border-radius:999px; background:rgba(42,37,33,.55); color:#fff; backdrop-filter:blur(4px); }
@media (min-width:1024px){
  .proc-hero{ padding-top:calc(var(--header-h) + 80px); }
  .proc-hero .wrap-narrow{ max-width:820px; }
  .proc-hero-figure{ width:min(100%, 760px); margin-top:56px; }
  .proc-hero-figure img{ max-height:72vh; }
  .proc-hero-figure.portrait img{ aspect-ratio:16/10; object-position:50% 14%; }
}

.proc-intro{ background:var(--ivory); }
.proc-intro .big{ font-family:var(--font-display); font-size:clamp(1.35rem, 4.6vw, 1.9rem); line-height:1.4; color:var(--ink); max-width:30ch; margin-top:18px; }
.proc-intro .big em{ color:var(--gold-2); }
.proc-intro p:not(.big){ margin-top:18px; color:var(--muted); }

.proc-para{ background:var(--cream); }
.chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:26px; max-width:760px; margin-left:auto; margin-right:auto; }
.chips li{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 20px; border-radius:999px;
  background:var(--ivory); border:1px solid var(--line);
  font-size:.9rem; color:var(--ink-2); font-weight:300;
}
.chips li::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }

.proc-steps{ background:var(--ivory); }
.timeline{ position:relative; display:grid; gap:34px; max-width:640px; margin:0 auto; padding-top:10px; }
.timeline::before{ content:''; position:absolute; left:50%; top:0; bottom:0; width:1px; background:linear-gradient(to bottom, transparent, var(--gold) 10%, var(--gold) 90%, transparent); transform:translateX(-50%); }
.tl-item{ position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; padding:0 10px; }
.tl-item .n{
  position:relative; z-index:1;
  width:56px; height:56px; border-radius:50%;
  background:var(--cream); border:1px solid var(--gold);
  display:grid; place-items:center;
  font-family:var(--font-display); font-size:1.3rem; color:var(--gold-2);
  box-shadow:0 0 0 10px var(--ivory);
}
.tl-item h3{ font-size:1.5rem; }
.tl-item h3,.tl-item p{ position:relative; z-index:1; background:var(--ivory); padding:0 12px; }
.tl-item p{ font-size:.95rem; color:var(--muted); max-width:40ch; }
@media (min-width:1024px){
  .timeline{ max-width:1000px; grid-template-columns:repeat(4,1fr); gap:20px; }
  .timeline::before{ left:0; right:0; top:28px; bottom:auto; width:auto; height:1px; transform:none; background:linear-gradient(to right, transparent, var(--gold) 12%, var(--gold) 88%, transparent); }
}

.proc-results{ background:var(--cream); }
.ba-grid{ display:grid; gap:16px; }
.ba{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); background:var(--ivory); }
.ba figure{ position:relative; margin:0; }
.ba img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.ba figcaption{ padding:14px 16px; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-2); }
.ba .ab{ position:absolute; top:12px; left:12px; right:12px; display:flex; justify-content:space-between; pointer-events:none; }
.ba .ab i{ font-style:normal; font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; padding:6px 10px; border-radius:999px; background:rgba(42,37,33,.55); color:#fff; backdrop-filter:blur(4px); }
@media (min-width:768px){ .ba-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .ba-grid{ grid-template-columns:repeat(3,1fr); gap:20px; } .ba-grid.two{ grid-template-columns:repeat(2,1fr); max-width:820px; margin:0 auto; } }

.proc-faq{ background:var(--ivory); }
.faq{ max-width:760px; margin:0 auto; text-align:left; display:grid; gap:10px; }
.faq details{ border-radius:var(--radius-sm); background:var(--cream); overflow:hidden; box-shadow:0 20px 40px -32px rgba(42,37,33,.35); }
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 22px;
  font-family:var(--font-display); font-size:1.2rem; color:var(--ink); font-weight:500;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary i{ flex-shrink:0; width:28px; height:28px; border-radius:50%; border:1px solid var(--gold); position:relative; transition:transform .3s var(--ease-out), background-color .3s ease; }
.faq summary i::before,.faq summary i::after{ content:''; position:absolute; left:50%; top:50%; width:10px; height:1px; background:var(--gold-2); transform:translate(-50%,-50%); }
.faq summary i::after{ transform:translate(-50%,-50%) rotate(90deg); transition:transform .3s var(--ease-out); }
.faq details[open] summary i{ background:var(--gold); }
.faq details[open] summary i::before,.faq details[open] summary i::after{ background:#fff; }
.faq details[open] summary i::after{ transform:translate(-50%,-50%) rotate(0deg); }
.faq .faq-body{ padding:0 22px 22px; color:var(--muted); font-size:.96rem; }
.faq .faq-body p{ margin:0; max-width:none; }

.proc-cta{ background:var(--cream); }
.proc-cta .card{
  position:relative; overflow:hidden;
  border-radius:var(--radius); background:var(--ink); color:var(--gold-light);
  padding:64px 26px;
}
.proc-cta .card::before{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 50% 120%, rgba(196,162,101,.32), transparent 65%); }
.proc-cta .card > *{ position:relative; }
.proc-cta h2{ color:#fff; margin-top:14px; }
.proc-cta h2 .script{ color:var(--gold-light); }
.proc-cta p{ color:rgba(227,207,165,.78); margin-top:16px; }
.proc-cta .btn{ margin-top:28px; }

.proc-others{ background:var(--cream); padding-top:0; }
.others{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.others a{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; padding:12px 18px; border-radius:999px; border:1px solid var(--line); color:var(--ink-2); background:var(--ivory); transition:border-color .25s ease, color .25s ease, transform .25s var(--ease-out); }
.others a:hover{ border-color:var(--gold); color:var(--gold-2); transform:translateY(-2px); }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.2s !important; scroll-behavior:auto !important; }
  .reveal,.reveal-zoom,.reveal-clip{ opacity:1; transform:none; clip-path:none; }
  .hero-portrait{ animation:none; }
  .band .marquee{ animation:none; }
}

/* ---------- Etiquetas antes/depois (vertical) ---------- */
.ab.tb{ flex-direction:column; justify-content:space-between; align-items:flex-start; bottom:12px; }

/* ---------- Wrapper da imagem (antes/depois) ---------- */
.pic{ position:relative; }
