/* Editorial page system (2026-11-07).

   For institute pages where the content is a record, a syllabus or a set of
   names, not a product pitch. Structure comes from typography, tables and
   scale instead of a repeated card grid.

   Brand constraints carried over: light fills only, no navy panels, no rule or
   divider line under a heading, no coloured stripe down one side of a box, no
   shadows on cards.

   Loaded after style.css. */

/* ------------------------------------------------------------- masthead --- */
.ed-mast{padding-top:40px}
.ed-crumb{display:inline-block;font-family:var(--sans);font-size:.81rem;font-weight:700;color:var(--slate-soft);text-decoration:none}
.ed-crumb:hover{color:var(--teal-deep)}
.ed-kicker{display:block;margin-top:26px;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-deep);font-weight:500}
.ed-mast h1{margin:16px 0 0;font-size:clamp(2.35rem,4.6vw,3.75rem);line-height:1.03;letter-spacing:-.025em;max-width:22ch;font-weight:500}
.ed-stand{margin:24px 0 0;font-family:var(--serif);font-size:clamp(1.04rem,1.5vw,1.18rem);line-height:1.58;color:var(--slate);max-width:64ch}

/* A row of figures and their labels. No dividers: spacing does the work. */
.ed-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-top:52px}
.ed-figure span{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-soft);line-height:1.4;min-height:2.6em}
.ed-figure b{display:block;margin-top:10px;font-family:var(--serif);font-size:clamp(1.9rem,3.2vw,2.6rem);line-height:1;color:var(--navy);font-weight:500;letter-spacing:-.02em}

/* ------------------------------------------------------------ full band --- */
.ed-band{display:block;width:100%;height:auto;object-fit:cover;aspect-ratio:21/9;background:var(--tint)}
@media (max-width:760px){.ed-band{aspect-ratio:16/9}}

/* ----------------------------------------------------------- label grid --- */
.ed-section{padding:88px 0}
.ed-section--tight{padding:64px 0}
.ed-grid{display:grid;grid-template-columns:190px minmax(0,1fr);gap:56px;align-items:start}
.ed-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-soft);font-weight:500;line-height:1.6;padding-top:4px}
.ed-body{min-width:0}
.ed-body > h2{font-size:clamp(1.55rem,2.6vw,2.1rem);line-height:1.15;margin:0 0 18px;max-width:30ch}
.ed-body > p{font-size:1.02rem;line-height:1.72;color:var(--slate);max-width:68ch}
.ed-body > p + p{margin-top:14px}
.ed-body > p + h3{margin-top:34px}

/* ---------------------------------------------------------------- table --- */
.ed-table-wrap{overflow-x:auto;margin-top:6px}
.ed-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.93rem;min-width:0}
.ed-table caption{caption-side:top;text-align:left;font-family:var(--sans);font-size:.8rem;color:var(--slate-soft);padding-bottom:12px}
.ed-table th{text-align:left;font-weight:600;font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-soft);padding:0 22px 12px 0;vertical-align:bottom}
.ed-table td{padding:17px 22px 17px 0;border-top:1px solid #E4E7EB;vertical-align:top;line-height:1.55;color:var(--slate)}
.ed-table th:last-child,.ed-table td:last-child{padding-right:0}
.ed-table td:first-child{font-family:var(--mono);font-size:.8rem;color:var(--slate);white-space:nowrap}
.ed-table td strong{color:var(--ink);font-weight:600}
.ed-table--plain td:first-child{font-family:var(--sans);font-size:.93rem;white-space:normal}

/* --------------------------------------------------------------- course --- */
.ed-course{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:54px;align-items:start}
.ed-course + .ed-course{margin-top:56px}
.ed-course-main{min-width:0}
.ed-course h3{font-size:1.42rem;line-height:1.2;margin:0 0 10px}
.ed-course h3 a{color:inherit;text-decoration:none}
.ed-course h3 a:hover{color:var(--teal-deep)}
.ed-status{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;background:var(--tint-2);color:var(--slate);vertical-align:3px;margin-left:10px}
.ed-status--open{background:var(--teal);color:#fff}
.ed-course-main > p{font-family:var(--sans);font-size:.95rem;line-height:1.65;color:var(--slate);margin:0 0 20px;max-width:62ch}
.ed-aside{font-family:var(--sans);font-size:.88rem;line-height:1.6;color:var(--slate)}
.ed-aside dl{display:grid;gap:14px}
.ed-aside dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-soft)}
.ed-aside dd{margin:3px 0 0;color:var(--ink)}
.ed-aside .btn{margin-top:20px;width:100%;justify-content:center}

/* ----------------------------------------------------------------- link --- */
.ed-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:.9rem;font-weight:600;color:var(--navy);text-decoration:none}
.ed-link::after{content:"\2192";transition:transform .15s ease}
.ed-link:hover{color:var(--teal-deep)}
.ed-link:hover::after{transform:translateX(4px)}

