/* Shared editorial palette, drawn from InvariantLetters. Load after page styles. */
:root { --page-bg:#f8f2e8; --page-bg-soft:#fffaf2; --card:#fffdf8; --accent:#a44e30; --accent-soft:rgba(182,92,58,.1); --accent2:#b65c3a; --text-main:#122235; --text-soft:#58616a; --border-soft:rgba(18,34,53,.16); --focus-ring:rgba(182,92,58,.45); --prob-accent:#a44e30; --prob-card-bg:#fffdf8; --prob-card-border:rgba(18,34,53,.16); --prob-card-hover:#f8f2e8; --prob-pill-bg:#f1e9dc; --prob-pill-text:#58616a; }
body.theme-dark { --page-bg:#14202b; --page-bg-soft:#1b2935; --card:#1b2935; --accent:#eda17e; --accent-soft:rgba(237,161,126,.12); --accent2:#eda17e; --text-main:#f5ebdc; --text-soft:#b9bdbe; --border-soft:rgba(245,235,220,.2); --prob-accent:#eda17e; --prob-card-bg:#1b2935; --prob-card-border:rgba(245,235,220,.2); --prob-card-hover:#243442; --prob-pill-bg:#243442; --prob-pill-text:#e4d9ca; }
body { background:var(--page-bg); color:var(--text-main); }
main { width:100%; max-width:1200px; }
header.site-header { border-bottom:1px solid var(--border-soft); padding-bottom:1.2rem; margin-bottom:2.8rem; }
.brand { text-decoration:none; color:var(--text-main); }
.brand-text h1,.wordmark { font-family:Georgia,'Times New Roman',serif; font-size:1.5rem; font-weight:700; color:var(--text-main); letter-spacing:-.04em; }
.brand-text > span:not(.wordmark) { color:var(--text-soft); font-size:.72rem; letter-spacing:.02em; }
.brand-logo { width:48px; height:48px; object-fit:contain; }
nav.primary-nav { display:flex; gap:1.5rem; flex-wrap:wrap; margin-top:1.3rem; }
nav.primary-nav a { color:var(--text-soft); font-size:.86rem; border-radius:0; padding:.4rem 0; background:none; }
nav.primary-nav a.active,nav.primary-nav a:hover { color:var(--accent); background:none; box-shadow:none; }
nav.primary-nav a.active { border-bottom:2px solid var(--accent); }
.session-header-link { color:var(--accent); font-size:.85rem; font-weight:650; text-decoration:none; }
h1,h2,h3,.page-heading h1 { color:var(--text-main); }
.page-heading h1,.page-intro h1,.public-section h2,.session-banner h2,.session-layout h2 { font-family:Georgia,'Times New Roman',serif; text-transform:none; letter-spacing:-.035em; }
.public-hero { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:2rem; padding:2.5rem 0 4.5rem; }
.eyebrow { color:var(--accent); text-transform:uppercase; font-size:.68rem; font-weight:750; letter-spacing:.18em; margin-bottom:1.2rem; }
.public-hero h1,.page-intro h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(2.9rem,5.3vw,4.5rem); font-weight:400; line-height:1.09; letter-spacing:-.055em; margin-bottom:1.5rem; }
.public-hero h1 em,.page-intro h1 em { color:var(--accent); font-weight:400; }
.hero-description { color:var(--text-soft); max-width:440px; font-size:1rem; line-height:1.8; }
.public-actions { display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; margin-top:2rem; }
.public-button { display:inline-flex; align-items:center; justify-content:center; gap:1.5rem; padding:1rem 1.25rem; border:1px solid #a44e30; border-radius:6px; background:#a44e30; color:#fffaf2; font:600 .83rem/1.4 system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.public-button:hover { background:#843d25; color:white; }
.text-link { color:var(--text-main); font-size:.85rem; text-decoration:none; border-bottom:1px solid var(--border-soft); padding:.35rem 0; }
.math-figure { margin:0; color:var(--text-main); }
.math-figure svg { display:block; width:100%; height:auto; }
.math-figure figcaption { text-align:center; font-family:Georgia,serif; font-style:italic; color:var(--text-soft); font-size:.85rem; padding:1rem; }
.public-section { padding:2.5rem 0 4rem; border-top:1px solid var(--border-soft); }
.section-heading { margin-bottom:2rem; }
.section-heading .eyebrow { margin-bottom:.6rem; }
.section-heading h2,.session-layout h2 { font-size:2rem; font-weight:400; }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.feature-card { display:flex; flex-direction:column; align-items:flex-start; padding:2rem; border:1px solid var(--border-soft); border-radius:10px; background:var(--card); color:var(--text-main); text-decoration:none; transition:transform .2s,border-color .2s; }
.feature-card:hover { transform:translateY(-4px); border-color:var(--accent); }
.feature-number { color:var(--accent); font-size:.65rem; font-weight:700; letter-spacing:.12em; margin-bottom:2.2rem; }
.feature-card h3 { font:400 1.65rem/1.2 Georgia,serif; letter-spacing:-.04em; margin-bottom:1rem; }
.feature-card p { font-size:.88rem; line-height:1.8; color:var(--text-soft); margin-bottom:2rem; }
.card-link { font-size:.82rem; color:var(--accent); font-weight:650; margin-top:auto; }
.feature-session { background:var(--accent-soft); }
.session-banner { display:flex; justify-content:space-between; align-items:center; gap:2rem; border-top:1px solid var(--border-soft); padding:3rem 0; }
.session-banner h2 { font-size:2.8rem; font-weight:400; line-height:1.15; }
.session-banner p:not(.eyebrow) { max-width:520px; color:var(--text-soft); line-height:1.8; margin-top:1.2rem; }
.public-footer { display:flex; justify-content:space-between; align-items:flex-start; gap:2rem; flex-wrap:wrap; border-top:1px solid var(--border-soft); padding:2rem 0; margin-top:2.5rem; color:var(--text-soft); font-size:.75rem; }
.public-footer a { color:var(--text-soft); text-decoration:none; }
.public-footer a:hover { color:var(--accent); }
.public-footer .footer-brand { font:700 1.2rem Georgia,serif; color:var(--text-main); }
.footer-brand span { display:block; font:400 .73rem system-ui,sans-serif; color:var(--text-soft); margin-top:.6rem; }
.public-footer nav { display:flex; gap:1.2rem; flex-wrap:wrap; }
.page-intro { padding:2rem 0 3rem; max-width:720px; }
.page-intro > p:last-child { max-width:520px; color:var(--text-soft); line-height:1.8; }
.session-layout { display:grid; grid-template-columns:1fr 1fr; gap:5rem; padding-bottom:2rem; }
.session-layout p { color:var(--text-soft); line-height:1.8; font-size:.9rem; margin-top:.8rem; }
.session-step { display:flex; gap:1.3rem; padding:1.6rem 0; border-bottom:1px solid var(--border-soft); }
.session-step > span { color:var(--accent); font:italic 1.3rem Georgia,serif; }
.session-step h3 { font-size:1rem; font-weight:600; }
.session-note { padding:1.5rem 0; color:var(--text-soft); font-size:.85rem; line-height:1.8; }
.session-note a,.email-fallback a { color:var(--accent); }
.enquiry-card { padding:2rem; border:1px solid var(--border-soft); border-radius:12px; background:var(--card); }
.enquiry-card form { display:grid; gap:.5rem; margin-top:1.5rem; }
.enquiry-card label { font-size:.8rem; font-weight:600; margin-top:.65rem; }
.enquiry-card input,.enquiry-card select,.enquiry-card textarea { width:100%; min-width:0; padding:.8rem; font:inherit; font-size:.9rem; color:var(--text-main); background:var(--page-bg-soft); border:1px solid var(--border-soft); border-radius:5px; }
.enquiry-card textarea { resize:vertical; }
.enquiry-card button { margin-top:1rem; }
.enquiry-card .form-note,.enquiry-card .email-fallback { font-size:.75rem; overflow-wrap:anywhere; }
#enquiry-status { padding:1rem; border:1px solid var(--border-soft); border-radius:5px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
@media(max-width:720px) {
 main { padding:1.2rem; }
 header.site-header { margin-bottom:1.5rem; }
 nav.primary-nav { position:static; transform:none; opacity:1; pointer-events:auto; padding:.7rem 0 0; background:none; border:0; gap:.5rem 1.15rem; }
 nav.primary-nav a { font-size:.78rem; }
 .hamburger { display:none; }
 .public-hero { grid-template-columns:1fr; padding:1.7rem 0 2.5rem; gap:1rem; }
 .math-figure { max-width:330px; margin:0 auto; }
 .feature-grid,.session-layout { grid-template-columns:1fr; gap:1rem; }
 .feature-card { padding:1.5rem; }
 .feature-number { margin-bottom:1.2rem; }
 .session-banner { align-items:flex-start; flex-direction:column; }
 .session-banner h2 { font-size:2.2rem; }
 .session-layout { gap:2rem; }
 .enquiry-card { padding:1.3rem; }
 .brand-text > span:not(.wordmark) { font-size:.6rem; }
 .session-header-link { font-size:.7rem; }
 .public-footer { flex-direction:column; gap:1.5rem; }
}
@media(prefers-reduced-motion:reduce) { .feature-card { transition:none; } }
/* The previous theme hid this wordmark because its full-width logo included text. */
.brand-text { display:flex !important; flex-direction:column; gap:.2rem; }
nav.primary-nav a { border:0; }
nav.primary-nav a.active { border-bottom:2px solid var(--accent); }
@media(max-width:720px) { .site-header-inner { flex-wrap:wrap; } .wordmark,.brand-text h1 { font-size:1.2rem; } }
