*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --forest:#0F1F1A;--gold:#E8B931;--gold-dark:#C99220;--parchment:#F5F0E8;--pine:#1A3D32;
  --text-on-forest:#F5F0E8;--text-on-parchment:#0F1F1A;--text-on-pine:#F5F0E8;
  --font-head:'Sora',system-ui,sans-serif;
  --font-body:'Literata',Georgia,serif;
  --radius:20px;--shadow:0 16px 48px rgba(15,31,26,.22);
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:17px;line-height:1.7;color:var(--text-on-parchment);background:var(--parchment)}
body.nav-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.container{width:min(1200px,92%);margin:0 auto}
.surface-forest{background:var(--forest);color:var(--text-on-forest)}
.surface-parchment{background:var(--parchment);color:var(--text-on-parchment)}
.surface-pine{background:var(--pine);color:var(--text-on-pine)}
.surface-gold{background:var(--gold-dark);color:#fff}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.2;font-weight:600}
h1{font-size:clamp(2rem,5vw,3.5rem)}
h2{font-size:clamp(1.65rem,3.5vw,2.35rem)}
h3{font-size:clamp(1.2rem,2.5vw,1.45rem)}
.eyebrow{display:block;font-family:var(--font-head);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:12px}
.semester-tag{display:inline-block;font-family:var(--font-head);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:10px}
.page-hero .eyebrow,.page-hero .semester-tag{color:#fff}
.surface-forest .eyebrow,.surface-forest .semester-tag{color:#fff}
.surface-parchment .eyebrow{color:var(--forest)}
.section-welcome .eyebrow,.section-welcome .semester-tag{color:#fff}
.section{padding:80px 0}
@media(max-width:767px){.section{padding:48px 0}}
.double-divider{border:none;height:3px;background:linear-gradient(to bottom,var(--gold) 0,var(--gold) 1px,transparent 1px,transparent 2px,var(--gold) 2px,var(--gold) 3px);margin:40px 0;opacity:.85}
.btn{display:inline-block;padding:14px 32px;font-family:var(--font-head);font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s;min-height:44px;line-height:1.2;border-radius:var(--radius)}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn-gold{background:var(--gold-dark);color:#fff;border:2px solid var(--gold-dark)}
.btn-outline{background:transparent;color:var(--text-on-forest);border:2px solid var(--gold)}
.surface-parchment .btn-outline{color:var(--forest)}
.bracket-card{position:relative;background:var(--parchment);border-radius:var(--radius);padding:32px;box-shadow:0 4px 20px rgba(15,31,26,.08)}
.bracket-card::before,.bracket-card::after{content:'';position:absolute;width:24px;height:24px;border-color:var(--gold);border-style:solid;pointer-events:none}
.bracket-card::before{top:12px;left:12px;border-width:2px 0 0 2px;border-radius:4px 0 0 0}
.bracket-card::after{bottom:12px;right:12px;border-width:0 2px 2px 0;border-radius:0 0 4px 0}
.surface-forest .bracket-card,.surface-pine .bracket-card{background:rgba(245,240,232,.06);color:var(--text-on-forest)}
.surface-forest .bracket-card::before,.surface-forest .bracket-card::after,.surface-pine .bracket-card::before,.surface-pine .bracket-card::after{border-color:var(--gold)}
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--forest);border-bottom:1px solid rgba(232,185,49,.35);transition:box-shadow .3s}
.site-header.scrolled{box-shadow:0 4px 24px rgba(0,0,0,.4)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.logo{display:flex;align-items:center;gap:12px;font-family:var(--font-head);text-decoration:none;color:var(--text-on-forest)}
.logo-icon{width:36px;height:36px;color:var(--gold);flex-shrink:0}
.logo-wordmark{display:flex;align-items:baseline;font-size:1.2rem;font-weight:700;letter-spacing:-.02em;line-height:1}
.logo-deep{color:var(--text-on-forest)}
.logo-net{color:var(--gold);margin:0 1px}
.logo-school{color:var(--text-on-forest);font-weight:600}
.footer-logo{pointer-events:none}
.main-nav{display:flex;gap:24px;align-items:center}
.main-nav a{text-decoration:none;font-family:var(--font-head);font-weight:500;font-size:15px;color:var(--text-on-forest);opacity:.9}
.main-nav a:hover{opacity:1;color:var(--gold)}
.nav-toggle{display:none;background:none;border:none;color:var(--text-on-forest);font-size:28px;cursor:pointer;min-width:44px;min-height:44px;z-index:1002;position:relative}
.nav-overlay{display:none}
.nav-close{display:none}
@media(max-width:767px){
  .nav-toggle{display:block}
  .nav-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:min(78%,300px);background:rgba(15,31,26,.45);z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;pointer-events:none}
  .nav-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}
  .main-nav{position:fixed;top:0;left:-100%;width:min(78%,300px);height:100vh;background:var(--forest);flex-direction:column;align-items:flex-start;padding:72px 28px 32px;gap:20px;transition:left .3s ease;box-shadow:4px 0 24px rgba(0,0,0,.5);border-right:2px solid var(--gold);z-index:1001;overflow-y:auto}
  .main-nav.open{left:0}
  .main-nav a{font-size:17px;width:100%;padding:8px 0}
  .nav-close{display:flex;position:absolute;top:12px;right:12px;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:2px solid var(--gold);border-radius:12px;color:var(--gold);font-size:28px;line-height:1;cursor:pointer;font-family:var(--font-head)}
  .nav-close:hover{background:rgba(232,185,49,.15)}
}
.hero-editorial{min-height:96vh;background:var(--forest);padding-top:72px;position:relative;overflow:hidden}
@media(max-width:767px){.hero-editorial{min-height:auto}}
.hero-editorial-grid{display:grid;grid-template-columns:58% 42%;min-height:calc(96vh - 72px);align-items:stretch}
@media(max-width:1023px){.hero-editorial-grid{grid-template-columns:1fr;min-height:auto}}
.hero-text-col{display:flex;flex-direction:column;justify-content:center;padding:48px 40px 48px 0}
@media(max-width:1023px){.hero-text-col{padding:40px 0}}
.hero-photo-col{position:relative;display:grid;grid-template-rows:1fr 1fr;gap:0}
.hero-photo-col::before{content:'';position:absolute;top:0;left:-8%;width:28%;height:140%;background:linear-gradient(135deg,var(--gold) 0%,rgba(232,185,49,.6) 50%,transparent 70%);transform:rotate(-12deg);z-index:2;pointer-events:none}
.hero-photo-col img{width:100%;height:100%;object-fit:cover;min-height:200px}
.hero-serial{font-family:var(--font-head);font-size:14px;color:var(--gold);margin-bottom:20px;letter-spacing:.08em}
.hero-ctas{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.trust-line{font-size:14px;opacity:.8;margin-top:24px;font-family:var(--font-head)}
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;padding:56px 0}
@media(max-width:1023px){.stats-strip{grid-template-columns:repeat(2,1fr)}}
.stat-num{font-family:var(--font-head);font-size:clamp(2.25rem,5vw,3.25rem);font-weight:700;color:var(--gold);line-height:1}
.stat-label{font-size:14px;margin-top:8px;opacity:.9}
.track-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin-top:40px}
@media(max-width:1200px){.track-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.track-grid{grid-template-columns:1fr}}
.track-card{padding:28px;border-radius:var(--radius);background:rgba(26,61,50,.5);border:1px solid rgba(232,185,49,.25);position:relative}
.track-num{font-family:var(--font-head);font-size:28px;font-weight:700;color:var(--gold);margin-bottom:12px}
.faculty-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
@media(max-width:767px){.faculty-mosaic{grid-template-columns:1fr}}
.faculty-mosaic img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius)}
.programme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
@media(max-width:1023px){.programme-grid{grid-template-columns:1fr}}
.programme-card{margin-top:0}
.programme-card.offset{margin-top:32px}
@media(max-width:1023px){.programme-card.offset{margin-top:0}}
.prog-code{font-family:var(--font-head);font-size:12px;letter-spacing:.1em;color:var(--gold);font-weight:600}
.surface-parchment .prog-code{color:var(--forest)}
.faq-accordion{margin-top:40px}
.faq-item{border-bottom:1px solid rgba(232,185,49,.3);padding:0}
.faq-question{width:100%;display:flex;align-items:flex-start;gap:16px;padding:20px 0;background:none;border:none;color:inherit;font-family:var(--font-head);font-size:1.05rem;font-weight:600;text-align:left;cursor:pointer;line-height:1.4}
.faq-num{font-family:var(--font-head);font-size:14px;color:var(--gold-dark);min-width:28px;font-weight:700}
.surface-parchment .faq-num{color:var(--forest)}
.surface-forest .faq-num{color:var(--gold-dark)}
.faq-icon{margin-left:auto;font-size:20px;color:var(--gold);transition:transform .25s;flex-shrink:0}
.faq-item.is-open .faq-icon{transform:rotate(45deg)}
.faq-answer{padding:0 0 20px 44px;font-size:16px;line-height:1.7}
html.js .faq-answer{display:none}
html.js .faq-item.is-open .faq-answer{display:block}
.cta-band{text-align:center;padding:80px 0}
.cta-band h2{margin-bottom:16px;color:#fff;font-weight:700}
.cta-band p{max-width:640px;margin:0 auto 28px;color:#fff;font-weight:600;opacity:1}
.cta-band .btn-outline{color:#fff;border-color:#fff;font-weight:700}
.cta-band .btn-outline:hover{background:rgba(255,255,255,.12)}
.inline-img{width:100%;border-radius:var(--radius);object-fit:cover}
.page-hero{padding:120px 0 60px;background:var(--forest);color:var(--text-on-forest)}
.page-hero h1{margin-top:12px}
.page-content{padding:60px 0}
.page-content h2{margin:40px 0 16px}
.page-content h3{margin:28px 0 12px}
.page-content p{margin-bottom:16px}
.page-content ul,.page-content ol{margin:0 0 16px 24px}
.legal-content{max-width:800px}
.legal-content h2{font-size:1.35rem;margin-top:36px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-form label{display:block;font-family:var(--font-head);font-size:14px;font-weight:600;margin-bottom:6px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:12px 16px;border:1px solid rgba(15,31,26,.2);border-radius:12px;font-family:var(--font-body);font-size:16px;margin-bottom:16px;background:#fff}
.contact-form textarea{min-height:140px;resize:vertical}
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.consent-row{display:flex;flex-direction:row;align-items:flex-start;gap:12px;margin-bottom:20px}
.consent-row input[type="checkbox"]{flex-shrink:0;width:20px;height:20px;margin-top:3px;cursor:pointer}
.consent-row label{flex:1;font-size:15px;line-height:1.5;cursor:pointer}
.alert-success{background:rgba(26,61,50,.15);border:1px solid var(--pine);padding:16px 20px;border-radius:var(--radius);margin-bottom:24px;font-family:var(--font-head)}
.site-footer{background:var(--forest);color:var(--text-on-forest);padding:64px 0 32px}
.footer-grid{display:grid;grid-template-columns:2fr 2fr 1fr;gap:40px}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr}}
.footer-grid h4{font-family:var(--font-head);font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.footer-grid ul{list-style:none}
.footer-grid li{margin-bottom:8px}
.footer-grid a{text-decoration:none;opacity:.9;font-size:15px}
.footer-grid a:hover{color:var(--gold);opacity:1}
.footer-disclaimer{font-size:13px;line-height:1.6;opacity:.85;margin-top:40px;padding-top:24px;border-top:1px solid rgba(232,185,49,.25)}
.footer-meta{font-size:13px;opacity:.7;margin-top:12px}
.disclaimer-block{font-size:14px;line-height:1.65;padding:32px 0;color:rgba(15,31,26,.85);border-top:1px solid rgba(232,185,49,.3)}
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--forest);color:var(--text-on-forest);padding:20px;z-index:2000;transform:translateY(100%);transition:transform .35s;border-top:2px solid var(--gold)}
.cookie-banner.show{transform:translateY(0)}
.cookie-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;max-width:1200px;margin:0 auto}
.cookie-btns{display:flex;flex-wrap:wrap;gap:10px}
.cookie-accept,.cookie-reject,.cookie-custom{padding:10px 20px;border-radius:var(--radius);font-family:var(--font-head);font-weight:600;cursor:pointer;min-height:44px;border:2px solid var(--gold)}
.cookie-accept{background:var(--gold-dark);color:#fff;font-weight:700}
.cookie-reject,.cookie-custom{background:transparent;color:var(--text-on-forest)}
.cookie-modal{position:fixed;inset:0;background:rgba(15,31,26,.7);z-index:2100;display:none;align-items:center;justify-content:center;padding:20px}
.cookie-modal.show{display:flex}
.cookie-modal-box{padding:32px;border-radius:var(--radius);max-width:420px;width:100%}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
.error-page{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 20px 60px}
.error-page h1{font-size:clamp(1.75rem,4vw,2.5rem);margin-bottom:16px}
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
@media(max-width:767px){.services-grid{grid-template-columns:1fr}}
.service-img{height:260px;object-fit:cover;border-radius:var(--radius);width:100%}
.about-letter{font-size:1.1rem;line-height:1.8;font-style:italic;border-left:3px solid var(--gold);padding-left:24px;margin:32px 0}
.prog-list{display:grid;gap:32px;margin-top:40px}
.prog-detail{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;padding:32px 0;border-bottom:1px solid rgba(232,185,49,.2)}
@media(max-width:900px){.prog-detail{grid-template-columns:1fr}}
.prog-detail:nth-child(even) .prog-detail-img{order:2}
@media(max-width:900px){.prog-detail:nth-child(even) .prog-detail-img{order:0}}
.prog-detail-img img{width:100%;height:240px;object-fit:cover;border-radius:var(--radius)}
