:root{
  --night: #141A33;
  --night-2: #1D2547;
  --gold: #E8C170;
  --gold-soft: #F3DDA0;
  --cream: #FBF6EB;
  --cream-2: #F3ECDB;
  --ink: #201B33;
  --lilac: #9AA1C9;
  --line: rgba(232,193,112,0.18);
  --serif: 'Fraunces', serif;
  --sans: 'Work Sans', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family: var(--sans);
  background: var(--cream);
  color: var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{ background:var(--gold); color:var(--night); }
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; }
img,svg{ display:block; max-width:100%; }
section{ position:relative; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

.wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .wrap{ padding:0 22px; } }

.reveal{ opacity:0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal-stagger > *{ opacity:0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal-stagger.in > *{ opacity:1; transform:none; }
.reveal-stagger.in > *:nth-child(1){ transition-delay:.05s; }
.reveal-stagger.in > *:nth-child(2){ transition-delay:.15s; }
.reveal-stagger.in > *:nth-child(3){ transition-delay:.25s; }
.reveal-stagger.in > *:nth-child(4){ transition-delay:.35s; }
.reveal-stagger.in > *:nth-child(5){ transition-delay:.45s; }
.reveal-stagger.in > *:nth-child(6){ transition-delay:.55s; }

.eyebrow-mark{ display:inline-flex; align-items:center; gap:10px; font-size:14px; letter-spacing:.02em; color:var(--gold); margin-bottom:18px; }
.eyebrow-mark svg{ width:16px; height:16px; flex-shrink:0; }

.btn{ display:inline-flex; align-items:center; justify-content:center; padding:15px 30px; border-radius:100px; font-size:15px; font-weight:600; cursor:pointer; border:1px solid transparent; transition: transform .35s cubic-bezier(.2,.9,.3,1), box-shadow .35s ease, background .35s ease, color .35s ease; }
.btn-primary{ background:var(--gold); color:var(--night); }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -10px rgba(232,193,112,.55); }
.btn-ghost{ background:rgba(251,246,235,.1); border-color:rgba(251,246,235,.6); color:var(--cream); }
.btn-ghost:hover{ background:rgba(251,246,235,.18); border-color:var(--cream); transform:translateY(-3px); }
.btn-dark{ background:var(--night); color:var(--cream); }
.btn-dark:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -12px rgba(20,26,51,.5); }

header{ position:fixed; top:0; left:0; right:0; z-index:100; padding:20px 0; transition: background .4s ease, padding .4s ease, box-shadow .4s ease; }
header.scrolled{ background:rgba(251,246,235,.86); backdrop-filter: blur(14px); padding:14px 0; box-shadow:0 1px 0 rgba(32,27,51,.06); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; }
.logo{ font-family:var(--serif); font-size:21px; font-weight:500; letter-spacing:.01em; display:flex; align-items:center; gap:10px; color:var(--night); transition: color .4s ease; }
header:not(.scrolled) .logo{ color:var(--cream); }
.logo-mark{ width:24px; height:24px; }

nav.links{ display:flex; gap:38px; align-items:center; }
nav.links a{ font-size:14.5px; font-weight:500; color:var(--night); position:relative; padding:4px 0; transition:color .4s ease; }
header:not(.scrolled) nav.links a{ color:var(--cream); }
nav.links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:1.5px; background:var(--gold); transition:width .35s cubic-bezier(.2,.9,.3,1); }
nav.links a:hover::after{ width:100%; }

.nav-cta{ display:flex; align-items:center; gap:22px; }
.menu-btn{ display:none; background:none; border:none; cursor:pointer; width:26px; height:20px; position:relative; }
.menu-btn span{ position:absolute; left:0; right:0; height:2px; background:var(--cream); border-radius:2px; transition:.3s ease; }
header.scrolled .menu-btn span{ background:var(--night); }
.menu-btn span:nth-child(1){ top:0; } .menu-btn span:nth-child(2){ top:9px; } .menu-btn span:nth-child(3){ top:18px; }
@media (max-width:880px){ nav.links{ display:none; } .nav-cta .btn{ display:none; } .menu-btn{ display:block; } }