/* ------------------------------------------------------------ programme --- */
.ed-programme{display:grid;grid-template-columns:180px minmax(0,1fr);gap:40px;padding:26px 0}
.ed-programme:first-of-type{padding-top:0}
.ed-programme + .ed-programme{border-top:1px solid #E4E7EB}
.ed-when{font-family:var(--mono);font-size:.76rem;line-height:1.6;color:var(--slate-soft)}
.ed-programme h3{font-size:1.24rem;margin:0 0 8px;line-height:1.25}
.ed-programme h3 a{color:inherit;text-decoration:none}
.ed-programme h3 a:hover{color:var(--teal-deep)}
.ed-programme p{font-family:var(--sans);font-size:.93rem;line-height:1.65;color:var(--slate);margin:0 0 12px;max-width:64ch}

/* ---------------------------------------------------------------- names --- */
.ed-names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px}
.ed-name b{display:block;font-family:var(--serif);font-size:1.08rem;font-weight:600;color:var(--navy)}
.ed-name span{display:block;margin-top:4px;font-family:var(--sans);font-size:.88rem;line-height:1.55;color:var(--slate)}
.ed-names-note{margin-top:28px;font-family:var(--sans);font-size:.9rem;line-height:1.7;color:var(--slate);max-width:70ch}

/* ------------------------------------------------------------------ faq --- */
.ed-faq{display:grid;gap:0;margin-top:4px}
.ed-faq details{padding:20px 0;border-top:1px solid #E4E7EB}
.ed-faq summary{display:flex;justify-content:space-between;gap:24px;align-items:baseline;list-style:none;cursor:pointer;font-family:var(--sans);font-size:1rem;font-weight:600;color:var(--navy)}
.ed-faq summary::-webkit-details-marker{display:none}
.ed-faq summary::after{content:"+";font-family:var(--mono);font-size:1.05rem;color:var(--teal-deep);flex:0 0 auto}
.ed-faq details[open] summary::after{content:"\2013"}
.ed-faq p{margin:12px 0 0;font-family:var(--sans);font-size:.94rem;line-height:1.7;color:var(--slate);max-width:70ch}

/* ------------------------------------------------------------------ cta --- */
.ed-cta{background:var(--tint-2);padding:48px 52px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:44px;align-items:center}
.ed-cta h2{font-size:clamp(1.5rem,2.4vw,1.95rem);margin:0 0 10px}
.ed-cta p{font-family:var(--sans);font-size:.95rem;line-height:1.65;color:var(--slate);margin:0;max-width:52ch}
.ed-cta-actions{display:flex;flex-direction:column;gap:10px}
.ed-cta .btn.secondary{background:var(--white);color:var(--navy)}
.ed-cta .btn.secondary:hover{background:#DDE2E8}
.ed-cta-actions .btn{width:100%;justify-content:center}

/* -------------------------------------------------------------- visuals --- */
/* A compact title block under the opening image: no tall left-hand column. */
.ed-lead{padding:36px 0 64px}
.ed-lead h1{margin:14px 0 0;font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.06;letter-spacing:-.02em;max-width:34ch;font-weight:500}
.ed-lead .ed-line{margin:16px 0 0;font-family:var(--sans);font-size:1rem;line-height:1.65;color:var(--slate);max-width:56ch}
.ed-lead .ed-figures{margin-top:38px}

.ed-sec{padding:64px 0}
.ed-sec--tight{padding:44px 0}
.ed-sec--applications{background:#F4F5F7}
.ed-sechead{display:flex;justify-content:space-between;align-items:baseline;gap:12px 28px;margin-bottom:26px;flex-wrap:wrap}
.ed-sechead h2{font-family:var(--sans);font-size:clamp(1.5rem,2.6vw,2rem);font-weight:700;color:var(--navy);margin:0;line-height:1.2}
.ed-sechead a{font-family:var(--sans);font-size:.86rem;font-weight:600;color:var(--teal-deep);text-decoration:none}
.ed-sechead a:hover{color:var(--navy)}

/* Three image tiles: picture first, label second, one line of text. */
.ed-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ed-tiles--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.ed-tile{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--white);border:1px solid #E4E7EB}
.ed-tile img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--tint)}
.ed-tile-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.ed-tile b{display:block;margin:8px 0 0;font-family:var(--serif);font-size:1.2rem;font-weight:600;color:var(--navy);line-height:1.25}
.ed-tile p{margin:8px 0 0;font-family:var(--sans);font-size:.9rem;line-height:1.55;color:var(--slate)}
.ed-tile em{margin-top:16px;font-style:normal;font-family:var(--sans);font-size:.84rem;font-weight:600;color:var(--navy)}
.ed-tile:hover b{color:var(--teal-deep)}
.ed-tile:hover img{opacity:.94}

/* Poster wall: the programmes' own artefacts, not stock photography. */
.ed-posters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:start}
.ed-poster{display:block;text-decoration:none;color:inherit}
.ed-poster img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--white)}
.ed-poster span{display:block;margin-top:12px;font-family:var(--sans);font-size:.82rem;line-height:1.45;color:var(--slate)}
.ed-poster b{display:block;font-weight:600;color:var(--ink);margin-bottom:2px}
.ed-poster:hover b{color:var(--teal-deep)}

