:root, [data-theme="light"] {
  color-scheme: light;
  --font-display: 'Zodiak', Georgia, serif;
  --font-body: 'General Sans', 'Helvetica Neue', sans-serif;
  --text-xs: clamp(.75rem, .72rem + .12vw, .8125rem);
  --text-sm: clamp(.875rem, .84rem + .12vw, .9375rem);
  --text-base: clamp(1rem, .98rem + .08vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + .45vw, 1.375rem);
  --text-xl: clamp(1.75rem, 1.2rem + 1.5vw, 2.25rem);
  --text-hero: clamp(2.625rem, 1.3rem + 3.4vw, 4.5rem);
  --text-brand: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem; --space-4: 1rem;
  --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem;
  --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
  --color-bg: oklch(97.4% .015 84);
  --color-surface: oklch(99% .009 84);
  --color-surface-offset: oklch(93.4% .025 84);
  --color-text: oklch(31% .045 158);
  --color-text-muted: oklch(44% .027 150);
  --color-primary: oklch(37.5% .058 157);
  --color-primary-hover: oklch(29% .05 157);
  --color-primary-highlight: oklch(87% .055 151);
  --color-orange: oklch(54% .131 46);
  --color-border: oklch(31% .045 158 / .17);
  --color-forest: oklch(31% .052 155);
  --color-on-forest: oklch(97.4% .015 84);
  --color-on-forest-muted: oklch(82% .031 125);
  --color-button-text: oklch(98% .01 84);
  --radius-sm: .25rem; --radius-md: .5rem; --radius-lg: .75rem; --radius-xl: 1rem;
  --radius-full: 9999px; --radius-arch: 13rem;
  --shadow-md: 0 8px 28px oklch(25% .035 150 / .1);
  --transition-interactive: 180ms cubic-bezier(.16,1,.3,1);
  --content-wide: 1240px;
  --gutter: clamp(var(--space-5), 4.5vw, var(--space-16));
}
[data-theme="dark"] {
  color-scheme: dark;
  --color-bg: oklch(20% .025 155);
  --color-surface: oklch(24% .027 155);
  --color-surface-offset: oklch(26% .03 155);
  --color-text: oklch(93% .018 84);
  --color-text-muted: oklch(78% .025 125);
  --color-primary: oklch(79% .073 143);
  --color-primary-hover: oklch(88% .055 143);
  --color-primary-highlight: oklch(39% .06 150);
  --color-orange: oklch(77% .11 58);
  --color-border: oklch(93% .018 84 / .17);
  --color-button-text: oklch(21% .035 155);
  --shadow-md: 0 8px 28px oklch(8% .015 150 / .25);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --color-bg: oklch(20% .025 155);
    --color-surface: oklch(24% .027 155);
    --color-surface-offset: oklch(26% .03 155);
    --color-text: oklch(93% .018 84);
    --color-text-muted: oklch(78% .025 125);
    --color-primary: oklch(79% .073 143);
    --color-primary-hover: oklch(88% .055 143);
    --color-primary-highlight: oklch(39% .06 150);
    --color-orange: oklch(77% .11 58);
    --color-border: oklch(93% .018 84 / .17);
    --color-button-text: oklch(21% .035 155);
  }
}
.container { width: min(100% - var(--gutter) * 2, var(--content-wide)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 10; top: var(--space-4); left: var(--space-4); padding: var(--space-3) var(--space-5); background: var(--color-text); color: var(--color-bg); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.site-header { border-bottom: 1px solid var(--color-border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-4); padding-block: var(--space-5); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; flex-shrink: 0; color: var(--color-text); min-height: 44px; }
.brand-mark { width: 44px; height: 44px; flex-shrink: 0; }
.brand-name { display: block; font-size: var(--text-brand); font-weight: 600; letter-spacing: -.045em; line-height: 1.1; }
.brand-name > span { display: block; font-size: var(--text-xs); letter-spacing: .15em; font-weight: 500; margin-top: var(--space-1); text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: var(--space-8); }
.main-nav a, .footer-back { text-decoration: none; font-size: var(--text-sm); font-weight: 500; display: inline-flex; align-items: center; min-height: 44px; }
.main-nav a:hover, .footer-back:hover { color: var(--color-orange); }
.main-nav a:active, .footer-back:active { opacity: .7; }
.header-actions { display: flex; align-items: center; gap: var(--space-4); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-8); min-height: 54px; padding: var(--space-4) var(--space-6); background: var(--color-primary); color: var(--color-button-text); text-decoration: none; font-size: var(--text-sm); font-weight: 600; border-radius: var(--radius-sm); line-height: 1.3; }
.button:hover { background: var(--color-primary-hover); }
.button:active { box-shadow: inset 0 0 0 2px currentColor; }
.button > span, .text-link > span { font-size: var(--text-lg); font-weight: 400; line-height: 1; }
.button-small { min-height: 44px; padding: var(--space-3) var(--space-5); gap: var(--space-5); }
.theme-toggle { width: 44px; height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-full); display: grid; place-items: center; }
.theme-toggle:hover { background: var(--color-surface-offset); }
.theme-toggle:active { background: var(--color-primary-highlight); }
.theme-symbol { width: 16px; height: 16px; border: 1.5px solid currentColor; border-radius: var(--radius-full); background: linear-gradient(90deg, currentColor 50%, transparent 50%); transform: rotate(-30deg); }
.hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(var(--space-8), 5vw, var(--space-20)); align-items: center; padding-block: var(--space-16) var(--space-20); }
.eyebrow { text-transform: uppercase; font-size: var(--text-xs); font-weight: 600; letter-spacing: .13em; line-height: 1.5; margin-bottom: var(--space-6); }
.hero .eyebrow { display: flex; align-items: center; gap: var(--space-3); }
.label-line { height: 1px; width: 28px; background: var(--color-orange); flex-shrink: 0; }
h1 { font-family: var(--font-display); font-weight: 400; font-size: var(--text-hero); letter-spacing: -.067em; line-height: 1.16; margin-bottom: var(--space-6); }
h1 em { color: var(--color-orange); font-weight: 400; }
.hero-description { color: var(--color-text-muted); max-width: 43ch; margin-bottom: var(--space-8); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
.text-link { display: inline-flex; align-items: center; gap: var(--space-3); min-height: 44px; text-underline-offset: 5px; text-decoration-thickness: 1px; font-size: var(--text-sm); font-weight: 600; }
.text-link:hover { color: var(--color-orange); }
.text-link:active { text-decoration-thickness: 2px; }
.hero-contact { color: var(--color-text-muted); font-size: var(--text-xs); margin-top: var(--space-5); }
.hero-contact a { display: inline-flex; min-height: 44px; align-items: center; text-underline-offset: 4px; }
.hero-contact a:hover { color: var(--color-orange); }
.hero-visual { position: relative; padding-left: var(--space-6); margin-bottom: var(--space-6); }
.hero-image-wrap { aspect-ratio: .99; overflow: hidden; border-radius: var(--radius-arch) var(--radius-arch) var(--radius-sm) var(--radius-sm); background: var(--color-surface-offset); }
.hero-image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.photo-note { position: absolute; left: 0; bottom: calc(var(--space-6) * -1); display: flex; flex-direction: column; padding: var(--space-5) var(--space-6); background: var(--color-surface); box-shadow: var(--shadow-md); font-size: var(--text-sm); line-height: 1.5; border-radius: var(--radius-sm); }
.photo-note-label { font-weight: 600; }
.photo-note > span:last-child { color: var(--color-text-muted); }
.image-index { position: absolute; right: 0; bottom: calc(var(--space-8) * -1); font-size: var(--text-xs); letter-spacing: .09em; writing-mode: horizontal-tb; display: none; }
.program-strip { background: var(--color-forest); color: var(--color-on-forest); }
.strip-inner { display: grid; grid-template-columns: .9fr .95fr 1.3fr 1.1fr; align-items: center; gap: var(--space-8); padding-block: var(--space-8); }
.strip-intro { font-size: var(--text-sm); font-weight: 500; line-height: 1.6; }
.strip-intro > span { color: var(--color-on-forest-muted); font-weight: 400; }
.strip-fact { border-left: 1px solid oklch(97% .015 84 / .22); padding-left: var(--space-8); }
.fact-label { display: block; color: var(--color-on-forest-muted); font-size: var(--text-xs); margin-bottom: var(--space-2); }
.strip-fact p { font-size: var(--text-sm); font-weight: 500; line-height: 1.5; }
.section-space { padding-block: clamp(var(--space-16), 7.5vw, var(--space-24)); }
h2 { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 400; letter-spacing: -.04em; line-height: 1.3; }
h3 { font-size: var(--text-lg); font-weight: 500; letter-spacing: -.025em; line-height: 1.35; }
.why-section { display: grid; grid-template-columns: 1fr 1.12fr; gap: var(--space-20); }
.why-content > p { color: var(--color-text-muted); margin-bottom: var(--space-4); }
.why-content > .section-intro { color: var(--color-text); }
.benefit-list { margin-top: var(--space-8); }
.benefit { display: grid; grid-template-columns: auto 1fr; gap: var(--space-6); padding-block: var(--space-6); border-top: 1px solid var(--color-border); }
.benefit-number { font-size: var(--text-xs); color: var(--color-orange); padding-top: var(--space-1); font-variant-numeric: tabular-nums; }
.benefit p { margin-top: var(--space-2); color: var(--color-text-muted); }
.partnership { display: grid; grid-template-columns: 1.05fr 1fr; background: var(--color-surface-offset); border-radius: var(--radius-md); overflow: hidden; }
.partnership-image { min-width: 0; min-height: 420px; }
.partnership-image img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 50%; background: var(--color-surface-offset); }
.partnership-copy { padding: clamp(var(--space-8), 4vw, var(--space-16)); }
.partnership-copy .eyebrow { margin-bottom: var(--space-4); }
.partnership-copy h2 { margin-bottom: var(--space-6); }
.partnership-copy p:not(.eyebrow) { color: var(--color-text-muted); margin-bottom: var(--space-4); }
.partnership-copy .text-link { margin-top: var(--space-2); }
.process-section { display: grid; grid-template-columns: 1fr 1.12fr; gap: var(--space-20); }
.process-intro > p:not(.eyebrow) { margin-block: var(--space-6) var(--space-8); color: var(--color-text-muted); max-width: 38ch; }
.steps li { display: grid; grid-template-columns: auto 1fr; gap: var(--space-6); border-top: 1px solid var(--color-border); padding-block: var(--space-8); }
.steps li:first-child { padding-top: 0; border-top: 0; }
.steps li:last-child { padding-bottom: 0; }
.step-number { color: var(--color-orange); font-size: var(--text-lg); line-height: 1.35; font-variant-numeric: tabular-nums; font-weight: 500; }
.steps p { color: var(--color-text-muted); margin-top: var(--space-3); }
.questions-section { background: var(--color-surface-offset); padding-block: var(--space-20); }
.questions-inner { display: grid; grid-template-columns: 1fr 1.12fr; gap: var(--space-20); }
.questions-intro > p:last-child { margin-top: var(--space-6); color: var(--color-text-muted); }
.faq-list > div { padding-block: var(--space-6); border-top: 1px solid var(--color-border); }
.faq-list > div:first-child { padding-top: 0; border-top: 0; }
.faq-list > div:last-child { padding-bottom: 0; }
.faq-list dt { font-size: var(--text-base); font-weight: 600; line-height: 1.5; }
.faq-list dd { margin-top: var(--space-3); color: var(--color-text-muted); font-size: var(--text-base); line-height: 1.65; }
.contact-section { padding-block: var(--space-20) var(--space-12); }
.contact-panel { background: var(--color-forest); color: var(--color-on-forest); border-radius: var(--radius-md); padding: clamp(var(--space-8), 4.5vw, var(--space-16)); display: grid; grid-template-columns: 1.2fr 1fr; align-items: start; gap: var(--space-12); }
.contact-copy .eyebrow { color: var(--color-on-forest-muted); }
.contact-copy > p:last-child { margin-top: var(--space-6); color: var(--color-on-forest-muted); }
.contact-details { font-style: normal; min-width: 0; }
.contact-person { font-size: var(--text-lg); margin-bottom: var(--space-4); font-weight: 500; }
.button-cream { background: var(--color-on-forest); color: var(--color-forest); width: 100%; }
.button-cream:hover { background: var(--color-on-forest-muted); }
.contact-email { display: flex; align-items: center; min-height: 44px; font-size: var(--text-sm); margin-top: var(--space-3); text-underline-offset: 5px; overflow-wrap: anywhere; }
.contact-phone { display: flex; align-items: center; justify-content: space-between; min-height: 44px; font-size: var(--text-lg); text-decoration: none; }
.contact-email:hover, .contact-phone:hover { color: var(--color-on-forest-muted); }
.contact-email:active, .contact-phone:active { opacity: .75; }
.contact-tip { font-size: var(--text-xs); color: var(--color-on-forest-muted); margin-top: var(--space-5); }
.site-footer { padding-block: var(--space-4) var(--space-6); }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); padding-bottom: var(--space-8); }
.footer-top > p { color: var(--color-text-muted); font-size: var(--text-sm); }
.footer-back { gap: var(--space-3); }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-6); font-size: var(--text-xs); color: var(--color-text-muted); padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.footer-bottom > a { min-height: 44px; display: inline-flex; align-items: center; text-underline-offset: 4px; }
.footer-bottom > a:hover { color: var(--color-orange); }
.footer-bottom > a:active { opacity: .7; }
.image-fallback { width: 100%; height: 100%; min-height: 300px; display: grid; place-items: center; background: var(--color-surface-offset); color: var(--color-text-muted); font-family: var(--font-display); font-size: var(--text-xl); padding: var(--space-8); text-align: center; }
@media (min-width: 1450px) { .hero { padding-block: var(--space-20) var(--space-24); } .hero-image-wrap { aspect-ratio: 1.03; } }
@media (max-width: 1100px) {
  .main-nav { gap: var(--space-5); }
  .header-actions { gap: var(--space-2); }
  .hero { gap: var(--space-8); }
  .hero-actions { gap: var(--space-2) var(--space-4); }
  .why-section, .process-section, .questions-inner { gap: var(--space-12); }
  .strip-inner { gap: var(--space-5); }
  .strip-fact { padding-left: var(--space-5); }
  .contact-panel { grid-template-columns: 1fr 1fr; gap: var(--space-8); }
}
@media (max-width: 900px) {
  .header-cta { display: none; }
  .hero { grid-template-columns: 1.1fr 1fr; padding-block: var(--space-12) var(--space-16); }
  .hero-image-wrap { aspect-ratio: .75; }
  .hero-visual { padding-left: 0; }
  .photo-note { left: calc(var(--space-4) * -1); padding: var(--space-4); }
  .hero-contact { max-width: 32ch; line-height: 1.4; }
  .strip-inner { grid-template-columns: 1fr 1fr; gap: var(--space-6); }
  .strip-fact:nth-child(3) { padding-left: 0; border-left: 0; }
  .partnership { grid-template-columns: 1fr 1fr; }
  .partnership-copy { padding: var(--space-8); }
  .contact-panel { grid-template-columns: 1fr; }
  .contact-details { max-width: 440px; }
}
@media (max-width: 700px) {
  .header-inner { gap: var(--space-2) var(--space-4); padding-block: var(--space-4) var(--space-2); }
  .header-actions { margin-left: auto; }
  .main-nav { order: 3; justify-content: space-between; width: 100%; gap: var(--space-4); border-top: 1px solid var(--color-border); padding-top: var(--space-2); margin-top: var(--space-3); }
  .hero { grid-template-columns: 1fr; padding-block: var(--space-10) var(--space-12); gap: var(--space-8); }
  .hero .eyebrow { font-size: var(--text-xs); margin-bottom: var(--space-5); letter-spacing: .1em; }
  h1 { font-size: clamp(2.625rem, 1.9rem + 3vw, 3.75rem); margin-bottom: var(--space-5); }
  .hero-description { max-width: 47ch; margin-bottom: var(--space-6); }
  .hero-actions { gap: var(--space-3) var(--space-6); }
  .hero-contact { max-width: none; margin-top: var(--space-3); }
  .hero-visual { width: 100%; margin-bottom: var(--space-6); padding-left: var(--space-4); }
  .hero-image-wrap { aspect-ratio: 1.2; border-radius: var(--radius-arch) var(--radius-arch) var(--radius-sm) var(--radius-sm); }
  .hero-image { object-position: 50% 43%; }
  .photo-note { left: 0; bottom: calc(var(--space-6) * -1); }
  .strip-inner { padding-block: var(--space-8); }
  .strip-intro { font-size: var(--text-sm); }
  .why-section, .process-section, .questions-inner { grid-template-columns: 1fr; gap: var(--space-8); }
  .section-space { padding-block: var(--space-16); }
  .eyebrow { margin-bottom: var(--space-4); }
  .why-content > p { max-width: 52ch; }
  .benefit-list { margin-top: var(--space-6); }
  .benefit { gap: var(--space-5); }
  .partnership { grid-template-columns: 1fr; }
  .partnership-image { min-height: 0; aspect-ratio: 1.65; }
  .partnership-copy { padding: var(--space-8) var(--space-6); }
  .process-intro > p:not(.eyebrow) { max-width: 48ch; margin-block: var(--space-5) var(--space-6); }
  .steps { margin-top: var(--space-4); }
  .steps li { gap: var(--space-5); padding-block: var(--space-6); }
  .questions-section { padding-block: var(--space-16); }
  .questions-intro > p:last-child { margin-top: var(--space-4); }
  .contact-section { padding-block: var(--space-12) var(--space-8); }
  .contact-panel { padding: var(--space-8) var(--space-6); gap: var(--space-8); }
  .contact-copy > p:last-child { margin-top: var(--space-4); }
  .footer-top { flex-wrap: wrap; gap: var(--space-4); padding-bottom: var(--space-6); }
  .footer-top > p { order: 3; flex-basis: 100%; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 380px) {
  .hero-actions { align-items: flex-start; flex-direction: column; gap: var(--space-2); }
  .hero-actions .button { width: 100%; }
  .strip-inner { grid-template-columns: 1fr; gap: var(--space-5); }
  .strip-fact, .strip-fact:nth-child(3) { border-left: 0; border-top: 1px solid oklch(97% .015 84 / .22); padding-left: 0; padding-top: var(--space-5); }
  .contact-panel { padding-inline: var(--space-5); }
  .footer-back { margin-left: auto; }
}
