/* The Oxford AI School: London hub styles. Tokens from The Oxford AI School design system. */
:root{
  --navy:#16274C;--navy-deep:#13223F;--navy-night:#101D39;
  --gold:#C0912B;--gold-light:#D8B25A;--gold-text:#A87A1C;
  --pink:#E86B82;--pink-light:#FF9AAE;--pink-deep:#D42142;
  --cta:#17803F;--cta-ledge:#0F6230;
  --ink:#1E2534;--slate:#434C60;--muted:#6A7387;
  --line:#E1E6EF;--soft:#EEF2F8;--paper:#F7F8FB;--white:#FFFFFF;
  --cream:#FBF4E4;--cream-line:#EAD7A8;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Source Sans 3",Calibri,"Segoe UI",system-ui,sans-serif;
  --wrap:1180px;
  --shadow:0 1px 2px rgba(22,39,76,.04),0 14px 36px -16px rgba(22,39,76,.16);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--navy) var(--soft);scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.65;accent-color:var(--navy);caret-color:var(--pink-deep)}
::selection{background:#F6E6BF;color:#6E4A0E}
img{max-width:100%;height:auto;display:block}
a{color:var(--pink-deep);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--navy);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
p,li{text-wrap:pretty}
h1,h2,h3,.as-h3 {text-wrap:balance}
[id]{scroll-margin-top:84px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:12px;top:12px}
h1,h2,h3,.as-h3 {font-family:var(--serif);color:var(--navy);line-height:1.2;margin:0 0 .45em}
.h2-sm{font-size:1.6rem}
h1{font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.012em;line-height:1.12}
h2{font-weight:700;font-size:clamp(1.7rem,3.4vw,2.3rem)}
h3,.as-h3 {font-weight:700;font-size:1.2rem;line-height:1.3}
p{margin:0 0 1em}
.accent{font-style:italic;color:var(--pink-deep)}
.lede{font-size:1.2rem;line-height:1.6;color:var(--slate);max-width:40rem}

/* Global header (mirrors the main site) */
.site-head{background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:41}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{width:48px;height:48px;border-radius:50%}
.brand b{display:block;font-family:var(--serif);color:var(--navy);font-size:1.2rem;line-height:1.1}
.brand small{display:block;color:var(--pink-deep);font-size:.8rem;font-weight:600}
.gnav{display:flex;align-items:center;gap:22px}
.gnav a{color:var(--navy);font-weight:600;font-size:1rem;text-decoration:none}
.gnav a:hover{text-decoration:underline}
.gnav .btn{font-size:1rem;min-height:42px;padding:0 16px;color:#fff}
.gnav .btn:hover{text-decoration:none;color:#fff}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--navy)}
.menu summary::-webkit-details-marker{display:none}
.menu[open] .menu-panel{display:flex}
.menu-panel{display:none;flex-direction:column;position:absolute;right:16px;top:64px;background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px 0;min-width:240px;z-index:50}
.menu-panel a{padding:12px 18px;color:var(--navy);font-weight:600;text-decoration:none}

/* London bar */
.lbar{background:var(--navy);position:sticky;top:0;z-index:40;box-shadow:0 8px 22px rgba(22,39,76,.18)}
.lbar .wrap{display:flex;align-items:center;gap:8px 28px;min-height:60px}
.lbar-name{display:flex;align-items:baseline;gap:8px;text-decoration:none;white-space:nowrap}
.lbar-name span{font-family:var(--serif);font-style:italic;font-weight:600;color:#fff;font-size:1.45rem}
.lbar-name small{color:var(--gold-light);font-weight:700;font-size:.85rem}
.lnav{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.lnav::-webkit-scrollbar{display:none}
.lnav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px;white-space:nowrap}
.lnav li,.lnav a,.lbar-name,.btn,.btn-ghost,.tag{white-space:nowrap;text-wrap:nowrap}
.lnav a{display:inline-block;padding:18px 0 15px;color:#C9D2E4;font-weight:600;font-size:1rem;text-decoration:none;border-bottom:3px solid transparent}
.lnav a:hover{color:#fff}
.lnav a[aria-current="page"]{color:#fff;font-weight:700;border-bottom-color:var(--gold-light)}
.lbar .btn{min-height:42px;font-size:1rem;padding:0 16px;white-space:nowrap}
.lbar :focus-visible{outline-color:var(--gold-light)}

/* Breadcrumbs */
.crumbs{font-size:.9rem;color:var(--slate);padding-top:14px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--muted)}
.crumbs a{color:var(--slate)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border-radius:10px;background:var(--cta);color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;box-shadow:0 4px 0 var(--cta-ledge);transition:transform .12s ease,box-shadow .12s ease;border:0;font-family:inherit;cursor:pointer}
.btn:hover{color:#fff;background:#146E36}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--cta-ledge)}
.btn-ghost{display:inline-flex;align-items:center;min-height:50px;padding:0 22px;border-radius:10px;border:2px solid var(--navy);color:var(--navy);font-weight:700;font-size:1.05rem;text-decoration:none;background:var(--white)}
.btn-ghost:hover{background:var(--soft);color:var(--navy)}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}

/* Hero */
.hero{padding:34px 0 56px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
.answer{background:var(--cream);border:1px solid var(--cream-line);border-radius:12px;padding:18px 20px;margin:0 0 24px;max-width:44rem}
.answer p{margin:0}
.facts{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:22px}
.facts h2{font-size:1.25rem;margin-bottom:14px}
.facts dl{margin:0;display:grid;gap:12px}
.facts div{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:10px}
.facts div:last-child{border-bottom:0;padding-bottom:0}
.facts dt{color:var(--muted);font-size:.95rem}
.facts dd{margin:0;font-weight:700;color:var(--navy);text-align:right}

/* The Paddington line */
.route{margin:30px 0 0;max-width:44rem}
.route ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:relative}
.route ol::before{content:"";position:absolute;left:12px;right:12px;top:11px;height:4px;background:var(--gold);border-radius:2px}
.route li{position:relative;padding-top:34px;font-size:.95rem;color:var(--slate);line-height:1.3}
.route li::before{content:"";position:absolute;top:2px;left:4px;width:22px;height:22px;border-radius:50%;background:var(--white);border:4px solid var(--navy)}
.route li:last-child{color:var(--navy);font-weight:700}
.route li:last-child::before{background:var(--pink);border-color:var(--navy)}
.route li b{display:block;color:var(--navy);font-size:1rem}
.route p{margin:12px 0 0;font-size:.95rem;color:var(--slate)}
@media (prefers-reduced-motion:no-preference){
  .route ol::before{transform-origin:left center;animation:route-draw 1.4s cubic-bezier(.16,1,.3,1) .25s both}
  .route li:last-child::before{animation:route-arrive .6s cubic-bezier(.16,1,.3,1) 1.35s both}
}
@keyframes route-draw{from{transform:scaleX(.04)}}
@keyframes route-arrive{from{transform:scale(.5);background:var(--white)}}

/* Sections */
.sec{padding:64px 0}
.sec--white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec--navy{background:linear-gradient(160deg,var(--navy-deep),var(--navy-night));color:#C9D2E4}
.sec--navy h2,.sec--navy h3,.sec--navy .as-h3 {color:#fff}
.sec--navy a:not(.btn){color:var(--gold-light)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.prose{max-width:38rem}
.split > div > p{max-width:38rem}
.prose ul{padding-left:1.2em;margin:0 0 1em}
.prose li{margin-bottom:.4em}

/* The skills gap: two bars, one gap */
.gap{margin:30px 0 14px;max-width:52rem}
.gap-row{display:grid;grid-template-columns:15rem minmax(0,1fr) 3.5rem;gap:16px;align-items:center;margin-bottom:14px}
.gap-row span:first-child{font-size:1rem;color:var(--ink);font-weight:600}
.gap-track{position:relative;height:22px;background:var(--soft);border-radius:999px;overflow:hidden}
.gap-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:var(--navy)}
.gap-row--skills .gap-fill{background:var(--gold)}
.gap-row b{font-family:var(--serif);font-size:1.5rem;color:var(--navy);text-align:right;font-variant-numeric:tabular-nums}
.gap figcaption{margin-top:6px;padding-left:calc(15rem + 16px);color:var(--slate);font-size:1rem}
.gap figcaption strong{color:var(--pink-deep)}
.source{font-size:.9rem;color:var(--slate)}

/* Price list */
.prices{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px 0;margin:24px 0}
.prices li{list-style:none}
.prices ul{margin:0;padding:0}
.price-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:baseline;padding:16px 24px;border-bottom:1px solid var(--line)}
.prices li:last-child .price-row{border-bottom:0}
.price-row h3,.price-row .as-h3 {margin:0;font-size:1.15rem}
.price-row h3 a,.price-row .as-h3 a {color:var(--navy);text-decoration:none}
.price-row h3 a:hover,.price-row .as-h3 a:hover {text-decoration:underline}
.price-row .meta{grid-column:1;font-size:.95rem;color:var(--slate)}
.price-row .amt{grid-row:1/span 2;grid-column:2;margin:0;font-family:var(--serif);font-weight:700;color:var(--pink-deep);font-size:1.35rem;white-space:nowrap;text-align:right;font-variant-numeric:lining-nums tabular-nums}
.price-row .meta{margin:0}
.price-row:hover{background:#FBFCFE}
.price-row .amt small{display:block;font-family:var(--sans);font-weight:600;color:var(--muted);font-size:.8rem}
.tag{display:inline-block;background:var(--navy);color:#fff;font-size:.75rem;font-weight:700;border-radius:999px;padding:2px 10px;margin-left:8px;vertical-align:middle;font-family:var(--sans)}

/* Link list (sectors, guides) */
.links{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.links li{border-top:1px solid var(--line);padding:18px 0}
.links a{font-family:var(--serif);font-weight:700;font-size:1.25rem;color:var(--navy);text-decoration:none}
.links a:hover{text-decoration:underline}
.links p{margin:4px 0 0;color:var(--slate);font-size:1rem}

/* Pair of points */
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:24px}
.pair > div{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:var(--shadow)}
.pair--open{gap:48px}
.pair--open > div{background:none;border:0;border-top:2px solid var(--gold);border-radius:0;box-shadow:none;padding:20px 0 0}
.pair--open h3,.pair--open .as-h3 {font-size:1.45rem}

/* Task rows */
.tasks{list-style:none;margin:24px 0 0;padding:0}
.tasks li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px 32px;padding:18px 0;border-top:1px solid var(--line)}
.tasks h3,.tasks .as-h3 {margin:0}
.tasks p{margin:0;color:var(--slate)}

/* Steps (genuine sequences only) */
.steps{list-style:none;margin:24px 0 0;padding:0;counter-reset:s;display:grid;gap:18px;max-width:46rem}
.steps li{counter-increment:s;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
.steps li::before{content:counter(s);width:44px;height:44px;border-radius:50%;border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;color:var(--navy)}
.steps h3,.steps .as-h3 {margin:6px 0 4px}
.steps p{margin:0;color:var(--slate)}

/* Person */
.person{display:grid;grid-template-columns:260px minmax(0,1fr);gap:40px;align-items:center}
.book{margin:0;justify-self:center;max-width:220px}
.book img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:3px 8px 8px 3px;background:var(--navy);box-shadow:-3px 0 0 rgba(0,0,0,.12) inset,0 18px 34px -10px rgba(22,39,76,.45),0 4px 10px rgba(22,39,76,.18)}
.book figcaption{margin-top:14px;font-size:.92rem;color:var(--slate);text-align:center}
.book figcaption a{font-style:italic}
.creds{list-style:none;margin:16px 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.creds li{background:var(--soft);border-radius:999px;padding:6px 14px;font-size:.92rem;color:var(--navy);font-weight:600}

/* Quotes */
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px}
.quotes{gap:40px}
.quotes figure{margin:0;border-top:2px solid var(--gold);padding-top:18px;display:flex;flex-direction:column;justify-content:space-between}
.quotes blockquote{margin:0 0 16px;font-size:1.02rem;line-height:1.6}
.quotes blockquote::before{content:"\201C";display:block;font-family:var(--serif);font-size:3rem;line-height:.7;color:var(--gold)}
.quotes figcaption{font-size:.92rem;color:var(--muted)}
.quotes figcaption b{color:var(--navy)}

/* FAQ */
.faq{max-width:52rem}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
.faq summary{cursor:pointer;list-style:none;padding:18px 54px 18px 22px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:22px;top:24px;width:16px;height:16px;background:linear-gradient(var(--gold),var(--gold)) center/16px 2px no-repeat,linear-gradient(var(--gold),var(--gold)) center/2px 16px no-repeat;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover h3,.faq summary:hover .as-h3 {text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.faq summary h3,.faq summary .as-h3 {display:inline;font-size:1.1rem}
.faq .a{padding:0 22px 20px;color:var(--slate)}
.faq .a p:last-child{margin:0}

/* CTA band */
.band{background:var(--navy);border:2px solid var(--gold);border-radius:14px;padding:36px 34px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;color:#C9D2E4}
.band h2{color:#fff;margin-bottom:6px}
.band p{margin:0;max-width:40rem}
.band .btn-ghost{background:transparent;color:#fff;border-color:var(--gold-light)}
.band .btn-ghost:hover{background:rgba(255,255,255,.08)}

/* Forms */
.form{background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:26px}
.field{margin-bottom:16px}
.field label{display:block;font-weight:700;color:var(--navy);margin-bottom:6px;font-size:1rem}
.field .hint{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:48px;border:1.5px solid var(--muted);border-radius:10px;padding:10px 12px;font:inherit;font-size:1rem;color:var(--ink);background:#fff}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy);outline:3px solid var(--gold);outline-offset:1px}
.field input:user-invalid,.field select:user-invalid{border-color:#B23A48;background:#FBEFF0}
.field .err{display:none;margin:6px 0 0;font-size:.92rem;color:#B23A48;font-weight:600}
.field input:user-invalid + .err{display:block}
.req{color:var(--pink-deep)}
.form .btn{min-height:54px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.hidden{position:absolute;left:-9999px}
.cal{position:relative;background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;min-height:660px}
.cal-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--slate);font-size:1rem;z-index:0}
.cal-loading::before{content:"";width:36px;height:36px;border-radius:50%;border:3px solid var(--soft);border-top-color:var(--navy);animation:spin 1s linear infinite}
.cal .calendly-inline-widget{position:relative;z-index:1}
@keyframes spin{to{transform:rotate(360deg)}}

/* Footer */
.lfoot{background:var(--navy-deep);color:#C9D2E4;padding:52px 0 36px;margin-top:64px}
.lfoot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px}
.lfoot h2{font-size:1.4rem;color:#fff}
.lfoot h3,.lfoot .as-h3 {font-family:var(--sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin-bottom:12px}
.lfoot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:1rem}
.lfoot a{color:#fff}
.gfoot{background:var(--navy-night);color:#A6B0C4;font-size:.9rem;padding:20px 0}
.gfoot .wrap{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between}
.gfoot a{color:#C9D2E4}
.gfoot ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}

/* Mobile booking bar */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--white);border-top:1px solid var(--line);padding:12px 16px}
.mbar .btn{width:100%}

@media (max-width:920px){
  .gnav{display:none}
  .menu{display:block}
  .hero-grid,.split,.person{grid-template-columns:1fr}
  .person-photo{max-width:260px}
  .quotes{grid-template-columns:1fr}
  .lfoot-grid{grid-template-columns:1fr 1fr}
  .lbar .btn{display:none}
  .lnav{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent);padding-right:28px}
  .gap-row{grid-template-columns:minmax(0,1fr) 3.5rem}
  .gap-row span:first-child{grid-column:1/-1}
  .gap-track{grid-column:1}
  .gap figcaption{padding-left:0}
  .mbar{display:flex}
  body{padding-bottom:76px}
}
@media (max-width:640px){
  body{font-size:17px}
  .sec{padding:48px 0}
  .stats,.pair,.links,.row2{grid-template-columns:1fr}
  .tasks li{grid-template-columns:1fr}
  .route li{font-size:.85rem}
  .route li b{font-size:.92rem}
  .price-row{padding:14px 18px}
  .lfoot-grid{grid-template-columns:1fr}
  .band{padding:28px 22px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}.cal-loading::before{animation:none;border-top-color:var(--soft)}}
@media print{.lbar,.site-head,.mbar,.lfoot{display:none}}

/* --- Site integration: the site's fixed main navigation sits above the London bar --- */
html{scroll-padding-top:230px}
.lbar{top:154px}
@media(max-width:1280px){.lbar{top:142px}html{scroll-padding-top:218px}}
@media(max-width:1100px){.lbar{top:107px}html{scroll-padding-top:180px}}
.lfoot{margin-bottom:0}
/* --- London guides --- */
.ldn-feature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:center;background:var(--navy);color:#C9D2E4;border-radius:14px;padding:26px 28px;margin:26px 0 8px;box-shadow:var(--shadow)}
.ldn-feature h3,.ldn-feature .as-h3 {margin:0 0 .4em;font-size:1.6rem}.ldn-feature h3 a,.ldn-feature .as-h3 a {color:#fff;text-decoration:none}.ldn-feature h3 a:hover,.ldn-feature .as-h3 a:hover {text-decoration:underline}
.ldn-feature p{margin:0}.ldn-feature .ldn-label{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin-bottom:8px}
.ldn-group{margin-top:34px;font-size:1.15rem}
.ldn-group:first-of-type{margin-top:22px}
.links h4{margin:0;font-size:inherit;line-height:1.3;font-weight:700}
@media(max-width:760px){.ldn-feature{grid-template-columns:1fr}}

/* =====================================================================
   v3 refinements: a calmer, more polished London microsite.
   Shared rules first (all London pages), then the hub (.hub) layout.
   ===================================================================== */

/* London bar: slimmer, quieter, so the sticky stack takes less screen */
.lbar{background:rgba(22,39,76,.97);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);box-shadow:0 1px 0 rgba(216,178,90,.35),0 10px 24px -14px rgba(16,29,57,.55)}
.lbar .wrap{min-height:52px;gap:8px 26px}
.lbar-name{gap:7px;padding-right:22px;border-right:1px solid rgba(255,255,255,.14)}
.lbar-name span{font-size:1.28rem}
.lbar-name small{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.lnav ul{gap:4px}
.lnav a{padding:7px 12px;margin:9px 0;border:0;border-radius:8px;font-size:.95rem;color:#C3CCDF;transition:background .18s ease,color .18s ease}
.lnav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.lnav a[aria-current="page"]{color:#fff;background:rgba(216,178,90,.16);box-shadow:inset 0 -2px 0 var(--gold-light)}
.lbar .btn{min-height:38px;padding:0 16px;font-size:.92rem;border-radius:9px;box-shadow:0 2px 0 var(--cta-ledge)}
@media (max-width:920px){.lbar .wrap{min-height:48px}.lbar-name{padding-right:14px}.lbar-name span{font-size:1.15rem}.lnav a{padding:6px 10px;margin:8px 0;font-size:.92rem}}
@media (max-width:640px){.lbar-name small{display:none}}

/* Breadcrumbs: lighter */
.crumbs{font-size:.85rem;padding-top:16px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--navy);text-decoration:underline}

/* Buttons: smoother motion */
.btn,.btn-ghost{transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-ghost{border-width:1.5px}
.btn-ghost--light{background:transparent;color:#fff;border-color:rgba(216,178,90,.8)}
.btn-ghost--light:hover{background:rgba(255,255,255,.08);color:#fff}

/* Shared section helpers */
.kicker{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text)}
.kicker--light{color:var(--gold-light)}
.small{font-size:.98rem;color:var(--slate)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 40px;margin-bottom:30px}
.sec-head h2{margin-bottom:.3em}
.sec-head .lede{margin:0}
.more{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--navy);text-decoration:none;white-space:nowrap;padding-bottom:4px;border-bottom:1.5px solid var(--gold)}
.more::after{content:"\2192";transition:transform .18s ease}
.more:hover{color:var(--navy)}
.more:hover::after{transform:translateX(3px)}

/* FAQ: cleaner accordions everywhere */
.faq details{border-radius:14px;transition:border-color .2s ease,box-shadow .2s ease}
.faq details:hover{border-color:#CDD5E3}
.faq details[open]{box-shadow:var(--shadow);border-color:#D6DDEA}
.faq summary{padding:20px 58px 20px 24px}
.faq summary::after{top:26px}
.faq .a{padding:0 24px 22px}

/* ---------------- Hub (London overview page) ---------------- */
.hub .sec{padding:84px 0}
.hub .sec--close{padding:0 0 84px}
.hub h2{letter-spacing:-.01em}

/* Hero */
.hub-hero{position:relative;padding:30px 0 0;background:
  radial-gradient(900px 420px at 88% -10%,rgba(216,178,90,.16),transparent 60%),
  radial-gradient(700px 380px at -10% 110%,rgba(22,39,76,.06),transparent 60%),var(--paper)}
.hub-hero .hero-grid{grid-template-columns:minmax(0,1fr) 380px;gap:56px;align-items:center;padding-top:18px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:6px 14px 6px 10px;border:1px solid var(--cream-line);border-radius:999px;background:rgba(255,255,255,.7);font-size:.82rem;font-weight:700;letter-spacing:.06em;color:var(--navy)}
.eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--pink-deep);box-shadow:0 0 0 4px rgba(212,33,66,.14)}
.hub-hero h1{max-width:15ch}
.hub-hero .lede{margin-bottom:22px}
.hub-hero .answer{position:relative;border:0;border-left:3px solid var(--gold);border-radius:0 12px 12px 0;background:rgba(251,244,228,.85);padding:16px 20px;font-size:1.02rem}
.hub-hero .actions{margin-top:4px}

.facts--hub{border-radius:18px;padding:26px 26px 22px;box-shadow:0 1px 2px rgba(22,39,76,.05),0 28px 60px -28px rgba(22,39,76,.35)}
.facts--hub h2{font-size:1.2rem;padding-bottom:14px;margin-bottom:6px;border-bottom:2px solid var(--navy)}
.facts--hub dl{gap:0}
.facts--hub dl div{padding:11px 0}
.facts--hub dt{font-size:.92rem}
.facts--hub dd{font-size:1rem}
.facts--hub .route{margin:20px 0 0;padding:18px 0 0;border-top:1px dashed var(--cream-line);max-width:none}
.facts--hub .route ol::before{height:3px;top:9px;left:9px;right:9px}
.facts--hub .route li{padding-top:28px;font-size:.78rem;line-height:1.25}
.facts--hub .route li::before{width:18px;height:18px;border-width:3px;left:0}
.facts--hub .route li b{font-size:.85rem}
.facts--hub .route p{font-size:.85rem;margin-top:12px;color:var(--muted)}

/* Jump nav */
.jump{display:flex;align-items:center;gap:14px 20px;margin-top:52px;padding:14px 0;border-top:1px solid var(--line)}
.jump-label{flex:0 0 auto;font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.jump ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.jump a{display:inline-block;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--navy);font-size:.92rem;font-weight:600;text-decoration:none;transition:border-color .18s ease,background .18s ease}
.jump a:hover{border-color:var(--gold);background:var(--cream)}

/* Skills gap */
.split--gap{align-items:center;gap:56px}
.split--gap h2{max-width:20ch}
.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px 30px 22px}
.stat-card .gap{margin:0 0 18px}
.stat-card .gap-row{grid-template-columns:minmax(0,1fr) 4rem;gap:8px 16px;margin-bottom:20px}
.stat-card .gap-row span:first-child{grid-column:1/-1;font-size:.95rem;color:var(--slate)}
.stat-card .gap-track{grid-column:1;height:14px;background:#E6EBF3}
.stat-card .gap-row b{font-size:1.9rem;line-height:1}
.stat-card .gap figcaption{padding:16px 0 0;border-top:1px solid var(--line);font-size:.98rem}
.stat-card .source{margin:0;font-size:.85rem}

/* Two things */
.pair--cards{gap:24px;margin-top:30px}
.pair--cards > div{position:relative;border-radius:18px;padding:30px 30px 26px;transition:transform .2s ease,box-shadow .2s ease}
.pair--cards > div:hover{transform:translateY(-2px)}
.pair--cards .num{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:16px;border-radius:12px;background:var(--cream);color:var(--gold-text);font-family:var(--serif);font-weight:700}
.pair--cards h3,.pair--cards .as-h3 {font-size:1.4rem}
.pair--cards .last{margin:0;padding-top:14px;border-top:1px solid var(--line);color:var(--slate)}

/* Offers grid */
.offers{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.offer{position:relative;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:24px 24px 22px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.offer:hover{border-color:#C9D2E4;box-shadow:var(--shadow);transform:translateY(-2px)}
.offer h3,.offer .as-h3 {font-size:1.2rem;margin:0 0 8px;padding-right:8px}
.offer h3 a,.offer .as-h3 a {color:var(--navy);text-decoration:none}
.offer h3 a::after,.offer .as-h3 a::after {content:"";position:absolute;inset:0;border-radius:16px}
.offer:hover h3 a,.offer:hover .as-h3 a {text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.offer .meta{margin:0 0 20px;color:var(--slate);font-size:.98rem;flex:1}
.offer .amt{margin:0;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:8px;font-family:var(--serif);font-weight:700;font-size:1.6rem;color:var(--navy);font-variant-numeric:lining-nums tabular-nums}
.offer .amt small{font-family:var(--sans);font-size:.85rem;font-weight:600;color:var(--muted)}
.offer .amt::after{content:"\2192";margin-left:auto;font-family:var(--sans);font-size:1.1rem;color:var(--gold);transition:transform .18s ease}
.offer:hover .amt::after{transform:translateX(3px)}
.offer--top{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy) inset}
.offer .tag{position:absolute;top:-11px;left:22px;margin:0;background:var(--pink-deep);padding:3px 11px}

/* Sector tiles */
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.tiles li{position:relative;display:flex;flex-direction:column;min-height:200px;padding:24px;background:var(--white);border:1px solid var(--line);border-radius:16px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.tiles li::before{content:"";display:block;width:32px;height:3px;margin-bottom:18px;border-radius:2px;background:var(--gold)}
.tiles li:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#C9D2E4}
.tiles h3,.tiles .as-h3 {font-size:1.2rem;margin:0 0 10px}
.tiles h3 a,.tiles .as-h3 a {color:var(--navy);text-decoration:none}
.tiles h3 a::after,.tiles .as-h3 a::after {content:"";position:absolute;inset:0;border-radius:16px}
.tiles p{margin:0 0 18px;color:var(--slate);font-size:.98rem;flex:1}
.tiles li::after{content:"Explore \2192";font-size:.9rem;font-weight:700;color:var(--pink-deep)}
.also{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:26px}
.also > span{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips a,.chips--plain li{display:inline-block;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--white);color:var(--navy);font-size:.92rem;font-weight:600;text-decoration:none}
.chips a:hover{border-color:var(--gold);background:var(--cream)}
.chips--plain li{background:var(--soft);border-color:transparent}

/* Where / format panels */
.panel{padding:34px;border:1px solid var(--line);border-radius:18px;background:var(--white);height:100%}
.panel--tint{background:linear-gradient(180deg,var(--cream),#FDF9EF);border-color:var(--cream-line)}
.panel h2{font-size:clamp(1.5rem,2.6vw,1.9rem)}
.mini{font-family:var(--sans);font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:22px 0 10px}
.panel .small{margin:22px 0 0}
.ticks{list-style:none;margin:6px 0 24px;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:30px;color:var(--slate)}
.ticks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.2l2.6 2.6L12 5.4' fill='none' stroke='%23D8B25A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.ticks b{color:var(--navy)}

/* Trainer */
.person--card{grid-template-columns:240px minmax(0,1fr);gap:56px;padding:44px;background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.person--card .creds li{background:var(--white);border:1px solid var(--line);font-size:.88rem}

/* Leaders band */
.lead-row{display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:28px 48px;align-items:center}
.lead-row p:last-child{margin:0;max-width:40rem}
.lead-row .actions{margin:0;justify-content:flex-end}

/* Quotes */
.quotes--cards{gap:20px;margin-top:0}
.quotes--cards figure{background:var(--white);border:1px solid var(--line);border-top:0;border-radius:16px;padding:28px 26px 22px;box-shadow:inset 0 3px 0 var(--gold)}
.quotes--cards blockquote{color:var(--ink)}
.quotes--cards figcaption{padding-top:14px;border-top:1px solid var(--line)}

/* Guides */
.hub .ldn-feature{margin:0 0 30px;padding:30px 32px;border-radius:18px;background:linear-gradient(135deg,var(--navy),var(--navy-night));box-shadow:0 24px 50px -28px rgba(16,29,57,.7)}
.guide-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.guide-group{padding:24px 24px 8px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.guide-group--wide{margin-top:20px}
.hub .ldn-group,.hub .ldn-group:first-of-type{margin:0 0 6px;font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.glist{list-style:none;margin:0;padding:0}
.glist li{padding:14px 0;border-top:1px solid var(--line)}
.glist li:first-child{border-top:0}
.glist h4{margin:0 0 4px;font-family:var(--serif);font-size:1.08rem;line-height:1.3}
.glist h4 a{color:var(--navy);text-decoration:none}
.glist h4 a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.glist p{margin:0;font-size:.93rem;color:var(--slate);line-height:1.5}
.glist--4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px}
.glist--4 li{border-top:0}
.guides-foot{margin:26px 0 0}

/* FAQ layout */
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:56px;align-items:start}
.faq-intro{position:sticky;top:240px}
.faq-intro p:not(.kicker){color:var(--slate)}
.hub .faq{max-width:none}

@media (max-width:1100px){
  .faq-intro{top:180px}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .glist--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:920px){
  .hub .sec{padding:64px 0}
  .hub .sec--close{padding:0 0 64px}
  .hub-hero .hero-grid{grid-template-columns:1fr;gap:32px}
  .hub-hero h1{max-width:none}
  .offers,.guide-groups{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-layout{grid-template-columns:1fr;gap:24px}
  .faq-intro{position:static}
  .faq-intro .btn-ghost{display:none}
  .lead-row{grid-template-columns:1fr}
  .lead-row .actions{justify-content:flex-start}
  .person--card{grid-template-columns:1fr;padding:32px;gap:28px}
  .person--card .book{max-width:180px}
  .split--gap{gap:32px}
  .sec-head{flex-direction:column;align-items:flex-start}
  .jump{margin-top:36px}
}
@media (max-width:640px){
  .hub .sec{padding:52px 0}
  .hub .sec--close{padding:0 0 52px}
  .hub-hero{padding-top:18px}
  .offers,.guide-groups,.tiles,.glist--4,.pair--cards{grid-template-columns:1fr}
  .tiles li{min-height:0}
  .panel,.stat-card{padding:24px 20px}
  .person--card{padding:24px 20px}
  .facts--hub{padding:22px 20px 18px}
  .jump{flex-direction:column;align-items:flex-start;gap:10px}
  .jump ul{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px;scrollbar-width:none}
  .jump ul::-webkit-scrollbar{display:none}
  .jump a{white-space:nowrap}
  .hub .ldn-feature{padding:24px 22px}
  .glist--4{gap:0}
  .glist--4 li{border-top:1px solid var(--line)}
  .glist--4 li:first-child{border-top:0}
}
@media (prefers-reduced-motion:reduce){.offer:hover,.tiles li:hover,.pair--cards > div:hover,.btn:hover{transform:none}}

/* v3 fixes */
.facts--hub .route{display:block;border-bottom:0}
.facts--hub .route ol{display:block}
.facts--hub .route ol::before{left:8px;right:auto;top:10px;bottom:10px;width:3px;height:auto;transform-origin:top center}
.facts--hub .route li{display:flex;align-items:baseline;gap:8px;padding:0 0 12px 30px;font-size:.88rem;color:var(--muted)}
.facts--hub .route li:last-child{padding-bottom:0;color:var(--navy)}
.facts--hub .route li::before{top:1px;left:0}
.facts--hub .route li b{display:inline;min-width:6.2rem;font-size:.95rem}
@media (prefers-reduced-motion:no-preference){.facts--hub .route ol::before{animation-name:route-drop}}
@keyframes route-drop{from{transform:scaleY(.04)}}
.person--card{max-width:calc(var(--wrap) - 40px)}
@media (max-width:1180px){.person--card{margin:0 20px}}
.sec--navy .btn-ghost--light{color:#fff}
.lfoot a{text-decoration:none}
.lfoot a:hover{color:var(--gold-light);text-decoration:underline}
.band{border:1px solid rgba(216,178,90,.45);border-radius:20px;padding:44px 44px;background:radial-gradient(600px 260px at 100% 0,rgba(216,178,90,.18),transparent 60%),linear-gradient(135deg,var(--navy),var(--navy-night));box-shadow:0 30px 60px -34px rgba(16,29,57,.8)}
.band .actions{margin:0}
@media (max-width:640px){.band{padding:30px 22px}}

/* Hero with hub banner image: copy on the left, image and facts stacked on the right */
.hero-grid--media{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"copy media" "copy facts";column-gap:52px;row-gap:24px;align-items:start}
.hub-hero .hero-grid--media{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;padding-top:0}
/* Title copy sits at the top of the hero, just under the London bar, rather than centred against the image */
.hero-grid--media .hero-copy{grid-area:copy;align-self:start}
.hub-hero:has(.hero-grid--media){padding-top:18px}
.hero-grid--media .facts{grid-area:facts}
.hero-media{grid-area:media;position:relative;margin:0;border-radius:18px;overflow:hidden;background:var(--navy-night);border:1px solid rgba(192,145,43,.55);box-shadow:0 0 0 6px rgba(255,255,255,.75),0 0 0 7px var(--cream-line),0 30px 60px -30px rgba(22,39,76,.55)}
.hero-media img{display:block;width:100%;height:auto;aspect-ratio:1219/689;object-fit:cover}
.hero-grid--media .hero-copy .answer{max-width:none}
@media (max-width:920px){
  .hero-grid--media,.hub-hero .hero-grid--media{grid-template-columns:1fr;grid-template-areas:"media" "copy" "facts";row-gap:28px}
  .hero-media{border-radius:14px}
}

/* Locations menu in the hub bar. It sits beside the scrolling hub links
   (not inside them) so the drop-down panel is never clipped. */
.lloc{position:relative;flex:0 0 auto}
.lloc>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;margin:8px 0;border-radius:8px;color:#C3CCDF;font-weight:600;font-size:.92rem;white-space:nowrap;transition:background .18s ease,color .18s ease}
.lloc>summary::-webkit-details-marker{display:none}
.lloc>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}
.lloc[open]>summary::after{transform:translateY(1px) rotate(-135deg)}
.lloc>summary:hover,.lloc[open]>summary{color:#fff;background:rgba(255,255,255,.08)}
.lloc--current>summary{color:#fff;background:rgba(216,178,90,.16);box-shadow:inset 0 -2px 0 var(--gold-light)}
.lloc-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:min(1180px,calc(100vw - 24px));max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 14px;background:#fff;border:1px solid var(--cream-line);border-radius:14px;box-shadow:0 22px 48px -18px rgba(16,29,57,.45)}
.lloc-title{margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.lloc-panel ul{list-style:none;margin:0;padding:0}
.lloc-groups{display:grid;grid-template-columns:repeat(5,1fr);gap:4px 18px}
@media (max-width:1240px){.lloc-groups{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.lloc-groups{grid-template-columns:repeat(2,1fr)}}
.lloc-sub{margin:6px 0 2px;padding-bottom:4px;border-bottom:2px solid var(--cream-line);font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--navy)}
.loc-group-h{margin:34px 0 0;font-family:var(--serif);font-size:1.4rem;color:var(--navy)}
.loc-group-h+.loc-grid{margin-top:16px}
.lloc-panel li{margin:0;border-top:1px solid var(--line)}
.lloc-panel li:first-child{border-top:0}
.lloc-panel ul a{display:block;padding:9px 4px;color:var(--navy);font-weight:600;font-size:.98rem;text-decoration:none}
.lloc-panel ul a:hover{color:var(--pink-deep);text-decoration:underline}
.lloc-panel ul a[aria-current]{color:var(--gold-text);font-weight:700}
.lloc-all{display:inline-block;margin-top:10px;font-weight:700;font-size:.92rem;color:var(--navy);text-decoration:underline;text-underline-offset:3px}
.lloc :focus-visible{outline:2px solid var(--gold-light);outline-offset:2px}
/* Locations section on the hub landing page */
.loc-grid{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.loc-grid li{margin:0}
.loc-grid a{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 20px;background:#fff;border:1px solid var(--cream-line);border-radius:14px;text-decoration:none;box-shadow:0 10px 24px -20px rgba(16,29,57,.5);transition:transform .18s ease,border-color .18s ease}
.loc-grid a:hover{transform:translateY(-2px);border-color:var(--gold)}
.loc-grid h3,.loc-grid h4,.loc-grid .as-h3 {margin:0;font-family:var(--serif);font-size:1.18rem;line-height:1.25;color:var(--navy)}
.loc-grid p{margin:0;color:var(--slate);font-size:.98rem}
@media (max-width:640px){.lloc>summary{padding:6px 8px}.loc-grid{grid-template-columns:1fr}.lloc-groups{grid-template-columns:1fr}}
@media print{.lloc{display:none}}
/* The site-wide "Book AI Training Now" tab hangs below the main header. On hub
   pages the hub bar sits there, so the tab drops below the hub bar instead of
   covering its Locations menu and booking button. */
#navbar>.oais-book-cta{top:calc(100% + 57px + 10px)}
@media (max-width:920px){#navbar>.oais-book-cta{top:calc(100% + 52px + 8px)}}
body:has(.lloc[open]) #navbar>.oais-book-cta{visibility:hidden}
