/* =========================================
   DESIGN TOKENS
========================================= */
:root { --color-primary:#950d2d; --color-navy:#071a42; --color-cream:#f9f7f3; --color-white:#fff; --color-ink:#071a42; --color-muted:rgba(7,26,66,.7); --color-line:rgba(7,26,66,.15); --font-heading:Georgia,"Times New Roman",serif; --font-body:"Segoe UI",Arial,sans-serif; --space-xs:.5rem; --space-sm:1rem; --space-md:1.5rem; --space-lg:2.5rem; --space-xl:4.5rem; --space-2xl:7rem; --radius-sm:4px; --radius-md:10px; --radius-lg:20px; --radius-pill:999px; --container-width:1180px; --shadow:0 18px 45px rgba(7,26,66,.12); }

/* =========================================
   RESET & GLOBAL
========================================= */
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:5.5rem; }
body { margin:0; color:var(--color-ink); background:var(--color-cream); font-family:var(--font-body); font-size:16px; line-height:1.65; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a:not(.button):not(.brand):not(.socials a) { text-decoration-thickness:1px; text-underline-offset:4px; }
a:not(.button):not(.brand):not(.socials a):hover { color:var(--color-primary); }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--font-heading); color:var(--color-navy); line-height:1.07; letter-spacing:-.035em; }
h1 { font-size:clamp(2.9rem,5.8vw,5.6rem); }
h2 { font-size:clamp(2.25rem,4.1vw,4rem); }
h3 { font-size:1.65rem; }
ul,ol { margin:0; padding:0; }
address { font-style:normal; }
.container { width:min(calc(100% - 2.5rem),var(--container-width)); margin-inline:auto; }
.section { padding:var(--space-2xl) 0; }
.eyebrow { margin-bottom:var(--space-sm); color:var(--color-primary); font-size:.73rem; font-weight:800; letter-spacing:.14em; line-height:1.3; text-transform:uppercase; }
.lead { max-width:39rem; margin-top:var(--space-md); color:var(--color-muted); font-size:clamp(1.05rem,1.5vw,1.22rem); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; z-index:100; top:-5rem; left:1rem; padding:.6rem 1rem; color:var(--color-white); background:var(--color-navy); }
.skip-link:focus { top:1rem; }
:focus-visible { outline:3px solid var(--color-primary); outline-offset:4px; }

/* =========================================
   COMPONENTS
========================================= */
.button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:3.25rem; padding:.8rem 1.25rem; border:1px solid var(--color-primary); border-radius:var(--radius-sm); color:var(--color-white); background:var(--color-primary); font:700 .84rem/1 var(--font-body); letter-spacing:.04em; text-decoration:none; text-transform:uppercase; transition:transform .2s ease,background .2s ease,border-color .2s ease; cursor:pointer; }
.button:hover { transform:translateY(-2px); border-color:var(--color-navy); background:var(--color-navy); }
.button-small { min-height:2.7rem; padding:.7rem 1rem; font-size:.72rem; }
.button-light { color:var(--color-navy); border-color:var(--color-white); background:var(--color-white); }
.button-light:hover { color:var(--color-white); border-color:var(--color-primary); background:var(--color-primary); }
.button-outline-light { color:var(--color-white); border-color:rgba(255,255,255,.65); background:transparent; }
.button-outline-light:hover { color:var(--color-navy); border-color:var(--color-white); background:var(--color-white); }
.button-row { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; margin-top:var(--space-lg); }
.text-link,.card-link { display:inline-flex; gap:.45rem; align-items:center; color:var(--color-primary); font-weight:800; text-decoration:none; }
.text-link:hover,.card-link:hover { color:var(--color-navy)!important; }
.section-heading { max-width:45rem; margin-bottom:var(--space-xl); }
.section-heading h2 { margin-bottom:var(--space-md); }
.section-heading > p:not(.eyebrow) { color:var(--color-muted); }

