:root {
    --green: #123c33;
    --deep-green: #0b2d27;
    --soft-green: #e7f0eb;
    --rose: #aa5575;
    --plum: #713c5a;
    --gold: #d2aa54;
    --cream: #f1ece3;
    --paper: #fffdfa;
    --ink: #172723;
    --muted: #63726c;
    --line: rgba(18, 60, 51, .15);
}

* { box-sizing: border-box; margin: 0; }
html { scroll-behavior: smooth; }
body { background: var(--cream); color: var(--ink); font-family: "DM Sans", sans-serif; line-height: 1.6; }
body::before { background-image: radial-gradient(rgba(18,60,51,.12) .7px, transparent .7px); background-size: 10px 10px; content: ""; inset: 0; opacity: .35; pointer-events: none; position: fixed; z-index: -1; }

.site-header, .hero, .section, .stats-band, .site-footer { margin-inline: auto; width: min(98%, 1600px); }
.site-header { align-items: center; background: rgba(255,253,250,.78); border: 1px solid rgba(18,60,51,.12); border-radius: 22px; box-shadow: 0 10px 28px rgba(18,60,51,.06); display: flex; justify-content: space-between; margin-top: 16px; min-height: 78px; }
.brand-lockup { align-items: center; color: var(--deep-green); display: flex; font: 1.12rem/1 "Playfair Display", serif; gap: 10px; text-decoration: none; }
.brand-logo { border-radius: 50%; box-shadow: 0 5px 14px rgba(18,60,51,.1); height: 58px; object-fit: cover; width: 58px; }
.brand-lockup small { display: block; font: 700 .7rem "DM Sans", sans-serif; letter-spacing: .13em; margin-top: 5px; text-transform: uppercase; }
.site-nav { align-items: center; background: rgba(231,240,235,.72); border: 1px solid rgba(18,60,51,.08); border-radius: 999px; display: flex; gap: 3px; padding: 5px; }
.site-nav a { border-radius: 999px; color: var(--green); font-size: .84rem; font-weight: 700; padding: 7px 13px; text-decoration: none; transition: background .2s ease, color .2s ease; }
.site-nav a:hover { background: var(--paper); color: var(--plum); }
.site-nav a:hover, .text-link:hover { color: var(--rose); }
.nav-cta, .button { align-items: center; border: 0; border-radius: 3px; cursor: pointer; display: inline-flex; font: 700 .86rem "DM Sans", sans-serif; justify-content: center; min-height: 48px; padding: 0 22px; text-decoration: none; transition: transform .2s; }
.nav-cta { background: var(--green); color: var(--paper); }.nav-cta span { font-size: 1.2rem; margin-left: 10px; }.nav-cta:hover, .button:hover { transform: translateY(-2px); }

.hero { align-items: center; display: grid; gap: 64px; grid-template-columns: 1.12fr .88fr; min-height: 555px; padding: 62px 0; }
.eyebrow, .program-tag { color: var(--rose); font-size: .71rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, h3 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; line-height: 1.08; }
h1 { color: var(--deep-green); font-size: clamp(3rem, 5.25vw, 4.75rem); letter-spacing: -.045em; margin: 16px 0 24px; max-width: 610px; }
h1 em, h2 em { color: var(--plum); }.lead { color: var(--muted); font-size: 1.07rem; max-width: 570px; }
.hero-actions { align-items: center; display: flex; gap: 25px; margin-top: 31px; }.button-primary { background: var(--rose); box-shadow: 0 12px 24px rgba(170,85,117,.18); color: var(--paper); }.text-link { color: var(--green); font-weight: 700; text-decoration: none; }
.credentials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 35px; }.credentials span { border: 1px solid rgba(47,117,98,.25); border-radius: 20px; color: var(--green); font-size: .72rem; font-weight: 700; padding: 5px 10px; }

