/* ============================================================
   divisions-v2.css  ·  Academic division pages ("The Journey")
   Ground-up editorial rebuild for the four division child pages:
   lower-primary, upper-primary, middle-school, high-school.
   Scoped under .dv so it never leaks into the rest of the site.
   Loaded AFTER styles.min.css + site-v2.css.

   System: cinematic dark hero with an oversized stage numeral, an
   overlapping quick-facts card, a sibling stage switcher, numbered
   chapters laid out on a label-rail grid, arched image frames, a
   curriculum-at-a-glance panel, a dark outcomes finale, and a
   "continue the journey" navigator.
   ============================================================ */
.dv{
  --navy:#0A2342;--navy-deep:#061730;--cream:#F5F0E6;--ivory:#FBF8F1;
  --red:#C8102E;--em:#EA2742;--gold:#DBAC3E;--gold-soft:#E8CE8A;--ink:#33404f;
  --line:rgba(10,35,66,.13);--line-light:rgba(255,255,255,.16);
  --fd:'Playfair Display',serif;--fb:'Cormorant Garamond',serif;
  --fi:'Instrument Serif',serif;--fm:'DM Mono',monospace;--fu:'Inter',sans-serif;
  --wrap:1200px;--measure:66ch;
  --ease:cubic-bezier(.22,.61,.36,1);
  font-family:var(--fb);color:var(--navy);background:var(--cream);overflow-x:clip}
.dv *{box-sizing:border-box}
.dv em{font-family:var(--fi);font-style:italic;color:var(--em);position:relative;white-space:nowrap}
.dv em::after{content:"";position:absolute;left:0;right:0;bottom:-.05em;height:.36em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 10' preserveAspectRatio='none'%3E%3Cpath d='M2 7 Q 25 2 50 5 T 98 4' stroke='%23DBAC3E' stroke-width='2.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;opacity:.9;z-index:-1}
.dv-wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,5vw,60px)}
.dv-eyebrow{font-family:var(--fm);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}

