:root {
  --ink: #51465d;
  --muted: #756a7f;
  --lavender: #8b70aa;
  --lavender-soft: #d9cbea;
  --pink: #e8b9cf;
  --blue: #b8d8ef;
  --cream: #fcf8f5;
  --white: #fffdfc;
  --line: rgba(139,112,170,.20);
  --shadow: 0 20px 60px rgba(101,75,125,.10);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; color: var(--ink); background: var(--cream);
  font-family: Inter, system-ui, sans-serif; line-height: 1.75;
}
body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1;
  background:
    radial-gradient(circle at 12% 18%, rgba(232,185,207,.16), transparent 28%),
    radial-gradient(circle at 88% 25%, rgba(184,216,239,.17), transparent 27%),
    radial-gradient(circle at 50% 80%, rgba(217,203,234,.18), transparent 30%);
}
a { color: inherit; text-decoration: none; }
.site-header {
  position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between;
  align-items: center; gap: 24px; padding: 18px clamp(20px,5vw,72px);
  background: rgba(252,248,245,.84); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line);
}
.brand { display: grid; gap: 2px; }
.brand-name { font: 600 25px/1 "Cormorant Garamond", serif; color: var(--lavender); }
.brand-sub { font-size: 9px; letter-spacing: .17em; text-transform: uppercase; color: var(--muted); }
.nav { display: flex; align-items: center; gap: clamp(12px,2vw,28px); font-size: 12px; letter-spacing: .06em; }
.nav a:hover { color: var(--lavender); }
.nav-cta { border: 1px solid var(--lavender-soft); padding: 9px 15px; border-radius: 999px; }
.menu-toggle { display:none; border:0; background:transparent; color:var(--ink); font-size:22px; }
.hero {
  min-height: 78vh; max-width: 1240px; margin: auto; padding: 72px 5vw 55px;
  display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 40px;
}
.eyebrow { margin:0 0 12px; color:var(--lavender); font-size:11px; text-transform:uppercase; letter-spacing:.25em; font-weight:600; }
h1,h2,h3 { font-family:"Cormorant Garamond", serif; font-weight:500; line-height:1.08; margin-top:0; }
h1 { font-size: clamp(52px,7vw,92px); margin-bottom:25px; letter-spacing:-.035em; }
h1 em { color:var(--lavender); font-style:italic; }
h2 { font-size:clamp(42px,5vw,66px); margin-bottom:24px; letter-spacing:-.025em; }
h3 { font-size:29px; margin-bottom:9px; }
.hero-text { max-width:650px; font-size:17px; color:var(--muted); }
.hero-mark { display:grid; place-items:center; }
.hero-mark img { width:min(500px,90%); filter: drop-shadow(0 22px 35px rgba(108,80,135,.12)); }
.hero-actions { display:flex; gap:13px; margin-top:30px; }
.button { display:inline-block; border-radius:999px; padding:13px 22px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.button.primary { background:var(--lavender); color:white; box-shadow:var(--shadow); }
.button.ghost { border:1px solid var(--lavender-soft); }
.portal-divider { display:flex; align-items:center; justify-content:center; gap:18px; max-width:900px; margin:0 auto; padding:5px 30px 40px; color:var(--pink); }
.portal-divider span { height:1px; flex:1; background:linear-gradient(90deg,transparent,var(--lavender-soft)); }
.portal-divider span:last-child { background:linear-gradient(90deg,var(--lavender-soft),transparent); }
.section { max-width:1160px; margin:auto; padding:105px 5vw; }
.section.soft { max-width:none; padding-left:max(5vw,calc((100vw - 1160px)/2)); padding-right:max(5vw,calc((100vw - 1160px)/2)); background:rgba(255,255,255,.43); border-top:1px solid rgba(139,112,170,.09); border-bottom:1px solid rgba(139,112,170,.09); }
.section-intro { max-width:760px; margin-bottom:52px; }
.section-intro.centered { text-align:center; margin-left:auto; margin-right:auto; }
.section-intro.centered > p:last-child { max-width:680px; margin:0 auto; color:var(--muted); }
.two-col { display:grid; grid-template-columns:1.25fr .75fr; gap:70px; align-items:start; }
.two-col p, .about p, .experience-grid p { color:var(--muted); font-size:16px; }
.quote-card { padding:42px; border-radius:30px; background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(240,231,246,.66)); box-shadow:var(--shadow); border:1px solid rgba(139,112,170,.13); }
.quote-mark { font:70px/0 "Cormorant Garamond",serif; color:var(--pink); }
.quote-card p { font:500 30px/1.25 "Cormorant Garamond",serif; color:var(--ink); }
.quote-card small { color:var(--lavender); letter-spacing:.13em; text-transform:uppercase; font-size:9px; }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.card { background:rgba(255,255,255,.72); border:1px solid rgba(139,112,170,.12); border-radius:24px; padding:28px; box-shadow:0 12px 35px rgba(100,80,120,.045); }
.card-icon { color:var(--lavender); font-size:25px; }
.card p { color:var(--muted); font-size:14px; }
.fine-print { color:#8b8191; font-size:11px; max-width:720px; margin:35px auto 0; }
.process { border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:100px 1fr; gap:30px; padding:34px 0; border-bottom:1px solid var(--line); }
.step-num { font:500 27px/1 "Cormorant Garamond",serif; color:var(--lavender); }
.step p { color:var(--muted); max-width:750px; }
.experience-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; align-items:center; }
.callout { background:linear-gradient(145deg,rgba(232,185,207,.14),rgba(184,216,239,.14)); border:1px solid var(--line); border-radius:28px; padding:35px; }
.callout ul { margin:0; padding-left:20px; color:var(--muted); }
.callout li { margin:10px 0; }
.about { display:grid; grid-template-columns:.55fr 1.45fr; gap:60px; }
.about-mark img { width:min(320px,90%); position:sticky; top:130px; }
.faq { max-width:900px; }
details { border-top:1px solid var(--line); padding:24px 0; }
details:last-child { border-bottom:1px solid var(--line); }
summary { cursor:pointer; list-style:none; font:500 27px "Cormorant Garamond",serif; }
summary::-webkit-details-marker { display:none; }
details p { color:var(--muted); max-width:760px; }
.contact { max-width:none; text-align:center; background:linear-gradient(135deg,rgba(232,185,207,.18),rgba(184,216,239,.15),rgba(217,203,234,.20)); }
.contact-inner { max-width:720px; margin:auto; }
.contact-note { font-size:12px; color:#857b8b; }
footer { display:flex; justify-content:space-between; gap:25px; padding:35px 5vw; border-top:1px solid var(--line); color:var(--muted); font-size:11px; }
footer strong { display:block; font:600 24px "Cormorant Garamond",serif; color:var(--lavender); }
footer span { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.footer-right { align-self:center; }
@media (max-width: 850px) {
  .menu-toggle { display:block; }
  .nav { display:none; position:absolute; left:0; right:0; top:73px; background:rgba(252,248,245,.98); padding:20px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; }
  .nav.open { display:flex; }
  .nav a { padding:9px; }
  .hero,.two-col,.experience-grid,.about { grid-template-columns:1fr; }
  .hero { padding-top:50px; }
  .hero-mark { order:-1; }
  .hero-mark img { width:min(390px,90%); }
  .cards { grid-template-columns:1fr 1fr; }
  .section { padding-top:75px; padding-bottom:75px; }
  .about-mark { text-align:center; }
  .about-mark img { position:static; width:250px; }
  footer { flex-direction:column; }
}
@media (max-width: 520px) {
  .cards { grid-template-columns:1fr; }
  h1 { font-size:54px; }
  h2 { font-size:44px; }
  .hero-actions { flex-direction:column; }
  .button { text-align:center; }
}