/* =========================================
   HEADER
========================================= */
.site-header { position:sticky; z-index:20; top:0; border-bottom:1px solid rgba(7,26,66,.08); background:rgba(249,247,243,.96); backdrop-filter:blur(10px); }
.nav-wrap { display:flex; align-items:center; min-height:5.15rem; gap:1.1rem; }
.brand { display:block; flex-shrink:0; }
.brand img { width:clamp(160px,18vw,220px); height:36px; object-fit:contain; object-position:left center; }
.desktop-nav { display:flex; align-items:center; justify-content:flex-end; flex:1; gap:clamp(.7rem,1.4vw,1.35rem); font-size:.76rem; font-weight:700; }
.desktop-nav a { text-decoration:none!important; }
.mobile-nav { display:none; margin-left:auto; }
.mobile-nav summary { display:flex; align-items:center; gap:.8rem; list-style:none; color:var(--color-navy); font-size:.78rem; font-weight:800; text-transform:uppercase; cursor:pointer; }
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav[open] nav { position:absolute; top:5rem; right:1.25rem; display:grid; min-width:13rem; padding:1rem; border:1px solid var(--color-line); background:var(--color-white); box-shadow:var(--shadow); }
.mobile-nav nav a { padding:.55rem; font-weight:700; }
.mobile-nav nav .mobile-cta { margin-top:.4rem; color:var(--color-white); background:var(--color-primary); text-align:center; text-decoration:none!important; }

/* =========================================
   HERO
========================================= */
.hero { overflow:hidden; padding:clamp(3.5rem,7vw,7rem) 0; background:linear-gradient(112deg,var(--color-cream) 0 58%,var(--color-white) 58%); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(19rem,.74fr); align-items:center; gap:clamp(2.5rem,6vw,6rem); }
.hero-copy { position:relative; z-index:1; }
.hero-copy h1 { max-width:49rem; }
.hero-tags { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:var(--space-lg); list-style:none; }
.hero-tags li { padding:.38rem .7rem; border:1px solid var(--color-line); border-radius:var(--radius-pill); color:var(--color-navy); font-size:.72rem; font-weight:700; }
.hero-visual { position:relative; min-height:30rem; padding:1rem 1rem 1.75rem 0; }
.hero-image-frame { position:relative; z-index:2; height:100%; min-height:30rem; overflow:hidden; }
.hero-image-frame img { width:100%; height:100%; min-height:30rem; object-fit:cover; filter:saturate(.8); }
.hero-shape { position:absolute; z-index:1; right:-2.75rem; bottom:0; width:69%; height:79%; background:var(--color-primary); }
.hero-note { position:absolute; z-index:3; bottom:0; left:-2rem; display:flex; width:min(18rem,70%); gap:.8rem; padding:1.2rem; color:var(--color-white); background:var(--color-navy); box-shadow:var(--shadow); }
.hero-note p { font-size:.82rem; line-height:1.45; }
.note-mark { color:var(--color-white); font-weight:800; }

/* =========================================
   INTRO & COURSES
========================================= */
.intro { background:var(--color-white); }
.intro-grid { display:grid; grid-template-columns:minmax(17rem,.78fr) minmax(0,1fr); align-items:center; gap:clamp(2.5rem,7vw,7.5rem); }
.intro-image { position:relative; max-width:26rem; }
.intro-image::after { position:absolute; z-index:0; top:1.3rem; right:-1.3rem; width:62%; height:100%; content:""; background:var(--color-primary); }
.intro-image img { position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover; }
.intro-copy { max-width:38rem; }
.intro-copy h2 { margin-bottom:var(--space-md); }
.intro-copy p:not(.eyebrow) { margin-bottom:1rem; color:var(--color-muted); }
.courses { background:var(--color-cream); }
.course-grid { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:1px; background:var(--color-line); border:1px solid var(--color-line); }
.course-card { display:flex; flex-direction:column; min-height:27rem; padding:clamp(1.5rem,3vw,2.4rem); background:var(--color-white); transition:transform .25s ease,box-shadow .25s ease; }
.course-card:hover { position:relative; z-index:1; transform:translateY(-7px); box-shadow:var(--shadow); }
.course-card.featured { color:var(--color-white); background:var(--color-navy); }
.course-card.featured h3,.course-card.featured .card-link { color:var(--color-white); }
.course-card.featured p,.course-card.featured li { color:rgba(255,255,255,.8); }
.course-number { display:block; margin-bottom:auto; color:var(--color-primary); font-size:.78rem; font-weight:800; letter-spacing:.1em; }
.featured .course-number { color:var(--color-white); }
.course-card h3 { margin:var(--space-lg) 0 .75rem; }
.course-card p { color:var(--color-muted); }
.course-card ul { margin:1.25rem 0 1.5rem; list-style:none; }
.course-card li { position:relative; padding:.28rem 0 .28rem 1.05rem; color:var(--color-muted); font-size:.88rem; }
.course-card li::before { position:absolute; left:0; color:var(--color-primary); content:"•"; }
.featured li::before { color:var(--color-white); }
.card-link { margin-top:auto; font-size:.83rem; }