/* Two course cards, picture-led. */
.ed-coursecards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ed-ccard{display:flex;flex-direction:column;background:var(--white);border:1px solid #E4E7EB;text-decoration:none;color:inherit}
.ed-ccard img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.ed-ccard-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.ed-ccard b{font-family:var(--serif);font-size:1.32rem;font-weight:500;color:var(--navy);line-height:1.2;margin:10px 0 0}
.ed-ccard p{margin:10px 0 0;font-family:var(--sans);font-size:.92rem;line-height:1.6;color:var(--slate)}
.ed-ccard em{margin-top:18px;font-style:normal;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-soft)}
.ed-ccard:hover b{color:var(--teal-deep)}

/* Four short practical facts, no table. */
.ed-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.ed-facts div span{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep)}
.ed-facts div p{margin:8px 0 0;font-family:var(--sans);font-size:.92rem;line-height:1.6;color:var(--slate)}

/* Two-up poster row, for completed cohorts. */
.ed-posters--two{grid-template-columns:repeat(2,minmax(0,1fr));}

/* The open programme: one poster beside its short facts and action. */
.ed-open{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;align-items:start}
.ed-open--poster{grid-template-columns:360px minmax(0,1fr)}
.ed-open img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.ed-open-body dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 32px;margin:22px 0 0}
.ed-open-body dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-soft)}
.ed-open-body dd{margin:4px 0 0;font-family:var(--sans);font-size:.92rem;color:var(--ink);line-height:1.5}
.ed-open-body .btn{margin-top:26px}

/* A dense wall for the session archive. */
.ed-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ed-wall--six{grid-template-columns:repeat(3,minmax(0,1fr))}
.ed-wall a{display:block;text-decoration:none;color:inherit}
.ed-wall img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--white)}
.ed-wall b{display:block;margin-top:11px;font-family:var(--sans);font-size:.84rem;font-weight:600;color:var(--ink);line-height:1.4}
.ed-wall span{display:block;margin-top:3px;font-family:var(--sans);font-size:.76rem;line-height:1.45;color:var(--slate-soft)}
.ed-wall a:hover b{color:var(--teal-deep)}

/* ------------------------------------------------------------ responsive --- */
@media (max-width:1000px){
  .ed-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .ed-label{padding-top:0}
  .ed-course{grid-template-columns:minmax(0,1fr);gap:26px}
  .ed-aside{max-width:520px}
  .ed-programme{grid-template-columns:minmax(0,1fr);gap:10px}
  .ed-figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
  .ed-tiles--four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-posters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-wall--six{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ed-open,.ed-open--poster{grid-template-columns:minmax(0,1fr);gap:28px}
  .ed-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
}
@media (max-width:760px){
  .ed-section{padding:60px 0}
  .ed-sec{padding:48px 0}
  .ed-sechead{row-gap:10px}
  .ed-wall--six{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed-names{grid-template-columns:minmax(0,1fr);gap:22px}
  .ed-cta{grid-template-columns:minmax(0,1fr);padding:32px 26px;gap:26px}
  .ed-tiles,.ed-tiles--four,.ed-coursecards{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .ed-figures{gap:20px 16px}
  .ed-figure span{letter-spacing:.07em;min-height:2.8em}
  .ed-facts{grid-template-columns:minmax(0,1fr)}
  .ed-posters{gap:16px}
  .ed-table th,.ed-table td{padding-right:12px}
  .ed-table--plain td:first-child{padding-right:8px}
  .ed-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
}

@media (min-width:761px){
  .ed-open--details-first{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center}
}

/* Opening photo with live text and a contrast layer. */
main section.ed-photo-hero{position:relative;isolation:isolate;display:grid;align-items:end;min-height:clamp(280px,32vw,420px);padding:clamp(32px,5vw,64px) 0;background:var(--navy)}
.ed-photo-hero .ed-band{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 44%}
.ed-photo-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,20,35,.93) 0%,rgba(10,20,35,.78) 48%,rgba(10,20,35,.18) 100%)}
.ed-photo-hero .ed-photo-hero-copy{width:100%}
.ed-photo-hero h1,.ed-photo-hero .ed-kicker,.ed-photo-hero .ed-line{color:#fff}
@media (max-width:760px){.ed-photo-hero::before{background:linear-gradient(0deg,rgba(10,20,35,.96),rgba(10,20,35,.58))}}
