:root {
  --ink: #173f3f;
  --deep: #376565;
  --teal: #619ea4;
  --cream: #eee7da;
  --paper: #faf7f1;
  --rose: #c88998;
  --gold: #a58353;
  --white: #fff;
  --line: rgba(55,101,101,.18);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; font-size: 17px; line-height: 1.65; }
a { color: inherit; }
img { max-width: 100%; display: block; }
h1,h2,h3,p { margin-top: 0; }
h1,h2 { font-family: "Playfair Display", serif; font-weight: 600; line-height: 1.08; letter-spacing: -.025em; }
h1 { font-size: clamp(3.25rem, 7vw, 6.6rem); margin-bottom: 1.5rem; }
h2 { font-size: clamp(2.3rem, 4.4vw, 4.7rem); margin-bottom: 1.4rem; }
h3 { font-size: 1.3rem; line-height: 1.3; }
em { color: var(--rose); font-weight: 500; }
.eyebrow { font-size: .78rem; line-height: 1.2; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--deep); }
.eyebrow.light { color: #c9e2e0; }
.nav { height: 82px; display: flex; justify-content: space-between; align-items: center; padding: 0 clamp(1.25rem, 4vw, 4rem); position: absolute; inset: 0 0 auto; z-index: 5; color: var(--deep); }
.brand { text-decoration: none; display: flex; align-items: center; gap: .8rem; line-height: 1.1; }
.brand-mark { width: 42px; height: 42px; object-fit: contain; flex: 0 0 auto; }
.brand strong,.brand small { display: block; }
.brand strong { font-family: "Playfair Display", serif; font-size: 1.1rem; }
.brand small { font-size: .67rem; margin-top: .25rem; letter-spacing: .05em; text-transform: uppercase; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: .9rem 1.6rem; border-radius: 999px; background: var(--deep); color: var(--white); text-decoration: none; font-size: .95rem; font-weight: 700; transition: transform .2s, box-shadow .2s, background .2s; box-shadow: 0 10px 30px rgba(23,63,63,.15); }
.button:hover { transform: translateY(-2px); background: var(--ink); box-shadow: 0 14px 35px rgba(23,63,63,.25); }
.button-small { min-height: 44px; padding: .65rem 1.25rem; font-size: .82rem; }
.hero { min-height: 100vh; padding: 9rem clamp(1.25rem, 6vw, 7rem) 5rem; display: grid; grid-template-columns: minmax(0,1.12fr) minmax(320px,.88fr); gap: clamp(3rem,7vw,8rem); align-items: center; background: linear-gradient(135deg, #f7f1e7 0%, #fffdf8 50%, #e5eeee 100%); overflow: hidden; position: relative; }
.hero::after { content: ""; position: absolute; width: 38vw; height: 38vw; border: 1px solid rgba(97,158,164,.22); border-radius: 50%; left: -22vw; bottom: -15vw; }
.hero-copy { position: relative; z-index: 1; }
.lead { max-width: 670px; font-size: clamp(1.15rem, 2vw, 1.45rem); color: #426262; }
.hero-actions { display: flex; align-items: center; gap: 1.5rem; margin: 2rem 0 3rem; flex-wrap: wrap; }
.text-link { text-decoration: none; font-weight: 700; font-size: .92rem; border-bottom: 1px solid var(--deep); }
.text-link span { color: var(--rose); margin-left: .25rem; }
.quick-facts { display: flex; gap: 2.4rem; padding-top: 1.5rem; border-top: 1px solid var(--line); max-width: 620px; }
.quick-facts div { display: flex; align-items: baseline; gap: .55rem; }
.quick-facts strong { font-family: "Playfair Display", serif; font-size: 2.25rem; color: var(--rose); }
.quick-facts span { font-size: .75rem; max-width: 80px; line-height: 1.25; text-transform: uppercase; letter-spacing: .06em; }
.hero-visual { position: relative; z-index: 1; }
.portrait-frame { position: relative; padding: 1rem; background: rgba(255,255,255,.65); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 35px 80px rgba(55,101,101,.16); }
.portrait-frame img { width: 100%; aspect-ratio: 3/4; object-fit: cover; object-position: 50% 35%; filter: saturate(.86); }
.portrait-caption { position: absolute; left: -2.5rem; right: 3rem; bottom: 2.5rem; padding: 1.15rem 1.4rem; color: var(--white); background: rgba(23,63,63,.92); backdrop-filter: blur(8px); }
.portrait-caption span,.portrait-caption strong,.portrait-caption small { display: block; }
.portrait-caption span,.portrait-caption small { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; opacity: .78; }
.portrait-caption strong { font-family: "Playfair Display", serif; font-size: 1.35rem; margin: .15rem 0; }
.seal { position: absolute; right: -2rem; top: -2rem; width: 106px; height: 106px; border-radius: 50%; display: grid; place-content: center; text-align: center; background: var(--rose); color: var(--white); border: 7px solid var(--paper); font-family: "Playfair Display", serif; font-size: 1.7rem; line-height: .9; transform: rotate(8deg); }
.seal span { font-family: "DM Sans", sans-serif; font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; }
.manifesto,.outcomes,.journey,.standard,.founder,.first-edition,.meetings,.important,.final-cta { padding: clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,9rem); }
.manifesto { text-align: center; }
.manifesto h2 { max-width: 1000px; margin-left: auto; margin-right: auto; }
.manifesto-grid { margin: 4rem auto 0; max-width: 1180px; display: grid; grid-template-columns: repeat(3,1fr); text-align: left; border-top: 1px solid var(--line); }
.manifesto-grid p { padding: 2.3rem; border-right: 1px solid var(--line); }
.manifesto-grid p:last-child { border-right: 0; }
.recognition { background: var(--deep); color: var(--white); padding: clamp(5rem,9vw,8rem) clamp(1.25rem,7vw,9rem); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,9rem); align-items: start; }
.recognition h2 { margin-bottom: 0; }
.recognition-copy { font-size: 1.12rem; color: #dcebea; }
.recognition-copy p:last-child { margin-bottom: 0; }
.section-heading { max-width: 840px; margin-bottom: 4rem; }
.section-heading.centered { text-align: center; margin-left: auto; margin-right: auto; }
.section-heading.centered > p:last-child { max-width: 730px; margin: 0 auto; }
.outcome-grid { display: grid; grid-template-columns: repeat(3,1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.outcome-grid article { min-height: 250px; padding: 2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.outcome-grid span { font-family: "Playfair Display", serif; color: var(--rose); font-size: 1.5rem; }
.outcome-grid h3 { margin: 2rem 0 .7rem; }
.outcome-grid p { color: #587272; margin-bottom: 0; font-size: .95rem; }
.journey { background: var(--cream); }
.phases { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.phase { padding: clamp(2rem,4vw,4rem); min-height: 520px; position: relative; overflow: hidden; }
.phase-one { background: var(--white); }
.phase-two { background: var(--teal); color: var(--white); }
.phase-number { position: absolute; right: 1.5rem; bottom: -2rem; font-family: "Playfair Display", serif; font-size: 10rem; line-height: 1; opacity: .07; }
.phase h3 { font-family: "Playfair Display", serif; font-size: 2.1rem; max-width: 500px; }
.phase ul { list-style: none; padding: 1rem 0 0; margin: 0; position: relative; }
.phase li { padding: 1rem 0 1rem 1.7rem; border-top: 1px solid currentColor; border-color: rgba(55,101,101,.18); position: relative; }
.phase-two li { border-color: rgba(255,255,255,.24); }
.phase li::before { content: "·"; position: absolute; left: .35rem; color: var(--rose); font-size: 1.7rem; top: .55rem; }
.curriculum { padding: clamp(5rem,10vw,9rem) clamp(1.25rem,10vw,13rem); background: var(--ink); color: var(--white); display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,9rem); }
.curriculum .section-heading { position: sticky; top: 4rem; align-self: start; }
.module-list details { border-top: 1px solid rgba(255,255,255,.2); }
.module-list details:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.module-list summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 75px 1fr 30px; gap: .75rem; align-items: center; min-height: 86px; }
.module-list summary::-webkit-details-marker { display: none; }
.module-list summary span { color: var(--rose); font-family: "Playfair Display", serif; }
.module-list summary strong { font-size: 1.05rem; }
.module-list summary i { font-style: normal; font-size: 1.6rem; transition: transform .2s; }
.module-list details[open] summary i { transform: rotate(45deg); }
.module-list details p { margin: 0 0 1.7rem 75px; color: #b9cecc; max-width: 620px; }
.standard { background: linear-gradient(120deg,#f7f1e7,#e6eeee); }
.standard-card { max-width: 1200px; margin: 0 auto; background: var(--white); padding: clamp(2rem,6vw,5.5rem); display: grid; grid-template-columns: 1fr .8fr; gap: clamp(3rem,7vw,7rem); box-shadow: 0 30px 80px rgba(23,63,63,.09); }
.standard-card h2 { font-size: clamp(2.3rem,4vw,4.2rem); }
.standard-card > div:last-child { padding-top: 2.3rem; }
.founder { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,9vw,10rem); align-items: center; }
.founder-quote { padding: clamp(2.5rem,5vw,5rem); background: var(--cream); position: relative; }
.quote-mark { font-family: "Playfair Display", serif; color: var(--rose); font-size: 7rem; line-height: .5; }
blockquote { margin: 1.5rem 0 2rem; font-family: "Playfair Display", serif; font-size: clamp(1.55rem,3vw,2.5rem); line-height: 1.35; }
.founder-quote p { font-weight: 700; margin: 0; }
.first-edition { background: var(--cream); }
.first-edition .section-heading { max-width: 940px; }
.first-edition-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.first-edition-grid article { background: var(--white); padding: clamp(2rem,4vw,3.25rem); border-top: 4px solid var(--rose); }
.first-edition-grid span { font-family: "Playfair Display", serif; color: var(--rose); font-size: 1.5rem; }
.first-edition-grid h3 { font-family: "Playfair Display", serif; font-size: 1.55rem; margin: 1.6rem 0 .8rem; }
.first-edition-grid p { color: #587272; margin-bottom: 0; font-size: .95rem; }
.first-edition-note { max-width: 820px; margin: 2.5rem auto 0; text-align: center; font-family: "Playfair Display", serif; font-size: 1.4rem; color: var(--deep); }
.meetings { background: var(--paper); }
.meetings .section-heading { max-width: 940px; }
.meeting-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; max-width: 1180px; margin: 0 auto; }
.meeting-card { background: var(--white); border: 1px solid var(--line); box-shadow: 0 24px 60px rgba(23,63,63,.08); }
.video-frame { position: relative; width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--ink); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.meeting-copy { padding: clamp(1.6rem,3vw,2.5rem); }
.meeting-number { margin-bottom: .8rem; font-family: "Playfair Display", serif; color: var(--rose); font-size: 1.4rem; line-height: 1; }
.meeting-copy h3 { margin-bottom: .75rem; font-family: "Playfair Display", serif; font-size: 1.55rem; }
.meeting-copy > p:not(.meeting-number) { color: #587272; font-size: .95rem; }
.meeting-copy .text-link { display: inline-block; margin-top: .4rem; }
.investment { padding: clamp(5rem,10vw,9rem) 1.25rem; background: var(--deep); color: var(--white); text-align: center; }
.investment-card { max-width: 850px; margin: 0 auto; }
.limited-places { width: fit-content; margin: 0 auto 2rem; padding: .85rem 1.4rem; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; background: rgba(255,255,255,.1); line-height: 1.25; }
.limited-places strong,.limited-places span { display: block; }
.limited-places strong { font-family: "Playfair Display", serif; font-size: 1.45rem; }
.limited-places span { margin-top: .2rem; font-size: .7rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; color: #dcebea; }
.investment-intro { max-width: 650px; margin: 0 auto 2.5rem; color: #dcebea; font-size: 1.1rem; }
.price { width: min(100%,460px); margin: 0 auto 2rem; padding: 1.5rem; border-top: 1px solid rgba(255,255,255,.3); border-bottom: 1px solid rgba(255,255,255,.3); }
.price span,.price small,.price strong,.price del { display: block; }
.price span,.price small { font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; opacity: .8; }
.price del { margin: .35rem 0 1.15rem; font-family: "Playfair Display", serif; font-size: 2.1rem; line-height: 1.1; opacity: .72; text-decoration-thickness: 2px; text-decoration-color: var(--rose); }
.price .first-price-label { color: #fff; opacity: 1; font-weight: 700; }
.price strong { font-family: "Playfair Display", serif; font-size: 4.7rem; line-height: 1.15; }
.price .saving { margin-top: .35rem; color: #fff; opacity: .82; letter-spacing: .05em; }
.button-light { background: var(--white); color: var(--deep); }
.button-light:hover { background: var(--cream); color: var(--ink); }
.secure { margin: 1rem 0 0; font-size: .78rem; opacity: .65; }
.transfer-option { max-width: 590px; margin: 1.35rem auto 0; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.22); color: #dcebea; font-size: .9rem; }
.transfer-option a { color: var(--white); font-weight: 700; }
.important-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; max-width: 1180px; margin: 0 auto; }
.important-grid article { padding: 2rem; background: var(--white); border-top: 3px solid var(--teal); }
.important-grid p { color: #587272; margin-bottom: 0; font-size: .95rem; }
.final-cta { text-align: center; background: var(--cream); }
.k-symbol { width: 90px; height: 90px; margin: 0 auto 2rem; object-fit: contain; }
.final-cta h2 { max-width: 920px; margin-left: auto; margin-right: auto; }
.final-cta > p:last-child { margin: 2rem 0 0; font-size: .9rem; }
footer { padding: 2.5rem clamp(1.25rem,6vw,7rem); display: flex; align-items: center; justify-content: space-between; gap: 2rem; background: var(--ink); color: var(--white); }
footer p { margin: 0; font-size: .8rem; opacity: .7; }
.mobile-cta { display: none; }
@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; padding-top: 8rem; }
  .hero-copy { max-width: 780px; }
  .hero-visual { max-width: 560px; margin: 0 auto; }
  .manifesto-grid,.outcome-grid,.important-grid { grid-template-columns: 1fr 1fr; }
  .first-edition-grid { grid-template-columns: 1fr; }
  .meeting-grid { grid-template-columns: 1fr; max-width: 720px; }
  .manifesto-grid p:last-child { grid-column: 1/-1; border-top: 1px solid var(--line); }
  .recognition,.curriculum,.standard-card,.founder { grid-template-columns: 1fr; }
  .curriculum .section-heading { position: static; }
  .curriculum .section-heading { margin-bottom: 0; }
}
@media (max-width: 700px) {
  body { font-size: 16px; padding-bottom: 72px; }
  h1 { font-size: clamp(3rem,14vw,4.4rem); }
  .nav { height: 72px; }
  .nav .button { display: none; }
  .brand strong { font-size: .95rem; }
  .brand small { font-size: .56rem; }
  .brand-mark { width: 38px; height: 38px; }
  .hero { padding-left: 1.1rem; padding-right: 1.1rem; }
  .quick-facts { gap: 1rem; justify-content: space-between; }
  .quick-facts div { display: block; }
  .quick-facts strong,.quick-facts span { display: block; }
  .quick-facts span { font-size: .62rem; }
  .portrait-caption { left: .2rem; right: 2rem; bottom: 1.8rem; }
  .seal { width: 86px; height: 86px; right: -.5rem; top: -1.5rem; }
  .manifesto-grid,.outcome-grid,.phases,.important-grid { grid-template-columns: 1fr; }
  .manifesto-grid p,.manifesto-grid p:last-child { grid-column: auto; border-right: 0; border-top: 1px solid var(--line); }
  .manifesto-grid p:first-child { border-top: 0; }
  .recognition { gap: 2rem; }
  .phase { min-height: auto; }
  .outcome-grid article { min-height: auto; }
  .module-list summary { grid-template-columns: 58px 1fr 24px; }
  .module-list details p { margin-left: 58px; }
  .price strong { font-size: 4rem; }
  footer { flex-direction: column; align-items: flex-start; }
  .mobile-cta { display: flex; position: fixed; z-index: 20; left: .75rem; right: .75rem; bottom: .65rem; min-height: 54px; align-items: center; justify-content: center; background: var(--rose); color: var(--white); border-radius: 999px; text-decoration: none; font-weight: 700; box-shadow: 0 12px 28px rgba(23,63,63,.3); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button { transition: none; } }