.hero{ min-height:100vh; background:radial-gradient(120% 100% at 78% 15%, #232C57 0%, var(--night) 55%, #0E1226 100%); display:flex; align-items:center; overflow:hidden; padding-top:120px; padding-bottom:80px; }
.hero-inner{ display:grid; grid-template-columns: 1.15fr .85fr; gap:40px; align-items:center; position:relative; z-index:3; }
@media (max-width:960px){ .hero-inner{ grid-template-columns:1fr; } }
.hero h1{ font-family:var(--serif); color:var(--cream); font-weight:500; font-size:clamp(36px, 4.8vw, 62px); line-height:1.1; letter-spacing:-0.01em; max-width:660px; }
.hero p.lead{ margin-top:26px; color:var(--lilac); font-size:18px; line-height:1.65; max-width:480px; font-weight:300; }
.hero-actions{ margin-top:42px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-meet{ margin-top:56px; display:flex; gap:28px; align-items:center; flex-wrap:wrap; }
.meet-item{ display:flex; align-items:center; gap:10px; color:var(--lilac); font-size:14px; }
.meet-item svg{ width:18px; height:18px; color:var(--gold); flex-shrink:0; }

.orb-scene{ position:relative; height:520px; display:flex; align-items:center; justify-content:center; }
@media (max-width:960px){ .orb-scene{ height:340px; } }
.orb-core{ position:relative; width:230px; height:230px; border-radius:50%; background: radial-gradient(circle at 38% 32%, #FFF3D6 0%, var(--gold) 38%, #B9873C 78%, #7A5A29 100%); box-shadow: 0 0 90px 20px rgba(232,193,112,.35), 0 0 200px 60px rgba(232,193,112,.14); animation: pulse 5s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ transform:scale(1); filter:brightness(1); } 50%{ transform:scale(1.045); filter:brightness(1.08); } }
.ring{ position:absolute; top:50%; left:50%; border-radius:50%; border:1px solid var(--line); transform:translate(-50%,-50%); animation: spin linear infinite; }
.ring-1{ width:320px; height:320px; animation-duration:34s; }
.ring-2{ width:410px; height:410px; animation-duration:52s; border-style:dashed; opacity:.5; }
.ring-3{ width:500px; height:500px; animation-duration:70s; opacity:.3; }
@keyframes spin{ to{ transform:translate(-50%,-50%) rotate(360deg); } }
.mote{ position:absolute; bottom:-20px; border-radius:50%; background:var(--gold-soft); opacity:0; animation: float-up linear infinite; }
@keyframes float-up{ 0%{ opacity:0; transform:translateY(0) translateX(0); } 10%{ opacity:.8; } 90%{ opacity:.5; } 100%{ opacity:0; transform:translateY(-460px) translateX(var(--drift,20px)); } }

.scroll-cue{ position:absolute; bottom:36px; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--lilac); font-size:12.5px; }
.scroll-cue .line{ width:1px; height:34px; background:linear-gradient(var(--gold), transparent); animation: cue 2s ease-in-out infinite; }
@keyframes cue{ 0%,100%{ opacity:.3; } 50%{ opacity:1; } }

.marquee-band{ background:var(--night-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; overflow:hidden; }
.marquee-track{ display:flex; width:max-content; animation: scroll-x 34s linear infinite; }
.marquee-track span{ font-family:var(--serif); font-style:italic; font-size:22px; color:var(--lilac); padding:0 34px; white-space:nowrap; display:flex; align-items:center; gap:34px; }
.marquee-track span::after{ content:'✦'; color:var(--gold); font-style:normal; font-size:13px; }
@keyframes scroll-x{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.sobre{ background:var(--cream); padding:130px 0; }
.sobre-grid{ display:grid; grid-template-columns: .95fr 1.05fr; gap:70px; align-items:center; }
@media (max-width:900px){ .sobre-grid{ grid-template-columns:1fr; gap:50px; } }
.sunrise-art{ display:flex; justify-content:center; }
.sunrise-art svg{ width:100%; max-width:340px; }
.sun-disc{ animation: rise 4s ease-in-out infinite alternate; transform-origin:center; }
@keyframes rise{ 0%{ transform:translateY(3px); } 100%{ transform:translateY(-3px); } }
.sun-ray{ animation: glow 3s ease-in-out infinite; transform-origin:150px 190px; }
@keyframes glow{ 0%,100%{ opacity:.35; } 50%{ opacity:.85; } }

.sobre h2{ font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.2vw,42px); line-height:1.18; color:var(--night); max-width:520px; }
.sobre p{ margin-top:22px; font-size:16.5px; line-height:1.8; color:#4A4560; max-width:490px; font-weight:300; }
.sobre p + p{ margin-top:16px; }
.sobre-note{ margin-top:22px; font-size:14px; color:#8A83A0; font-style:italic; }
.sobre-pillars{ margin-top:34px; display:flex; gap:34px; flex-wrap:wrap; }
.pillar b{ font-family:var(--serif); font-size:24px; font-weight:500; color:var(--night); display:block; }
.pillar span{ font-size:13px; color:#7A7590; }

.terapias{ background:var(--night); padding:130px 0 140px; }
.sec-head{ max-width:620px; margin-bottom:64px; }
.sec-head h2{ font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.2vw,42px); color:var(--cream); line-height:1.18; }
.sec-head p{ margin-top:18px; color:var(--lilac); font-size:16.5px; line-height:1.7; font-weight:300; }

.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .card-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .card-grid{ grid-template-columns:1fr; } }
.a-card{ background:var(--night); padding:44px 36px; transition: background .45s ease; position:relative; overflow:hidden; }
.a-card::before{ content:''; position:absolute; inset:0; background:radial-gradient(180px 180px at 20% 0%, rgba(232,193,112,.14), transparent 70%); opacity:0; transition:opacity .45s ease; }
.a-card:hover{ background:var(--night-2); }
.a-card:hover::before{ opacity:1; }
.a-card:hover .a-icon{ transform:translateY(-4px) rotate(-4deg); border-color:var(--gold); }
.a-icon{ width:52px; height:52px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin-bottom:26px; transition: transform .45s cubic-bezier(.2,.9,.3,1), border-color .45s ease; position:relative; z-index:1; }
.a-icon svg{ width:22px; height:22px; color:var(--gold); }
.a-card h3{ font-family:var(--serif); font-size:20px; font-weight:500; color:var(--cream); position:relative; z-index:1; }
.a-card p{ margin-top:12px; font-size:14.5px; line-height:1.7; color:var(--lilac); font-weight:300; position:relative; z-index:1; }

.quote-band{ background: linear-gradient(120deg, #EFE3C2 0%, var(--gold-soft) 50%, #EFE3C2 100%); padding:100px 0; text-align:center; }
.quote-band blockquote{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(22px,3.2vw,36px); line-height:1.4; color:var(--night); max-width:740px; margin:0 auto; }
.quote-band cite{ display:block; margin-top:24px; font-style:normal; font-size:13.5px; color:#6B5A2E; letter-spacing:.03em; }

.impacto{ background:var(--cream-2); padding:120px 0; }
.impacto-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:60px; align-items:center; }
@media (max-width:900px){ .impacto-grid{ grid-template-columns:1fr; gap:40px; } }
.impacto h2{ font-family:var(--serif); font-weight:500; font-size:clamp(28px,3.2vw,40px); line-height:1.18; color:var(--night); }
.impacto p{ margin-top:20px; color:#4A4560; font-size:16px; line-height:1.75; font-weight:300; max-width:440px; }
.stat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; }
.stat{ padding:20px 22px; background:var(--cream); border-radius:14px; border:1px solid rgba(32,27,51,.06); }
.trad-label{ font-family:var(--serif); font-size:18px; color:var(--night); font-weight:500; }

.agenda{ background:var(--cream); padding:0 0 130px; }
.agenda-box{ background:var(--night); border-radius:26px; padding:60px; display:grid; grid-template-columns: .8fr 1.2fr; gap:50px; position:relative; overflow:hidden; }
.agenda-box::after{ content:''; position:absolute; right:-120px; top:-120px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle, rgba(232,193,112,.25), transparent 70%); }
@media (max-width:860px){ .agenda-box{ grid-template-columns:1fr; padding:44px 28px; } }
.agenda-box h2{ font-family:var(--serif); color:var(--cream); font-weight:500; font-size:clamp(26px,3vw,34px); line-height:1.2; position:relative; z-index:1;}
.agenda-box > div > p{ margin-top:16px; color:var(--lilac); font-size:15px; line-height:1.7; font-weight:300; max-width:320px; position:relative; z-index:1;}
.agenda-list{ position:relative; z-index:1; }
.agenda-row{ display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-bottom:1px solid var(--line); transition:padding-left .35s ease; gap:16px; }
.agenda-row:hover{ padding-left:10px; }
.agenda-row:last-child{ border-bottom:none; }
.agenda-day{ color:var(--cream); font-family:var(--serif); font-size:18px; }
.agenda-time{ color:var(--gold); font-size:14px; text-align:right; flex-shrink:0; }
.agenda-desc{ color:var(--lilac); font-size:13.5px; font-weight:300; }
.agenda-row-main{ display:flex; flex-direction:column; gap:4px; }

.contato{ background:var(--night-2); padding:130px 0; }
.contato-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:70px; }
@media (max-width:900px){ .contato-grid{ grid-template-columns:1fr; gap:50px; } }
.contato h2{ font-family:var(--serif); font-weight:500; font-size:clamp(26px,3vw,38px); color:var(--cream); line-height:1.25; }
.contato p.desc{ margin-top:18px; color:var(--lilac); font-size:15.5px; line-height:1.7; font-weight:300; max-width:400px; }
.info-row{ display:flex; gap:16px; margin-top:30px; align-items:flex-start; }
.info-row svg{ width:20px; height:20px; color:var(--gold); flex-shrink:0; margin-top:2px; }
.info-row b{ color:var(--cream); font-size:15px; display:block; font-weight:500; }
.info-row span{ color:var(--lilac); font-size:14px; font-weight:300; }
.map-box{ margin-top:34px; border:1px solid var(--line); border-radius:16px; height:220px; overflow:hidden; filter:grayscale(.25) contrast(1.05); }
.map-box iframe{ display:block; }

.form{ display:flex; flex-direction:column; gap:20px; }
.form-row{ display:flex; gap:20px; }
@media (max-width:560px){ .form-row{ flex-direction:column; } }
.field{ flex:1; position:relative; }
.field input, .field textarea{ width:100%; background:transparent; border:none; border-bottom:1px solid rgba(154,161,201,.4); padding:12px 2px; color:var(--cream); font-family:var(--sans); font-size:15px; outline:none; transition:border-color .35s ease; }
.field textarea{ resize:none; min-height:90px; }
.field label{ position:absolute; left:2px; top:12px; color:var(--lilac); font-size:15px; pointer-events:none; transition: transform .3s ease, font-size .3s ease, color .3s ease; }
.field input:focus, .field textarea:focus{ border-color:var(--gold); }
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label{ transform:translateY(-20px); font-size:12px; color:var(--gold); }
.form-note{ font-size:13px; color:var(--lilac); font-style:italic; }
.form .btn{ align-self:flex-start; margin-top:6px; }

footer{ background:var(--night); padding:60px 0 34px; border-top:1px solid var(--line); }
.footer-top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:36px; padding-bottom:40px; border-bottom:1px solid var(--line); }
.footer-logo{ font-family:var(--serif); font-size:21px; color:var(--cream); display:flex; align-items:center; gap:10px; }
.footer-links{ display:flex; gap:60px; flex-wrap:wrap; }
.footer-col h4{ color:var(--gold); font-size:13.5px; margin-bottom:16px; font-weight:600; }
.footer-col a{ display:block; color:var(--lilac); font-size:14.5px; margin-bottom:11px; transition:color .3s ease; }
.footer-col a:hover{ color:var(--cream); }
.footer-bottom{ display:flex; justify-content:space-between; padding-top:26px; color:var(--lilac); font-size:13px; flex-wrap:wrap; gap:12px; }
.footer-bottom .placeholder-tag{ color:#5b628f; }