.hero-visual { background: radial-gradient(circle at 50% 38%, #fffefa 0 27%, transparent 27.3%), linear-gradient(145deg, #e7f0eb, #cadbd4); display: grid; min-height: 405px; overflow: hidden; place-items: center; position: relative; }
.sun-shape { border: 1px solid rgba(210,170,84,.65); border-radius: 50%; height: 330px; position: absolute; width: 330px; }.sun-shape::after { border: 1px solid rgba(210,170,84,.35); border-radius: 50%; content: ""; inset: 32px; position: absolute; }
.portrait-frame { align-items: center; aspect-ratio: .78; background: rgba(255,253,250,.94); box-shadow: 17px 17px 0 rgba(113,60,90,.13); display: flex; flex-direction: column; justify-content: space-between; padding: 24px; text-align: center; width: min(73%, 290px); z-index: 1; }
.portrait-frame img { border-radius: 50%; height: 88px; object-fit: cover; width: 88px; }.portrait-frame p { color: var(--green); font: 1.12rem/1.25 "Playfair Display", serif; }.hero-note { display: none; }

.stats-band { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); }.stats-band div { border-right: 1px solid var(--line); min-height: 138px; padding: 26px 24px; }.stats-band div:last-child { border: 0; }.stats-band strong { color: var(--gold); display: block; font: 3rem/1 "Playfair Display", serif; }.stats-band span { color: var(--muted); display: block; font-size: .78rem; line-height: 1.35; margin-top: 10px; max-width: 155px; }

.section { padding: 110px 0; } h2 { color: var(--deep-green); font-size: clamp(2.25rem, 4.5vw, 4rem); letter-spacing: -.04em; }.section-intro { max-width: 690px; }.section-intro h2 { margin: 14px 0 19px; }.section-intro > p:not(.eyebrow), .section-copy > p, .benefit-card p, .program-card > p:not(.program-tag), .video-card > p:not(.program-tag), .method-heading > p:not(.eyebrow), .contact-copy > p:not(.eyebrow) { color: var(--muted); }
.story { align-items: center; display: grid; gap: 85px; grid-template-columns: .8fr 1.2fr; }.story-art { align-items: center; background: var(--green); color: var(--paper); display: flex; justify-content: center; min-height: 450px; overflow: hidden; position: relative; }.art-orbit { border: 1px solid rgba(237,214,157,.48); border-radius: 50%; height: 410px; position: absolute; width: 410px; }.art-orbit::after { border: 1px solid rgba(237,214,157,.25); border-radius: 50%; content: ""; inset: 50px; position: absolute; }.story-art p { font: italic 1.9rem/1.25 "Playfair Display", serif; padding: 30px; text-align: center; z-index: 1; }.story-art span { bottom: 22px; color: #edd69d; font: 2.2rem "Playfair Display", serif; position: absolute; right: 25px; }.section-copy h2 { font-size: clamp(2.25rem, 4vw, 3.6rem); margin: 15px 0 25px; }.section-copy > p + p { margin-top: 14px; }.section-copy blockquote { border-left: 3px solid var(--gold); color: var(--plum); font: italic 1.25rem/1.45 "Playfair Display", serif; margin-top: 30px; padding: 20px 0 20px 24px; }.location { color: var(--green); display: block; font-size: .78rem; font-weight: 700; letter-spacing: .06em; margin-top: 20px; }

.benefits { background: var(--paper); }.benefit-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 52px; }.benefit-card { background: var(--paper); border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 235px; padding: 28px; }.benefit-card:hover { background: var(--soft-green); }.benefit-card > span, .step > span { color: var(--gold); font: 1.25rem "Playfair Display", serif; }.benefit-card h3 { color: var(--green); font-size: 1.35rem; margin: 33px 0 12px; }.benefit-card p { font-size: .9rem; }
.method { background: var(--deep-green); color: var(--paper); display: grid; gap: 80px; grid-template-columns: .85fr 1.15fr; }.method-heading h2 { color: var(--paper); font-size: clamp(2.2rem, 4vw, 3.55rem); margin: 15px 0 22px; }.method-heading > p:not(.eyebrow) { color: #d9e4df; }.formula { align-items: center; color: #edd69d; display: flex; font: 1.35rem "Playfair Display", serif; gap: 13px; margin-top: 38px; }.formula b { color: var(--gold); }.steps { border-top: 1px solid rgba(255,255,255,.2); }.step { border-bottom: 1px solid rgba(255,255,255,.2); display: grid; gap: 15px; grid-template-columns: 50px 1fr; padding: 21px 0; }.step div > p:first-child { color: #edd69d; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }.step h3 { color: var(--paper); font-size: 1.45rem; margin: 3px 0 7px; }.step div > p:last-child { color: #d9e4df; font-size: .9rem; }

.programs { background: #f3eee5; }.program-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); margin-top: 50px; }.program-card { background: var(--paper); border: 1px solid var(--line); display: flex; flex-direction: column; min-height: 280px; padding: 29px; }.program-card.featured { background: var(--plum); border-color: var(--plum); grid-column: span 2; }.program-card h3 { color: var(--green); font-size: 1.6rem; margin: 20px 0 12px; }.program-card.featured h3, .program-card.featured > p:not(.program-tag), .program-card.featured .program-meta { color: var(--paper); }.featured .program-tag { color: #edd69d; }.program-card > p:not(.program-tag) { font-size: .9rem; }.program-meta { color: var(--green); font-size: .76rem; font-weight: 700; margin-top: auto; padding-top: 20px; }
.videos { background: var(--rose); }.video-grid, .testimonial-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin-top: 50px; }.video-placeholder { align-items: center; background: linear-gradient(130deg, var(--deep-green), #2f7562); display: flex; height: 200px; justify-content: center; margin-bottom: 20px; }.video-placeholder span { border: 1px solid #edd69d; border-radius: 50%; color: #edd69d; display: grid; height: 53px; padding-left: 3px; place-items: center; width: 53px; }.video-card h3 { color: var(--green); font-size: 1.45rem; margin: 12px 0 7px; }.video-card > p:last-child { font-size: .9rem; }
.testimonials { background: var(--soft-green); }.testimonial { background: var(--paper); padding: 30px; }.testimonial blockquote { color: var(--green); font: italic 1.28rem/1.45 "Playfair Display", serif; }.testimonial figcaption { color: var(--green); display: grid; font-size: .78rem; gap: 2px; margin-top: 28px; }.testimonial figcaption span { color: var(--muted); }
.faq { display: grid; gap: 70px; grid-template-columns: .75fr 1.25fr; }.faq-list { border-top: 1px solid var(--line); }.faq details { border-bottom: 1px solid var(--line); }.faq summary { color: var(--green); cursor: pointer; display: flex; font: 1.2rem "Playfair Display", serif; gap: 20px; justify-content: space-between; list-style: none; padding: 20px 0; }.faq summary::-webkit-details-marker { display: none; }.faq summary span { color: var(--rose); font-family: "DM Sans", sans-serif; }.faq details[open] summary span { transform: rotate(45deg); }.faq details p { color: var(--muted); font-size: .92rem; padding: 0 35px 22px 0; }
.contact { background: var(--green); display: grid; gap: 80px; grid-template-columns: .9fr 1.1fr; padding: 80px; }.contact-copy h2 { color: var(--paper); margin: 13px 0 20px; }.contact-copy > p:not(.eyebrow) { color: #dce7e1; }.contact-links { display: grid; gap: 10px; margin-top: 32px; }.contact-links a { color: #edd69d; font-size: .86rem; text-decoration: none; }.contact-form { background: var(--paper); display: grid; gap: 15px; padding: 30px; }.contact-form label { color: var(--green); display: grid; font-size: .79rem; font-weight: 700; gap: 6px; }.contact-form input, .contact-form select, .contact-form textarea { background: #fff; border: 1px solid #c8d3ce; color: var(--ink); font: .95rem "DM Sans", sans-serif; padding: 12px; width: 100%; }.contact-form textarea { resize: vertical; }.form-note { color: var(--muted); font-size: .75rem; text-align: center; }
.site-footer { align-items: center; color: var(--muted); display: grid; font-size: .78rem; gap: 30px; grid-template-columns: 1fr 1.3fr 1fr; padding: 42px 0; }.footer-brand { align-items: center; color: var(--deep-green); display: flex; font: 1rem "Playfair Display", serif; gap: 9px; }.footer-brand img { border-radius: 50%; height: 35px; width: 35px; }.footer-brand small { font: 700 .62rem "DM Sans", sans-serif; letter-spacing: .08em; text-transform: uppercase; }.site-footer > span { text-align: right; }
.hero-visual, .story-art { border-radius: 34px; }
.stats-band { border-radius: 24px; overflow: hidden; }
.benefit-card, .program-card, .testimonial, .video-placeholder, .contact, .contact-form { border-radius: 20px; }
.benefit-card, .program-card, .testimonial { box-shadow: 0 12px 28px rgba(18, 60, 51, .06); transition: box-shadow .25s ease, transform .25s ease; }
.benefit-card:hover, .program-card:hover, .testimonial:hover { box-shadow: 0 20px 38px rgba(18, 60, 51, .12); transform: translateY(-5px); }
.hero-visual::before { background: radial-gradient(circle, rgba(210,170,84,.26) 0 2px, transparent 3px); background-size: 23px 23px; content: ""; height: 145px; opacity: .8; position: absolute; right: -32px; top: -28px; width: 185px; }
.portrait-frame { border-radius: 26px; gap: 42px; justify-content: center; }
.portrait-frame img { box-shadow: 0 12px 24px rgba(18,60,51,.1); height: 128px; width: 128px; }
.button-primary { border-radius: 999px; padding-inline: 28px; }
.nav-cta { border-radius: 999px; }
.contact { border-radius: 34px; box-shadow: 0 24px 50px rgba(11, 45, 39, .18); }
.site-footer { grid-template-columns: 1fr; justify-items: center; padding-top: 54px; text-align: center; }
.site-footer > p { color: var(--plum); font: italic 700 clamp(1.15rem, 2.1vw, 1.55rem)/1.45 "Playfair Display", serif; max-width: 760px; }
.site-footer > span { text-align: center; }
.section { padding-block: 92px; }
.site-header { padding-inline: clamp(22px, 3vw, 52px); }
.hero, .site-footer { padding-inline: clamp(24px, 3.2vw, 56px); }
.section { padding-inline: clamp(26px, 3.4vw, 60px); }
.stats-band { padding-inline: clamp(10px, 1.2vw, 20px); }
.story { align-items: start; }
.story-art { margin-top: 5px; }
.method.section, .contact.section { padding-block: 80px; }
.method { background: radial-gradient(circle at 92% 8%, rgba(210,170,84,.18), transparent 23%), linear-gradient(135deg, #0b2d27, #123c33); border-radius: 36px; overflow: hidden; position: relative; }
.method::after { border: 1px solid rgba(237,214,157,.17); border-radius: 50%; content: ""; height: 430px; position: absolute; right: -215px; top: -220px; width: 430px; }
.method-heading { align-self: center; border-left: 2px solid var(--gold); padding-left: 28px; position: relative; z-index: 1; }
.formula { flex-wrap: wrap; gap: 9px; }
.formula span { background: rgba(255,255,255,.08); border: 1px solid rgba(237,214,157,.32); border-radius: 999px; padding: 7px 15px; }
.formula b { font-family: "DM Sans", sans-serif; font-size: .95rem; }
.steps { border: 0; display: grid; gap: 12px; position: relative; z-index: 1; }
.step { background: rgba(255,253,250,.07); border: 1px solid rgba(255,255,255,.13); border-radius: 18px; padding: 20px 22px; transition: background .25s ease, transform .25s ease; }
.step:hover { background: rgba(255,253,250,.13); transform: translateX(6px); }
.step > span { align-self: start; background: rgba(210,170,84,.14); border-radius: 50%; display: grid; height: 36px; place-items: center; width: 36px; }
.step h3 { font-size: 1.55rem; }
.reveal { animation: rise .65s both; }@keyframes rise { from { opacity: 0; transform: translateY(17px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) { .site-header { padding: 17px 0; }.site-nav { display: none; }.hero, .story, .method, .faq, .contact { gap: 45px; grid-template-columns: 1fr; }.hero { min-height: auto; padding: 65px 0; }.stats-band { grid-template-columns: repeat(2, 1fr); }.stats-band div:nth-child(2) { border-right: 0; }.stats-band div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.benefit-grid, .program-grid { grid-template-columns: repeat(2, 1fr); }.program-card.featured { grid-column: span 2; }.contact { padding: 55px; } }
@media (max-width: 600px) { .site-header, .hero, .section, .stats-band, .site-footer { width: min(100% - 28px, 1120px); }.brand-lockup { font-size: 1rem; }.nav-cta { font-size: .76rem; min-height: 40px; padding: 0 13px; }.hero { padding: 48px 0; }.hero-actions { align-items: stretch; flex-direction: column; gap: 16px; }.hero-visual { min-height: 340px; }.stats-band div { min-height: 118px; padding: 20px 15px; }.stats-band strong { font-size: 2.35rem; }.section { padding: 75px 0; }.story-art { min-height: 320px; }.benefit-grid, .program-grid, .video-grid, .testimonial-grid { grid-template-columns: 1fr; }.program-card.featured { grid-column: auto; }.benefit-card { min-height: 0; }.faq { gap: 32px; }.contact { padding: 55px 14px; width: 100%; }.contact-copy, .contact-form { margin: auto; width: min(100% - 28px, 600px); }.site-footer { gap: 18px; grid-template-columns: 1fr; }.site-footer > span { text-align: left; } }