/* ---- HERO ---------------------------------------------------------- */
.dv-hero{position:relative;min-height:clamp(540px,86vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--navy-deep);isolation:isolate}
.dv-hero__media{position:absolute;inset:0;z-index:-2}
.dv-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.dv-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(103deg,rgba(6,20,45,.93) 0%,rgba(6,20,45,.66) 38%,rgba(6,20,45,.2) 68%,rgba(6,20,45,.34) 100%),linear-gradient(0deg,rgba(6,20,45,.82) 0%,rgba(6,20,45,0) 44%)}
.dv-hero__num{position:absolute;top:clamp(-30px,-2vw,-10px);right:clamp(-10px,2vw,40px);z-index:-1;font-family:var(--fd);font-weight:800;font-size:clamp(220px,38vw,560px);line-height:.8;color:rgba(219,172,62,.13);pointer-events:none;user-select:none}
.dv-hero__in{position:relative;z-index:1;width:100%;padding:clamp(48px,10vh,110px) 0 clamp(96px,13vh,150px)}
.dv-hero__crumb{font-family:var(--fm);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:26px}
.dv-hero__crumb a{color:var(--gold-soft);text-decoration:none;opacity:.9}.dv-hero__crumb a:hover{opacity:1}
.dv-hero__stage{display:inline-flex;align-items:center;gap:12px;font-family:var(--fm);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#fff;margin-bottom:20px}
.dv-hero__stage::before{content:"";width:34px;height:1.5px;background:var(--gold)}
.dv-hero__stage b{color:var(--gold);font-weight:500}
.dv-hero h1{font-family:var(--fd);font-weight:600;font-size:clamp(48px,8.5vw,116px);line-height:.94;margin:0;color:#fff;letter-spacing:-.02em;text-shadow:0 4px 40px rgba(0,0,0,.35)}
.dv-hero__grades{font-family:var(--fm);font-size:clamp(12px,1.1vw,14px);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-top:26px}
.dv-hero__tag{font-family:var(--fd);font-weight:500;font-size:clamp(20px,2.3vw,31px);line-height:1.25;color:#fff;margin-top:22px;max-width:24ch;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.dv-hero__tag em{color:#ff7b86}.dv-hero__tag em::after{opacity:.95}

/* ---- QUICK FACTS (overlapping card) -------------------------------- */
.dv-facts{position:relative;z-index:2;margin-top:clamp(-88px,-7vw,-64px)}
.dv-facts__card{background:var(--ivory);border:1px solid var(--line);border-radius:18px;box-shadow:0 40px 90px -40px rgba(6,20,45,.55);display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}
.dv-facts__item{padding:clamp(22px,2.4vw,34px) clamp(20px,2vw,30px);border-left:1px solid var(--line)}
.dv-facts__item:first-child{border-left:0}
.dv-facts__item::before{content:"";display:block;width:26px;height:3px;background:var(--gold);border-radius:2px;margin-bottom:16px}
.dv-facts__k{font-family:var(--fd);font-weight:600;font-size:clamp(16px,1.4vw,20px);line-height:1.18;color:var(--navy)}
.dv-facts__v{font-family:var(--fm);font-size:10.5px;letter-spacing:.04em;color:#6b7583;margin-top:9px;line-height:1.55}

/* ---- STAGE SWITCHER ------------------------------------------------ */
.dv-stages{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:clamp(40px,6vh,64px) 0 0}
.dv-stages__link{display:inline-flex;align-items:center;gap:10px;font-family:var(--fu);font-size:13px;font-weight:500;color:var(--navy);text-decoration:none;padding:9px 17px;border:1px solid var(--line);border-radius:999px;background:#fff;transition:.2s var(--ease)}
.dv-stages__link span{font-family:var(--fm);font-size:11px;color:var(--gold);letter-spacing:.06em}
.dv-stages__link:hover{border-color:var(--gold);transform:translateY(-2px)}
.dv-stages__link--active{background:var(--navy);color:#fff;border-color:var(--navy)}
.dv-stages__link--active span{color:var(--gold-soft)}

/* ---- INTRO / LEAD -------------------------------------------------- */
.dv-intro{padding:clamp(48px,7vh,88px) 0 clamp(40px,6vh,72px);text-align:center}
.dv-intro__in{max-width:820px;margin:0 auto}
.dv-intro__mark{font-family:var(--fd);font-size:80px;line-height:.6;color:var(--gold);height:44px}
.dv-lead{font-family:var(--fd);font-weight:500;font-size:clamp(27px,3.7vw,48px);line-height:1.14;color:var(--navy);margin:0 0 28px;letter-spacing:-.015em}
.dv-intro .dv-p{max-width:660px;margin-inline:auto}
.dv-p{font-family:var(--fb);font-size:clamp(17.5px,1.35vw,20.5px);line-height:1.66;color:var(--ink);margin:0 0 1.05em}
.dv-p:last-child{margin-bottom:0}

/* ---- FULL-BLEED BAND ----------------------------------------------- */
.dv-band{position:relative;height:clamp(280px,46vh,520px);overflow:hidden;background:var(--navy-deep)}
.dv-band img{width:100%;height:100%;object-fit:cover}
.dv-band__cap{position:absolute;left:0;bottom:0;padding:clamp(18px,3vw,34px);font-family:var(--fm);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.6)}

/* ---- CHAPTERS ------------------------------------------------------ */
.dv-chapters{padding:clamp(56px,8vh,104px) 0;display:flex;flex-direction:column;gap:clamp(56px,8vh,96px)}
.dv-ch{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:clamp(28px,5vw,84px);align-items:start}
.dv-ch__rail{position:sticky;top:110px}
.dv-ch__num{font-family:var(--fd);font-weight:700;font-size:clamp(40px,4vw,58px);line-height:1;color:var(--gold);opacity:.9}
.dv-ch__label{font-family:var(--fm);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-top:14px;padding-top:14px;border-top:2px solid var(--line);display:inline-block}
.dv-ch__body{min-width:0}
.dv-h2{font-family:var(--fd);font-weight:600;font-size:clamp(26px,3.1vw,42px);line-height:1.08;margin:0 0 24px;color:var(--navy);letter-spacing:-.01em;max-width:20ch}
.dv-ch__body .dv-p{max-width:var(--measure)}

/* arched image frame */
.dv-fig{margin:34px 0 4px;border-radius:clamp(70px,10vw,150px) clamp(70px,10vw,150px) 18px 18px;overflow:hidden;box-shadow:0 34px 70px -30px rgba(10,35,66,.5);background:var(--navy-deep);aspect-ratio:16/11}
.dv-fig img{width:100%;height:100%;object-fit:cover}
.dv-ch--media .dv-fig{aspect-ratio:4/3}

/* resource chips */
.dv-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.dv-chip{font-family:var(--fu);font-size:12.5px;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 14px;box-shadow:0 4px 14px rgba(10,35,66,.05)}
.dv-chip b{font-weight:600}

/* callout inside a chapter */
.dv-callout{margin-top:30px;background:var(--navy);color:#fff;border-radius:16px;padding:clamp(26px,3vw,38px);display:flex;gap:26px;align-items:center}
.dv-callout__icon{flex:none;width:58px;height:58px;border-radius:50%;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center}
.dv-callout__icon svg{width:27px;height:27px;stroke:var(--gold);fill:none;stroke-width:1.6}
.dv-callout__k{font-family:var(--fm);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.dv-callout__t{font-family:var(--fb);font-size:clamp(16.5px,1.35vw,20px);line-height:1.5;color:rgba(255,255,255,.95);margin:0}

/* ---- CURRICULUM AT A GLANCE ---------------------------------------- */
.dv-curric{background:var(--ivory);border-block:1px solid var(--line)}
.dv-curric__in{padding:clamp(56px,8vh,100px) 0}
.dv-curric__head{max-width:640px;margin-bottom:clamp(34px,4vh,52px)}
.dv-curric__head .dv-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.dv-curric__head .dv-eyebrow::before{content:"";width:28px;height:2px;background:var(--gold)}
.dv-curric__grid{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,64px)}
.dv-col{flex:1 1 240px;min-width:0;max-width:360px}
.dv-col__t{font-family:var(--fm);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);padding-bottom:14px;border-bottom:2px solid var(--gold);margin-bottom:6px}
.dv-col__li{display:flex;align-items:baseline;gap:10px;font-family:var(--fb);font-size:clamp(16.5px,1.3vw,19px);color:var(--navy);padding:13px 0;border-bottom:1px solid var(--line)}
.dv-col__li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold);transform:translateY(-2px)}
.dv-col__li small{font-family:var(--fm);font-size:11px;color:#8a93a0;letter-spacing:.02em}

/* ---- CREDENTIALS (High School) ------------------------------------- */
.dv-creds{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.dv-cred{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:14px;padding:28px;box-shadow:0 16px 40px -18px rgba(10,35,66,.22)}
.dv-cred__n{font-family:var(--fm);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:13px}
.dv-cred__t{font-family:var(--fd);font-weight:600;font-size:clamp(18px,1.5vw,23px);line-height:1.2;color:var(--navy);margin:0}

/* ---- OUTCOMES (dark finale) ---------------------------------------- */
.dv-out{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden}
.dv-out__in{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:clamp(60px,9vh,120px) clamp(20px,5vw,60px)}
.dv-out__eyebrow{font-family:var(--fm);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px;margin-bottom:20px}
.dv-out__eyebrow::before{content:"";width:28px;height:2px;background:var(--gold)}
.dv-out h2{font-family:var(--fd);font-weight:600;font-size:clamp(28px,3.6vw,48px);line-height:1.08;margin:0 0 clamp(30px,4vh,48px);color:#fff;letter-spacing:-.01em;max-width:20ch}
.dv-out h2 em{color:var(--gold-soft)}
.dv-out__grid{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.dv-out__item{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-top:1px solid var(--line-light)}
.dv-out__n{flex:none;font-family:var(--fm);font-size:12px;color:var(--gold);padding-top:4px}
.dv-out__txt{font-family:var(--fb);font-size:clamp(16.5px,1.3vw,20px);line-height:1.45;color:rgba(255,255,255,.94)}

/* ---- JOURNEY NAVIGATOR (closing) ----------------------------------- */
.dv-next{padding:clamp(56px,8vh,104px) 0}
.dv-next__card{position:relative;display:grid;grid-template-columns:1.15fr .85fr;min-height:340px;border-radius:22px;overflow:hidden;background:var(--navy);color:#fff;box-shadow:0 40px 90px -44px rgba(6,20,45,.6)}
.dv-next__body{padding:clamp(34px,4vw,60px);display:flex;flex-direction:column;justify-content:center}
.dv-next__lab{font-family:var(--fm);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.dv-next__title{font-family:var(--fd);font-weight:600;font-size:clamp(30px,4vw,52px);line-height:1.02;color:#fff;text-decoration:none;display:block;letter-spacing:-.01em}
.dv-next__title .ar{display:inline-block;transition:transform .3s var(--ease);color:var(--gold-soft)}
.dv-next__card:hover .dv-next__title .ar{transform:translateX(12px)}
.dv-next__sub{font-family:var(--fb);font-size:clamp(16px,1.3vw,19px);color:rgba(255,255,255,.72);margin:14px 0 0;max-width:34ch}
.dv-next__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.dv-next__media{position:relative;overflow:hidden}
.dv-next__media img{width:100%;height:100%;object-fit:cover}
.dv-next__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(10,35,66,.2) 40%,transparent 100%)}
.dv-btn{font-family:var(--fu);font-size:14px;font-weight:500;text-decoration:none;padding:13px 26px;border-radius:999px;transition:.2s;white-space:nowrap;display:inline-block}
.dv-btn--solid{background:var(--red);color:#fff}.dv-btn--solid:hover{background:#e11532}
.dv-btn--ghost{border:1.5px solid rgba(255,255,255,.32);color:#fff}.dv-btn--ghost:hover{background:#fff;color:var(--navy)}

/* ---- RESPONSIVE ---------------------------------------------------- */
@media(max-width:900px){
  .dv-ch{grid-template-columns:1fr;gap:20px}
  .dv-ch__rail{position:static;display:flex;align-items:center;gap:18px}
  .dv-ch__label{margin-top:0;padding-top:0;border-top:0}
  .dv-ch__num{font-size:40px}
  .dv-next__card{grid-template-columns:1fr}
  .dv-next__media{min-height:220px;order:-1}
  .dv-next__media::after{background:linear-gradient(0deg,var(--navy) 0%,rgba(10,35,66,.15) 60%,transparent 100%)}
}
@media(max-width:760px){
  .dv-facts{margin-top:clamp(-64px,-10vw,-40px)}
  .dv-facts__card{grid-template-columns:1fr 1fr}
  .dv-facts__item:nth-child(3){border-left:0}
  .dv-facts__item:nth-child(n+3)::before{margin-top:4px}
  .dv-out__grid{grid-template-columns:1fr;gap:0}
  .dv-creds{grid-template-columns:1fr}
  .dv-callout{flex-direction:column;align-items:flex-start}
}
@media(max-width:440px){
  .dv-facts__card{grid-template-columns:1fr}
  .dv-facts__item{border-left:0}
}
@media(prefers-reduced-motion:reduce){.dv *{transition:none!important}}