/* =========================================
   WHY & JOURNEY
========================================= */
.why { color:var(--color-white); background:var(--color-navy); }
.why-grid { display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:clamp(3rem,8vw,9rem); }
.why h2 { color:var(--color-white); margin-bottom:var(--space-md); }
.why .eyebrow { color:var(--color-white); }
.why-copy > p:not(.eyebrow) { max-width:34rem; color:rgba(255,255,255,.77); }
.benefit-grid { display:grid; grid-template-columns:repeat(2,1fr); border:1px solid rgba(255,255,255,.2); }
.benefit-grid article { min-height:11.5rem; padding:1.65rem; border:1px solid rgba(255,255,255,.13); }
.benefit-grid span { color:var(--color-white); font-size:.75rem; font-weight:800; }
.benefit-grid h3 { margin:.7rem 0 .5rem; color:var(--color-white); font-family:var(--font-body); font-size:1rem; letter-spacing:0; }
.benefit-grid p { color:rgba(255,255,255,.72); font-size:.85rem; line-height:1.55; }
.journey { background:var(--color-white); }
.journey-heading { max-width:52rem; }
.timeline { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; counter-reset:journey; }
.timeline li { position:relative; padding:0 1.2rem 0 0; }
.timeline li:not(:last-child)::after { position:absolute; top:1rem; right:0; width:calc(100% - 2rem); border-top:1px solid var(--color-primary); content:""; transform:translateX(100%); }
.timeline span { display:grid; place-items:center; width:2rem; height:2rem; margin-bottom:1.4rem; border-radius:50%; color:var(--color-white); background:var(--color-primary); font-size:.7rem; font-weight:800; }
.timeline h3 { margin-bottom:.65rem; font-family:var(--font-body); font-size:1.08rem; letter-spacing:0; }
.timeline p { max-width:13rem; color:var(--color-muted); font-size:.88rem; line-height:1.55; }

