/* GAAB UK shared redesign layer — consistent across every page. */

header{ z-index:300; }
.wordmark .wordmark-full{ display:none; }
.nav-label-mobile{ display:none; }
.mobile-nav-footer{ display:none; }

.nav-actions .btn,
.hero-ctas .btn.btn-navy{
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}
.nav-actions .btn:hover,
.hero-ctas .btn.btn-navy:hover{
  background:var(--navy-ink);
  border-color:var(--navy-ink);
  color:#fff;
}

nav.links > a,
nav.links > .programme-nav-item > a,
nav.links > .service-nav-item > a{ position:relative; }
nav.links a[aria-current="page"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-9px;
  height:2px;
  background:var(--gold);
}

/* Shared desktop Programmes preview. */
.nav-row{ position:relative; }
.programme-nav-item,.service-nav-item{ display:flex; align-items:center; }
.programme-trigger{ cursor:pointer; }
.programme-mega{
  position:absolute;
  top:100%;
  left:50%;
  width:min(1160px,calc(100vw - 56px));
  transform:translate(-50%,12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  background:#fff;
  border:1px solid var(--rule);
  border-top:2px solid var(--gold);
  box-shadow:0 28px 65px rgba(14,23,52,.18);
  padding:28px 38px;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  z-index:350;
}
.programme-nav-item:hover .programme-mega,
.programme-nav-item:focus-within .programme-mega{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.mega-layout{ display:grid; grid-template-columns:280px 1fr; gap:42px; }
.mega-intro{ padding-right:38px; border-right:1px solid var(--rule); }
.mega-count{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); font-weight:600; }
.mega-intro h2{ margin-top:12px; font-size:2rem; line-height:1.04; }
.mega-intro p{ margin-top:12px; font-size:.86rem; line-height:1.5; }
nav.links .mega-intro a{ display:inline-block; margin-top:10px; padding:0; font-size:.82rem; font-weight:700; color:var(--navy); }
.mega-groups{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 30px; }
.mega-group h3{ padding-bottom:7px; border-bottom:1px solid var(--rule); font-family:var(--font-body); font-size:.7rem; line-height:1.3; text-transform:uppercase; }
.mega-group ul{ list-style:none; margin:6px 0 0; padding:0; }
nav.links .mega-group a{ display:block; padding:2px 0; color:var(--text-soft); font-size:.75rem; line-height:1.35; font-weight:400; }
nav.links .programme-mega a::after{ display:none; }
nav.links .programme-mega a:hover{ color:var(--gold); }

/* Shared desktop Services preview. */
.service-trigger{ cursor:pointer; }
.service-mega{
  position:absolute;
  top:100%;
  left:50%;
  width:min(920px,calc(100vw - 56px));
  transform:translate(-50%,12px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  padding:24px;
  background:#fff;
  border:1px solid var(--rule);
  border-top:2px solid var(--gold);
  box-shadow:0 28px 65px rgba(14,23,52,.18);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  z-index:350;
}
.service-nav-item:hover .service-mega,
.service-nav-item:focus-within .service-mega{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.service-mega-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid #D8DDE2; border-left:1px solid #D8DDE2; }
nav.links .service-mega-grid > a{ display:flex; min-height:148px; padding:20px; flex-direction:column; border-right:1px solid #D8DDE2; border-bottom:1px solid #D8DDE2; background:#fff; transition:background .18s ease,color .18s ease,transform .18s ease; }
nav.links .service-mega-grid > a::after{ display:none; }
nav.links .service-mega-grid > a:hover{ position:relative; z-index:2; transform:translateY(-3px); background:var(--navy); color:#fff; }
.service-mega-grid span{ color:var(--gold); font-family:var(--font-mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }
.service-mega-grid strong{ margin-top:18px; color:var(--navy); font-family:var(--font-display); font-size:1.23rem; font-weight:500; line-height:1.05; }
.service-mega-grid small{ margin-top:9px; color:#667085; font-size:.69rem; line-height:1.45; }
.service-mega-grid > a:hover strong,.service-mega-grid > a:hover small{ color:#fff; }

/* Homepage hero: keep the photo fade, remove the blueprint grid. */
.page-home .hero-photo{
  background-color:var(--ivory) !important;
  background-image:none !important;
}
.page-home .trust{ display:none !important; }

/* One organisation / three pillars section. */
.page-home .services{
  padding:86px 0 96px;
  background:#F3F1EA;
  color:var(--navy);
  overflow:visible;
}
.page-home .services::before,
.page-home .services::after,
.page-home .services-arc{ display:none; }
.page-home .services-head{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:80px;
  align-items:end;
  max-width:none;
  margin:0 0 48px;
}
.page-home .services-head h2{
  color:var(--navy);
  font-size:clamp(2.6rem,4vw,3.65rem);
  line-height:.96;
  letter-spacing:-.025em;
  max-width:16ch;
}
.page-home .services-head h2 > span{ display:block; }
.page-home .services-head h2 > .mobile-title-break{ display:none; }
.page-home .services-head p{
  color:var(--text-soft);
  font-size:1rem;
  line-height:1.75;
  max-width:34ch;
  margin:0;
}
.page-home .svc-grid{
  gap:0;
  border-top:1px solid #D5DAE0;
  border-left:1px solid #D5DAE0;
}
.page-home .svc-card{
  min-height:390px;
  padding:38px 42px;
  border:0;
  border-right:1px solid #D5DAE0;
  border-bottom:1px solid #D5DAE0;
  border-radius:0;
  background:#FFFDF8;
  gap:0;
  box-shadow:inset 0 3px 0 rgba(201,162,46,.72);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,color .22s ease;
}
.page-home .svc-card:first-child{ background:#F8F1DE; }
.page-home .svc-card:nth-child(2){ background:#18365F; }
.page-home .svc-card:nth-child(3){ background:#fff; }
.page-home .svc-card:nth-child(2) .svc-num{ color:#E6BD58; }
.page-home .svc-card:nth-child(2) h3,
.page-home .svc-card:nth-child(2) p,
.page-home .svc-card:nth-child(2) a.svc-link{ color:#fff; }
.page-home .svc-card:nth-child(2) a.svc-link{ border-color:rgba(255,255,255,.24); }
.page-home .svc-card:hover,
.page-home .svc-card:focus-within{
  transform:translateY(-10px);
  z-index:3;
  background:#0B315F;
  color:#fff;
  box-shadow:inset 0 3px 0 #D4A82D,0 26px 52px rgba(14,23,52,.24);
}
.page-home .svc-icon{ display:none; }
.page-home .svc-num{
  margin-left:auto;
  color:#8F98A8;
  font-size:.62rem;
}
.page-home .svc-card h3{
  margin-top:104px;
  font-size:2.35rem;
  line-height:1;
  color:var(--navy);
}
.page-home .svc-card p{
  margin-top:24px;
  padding:0;
  border:0;
  color:#667085;
  font-size:.88rem;
  line-height:1.65;
}
.page-home .svc-card a.svc-link{
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid #D5DAE0;
  color:var(--navy);
  font-family:var(--font-body);
  letter-spacing:0;
  font-size:.7rem;
  font-weight:700;
}
.page-home .svc-card:hover h3,
.page-home .svc-card:hover p,
.page-home .svc-card:hover a.svc-link,
.page-home .svc-card:focus-within h3,
.page-home .svc-card:focus-within p,
.page-home .svc-card:focus-within a.svc-link{ color:#fff; }
.page-home .svc-card:hover a.svc-link,
.page-home .svc-card:focus-within a.svc-link{ border-color:rgba(255,255,255,.25); }

/* Category tabs reveal a compact programme preview on hover/focus. */
.page-home .division-category-bar{ overflow:visible; }
.category-tab{ position:relative; }
.division-category-bar .category-tab > a{
  white-space:nowrap;
  background:rgba(255,255,255,.88);
  border-color:#C9D2DD;
  box-shadow:0 5px 14px rgba(14,23,52,.045);
  transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.division-category-bar .category-tab:hover > a,
.division-category-bar .category-tab:focus-within > a{
  transform:translateY(-2px);
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
  box-shadow:0 10px 22px rgba(14,23,52,.14);
}
.category-preview{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  width:285px;
  padding:20px 22px;
  background:#fff;
  border:1px solid #D5DAE0;
  border-top:2px solid var(--gold);
  box-shadow:0 22px 44px rgba(14,23,52,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  z-index:30;
}
.category-tab:hover .category-preview,
.category-tab:focus-within .category-preview{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.category-preview strong{ display:block; font-family:var(--font-display); font-size:1.35rem; font-weight:500; color:var(--navy); }
.category-preview span{ display:block; margin-top:8px; padding-top:8px; border-top:1px solid #E0E3E6; color:#667085; font-size:.76rem; line-height:1.35; }
.category-preview em{ display:block; margin-top:14px; color:var(--gold); font-family:var(--font-mono); font-size:.62rem; font-style:normal; letter-spacing:.08em; text-transform:uppercase; }

/* Keep the reveal animation from cancelling the lifted division-card state. */
.page-home .division-card.in-view{
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.page-home .division-card.in-view:hover,
.page-home .division-card.in-view:focus-within{
  transform:translateY(-8px);
  z-index:4;
  background:#fff;
  box-shadow:inset 0 3px 0 var(--gold),0 22px 45px rgba(14,23,52,.16);
}

/* Deep brand surface for the homepage division directory. */
.page-home .division-directory{
  background:#102A50;
  color:#fff;
  border-bottom-color:#29456B;
}
.page-home .division-heading h2{ color:#fff; }
.page-home .division-heading p{ color:rgba(255,255,255,.76); }
.page-home .division-category-bar{ border-bottom-color:rgba(255,255,255,.18); }
.page-home .division-category-bar{ scrollbar-width:none; }
.page-home .division-category-bar::-webkit-scrollbar{ display:none; }
.page-home .division-category-bar .category-tab > a{
  background:#183A65;
  border-color:rgba(255,255,255,.24);
  color:#fff;
  box-shadow:none;
}
.page-home .division-category-bar .category-tab:hover > a,
.page-home .division-category-bar .category-tab:focus-within > a{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy-ink);
  box-shadow:0 12px 24px rgba(0,0,0,.22);
}
.page-home .division-grid{
  border-left-color:rgba(255,255,255,.2);
  box-shadow:0 24px 54px rgba(0,0,0,.16);
}
.page-home .division-footer .btn.btn-navy{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--navy-ink);
}
.page-home .division-footer .btn.btn-navy:hover,
.page-home .division-footer .btn.btn-navy:focus-visible{
  background:#fff;
  border-color:#fff;
  color:var(--navy-ink);
}

/* Card-like panels in About and Finishing School lift like programme cards. */
.page-home .ethos > div,
.page-home .about-img,
.page-home .about-side,
.page-home .fin-badge,
.page-about .section.navy .pcard{
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
}
.page-home .ethos > div:hover,
.page-home .ethos > div:focus-visible,
.page-home .about-img:hover,
.page-home .about-side:hover,
.page-home .about-side:focus-visible,
.page-home .fin-badge.in-view:hover,
.page-home .fin-badge.in-view:focus-visible,
.page-about .section.navy .pcard:hover,
.page-about .section.navy .pcard:focus-visible{
  transform:translateY(-8px);
  z-index:4;
  background:#183A65 !important;
  border-color:rgba(201,162,46,.72) !important;
  box-shadow:inset 0 3px 0 var(--gold),0 22px 45px rgba(0,0,0,.26);
  outline:none;
}
.page-home .fin-badge.in-view:hover,
.page-home .fin-badge.in-view:focus-visible{ background:#0B315F !important; }
.page-home .ethos > div:focus-visible,
.page-home .about-side:focus-visible,
.page-home .fin-badge.in-view:focus-visible,
.page-about .section.navy .pcard:focus-visible{
  box-shadow:inset 0 0 0 2px var(--gold),0 22px 45px rgba(0,0,0,.26);
}

/* Programmes page follows the filter-first, four-column catalogue reference. */
.page-programmes .programme-banner{ padding:52px 0 46px; }
.page-programmes .programme-banner-copy{ max-width:none; }
.page-programmes .programme-banner h1{
  max-width:none;
  font-size:clamp(2.65rem,4.4vw,3.6rem);
  line-height:1.02;
}
.page-programmes .programme-banner p{
  max-width:58ch;
  font-size:1rem;
  line-height:1.65;
}
.page-programmes .programmes-catalogue{ padding:6px 0 64px; }
.page-programmes .programme-heading{ display:none; }
.page-programmes .programme-filters{ min-height:54px; margin-bottom:16px; padding:0 0 12px; }
.page-programmes .programme-filters{ scrollbar-width:none; }
.page-programmes .programme-filters::-webkit-scrollbar{ display:none; }
.page-programmes .programme-card{
  min-height:268px;
  padding:18px 18px 15px;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.page-programmes .programme-card:hover,
.page-programmes .programme-card:focus-within{
  transform:translateY(-4px);
  border-top:2px solid var(--gold);
  z-index:4;
  box-shadow:0 15px 30px rgba(14,23,52,.13);
}
.page-programmes .programme-link::after{ content:"  ↗"; color:var(--gold); float:right; }

/* Image-led interior page heroes. */
.page-banner.image-led{
  min-height:390px;
  padding:0;
  background:var(--navy-deep);
}
.page-banner.image-led::before,
.page-banner.image-led::after{ display:none; }
.page-banner.image-led .wrap{
  min-height:390px;
  display:flex;
  align-items:center;
}
.page-banner-copy{ position:relative; z-index:2; width:48%; padding:66px 0; }
.page-banner.image-led h1{ font-size:clamp(2.8rem,4.8vw,4.5rem); line-height:1.02; }
.page-banner-media{
  position:absolute;
  top:0;
  right:0;
  width:61%;
  height:100%;
  object-fit:cover;
  object-position:center;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 13%,#000 43%,#000 100%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 13%,#000 43%,#000 100%);
}
.page-services .page-banner-media{ object-position:center 48%; }
.page-about .page-banner-media{ object-position:center 45%; }
.page-contact .page-banner-media{ object-position:center 48%; }
.page-services .service-intro-grid{ grid-template-columns:1fr; max-width:800px; margin-bottom:48px; }
.page-services .service-editorial-image{ display:none; }

/* Simplified Contact page: two clear paths, one complete enquiry form. */
.page-contact .page-banner.image-led,
.page-contact .page-banner.image-led .wrap{ min-height:330px; }
.page-contact .page-banner-copy{ padding:54px 0; }
.page-contact .contact-simple{
  padding:82px 0 96px;
  background:#F2F4F7;
  border-bottom:1px solid #DCE1E7;
}
.contact-simple-grid{
  display:grid;
  grid-template-columns:minmax(0,.74fr) minmax(560px,1.26fr);
  gap:70px;
  align-items:start;
}
.contact-intro{ padding:30px 0; }
.contact-intro h2{
  margin-top:14px;
  font-size:clamp(2.65rem,4.3vw,4.25rem);
  line-height:1;
  max-width:10ch;
}
.contact-intro > p{
  margin-top:22px;
  max-width:43ch;
  color:#55617A;
  line-height:1.75;
}
.contact-methods{
  margin-top:38px;
  border-top:1px solid #D5DBE3;
}
.contact-method{
  display:grid;
  gap:4px;
  padding:19px 0;
  border-bottom:1px solid #D5DBE3;
}
.method-label{
  font-family:var(--font-mono);
  font-size:.66rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
}
.method-value{
  width:max-content;
  max-width:100%;
  color:var(--navy);
  font-size:1rem;
  font-weight:600;
  overflow-wrap:anywhere;
}
.method-value:hover{ color:var(--gold); }
.contact-quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.contact-quick-actions .btn{
  min-width:132px;
  justify-content:center;
  border-radius:999px;
  padding:12px 22px;
  font-size:.85rem;
}
.contact-response-note{
  margin-top:16px !important;
  color:#7A8498 !important;
  font-size:.78rem;
}
.contact-enquiry-card{
  background:#fff;
  border:1px solid #DDE2E8;
  border-radius:20px;
  padding:38px 36px 34px;
  box-shadow:0 16px 42px rgba(14,23,52,.07);
}
.contact-enquiry-card > .eyebrow{ margin-bottom:20px; }
.enquiry-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 14px;
}
.enquiry-field{ min-width:0; }
.enquiry-field.field-wide,
.enquiry-submit,
.form-success,
.form-error,
.enquiry-consent,
.enquiry-captcha{ grid-column:1 / -1; }
.enquiry-field label{
  display:block;
  margin-bottom:7px;
  color:var(--navy-ink);
  font-size:.71rem;
  line-height:1.35;
  font-weight:700;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.enquiry-field input,
.enquiry-field select,
.enquiry-field textarea{
  width:100%;
  border:1px solid #E0E4EA;
  border-radius:11px;
  background:#F5F6F8;
  color:var(--navy-ink);
  font:inherit;
  font-size:.9rem;
  padding:12px 14px;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.enquiry-field input,
.enquiry-field select{ min-height:47px; }
.enquiry-field textarea{
  min-height:108px;
  resize:vertical;
}
.enquiry-field input:focus,
.enquiry-field select:focus,
.enquiry-field textarea:focus{
  outline:none;
  border-color:var(--gold);
  background:#fff;
  box-shadow:0 0 0 3px rgba(185,138,47,.13);
}
.enquiry-submit{
  min-height:48px;
  margin-top:4px;
  border:1px solid var(--navy-ink);
  border-radius:999px;
  background:var(--navy-ink);
  color:#fff;
  font-family:var(--font-body);
  font-size:.84rem;
  font-weight:700;
  cursor:pointer;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
.enquiry-submit:hover,
.enquiry-submit:focus-visible{
  transform:translateY(-2px);
  background:var(--navy);
  box-shadow:0 10px 24px rgba(14,23,52,.16);
}
.form-success{
  margin:0;
  padding:13px 15px;
  border-left:3px solid var(--gold);
  background:#F8F1DE;
  color:var(--navy);
  font-size:.84rem;
}
.form-error{
  margin:0;
  padding:13px 15px;
  border:1px solid #B42318;
  border-radius:10px;
  background:#FFF1F0;
  color:#8A1C13;
  font-size:0.9rem;
  line-height:1.5;
}
.enquiry-consent{ display:flex; gap:10px; align-items:flex-start; }
.enquiry-consent input{ width:18px; height:18px; margin-top:2px; accent-color:var(--navy); flex:0 0 auto; }
.enquiry-consent label{ color:var(--text-muted); font-size:0.82rem; line-height:1.55; }
.enquiry-consent a{ color:var(--navy); text-decoration:underline; text-underline-offset:2px; }
.enquiry-honeypot{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.enquiry-submit:disabled{ opacity:0.62; cursor:wait; transform:none; }
.enquiry-field [aria-invalid="true"]{ border-color:#B42318; box-shadow:0 0 0 3px rgba(180,35,24,0.1); }
.page-contact .sticky-apply{ display:none; }

@media (max-width:980px){
  .programme-mega,.service-mega{ display:none !important; }
  .programme-nav-item,.service-nav-item{ display:contents; }
  nav.links a[aria-current="page"]::after{ display:none; }
  .page-home .services-head{ grid-template-columns:1fr; gap:24px; }
  .page-home .services-head p{ max-width:54ch; }
  .page-home .svc-grid{ grid-template-columns:1fr; }
  .page-home .svc-card{ min-height:320px; }
  .page-home .svc-card h3{ margin-top:64px; }
  .category-preview{ display:none; }
  .page-home .division-category-bar{ overflow-x:auto; }
  .contact-simple-grid{ grid-template-columns:1fr; gap:34px; }
  .contact-intro{ max-width:680px; padding:0; }
  .contact-intro h2{ max-width:13ch; }
}

@media (max-width:900px){
  .wordmark-mark,
  .wordmark .wm-text{ display:none !important; }
  .wordmark-full{ display:block !important; height:52px !important; width:auto !important; }
  .page-banner.image-led{ display:flex; flex-direction:column; min-height:0; }
  .page-banner-media{
    position:relative;
    order:0;
    width:100%;
    height:clamp(300px,66vw,470px);
    -webkit-mask-image:none;
    mask-image:none;
  }
  .page-banner.image-led .wrap{ order:1; width:100%; min-height:0; }
  .page-banner-copy{ width:100%; padding:52px 0 58px; }
  .page-about .cardgrid[style]{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}

@media (max-width:640px){
  .page-home .services{ padding:66px 0 72px; }
  .page-home .services-head h2{ font-size:clamp(2.65rem,13vw,3.65rem); }
  .page-home .svc-card{ min-height:285px; padding:30px 25px; }
  .page-home .svc-card h3{ margin-top:48px; font-size:2rem; }
  .page-programmes .programmes-catalogue{ padding-top:0; }
  .page-programmes .programme-filters{ margin-bottom:20px; }
  .page-programmes .programme-banner{ padding:54px 0 50px; }
  .page-programmes main .programme-banner{ background:var(--navy-deep); color:var(--ivory); }
  .page-programmes .programme-banner h1{ font-size:clamp(2.6rem,12vw,3.45rem); }
  .page-programmes .programme-banner p{ font-size:.94rem; }
  .page-banner.image-led h1{ font-size:clamp(2.7rem,13vw,3.5rem); }
  .page-about .cardgrid[style]{ grid-template-columns:1fr !important; }
  .page-contact .contact-simple{ padding:58px 0 70px; }
  .contact-intro h2{ font-size:clamp(2.5rem,12vw,3.35rem); }
  .contact-enquiry-card{ padding:26px 20px 22px; border-radius:16px; }
  .enquiry-grid{ grid-template-columns:1fr; }
  .enquiry-field,
  .enquiry-field.field-wide,
  .enquiry-submit,
  .form-success,
  .form-error,
  .enquiry-consent,
  .enquiry-captcha{ grid-column:1; }
  .contact-quick-actions{ flex-wrap:nowrap; }
  .contact-quick-actions .btn{ min-width:0; flex:1; }
}

@media (prefers-reduced-motion:reduce){
  .programme-mega,.service-mega,.category-preview,.svc-card,.programme-card,.ethos > div,.about-img,.about-side,.fin-badge,.pcard{ transition:none !important; }
}

/* ================================================================
   Mobile experience layer
   Keeps the desktop editorial language while reducing scroll length,
   strengthening touch targets and preserving side-by-side comparisons.
   ================================================================ */
@media (max-width:720px){
  html{ scroll-padding-top:74px; }
  body{
    overflow-x:hidden;
    font-size:15px;
    line-height:1.6;
  }
  body:has(header.menu-open){ overflow:hidden; }
  .wrap{ padding-left:20px; padding-right:20px; }
  h2{ font-size:clamp(2rem,10vw,2.55rem); line-height:1.04; }
  p{ line-height:1.65; }
  .eyebrow,.crumb{ font-size:.64rem; letter-spacing:.14em; }
  .btn{ min-height:46px; padding:11px 18px; font-size:.83rem; touch-action:manipulation; }

  /* Compact, thumb-friendly navigation. */
  header{ min-height:68px; }
  .nav-row{ min-height:68px; padding:7px 16px !important; }
  .wordmark-full{ height:46px !important; max-width:235px; object-fit:contain; object-position:left center; }
  .nav-toggle{
    display:grid !important;
    place-content:center;
    width:44px;
    height:44px;
    padding:8px !important;
    border:1px solid var(--rule) !important;
    border-radius:6px;
    background:#fff;
    touch-action:manipulation;
  }
  .nav-toggle span{
    width:20px;
    margin:3px 0;
    transition:transform .18s ease,opacity .18s ease;
  }
  header.menu-open .nav-toggle span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  header.menu-open .nav-toggle span:nth-child(2){ opacity:0; }
  header.menu-open .nav-toggle span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
  nav.links.open{
    max-height:calc(100dvh - 68px);
    overflow-y:auto;
    padding:8px 20px 14px;
  }
  nav.links.open a{ min-height:48px; padding:13px 4px; font-size:.94rem; }

  /* Homepage hero: retain the image-first story in a shorter frame. */
  .page-home .hero-media{ height:270px; background-position:center 48%; }
  .page-home .hero-photo .wrap{ padding:40px 20px 48px; }
  .page-home .hero-content{ padding-left:16px; }
  .page-home .hero-eyebrow{ margin-bottom:13px; font-size:.61rem; line-height:1.55; }
  .page-home .hero-photo h1{
    max-width:9.5ch;
    font-size:clamp(2.45rem,11.5vw,3rem);
    line-height:.98;
  }
  .page-home .hero-sub{ margin-top:18px; font-size:.9rem; line-height:1.65; }
  .page-home .hero-ctas{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin-top:24px;
  }
  .page-home .hero-ctas .btn{
    width:auto;
    min-width:0;
    justify-content:center;
    padding:11px 8px;
    font-size:.76rem;
    white-space:nowrap;
  }
  .page-home .hero-values{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 12px;
    margin-top:24px;
  }
  .page-home .hero-values .sep{ display:none; }
  .page-home .hero-values .val{
    padding:2px 0 2px 9px;
    border-left:1px solid rgba(185,138,47,.7);
    font-size:.61rem;
  }
  .page-home .hero-stats{ gap:14px 18px; margin-top:22px; }
  .page-home .hero-stat .num{ font-size:1.3rem; }
  .page-home .hero-stat .lab{ font-size:.7rem; line-height:1.4; }

  /* Preserve desktop card comparisons as swipeable mobile rails. */
  .page-home .services,
  .page-home .division-directory{ padding:52px 0 58px; }
  .page-home .services-head,
  .page-home .division-heading{ gap:15px; margin-bottom:26px; }
  .page-home .services-head h2,
  .page-home .division-heading h2{
    max-width:13ch;
    font-size:clamp(2.4rem,11.5vw,3rem);
    line-height:.98;
  }
  .page-home .services-head p,
  .page-home .division-heading p{ font-size:.88rem; line-height:1.65; }
  .page-home .svc-grid,
  .page-home .division-grid{
    display:flex;
    gap:12px;
    width:auto;
    margin-left:-20px;
    margin-right:-20px;
    padding:2px 20px 22px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:20px;
    border:0;
    box-shadow:none;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .page-home .svc-grid::-webkit-scrollbar,
  .page-home .division-grid::-webkit-scrollbar{ display:none; }
  .page-home .svc-card,
  .page-home .division-card{
    flex:0 0 min(82vw,315px);
    scroll-snap-align:start;
    border:1px solid #D5DAE0;
  }
  .page-home .svc-card{
    min-height:300px;
    padding:25px 23px;
  }
  .page-home .svc-card h3{ margin-top:40px; font-size:2rem; }
  .page-home .svc-card p{ margin-top:17px; font-size:.83rem; }
  .page-home .division-category-bar{ margin-bottom:22px; padding-bottom:16px; }
  .page-home .division-category-bar .category-tab > a{ min-height:42px; align-items:center; padding:8px 12px; }
  .page-home .division-card{ min-height:310px; padding:25px 23px 22px; }
  .page-home .division-card p{ font-size:.82rem; }
  .page-home .division-card ul{ margin-top:18px; }
  .page-home .division-card li{ padding:9px 0; font-size:.8rem; }
  .page-home .division-card .division-link{ padding-top:16px; }
  .page-home .division-footer{ margin-top:14px; }

  /* Compact the supporting homepage story. */
  .page-home .how,
  .page-home .finishing,
  .page-home .about,
  .page-home .faq,
  .page-home .testimonials,
  .page-home .closing,
  .page-home .contact{ padding:54px 0; }
  .page-home .timeline{ margin-top:30px; }
  .page-home .timeline::before{ left:20px; }
  .page-home .tl-step{ grid-template-columns:42px 1fr; column-gap:15px; padding:9px 0; }
  .page-home .tl-node{ width:42px; height:42px; font-size:.78rem; box-shadow:0 0 0 4px var(--ivory); }
  .page-home .tl-step h3{ margin-top:6px; font-size:1rem; }
  .page-home .tl-step p{ margin-top:4px; font-size:.82rem; line-height:1.55; }
  .page-home .fin-grid{ gap:27px; }
  .page-home .fin-lead p{ margin-top:15px; font-size:.88rem; }
  .page-home .fin-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 14px;
    margin-top:20px;
  }
  .page-home .fin-item{ gap:7px; font-size:.78rem; line-height:1.45; }
  .page-home .fin-item svg{ width:15px; height:15px; }
  .page-home .fin-badge{ padding:28px 22px; }
  .page-home .fin-badge .seal-mini{ width:50px; height:50px; margin-bottom:12px; }
  .page-home .fin-badge h3{ font-size:1.65rem; }
  .page-home .fin-badge p{ font-size:.82rem; }
  .page-home .about-grid{ gap:27px; }
  .page-home .about-lead p{ margin-top:15px; font-size:.86rem; }
  .page-home .ethos{ margin-top:22px; }
  .page-home .ethos > div{ min-width:0; padding:14px 13px; }
  .page-home .ethos .word{ font-size:1.08rem; }
  .page-home .ethos .desc{ font-size:.72rem; line-height:1.45; }
  .page-home .about-right{ gap:14px; }
  .page-home .about-right{
    flex-direction:row;
    width:auto;
    margin-left:-20px;
    margin-right:-20px;
    padding:2px 20px 18px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:20px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .page-home .about-right::-webkit-scrollbar{ display:none; }
  .page-home .about-img,
  .page-home .about-side{
    flex:0 0 min(82vw,315px);
    scroll-snap-align:start;
  }
  .page-home .about-img{ height:260px; aspect-ratio:auto; }
  .page-home .about-side{ padding:24px 20px; }
  .page-home .about-side .facts{ margin-top:14px; }
  .page-home .about-side .fact{ padding:11px 0; }
  .page-home .about-side .fact .n{ font-size:1.42rem; }
  .page-home .about-side .fact .l{ max-width:68%; font-size:.72rem; line-height:1.4; }
  .page-home .faq-head{ margin-bottom:26px; }
  .page-home .faq-q{ min-height:58px; padding:16px 2px; gap:14px; font-size:.9rem; line-height:1.45; }
  .page-home .faq-q .sign{ transform:scale(.78); }
  .page-home .faq-a p{ padding-bottom:17px; font-size:.84rem; }
  .page-home .test-shell{ padding:30px 20px; }
  .page-home .testimonials{ min-height:0; }
  .page-home .closing h2{ font-size:2.05rem; }
  .page-home .closing .btn{ margin-top:22px; }
  .page-home .contact-grid{ gap:26px; }
  .page-home .contact-lead p{ margin-top:14px; font-size:.87rem; }
  .page-home .contact-lead .btn{ margin-top:20px; }
  .page-home .contact-row{ padding:15px 0; }
  .page-home .contact-row .v{ font-size:.86rem; overflow-wrap:anywhere; }

  /* Interior heroes use a shorter image and a tighter editorial block. */
  .page-banner.image-led .page-banner-media{ height:240px; }
  .page-banner.image-led .wrap,
  .page-contact .page-banner.image-led .wrap{ min-height:0; }
  .page-banner-copy,
  .page-contact .page-banner-copy{ padding:38px 0 42px; }
  .page-banner.image-led h1{
    max-width:12ch;
    font-size:clamp(2.35rem,11.5vw,2.9rem);
    line-height:.98;
  }
  .page-banner-copy p{ margin-top:17px; font-size:.9rem; line-height:1.65; }

  /* Programmes: static category rail and denser, easier-to-scan cards. */
  .page-programmes .programme-banner{ padding:24px 0 23px; }
  .page-programmes .programme-banner h1{ max-width:11ch; font-size:clamp(1.9rem,9.8vw,2.35rem); line-height:1; }
  .page-programmes .programme-banner p{ margin-top:10px; font-size:.79rem; line-height:1.5; }
  .page-programmes .programmes-catalogue{ padding:0 0 44px; }
  .page-programmes .programme-filters{
    position:static;
    top:auto;
    z-index:auto;
    min-height:0;
    margin:0 -18px 12px;
    padding:9px 18px;
    background:#EEF1F4;
    border-bottom:1px solid #D4D9DF;
    box-shadow:none;
  }
  .page-programmes .programme-filter{ min-height:38px; padding:8px 11px; font-size:.66rem; touch-action:manipulation; }
  .page-programmes .programme-card{
    min-height:0;
    padding:16px 16px 14px;
  }
  .page-programmes .programme-card h3{ margin-top:16px; padding-right:24px; font-size:1.36rem; line-height:1.08; }
  .page-programmes .programme-description{ margin-top:7px; font-size:.7rem; line-height:1.5; }
  .page-programmes .programme-meta{ margin-top:12px; padding:9px 0 7px; }
  .page-programmes .programme-meta div{ grid-template-columns:46px 1fr; font-size:.55rem; }
  .page-programmes .programme-link{ min-height:34px; padding-top:8px; font-size:.62rem; }

  /* Services keeps the three pillars in one swipeable comparison rail. */
  .page-services .section,
  .page-about .section,
  .page-programmes .section{ padding:52px 0; }
  .page-services .service-intro-grid{ margin-bottom:28px; }
  .page-services .section-head,
  .page-about .section-head,
  .page-programmes .section-head{ margin-bottom:26px; }
  .page-services .section-head h2,
  .page-about .section-head h2,
  .page-programmes .section-head h2{ font-size:clamp(2rem,9.8vw,2.45rem); }
  .page-services .section-head p,
  .page-about .prose p{ font-size:.88rem; line-height:1.65; }
  .page-services .section:not(.navy) .cardgrid.c3{
    display:flex;
    gap:12px;
    margin-left:-20px;
    margin-right:-20px;
    padding:2px 20px 18px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:20px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .page-services .section:not(.navy) .cardgrid.c3::-webkit-scrollbar{ display:none; }
  .page-services .section:not(.navy) .pcard{
    flex:0 0 min(84vw,320px);
    scroll-snap-align:start;
    min-height:430px;
    padding:25px 23px;
  }
  .page-services .pcard h3{ font-size:1.5rem; }
  .page-services .pcard p{ font-size:.84rem; }
  .page-services .pcard li{ font-size:.8rem; }
  .page-services .section.navy .stat-band{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; }
  .page-services .section.navy .stat-band .n{ font-size:2.1rem; }
  .page-services .section.navy .stat-band .l{ font-size:.76rem; }

  /* About: two-by-two tiles retain the desktop rhythm without a long stack. */
  .page-about .section.navy .cardgrid.c2,
  .page-about .section.tint .cardgrid[style]{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px;
  }
  .page-about .section.navy .pcard{ min-height:160px; padding:18px 15px; }
  .page-about .section.navy .pcard h3{ font-size:1.28rem; }
  .page-about .section.navy .pcard p{ margin-top:13px; padding-top:13px; font-size:.74rem; line-height:1.5; }
  .page-about .section.tint .pcard{ min-height:142px; padding:20px 13px; }
  .page-about .section.tint .pcard > div{ font-size:1.8rem !important; }
  .page-about .section.tint .pcard p{ font-size:.74rem; line-height:1.45; }

  /* Contact: shorter intro and iOS-safe form controls. */
  .page-contact .contact-simple{ padding:50px 0 58px; }
  .page-contact .contact-simple-grid{ gap:28px; }
  .page-contact .contact-intro h2{ margin-top:11px; font-size:clamp(2.35rem,11vw,2.85rem); }
  .page-contact .contact-intro > p{ margin-top:16px; font-size:.88rem; }
  .page-contact .contact-methods{ margin-top:26px; }
  .page-contact .contact-method{ padding:14px 0; }
  .page-contact .contact-quick-actions{ margin-top:22px; }
  .page-contact .contact-enquiry-card{ padding:23px 18px 20px; border-radius:15px; }
  .page-contact .enquiry-grid{ gap:13px; }
  .page-contact .enquiry-field input,
  .page-contact .enquiry-field select,
  .page-contact .enquiry-field textarea{ font-size:16px; }
  .page-contact .enquiry-field textarea{ min-height:96px; }

  /* Shared mobile footer. */
  footer{ padding:40px 0 24px; }
  footer .foot-grid{ display:block; }
  footer .foot-brand img{ height:50px; max-width:225px; padding:6px 10px; object-fit:contain; }
  footer .foot-brand p{ margin-top:13px; font-size:.78rem; line-height:1.6; }
  footer .foot-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px 26px;
    margin-top:28px;
  }
  footer .foot-col h4{ margin-bottom:10px; font-size:.63rem; }
  footer .foot-col a{ margin-bottom:7px; font-size:.8rem; }
  footer .foot-bottom{ margin-top:28px; padding-top:18px; font-size:.68rem; }
  .sticky-apply{ right:13px; bottom:13px; }
  .sticky-apply a{ padding:11px 15px; font-size:.76rem; }

  [data-reveal]{ transform:translateY(8px); transition-duration:.36s; }
}

@media (max-width:360px){
  .wrap{ padding-left:17px; padding-right:17px; }
  .wordmark-full{ height:43px !important; max-width:215px; }
  .page-home .hero-photo .wrap{ padding-left:17px; padding-right:17px; }
  .page-home .hero-content{ padding-left:13px; }
  .page-home .hero-ctas{ grid-template-columns:1fr; }
  .page-home .hero-ctas .btn{ font-size:.8rem; }
  .page-home .svc-grid,
  .page-home .division-grid,
  .page-home .about-right,
  .page-services .section:not(.navy) .cardgrid.c3{
    margin-left:-17px;
    margin-right:-17px;
    padding-left:17px;
    padding-right:17px;
    scroll-padding-inline:17px;
  }
  .page-programmes .programme-filters{
    margin-left:-17px;
    margin-right:-17px;
    padding-left:17px;
    padding-right:17px;
  }
  .page-about .section.navy .cardgrid.c2,
  .page-about .section.tint .cardgrid[style]{ grid-template-columns:1fr !important; }
}

/* Homepage colour refinement: brand-led path and blended division panels. */
.page-home .how{
  background:#0C2348;
  color:#fff;
  border-bottom-color:#28456C;
}
.page-home .how h2,
.page-home .how h3{ color:#fff; }
.page-home .how p{ color:rgba(255,255,255,.76); }
.page-home .how .how-step{ border-top-color:rgba(255,255,255,.24); }
.page-home .how .timeline::before{ background:rgba(201,162,39,.55); }
.page-home .how .tl-node{
  background:#17355F;
  color:#fff;
  border-color:var(--gold);
  box-shadow:0 0 0 4px #0C2348;
}

.page-home .division-grid{
  border-top-color:var(--gold);
  border-left-color:rgba(255,255,255,.16);
  box-shadow:0 24px 54px rgba(0,0,0,.2);
}
.page-home .division-card,
.page-home .division-card:nth-child(2),
.page-home .division-card:nth-child(3){
  background:#14345D;
  border-color:rgba(255,255,255,.16);
  color:#fff;
}
.page-home .division-card:nth-child(2){ background:#173A65; }
.page-home .division-card:nth-child(3){ background:#123054; }
.page-home .division-card h3{ color:#fff; }
.page-home .division-card p{ color:rgba(255,255,255,.72); }
.page-home .division-card li{
  color:#fff;
  border-top-color:rgba(255,255,255,.15);
}
.page-home .division-card .division-link{ color:#F7E2A6; }
.page-home .division-card .division-link:hover,
.page-home .division-card .division-link:focus-visible{ color:#fff; }
.page-home .division-card.in-view:hover,
.page-home .division-card.in-view:focus-within{
  background:#1B426F;
  box-shadow:inset 0 3px 0 var(--gold),0 22px 45px rgba(0,0,0,.3);
}

@media (max-width:700px){
  .page-home .division-card,
  .page-home .division-card:nth-child(2),
  .page-home .division-card:nth-child(3){ border-color:rgba(255,255,255,.18); }
}

/* Mobile navigation drawer based on the GAAB mobile reference. */
@media (max-width:720px){
  header.menu-open{
    position:fixed;
    inset:0;
    height:100dvh;
    z-index:400;
    background:transparent;
    border:0;
    backdrop-filter:none;
    box-shadow:none;
    pointer-events:none;
  }
  header.menu-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:1;
    background:rgba(14,23,52,.48);
    backdrop-filter:blur(1.5px);
    pointer-events:auto;
  }
  header.menu-open .nav-row{
    position:fixed;
    top:0;
    left:auto;
    right:0;
    z-index:3;
    width:min(72vw,420px);
    min-width:280px;
    min-height:96px;
    padding:12px 22px !important;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:none;
    pointer-events:auto;
  }
  header.menu-open .wordmark,
  header.menu-open .nav-actions{
    position:relative;
    z-index:4;
  }
  header.menu-open .wordmark{ min-width:0; }
  header.menu-open .wordmark-mark,
  header.menu-open .wm-text{ display:none; }
  header.menu-open .wordmark .wordmark-full{
    display:block;
    width:auto;
    height:48px !important;
    max-width:calc(100% - 56px);
    object-fit:contain;
    object-position:left center;
  }
  header.menu-open .nav-actions .btn{ display:none; }
  header.menu-open .nav-actions{ margin-left:auto; }
  header.menu-open .nav-toggle{
    border-color:transparent !important;
    background:#fff;
  }
  .nav-toggle{
    width:46px;
    height:46px;
    border-color:#D7DADE !important;
    border-radius:8px;
    background:#F3F4F6;
    box-shadow:none;
  }
  .nav-toggle:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:2px;
  }
  nav.links.open{
    position:fixed;
    top:0;
    bottom:0;
    left:auto;
    right:0;
    z-index:2;
    width:min(72vw,420px);
    min-width:280px;
    height:100dvh;
    max-height:none;
    padding:100px 24px 32px;
    gap:0;
    overflow-y:auto;
    background:#fff !important;
    border:0;
    box-shadow:-24px 0 50px rgba(14,23,52,.14);
    pointer-events:auto;
  }
  nav.links.open::before{ display:none; }
  nav.links.open > a,
  nav.links.open > .programme-nav-item,
  nav.links.open > .service-nav-item{ flex:0 0 auto; }
  nav.links.open > .programme-nav-item,
  nav.links.open > .service-nav-item{ display:block; }
  nav.links.open > a,
  nav.links.open > .programme-nav-item > a,
  nav.links.open > .service-nav-item > a,
  nav.links.open .programme-trigger{
    display:flex;
    align-items:center;
    width:100%;
    min-height:56px;
    padding:14px 6px;
    border:0;
    border-bottom:1px solid #E7E8EB;
    border-radius:0;
    background:#fff;
    color:var(--navy);
    font-size:1rem;
    font-weight:600;
    line-height:1.25;
    box-shadow:none;
    transition:color .16s ease,transform .16s ease;
  }
  nav.links.open > a[href$="index.html"]{ order:1; }
  nav.links.open > a[href$="about.html"]{ order:2; }
  nav.links.open > .programme-nav-item{ order:3; }
  nav.links.open > .service-nav-item{ order:4; }
  nav.links.open > a[href$="contact.html"]{ order:5; }
  nav.links.open .programme-mega,
  nav.links.open .service-mega{ display:none; }
  nav.links.open .nav-label-desktop{ display:none; }
  nav.links.open .nav-label-mobile{ display:inline; }
  nav.links.open > a:hover,
  nav.links.open > a:focus-visible,
  nav.links.open > .programme-nav-item > a:hover,
  nav.links.open > .programme-nav-item > a:focus-visible,
  nav.links.open > .service-nav-item > a:hover,
  nav.links.open > .service-nav-item > a:focus-visible,
  nav.links.open .programme-trigger:hover,
  nav.links.open .programme-trigger:focus-visible{
    background:#fff;
    color:var(--gold);
    transform:translateX(3px);
    outline:2px solid transparent;
  }
  nav.links.open a[aria-current="page"]{
    background:#fff;
    color:var(--gold);
    box-shadow:none;
  }
}

/* ================================================================
   GAAB UK mobile-first refinement — July 2026
   A purpose-built phone layout, not a reduced desktop canvas.
   ================================================================ */
@media (max-width:720px){
  :root{
    --mobile-gutter:18px;
    --mobile-section:44px;
  }

  html{ scroll-padding-top:68px; }
  body{
    min-width:0;
    font-size:15px;
    line-height:1.55;
    background:var(--ivory);
  }
  .wrap,
  .page-programme-sheet .wrap{
    width:100%;
    max-width:none;
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  h1,h2,h3,p{ overflow-wrap:break-word; }
  h2{ font-size:clamp(2rem,9.4vw,2.45rem); line-height:1.02; }
  .eyebrow,.crumb{
    font-size:.6rem;
    line-height:1.45;
    letter-spacing:.16em;
  }
  .btn{
    width:100%;
    min-height:48px;
    justify-content:center;
    padding:12px 16px;
    border-radius:3px;
    font-size:.78rem;
  }

  /* Header and navigation drawer */
  header{
    min-height:66px;
    background:#fff;
    border-bottom:1px solid #E4E0D7;
    backdrop-filter:none;
  }
  .nav-row{
    width:100%;
    min-height:66px;
    padding:7px 14px !important;
  }
  .wordmark{ max-width:calc(100% - 58px); }
  .wordmark-full{
    display:block !important;
    width:auto !important;
    height:45px !important;
    max-width:min(226px,100%);
    padding:0 !important;
    background:transparent !important;
    object-fit:contain;
    object-position:left center;
  }
  .nav-toggle,
  header.menu-open .nav-toggle{
    width:44px;
    height:44px;
    border:1px solid #D8DCE2 !important;
    border-radius:10px;
    background:#F0F2F5;
  }
  .nav-toggle span{ width:19px; height:2px; background:#142B55; }
  header.menu-open .nav-row{
    right:0;
    width:min(88vw,370px);
    min-width:0;
    min-height:76px;
    padding:10px 16px !important;
    background:#F2F3F5;
  }
  header.menu-open .wordmark .wordmark-full{
    height:42px !important;
    max-width:210px;
  }
  header.menu-open::before{
    background:rgba(5,18,42,.56);
    backdrop-filter:blur(2px);
  }
  nav.links.open{
    display:flex !important;
    flex-direction:column;
    align-items:stretch !important;
    right:0;
    width:min(88vw,370px);
    min-width:0;
    padding:88px 16px 24px;
    background:#F2F3F5 !important;
    box-shadow:-18px 0 45px rgba(8,24,51,.18);
  }
  nav.links.open > a,
  nav.links.open > .programme-nav-item > a,
  nav.links.open > .service-nav-item > a,
  nav.links.open .programme-trigger{
    min-height:56px;
    margin-top:8px;
    padding:15px 16px;
    border:1px solid #E0E3E7;
    border-radius:8px;
    background:#fff;
    color:var(--navy);
    font-size:.94rem;
    font-weight:700;
    box-shadow:0 2px 8px rgba(14,23,52,.035);
  }
  nav.links.open > .programme-nav-item,
  nav.links.open > .service-nav-item{
    display:block !important;
    width:100%;
    align-self:stretch;
  }
  nav.links.open > a[href$="index.html"]{ order:1; }
  nav.links.open > .service-nav-item{ order:2; }
  nav.links.open > .programme-nav-item{ order:3; }
  nav.links.open > a[href$="about.html"]{ order:4; }
  nav.links.open > a[href$="contact.html"]{ order:5; }
  nav.links.open > a:hover,
  nav.links.open > a:focus-visible,
  nav.links.open > .programme-nav-item > a:hover,
  nav.links.open > .programme-nav-item > a:focus-visible,
  nav.links.open > .service-nav-item > a:hover,
  nav.links.open > .service-nav-item > a:focus-visible{
    background:#173A65;
    border-color:#173A65;
    color:#fff;
    transform:none;
  }
  nav.links.open a[aria-current="page"]{
    background:#173A65;
    border-color:#173A65;
    color:#fff;
  }
  .mobile-nav-footer{
    display:block;
    order:6;
    margin-top:18px;
    padding:18px 2px 0;
    border-top:1px solid #D8DCE2;
  }
  nav.links.open .mobile-nav-footer a{
    display:flex;
    min-height:48px;
    align-items:center;
    justify-content:center;
    padding:12px 14px;
    border:1px solid var(--gold);
    border-radius:4px;
    background:var(--gold);
    color:#102A50;
    font-size:.78rem;
    font-weight:800;
  }
  .mobile-nav-footer span{
    display:block;
    margin-top:12px;
    color:#697386;
    font-size:.68rem;
    text-align:center;
  }

  /* Homepage hero */
  .page-home .hero.hero-photo{
    display:flex;
    flex-direction:column;
    padding:0;
    background:var(--ivory);
  }
  .page-home .hero-media{
    position:relative;
    order:0;
    width:100%;
    height:218px;
    min-height:0;
    background-position:60% center;
  }
  .page-home .hero-photo .wrap{
    order:1;
    padding:32px var(--mobile-gutter) 40px;
  }
  .page-home .hero-content{
    max-width:none;
    padding:0;
    border-left:0;
  }
  .page-home .hero-eyebrow{
    margin-bottom:12px;
    padding-left:11px;
    border-left:2px solid var(--gold);
    font-size:.57rem;
    line-height:1.5;
  }
  .page-home .hero-photo h1{
    max-width:10.5ch;
    font-size:clamp(2.35rem,10.6vw,2.75rem);
    line-height:.96;
    letter-spacing:-.025em;
  }
  .page-home .hero-sub{
    max-width:38ch;
    margin-top:18px;
    font-size:.86rem;
    line-height:1.62;
  }
  .page-home .hero-ctas{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
    margin-top:22px;
  }
  .page-home .hero-ctas .btn{
    min-height:48px;
    padding:12px 16px;
    font-size:.78rem;
  }
  .page-home .hero-values,
  .page-home .hero-stats{ display:none; }

  /* Homepage sections use complete, visible vertical stacks */
  .page-home .services,
  .page-home .division-directory,
  .page-home .how,
  .page-home .finishing,
  .page-home .about,
  .page-home .faq,
  .page-home .testimonials,
  .page-home .closing,
  .page-home .contact{
    padding:var(--mobile-section) 0;
  }
  .page-home .services-head,
  .page-home .division-heading{
    display:block;
    margin-bottom:22px;
  }
  .page-home .services-head h2,
  .page-home .division-heading h2{
    max-width:12ch;
    font-size:clamp(2.15rem,9.6vw,2.55rem);
    line-height:.98;
  }
  .page-home .services-head p,
  .page-home .division-heading p{
    max-width:38ch;
    margin-top:15px;
    font-size:.82rem;
    line-height:1.58;
  }
  .page-home .svc-grid,
  .page-home .division-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
    margin:0;
    padding:0;
    overflow:visible;
  }
  .page-home .svc-card,
  .page-home .division-card{
    width:100%;
    min-height:0;
    padding:22px 20px;
    border-radius:0;
  }
  .page-home .svc-card{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:start;
  }
  .page-home .svc-card h3{
    grid-column:1;
    grid-row:1;
    margin:0;
    font-size:1.72rem;
  }
  .page-home .svc-card .svc-num{
    grid-column:2;
    grid-row:1;
  }
  .page-home .svc-card p{
    grid-column:1/-1;
    margin-top:14px;
    font-size:.8rem;
    line-height:1.55;
  }
  .page-home .svc-card a.svc-link{
    grid-column:1/-1;
    margin-top:18px;
    padding-top:13px;
    font-size:.66rem;
  }
  .page-home .svc-card:hover,
  .page-home .svc-card:focus-within,
  .page-home .division-card.in-view:hover,
  .page-home .division-card.in-view:focus-within{
    transform:none;
  }
  .page-home .division-category-bar{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin:0 0 16px;
    padding:0 0 16px;
    overflow:visible;
  }
  .page-home .division-category-bar .category-tab > a{
    display:flex;
    width:100%;
    min-height:44px;
    align-items:center;
    padding:10px 13px;
    white-space:normal;
    font-size:.71rem;
  }
  .page-home .division-card h3{ margin-top:8px; font-size:1.5rem; }
  .page-home .division-card p{ margin-top:10px; font-size:.79rem; line-height:1.5; }
  .page-home .division-card ul{ display:none; }
  .page-home .division-card .division-link{
    margin-top:18px;
    padding-top:13px;
    border-top:1px solid rgba(255,255,255,.15);
    font-size:.65rem;
  }
  .page-home .division-footer{ margin-top:12px; }
  .page-home .division-footer .btn{ width:100%; }

  .page-home .timeline{ margin-top:24px; }
  .page-home .timeline::before{ left:18px; }
  .page-home .tl-step{
    grid-template-columns:38px 1fr;
    column-gap:13px;
    padding:7px 0;
  }
  .page-home .tl-node{
    width:38px;
    height:38px;
    font-size:.7rem;
  }
  .page-home .tl-step h3{ margin-top:4px; font-size:.95rem; }
  .page-home .tl-step p{ font-size:.76rem; line-height:1.48; }
  .page-home .fin-list{ grid-template-columns:1fr; }
  .page-home .fin-badge{ padding:24px 20px; }
  .page-home .about-right{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    width:100%;
    margin:0;
    padding:0;
    overflow:visible;
  }
  .page-home .about-img,
  .page-home .about-side{
    width:100%;
    min-height:0;
  }
  .page-home .about-img{ height:220px; }
  .page-home .ethos{ grid-template-columns:repeat(2,minmax(0,1fr)); }

  /* Image-led About, Services and Contact heroes */
  .page-banner.image-led{ min-height:0; }
  .page-banner.image-led .page-banner-media{
    width:100%;
    height:205px;
    object-fit:cover;
  }
  .page-banner.image-led .wrap,
  .page-contact .page-banner.image-led .wrap{ min-height:0; }
  .page-banner-copy,
  .page-contact .page-banner-copy{
    width:100%;
    padding:31px 0 36px;
  }
  .page-banner.image-led h1{
    max-width:11ch;
    margin-top:10px;
    font-size:clamp(2.25rem,10.3vw,2.65rem);
    line-height:.96;
  }
  .page-banner-copy p{
    max-width:38ch;
    margin-top:15px;
    font-size:.82rem;
    line-height:1.58;
  }
  .page-services .section,
  .page-about .section,
  .page-programmes .section{ padding:var(--mobile-section) 0; }
  .page-services .service-intro-grid{ margin-bottom:22px; }
  .page-services .section-head,
  .page-about .section-head,
  .page-programmes .section-head{ margin-bottom:22px; }
  .page-services .section-head h2,
  .page-about .section-head h2,
  .page-programmes .section-head h2{
    max-width:13ch;
    font-size:clamp(2.05rem,9.3vw,2.4rem);
  }
  .page-services .section-head p,
  .page-about .prose p{ font-size:.82rem; line-height:1.58; }
  .page-services .section:not(.navy) .cardgrid.c3{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin:0;
    padding:0;
    overflow:visible;
  }
  .page-services .section:not(.navy) .pcard{
    width:100%;
    min-height:0;
    padding:22px 20px;
  }
  .page-services .pcard h3{ font-size:1.35rem; }
  .page-services .pcard p,
  .page-services .pcard li{ font-size:.77rem; }
  .page-services .section.navy .stat-band{
    gap:18px 14px;
    padding:2px 0;
  }
  .page-about .section.navy .cardgrid.c2,
  .page-about .section.tint .cardgrid[style]{
    grid-template-columns:1fr !important;
    gap:8px;
  }
  .page-about .section.navy .pcard,
  .page-about .section.tint .pcard{
    min-height:0;
    padding:19px 18px;
  }

  /* Programmes catalogue */
  .page-programmes .programme-banner{
    padding:30px 0 28px;
  }
  .page-programmes .programme-banner h1{
    max-width:11ch;
    margin-top:9px;
    font-size:clamp(2.15rem,9.8vw,2.55rem);
    line-height:.98;
    color:#fff;
  }
  .page-programmes .programme-banner .crumb{ color:var(--gold-bright); }
  .page-programmes .programme-banner p{
    max-width:38ch;
    margin-top:12px;
    font-size:.8rem;
    line-height:1.55;
    color:rgba(255,255,255,.78);
  }
  .page-programmes .programmes-catalogue{
    padding:16px 0 42px;
    background:#EEF1F4;
  }
  .page-programmes .programmes-catalogue .wrap{
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  .page-programmes .programme-filters{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    width:100%;
    margin:0 0 14px;
    padding:0 0 14px;
    overflow:visible;
    background:transparent;
  }
  .page-programmes .programme-filter{
    width:100%;
    min-height:43px;
    padding:8px 9px;
    border:1px solid #D7DCE2;
    border-radius:5px;
    background:#E1E5EA;
    font-size:.64rem;
    line-height:1.25;
    white-space:normal;
  }
  .page-programmes .programme-filter.active{
    background:#173A65;
    border-color:#173A65;
    color:#fff;
  }
  .page-programmes .programme-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
  .page-programmes .programme-card{
    display:grid;
    grid-template-columns:1fr auto;
    min-height:0;
    padding:15px 15px 13px;
    border-top-width:2px;
  }
  .page-programmes .programme-number{
    position:static;
    grid-column:2;
    grid-row:1;
    align-self:start;
    margin-left:12px;
    font-size:.55rem;
  }
  .page-programmes .programme-category{
    grid-column:1;
    grid-row:1;
    max-width:none;
    font-size:.54rem;
  }
  .page-programmes .programme-card h3{
    grid-column:1/-1;
    margin-top:10px;
    padding:0;
    font-size:1.22rem;
    line-height:1.05;
    -webkit-line-clamp:2;
  }
  .page-programmes .programme-description{
    grid-column:1/-1;
    margin-top:7px;
    font-size:.69rem;
    line-height:1.45;
    -webkit-line-clamp:2;
  }
  .page-programmes .programme-meta{
    grid-column:1/-1;
    margin-top:11px;
    padding:8px 0 6px;
  }
  .page-programmes .programme-meta div{
    grid-template-columns:45px 1fr;
    font-size:.54rem;
  }
  .page-programmes .programme-link{
    grid-column:1/-1;
    min-height:34px;
    padding-top:9px;
    font-size:.62rem;
  }
  .page-programmes .programme-card:hover,
  .page-programmes .programme-card:focus-within{ transform:none; }

  /* Contact page and form */
  .page-contact .contact-simple{ padding:var(--mobile-section) 0 50px; }
  .page-contact .contact-simple-grid{ gap:24px; }
  .page-contact .contact-intro h2{
    max-width:11ch;
    margin-top:10px;
    font-size:clamp(2.15rem,9.8vw,2.55rem);
    line-height:.98;
  }
  .page-contact .contact-intro > p{
    max-width:38ch;
    margin-top:15px;
    font-size:.82rem;
    line-height:1.58;
  }
  .page-contact .contact-methods{ margin-top:23px; }
  .page-contact .contact-method{ padding:13px 0; }
  .page-contact .method-value{ font-size:.9rem; }
  .page-contact .contact-quick-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:20px;
  }
  .page-contact .contact-quick-actions .btn{
    min-width:0;
    padding:11px 9px;
    font-size:.74rem;
  }
  .page-contact .contact-enquiry-card{
    padding:22px 16px 18px;
    border-radius:12px;
    box-shadow:0 8px 24px rgba(14,23,52,.055);
  }
  .page-contact .enquiry-grid{ gap:12px; }
  .page-contact .enquiry-field label{ margin-bottom:6px; font-size:.64rem; }
  .page-contact .enquiry-field input,
  .page-contact .enquiry-field select{
    min-height:48px;
    padding:11px 12px;
    border-radius:8px;
  }
  .page-contact .enquiry-field textarea{
    min-height:100px;
    padding:11px 12px;
    border-radius:8px;
  }
  .page-contact .enquiry-submit{
    min-height:49px;
    border-radius:5px;
  }
  .page-contact .enquiry-consent label{ font-size:.73rem; line-height:1.48; }

  /* Support pages */
  .page-support .support-hero{
    padding:38px 0 42px;
  }
  .page-support .support-hero::before,
  .page-support .support-hero::after{ display:none; }
  .page-support .support-hero h1{
    max-width:12ch;
    margin-top:10px;
    font-size:clamp(2.2rem,10.1vw,2.6rem);
    line-height:.97;
  }
  .page-support .support-hero p{
    max-width:38ch;
    margin-top:16px;
    font-size:.82rem;
    line-height:1.58;
  }
  .page-support .content-section{ padding:var(--mobile-section) 0; }
  .page-support .section-heading{ margin-bottom:22px; }
  .page-support .section-heading.split{
    display:block;
  }
  .page-support .section-heading h2{
    max-width:13ch;
    margin-top:9px;
    font-size:clamp(2rem,9.1vw,2.35rem);
    line-height:1;
  }
  .page-support .section-heading p,
  .page-support .section-heading.split > p{
    margin-top:14px;
    font-size:.8rem;
    line-height:1.55;
  }
  .page-support .benefit-list,
  .page-support .process-grid,
  .page-support .topic-grid,
  .page-support .service-detail-grid,
  .page-support .admissions-grid,
  .page-support .feature-checks,
  .page-support .standard-grid{
    grid-template-columns:1fr;
    gap:8px;
    border:0;
  }
  .page-support .benefit-list li,
  .page-support .process-step,
  .page-support .topic-card,
  .page-support .service-detail-grid article,
  .page-support .admissions-grid > article,
  .page-support .standard-grid article,
  .page-support .feature-checks li{
    min-height:0;
    padding:16px 17px;
    border:1px solid var(--rule);
    border-left:3px solid var(--gold);
  }
  .page-support .topic-card h3,
  .page-support .service-detail-grid h3,
  .page-support .standard-grid h3{
    margin-top:12px;
    font-size:1.24rem;
  }
  .page-support .process-step{
    display:grid;
    grid-template-columns:34px 1fr;
    align-items:start;
    gap:8px;
  }
  .page-support .process-step p{
    margin:0;
    font-size:.8rem;
    line-height:1.5;
  }
  .page-support .support-band{ padding:38px 0; }
  .page-support .split-band{ gap:21px; }
  .page-support .support-band h2{
    font-size:2rem;
    line-height:1;
  }
  .page-support .support-band p{ font-size:.8rem; line-height:1.55; }

  /* Individual programme pages */
  .page-programme-sheet main{ padding:12px 0 28px; }
  .page-programme-sheet .programme-sheet-breadcrumb{
    margin-bottom:8px;
    font-size:.62rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .page-programme-sheet .programme-sheet{
    border-radius:8px;
    box-shadow:0 5px 18px rgba(16,29,67,.045);
  }
  .page-programme-sheet .programme-sheet-head{
    grid-template-columns:22px minmax(0,1fr);
    gap:8px;
    padding:13px 13px 12px;
  }
  .page-programme-sheet .programme-sheet-number{ font-size:.66rem; }
  .page-programme-sheet .programme-sheet-school{ font-size:.52rem; }
  .page-programme-sheet .programme-sheet-head h1{
    font-size:.82rem;
    line-height:1.3;
  }
  .page-programme-sheet .programme-sheet-duration{
    grid-column:2;
    margin-top:1px;
    font-size:.62rem;
  }
  .page-programme-sheet .programme-sheet-body{ padding:13px; }
  .page-programme-sheet .programme-sheet-tagline{
    font-size:.84rem;
    line-height:1.42;
  }
  .page-programme-sheet .programme-sheet-facts{
    display:grid;
    grid-template-columns:1fr;
    gap:3px;
    margin-top:8px;
    padding-bottom:10px;
  }
  .page-programme-sheet .programme-sheet-facts dt,
  .page-programme-sheet .programme-sheet-facts dd{ font-size:.65rem; }
  .programme-sheet-disclosure{
    margin-top:8px;
    border:1px solid #E0E4E9;
    border-radius:6px;
    background:#fff;
  }
  .programme-sheet-disclosure summary{
    min-height:45px;
    padding:13px 34px 12px 13px;
    color:var(--navy);
    font:700 .67rem/1.35 var(--font-mono);
    letter-spacing:.065em;
    text-transform:uppercase;
    cursor:pointer;
    list-style-position:inside;
  }
  .programme-sheet-disclosure[open] summary{
    border-bottom:1px solid #E0E4E9;
    color:#9A711E;
    background:#F8F4E9;
  }
  .programme-sheet-disclosure-content{ padding:13px; }
  .programme-sheet-disclosure-content > p,
  .programme-sheet-disclosure-content .programme-sheet-learning li{
    font-size:.7rem;
    line-height:1.5;
  }
  .programme-sheet-disclosure-content .programme-sheet-learning{
    grid-template-columns:1fr;
    gap:5px;
  }
  .programme-sheet-disclosure-content .programme-sheet-journey{
    grid-template-columns:1fr;
    gap:7px;
  }
  .programme-sheet-disclosure-content .programme-sheet-month{ padding:10px 11px; }
  .programme-sheet-disclosure-content .programme-sheet-month h3{ font-size:.68rem; }
  .programme-sheet-disclosure-content .programme-sheet-month p{ font-size:.64rem; }
  .programme-sheet-disclosure-content .programme-sheet-standards{
    grid-template-columns:1fr;
  }
  .programme-sheet-disclosure-content .programme-sheet-standards article{
    padding:10px 11px;
  }
  .page-programme-sheet .programme-sheet-award{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:10px;
    padding:12px;
  }
  .page-programme-sheet .programme-sheet-award > div+div{
    padding-top:10px;
    padding-left:0;
    border-top:1px solid #DDD4BD;
    border-left:0;
  }
  .page-programme-sheet .programme-sheet-award h2{ font-size:.57rem; }
  .page-programme-sheet .programme-sheet-award strong{ font-size:.7rem; }
  .page-programme-sheet .programme-sheet-award p{ font-size:.65rem; }
  .page-programme-sheet .programme-sheet-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-top:11px;
  }
  .page-programme-sheet .programme-sheet-actions .btn{
    min-height:46px;
    font-size:.7rem;
  }
  .page-programme-sheet footer .foot-brand{ display:none; }

  /* Footer */
  footer{ padding:34px 0 20px; }
  footer .foot-brand img{
    width:auto;
    height:44px;
    max-width:205px;
    padding:0;
    background:transparent;
  }
  footer .foot-brand p{ font-size:.72rem; line-height:1.55; }
  footer .foot-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px 18px;
    margin-top:24px;
  }
  footer .foot-col h4{ font-size:.58rem; }
  footer .foot-col a{ font-size:.73rem; line-height:1.45; }
  footer .foot-bottom{
    display:grid;
    gap:8px;
    margin-top:23px;
    padding-top:15px;
    font-size:.62rem;
  }
  .sticky-apply{ display:none !important; }
  [data-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

@media (max-width:374px){
  :root{ --mobile-gutter:16px; }
  .page-home .hero-photo h1,
  .page-banner.image-led h1,
  .page-support .support-hero h1{ font-size:2.18rem; }
  .page-contact .contact-quick-actions{ grid-template-columns:1fr; }
  footer .foot-links{ grid-template-columns:1fr; }
}

/* Ultra-compact phone pass: fewer repeated controls, shorter cards and
   school-based catalogue tabs. Desktop and tablet layouts are unchanged. */
@media (max-width:720px){
  /* Homepage hero: one deliberate line per phrase on common phones. */
  .page-home .hero-photo h1{
    max-width:100%;
    font-size:clamp(2rem,8.9vw,2.2rem);
    line-height:.96;
  }
  .page-home .hero-photo h1 > span,
  .page-home .hero-photo h1 > em{ display:block; }
  .page-home .hero-photo h1 > span:nth-child(2){ max-width:none; }
  .page-home .hero-sub{
    margin-top:15px;
    font-size:.8rem;
    line-height:1.52;
  }
  .page-home .hero-ctas{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    margin-top:18px;
  }
  .page-home .hero-ctas .btn{
    width:auto;
    min-width:0;
    min-height:40px;
    justify-content:center;
    padding:9px 6px;
    font-size:.66rem;
    line-height:1.15;
    white-space:nowrap;
  }
  .page-home .hero-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid rgba(27,42,92,.14);
  }
  .page-home .hero-stat{
    min-width:0;
    padding:0 7px;
    border-left:1px solid rgba(185,138,47,.32);
    text-align:left;
  }
  .page-home .hero-stat:first-child{
    padding-left:0;
    border-left:0;
  }
  .page-home .hero-stat .num{
    font-size:clamp(.94rem,4vw,1.08rem);
    line-height:1;
    white-space:nowrap;
  }
  .page-home .hero-stat .lab{
    margin-top:5px;
    font-size:.48rem;
    line-height:1.25;
  }
  /* Service heading and cards: five compact title lines with the original body copy. */
  .page-home .services-head h2{
    max-width:100%;
    font-size:clamp(2.45rem,11.5vw,2.8rem);
    line-height:.92;
  }
  .page-home .services-head h2 > span{ display:block; }
  .page-home .services-head h2 > .mobile-title-break{ display:none; }
  .page-home .services .svc-card{ padding:16px 18px; }
  .page-home .services .svc-card p{
    display:block;
    margin-top:10px;
    padding-top:9px;
    border-top:1px solid var(--rule);
    overflow:visible;
    font-size:.72rem;
    line-height:1.48;
    text-overflow:clip;
    white-space:normal;
  }
  .page-home .services .svc-card a.svc-link{
    margin-top:11px;
    padding-top:10px;
  }

  /* Homepage programme directory: one compact row per school. */
  .page-home .division-directory{ padding:36px 0 40px; }
  .page-home .division-heading{ margin-bottom:16px; }
  .page-home .division-heading h2{
    max-width:100%;
    font-size:1.95rem;
    line-height:.98;
  }
  .page-home .division-heading p{
    max-width:42ch;
    margin-top:10px;
    font-size:.72rem;
    line-height:1.45;
  }
  .page-home .division-grid{ gap:7px; }
  .page-home .division-card{
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    padding:14px 15px 12px;
  }
  .page-home .division-card .division-count{
    grid-column:1/-1;
    font-size:.51rem;
  }
  .page-home .division-card h3{
    grid-column:1;
    margin-top:6px;
    font-size:1.12rem;
    line-height:1.05;
  }
  .page-home .division-card p{
    display:block;
    grid-column:1/-1;
    margin-top:7px;
    overflow:hidden;
    font-size:.61rem;
    line-height:1.35;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .page-home .division-card .division-link{
    grid-column:1/-1;
    margin-top:10px;
    padding-top:9px;
    font-size:.58rem;
  }
  .page-home .division-footer{ margin-top:9px; }
  .page-home .division-footer .btn{ min-height:44px; }

  /* Catalogue: three real school tabs and compact two-column programme tiles. */
  .page-programmes .programmes-catalogue{ padding:12px 0 34px; }
  .page-programmes .programme-filters{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
    margin-bottom:10px;
    padding-bottom:10px;
  }
  .page-programmes .programme-filter[data-programme-filter="all"]{ display:none; }
  .page-programmes .programme-filter{
    min-height:42px;
    padding:7px 5px;
    font-size:.6rem;
    line-height:1.2;
  }
  .page-programmes .programme-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .page-programmes .programme-card{
    display:flex;
    min-height:112px;
    padding:12px 11px 10px;
    flex-direction:column;
  }
  .page-programmes .programme-card[hidden]{ display:none !important; }
  .page-programmes .programme-category,
  .page-programmes .programme-description{ display:none; }
  .page-programmes .programme-number{
    position:absolute;
    top:10px;
    right:10px;
    margin:0;
    font-size:.49rem;
  }
  .page-programmes .programme-card h3{
    margin:0;
    padding-right:18px;
    font-size:.94rem;
    line-height:1.05;
    -webkit-line-clamp:3;
  }
  .page-programmes .programme-meta{
    margin-top:auto;
    padding:7px 0 5px;
  }
  .page-programmes .programme-meta div{
    display:block;
    font-size:.49rem;
    line-height:1.35;
  }
  .page-programmes .programme-meta div:nth-child(2){ display:none; }
  .page-programmes .programme-meta dt{ display:none; }
  .page-programmes .programme-meta dd{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .page-programmes .programme-link{
    min-height:24px;
    padding-top:6px;
    font-size:.55rem;
  }
  .page-programmes .programme-link::after{ display:none; }

  /* Programmes path: two concise rows instead of oversized poster cards. */
  .page-programmes .programme-path-section{ padding:30px 0 34px; }
  .page-programmes .programme-path-section .section-head{ margin-bottom:14px; }
  .page-programmes .programme-path-section .section-head h2{
    max-width:100%;
    margin-top:8px;
    font-size:1.72rem;
    line-height:.98;
  }
  .page-programmes .programme-path-section .cardgrid.c2{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
  }
  .page-programmes .programme-path-section .pcard{
    display:grid;
    grid-template-columns:88px 1fr;
    gap:5px 10px;
    min-height:0;
    padding:13px 14px;
    border-top-width:2px;
  }
  .page-programmes .programme-path-section .pcard .num{
    align-self:center;
    font-size:.54rem;
    line-height:1.35;
  }
  .page-programmes .programme-path-section .pcard h3{
    align-self:center;
    margin:0;
    font-size:1rem;
    line-height:1.1;
  }
  .page-programmes .programme-path-section .pcard p{
    display:-webkit-box;
    grid-column:1/-1;
    margin:3px 0 0;
    padding:7px 0 0;
    overflow:hidden;
    border-top:1px solid var(--rule);
    font-size:.63rem;
    line-height:1.38;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  /* About mission: dense editorial rows instead of four poster cards. */
  .page-about .about-mission,
  .page-about .about-ethos,
  .page-about .about-stats{ padding:34px 0; }
  .page-about .about-mission .section-head,
  .page-about .about-ethos .section-head,
  .page-about .about-stats .section-head{ margin-bottom:16px; }
  .page-about .about-mission .section-head h2{
    max-width:16ch;
    font-size:1.78rem;
    line-height:1.02;
  }
  .page-about .about-mission .section-head p{
    margin-top:10px;
    font-size:.74rem;
    line-height:1.45;
  }
  .page-about .about-mission .cardgrid.c2{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px;
  }
  .page-about .about-mission .pcard{
    display:flex;
    min-height:142px;
    padding:12px 11px;
    flex-direction:column;
    border-top-width:2px;
  }
  body.page-about .section.about-mission .pcard .num{
    font-size:.62rem !important;
    line-height:1.45;
  }
  .page-about .about-mission .pcard h3{
    margin:9px 0 0;
    font-size:.86rem;
    line-height:1.15;
  }
  .page-about .about-mission .pcard p{
    display:-webkit-box;
    margin:auto 0 0;
    padding:8px 0 0;
    border:0;
    font-size:.61rem;
    line-height:1.35;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
  }

  /* About ethos: four ideas in a compact two-by-two matrix. */
  .page-about .about-ethos .section-head h2{
    max-width:13ch;
    margin:8px auto 0;
    font-size:1.7rem;
    line-height:1.02;
  }
  .page-about .section.about-ethos .cardgrid.c2{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px;
  }
  .page-about .about-ethos .pcard{
    min-height:112px;
    padding:14px 12px;
  }
  .page-about .about-ethos .pcard h3{
    margin:0;
    font-size:1.05rem;
  }
  .page-about .about-ethos .pcard p{
    margin-top:10px;
    padding-top:9px;
    font-size:.64rem;
    line-height:1.4;
  }

  /* About statistics: two rows instead of four full-width panels. */
  .page-about .about-stats .section-head h2{
    margin-top:8px;
    font-size:1.8rem;
  }
  .page-about .about-stats .cardgrid.c3[style]{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px;
  }
  .page-about .about-stats .pcard{
    min-height:104px;
    padding:15px 10px;
  }
  .page-about .about-stats .pcard > div{
    font-size:1.5rem !important;
  }
  .page-about .about-stats .pcard p{
    margin-top:4px !important;
    font-size:.64rem;
    line-height:1.35;
  }
}

@media (max-width:350px){
  .page-programmes .programme-grid{ grid-template-columns:1fr; }
  .page-programmes .programme-card{ min-height:86px; }
}

/* Mobile scroll reveal: sections and card groups rise gently into place.
   Motion remains disabled for people who request reduced motion. */
@media (max-width:720px) and (prefers-reduced-motion:no-preference){
  body [data-reveal],
  body .mobile-rise{
    opacity:0 !important;
    transform:translateY(20px) !important;
    transition:
      opacity .52s ease,
      transform .52s cubic-bezier(.2,.72,.3,1) !important;
    will-change:opacity,transform;
  }
  body [data-reveal].in-view,
  body .mobile-rise.in-view{
    opacity:1 !important;
    transform:translateY(0) !important;
  }
  .page-home .services .svc-card:nth-child(2){ transition-delay:70ms !important; }
  .page-home .services .svc-card:nth-child(3){ transition-delay:140ms !important; }
}

@media (max-width:720px) and (prefers-reduced-motion:reduce){
  body [data-reveal],
  body .mobile-rise{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* The three-pillar section reveals as one editorial sequence on larger screens. */
@media (min-width:721px) and (prefers-reduced-motion:no-preference){
  .page-home .services-head[data-reveal]{
    transform:translateY(24px);
    transition:
      opacity .62s ease,
      transform .62s cubic-bezier(.2,.72,.3,1);
  }
  .page-home .services .svc-card[data-reveal]{
    transform:translateY(28px);
    transition:
      opacity .58s ease,
      transform .58s cubic-bezier(.2,.72,.3,1),
      background-color .22s ease,
      color .22s ease,
      box-shadow .22s ease;
  }
  .page-home .services .svc-card:nth-child(2){ transition-delay:80ms; }
  .page-home .services .svc-card:nth-child(3){ transition-delay:160ms; }
  .page-home .services-head[data-reveal].in-view,
  .page-home .services .svc-card[data-reveal].in-view{
    transform:translateY(0);
  }
}

/* Keep the completed reveal state from swallowing the pillar-card hover lift. */
@media (min-width:721px) and (hover:hover){
  .page-home .services .svc-card[data-reveal].in-view:hover,
  .page-home .services .svc-card[data-reveal].in-view:focus-within{
    transform:translateY(-10px);
  }
}
