/* Shared tokens: the preview selector changes palette, not layout or copy. */
:root {
    color-scheme: light;
    --bg-primary: #f5f8fc;
    --bg-secondary: #ffffff;
    --bg-card: #ffffff;
    --text-primary: #19304d;
    --text-secondary: #53657b;
    --accent: #175cd3;
    --accent-hover: #1047a6;
    --accent-ink: #ffffff;
    --accent-secondary: #0b7164;
    --accent-soft: #e4f3ee;
    --border: #d9e3ef;
    --input-border: #8090a4;
    --panel: #edf3fa;
    --cover: #193552;
    --cover-accent: #91e4cf;
    --focus: #175cd3;
    --error: #a72820;
    --shadow: 0 18px 50px rgba(25, 48, 77, .09);
    --font: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}
:root[data-palette="midnight"] {
    color-scheme: dark;
    --bg-primary: #0d1728; --bg-secondary: #111f33; --bg-card: #192a40;
    --text-primary: #eff5ff; --text-secondary: #b2c0d3;
    --accent: #55d8e5; --accent-hover: #8be8ee; --accent-ink: #10253a;
    --accent-secondary: #92e4cf; --accent-soft: #173b3a; --border: #35485e;
    --input-border: #7b90aa; --panel: #17273c; --cover: #1a3552;
    --focus: #55d8e5; --error: #ffc4b6; --shadow: 0 18px 50px rgba(0, 0, 0, .16);
}
:root[data-palette="warm"] {
    --accent: #a64117; --accent-hover: #823010; --accent-ink: #ffffff;
    --accent-secondary: #80530d; --accent-soft: #fff0d4; --cover-accent: #f6c677;
    --focus: #a64117;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--bg-primary); color: var(--text-primary); font-family: var(--font); line-height: 1.6; }
[hidden] { display: none !important; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { line-height: 1.15; }
h2 { font-size: clamp(1.65rem, 2.7vw, 2.2rem); letter-spacing: -.035em; }
a { color: var(--accent); text-underline-offset: .23em; }
a, button, select, summary { -webkit-tap-highlight-color: transparent; }
button, input, select { font: inherit; }
button, a, select, input, summary { touch-action: manipulation; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
button { border: 0; }
.container { width: min(1120px, calc(100% - 4rem)); margin-inline: auto; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20; padding: .7rem 1rem; background: var(--accent); color: var(--accent-ink); border-radius: 4px; }
.skip-link:focus { top: .5rem; }
.preview-tools { background: var(--panel); border-bottom: 1px solid var(--border); }
.preview-tools-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 44px; padding-block: .35rem; font-size: .73rem; color: var(--text-secondary); }
.preview-tools label { display: flex; align-items: center; gap: .6rem; }
.preview-tools select { color: var(--text-primary); background: var(--bg-card); border: 1px solid var(--input-border); border-radius: 4px; padding: .2rem .4rem; font-size: .75rem; min-height: 30px; }
.site-header nav { display: flex; align-items: center; gap: 2rem; min-height: 92px; }
.nav-logo { display: flex; align-items: center; gap: .65rem; color: var(--text-primary); text-decoration: none; font-size: 1rem; font-weight: 600; letter-spacing: -.02em; margin-right: auto; }
.nav-logo svg { flex: 0 0 30px; color: var(--accent-secondary); }
.nav-logo strong { font-weight: 400; }
.nav-link { color: var(--text-secondary); text-decoration: none; font-size: .86rem; }
.nav-cta { display: inline-flex; padding: .6rem 1rem; color: var(--accent); border: 1px solid var(--input-border); border-radius: 6px; font-size: .83rem; font-weight: 600; text-decoration: none; }
.hero { padding: 3.5rem 0 4rem; }
.hero-layout { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 5rem; }
.hero-content { padding-bottom: .5rem; }
.hero-badge { display: inline-block; padding: .35rem .7rem; border-radius: 4px; background: var(--accent-soft); color: var(--accent-secondary); font-weight: 600; font-size: .77rem; margin-bottom: 1.5rem; }
.hero h1 { font-size: clamp(2.65rem, 4.9vw, 4rem); letter-spacing: -.055em; line-height: 1.06; max-width: 580px; }
.hero-description { margin-top: 1.6rem; color: var(--text-secondary); font-size: 1.08rem; line-height: 1.75; max-width: 480px; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem 1.5rem; margin-top: 1.9rem; }
.buy-btn { display: inline-flex; justify-content: center; align-items: center; gap: .5rem; min-height: 48px; padding: .8rem 1.25rem; background: var(--accent); color: var(--accent-ink); border-radius: 6px; font-size: .88rem; font-weight: 650; line-height: 1.4; text-decoration: none; cursor: pointer; transition: background .15s ease; }
.buy-btn:hover { background: var(--accent-hover); }
.buy-btn:disabled { background: var(--panel); color: var(--text-secondary); border: 1px solid var(--input-border); cursor: not-allowed; }
.text-link { font-size: .88rem; font-weight: 600; }
.hero-note { color: var(--text-secondary); font-size: .75rem; margin-top: 1.5rem; }
.check-mark { color: var(--accent-secondary); font-weight: 700; padding-right: .35rem; }
.study-path { background: var(--cover); color: #fff; border-radius: 12px; padding: 1.75rem 2rem; box-shadow: var(--shadow); }
.study-path h2 { font-size: 1.05rem; font-weight: 500; letter-spacing: -.015em; }
.path-steps { list-style: none; margin: 1.75rem 0 1.5rem; padding: 0; }
.path-steps li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 1rem; position: relative; }
.path-steps li + li { margin-top: 1.8rem; }
.path-steps li:first-child::after { content: ''; position: absolute; width: 1px; background: #57748d; left: 14px; top: 39px; bottom: -1.25rem; }
.path-number { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--cover-accent); border-radius: 50%; color: var(--cover-accent); font-size: .7rem; }
.path-caption { font-size: .76rem; color: #d8e6f6; margin-bottom: .25rem; }
.path-steps h3 { font-size: 2.5rem; letter-spacing: -.04em; }
.path-meta { display: flex; flex-wrap: wrap; gap: .35rem 1rem; font-size: .71rem; color: #d8e6f6; margin-top: .55rem; }
.path-meta span { color: var(--cover-accent); }
.path-note { padding-top: 1rem; border-top: 1px solid #57748d; font-size: .72rem; color: #d8e6f6; }
.price { font-size: 2.6rem; font-weight: 700; letter-spacing: -.04em; line-height: 1.15; }
.price span { font-size: .71rem; color: var(--text-secondary); font-weight: 400; letter-spacing: 0; }
.checkout-note { font-size: .73rem; color: var(--text-secondary); line-height: 1.6; margin-top: .65rem; }
.included-section { padding: 3.5rem 0; background: var(--bg-secondary); border-block: 1px solid var(--border); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.section-heading h2 { max-width: 390px; }
.section-heading > p { color: var(--text-secondary); font-size: .9rem; max-width: 310px; }
.package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.package-card { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-card); min-width: 0; }
.package-bundle { border: 2px solid var(--accent-secondary); padding: calc(1.5rem - 1px); }
.package-status { display: inline-block; padding: .25rem .6rem; background: var(--panel); color: var(--text-secondary); border-radius: 4px; font-size: .73rem; font-weight: 600; }
.package-status.available { color: var(--accent-secondary); background: var(--accent-soft); }
.package-code { margin-top: 1.2rem; font-size: .73rem; color: var(--text-secondary); }
.package-header h3 { font-size: 1.7rem; letter-spacing: -.035em; margin-top: .25rem; }
.package-description { font-size: .88rem; color: var(--text-secondary); margin-top: .8rem; min-height: 4.3em; }
.package-price { padding-block: 1.3rem; min-height: 146px; }
.price-caption { font-size: .75rem; color: var(--text-secondary); margin-top: .35rem; }
.bundle-saving { font-size: .76rem; font-weight: 600; color: var(--accent-secondary); margin-top: .6rem; }
.bundle-saving span { color: var(--text-secondary); font-weight: 400; }
.package-content { border-top: 1px solid var(--border); padding-top: 1rem; }
.contents-label { font-weight: 600; font-size: .78rem; }
.package-features { margin: .75rem 0 1.5rem; padding-left: 1.1rem; font-size: .82rem; color: var(--text-secondary); }
.package-features li + li { margin-top: .5rem; }
.package-features li::marker { color: var(--accent-secondary); }
.package-action { margin-top: auto; }
.package-action .buy-btn { width: 100%; min-height: 44px; padding: .7rem .5rem; }
.package-action .checkout-note { min-height: 3.2em; }
.package-terms { margin-top: 1.3rem; color: var(--text-secondary); font-size: .75rem; }
.faq-section { padding: 3.5rem 0; }
.faq-layout { display: grid; grid-template-columns: .95fr 1.4fr; gap: 5rem; }
.section-intro { color: var(--text-secondary); font-size: .9rem; margin-top: .9rem; }
.faq-list details { padding: 1rem 0; border-bottom: 1px solid var(--border); }
.faq-list details:first-child { padding-top: .3rem; }
.faq-list summary { cursor: pointer; font-size: .93rem; font-weight: 600; line-height: 1.5; }
.faq-list summary::marker { color: var(--accent); }
.faq-list p { color: var(--text-secondary); font-size: .88rem; margin-top: .7rem; }
.roadmap-section { padding: 0 0 3.5rem; }
.roadmap-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; padding: 2.25rem 2.5rem; align-items: center; }
.resource-label { color: var(--accent-secondary); font-size: .74rem; font-weight: 600; display: block; margin-bottom: .65rem; }
.roadmap-copy h2 { font-size: 1.7rem; }
.roadmap-copy p { color: var(--text-secondary); font-size: .88rem; margin: 1rem 0; }
.signup-panel h3 { font-size: 1.08rem; margin-bottom: 1rem; }
.email-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.email-form label { display: block; font-size: .76rem; margin-bottom: .4rem; font-weight: 600; }
.form-row { display: flex; gap: .5rem; }
.email-form input[type="email"] { flex: 1; min-width: 0; width: 100%; border: 1px solid var(--input-border); border-radius: 6px; padding: .75rem; background: var(--bg-card); color: var(--text-primary); font-size: .88rem; }
.email-form input::placeholder { color: var(--text-secondary); }
.form-row .buy-btn { flex: 0 0 auto; padding-inline: 1rem; }
.form-note { color: var(--text-secondary); font-size: .7rem; line-height: 1.6; margin-top: .7rem; }
.form-status { font-size: .8rem; color: var(--accent-secondary); }
.form-status:not(:empty) { margin-block: .8rem; }
.form-status[data-state="error"] { color: var(--error); }
footer { border-top: 1px solid var(--border); padding-block: 1.7rem; }
.footer-inner { display: flex; justify-content: space-between; gap: 2rem; color: var(--text-secondary); font-size: .7rem; line-height: 1.7; }
.footer-inner p:last-child { text-align: right; }
@media (max-width: 1000px) {
    .hero-layout { gap: 2.5rem; grid-template-columns: 1.1fr 1fr; }
    .hero h1 { font-size: 3rem; }
    .hero-actions { align-items: flex-start; flex-direction: column; }
    .roadmap-layout { gap: 2rem; padding: 2rem; }
    .form-row { flex-direction: column; }
    .faq-layout { gap: 2.5rem; }
    .package-grid { gap: .8rem; }
    .package-card { padding: 1.15rem; }
    .package-bundle { padding: calc(1.15rem - 1px); }
    .package-header h3 { font-size: 1.45rem; }
    .package-description { min-height: 6.4em; }
}
@media (max-width: 768px) {
    .container { width: calc(100% - 3rem); }
    .site-header nav { min-height: 78px; gap: 1rem; }
    .nav-link { display: none; }
    .nav-logo { font-size: .9rem; }
    .hero { padding-top: 2rem; padding-bottom: 2.5rem; }
    .hero-layout { grid-template-columns: 1fr; gap: 2rem; }
    .hero h1 { font-size: clamp(2.6rem, 7.4vw, 3.5rem); max-width: 580px; }
    .hero-description { font-size: 1rem; margin-top: 1.2rem; max-width: 540px; }
    .hero-actions { flex-direction: row; align-items: center; }
    .hero-badge { margin-bottom: 1.2rem; }
    .study-path { width: 100%; max-width: 540px; }
    .included-section, .faq-section { padding-block: 2.5rem; }
    .section-heading { display: block; }
    .section-heading h2, .section-heading > p { max-width: none; }
    .section-heading > p { margin-top: .8rem; }
    .package-grid { grid-template-columns: 1fr; gap: 1rem; margin-top: 1.5rem; }
    .package-card { padding: 1.5rem; }
    .package-bundle { padding: calc(1.5rem - 1px); }
    .package-header h3 { font-size: 1.8rem; }
    .package-description { min-height: 0; }
    .package-price { min-height: 0; }
    .faq-layout, .roadmap-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .roadmap-layout { padding: 1.5rem; }
    .roadmap-section { padding-bottom: 2.5rem; }
    .form-row { flex-direction: row; }
    .footer-inner { flex-direction: column; gap: .6rem; }
    .footer-inner p:last-child { text-align: left; }
}
@media (max-width: 450px) {
    .preview-tools-inner { gap: .5rem; width: calc(100% - 2rem); }
    .preview-tools p span { display: none; }
    .preview-tools label { gap: .4rem; }
    .preview-tools select { max-width: 115px; }
    .container { width: calc(100% - 2.4rem); }
    .nav-logo span { max-width: 112px; line-height: 1.2; }
    .nav-logo strong { display: block; }
    .nav-logo { font-size: .82rem; gap: .45rem; }
    .nav-cta { font-size: .75rem; padding: .5rem .65rem; }
    .hero h1 { font-size: 2.65rem; }
    .hero-note { font-size: .7rem; }
    .hero-actions { align-items: flex-start; flex-direction: column; }
    .study-path { padding: 1.4rem; }
    .path-steps { margin-block: 1.4rem; }
    .path-steps h3 { font-size: 2.2rem; }
    .package-card { padding: 1.25rem; }
    .package-bundle { padding: calc(1.25rem - 1px); }
    .form-row { flex-direction: column; }
    .roadmap-layout { padding: 1.3rem; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