/* =========================================
   COMPARISON & HIGHLIGHTS
========================================= */
.comparison { background:var(--color-cream); }
.comparison-grid { display:grid; grid-template-columns:.76fr 1.24fr; align-items:start; gap:clamp(2rem,6vw,6rem); }
.comparison-grid h2 { margin-bottom:var(--space-md); }
.comparison-grid > div > p:not(.eyebrow) { max-width:28rem; margin-bottom:var(--space-md); color:var(--color-muted); }
.table-wrap { overflow-x:auto; border:1px solid var(--color-line); background:var(--color-white); }
table { width:100%; min-width:39rem; border-collapse:collapse; font-size:.83rem; }
th,td { padding:.9rem 1rem; border-bottom:1px solid var(--color-line); text-align:left; }
thead { color:var(--color-white); background:var(--color-navy); }
thead th { font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
tbody th { color:var(--color-navy); font-weight:800; }
tbody td { color:var(--color-muted); }
tbody tr:last-child th,tbody tr:last-child td { border-bottom:0; }
.highlights { color:var(--color-white); background:var(--color-primary); }
.highlights-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.highlights-grid > div { min-height:9.5rem; display:flex; flex-direction:column; justify-content:center; padding:1.5rem; border-right:1px solid rgba(255,255,255,.27); }
.highlights-grid > div:first-child { padding-left:0; }
.highlights-grid > div:last-child { border:0; }
.highlights strong { margin-bottom:.45rem; font-family:var(--font-heading); font-size:clamp(1.35rem,2.3vw,2rem); line-height:1.05; letter-spacing:-.025em; }
.highlights span { color:rgba(255,255,255,.78); font-size:.78rem; }

/* =========================================
   EXPECTATIONS, FAQ & CTA
========================================= */
.expectations { background:var(--color-white); }
.expectations-grid { display:grid; grid-template-columns:.72fr 1fr; align-items:center; gap:clamp(2.5rem,7vw,7rem); }
.expectations-image img { width:100%; aspect-ratio:1/1; object-fit:cover; filter:saturate(.78); }
.expectations-grid h2 { max-width:43rem; margin-bottom:var(--space-md); }
.expectations-grid p:not(.eyebrow) { max-width:37rem; color:var(--color-muted); }
.check-list { display:grid; gap:.65rem; margin-top:var(--space-lg); list-style:none; }
.check-list li { padding-left:1.65rem; font-weight:700; }
.check-list li::before { display:inline-grid; place-items:center; width:1.1rem; height:1.1rem; margin-left:-1.65rem; margin-right:.55rem; border-radius:50%; color:var(--color-white); background:var(--color-primary); content:"✓"; font-size:.7rem; }
.faq { background:var(--color-cream); }
.faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(2.5rem,7vw,7rem); }
.faq-grid h2 { margin-bottom:var(--space-md); }
.faq-grid > div > p:not(.eyebrow) { color:var(--color-muted); }
.faq-list { border-top:1px solid var(--color-line); }
.faq-list details { border-bottom:1px solid var(--color-line); }
.faq-list summary { display:flex; justify-content:space-between; gap:1rem; padding:1.1rem 2rem 1.1rem 0; color:var(--color-navy); font-weight:800; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { flex:0 0 auto; color:var(--color-primary); content:"+"; font-size:1.25rem; line-height:1; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { max-width:44rem; padding:0 2rem 1.2rem 0; color:var(--color-muted); font-size:.92rem; }
.faq-list a { color:var(--color-primary); font-weight:700; }
.final-cta { padding:var(--space-2xl) 0; color:var(--color-white); background:var(--color-navy); text-align:center; }
.final-cta-inner { max-width:50rem; }
.final-cta .eyebrow { color:var(--color-white); }
.final-cta h2 { color:var(--color-white); }
.final-cta p:not(.eyebrow) { max-width:36rem; margin:1rem auto 0; color:rgba(255,255,255,.75); }
.final-cta .button-row { justify-content:center; }

/* =========================================
   CONTACT & FOOTER
========================================= */
.contact { background:var(--color-white); }
.contact-grid { display:grid; grid-template-columns:.75fr 1.25fr; align-items:start; gap:clamp(2.5rem,8vw,8rem); }
.contact-copy h2 { margin-bottom:var(--space-md); }
.contact-copy > p:not(.eyebrow) { max-width:31rem; color:var(--color-muted); }
.contact address { display:grid; gap:.45rem; margin:var(--space-lg) 0; }
.contact address a { color:var(--color-navy); font-weight:800; }
.contact address p { margin-top:.8rem; color:var(--color-muted); font-size:.9rem; line-height:1.55; }
.enquiry-form { padding:clamp(1.4rem,4vw,2.5rem); border:1px solid var(--color-line); background:var(--color-cream); }
.enquiry-form h3 { margin-bottom:.35rem; }
.form-note { margin-bottom:1.25rem; color:var(--color-muted); font-size:.78rem; line-height:1.45; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
label { display:block; margin:1rem 0 .35rem; color:var(--color-navy); font-size:.78rem; font-weight:800; }
input,select,textarea { width:100%; border:1px solid rgba(7,26,66,.28); border-radius:0; padding:.75rem .8rem; color:var(--color-ink); background:var(--color-white); font:inherit; font-size:.9rem; }
textarea { resize:vertical; }
input::placeholder,textarea::placeholder { color:rgba(7,26,66,.6); }
.enquiry-form .button { margin-top:1.25rem; }
.enquiry-form .button + .form-note { margin:1rem 0 0; }
.site-footer { padding-top:4.5rem; color:rgba(255,255,255,.75); background:var(--color-navy); }
.footer-grid { display:grid; grid-template-columns:1.3fr .7fr 1fr .5fr; gap:2rem; padding-bottom:3.5rem; }
.footer-brand { margin-bottom:1.1rem; }
.footer-brand img { filter:brightness(0) invert(1); }
.site-footer h2 { margin-bottom:1rem; color:var(--color-white); font-family:var(--font-body); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; }
.site-footer p,.site-footer address,.site-footer a { font-size:.83rem; line-height:1.65; }
.site-footer address { margin-top:.65rem; }
.site-footer div:not(.socials) > a { display:block; margin-bottom:.45rem; }
.site-footer ul { list-style:none; }
.site-footer li { margin-bottom:.38rem; }
.socials { display:flex; gap:.6rem; }
.socials a { display:grid; place-items:center; width:2.4rem; height:2.4rem; border:1px solid rgba(255,255,255,.5); border-radius:50%; transition:background .2s ease; }
.socials a:hover { background:var(--color-primary); }
.socials svg { width:1rem; height:1rem; fill:var(--color-white); }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-top:1px solid rgba(255,255,255,.15); }
.footer-bottom p,.footer-bottom a { font-size:.72rem; }

/* =========================================
   RESPONSIVE
========================================= */
@media (max-width:1050px) { .desktop-nav { display:none; } .mobile-nav { display:block; } .nav-wrap > .button-small { margin-left:auto; } .hero-grid { grid-template-columns:1fr .76fr; } .footer-grid { grid-template-columns:1.1fr .8fr 1.1fr; } .footer-grid > :last-child { grid-column:1; } }
@media (max-width:800px) { :root { --space-2xl:4.75rem; } .hero { background:var(--color-cream); } .hero-grid,.intro-grid,.why-grid,.comparison-grid,.expectations-grid,.faq-grid,.contact-grid { grid-template-columns:1fr; } .hero-copy { max-width:44rem; } .hero-visual { max-width:36rem; min-height:26rem; margin-left:auto; } .hero-image-frame,.hero-image-frame img { min-height:26rem; } .intro-image { max-width:23rem; } .intro-copy { max-width:44rem; } .why-grid { gap:3rem; } .timeline { grid-template-columns:repeat(2,1fr); gap:2rem 1.5rem; } .timeline li:nth-child(2)::after { display:none; } .highlights-grid { grid-template-columns:repeat(2,1fr); } .highlights-grid > div { min-height:7.8rem; padding-left:1rem!important; border-bottom:1px solid rgba(255,255,255,.27); } .footer-grid { grid-template-columns:repeat(2,1fr); } .footer-grid > :last-child { grid-column:auto; } }
@media (max-width:580px) { .container { width:min(calc(100% - 2rem),var(--container-width)); } .nav-wrap { min-height:4.5rem; gap:.7rem; } .brand img { width:155px; height:29px; } .nav-wrap > .button-small { display:none; } .mobile-nav { margin-left:auto; } .mobile-nav[open] nav { top:4.4rem; right:1rem; } .hero { padding-top:3rem; } .hero-visual { min-height:23rem; margin-top:.5rem; padding-right:.7rem; } .hero-image-frame,.hero-image-frame img { min-height:23rem; } .hero-note { left:-.5rem; width:75%; } .course-grid { grid-template-columns:1fr; } .course-card { min-height:0; } .course-number { margin-bottom:.6rem; } .course-card h3 { margin:1rem 0 .7rem; } .benefit-grid { grid-template-columns:1fr; } .benefit-grid article { min-height:0; } .timeline { grid-template-columns:1fr; gap:1.5rem; } .timeline li { display:grid; grid-template-columns:2.5rem 1fr; gap:.5rem; padding:0; } .timeline li:not(:last-child)::after { top:2rem; left:1rem; width:0; height:calc(100% - .5rem); border-top:0; border-left:1px solid var(--color-primary); transform:none; } .timeline span { margin:0; } .timeline p { max-width:none; } .highlights-grid { grid-template-columns:1fr; } .highlights-grid > div { min-height:6.3rem; border-right:0; } .expectations-image { max-width:24rem; } .form-row { grid-template-columns:1fr; gap:0; } .footer-grid { grid-template-columns:1fr; } .footer-bottom { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }
