/*
Theme Name: EDGE — Yousry Atlm
Theme URI: https://yousry-atlm.bio
Author: EDGE Holding
Description: English-language block theme for the Yousry Mahmoud Atlm institutional profile. Built to the approved Figma design; no page builder, design tokens driven by theme.json.
Version: 2.14.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: edge-atlm
Tags: block-theme, full-site-editing, one-column, accessibility-ready
*/

/* ============================================================ base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}}
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,svg,video{max-width:100%;height:auto;display:block}
:where(a):focus-visible,:where(button):focus-visible,:where(input):focus-visible,
:where(select):focus-visible,:where(textarea):focus-visible{
  outline:2px solid var(--wp--preset--color--steel);outline-offset:3px;border-radius:2px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{max-inline-size:1200px;margin-inline:auto;padding-inline:var(--wp--custom--gutter)}
.wrap--wide{max-inline-size:1280px}

/* ============================================================ primitives */
.edge-kicker{font-size:var(--wp--preset--font-size--kicker);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--wp--preset--color--signature);margin:0 0 14px}
.edge-kicker--light{color:var(--wp--preset--color--steel)}
.edge-rule{block-size:1px;inline-size:100%;background:var(--wp--preset--color--line);
  border:0;margin:0 0 26px}
.edge-rule--light{background:rgba(244,245,247,.24)}
.edge-lead{font-size:var(--wp--preset--font-size--lead);line-height:1.6;
  color:var(--wp--preset--color--slate);max-inline-size:78ch;margin:0 0 8px}
.edge-section{padding-block:var(--wp--preset--spacing--70)}
.edge-section--navy{background:var(--wp--preset--color--navy);color:var(--wp--preset--color--light)}
.edge-section--deep{background:var(--wp--preset--color--navy-800);color:var(--wp--preset--color--light)}
.edge-section--light{background:var(--wp--preset--color--light)}
:is(.edge-section--navy,.edge-section--deep) :is(h1,h2,h3,h4,h5,h6){color:#fff}
:is(.edge-section--navy,.edge-section--deep) .edge-lead{color:#C6D0E0}
.edge-section h2.wp-block-heading,.edge-hero h2.wp-block-heading{font-size:var(--wp--preset--font-size--title);
  line-height:1.18;margin:0 0 20px;max-inline-size:35ch}
.edge-section h3{font-size:var(--wp--preset--font-size--title-s);margin:0 0 10px}

/* Section head: heading on the left, a "see all" action on the right. */
.edge-sechead{display:flex;align-items:flex-end;justify-content:space-between;
  gap:clamp(16px,3vw,40px);flex-wrap:wrap}
.edge-sechead__t{min-inline-size:min(100%,26ch)}
.edge-sechead__t h2{margin-block-end:0}
.edge-sechead .wp-block-buttons{margin-block-start:0}

/* Image slot. Replaced by a real <img> once the photography is supplied. */
.edge-figure{position:relative;display:block;inline-size:100%;overflow:hidden;
  background:linear-gradient(135deg,#16233B 0%,#1E2E4B 100%);
  border:1px solid rgba(244,245,247,.14)}
.edge-figure::after{content:attr(data-slot);position:absolute;inset-block-end:10px;
  inset-inline-start:12px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(244,245,247,.42)}
.edge-figure--light{background:linear-gradient(135deg,#E7EAF0 0%,#D8DCE3 100%);
  border-color:var(--wp--preset--color--line)}
.edge-figure--light::after{color:var(--wp--preset--color--slate-muted)}
.edge-figure--16x9{aspect-ratio:16/9}
.edge-figure--4x3{aspect-ratio:4/3}
.edge-figure--3x4{aspect-ratio:3/4}
.edge-figure--4x5{aspect-ratio:4/5}
.edge-figure img{inline-size:100%;block-size:100%;object-fit:cover}

/* ============================================================ header */
.edge-header{position:sticky;inset-block-start:0;z-index:60;
  background:var(--wp--preset--color--navy);
  border-block-end:1px solid rgba(244,245,247,.1)}
.edge-header__inner{max-inline-size:1280px;margin-inline:auto;
  padding:18px var(--wp--custom--gutter);display:flex;align-items:center;
  justify-content:space-between;gap:24px;flex-wrap:wrap}
.edge-logo{font-family:var(--wp--preset--font-family--display);font-size:22px;font-weight:300;
  letter-spacing:.1em;color:#fff;margin:0}
.edge-logo a{color:#fff;text-decoration:none}
.edge-nav{display:flex;align-items:center;gap:26px;flex-wrap:wrap;row-gap:6px}
.edge-nav ul,.edge-nav .wp-block-navigation__container{list-style:none;margin:0;padding:0;
  display:flex;align-items:center;flex-wrap:wrap;gap:26px;row-gap:6px}
.edge-nav li{margin:0}
.edge-nav a{position:relative;color:rgba(244,245,247,.78);text-decoration:none;
  font-size:var(--wp--preset--font-size--kicker);font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;padding-block:6px;transition:color var(--wp--custom--transition)}
.edge-nav a::after{content:"";position:absolute;inset-block-end:0;inset-inline-start:0;
  inline-size:0;block-size:1px;background:var(--wp--preset--color--steel);
  transition:inline-size var(--wp--custom--transition)}
.edge-nav a:hover,.edge-nav a[aria-current="page"]{color:#fff}
.edge-nav a:hover::after,.edge-nav a[aria-current="page"]::after{inline-size:100%}

/* ============================================================ hero */
.edge-hero{background:var(--wp--preset--color--navy);color:var(--wp--preset--color--light);
  padding-block:clamp(56px,8vw,104px)}
.edge-hero h1{color:#fff;font-size:var(--wp--preset--font-size--display);line-height:1.14;
  margin:0 0 20px;max-inline-size:31ch}
.edge-hero h1 .soft{color:var(--wp--preset--color--steel)}
.edge-hero__sub{font-size:var(--wp--preset--font-size--body);color:rgba(244,245,247,.74);
  max-inline-size:64ch;margin:0}
.edge-hero__grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,.58fr);
  gap:clamp(28px,5vw,72px);align-items:center}
.edge-portrait{aspect-ratio:4/5;max-inline-size:400px;justify-self:end;inline-size:100%;
  background-color:#12203A;background-size:cover;background-position:50% 12%;
  background-repeat:no-repeat;border:1px solid rgba(244,245,247,.16);overflow:hidden;
  position:relative}
.edge-portrait::after{content:attr(data-slot);position:absolute;inset-block-end:12px;
  inset-inline-start:14px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(244,245,247,.4)}
.has-portrait .edge-portrait::after{content:none}

/* Capability chip band — its own light strip under the hero. */
.edge-chipband{background:var(--wp--preset--color--light);
  border-block-end:1px solid var(--wp--preset--color--line);padding-block:22px}
.edge-chips{display:flex;flex-wrap:wrap;gap:10px}
.edge-chip{display:inline-flex;align-items:center;align-self:flex-start;
  border:1px solid var(--wp--preset--color--line);background:#fff;padding:8px 14px;
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.12em;text-transform:uppercase;
  color:var(--wp--preset--color--slate);white-space:nowrap}

/* Statistic band. */
.edge-statband{background:var(--wp--preset--color--navy-800);padding-block:clamp(30px,4vw,44px)}
.edge-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.edge-stat{padding:clamp(14px,2vw,20px) 30px;
  border-inline-start:1px solid rgba(244,245,247,.14)}
.edge-stat:first-child{border-inline-start:0;padding-inline-start:0}
.edge-stat__v{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title);line-height:1.05;
  color:var(--wp--preset--color--steel);margin:0 0 10px}
.edge-stat__l{font-size:var(--wp--preset--font-size--micro);letter-spacing:.12em;
  text-transform:uppercase;color:rgba(244,245,247,.6);margin:0;line-height:1.6}
.edge-stats--light .edge-stat{border-inline-start-color:var(--wp--preset--color--line)}
.edge-stats--light .edge-stat__v{color:var(--wp--preset--color--signature)}
.edge-stats--light .edge-stat__l{color:var(--wp--preset--color--slate-muted)}

/* ============================================================ thesis */
.edge-thesis__head{text-align:center;max-inline-size:58ch;margin-inline:auto}
.edge-thesis__head h2{margin-inline:auto}
.edge-thesis__head .edge-rule{max-inline-size:120px;margin-inline:auto;
  background:var(--wp--preset--color--signature)}
.edge-thesis__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.45fr);
  gap:clamp(28px,5vw,72px);align-items:start;
  margin-block-start:clamp(30px,4vw,52px)}
.edge-thesis__grid p{margin:0 0 18px}
.edge-quote{margin:26px 0 0;padding-inline-start:26px;
  border-inline-start:2px solid var(--wp--preset--color--signature)}
.edge-quote p{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);line-height:1.42;
  color:var(--wp--preset--color--navy);margin:0}
:is(.edge-section--navy,.edge-section--deep) .edge-quote{border-inline-start-color:#7E93B8}
:is(.edge-section--navy,.edge-section--deep) .edge-quote p{color:var(--wp--preset--color--light)}
.edge-quote cite{display:block;margin-block-start:14px;font-style:normal;
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.14em;text-transform:uppercase;
  color:var(--wp--preset--color--slate-muted)}
:is(.edge-section--navy,.edge-section--deep) .edge-quote cite{color:#A8B9D4}

/* Book cover panel. */
.edge-book{aspect-ratio:3/4;background:var(--wp--preset--color--navy);
  border:1px solid rgba(11,21,38,.2);padding:clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;justify-content:space-between;color:#fff}
.edge-book__k{font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--wp--preset--color--steel);margin:0}
.edge-book__w{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:clamp(26px,2.6vw,34px);line-height:1.12;color:#fff;margin:0}
.edge-book__m{font-size:11px;line-height:1.6;color:rgba(244,245,247,.62);margin:0}
.edge-book__n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:6px 0 0}
.edge-book__bar{display:flex;gap:8px;margin-block:14px}
.edge-book__bar i{display:block;inline-size:24px;block-size:24px;
  border:1px solid var(--wp--preset--color--steel)}
.edge-book__bar i:last-child{background:var(--wp--preset--color--steel);border-color:transparent}

/* ============================================================ journey */
/* Journey — three chapter cards; details reveal on hover / focus (pointer
   devices) and are shown inline on touch devices. */
.edge-jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,1.6vw,22px);align-items:start;margin-block-start:clamp(28px,4vw,44px)}
.edge-jcard{position:relative;display:flex;flex-direction:column;
  background:var(--wp--preset--color--navy-800);
  border:1px solid rgba(244,245,247,.12);border-radius:5px;
  padding:clamp(22px,2.2vw,30px);overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.edge-jcard:focus-visible{outline:2px solid var(--wp--preset--color--steel);outline-offset:3px}
.edge-jcard__k{font-size:var(--wp--preset--font-size--micro);letter-spacing:.16em;
  text-transform:uppercase;color:var(--wp--preset--color--steel);margin:0 0 12px}
.edge-jcard__t{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--lead);line-height:1.22;color:#fff;margin:0;
  min-block-size:2.44em}
.edge-jcard__more{margin-block-start:18px}
.edge-jcard__d{color:rgba(244,245,247,.74);margin:0;
  font-size:var(--wp--preset--font-size--small);line-height:1.62}
.edge-jcard__tags{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:18px}
.edge-jcard__cue{display:none}
/* Pointer devices: collapse detail by default, reveal on hover / focus. */
@media (hover:hover) and (pointer:fine){
  .edge-jcard{cursor:default}
  .edge-jcard__more{max-height:0;opacity:0;transform:translateY(8px);overflow:hidden;
    margin-block-start:0;
    transition:max-height .45s ease,opacity .35s ease,transform .35s ease,
      margin-block-start .45s ease}
  .edge-jcard:hover .edge-jcard__more,
  .edge-jcard:focus-within .edge-jcard__more{max-height:520px;opacity:1;transform:none;
    margin-block-start:18px}
  .edge-jcard:hover,.edge-jcard:focus-within{transform:translateY(-4px);
    border-color:rgba(126,147,184,.55);box-shadow:0 20px 44px rgba(0,0,0,.42)}
  .edge-jcard__cue{display:flex;align-items:center;gap:8px;margin:20px 0 0;
    font-family:var(--wp--preset--font-family--body);
    font-size:var(--wp--preset--font-size--micro);letter-spacing:.14em;
    text-transform:uppercase;color:var(--wp--preset--color--steel);
    transition:opacity .3s ease}
  .edge-jcard__cue::before{content:"";width:22px;height:1px;
    background:var(--wp--preset--color--steel);opacity:.7}
  .edge-jcard:hover .edge-jcard__cue,
  .edge-jcard:focus-within .edge-jcard__cue{opacity:0}
}

/* ============================================================ cards */
.edge-grid{display:grid;gap:clamp(18px,2.2vw,28px);margin-block-start:clamp(26px,3.4vw,42px)}
.edge-grid--2{grid-template-columns:repeat(2,1fr)}
.edge-grid--3{grid-template-columns:repeat(3,1fr)}
.edge-grid--4{grid-template-columns:repeat(4,1fr)}
.edge-grid+.edge-grid{margin-block-start:clamp(18px,2.2vw,28px)}
.edge-card{background:#fff;border:1px solid var(--wp--preset--color--line);
  padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:14px;
  transition:transform var(--wp--custom--transition),box-shadow var(--wp--custom--transition),
             border-color var(--wp--custom--transition)}
.edge-card:hover{transform:translateY(-2px);border-color:var(--wp--preset--color--steel);
  box-shadow:0 12px 30px rgba(11,21,38,.08)}
.edge-card--navy{background:var(--wp--preset--color--navy-700);
  border-color:rgba(244,245,247,.14);color:rgba(244,245,247,.78)}
.edge-card--navy:hover{box-shadow:0 12px 30px rgba(0,0,0,.35)}
.edge-card--plain{border:0;background:transparent;padding:0}
.edge-card--plain:hover{transform:none;box-shadow:none}
.edge-card__t{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);line-height:1.24;margin:0;
  color:var(--wp--preset--color--navy)}
.edge-card--navy .edge-card__t{color:#fff}
.edge-card__d{font-size:var(--wp--preset--font-size--body);line-height:1.66;margin:0;
  color:var(--wp--preset--color--slate)}
.edge-card--navy .edge-card__d{color:rgba(244,245,247,.74)}
.edge-card__meta{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:auto}
.edge-tag{display:inline-flex;align-items:center;align-self:flex-start;white-space:nowrap;
  border:1px solid var(--wp--preset--color--line);padding:6px 11px;
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.1em;text-transform:uppercase;
  color:var(--wp--preset--color--slate-muted)}
.edge-card--navy .edge-tag,.edge-card--navy .edge-kicker,.edge-card--navy .edge-kicker--light{
  color:#A8B9D4;border-color:rgba(244,245,247,.24)}
:is(.edge-section--navy,.edge-section--deep) > .wrap .edge-tag{
  color:#A8B9D4;border-color:rgba(244,245,247,.28)}
/* A white card inside a dark band keeps its own colours. */
:is(.edge-section--navy,.edge-section--deep)
  :is(.edge-card:not(.edge-card--navy),.edge-note,.edge-prose) :is(h1,h2,h3,h4,h5,h6){
  color:var(--wp--preset--color--navy)}
:is(.edge-section--navy,.edge-section--deep) .edge-card:not(.edge-card--navy) .edge-card__d{
  color:var(--wp--preset--color--slate)}
:is(.edge-section--navy,.edge-section--deep) .edge-card:not(.edge-card--navy) .edge-tag{
  color:var(--wp--preset--color--slate-muted);border-color:var(--wp--preset--color--line)}

/* File-type badge on the download cards. */
.edge-file{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  background:#EEF1F6;border:1px solid var(--wp--preset--color--line);padding:9px 14px;
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.1em;text-transform:uppercase;
  color:var(--wp--preset--color--signature);white-space:nowrap}
.edge-file i{display:inline-block;inline-size:16px;block-size:16px;flex:none;
  background:var(--wp--preset--color--signature);
  -webkit-mask:var(--edge-doc-icon) center/contain no-repeat;
  mask:var(--edge-doc-icon) center/contain no-repeat}
:root{--edge-doc-icon:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3C/svg%3E")}

/* Media card: image, tag, title. */
.edge-media{background:var(--wp--preset--color--navy-700);
  border:1px solid rgba(244,245,247,.14);display:flex;flex-direction:column;
  transition:transform var(--wp--custom--transition),border-color var(--wp--custom--transition)}
.edge-media:hover{transform:translateY(-2px);border-color:var(--wp--preset--color--steel)}
.edge-media__b{padding:clamp(16px,2vw,22px)}
.edge-media__k{font-size:var(--wp--preset--font-size--micro);letter-spacing:.14em;
  text-transform:uppercase;color:#A8B9D4;margin:0 0 10px}
.edge-media__t{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--lead);line-height:1.28;color:#fff;margin:0}
.edge-play{position:absolute;inset-block-start:50%;inset-inline-start:50%;
  transform:translate(-50%,-50%);inline-size:44px;block-size:44px;border-radius:50%;
  background:rgba(30,53,104,.86);display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;line-height:1}

/* Press card on a light band. */
.edge-press{display:flex;flex-direction:column;gap:14px}
.edge-press__y{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--lead);color:var(--wp--preset--color--slate-muted);margin:0}
.edge-press__d{font-size:var(--wp--preset--font-size--small);line-height:1.7;
  color:var(--wp--preset--color--slate);margin:0}

/* Education card. */
.edge-edu{background:var(--wp--preset--color--navy-700);
  border:1px solid rgba(244,245,247,.14);display:flex;flex-direction:column;overflow:hidden}
.edge-edu__f{position:relative}
.edge-edu__y{position:absolute;inset-block-start:12px;inset-inline-start:12px;
  background:var(--wp--preset--color--navy);color:#fff;padding:5px 12px;border-radius:20px;
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.1em}
.edge-edu__b{padding:clamp(16px,2vw,22px);display:flex;flex-direction:column;gap:8px}
.edge-edu__c{font-size:var(--wp--preset--font-size--micro);letter-spacing:.14em;
  text-transform:uppercase;color:#A8B9D4;margin:0}
.edge-edu__n{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);line-height:1.2;color:#fff;margin:0;
  padding-block-end:12px;border-block-end:1px solid rgba(244,245,247,.18)}
.edge-edu__p{font-size:var(--wp--preset--font-size--small);line-height:1.66;
  color:rgba(244,245,247,.74);margin:0}

/* ============================================================ impact record */
.edge-record{border-block-start:1px solid var(--wp--preset--color--line);
  padding-block:clamp(34px,4vw,52px);margin-block-start:0}
.edge-record__n{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);color:#7E8DA6;margin:0 0 10px;line-height:1}
.edge-record__t{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title);line-height:1.2;margin:0 0 28px;
  color:var(--wp--preset--color--navy);max-inline-size:38ch}
.edge-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.4vw,34px);
  align-items:start}
.edge-fields__col{display:flex;flex-direction:column;gap:clamp(20px,2.2vw,30px)}
.edge-field__k{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--wp--preset--color--signature);
  margin:0 0 9px}
.edge-field__k::before{content:"";inline-size:18px;block-size:2px;flex:0 0 auto;
  background:currentColor;opacity:.85}
.edge-field__v{font-size:var(--wp--preset--font-size--small);line-height:1.72;margin:0;
  color:var(--wp--preset--color--slate)}
/* Single-field record (Contribution only) reads as a clean lead statement. */
.edge-fields--single{grid-template-columns:1fr;max-inline-size:62ch}
.edge-fields--single .edge-field__v{font-size:var(--wp--preset--font-size--body);line-height:1.66}
:is(.edge-section--navy,.edge-section--deep) .edge-record{
  border-block-start-color:rgba(244,245,247,.18)}
:is(.edge-section--navy,.edge-section--deep) .edge-record__t{color:#fff}
:is(.edge-section--navy,.edge-section--deep) .edge-record__n{color:#7E93B8}
:is(.edge-section--navy,.edge-section--deep) .edge-field__k{color:var(--wp--preset--color--steel)}
:is(.edge-section--navy,.edge-section--deep) .edge-field__v{color:rgba(244,245,247,.78)}

/* ============================================================ EDGE stages */
.edge-stage{background:var(--wp--preset--color--navy-800);
  border:1px solid rgba(244,245,247,.14);padding:clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;gap:12px}
.edge-stage__g{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:52px;line-height:1;color:rgba(126,147,184,.72);margin:0 0 6px}
/* .72, not .5: at half opacity the stage letter composited to 2.32:1 on the card
   ground, below the 3:1 AA floor that large text still has to clear. At .72 it
   measures 3.38:1 and stays visually recessive behind the stage name. */
.edge-stage__n{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);line-height:1.2;color:#fff;margin:0}
.edge-stage__d{font-size:var(--wp--preset--font-size--small);line-height:1.7;
  color:rgba(244,245,247,.76);margin:0}
.edge-stage__e{margin-block-start:auto;padding-block-start:14px;
  border-block-start:1px solid rgba(244,245,247,.18);
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.11em;text-transform:uppercase;
  color:var(--wp--preset--color--steel)}
.edge-gates{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  margin-block-start:clamp(22px,3vw,34px)}
.edge-gates span{display:inline-flex;align-items:center;justify-content:center;
  padding:10px 18px;border:1px solid rgba(244,245,247,.28);
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.14em;text-transform:uppercase;
  color:var(--wp--preset--color--light);white-space:nowrap}
.edge-gates b{color:var(--wp--preset--color--steel);font-weight:400;font-size:14px;
  padding-inline:4px}

/* Four principles — white card with a line icon. */
.edge-principle{background:#fff;border:1px solid var(--wp--preset--color--line);
  padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:14px}
.edge-principle svg{inline-size:26px;block-size:26px;stroke:var(--wp--preset--color--steel);
  fill:none;stroke-width:1.4}
.edge-principle h3{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--title-s);line-height:1.22;
  color:var(--wp--preset--color--navy);margin:0}
.edge-principle p{font-size:var(--wp--preset--font-size--small);line-height:1.7;
  color:var(--wp--preset--color--slate);margin:0}

/* ============================================================ engagement routes */
.edge-routes{display:grid;grid-template-columns:repeat(2,1fr);
  column-gap:clamp(28px,5vw,64px);margin-block-start:clamp(26px,3.4vw,42px)}
.edge-route{padding-block:20px;border-block-end:1px solid rgba(244,245,247,.16)}
.edge-route__k{font-size:var(--wp--preset--font-size--micro);letter-spacing:.16em;
  text-transform:uppercase;color:var(--wp--preset--color--steel);margin:0 0 8px}
.edge-route__d{color:rgba(244,245,247,.82);margin:0}
.edge-contact{margin-block-start:clamp(28px,4vw,48px)}
.edge-contact a{display:inline-flex;align-items:center;background:rgba(126,147,184,.9);
  color:var(--wp--preset--color--navy);text-decoration:none;padding:16px 26px;
  font-size:var(--wp--preset--font-size--kicker);font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;transition:background var(--wp--custom--transition)}
.edge-contact a:hover{background:#fff;text-decoration:none}

/* ============================================================ definition list */
.edge-dl{border-block-start:1px solid var(--wp--preset--color--line);padding-block:22px;
  display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:clamp(14px,2vw,30px);
  margin-block-start:0}
.edge-rule+.edge-dl,.edge-note+.edge-dl{border-block-start:0;padding-block-start:0;
  margin-block-start:clamp(22px,3vw,34px)}
.edge-dl__y{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--lead);color:var(--wp--preset--color--signature);margin:0}
.edge-dl__b{margin:0;font-size:var(--wp--preset--font-size--small);line-height:1.72}
.edge-dl__b strong{color:var(--wp--preset--color--navy);font-weight:600}
:is(.edge-section--navy,.edge-section--deep) .edge-dl{border-block-start-color:rgba(244,245,247,.18)}
:is(.edge-section--navy,.edge-section--deep) .edge-dl__y{color:#fff}
:is(.edge-section--navy,.edge-section--deep) .edge-dl__b{color:rgba(244,245,247,.8)}
:is(.edge-section--navy,.edge-section--deep) .edge-dl__b strong{color:#fff}

/* ============================================================ prose + utility */
.edge-prose{max-inline-size:76ch}
.edge-prose h2{font-size:var(--wp--preset--font-size--title-s);margin-block:clamp(32px,4vw,48px) 12px}
.edge-prose p{margin-block:0 16px}
.edge-prose ul{margin-block:0 16px;padding-inline-start:22px}
.edge-prose li{margin-block-end:8px}
.edge-note{font-size:var(--wp--preset--font-size--small);color:var(--wp--preset--color--slate-muted);
  padding:16px 20px;background:var(--wp--preset--color--light);
  border-inline-start:2px solid var(--wp--preset--color--steel);margin-block:0 28px}
.edge-section--light .edge-note{background:#fff}
.edge-centre{text-align:center;max-inline-size:62ch;margin-inline:auto}
.edge-centre .edge-rule{max-inline-size:120px;margin-inline:auto}
.edge-centre .wp-block-buttons{justify-content:center}

/* ============================================================ footer */
.edge-footer{background:var(--wp--preset--color--navy);color:rgba(244,245,247,.64);
  padding-block:clamp(44px,5vw,64px);font-size:var(--wp--preset--font-size--small)}
.edge-footer a{color:rgba(244,245,247,.84);text-decoration:none}
.edge-footer a:hover{color:#fff;text-decoration:underline}
.edge-footer__name{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:22px;color:#fff;letter-spacing:.1em;margin:0 0 10px}
.edge-footer__legal{display:flex;flex-wrap:wrap;gap:18px;margin-block-start:26px;
  padding-block-start:22px;border-block-start:1px solid rgba(244,245,247,.16);
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.08em;text-transform:uppercase;
  list-style:none}

/* ============================================================ breakpoints */
@media (max-width:1024px){
  .edge-grid--4{grid-template-columns:repeat(2,1fr)}
  .edge-grid--3{grid-template-columns:repeat(2,1fr)}
  .edge-thesis__grid{grid-template-columns:1fr;max-inline-size:70ch;margin-inline:auto}
  .edge-book{max-inline-size:320px}
}
@media (max-width:860px){
  .edge-jgrid{grid-template-columns:1fr;gap:16px}
}
@media (max-width:820px){
  .edge-hero__grid{grid-template-columns:1fr}
  .edge-portrait{justify-self:start;max-inline-size:300px}
  .edge-fields{grid-template-columns:1fr}
  .edge-routes{grid-template-columns:1fr;column-gap:0}
  .edge-stat{padding-inline:0 20px}
}
@media (max-width:640px){
  .edge-grid--2,.edge-grid--3,.edge-grid--4{grid-template-columns:1fr}
  .edge-dl{grid-template-columns:1fr;gap:8px}
  .edge-header__inner{align-items:center;gap:12px;flex-wrap:nowrap}
  .edge-nav,.edge-nav ul{gap:16px}
  .edge-sechead{align-items:flex-start}
  .edge-stat{border-inline-start:0;padding-inline-start:0;
    border-block-start:1px solid rgba(244,245,247,.14)}
  .edge-stat:first-child{border-block-start:0}
}

/* ============================================================ core overrides
   1) `.wp-site-blocks > *` and `.is-layout-flow > *` carry a default blockGap
      that paints white bands and breaks every flex row. theme.json sets
      blockGap to 0; these rules restore the gaps this design does want.
   2) `.wp-block-separator:not(.is-style-wide):not(.is-style-dots)` caps rules
      at 100px and outranks a two-class selector — hence hr + two classes.
   3) A page-builder global stylesheet may set font-family on body and h1–h6;
      these selectors match that specificity and load later. */
.wp-site-blocks > *{margin-block:0}
.wp-site-blocks :is(.edge-chips,.edge-card__meta,.edge-gates,.edge-footer__legal,.edge-stats,
  .edge-grid,.edge-fields,.edge-hero__grid,.edge-header__inner,.edge-jgrid,.edge-jcard,
  .edge-jcard__more,.edge-dl,.edge-record,.edge-stage,.edge-card,.edge-media,.edge-mfeature__list,
  .edge-mrow__b,.edge-press,.edge-edu,
  .edge-principle,.edge-routes,.edge-route,.edge-sechead,.edge-thesis__grid,
  .wp-block-buttons) > *{margin-block:0}
.wp-site-blocks .wp-block-buttons{gap:12px;margin-block-start:clamp(26px,3.4vw,40px)}
.wp-site-blocks hr.wp-block-separator.edge-rule{width:100%;max-width:none;height:1px;
  border:0;opacity:1;background:var(--wp--preset--color--line)}
.wp-site-blocks hr.wp-block-separator.edge-rule--light{background:rgba(244,245,247,.24)}
.wp-site-blocks hr.wp-block-separator.edge-rule--short{max-width:120px}
.wp-site-blocks,
.wp-site-blocks :is(p,li,a,span,cite,blockquote,label,button,input,select,textarea){
  font-family:var(--wp--preset--font-family--body)}
.wp-site-blocks :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--wp--preset--font-family--display);font-weight:300}
.wp-site-blocks :is(.edge-logo,.edge-logo a,.edge-stat__v,.edge-card__t,.edge-stage__g,
  .edge-stage__n,.edge-record__n,.edge-record__t,.edge-dl__y,.edge-footer__name,
  .edge-jcard__t,.edge-media__t,.edge-press__y,.edge-edu__n,
  .edge-book__w,.edge-quote p){font-family:var(--wp--preset--font-family--display)}
.wp-site-blocks :is(.edge-kicker,.edge-chip,.edge-tag,.edge-nav a,.edge-field__k,.edge-stat__l,
  .edge-file,.edge-gates span,.edge-route__k,.edge-media__k,.edge-edu__c){
  font-family:var(--wp--preset--font-family--body)}
.wp-site-blocks .edge-nav.wp-block-navigation{flex-wrap:wrap;row-gap:6px}
/* A slot that has been filled drops its label and shows the photograph. */
.edge-figure:has(img)::after,.edge-portrait:has(img)::after{content:none}
.edge-figure--1x1{aspect-ratio:1/1}
.edge-portrait img{inline-size:100%;block-size:100%;object-fit:cover}

/* ============================================================ EDGE wordmark */
.edge-mark{display:block;color:currentColor}
.edge-mark svg{inline-size:100%;block-size:auto;display:block}
.edge-mark--book{inline-size:72%;max-inline-size:190px;color:#fff;margin-block-end:10px}
.edge-footer .edge-mark{inline-size:96px;color:rgba(244,245,247,.9);margin-block-end:16px}

/* ============================================================ newsroom */
.edge-newsroom{margin-block-start:clamp(26px,3.4vw,42px)}
.edge-news{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);
  gap:clamp(14px,2.4vw,36px);padding-block:24px;
  border-block-start:1px solid rgba(244,245,247,.16)}
.edge-news:first-child{border-block-start:0;padding-block-start:0}
.edge-news__d{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--lead);color:#fff;margin:0}
.edge-news__t{color:rgba(244,245,247,.86);margin:0 0 10px;max-inline-size:74ch}
.edge-news__s{font-size:var(--wp--preset--font-size--micro);letter-spacing:.08em;
  text-transform:uppercase;color:var(--wp--preset--color--steel);margin:0;line-height:1.9}
.edge-news__l{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:14px}
.edge-news__l a{display:inline-flex;align-items:center;border:1px solid rgba(244,245,247,.28);
  padding:6px 12px;font-size:var(--wp--preset--font-size--micro);letter-spacing:.08em;
  color:var(--wp--preset--color--light);text-decoration:none;
  transition:background var(--wp--custom--transition)}
.edge-news__l a:hover{background:rgba(244,245,247,.12);text-decoration:none}
.edge-news__l a::after{content:"\2197";margin-inline-start:7px;color:var(--wp--preset--color--steel)}
@media (max-width:640px){.edge-news{grid-template-columns:1fr;gap:8px}}
.wp-site-blocks :is(.edge-newsroom,.edge-news) > *{margin-block:0}
.wp-site-blocks :is(.edge-news__d){font-family:var(--wp--preset--font-family--display)}
.wp-site-blocks :is(.edge-news__s,.edge-news__l a){font-family:var(--wp--preset--font-family--body)}
.edge-media.is-linked{border-color:rgba(126,147,184,.5)}
.edge-media__a{color:#fff;text-decoration:none}
.edge-media__a:hover{text-decoration:underline}
.edge-media__a::after{content:"\2197";margin-inline-start:8px;font-size:.7em;
  color:var(--wp--preset--color--steel)}
.wp-site-blocks .edge-media__a{font-family:var(--wp--preset--font-family--display)}
/* Clickable video thumbnail — opens the source video. */
.edge-media__fig{display:block;position:relative;text-decoration:none;cursor:pointer}
.edge-media__fig .edge-play{transition:transform var(--wp--custom--transition),
  background var(--wp--custom--transition)}
.edge-media__fig:hover .edge-play,.edge-media__fig:focus-visible .edge-play{
  background:var(--wp--preset--color--signature);transform:translate(-50%,-50%) scale(1.1)}
.edge-media__fig:focus-visible{outline:2px solid var(--wp--preset--color--steel);outline-offset:3px}
/* Featured media card — highlighted above the others (e.g. the bell-ringing milestone). */
.edge-media--feature{border-color:var(--wp--preset--color--steel);
  box-shadow:0 18px 46px rgba(0,0,0,.5)}
.edge-media--feature:hover{border-color:#a6b9d8;transform:translateY(-3px)}
.edge-media__feat{position:absolute;z-index:2;inset-block-start:12px;inset-inline-start:12px;
  display:inline-flex;align-items:center;background:var(--wp--preset--color--signature);color:#fff;
  font-family:var(--wp--preset--font-family--body);
  font-size:var(--wp--preset--font-size--micro);letter-spacing:.16em;text-transform:uppercase;
  padding:6px 12px;border-radius:2px}
/* Home media: one large featured card on the left, three compact rows stacked on the right. */
.edge-mfeature{display:grid;grid-template-columns:1.02fr 0.98fr;gap:clamp(16px,1.9vw,26px);
  align-items:stretch;margin-block-start:clamp(24px,3vw,38px)}
.edge-mfeature__lead{display:flex}
.edge-mfeature__lead>.edge-media{inline-size:100%}
.edge-mfeature__list{display:flex;flex-direction:column;gap:clamp(12px,1.5vw,18px)}
.edge-mrow{display:grid;grid-template-columns:minmax(0,42%) 1fr;flex:1;min-block-size:118px;
  background:var(--wp--preset--color--navy-700);border:1px solid rgba(244,245,247,.14);
  overflow:hidden;transition:transform var(--wp--custom--transition),
    border-color var(--wp--custom--transition)}
.edge-mrow:hover{transform:translateY(-2px);border-color:var(--wp--preset--color--steel)}
.edge-mrow__f{position:relative;overflow:hidden}
.edge-mrow__f .edge-media__fig,.edge-mrow__f .edge-figure{display:block;block-size:100%}
.edge-mrow__f .edge-figure{aspect-ratio:auto}
.edge-mrow__b{padding:clamp(12px,1.3vw,18px);display:flex;flex-direction:column;
  justify-content:center;gap:7px;min-inline-size:0}
.edge-mrow__t{font-family:var(--wp--preset--font-family--display);font-weight:300;
  font-size:var(--wp--preset--font-size--body);line-height:1.24;color:#fff;margin:0}
.edge-play--sm{inline-size:34px;block-size:34px;font-size:12px}
@media (max-width:820px){.edge-mfeature{grid-template-columns:1fr}}
/* Award card: photo links to the source video; body text links too. */
.edge-press__link{color:inherit;text-decoration:none}
.edge-press__link:hover,.edge-press__link:focus-visible{text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px}
/* Education card: campus image opens the university website (external link). */
.edge-edu__a{display:block;position:relative;text-decoration:none;overflow:hidden}
.edge-edu__a .edge-figure{transition:transform .5s ease}
.edge-edu__a:hover .edge-figure,.edge-edu__a:focus-visible .edge-figure{transform:scale(1.04)}
.edge-edu__a:focus-visible{outline:2px solid var(--wp--preset--color--steel);outline-offset:-2px}
.edge-edu__ext{position:absolute;z-index:2;inset-block-start:12px;inset-inline-end:12px;
  inline-size:30px;block-size:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;background:rgba(11,21,38,.74);color:#fff;font-size:15px;line-height:1;
  opacity:0;transform:translateY(-4px);transition:opacity .3s ease,transform .3s ease}
.edge-edu__a:hover .edge-edu__ext,.edge-edu__a:focus-visible .edge-edu__ext{opacity:1;transform:none}

/* Navigation colour, stated at a specificity WordPress's block styles cannot
   outrank. Measured on the live site at 1.92:1 before this rule; the nav was
   inheriting the body slate instead of the light-on-navy value. */
.wp-site-blocks .edge-nav a,
.wp-site-blocks .edge-nav a .wp-block-navigation-item__label,
.wp-site-blocks .edge-nav .wp-block-navigation-item__content{
  color:rgba(244,245,247,.86)}
.wp-site-blocks .edge-nav a:hover,
.wp-site-blocks .edge-nav a:focus-visible,
.wp-site-blocks .edge-nav a[aria-current="page"],
.wp-site-blocks .edge-nav a:hover .wp-block-navigation-item__label,
.wp-site-blocks .edge-nav a[aria-current="page"] .wp-block-navigation-item__label{color:#fff}

/* A press figure that links out. The anchor wraps the picture only, so the ratio
   box still governs the layout; the focus ring is drawn on the anchor because the
   figure inside it has no outline of its own. */
.edge-press__a{display:block;position:relative;text-decoration:none}
.edge-press__a::after{content:"\2197";position:absolute;inset-block-start:10px;
  inset-inline-end:10px;inline-size:26px;block-size:26px;display:grid;place-items:center;
  border-radius:50%;background:rgba(11,21,38,.78);color:#fff;font-size:12px;line-height:1;
  transition:background .18s ease}
.edge-press__a:hover::after,.edge-press__a:focus-visible::after{background:#1E3568}
.edge-press__a:focus-visible{outline:2px solid #1E3568;outline-offset:3px}

/* A download card. The anchor wraps the whole card so the target is the card, not a
   word inside it; the card keeps its own background, so only the lift and the arrow
   are added here. */
.edge-filelink{display:block;text-decoration:none;color:inherit;border-radius:2px;
  transition:transform .18s ease}
.edge-filelink:hover{transform:translateY(-2px)}
.edge-filelink:focus-visible{outline:2px solid #1E3568;outline-offset:3px}
.edge-filelink .edge-card{block-size:100%}
.edge-filelink:hover .edge-card{border-color:#1E3568}
.edge-filelink .edge-file::after{content:"\2193";margin-inline-start:10px;font-weight:600}

/* A sector record that has a photograph: two columns, the picture alternating side down
   the page as the design does. Records without one keep the full measure, so the page
   never advertises an empty frame. */
.edge-record--split{display:grid;grid-template-columns:minmax(0,2.34fr) minmax(0,1fr);
  gap:clamp(24px,2.8vw,40px);align-items:start}
.edge-record--split .edge-record__f{margin-block-start:34px}
/* Reordering alone put the picture in the wide track and squeezed the copy; the
   track sizes have to swap with it. */
.edge-record--flip{grid-template-columns:minmax(0,1fr) minmax(0,2.34fr)}
.edge-record--flip .edge-record__c{order:2}
.edge-record--flip .edge-record__f{order:1}
@media (max-width:860px){
  .edge-record--split{grid-template-columns:1fr}
  .edge-record--flip .edge-record__c{order:1}
  .edge-record--flip .edge-record__f{order:2}
  .edge-record--split .edge-record__f{margin-block-start:22px}
}

/* ============================================================ mobile nav overlay */
.edge-header .wp-block-navigation__responsive-container-open,
.edge-header .wp-block-navigation__responsive-container-close{color:var(--wp--preset--color--light)}
.edge-header .wp-block-navigation__responsive-container-open{padding:8px;min-block-size:44px;min-inline-size:44px}
.edge-header .wp-block-navigation__responsive-container.is-menu-open{
  background:var(--wp--preset--color--navy)}
.edge-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{padding-block-start:8vh}
.edge-header .wp-block-navigation__responsive-container.is-menu-open a{
  color:rgba(244,245,247,.92);font-size:1.1rem;letter-spacing:.02em;padding-block:10px;text-align:center}
.edge-header .wp-block-navigation__responsive-container.is-menu-open a::after{display:none}
.edge-header .wp-block-navigation__responsive-container.is-menu-open a:hover,
.edge-header .wp-block-navigation__responsive-container.is-menu-open a[aria-current="page"]{color:#fff}
/* comfortable tap targets for buttons/links on small screens */
@media (max-width:640px){
  .wp-site-blocks .wp-block-button__link{padding-block:14px}
  .edge-nav a{padding-block:6px}
}
