
/* ============ Tokens ============ */
:root{
  color-scheme:light;
  --navy:#0A1626; --navy-2:#122036; --navy-line:#2A3A52;
  --white:#FFFFFF; --stone:#FDFBF9; --line:#E5E2DD;
  --ink:#0A1626; --muted:#5B6270; --on-navy:#DCE2E9;
  --rose:#8C4E4F; --blush:#F6B8B4; --blush-50:#FCEEED;
  --sans:'Archivo', 'Helvetica Neue', 'Segoe UI', Arial, sans-serif;
  --serif:'Newsreader', Georgia, 'Times New Roman', serif;
  --t-display:clamp(2.75rem, 1.9rem + 2.9vw, 4.5rem);
  --t-h2:clamp(2rem, 1.55rem + 1.6vw, 3.125rem);
  --t-h3:clamp(1.375rem, 1.22rem + .55vw, 1.75rem);
  --t-lead:clamp(1.125rem, 1.05rem + .3vw, 1.3125rem);
  --t-body:1.0625rem;
  --t-small:.9375rem;
  --gutter:clamp(20px, 4.5vw, 64px);
  --max:1320px;
  --sec:clamp(96px, 11vw, 168px);
  --r:4px;
  --header-h:80px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:88px;}
body{background:var(--white); color:var(--ink); font-family:var(--sans); font-size:var(--t-body); line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:clip;}
img,video,svg{display:block; max-width:100%;}
img{height:auto;}
a{color:inherit; text-decoration:none;}
button,input,select,textarea{font:inherit; color:inherit;}
:focus-visible{outline:2px solid var(--navy); outline-offset:3px;}
.dark :focus-visible,.hero :focus-visible,.foot :focus-visible{outline-color:var(--blush);}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important; transition:none !important;} html{scroll-behavior:auto;}}
.skip{position:absolute; left:12px; top:-80px; z-index:100; background:var(--navy); color:#fff; padding:12px 18px; font-weight:600; border-radius:var(--r);}
.skip:focus{top:12px;}
.wrap{width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gutter);}
.dark{background:var(--navy); color:#fff;}

/* ============ Type ============ */
h1,h2,h3,h4{font-family:var(--sans); font-weight:600; letter-spacing:-.015em; text-wrap:balance; color:inherit;}
h1{font-size:var(--t-display); line-height:1.04; letter-spacing:-.025em;}
h2{font-size:var(--t-h2); line-height:1.08; letter-spacing:-.02em;}
h3{font-size:var(--t-h3); line-height:1.2;}
h4{font-size:1.125rem; line-height:1.35; letter-spacing:-.005em;}
h1 em,h2 em{font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:-.005em; font-size:1.06em; color:var(--rose);}
.dark h2 em,.hero h1 em{color:var(--blush);}
.eyebrow{display:block; font-size:.8125rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--rose);}
.dark .eyebrow,.foot .eyebrow{color:var(--blush);}
.lead{font-size:var(--t-lead); line-height:1.55; color:var(--muted);}
.dark .lead{color:var(--on-navy);}

/* ============ Actions ============ */
.i-arrow{width:16px; height:16px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease);}
.btn{display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:0 18px 0 22px; border-radius:var(--r); border:0; background:var(--rose); color:#fff; font-size:.9375rem; font-weight:600; letter-spacing:.01em; white-space:nowrap; cursor:pointer; transition:background-color .25s ease;}
.btn:hover{background:var(--navy);}
.btn:hover .i-arrow{transform:translateX(3px);}
.dark .btn,.hero .btn,.foot .btn{background:var(--blush); color:var(--navy);}
.dark .btn:hover,.hero .btn:hover,.foot .btn:hover{background:#fff;}
.link{display:inline-flex; align-items:center; gap:8px; position:relative; padding-block:6px; font-size:.9375rem; font-weight:600; color:var(--navy);}
.link::after{content:""; position:absolute; left:0; right:24px; bottom:2px; height:1px; background:currentColor; transform-origin:right; transition:transform .35s var(--ease);}
.link:hover::after{transform:scaleX(0);}
.link:hover .i-arrow{transform:translateX(3px);}
.link.out:hover .i-arrow{transform:translate(2px,-2px);}
.dark .link,.hero .link{color:#fff;}

/* ============ Header ============ */
.site{position:fixed; inset:0 0 auto 0; z-index:50; padding-top:env(safe-area-inset-top,0px); border-bottom:1px solid transparent; transition:background-color .35s ease, border-color .35s ease;}
.site::before{content:""; position:absolute; inset:0 0 -56px 0; z-index:-1; pointer-events:none; background:linear-gradient(180deg, rgba(51,29,50,.55), rgba(51,29,50,0)); transition:opacity .35s ease;}
.bar{display:flex; align-items:center; gap:24px; min-height:var(--header-h);}
.brand{position:relative; flex-shrink:0; margin-right:auto;}
.brand img{height:48px; width:auto; transition:opacity .3s ease;}
.brand .on-paper{position:absolute; inset:0 auto auto 0; opacity:0;}
.primary{display:none; align-items:center; gap:clamp(20px,2.4vw,36px); list-style:none; color:#fff;}
.primary > li{position:relative;}
.primary a,.primary button{display:inline-flex; align-items:center; gap:6px; min-height:44px; background:none; border:0; font-size:.9375rem; font-weight:500; cursor:pointer; opacity:.94;}
.primary a:hover,.primary button:hover{opacity:1;}
.primary .quiet{font-weight:400; opacity:.78;}
.primary .chev{width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .25s ease;}
.primary button[aria-expanded="true"] .chev{transform:rotate(180deg);}
.drop{position:absolute; top:calc(100% + 6px); left:-20px; min-width:230px; padding:10px; background:#fff; color:var(--navy); border:1px solid var(--line); border-radius:var(--r); box-shadow:0 12px 32px rgba(51,29,50,.12); opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .2s ease, transform .2s ease, visibility 0s .2s;}
.drop.open{opacity:1; visibility:visible; transform:none; transition:opacity .2s ease, transform .2s ease;}
.drop a{display:flex; width:100%; min-height:40px; align-items:center; padding:0 12px; border-radius:3px; opacity:1; font-weight:500;}
.drop a:hover{background:var(--stone);}
.bar .btn{min-height:42px; padding:0 14px 0 18px; font-size:.875rem;}
.menu-btn{display:inline-flex; align-items:center; gap:10px; min-height:44px; background:none; border:0; color:#fff; font-size:.9375rem; font-weight:600; cursor:pointer;}
.menu-btn .bars{position:relative; width:18px; height:10px;}
.menu-btn .bars::before,.menu-btn .bars::after{content:""; position:absolute; left:0; right:0; height:1.5px; background:currentColor; transition:transform .3s var(--ease), top .3s var(--ease);}
.menu-btn .bars::before{top:1px;} .menu-btn .bars::after{top:8px;}
.menu-btn[aria-expanded="true"] .bars::before{top:4.5px; transform:rotate(45deg);}
.menu-btn[aria-expanded="true"] .bars::after{top:4.5px; transform:rotate(-45deg);}
@media(min-width:1080px){.primary{display:flex;} .menu-btn{display:none;} .brand img{height:52px;}}
@media(max-width:639px){.site:not(.solid) .bar .btn{display:none;}}
.site.solid{background:rgba(255,255,255,.98); border-bottom-color:var(--line);}
.site.solid::before{opacity:0;}
.site.solid .brand .on-film{opacity:0;}
.site.solid .brand .on-paper{opacity:1;}
.site.solid .primary,.site.solid .menu-btn{color:var(--navy);}
.site.solid .bar .btn{background:var(--rose); color:#fff;}
.site.solid .bar .btn:hover{background:var(--navy);}
.site:not(.solid) :focus-visible{outline-color:var(--blush);}
.menu{background:#fff; border-top:1px solid var(--line); max-height:calc(100svh - var(--header-h)); overflow-y:auto;}
.menu .wrap{padding-block:16px 32px; display:grid; gap:28px;}
.menu .grp .eyebrow{margin-bottom:6px;}
.menu .grp a{display:flex; align-items:center; min-height:50px; border-bottom:1px solid var(--line); font-size:1.25rem; font-weight:600; color:var(--navy);}
.menu .btn{justify-content:center; font-size:1rem; min-height:52px;}
@media(min-width:1080px){.menu{display:none !important;}}

/* ============ 01 Hero ============ */
.hero{position:relative; min-height:max(640px, 100svh); display:flex; align-items:center; background:var(--navy); color:#fff; overflow:hidden;}
.film{position:absolute; inset:0;}
.film video{width:100%; height:100%; object-fit:cover; object-position:50% 40%;}
.film::after{content:""; position:absolute; inset:0; pointer-events:none;
  --edge:calc((100vw - min(100vw, var(--max))) / 2 + var(--gutter) + min(46vw, 660px));
  background:linear-gradient(90deg, rgba(51,29,50,.86) 0%, rgba(51,29,50,.74) calc(var(--edge) * .6), rgba(51,29,50,.3) var(--edge), rgba(51,29,50,0) calc(var(--edge) + 14vw));}
.hero-body{position:relative; z-index:1; padding-block:calc(var(--header-h) + 40px) 96px;}
.hero-copy{max-width:min(50vw, 680px);}
.hero h1{font-size:clamp(2.75rem, 1.9rem + 2.6vw, 4.125rem);}
.hero .support{max-width:31em;}
.hero .eyebrow{color:var(--blush); margin-bottom:24px;}
.hero .support{margin-top:24px; max-width:32em; font-size:var(--t-lead); line-height:1.55; color:rgba(255,255,255,.86);}
.hero-cta{display:flex; flex-wrap:wrap; align-items:center; gap:14px 32px; margin-top:36px;}
.hero-meta{display:flex; flex-wrap:wrap; gap:6px 28px; margin-top:48px; padding-top:18px; border-top:1px solid rgba(255,255,255,.24); font-size:.875rem; font-weight:500; color:rgba(255,255,255,.8);}
.hero-meta b{font-weight:600; color:#fff;}
.vid-btn{position:absolute; z-index:2; right:var(--gutter); bottom:28px; display:inline-flex; align-items:center; min-height:40px; padding:0 14px; border-radius:var(--r); border:1px solid rgba(255,255,255,.45); background:rgba(51,29,50,.45); color:#fff; font-size:.8125rem; font-weight:600; cursor:pointer;}
.vid-btn:hover{background:rgba(51,29,50,.8);}
.hero-body > *{animation:rise 1s var(--ease) both;}
@keyframes rise{from{opacity:.001; transform:translateY(12px);} to{opacity:1; transform:none;}}
@media(max-width:1079px){.hero-copy{max-width:min(78vw, 620px);}}
@media(max-width:639px){
  .hero{align-items:flex-end; min-height:100svh;}
  .film::after{background:linear-gradient(0deg, rgba(51,29,50,.96) 0%, rgba(51,29,50,.86) 38%, rgba(51,29,50,.3) 60%, rgba(51,29,50,0) 74%);}
  .hero-copy{max-width:none;}
  .hero-body{padding-block:0 28px;}
  .hero .eyebrow{margin-bottom:12px;}
  .hero h1{font-size:2.5rem;}
  .hero .support{margin-top:14px; font-size:1.0625rem;}
  .hero-cta{margin-top:22px; gap:12px 24px;}
  .hero-meta{margin-top:22px; padding-top:12px; font-size:.8125rem; gap:4px 18px;}
  .vid-btn{top:calc(var(--header-h) + 10px); bottom:auto;}
}

/* ============ 02 Trust strip ============ */
.trust{border-bottom:1px solid var(--line);}
.trust ul{list-style:none; display:grid; grid-template-columns:1fr 1fr;}
.trust li{display:flex; align-items:center; gap:12px; min-height:84px; padding:18px 16px 18px 0; font-size:.9375rem; font-weight:600; border-top:1px solid var(--line);}
.trust li:nth-child(-n+2){border-top:0;}
.trust svg{width:22px; height:22px; flex-shrink:0; fill:none; stroke:var(--rose); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;}
@media(min-width:900px){
  .trust ul{grid-template-columns:repeat(5,1fr);}
  .trust li{border-top:0; padding:0 20px; min-height:104px; border-left:1px solid var(--line);}
  .trust li:first-child{border-left:0; padding-left:0;}
}

/* ============ 03 Why AAXA ============ */
.why{padding-block:var(--sec);}
.why-grid{display:grid; gap:48px;}
.why h2{font-size:clamp(2.25rem, 1.5rem + 2.6vw, 4rem); line-height:1.04; max-width:13em; margin-top:22px;}
.why .lead{margin-top:28px; max-width:30em;}
.why-photo img{width:100%; aspect-ratio:4 / 5; object-fit:cover; border-radius:2px;}
.why-photo figcaption{margin-top:12px; font-size:var(--t-small); color:var(--muted);}
.principles{list-style:none; margin-top:56px; border-top:1px solid var(--navy);}
.principles li{display:grid; grid-template-columns:48px 1fr; gap:4px 16px; padding-block:26px; border-bottom:1px solid var(--line);}
.principles .n{font-size:.875rem; font-weight:600; color:var(--rose); font-variant-numeric:tabular-nums; padding-top:6px;}
.principles h3{font-size:1.5rem; letter-spacing:-.01em;}
.principles p{grid-column:2; color:var(--muted); font-size:1.0625rem; max-width:34em;}
@media(min-width:760px){.principles li{grid-template-columns:64px minmax(0,1fr) minmax(0,1.6fr); align-items:baseline;} .principles p{grid-column:3;}}
@media(min-width:1080px){
  .why-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr); column-gap:clamp(48px,6vw,96px); align-items:start;}
  .why-photo{margin-top:160px; max-width:440px; justify-self:end;}
}


/* ============ 04 Delivery models ============ */
.delivery{background:var(--stone); padding-block:var(--sec);}
.dm-head{display:grid; gap:20px; align-items:end;}
.dm-head h2{margin-top:18px; max-width:14em;}
@media(min-width:1080px){.dm-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);}}
.dm{margin-top:clamp(48px,6vw,80px); border-top:1px solid var(--navy);}
.dm-cols{display:none;}
.dm ol{list-style:none;}
.dm-row{display:grid; grid-template-columns:1fr; gap:14px; padding-block:28px; border-bottom:1px solid var(--line); transition:background-color .3s ease;}
.dm-row .top{display:flex; align-items:baseline; gap:14px;}
.dm-row .n{font-size:.875rem; font-weight:600; color:var(--rose); font-variant-numeric:tabular-nums;}
.dm-row h3{font-size:1.5rem;}
.dm-row .what{color:var(--muted); font-size:1rem;}
.dm-row dl{display:grid; grid-template-columns:1fr 1fr; gap:14px 20px;}
.dm-row dl > div{min-width:0;}
.dm-row dt{font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}
.dm-row dd{margin-top:3px; font-size:1rem; line-height:1.45;}
.dm-row .art img{width:100%; aspect-ratio:960 / 408; object-fit:cover; border-radius:var(--r);}
.dm-row .art{order:-1;}
@media(min-width:1000px){
  .dm-cols,.dm-row{grid-template-columns:130px minmax(0,1.5fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr) 176px; column-gap:28px;}
  .dm-cols{display:grid; padding-block:14px; border-bottom:1px solid var(--line); font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}
  .dm-row{align-items:center; padding-block:24px;}
  .dm-row:hover{background:rgba(255,255,255,.6);}
  .dm-row .art{order:0;}
  .dm-row .top{flex-direction:column; gap:6px;}
  .dm-row dl{display:contents;}
  .dm-row dt{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
  .dm-row dd{margin:0;}
  .dm-row .act{justify-self:end; white-space:nowrap;}
}

/* ============ 05 Curriculum ============ */
.curric{padding-block:var(--sec);}
.cu-head h2{margin-top:18px; max-width:15em;}
.cu-head .lead{margin-top:20px; max-width:34em;}
.paths{display:grid; gap:64px; margin-top:clamp(56px,7vw,96px);}
.path figure img{width:100%; aspect-ratio:16 / 10; object-fit:cover; border-radius:2px;}
#construction figure img{object-position:30% 50%;}
.path .tag{margin-top:26px;}
.path h3{margin-top:10px; font-size:clamp(1.75rem,1.4rem + 1.1vw,2.375rem); letter-spacing:-.02em;}
.path h3 span{display:block; margin-top:4px; font-size:1.0625rem; font-weight:500; letter-spacing:0; color:var(--muted);}
.path dl{margin-top:26px; border-top:1px solid var(--navy);}
.path dl > div{display:grid; grid-template-columns:1fr; gap:4px; padding-block:16px; border-bottom:1px solid var(--line);}
.path dt{font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);}
.path dd{font-size:1rem;}
.path .dest dd{font-weight:600; color:var(--rose);}
@media(min-width:640px){.path dl > div{grid-template-columns:170px 1fr; gap:20px;}}
@media(min-width:1000px){.paths{grid-template-columns:1fr 1fr; column-gap:clamp(40px,5vw,80px);}}

/* ============ 06 Progression ============ */
.prog{padding-block:var(--sec);}
.prog h2{margin-top:18px; max-width:14em;}
.prog .lead{margin-top:20px; max-width:32em;}
.journey{list-style:none; position:relative; display:grid; margin-top:clamp(64px,8vw,112px);}
.journey li{position:relative; padding:0 0 44px 76px;}
.journey li::before{content:""; position:absolute; left:27px; top:56px; bottom:0; width:1px; background:rgba(255,255,255,.28);}
.journey li:last-child{padding-bottom:0;} .journey li:last-child::before{display:none;}
.journey .num{position:absolute; left:0; top:0; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; border:1px solid rgba(255,255,255,.35); font-size:1rem; font-weight:600; font-variant-numeric:tabular-nums;}
.journey li:last-child .num{background:var(--blush); border-color:var(--blush); color:var(--navy);}
.journey .stage{font-size:.8125rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--blush);}
.journey h3{margin-top:8px; font-size:clamp(1.5rem,1.2rem + 1vw,2.125rem); letter-spacing:-.02em;}
.journey p{margin-top:8px; color:var(--on-navy); font-size:1rem; max-width:22em;}
.phase{display:none;}
@media(min-width:1000px){
  .journey{grid-template-columns:repeat(4,1fr); column-gap:32px;}
  .journey li{padding:88px 24px 0 0;}
  .journey li::before{left:64px; right:-32px; top:28px; bottom:auto; width:auto; height:1px;}
  .journey li:last-child::before{display:none;}
  .phase{display:grid; grid-template-columns:repeat(4,1fr); column-gap:32px; margin-top:56px;}
  .phase span{grid-column:span 2; padding-top:14px; border-top:1px solid var(--blush); font-size:.875rem; font-weight:600; color:#fff;}
  .phase span:last-child{border-top-color:rgba(255,255,255,.4);}
  .phase b{display:block; font-weight:400; color:var(--on-navy);}
}

/* ============ 07 Assurance ============ */
.assure{padding-block:var(--sec);}
.as-grid{display:grid; gap:48px;}
.as-head h2{margin-top:18px; max-width:12em;}
.as-head .lead{margin-top:20px; max-width:28em;}
.as-head figure{margin-top:40px;}
.as-head img{width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:2px;}
.as-head figcaption{margin-top:10px; font-size:var(--t-small); color:var(--muted);}
.ledger{border-top:1px solid var(--navy);}
.ledger > div{display:grid; grid-template-columns:1fr; gap:6px; padding-block:24px; border-bottom:1px solid var(--line); scroll-margin-top:96px;}
.ledger dt{font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--rose); padding-top:4px;}
.ledger dd h3{font-size:1.1875rem; letter-spacing:-.005em;}
.ledger dd p{margin-top:6px; color:var(--muted); font-size:1rem; max-width:36em;}
.liaison{margin-top:32px; padding:22px 24px; background:var(--blush-50); border-radius:var(--r);}
.liaison .eyebrow{margin-bottom:6px;}
.liaison a{font-weight:600; text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(126,74,79,.4);}
@media(min-width:760px){.ledger > div{grid-template-columns:180px 1fr; gap:24px;}}
@media(min-width:1080px){.as-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px); align-items:start;} .as-head{position:sticky; top:120px;}}

/* ============ 08 Apprenticeships ============ */
.appr{background:var(--stone); display:grid;}
.appr-photo{margin:0;}
.appr-photo img{width:100%; aspect-ratio:5 / 4; object-fit:cover; object-position:40% 45%;}
.appr-body{padding:clamp(56px,7vw,120px) var(--gutter);}
.appr-body h2{margin-top:18px; max-width:12em;}
.appr-body .lead{margin-top:18px; max-width:30em;}
.bridge{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:28px; font-size:.9375rem; font-weight:600;}
.bridge span{padding:6px 14px; border:1px solid var(--line); border-radius:999px; background:#fff;}
.bridge svg{width:28px; height:10px; fill:none; stroke:var(--rose); stroke-width:1.5;}
.tracks{display:grid; margin-top:40px;}
.tracks > div{padding-block:26px; border-top:1px solid var(--line);}
.tracks h3{margin-top:8px; font-size:1.375rem;}
.tracks p{margin-top:8px; color:var(--muted); font-size:1rem; max-width:30em;}
.tracks .link{margin-top:12px;}
@media(min-width:1080px){
  .appr{grid-template-columns:minmax(0,5fr) minmax(0,6fr);}
  .appr{align-items:center;}
  .appr-photo img{aspect-ratio:5 / 4;}
  .appr-body{padding:var(--sec) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))) var(--sec) clamp(56px,6vw,104px);}
  .tracks{grid-template-columns:1fr 1fr; column-gap:40px;}
}

/* ============ Audience routes ============ */
.routes{padding-block:clamp(72px,8vw,112px);}
.routes h2{font-size:clamp(1.75rem,1.4rem + 1.1vw,2.5rem);}
.routes ul{list-style:none; margin-top:36px; border-top:1px solid var(--navy);}
.routes a{display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; padding-block:22px; border-bottom:1px solid var(--line); transition:padding .3s var(--ease);}
.routes a:hover{padding-left:10px;}
.routes .who{font-size:clamp(1.25rem,1.1rem + .6vw,1.625rem); font-weight:600; letter-spacing:-.01em;}
.routes .to{display:inline-flex; align-items:center; gap:10px; font-size:.9375rem; font-weight:600; color:var(--rose);}
.routes a:hover .i-arrow{transform:translateX(4px);}

/* ============ 09 Referral ============ */
.refer{padding-block:var(--sec);}
.rf-grid{display:grid; gap:56px;}
.rf-copy h2{margin-top:18px; font-size:clamp(2.5rem,1.7rem + 2.8vw,4.25rem);}
.rf-copy .lead{margin-top:22px; max-width:28em;}
.steps{list-style:none; counter-reset:s; margin-top:40px; border-top:1px solid var(--navy-line);}
.steps li{counter-increment:s; display:grid; grid-template-columns:44px 1fr; gap:2px 12px; padding-block:18px; border-bottom:1px solid var(--navy-line);}
.steps li::before{content:counter(s, decimal-leading-zero); font-size:.875rem; font-weight:600; color:var(--blush); font-variant-numeric:tabular-nums; padding-top:3px;}
.steps b{display:block; font-weight:600;}
.steps span{color:var(--on-navy); font-size:1rem;}
.direct{margin-top:32px; display:grid; gap:6px; font-size:1rem; color:var(--on-navy);}
.direct a{width:fit-content; color:#fff; font-size:1.125rem; font-weight:600; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(255,255,255,.35);}
.direct a:hover{text-decoration-color:#fff;}
.parents{margin-top:24px; padding-left:14px; border-left:2px solid var(--blush); color:var(--on-navy); font-size:1rem; max-width:32em;}
.parents b{color:#fff;}
.form{background:#fff; color:var(--ink); border-radius:var(--r); padding:clamp(24px,3.5vw,48px);}
.form h3{font-size:1.625rem;}
.form .req{margin-top:6px; font-size:var(--t-small); color:var(--muted);}
.fset{border:0; margin-top:28px;}
.fset legend{font-size:.75rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--rose); margin-bottom:14px;}
.fields{display:grid; gap:18px;}
.two{display:grid; gap:18px;}
@media(min-width:640px){.two{grid-template-columns:1fr 1fr;}}
.field label{display:block; margin-bottom:7px; font-size:.9375rem; font-weight:600;}
.field input,.field select,.field textarea{width:100%; min-height:50px; padding:12px 14px; background:#fff; border:1px solid #8F7F8C; border-radius:var(--r); font-size:1rem;}
.field textarea{min-height:110px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--navy); outline-offset:1px; border-color:var(--navy);}
.form .btn{margin-top:26px; min-height:52px; font-size:1rem; background:var(--rose); color:#fff;}
.form .btn:hover{background:var(--navy);}
.status{margin-top:16px; padding:14px 16px; border-radius:var(--r); background:var(--blush-50); font-size:1rem;}
@media(min-width:1080px){.rf-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px);}}

/* ============ 10 Footer ============ */
.foot{background:#0A1524; color:var(--on-navy); padding-block:clamp(72px,8vw,120px) calc(28px + env(safe-area-inset-bottom,0px));}
.foot-top{display:grid; gap:48px; padding-bottom:56px; border-bottom:1px solid var(--navy-line);}
.contact h2{margin-top:14px; color:#fff; font-size:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);}
.contact address{margin-top:20px; font-style:normal; font-size:1.0625rem; line-height:1.6;}
.contact .lines{margin-top:18px; display:grid; gap:6px; font-size:1.25rem; font-weight:600;}
.contact .lines a{color:#fff; width:fit-content; border-bottom:1px solid rgba(255,255,255,.3);}
.contact .lines a:hover{border-bottom-color:#fff;}
.contact .btn{margin-top:28px;}
.cols{display:grid; grid-template-columns:1fr 1fr; gap:32px 24px;}
.cols nav{display:flex; flex-direction:column; gap:8px;}
.cols .eyebrow{margin-bottom:8px;}
.cols a{width:fit-content; color:var(--on-navy); font-size:1rem; transition:color .2s ease;}
.cols a:hover{color:#fff;}
.foot-base{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 32px; padding-top:28px; font-size:.875rem;}
.foot-base img{height:44px; width:auto;}
.foot-base nav{display:flex; flex-wrap:wrap; gap:6px 22px;}
.foot-base a:hover{color:#fff;}
@media(min-width:1000px){.foot-top{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:80px;} .cols{grid-template-columns:repeat(4,1fr);}}

/* Mobile referral dock */
.dock{position:fixed; inset:auto 0 0 0; z-index:45; padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--line); transform:translateY(110%); transition:transform .4s var(--ease);}
.dock.show{transform:none;}
.dock .btn{width:100%; justify-content:center;}
@media(min-width:1080px){.dock{display:none;}}

/* Reveal: only blocks that start below the first screen wait */
.wait{opacity:0; transform:translateY(14px);}
.shown{opacity:1; transform:none; transition:opacity .8s ease, transform .8s var(--ease);}

/* ===== Typographic personality ===== */
/* Expanded caps for the system voice: labels, stage words, data headers */
.eyebrow,.dm-cols,.dm-row dt,.path dt,.ledger dt,.fset legend,.trust li,.hero-meta,.journey .stage,.cols .eyebrow{font-stretch:125%;}
.eyebrow{font-size:.75rem; letter-spacing:.1em; font-weight:650;}
.trust li{font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; font-weight:650; line-height:1.35;}
.hero-meta{font-size:.75rem; letter-spacing:.08em; text-transform:uppercase;}
/* Headlines: bigger, lighter, tighter at scale; weight contrast does the work */
h1,h2{font-weight:500; letter-spacing:-.03em;}
h2{font-size:clamp(2.25rem, 1.6rem + 2.2vw, 3.75rem); line-height:1.02;}
.why h2{font-size:clamp(2.75rem, 1.6rem + 3.8vw, 5.5rem); font-weight:400; line-height:.98; letter-spacing:-.04em;}
.hero h1{font-weight:500; letter-spacing:-.035em; line-height:.98;}
h1 em,h2 em{font-weight:400; letter-spacing:-.02em;}
/* Section numbers as a quiet editorial device */
[data-no]{position:relative;}
.sec-no{display:block; font-size:clamp(4.5rem, 3rem + 5vw, 9rem); font-weight:200; font-stretch:125%; line-height:.8; letter-spacing:-.04em; color:transparent; -webkit-text-stroke:1px #BDB6AC; margin-bottom:20px; user-select:none;}
.dark .sec-no{-webkit-text-stroke-color:rgba(255,255,255,.3);}
/* Journey: stage words become the headline */
.journey .stage{font-size:clamp(1.375rem,1.1rem + .9vw,2rem); font-weight:700; letter-spacing:.01em; line-height:1;}
.journey h3{margin-top:12px; font-size:1.125rem; font-weight:600; letter-spacing:-.005em; color:#fff;}
/* Routes: light lead-in, strong role */
.routes h2{font-size:clamp(2rem,1.5rem + 1.6vw,3rem);}
.routes .who{font-size:clamp(1.375rem,1.1rem + 1vw,2.25rem); font-weight:600; letter-spacing:-.025em;}
.routes .pre{font-weight:300; color:var(--muted);}
/* Referral headline gets the scale moment */
.rf-copy h2{font-size:clamp(3rem,1.8rem + 4.2vw,6rem); font-weight:400; letter-spacing:-.045em; line-height:.95;}
.contact h2{font-weight:400; letter-spacing:-.03em;}
.principles h3,.path h3,.dm-row h3{letter-spacing:-.025em;}
.path h3{font-weight:500;}

/* ===== Transitions ===== */
.i-arrow{transition:transform .35s var(--ease);}
/* photos reveal with a wipe, then settle */
.wipe{clip-path:inset(0 0 100% 0); transform:scale(1.06);}
.wiped{clip-path:inset(0 0 0 0); transform:none; transition:clip-path 1.1s var(--ease), transform 1.4s var(--ease);}
.path figure,.why-photo,.as-head figure,.appr-photo{overflow:hidden;}
.path figure img,.appr-photo img,.as-head img{transition:transform .9s var(--ease);}
.path:hover figure img,.appr:hover .appr-photo img{transform:scale(1.035);}
/* journey line draws across when in view */
.journey li::before{transform-origin:left top; transition:transform 1s var(--ease) .2s;}
.journey.pending li::before{transform:scaleX(0);}
@media(max-width:999px){.journey.pending li::before{transform:scaleY(0);}}
/* hero stagger on load */
.hero-copy > *{animation:rise 1s var(--ease) both;}
.hero-copy > *:nth-child(2){animation-delay:.08s;} .hero-copy > *:nth-child(3){animation-delay:.18s;} .hero-copy > *:nth-child(4){animation-delay:.28s;} .hero-copy > *:nth-child(5){animation-delay:.38s;}
.hero-body > *{animation:none;}
/* rows slide slightly on hover */
.dm-row,.ledger > div{transition:background-color .3s ease, padding .35s var(--ease);}
.ledger > div:hover{padding-left:8px;}
@media (prefers-reduced-motion:reduce){.wipe{clip-path:none; transform:none;} .journey.pending li::before{transform:none;}}

/* ===== 02 Delivery: numeral-led header ===== */
.dm-head2{display:grid; gap:40px; align-items:end;}
.big4{font-size:clamp(8rem, 4.5rem + 11vw, 16rem); font-weight:200; font-stretch:125%; line-height:.72; letter-spacing:-.06em; color:var(--navy); margin-top:18px;}
.dm-type h2{margin-top:10px; max-width:11em; font-weight:400;}
.dm-type .lead{margin-top:22px; max-width:28em;}
.dm-photo{overflow:hidden;}
.dm-photo img{width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:2px;}
.dm-photo figcaption{display:flex; gap:12px; margin-top:12px; font-size:var(--t-small); color:var(--muted);}
.dm-photo figcaption span{font-size:.75rem; font-weight:650; font-stretch:125%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose); padding-top:2px;}
@media(min-width:1080px){.dm-head2{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px);} .dm-photo{margin-right:calc(-1 * var(--gutter));}}
@media(min-width:1440px){.dm-photo{margin-right:calc((var(--max) - 100vw) / 2 - var(--gutter));}}
/* ===== 03 Curriculum: pathway names as type ===== */
.cu-head h2{font-size:clamp(2.75rem,1.6rem + 3.8vw,5.5rem); font-weight:400; letter-spacing:-.04em; line-height:.98;}
.path h3{margin-top:14px;}
.path .pw{display:block; font-size:clamp(2.25rem, 1.1rem + 3vw, 3.75rem); font-weight:700; font-stretch:125%; text-transform:uppercase; letter-spacing:-.01em; line-height:.95; color:var(--navy);}
.path .sub{display:block; margin-top:10px; font-size:1.0625rem; font-weight:500; letter-spacing:0; color:var(--muted);}
.path .sub i{font-family:var(--serif); font-style:italic; color:var(--rose); font-size:1.15em;}
.film-fig video{width:100%; aspect-ratio:16 / 10; object-fit:cover; border-radius:2px; display:block; background:var(--stone);}
@media(max-width:420px){.path .pw{font-size:2rem;}}

/* ===================== v25 refinement ===================== */
.vh{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
:root{--mo:cubic-bezier(.22,.8,.24,1); --t-rev:.65s; --t-ui:.22s;}
/* Voice 1 — display: Archivo, natural width, semibold */
h1,h2{font-weight:600; font-stretch:100%; letter-spacing:-.035em;}
.why h2,.cu-head h2,.rf-copy h2,.dm-type h2,.contact h2{font-weight:600;}
.why h2,.cu-head h2{font-size:clamp(2.6rem, 1.6rem + 3.4vw, 5rem); letter-spacing:-.045em; line-height:1;}
.rf-copy h2{font-size:clamp(2.8rem,1.8rem + 3.6vw,5.25rem); letter-spacing:-.045em;}
.path h3,.journey h3,.principles h3,.dm-row h3{font-weight:600;}
/* Voice 2 — Newsreader italic, 1–3 words only */
h1 em,h2 em{font-weight:400; font-stretch:100%;}
/* Voice 3 — uppercase utility: labels, numbers, navigation, metadata */
.eyebrow,.primary a,.primary button,.trust li,.hero-meta,.dm-cols,.dm-row dt,.path dt,.ledger dt,.fset legend,.bridge b{font-stretch:112%; text-transform:uppercase; letter-spacing:.1em; font-weight:650;}
.primary a,.primary button{font-size:.75rem;}
.drop a{text-transform:none; letter-spacing:0; font-stretch:100%; font-size:.9375rem;}
.eyebrow.ut span{opacity:.6; margin:0 .35em;}

/* Section mark: "01 / WHY AAXA" */
.sec-mark{display:flex; align-items:flex-end; gap:12px; margin-bottom:22px;}
.sec-mark .sec-no{margin:0;}
.sec-mark .eyebrow{padding-bottom:.35em; white-space:nowrap;}
.sec-mark .eyebrow > span{color:var(--muted); font-weight:400;}
.dark .sec-mark .eyebrow > span{color:var(--on-navy);}
.why h2,.cu-head h2,.dm-type h2,.prog h2,.as-head h2,.appr-body h2,.rf-copy h2{margin-top:0;}
.dm-type .big4{margin-top:4px;}

/* Hero: line motif in the meta row */
.hero-meta{align-items:center; gap:10px 16px;}
.hero-meta b{margin-right:.5em;}
.motif{width:clamp(48px,7vw,96px); height:10px; fill:none; stroke:var(--blush); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; overflow:visible;}
/* Hero choreography: eyebrow → line 1 → line 2 → italic → copy → CTAs → meta */
.hero h1 .ln{display:block; overflow:hidden; padding-bottom:.1em; margin-bottom:-.1em;}
.hero h1 .ln > span,.hero h1 em{display:inline-block;}
.hero-copy > *{animation:none;}
@keyframes lineUp{from{transform:translateY(105%);} to{transform:none;}}
@keyframes fadeUp{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@keyframes emIn{from{opacity:0; transform:translateY(.35em);} to{opacity:1; transform:none;}}
@keyframes clipIn{from{clip-path:inset(0 100% 0 0);} to{clip-path:inset(0 0 0 0);}}
.hero .eyebrow{animation:fadeUp .55s var(--mo) .05s both;}
.hero h1 .ln:nth-child(1) > span{animation:lineUp var(--t-rev) var(--mo) .15s both;}
.hero h1 .ln:nth-child(2) > span{animation:lineUp var(--t-rev) var(--mo) .25s both;}
.hero h1 em{animation:emIn .7s var(--mo) .45s both;}
.hero .support{animation:fadeUp .6s var(--mo) .58s both;}
.hero-cta{animation:fadeUp .6s var(--mo) .68s both;}
.hero-meta{animation:fadeUp .6s var(--mo) .8s both;}
.hero-meta .motif{animation:clipIn .7s var(--mo) 1s both;}

/* Trust strip: four plain statements, no icons */
.trust ul{grid-template-columns:1fr 1fr;}
.trust li{min-height:72px; gap:8px; color:var(--navy);}
.trust li b{color:var(--rose); font-weight:650;}
.trust li:nth-child(-n+2){border-top:0;}
@media(min-width:900px){.trust ul{grid-template-columns:repeat(4,1fr);} .trust li{min-height:92px; padding:0 24px;}}

/* Section head choreography (JS adds .pending only below the fold) */
.shead .sec-no,.shead .sec-mark .eyebrow,.shead h2,.shead h2 em,.shead > .lead,.shead .big4{transition:clip-path var(--t-rev) var(--mo), opacity var(--t-rev) var(--mo), transform var(--t-rev) var(--mo);}
.shead h2 em{display:inline-block;}
.shead.pending .sec-no{clip-path:inset(100% 0 0 0);}
.shead.pending .sec-mark .eyebrow{opacity:0; transform:translateX(-8px);}
.shead.pending .big4{clip-path:inset(100% 0 0 0);}
.shead.pending h2{clip-path:inset(0 0 100% 0); transform:translateY(12px);}
.shead.pending h2 em{opacity:0; transform:translateY(.3em);}
.shead.pending > .lead{opacity:0; transform:translateY(10px);}
.shead .sec-mark .eyebrow{transition-delay:.1s;}
.shead .big4{transition-delay:.08s;}
.shead h2{transition-delay:.18s;}
.shead h2 em{transition-duration:.7s; transition-delay:.42s;}
.shead > .lead{transition-delay:.4s;}
/* Safeguarding: slower and calmer — opacity only */
.shead.calm .sec-no,.shead.calm h2,.shead.calm h2 em,.shead.calm > .lead,.shead.calm .sec-mark .eyebrow{transition:opacity 1s ease; transform:none !important; clip-path:none !important;}
.shead.calm h2{transition-delay:.15s;} .shead.calm > .lead{transition-delay:.3s;}
.shead.calm.pending .sec-no,.shead.calm.pending h2,.shead.calm.pending > .lead{opacity:0;}
.shead.calm.pending h2 em{opacity:1;}
.ledger > div.wait{transform:none;}
.ledger > div.shown{transition:opacity 1s ease;}
.ledger > div:hover{padding-left:0;}

/* Block reveals (delivery rows stagger, etc.) */
.shown{transition:opacity var(--t-rev) var(--mo), transform var(--t-rev) var(--mo);}
/* Curriculum: Beauty and Construction enter from opposite sides */
#beauty.wait{transform:translateX(-36px);}
#construction.wait{transform:translateX(36px);}
.path.shown{transition-duration:.8s;}

/* Progression: horizontal draw ending in an arrow */
.journey .num,.journey .stage,.journey h3,.journey p{transition:opacity .6s var(--mo), transform .6s var(--mo);}
.journey.pending .num{opacity:0; transform:scale(.85);}
.journey.pending .stage,.journey.pending h3,.journey.pending p{opacity:0; transform:translateY(10px);}
.journey li:nth-child(2) > *{transition-delay:.25s;} .journey li:nth-child(3) > *{transition-delay:.5s;} .journey li:nth-child(4) > *{transition-delay:.75s;}
.journey li::before{transition-duration:1.4s; transition-delay:.15s;}
@media(min-width:1000px){
  .journey li:nth-child(3)::after{content:""; position:absolute; top:24px; right:-30px; width:8px; height:8px; border-top:1px solid rgba(255,255,255,.55); border-right:1px solid rgba(255,255,255,.55); transform:rotate(45deg); transition:opacity .4s ease 1.3s;}
  .journey.pending li:nth-child(3)::after{opacity:0;}
}
.journey li:not(:first-child).wait,.journey li.wait{opacity:1; transform:none;}

/* Apprenticeships: pathway as the line motif — a rule draws across each step, arrow at the end */
.bridge{list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 14px; margin-top:32px; font-size:.9375rem; font-weight:600; line-height:1.3;}
.bridge li{position:relative; display:flex; flex-direction:column; gap:4px; padding-top:18px;}
.bridge li b{font-size:.75rem; color:var(--rose);}
.bridge li::after{content:""; position:absolute; left:0; right:6px; top:0; height:1px; background:var(--navy); transform-origin:left; transition:transform .55s var(--mo);}
.bridge li::before{content:""; position:absolute; right:6px; top:-3px; width:6px; height:6px; border-top:1px solid var(--navy); border-right:1px solid var(--navy); transform:rotate(45deg); transition:opacity .25s ease;}
.bridge li:last-child::after{background:var(--rose);} .bridge li:last-child::before{border-color:var(--rose);}
.bridge li:nth-child(1)::before{transition-delay:.45s;}
.bridge li:nth-child(2)::after{transition-delay:.3s;} .bridge li:nth-child(2)::before{transition-delay:.75s;}
.bridge li:nth-child(3)::after{transition-delay:.6s;} .bridge li:nth-child(3)::before{transition-delay:1.05s;}
.bridge.pending li::after{transform:scaleX(0);} .bridge.pending li::before{opacity:0;}

/* Images: parallax ≤16px (desktop), hover 1.03 */
.px img{scale:1.06; translate:0 var(--py,0px); will-change:translate;}
.path:hover figure img,.appr:hover .appr-photo img{transform:scale(1.03);}
.wipe{transform:none;} .wiped{transition:clip-path .9s var(--mo);}

/* Micro-interactions: 180–250ms, arrow travels 5px */
.i-arrow{transition:transform var(--t-ui) var(--mo);}
.btn{transition:background-color var(--t-ui) ease, color var(--t-ui) ease;}
.btn:hover .i-arrow,.link:hover .i-arrow,.routes a:hover .i-arrow{transform:translateX(5px);}
.link.out:hover .i-arrow{transform:translate(4px,-4px);}
.link::after{transition:transform var(--t-ui) var(--mo);}
.routes a{transition:padding var(--t-ui) var(--mo);}

/* Mobile polish */
@media(max-width:639px){
  .sec-mark{gap:10px; margin-bottom:16px;}
  .sec-mark .sec-no{font-size:3.75rem;}
  .hero h1{font-size:2.45rem;}
  .motif{width:40px;}
  .trust li{display:block; min-height:0; padding:16px 12px 16px 0; line-height:1.5;}
  .hero-meta{flex-direction:column; align-items:flex-start; gap:4px;}
  .hero-meta .motif{display:none;}
}

/* Reduced motion: everything visible, nothing moves */
@media (prefers-reduced-motion:reduce){
  .hero *,.shead *,.journey *{animation:none !important;}
  .pending *,.pending{clip-path:none !important; opacity:1 !important; transform:none !important;}
  .journey li::after,.bridge li::after,.bridge li::before{opacity:1 !important; transform:none !important;}
  .journey li:nth-child(3)::after{transform:rotate(45deg) !important;}
  .bridge li::before{transform:rotate(45deg) !important;}
  .px img{translate:none; scale:1;}
}

/* ===================== v26: premium layer ===================== */
/* Delivery models as illustrated cards */
.dm{border-top:0; margin-top:clamp(40px,5vw,64px);}
.dm .dm-cols{display:none;}
.dm ol{display:grid; gap:20px; grid-template-columns:1fr;}
@media(min-width:700px){.dm ol{grid-template-columns:1fr 1fr;}}
@media(min-width:1180px){.dm ol{grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px;}}
.dm .dm-row{display:flex; flex-direction:column; gap:0; padding:0; border:0; background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 1px 0 var(--line), 0 0 0 1px rgba(51,29,50,.04); transition:transform .35s var(--mo), box-shadow .35s var(--mo), opacity var(--t-rev) var(--mo);}
.dm .dm-row:hover{background:#fff; transform:translateY(-6px); box-shadow:0 26px 44px -22px rgba(51,29,50,.42), 0 0 0 1px rgba(51,29,50,.04);}
.dm .dm-row.wait{transform:translateY(24px);}
.dm .dm-row .art{order:-1; position:relative; overflow:hidden; background:#F8F1EB; aspect-ratio:1200 / 768; display:flex; align-items:center; justify-content:center;}
.dm .dm-row .art img{width:100%; aspect-ratio:1200 / 768; object-fit:cover; border-radius:0; transition:transform .7s var(--mo);}
.dm .dm-row .art-ill{width:62%; max-width:210px; height:auto; transition:transform .5s var(--mo);}
.dm .dm-row:hover .art img{transform:scale(1.04);}
.dm .dm-row:hover .art-ill{transform:scale(1.06);}
.dm .dm-row.wait .art img{transform:scale(1.1);}
.art-no{position:absolute; z-index:1; left:14px; top:10px; font-size:clamp(1.75rem,1.4rem + .8vw,2.25rem); font-weight:200; font-stretch:125%; line-height:.9; letter-spacing:-.04em; color:transparent; -webkit-text-stroke:1px rgba(154,74,90,.6);}
.dm .dm-row .top{padding:22px 22px 0;}
.dm .dm-row .top .n{display:none;}
.dm .dm-row h3{font-size:1.375rem; line-height:1.15;}
.dm .dm-row .what{padding:8px 22px 0; font-size:.9688rem;}
.dm .dm-row dl{display:grid; grid-template-columns:1fr; gap:12px; margin:18px 22px 0; padding-top:16px; border-top:1px solid var(--line);}
.dm .dm-row dt{position:static; width:auto; height:auto; overflow:visible; clip:auto; font-size:.75rem; color:var(--rose);}
.dm .dm-row dd{margin-top:2px; font-size:.9375rem;}
.dm .dm-row .act{align-self:flex-start; margin:auto 22px 22px; padding-top:20px;}
.dm .dm-row .act::after{bottom:2px;}
@media(min-width:700px) and (max-width:1179px){.dm .dm-row dl{grid-template-columns:1fr 1fr;}}

/* Hero film grain */
.film::before{content:""; position:absolute; inset:-60%; z-index:1; pointer-events:none; opacity:.16; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .9s steps(3) infinite;}
@keyframes grain{0%{transform:translate(0,0);} 33%{transform:translate(-4%,3%);} 66%{transform:translate(3%,-4%);} 100%{transform:translate(0,0);}}

/* Header: current-section indicator and reading progress */
.where{display:none; position:absolute; top:100%; left:var(--gutter); margin-top:1px; align-items:baseline; gap:8px; padding:8px 14px 9px; background:rgba(255,255,255,.98); border:1px solid var(--line); border-top:0; border-radius:0 0 4px 4px; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); white-space:nowrap; opacity:0; transform:translateY(4px); transition:opacity .25s ease, transform .25s var(--mo);}
.where b{color:var(--rose); font-weight:650;}
.where b::after{content:" /"; color:var(--muted); font-weight:400;}
.site.solid .where.on{opacity:1; transform:none;}
.bar{position:relative;}
.where.swap{opacity:0 !important; transform:translateY(-4px) !important; transition-duration:.12s;}
@media(min-width:1080px){.where{display:inline-flex;}}
.primary a,.primary button{white-space:nowrap;}
@media(max-width:639px){.bar{gap:12px;} .brand img{height:40px;} .bar .btn{min-height:40px; padding:0 12px 0 14px; font-size:.8125rem; gap:8px;} .menu-btn{gap:8px;}}
.progress{position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--rose); transform-origin:left; transform:scaleX(0); opacity:0; transition:opacity .3s ease;}
.site.solid .progress{opacity:1;}


@media (prefers-reduced-motion:reduce){.film::before{animation:none;} .dm .dm-row:hover{transform:none;} .dm .dm-row.wait .art img{transform:none;}}

/* ===================== v27: footer rebuilt around contact + menu ===================== */
.foot{padding-block:clamp(64px,7vw,104px) calc(28px + env(safe-area-inset-bottom,0px));}
.foot-cta{display:grid; gap:28px; align-items:end; padding-bottom:clamp(40px,5vw,64px); border-bottom:1px solid var(--navy-line);}
.foot-cta h2{margin-top:14px; color:#fff; font-size:clamp(2.25rem,1.5rem + 2.6vw,4rem); font-weight:600; letter-spacing:-.04em; line-height:1;}
.foot-cta h2 em{color:var(--blush);}
.foot-cta-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px 28px;}
.foot .link{color:#fff;}
@media(min-width:1000px){.foot-cta{grid-template-columns:1fr auto;}}
.foot-grid{display:grid; gap:40px 32px; padding-block:clamp(40px,5vw,64px); grid-template-columns:1fr 1fr;}
.f-contact{grid-column:1 / -1;}
.f-h{font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--blush); margin-bottom:18px;}
.f-contact dl{display:grid; gap:18px;}
.f-contact dl > div{display:grid; grid-template-columns:120px 1fr; gap:12px; padding-bottom:18px; border-bottom:1px solid var(--navy-line);}
.f-contact dl > div:last-child{border-bottom:0; padding-bottom:0;}
.f-contact dt{font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--on-navy); padding-top:4px;}
.f-contact dd,.f-contact address{font-style:normal; color:#fff; font-size:1.0625rem; line-height:1.5;}
.f-contact dd a{color:#fff; border-bottom:1px solid rgba(255,255,255,.3); transition:border-color var(--t-ui) ease;}
.f-contact dd a:hover{border-bottom-color:var(--blush);}
.f-col{display:flex; flex-direction:column; gap:10px;}
.f-col a{width:fit-content; color:var(--on-navy); font-size:1rem; transition:color var(--t-ui) ease;}
.f-col a:hover{color:#fff;}
.f-col .f-strong{color:var(--blush); font-weight:600;}
@media(min-width:760px){.foot-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(min-width:1180px){.foot-grid{grid-template-columns:minmax(0,1.7fr) repeat(4,minmax(0,1fr)); column-gap:40px;} .f-contact{grid-column:auto; padding-right:24px;}}
.foot-base{border-top:1px solid var(--navy-line); padding-top:28px;}
.foot-base .f-logo img{height:56px; width:auto;}
.foot-base nav a{color:var(--on-navy);}
@media(max-width:639px){.f-contact dl > div{grid-template-columns:1fr; gap:4px;} .foot-base{flex-direction:column; align-items:flex-start;} .foot{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));}}
.curric,.appr,.delivery{overflow-x:clip;}
@media(max-width:999px){#beauty.wait{transform:translateX(-20px);} #construction.wait{transform:translateX(20px);}}
.f-contact dl > div{grid-template-columns:1fr !important; gap:4px;}
.f-h{white-space:nowrap;}
.conditional-detail label{font-size:.82rem; font-weight:500; opacity:.9;}
/* ===================== v28: transforms + light ===================== */
/* Buttons: a light sweep on hover */
.btn{position:relative; overflow:hidden; isolation:isolate;}
.btn::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(105deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%); transform:translateX(-130%); transition:transform .7s var(--mo);}
.btn:hover::after{transform:translateX(130%);}
/* Hero: slow blush light drifting across the film */
.hero::before{content:""; position:absolute; z-index:1; inset:-25%; pointer-events:none; mix-blend-mode:screen; opacity:.9;
  background:radial-gradient(34% 42% at 72% 32%, rgba(240,180,180,.20), transparent 70%), radial-gradient(28% 36% at 30% 80%, rgba(255,236,220,.10), transparent 70%);
  animation:leak 16s ease-in-out infinite alternate;}
@keyframes leak{0%{transform:translate(0,0) scale(1);} 50%{transform:translate(-6%,4%) scale(1.08);} 100%{transform:translate(5%,-3%) scale(1.02);}}
/* Photos settle from a slight zoom as their mask opens */
.wipe{transform:scale(1.08);}
.wiped{transition:clip-path .9s var(--mo), transform 1.5s var(--mo);}
/* Delivery cards: 3D tilt with a light that follows the cursor */
.dm ol{perspective:1200px;}
.dm .dm-row{position:relative; transform-style:preserve-3d;}
.dm .dm-row::after{content:""; position:absolute; inset:0; z-index:2; pointer-events:none; border-radius:inherit; opacity:0; transition:opacity .3s ease; mix-blend-mode:soft-light;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,20%), rgba(255,255,255,.55), transparent 55%);}
.dm .dm-row:hover::after{opacity:1;}
.dm .dm-row.tilting{transition:transform .12s linear, box-shadow .35s var(--mo);}
/* Navy sections: ambient drifting glow + a soft spotlight under the cursor */
.prog,.refer,.foot{position:relative; overflow:hidden;}
.prog > .wrap,.refer > .wrap,.foot > .wrap{position:relative; z-index:1;}
.prog::before,.refer::before,.foot::before{content:""; position:absolute; z-index:0; pointer-events:none; width:70vw; height:70vw; max-width:980px; max-height:980px; border-radius:50%; background:radial-gradient(circle, rgba(240,180,180,.10), transparent 62%); animation:drift 22s ease-in-out infinite alternate;}
.prog::before{top:-30%; right:-15%;} .refer::before{bottom:-40%; left:-20%; animation-duration:26s;} .foot::before{top:-50%; left:30%; animation-duration:30s;}
@keyframes drift{from{transform:translate(0,0);} to{transform:translate(-8%,10%);}}
.prog::after,.refer::after,.foot::after{content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:0; transition:opacity .5s ease;
  background:radial-gradient(520px circle at var(--sx,50%) var(--sy,50%), rgba(240,180,180,.09), transparent 60%);}
.prog.lit::after,.refer.lit::after,.foot.lit::after{opacity:1;}
/* Progression: the destination node glows once the line has drawn */
@keyframes halo{0%{box-shadow:0 0 0 0 rgba(240,180,180,.55);} 70%,100%{box-shadow:0 0 0 18px rgba(240,180,180,0);}}
.journey:not(.pending) li:last-child .num{animation:halo 2.6s ease-out 1.6s infinite;}
@media (prefers-reduced-motion:reduce){.hero::before,.prog::before,.refer::before,.foot::before,.journey li:last-child .num{animation:none !important;} .wipe{transform:none;} .btn::after{display:none;}}
@media(min-width:1000px){.paths{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.path .pw{font-size:clamp(2rem, 1rem + 2.5vw, 3.25rem); overflow-wrap:normal;}

/* ===================== v30: balanced buttons + smoother hero ===================== */
:root{--smooth:cubic-bezier(.16,1,.3,1);}
/* Button pairs: same height, same padding, primary + ghost */
.hero-cta,.foot-cta-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px;}
.hero-cta .btn,.foot-cta-actions .btn{min-height:52px; padding:0 22px 0 24px; font-size:.9375rem; justify-content:center;}
.hero .btn-ghost,.foot .btn-ghost{background:transparent; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.5); transition:background-color var(--t-ui) ease, box-shadow var(--t-ui) ease;}
.hero .btn-ghost:hover,.foot .btn-ghost:hover{background:rgba(255,255,255,.1); box-shadow:inset 0 0 0 1px #fff;}
.btn-ghost:hover .i-arrow{transform:translate(4px,-4px);}
.foot .btn-ghost:hover .i-arrow{transform:translateX(5px);}
@media(max-width:639px){.hero-cta,.foot-cta-actions{display:grid; grid-template-columns:1fr; gap:10px; width:100%;} .hero-cta .btn,.foot-cta-actions .btn{width:100%;}}
/* Apprenticeship tracks: links sit on the same line */
.tracks > div{display:flex; flex-direction:column;}
.tracks .link{margin-top:auto; padding-top:18px; align-self:flex-start;}
.tracks p{margin-bottom:0;}

/* Smoother hero: film fades up from navy and settles; copy eases in on a longer curve */
.film video{opacity:0; transform:scale(1.06); transition:opacity 1.8s ease, transform 3.2s var(--smooth);}
.film video.ready{opacity:1; transform:none;}
@keyframes lineUpSoft{from{transform:translateY(100%); opacity:0;} to{transform:none; opacity:1;}}
@keyframes fadeUpSoft{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;}}
@keyframes emInSoft{from{opacity:0; transform:translateY(.25em);} to{opacity:1; transform:none;}}
.hero .eyebrow{animation:fadeUpSoft 1s var(--smooth) .25s both;}
.hero h1 .ln:nth-child(1) > span{animation:lineUpSoft 1.15s var(--smooth) .4s both;}
.hero h1 .ln:nth-child(2) > span{animation:lineUpSoft 1.15s var(--smooth) .52s both;}
.hero h1 em{animation:emInSoft 1.3s var(--smooth) .78s both;}
.hero .support{animation:fadeUpSoft 1.1s var(--smooth) .95s both;}
.hero-cta{animation:fadeUpSoft 1.1s var(--smooth) 1.1s both;}
.hero-meta{animation:fadeUpSoft 1.1s var(--smooth) 1.25s both;}
.hero-meta .motif{animation:clipIn 1.2s var(--smooth) 1.5s both;}
.vid-btn{animation:fadeUpSoft 1s var(--smooth) 1.6s both;}
.hero .hero-copy > .eyebrow{animation-delay:.25s;} .hero .hero-copy > .support{animation-delay:.95s;} .hero .hero-copy > .hero-cta{animation-delay:1.1s;} .hero .hero-copy > .hero-meta{animation-delay:1.25s;}
@media (prefers-reduced-motion:reduce){.film video{opacity:1; transform:none;}}

/* ===================== v31: balanced navigation ===================== */
/* Narrow laptops (1080–1199px) use the Menu button so nothing is squeezed */
@media(min-width:1080px) and (max-width:1279px){
  .primary{display:none;} .menu-btn{display:inline-flex;}
  .menu:not([hidden]){display:block !important;}
  .where{display:none !important;}
}
/* Desktop: logo left, menu centred on the page, referral button right */
@media(min-width:1280px){
  .bar{display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; column-gap:24px;}
  .brand{justify-self:start; margin:0;}
  .bar > .btn{justify-self:end;}
  .primary{gap:clamp(18px,calc(1.8vw - 2px),34px);}
  .primary a,.primary button{font-size:.75rem; letter-spacing:.09em;}
}

/* ===================== v46: Study Programmes — ONE section; hover previews, View Course opens detail in place =====================
   data-state: course-selection | beauty-preview | construction-preview | beauty-detail | construction-detail */
.curric{padding-bottom:0;}
.sp-stage{--x:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))); --h:.7s; --ease:ease-in-out; --t:.5s;
  position:relative; margin-top:clamp(40px,5vw,72px); background:var(--navy); color:#fff; overflow:hidden; isolation:isolate; transition:height var(--t) var(--mo);}
.sp-base{position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, #10233F 0%, var(--navy) 100%);}
.sp-kb{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0;}
.sp-kb:focus-visible{clip:auto; width:auto; height:auto; z-index:9; left:var(--x); top:16px; padding:8px 14px; background:var(--blush); color:var(--navy); border-radius:999px; font-weight:650;}
/* Two panels split on a diagonal: Beauty left, Construction right */
.sp-panel{position:absolute; inset:0; z-index:2; transition:clip-path var(--h) var(--ease), transform var(--h) var(--ease), opacity var(--h) var(--ease);}
[data-panel="beauty"]{clip-path:polygon(0 0,50% 0,50% 100%,0 100%);}
[data-panel="construction"]{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%);}
.sp-img{position:absolute; inset:0; margin:0; overflow:hidden;}
.sp-img img{position:absolute; top:0; height:100%; object-fit:cover; transition:left var(--h) var(--ease), width var(--h) var(--ease), transform var(--h) var(--ease);}
[data-panel="beauty"] .sp-img img{left:0; width:52%; object-position:40% 35%;}
[data-panel="construction"] .sp-img img{left:48%; width:52%; object-position:55% 55%;}
.sp-img::after{content:""; position:absolute; inset:0; background:rgba(36,20,36,var(--veil,.5)); transition:background-color var(--h) var(--ease);}
[data-panel="beauty"] .sp-img{--veil:.52;}
[data-panel="construction"] .sp-img{--veil:.45;}
/* big type, our style */
.sp-word{position:absolute; top:50%; margin:0; transform:translateY(-50%); font-weight:800; font-stretch:125%; line-height:.86; letter-spacing:-.04em; isolation:isolate; transition:opacity var(--h) var(--ease), transform var(--h) var(--ease);}
.sp-word .ln{display:block; overflow:hidden; padding:.02em 0 .03em; transition:padding var(--h) var(--ease);}
.sp-word .ln > span{display:inline-block; position:relative; color:#fff;}
.sp-word .ln > span::after{content:attr(data-t); position:absolute; left:.05em; top:.045em; z-index:-1; color:transparent; -webkit-text-stroke:1.5px rgba(242,182,176,.7);}
.sp-word{font-size:min(12svh, 6.6vw);}
[data-panel="beauty"] .sp-word{left:calc(var(--x) + 2vw);}
.sp-word .ln:nth-child(2){padding-left:.42em;}
.sp-word .ln:nth-child(3){padding-left:.95em;}
[data-panel="construction"] .sp-word{right:var(--x);}

/* preview text blocks */
.sp-pv{position:absolute; z-index:5; top:50%; width:min(440px, 38vw); visibility:hidden; opacity:0; pointer-events:none; transition:opacity var(--h) var(--ease), transform var(--h) var(--ease), visibility 0s var(--h);}
[data-pv="beauty"]{right:var(--x); transform:translate(24px,-50%);}
[data-pv="construction"]{left:var(--x); transform:translate(0,-44%);}
.sp-pv .eyebrow{color:var(--blush);}
.sp-pv .eyebrow span{opacity:.55; margin:0 .3em;}
.sp-pv h3{margin-top:12px; font-size:clamp(2rem,1.4rem + 2vw,3.5rem); font-weight:600; letter-spacing:-.035em; line-height:1;}
.sp-pv p{margin-top:14px; font-size:1.0625rem; line-height:1.55; color:var(--on-navy); max-width:28em;}
.sp-pv .btn{margin-top:24px;}
.sp-hint{position:absolute; z-index:6; left:50%; bottom:24px; margin:0; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:2px; padding:9px 20px 11px; background:var(--navy); border:1px solid var(--navy-line); border-radius:999px; font-size:.8125rem; color:var(--on-navy); white-space:nowrap; pointer-events:none; transition:opacity .3s ease;}
.sp-hint .eyebrow{color:var(--blush);}
/* STATE beauty-preview: Beauty fills the section, Construction slides off right */
[data-state="beauty-preview"] [data-panel="beauty"]{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
[data-state="beauty-preview"] [data-panel="construction"]{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%); transform:translateX(8%);}
[data-state="beauty-preview"] [data-panel="beauty"] .sp-img img{width:100%;}
[data-state="beauty-preview"] [data-panel="beauty"] .sp-img{--veil:.72;}
[data-state="beauty-preview"] .sp-word .ln{padding-left:0;}
/* STATE construction-preview: Construction fills the section, Beauty slides off left */
[data-state="construction-preview"] [data-panel="construction"]{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
[data-state="construction-preview"] [data-panel="beauty"]{clip-path:polygon(0 0,0 0,0 100%,0 100%); transform:translateX(-8%);}
[data-state="construction-preview"] [data-panel="construction"] .sp-img img{left:0; width:100%;}
[data-state="construction-preview"] [data-panel="construction"] .sp-img{--veil:.72;}
[data-state="construction-preview"] .sp-word .ln{padding-left:0;}
[data-state="beauty-preview"] [data-pv="beauty"],[data-state="construction-preview"] [data-pv="construction"]{visibility:visible; opacity:1; pointer-events:auto; transform:translate(0,-50%); transition:opacity var(--h) var(--ease), transform var(--h) var(--ease), visibility 0s;}
[data-state$="-preview"] .sp-hint,[data-state$="-detail"] .sp-hint{opacity:0;}

/* ---- DETAIL (View Course): image leaves, programme content comes forward ---- */
.sp-detail{position:absolute; top:0; left:0; right:0; min-height:100%; z-index:8; isolation:isolate; display:flex; flex-direction:column; justify-content:center; padding:112px var(--x) 64px; visibility:hidden; pointer-events:none; transition:visibility 0s var(--t);}
.sp-detail::before{content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(70% 90% at 80% 50%, rgba(154,74,90,.28), rgba(154,74,90,0) 70%), linear-gradient(180deg, #10233F 0%, var(--navy) 100%); opacity:0; transition:opacity var(--t) var(--mo);}
.sp-bgword{position:absolute; z-index:-1; right:var(--x); top:50%; margin:0; font-size:min(17svh, 11vw); font-weight:800; font-stretch:125%; line-height:.86; letter-spacing:-.04em; color:rgba(242,182,176,.12); -webkit-text-stroke:1px rgba(242,182,176,.38); pointer-events:none; user-select:none; opacity:0; transform:translate(48px,-50%); transition:opacity var(--t) var(--mo), transform var(--t) var(--mo);}
.sp-back{position:absolute; top:48px; left:var(--x); display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0 16px 0 12px; border:1px solid rgba(255,255,255,.35); border-radius:999px; background:transparent; color:#fff; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; opacity:0; transition:opacity .25s ease, background-color var(--t-ui) ease;}
.sp-back:hover{background:rgba(255,255,255,.08);}
.sp-back .i-arrow{width:14px; height:14px;}
.sp-info{position:relative; width:min(620px, 54vw); opacity:0; transform:translateY(24px); transition:opacity .2s ease, transform .2s ease;}
.sp-info h3{font-size:clamp(2rem,1.5rem + 1.8vw,3.25rem); font-weight:600; letter-spacing:-.035em; line-height:1.02;}
.sp-sub{margin-top:8px; font-size:1.0625rem; color:var(--on-navy);}
.sp-sub i{font-family:var(--serif); font-style:italic; color:var(--blush); font-size:1.15em;}
.sp-intro{margin-top:18px; font-size:1.125rem; line-height:1.6; color:#fff; max-width:34em;}
.sp-cols{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:22px 32px; margin-top:26px;}
.sp-lbl{display:block; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--blush); padding-bottom:6px; border-bottom:1px solid rgba(242,182,176,.45);}
.sp-list{list-style:none;}
.sp-list li{display:flex; align-items:baseline; gap:14px; padding-block:9px 10px; border-bottom:1px dashed rgba(242,182,176,.3); font-size:.875rem; font-weight:650; font-stretch:112%; text-transform:uppercase; letter-spacing:.06em;}
.sp-list b{font-size:.75rem; font-weight:650; letter-spacing:.1em; color:var(--blush); min-width:1.8em;}
.sp-prog{margin-top:10px; font-size:1.125rem; font-weight:650; line-height:1.35; color:var(--blush);}
.sp-acts{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:28px;}
.sp-acts .link{color:#fff; background:none; border:0; cursor:pointer; padding-inline:0;}
[data-state$="-detail"] .sp-panel{opacity:0; transform:translateX(-12%) scale(.94); transition:opacity var(--t) var(--mo), transform var(--t) var(--mo), clip-path var(--t) var(--mo);}
[data-state$="-detail"] .sp-pv{opacity:0; visibility:hidden; transition:opacity .25s ease, visibility 0s .25s;}
[data-state="beauty-detail"] [data-detail="beauty"],[data-state="construction-detail"] [data-detail="construction"]{visibility:visible; pointer-events:auto; transition:visibility 0s;}
[data-state="beauty-detail"] [data-detail="beauty"]::before,[data-state="construction-detail"] [data-detail="construction"]::before{opacity:1;}
[data-state="beauty-detail"] [data-detail="beauty"] .sp-bgword,[data-state="construction-detail"] [data-detail="construction"] .sp-bgword{opacity:1; transform:translate(0,-50%); transition:opacity .6s var(--mo) .1s, transform .7s var(--mo) .1s;}
[data-state="beauty-detail"] [data-detail="beauty"] .sp-back,[data-state="construction-detail"] [data-detail="construction"] .sp-back{opacity:1; transition:opacity .35s ease .25s, background-color var(--t-ui) ease;}
[data-state="beauty-detail"] [data-detail="beauty"] .sp-info,[data-state="construction-detail"] [data-detail="construction"] .sp-info{opacity:1; transform:none; transition:opacity .45s var(--mo) .2s, transform .5s var(--mo) .2s;}

/* ---- desktop sizing ---- */
@media(min-width:600px){
  .sp-stage{height:min(100svh, 920px); min-height:680px;}
}
/* ---- phones: two panels stacked, text always visible ---- */
@media(max-width:599px){
  .sp-stage{display:flex; flex-direction:column; min-height:0;}
  .sp-hint,.sp-kb{display:none;}
  .sp-panel{position:relative; inset:auto; clip-path:none !important; transform:none !important; height:92vw;}
  [data-panel="beauty"]{order:1;} [data-pv="beauty"]{order:2;}
  [data-panel="construction"]{order:3; margin-top:48px; clip-path:polygon(0 8%,100% 0,100% 100%,0 100%) !important;}
  [data-pv="construction"]{order:4; margin-bottom:48px;}
  .sp-img img{left:0 !important; width:100% !important;}
  .sp-word{font-size:15vw;}
  .sp-pv{position:relative; left:auto; right:auto; top:auto; width:auto; margin:24px var(--x) 0; visibility:visible !important; opacity:1 !important; pointer-events:auto !important; transform:none !important;}
  .sp-detail{justify-content:flex-start; padding:96px var(--x) 48px;}
  .sp-back{top:28px;}
  .sp-bgword{top:24px; font-size:22vw; transform:translateX(32px); color:rgba(242,182,176,.07); -webkit-text-stroke-color:rgba(242,182,176,.22);}
  [data-state="beauty-detail"] [data-detail="beauty"] .sp-bgword,[data-state="construction-detail"] [data-detail="construction"] .sp-bgword{transform:none;}
  .sp-info{width:auto;}
  [data-state$="-detail"] .sp-pv,[data-state$="-detail"] .sp-panel{opacity:0 !important; visibility:hidden !important;}
}
@media(max-width:560px){.sp-cols{grid-template-columns:1fr;}}
@media(min-width:600px) and (max-width:899px){.sp-pv{width:44vw;} .sp-pv h3{font-size:2rem;} .sp-pv p{font-size:.9375rem;} .sp-hint{font-size:.75rem;} .sp-info{width:62vw;} .sp-detail{padding-top:96px;} .sp-back{top:28px;}}
/* entrance */
.sp-stage.anim:not(.live) [data-panel="beauty"]{clip-path:polygon(0 0,0 0,0 100%,0 100%);}
.sp-stage.anim:not(.live) [data-panel="construction"]{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);}
.sp-stage.anim:not(.live) .sp-hint{opacity:0;}
.sp-stage.anim .sp-word .ln > span{transition:transform .8s var(--mo);}
.sp-stage.anim:not(.live) .sp-word .ln > span{transform:translateY(105%);}
.sp-stage.anim .sp-word .ln:nth-child(2) > span{transition-delay:.1s;}
.sp-stage.anim .sp-word .ln:nth-child(3) > span{transition-delay:.2s;}
@media (prefers-reduced-motion:reduce){.sp-stage{--h:.01s; --t:.01s;}}

/* ===================== v49: Delivery Models — editorial numbered columns (reference layout) with illustration ===================== */
.dm{margin-top:clamp(40px,5vw,64px);}
.dm ol{display:grid; grid-template-columns:1fr; gap:48px 32px; counter-reset:none;}
@media(min-width:700px){.dm ol{grid-template-columns:1fr 1fr;}}
@media(min-width:1180px){.dm ol{grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px;}}
.dm .dm-row{position:relative; display:flex; flex-direction:column; align-items:stretch; padding:22px 0 0; background:none !important; border:0; border-top:1px solid var(--navy); border-radius:0; box-shadow:none !important; overflow:visible; transform:none; transition:opacity .45s var(--mo), transform .7s var(--mo);}
.dm .dm-row::before{content:""; position:absolute; left:0; right:0; top:-1px; height:3px; background:var(--rose); transform:scaleX(0); transform-origin:left; transition:transform .55s var(--mo);}
.dm .dm-row:hover::before,.dm .dm-row:focus-within::before{transform:scaleX(1);}
.dm .dm-row:hover{transform:none; box-shadow:none;}
/* dim the siblings so the hovered model leads */
@media(hover:hover){.dm ol:hover .dm-row:not(:hover){opacity:.5;}}
/* number + title row */
.dm .dm-row .top{order:0; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:0;}
.dm .dm-row .top .n{display:inline-block; font-size:.8125rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; color:var(--rose); font-variant-numeric:tabular-nums;}
.dm .dm-row h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem); line-height:1.15; letter-spacing:-.025em; transition:color .3s ease;}
.dm .dm-row:hover h3{color:var(--rose);}
/* illustration panel */
.dm .dm-row .art{order:1; margin-top:18px; aspect-ratio:1200 / 768; background:#F8F1EB; border-radius:4px; overflow:hidden; display:block; isolation:isolate;}
.dm .dm-row .art::after{content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(60% 70% at 50% 70%, rgba(242,182,176,.55), rgba(242,182,176,0) 70%); opacity:0; transition:opacity .5s var(--mo);}
.dm .dm-row .art img{position:relative; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; mix-blend-mode:multiply; transform:translateY(0) scale(1); transition:transform .7s var(--mo);}
.dm .dm-row:hover .art img{transform:translateY(-6px) scale(1.045);}
.dm .dm-row:hover .art::after{opacity:1;}
.art-no{display:none;}
/* copy */
.dm .dm-row .what{order:2; padding:16px 0 0; font-size:1rem; line-height:1.55; color:var(--muted);}
.dm .dm-row dl{order:3; margin:18px 0 0; padding-top:14px; border-top:1px dashed var(--line); display:grid; grid-template-columns:1fr; gap:10px;}
.dm .dm-row dt{font-size:.75rem; color:var(--rose);}
.dm .dm-row dd{font-size:.9375rem; margin-top:2px;}
.dm .dm-row .act{order:4; align-self:flex-start; margin:auto 0 0; padding-top:22px;}
.dm .dm-row:hover .act .i-arrow{transform:translateX(5px);}
@media(min-width:700px) and (max-width:1179px){.dm .dm-row dl{grid-template-columns:1fr 1fr;}}
/* entrance: rule draws, illustration rises out of its frame, copy follows */
.dm .dm-row.wait{opacity:0; transform:translateY(28px);}
.dm .dm-row.wait .art img{transform:translateY(40%) scale(.96);}
.dm .dm-row.shown .art img{transition:transform .9s var(--mo) .15s;}
.dm .dm-row.wait::after{transform:scaleX(0);}
.dm .dm-row::after{content:""; position:absolute; left:0; right:0; top:-1px; height:1px; background:var(--navy); transform-origin:left; transition:transform .8s var(--mo);}
@media (prefers-reduced-motion:reduce){.dm .dm-row,.dm .dm-row .art img{transition:none !important; transform:none !important;}}

/* ===================== v51: Trust band after hero ===================== */
.tband{background:var(--stone); border-bottom:1px solid var(--line); padding-top:clamp(56px,7vw,96px); overflow:hidden;}
.tb-head{display:grid; gap:18px;}
.tb-head h2{max-width:20em; font-size:clamp(1.875rem,1.3rem + 2.2vw,3.25rem); line-height:1.05; letter-spacing:-.035em;}
.tb-marquee{position:relative; margin-top:clamp(36px,4.5vw,56px); border-block:1px solid var(--navy); padding-block:22px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.tb-track{display:flex; align-items:center; gap:34px; width:max-content; list-style:none; animation:tbScroll 38s linear infinite;}
.tb-track li{font-size:clamp(1rem,.85rem + .6vw,1.375rem); font-weight:650; font-stretch:112%; letter-spacing:.06em; text-transform:uppercase; color:var(--navy); white-space:nowrap;}
.tb-track .tb-dot{width:8px; height:8px; border-radius:50%; background:var(--rose); flex-shrink:0;}
.tb-marquee:hover .tb-track{animation-play-state:paused;}
@keyframes tbScroll{to{transform:translateX(-50%);}}
.tb-stats{display:grid; gap:28px; padding-block:clamp(40px,5vw,64px);}
.tb-lead{font-size:var(--t-lead); line-height:1.55; color:var(--muted); max-width:30em;}
.tb-stats dl{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px;}
.tb-stats dl > div{border-top:1px solid var(--navy); padding-top:14px;}
.tb-stats dt{font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose);}
.tb-stats dd{margin-top:6px; font-size:.9375rem; line-height:1.35; color:var(--muted);}
.tb-stats dd b{display:block; font-size:clamp(2.25rem,1.6rem + 2.4vw,3.75rem); font-weight:600; font-stretch:100%; letter-spacing:-.04em; line-height:1; color:var(--navy); margin-bottom:6px;}
@media(min-width:1000px){.tb-stats{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px); align-items:end;}}
@media(max-width:520px){.tb-stats dl{grid-template-columns:1fr; gap:0;} .tb-stats dl > div{display:flex; align-items:baseline; gap:14px; padding-block:12px;} .tb-stats dd b{display:inline; margin:0 10px 0 0;}}
/* entrance */
.tband .tb-head,.tband .tb-stats{transition:opacity .8s var(--mo), transform .8s var(--mo);}
.tband.pending .tb-head,.tband.pending .tb-stats{opacity:0; transform:translateY(16px);}
.tband .tb-stats{transition-delay:.15s;}
@media (prefers-reduced-motion:reduce){.tb-track{animation:none;}}

/* ===================== v52: Trust band pop — crossing ribbons, rose accents, count-up ===================== */
.tb-ribbons{position:relative; margin-top:clamp(40px,5vw,64px); padding-block:clamp(26px,3vw,40px);}
.tb-ribbons .tb-marquee{margin:0; border:0; padding-block:18px; -webkit-mask-image:none; mask-image:none; width:106%; margin-left:-3%;}
.tb-front{position:relative; z-index:2; background:var(--rose); transform:rotate(-2deg); box-shadow:0 18px 40px -22px rgba(154,74,90,.8);}
.tb-front .tb-track li{color:#fff;}
.tb-front .tb-dot{background:var(--blush);}
.tb-back{position:absolute; left:0; right:0; top:50%; z-index:1; background:var(--navy); transform:translateY(-50%) rotate(2.2deg);}
.tb-back .tb-track{animation-direction:reverse; animation-duration:46s;}
.tb-back .tb-track li{color:transparent; -webkit-text-stroke:1px var(--blush); font-size:clamp(1.125rem,.95rem + .7vw,1.5rem);}
.tb-back .tb-star{color:var(--blush); -webkit-text-stroke:0; font-size:.9rem;}
.tb-ribbons .tb-marquee:hover .tb-track{animation-play-state:paused;}
.tb-stats dd b{color:var(--rose);}
.tb-stats dl > div{border-top:2px solid var(--rose); transition:transform .35s var(--mo);}
.tb-stats dl > div:hover{transform:translateY(-4px);}
/* ribbons swing in */
.tband .tb-front,.tband .tb-back{transition:transform 1.1s var(--mo), opacity .8s ease;}
.tband.pending .tb-front{transform:rotate(-2deg) translateX(-12%); opacity:0;}
.tband.pending .tb-back{transform:translateY(-50%) rotate(2.2deg) translateX(12%); opacity:0;}
@media (prefers-reduced-motion:reduce){.tb-front,.tb-back{transition:none;}}

.why-tag{display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:22px; font-size:clamp(1rem,.9rem + .4vw,1.1875rem); font-weight:650; letter-spacing:-.01em; color:var(--navy);}
.why-tag span:nth-child(2){color:var(--rose);}

/* ===================== v53: Apprenticeships — aaxa.co.uk layout: diagonal photo with APPR/ENTIC/ESHIP, bullet list ===================== */
.appr{position:relative; overflow:hidden; background:var(--stone);}
.appr-photo{position:relative; overflow:hidden; aspect-ratio:4 / 3.2;}
.appr-photo img{width:100%; height:100%; object-fit:cover; object-position:32% 40%;}
.appr-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(36,20,36,.15), rgba(36,20,36,.55));}
.appr-ghost{position:absolute; z-index:1; left:var(--gutter); bottom:.25em; margin:0; font-size:clamp(3.5rem,2rem + 6vw,7.5rem); font-weight:800; font-stretch:125%; line-height:.86; letter-spacing:-.04em; color:rgba(255,255,255,.28); -webkit-text-stroke:1px rgba(255,255,255,.55); pointer-events:none; user-select:none;}
.appr-list{list-style:none; margin-top:26px; display:grid; gap:0; max-width:34em;}
.appr-list li{position:relative; padding:11px 0 12px 30px; border-bottom:1px dashed rgba(154,74,90,.3); font-size:1rem; font-weight:500;}
.appr-list li::before{content:""; position:absolute; left:4px; top:18px; width:12px; height:12px; border-radius:50%; border:2px solid var(--rose); background:var(--blush-50);}
.appr .tracks{margin-top:32px;}
@media(min-width:1080px){
  .appr{grid-template-columns:minmax(0,5fr) minmax(0,6fr); align-items:stretch; min-height:min(100svh, 980px);}
  .appr-photo{aspect-ratio:auto; height:100%; clip-path:polygon(0 0,100% 0,72% 100%,0 100%); margin-right:-14%;}
  .appr-photo img{height:100%; aspect-ratio:auto !important;}
  .appr-ghost{left:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));}
  .appr-body{align-self:center;}
}
/* entrance: diagonal wipe, ghost type rises, list items stagger */
.appr-photo{transition:clip-path 1.1s var(--mo);}
.appr.pending .appr-photo{clip-path:polygon(0 0,0 0,0 100%,0 100%);}
.appr-ghost{transition:opacity .9s var(--mo) .35s, transform .9s var(--mo) .35s;}
.appr.pending .appr-ghost{opacity:0; transform:translateY(30px);}
.appr-list li{transition:opacity .5s var(--mo), transform .5s var(--mo);}
.appr.pending .appr-list li{opacity:0; transform:translateX(-10px);}
.appr-list li:nth-child(2){transition-delay:.08s;} .appr-list li:nth-child(3){transition-delay:.16s;} .appr-list li:nth-child(4){transition-delay:.24s;} .appr-list li:nth-child(5){transition-delay:.32s;} .appr-list li:nth-child(6){transition-delay:.4s;}
@media (prefers-reduced-motion:reduce){.appr-photo,.appr-ghost,.appr-list li{transition:none !important;}}

/* ===================== v54: Hero — brief headline + pop ===================== */
.hero .hero-body{display:grid; align-items:center; gap:40px;}
.hero h1{font-size:clamp(2.5rem, 1.7rem + 2.9vw, 4.5rem); line-height:.98;}
.hero h1 .ln.sub{font-size:.62em; margin-top:.28em;}
.hero h1 .ln.sub em{color:var(--blush);}
.hero .hl{background:linear-gradient(var(--rose),var(--rose)) no-repeat 0 86% / 0% 34%; color:inherit; padding:0 .06em; margin:0 -.06em; animation:hlSweep .9s var(--mo) 1s forwards;}
.hero .hl2{animation-delay:1.25s;}
@keyframes hlSweep{to{background-size:100% 34%;}}
.hero-badge{display:inline-flex; align-items:center; gap:10px; padding:8px 16px 8px 12px; border:1px solid rgba(242,182,176,.45); border-radius:999px; background:rgba(36,20,36,.45); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);}
.eyebrow.ut.hero-badge span.hb-txt,.eyebrow.ut.hero-badge span.hb-long{opacity:1; margin:0;}
.hb-short{display:none;}
@media(max-width:639px){.hb-long{display:none;} .hb-short{display:inline;}}
.hero-badge .pulse{position:relative; width:8px; height:8px; border-radius:50%; background:var(--blush);}
.hero-badge .pulse::after{content:""; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--blush); animation:pulse 2.2s ease-out infinite;}
@keyframes pulse{from{transform:scale(.5); opacity:1;} to{transform:scale(1.8); opacity:0;}}
/* soft rose glow over the film */
.hero::after{content:""; position:absolute; inset:auto auto -20% -10%; width:70vw; height:70vw; max-width:900px; max-height:900px; border-radius:50%; background:radial-gradient(circle, rgba(154,74,90,.45), rgba(154,74,90,0) 65%); pointer-events:none; z-index:0; animation:glow 9s ease-in-out infinite alternate;}
@keyframes glow{to{transform:translate(6%,-6%) scale(1.08);}}
.hero-body{z-index:2;}
/* two floating pathway cards */
.hero-cards{display:none;}
@media(min-width:1180px){
  .hero .hero-body{grid-template-columns:minmax(0,1fr) auto;}
  .hero-copy{max-width:720px;}
  .hero-cards{display:flex; flex-direction:column; gap:16px; align-self:end; margin-bottom:24px;}
  .hcard{display:grid; grid-template-columns:auto 1fr; column-gap:18px; align-items:baseline; width:360px; padding:20px 22px; border-radius:6px; border:1px solid rgba(242,182,176,.35); background:rgba(36,20,36,.55); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; box-shadow:0 24px 50px -28px rgba(0,0,0,.8); animation:hcIn .9s var(--mo) both, float 6s ease-in-out infinite; transition:border-color .3s ease, background-color .3s ease;}
  .hcard:nth-child(1){animation-delay:1.1s, 2s;}
  .hcard:nth-child(2){animation-delay:1.3s, 3.5s; margin-left:48px;}
  .hcard:hover{border-color:var(--blush); background:rgba(154,74,90,.55);}
  .hc-age{grid-row:span 2; white-space:nowrap; font-size:2.5rem; font-weight:700; font-stretch:112%; letter-spacing:-.04em; line-height:1; color:var(--blush);}
  .hc-t{font-size:1.0625rem; font-weight:650; letter-spacing:-.01em; white-space:nowrap;}
  .hc-d{font-size:.8125rem; color:var(--on-navy);}
}
@keyframes hcIn{from{opacity:0; transform:translateY(24px);} to{opacity:1; transform:none;}}
@keyframes float{0%,100%{translate:0 0;} 50%{translate:0 -8px;}}
@media(max-width:639px){.hero h1{font-size:2.35rem;} .hero-badge{font-size:.75rem; padding:6px 12px 6px 10px;}}
@media (prefers-reduced-motion:reduce){.hero .hl{animation:none; background-size:100% 34%;} .hero::after,.hcard,.hero-badge .pulse::after{animation:none !important;}}
.hero h1 .ln:nth-child(3) > span{animation:lineUpSoft 1.15s var(--smooth) .64s both;}
.hero h1 .ln:nth-child(4) > span{animation:lineUpSoft 1.15s var(--smooth) .8s both;}
.hero h1 .ln.sub em{animation:none;}

/* ===================== v56: ribbons — calmer, gentler tilt, pause control ===================== */
.tb-front{transform:rotate(-1.2deg);}
.tb-back{transform:translateY(-50%) rotate(1.4deg);}
.tband.pending .tb-front{transform:rotate(-1.2deg) translateX(-12%);}
.tband.pending .tb-back{transform:translateY(-50%) rotate(1.4deg) translateX(12%);}
.tb-front .tb-track{animation-duration:70s;}
.tb-back .tb-track{animation-duration:90s;}
.tb-ribbons .tb-track li{font-size:clamp(.9375rem,.85rem + .45vw,1.25rem);}
.tb-ribbons .tb-marquee{padding-block:15px;}
.tb-ribbons.paused .tb-track{animation-play-state:paused !important;}
/* ===================== v58: bottom-half polish ===================== */
/* Progression: photo backdrop, glowing stages, hover lift */
.prog{position:relative; overflow:hidden; isolation:isolate;}
.prog-bg{position:absolute; inset:0; z-index:-1;}
.prog-bg img{width:100%; height:100%; object-fit:cover; opacity:.32; filter:grayscale(.3); transform:scale(1.08); transition:transform 1.6s var(--mo);}
.prog-bg::after{content:""; position:absolute; inset:0; background:radial-gradient(60% 70% at 85% 20%, rgba(154,74,90,.45), rgba(154,74,90,0) 70%), linear-gradient(180deg, rgba(36,20,36,.78), var(--navy) 85%);}
.prog:not(.pend-bg) .prog-bg img{transform:scale(1);}
.journey li{border-radius:6px; transition:background-color .35s ease, transform .35s var(--mo);}
@media(min-width:1000px){.journey li{padding:88px 20px 24px 0;} .journey li:hover{transform:translateY(-6px);}}
.journey .num{transition:background-color .35s ease, border-color .35s ease, color .35s ease, box-shadow .35s ease;}
.journey li:hover .num{background:var(--rose); border-color:var(--rose); color:#fff; box-shadow:0 0 0 8px rgba(154,74,90,.25);}
.journey li:last-child .num{box-shadow:0 0 0 8px rgba(242,182,176,.18); animation:numPulse 2.6s ease-in-out infinite;}
@keyframes numPulse{50%{box-shadow:0 0 0 14px rgba(242,182,176,0);}}
.journey li:hover .stage{color:#fff;}

/* Safeguarding: icon rows, rose hover rule, framed photo */
.ledger > div{position:relative; transition:background-color .3s ease, padding .35s var(--mo);}
.ledger > div::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--rose); transform:scaleY(0); transform-origin:top; transition:transform .4s var(--mo);}
.ledger > div:hover{background:var(--blush-50); padding-left:18px !important;}
.ledger > div:hover::before{transform:scaleY(1);}
.ledger dt{display:flex; align-items:center; gap:10px;}
.lg-ic{width:30px; height:30px; flex-shrink:0; padding:6px; border-radius:50%; background:var(--blush-50); fill:none; stroke:var(--rose); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:background-color .3s ease, stroke .3s ease;}
.ledger > div:hover .lg-ic{background:var(--rose); stroke:#fff;}
.as-head figure{position:relative; overflow:hidden; border-radius:4px;}
.as-head figure img{clip-path:polygon(0 0,100% 0,100% 88%,0 100%); border-radius:0;}
.as-head figure::after{content:""; position:absolute; left:0; right:0; bottom:28px; height:4px; background:linear-gradient(90deg,var(--rose),var(--blush)); transform:skewY(-3.4deg); transform-origin:left;}
.liaison{display:flex; flex-direction:column; gap:4px; border-left:3px solid var(--rose); box-shadow:0 14px 30px -24px rgba(36,20,36,.5);}

/* Reviews */
.reviews{background:var(--stone); padding-block:var(--sec); overflow:hidden;}
.rv-head h2{max-width:16em;}
.rv-grid{display:grid; gap:20px; margin-top:clamp(40px,5vw,64px);}
@media(min-width:760px){.rv-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1100px){.rv-grid{grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:auto auto;} .rv-feat{grid-row:span 2;}}
.rv-card{position:relative; display:flex; flex-direction:column; margin:0; padding:30px 28px 26px; background:#fff; border:1px solid var(--line); border-radius:6px; box-shadow:0 1px 0 var(--line); transition:transform .4s var(--mo), box-shadow .4s var(--mo), border-color .3s ease, opacity var(--t-rev) var(--mo);}
.rv-card:hover{transform:translateY(-6px); border-color:rgba(154,74,90,.4); box-shadow:0 28px 50px -30px rgba(36,20,36,.45);}
.rv-mark{width:34px; height:26px; fill:var(--blush); transition:fill .3s ease, transform .4s var(--mo);}
.rv-card:hover .rv-mark{fill:var(--rose); transform:translateY(-3px);}
.rv-card blockquote{margin:18px 0 0; flex:1;}
.rv-card blockquote p{font-size:1.0625rem; line-height:1.6; color:var(--ink);}
.rv-feat{background:var(--navy); border-color:var(--navy); color:#fff;}
.rv-feat blockquote p{font-family:var(--serif); font-style:italic; font-size:clamp(1.375rem,1.1rem + 1vw,2rem); line-height:1.35; color:#fff;}
.rv-feat .rv-mark{width:52px; height:40px;}
.rv-card figcaption{display:flex; align-items:center; gap:12px; margin-top:24px; padding-top:18px; border-top:1px dashed var(--line); font-size:.875rem; color:var(--muted);}
.rv-feat figcaption{border-top-color:rgba(242,182,176,.3); color:var(--on-navy);}
.rv-card figcaption b{display:block; font-size:.9375rem; color:var(--navy);}
.rv-feat figcaption b{color:#fff;}
.rv-av{display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; border-radius:50%; background:var(--blush-50); color:var(--rose); font-weight:700;}
.rv-feat .rv-av{background:var(--rose); color:#fff;}
.rv-sample{position:absolute; top:14px; right:14px; padding:3px 8px; border:1px dashed currentColor; border-radius:999px; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); opacity:.7;}
.rv-feat .rv-sample{color:var(--blush);}

/* Referral: glow, numbered steps, lifted form */
.refer{position:relative; overflow:hidden; isolation:isolate; padding-bottom: 180px;}
.refer::before{content:""; position:absolute; z-index:-1; right:-10%; top:-20%; width:60vw; height:60vw; max-width:820px; max-height:820px; border-radius:50%; background:radial-gradient(circle, rgba(154,74,90,.4), rgba(154,74,90,0) 65%); animation:glow 10s ease-in-out infinite alternate;}
.steps li{counter-increment:none; position:relative;}
.steps{counter-reset:st;}
.steps li::before{counter-increment:st; content:counter(st); display:grid; place-items:center; width:32px; height:32px; border-radius:50%; border:1px solid var(--blush); color:var(--blush); font-size:.8125rem; padding:0; transition:background-color .3s ease, color .3s ease;}
.steps li:hover::before{background:var(--blush); color:var(--navy);}
.form{position:relative; box-shadow:0 40px 80px -40px rgba(0,0,0,.7); border-top:4px solid var(--rose);}
.field input,.field select,.field textarea{transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--rose); box-shadow:0 0 0 4px rgba(154,74,90,.15); background:var(--blush-50);}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--navy);}
@media (prefers-reduced-motion:reduce){.journey li:last-child .num,.refer::before{animation:none;}}

/* ===================== v59: ribbons redesigned — two visible parallel lanes ===================== */
.tb-ribbons{position:relative; display:grid; gap:10px; margin-top:clamp(40px,5vw,64px); padding-block:10px; transform:rotate(-1.5deg); width:106%; margin-left:-3%;}
.tb-lane{position:relative; display:flex; align-items:stretch; overflow:hidden;}
.tb-l1{background:var(--rose);}
.tb-l2{background:var(--navy);}
.tb-lane .tb-marquee{flex:1; margin:0; width:auto; padding-block:16px; border:0; -webkit-mask-image:none; mask-image:none; background:none; transform:none; box-shadow:none; position:static;}
.tb-tag{position:relative; z-index:2; display:flex; align-items:center; flex-shrink:0; padding:0 22px 0 calc(3% + var(--gutter)); font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap;}
.tb-l1 .tb-tag{background:var(--navy); color:var(--blush);}
.tb-l2 .tb-tag{background:var(--rose); color:#fff;}
.tb-tag::after{content:""; position:absolute; right:-14px; top:0; bottom:0; width:14px; background:inherit; clip-path:polygon(0 0,100% 50%,0 100%);}
.tb-lane .tb-track{gap:28px; padding-left:24px;}
.tb-lane .tb-track li{font-size:clamp(.9375rem,.85rem + .45vw,1.25rem); font-weight:650; font-stretch:112%; letter-spacing:.05em; text-transform:uppercase; color:#fff; -webkit-text-stroke:0;}
.tb-l1 .tb-track{animation:tbScroll 60s linear infinite;}
.tb-l2 .tb-track{animation:tbScroll 70s linear infinite reverse;}
.tb-l1 .tb-dot{width:7px; height:7px; background:var(--blush);}
.tb-l2 .tb-star{color:var(--blush); font-size:.85rem;}
.tb-lane:hover .tb-track{animation-play-state:paused;}
.tband .tb-lane{transition:transform 1s var(--mo), opacity .8s ease;}
.tband.pending .tb-l1{transform:translateX(-10%); opacity:0;}
.tband.pending .tb-l2{transform:translateX(10%); opacity:0;}
@media(max-width:639px){.tb-tag{padding:0 14px 0 calc(3% + 14px); font-size:.75rem;} .tb-lane .tb-marquee{padding-block:12px;}}
@media (prefers-reduced-motion:reduce){.tb-lane .tb-track{animation:none;}}

/* v60: one straight ribbon */
.tb-ribbons{transform:none; width:100%; margin-left:0; padding-block:0;}
.tb-l2{background:var(--rose);}
.tb-l2 .tb-star{color:var(--navy);}
.tb-lane .tb-marquee{padding-block:20px;}

/* ===================== v61: review fixes ===================== */
.film::before{animation:none !important; display:none;}
.hero::before{animation:none !important;}
.hero-badge .pulse::after{animation:none !important; display:none;}
@media(min-width:1180px) and (prefers-reduced-motion:no-preference){.hcard{animation:hcIn .6s var(--mo) both !important;} .hcard:nth-child(1){animation-delay:.5s !important;} .hcard:nth-child(2){animation-delay:.6s !important;}}
.prog::before,.foot::before,.refer::before{animation:none !important;}
.journey .num,.journey:not(.pending) li:last-child .num,.journey li:last-child .num{animation:none !important;}
@media (prefers-reduced-motion:no-preference){
.hero .eyebrow{animation:fadeUpSoft .5s var(--smooth) .05s both !important;}
.hero h1 .ln:nth-child(1) > span{animation:lineUpSoft .6s var(--smooth) .1s both !important;}
.hero h1 .ln:nth-child(2) > span{animation:lineUpSoft .6s var(--smooth) .17s both !important;}
.hero h1 .ln:nth-child(3) > span{animation:lineUpSoft .6s var(--smooth) .24s both !important;}
.hero h1 .ln:nth-child(4) > span{animation:lineUpSoft .6s var(--smooth) .31s both !important;}
.hero .hero-copy > .support{animation:fadeUpSoft .55s var(--smooth) .4s both !important;}
.hero .hero-copy > .hero-cta{animation:fadeUpSoft .55s var(--smooth) .45s both !important;}
.vid-btn{animation:fadeUpSoft .5s var(--smooth) .6s both !important;}
.hero .hl{animation:hlSweep .6s var(--mo) .6s forwards !important;} .hero .hl2{animation-delay:.75s !important;}
}
@media (prefers-reduced-motion:reduce){.hero .hl{background-size:100% 34% !important;}}
.sp-stage :focus-visible{outline:2px solid var(--blush); outline-offset:3px;}
.form :focus-visible,.refer .form .btn:focus-visible{outline:2px solid var(--navy); outline-offset:3px;}
@media(hover:hover){.dm ol:hover .dm-row:not(:hover){opacity:.85;}}
.form-summary{margin-top:18px; padding:14px 16px; border-left:4px solid #B3261E; background:#FDF0EF; color:#5C1712; font-size:.9375rem; border-radius:4px;}
.form-summary ul{margin:8px 0 0 18px;}
.form-summary a{color:#5C1712; text-decoration:underline; font-weight:600;}
.field.has-err input,.field.has-err select,.field.has-err textarea{border-color:#B3261E; border-width:2px;}
.field-err{margin-top:6px; font-size:.875rem; font-weight:600; color:#B3261E;}
@media(max-width:759px){.as-head figure::after{display:none;} .as-head figure img{clip-path:none;}}
@media(max-width:1079px){body.dock-on .site .bar > .btn{display:none;}}
.foot a,.f-col a,.foot-base nav a,.contact .lines a,.f-contact dd a,.liaison a,.direct a{display:inline-flex; align-items:center; min-height:32px;}

/* ===================== v62: logo intro ===================== */
.intro{position:fixed; inset:0; z-index:200; display:grid; place-items:center; background:var(--navy); clip-path:inset(0 0 0 0); transition:clip-path .6s cubic-bezier(.7,0,.25,1);}
.intro::after{content:""; position:absolute; inset:0; background:radial-gradient(50% 50% at 50% 55%, rgba(154,74,90,.35), rgba(154,74,90,0) 70%); pointer-events:none;}
.intro-in{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:18px;}
.intro img{width:min(340px, 68vw); height:auto; opacity:0; transform:translateY(10px) scale(.96); animation:introLogo .5s cubic-bezier(.2,.7,.2,1) .05s forwards;}
.intro-rule{display:block; width:min(220px, 48vw); height:2px; background:linear-gradient(90deg, var(--rose), var(--blush)); transform:scaleX(0); animation:introRule .55s cubic-bezier(.2,.7,.2,1) .25s forwards;}
@keyframes introLogo{to{opacity:1; transform:none;}}
@keyframes introRule{to{transform:scaleX(1);}}
.intro-out .intro{clip-path:inset(0 0 100% 0);}
.intro-out .intro-in{transform:translateY(-24px); opacity:0; transition:transform .5s ease, opacity .35s ease;}
html.intro-on{overflow:hidden;}
html.intro-on .hero *,html.intro-on .hero *::before,html.intro-on .hero *::after{animation-play-state:paused !important;}
html.intro-on .site{opacity:0;}
.site{transition:background-color .35s ease, border-color .35s ease, opacity .5s ease .2s;}
@media (prefers-reduced-motion:reduce){.intro{display:none !important;}}

/* v63: intro plays on every load; calm fade for reduced-motion devices */
@media (prefers-reduced-motion:reduce){.intro{display:grid !important;}}
.intro-calm .intro{transition:opacity .5s ease !important; clip-path:none !important;}
.intro-calm .intro img,.intro-calm .intro-rule{animation:none !important; opacity:1 !important; transform:none !important;}
.intro-calm.intro-out .intro{opacity:0;}
.intro-calm.intro-out .intro-in{transform:none !important;}

/* ===================== v64: logo intro rebuilt in pure CSS ===================== */
.intro{position:fixed; inset:0; z-index:200; display:grid !important; place-items:center; background:var(--navy); pointer-events:none;
  clip-path:inset(0 0 0 0); opacity:1; transition:none !important;
  animation:introWipe .6s cubic-bezier(.7,0,.25,1) 1.05s forwards;}
.intro-in{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:18px; animation:introLift .5s ease 1.05s forwards;}
.intro img{width:min(340px,68vw) !important; height:auto; opacity:0; transform:translateY(10px) scale(.96); animation:introLogo .5s cubic-bezier(.2,.7,.2,1) .1s forwards !important;}
.intro-rule{display:block; width:min(220px,48vw) !important; height:2px; background:linear-gradient(90deg,var(--rose),var(--blush)); transform:scaleX(0); animation:introRule .55s cubic-bezier(.2,.7,.2,1) .3s forwards !important;}
@keyframes introWipe{0%{clip-path:inset(0 0 0 0);} 99%{clip-path:inset(0 0 100% 0); visibility:visible;} 100%{clip-path:inset(0 0 100% 0); visibility:hidden;}}
@keyframes introLift{to{transform:translateY(-24px); opacity:0;}}
@media (prefers-reduced-motion:reduce){
  .intro{animation:introFade .5s ease 1s forwards !important; clip-path:none;}
  .intro-in{animation:none !important;}
  .intro img,.intro-rule{animation:none !important; opacity:1 !important; transform:none !important;}
}
@keyframes introFade{0%{opacity:1;} 99%{opacity:0; visibility:visible;} 100%{opacity:0; visibility:hidden;}}

/* ===================== v65: 3s logo intro + apprenticeships gap ===================== */
.intro{animation:introWipe .7s cubic-bezier(.7,0,.25,1) 2.35s forwards !important;}
.intro-in{animation:introLift .55s ease 2.35s forwards !important;}
.intro-tag{display:block; margin-top:4px; font-family:var(--sans); font-size:.8125rem; font-weight:650; font-stretch:112%; letter-spacing:.18em; text-transform:uppercase; color:var(--blush); opacity:0; transform:translateY(8px); animation:introTag .6s ease .85s forwards;}
@keyframes introTag{to{opacity:.9; transform:none;}}
@media (prefers-reduced-motion:reduce){
  .intro{animation:introFade .6s ease 2.4s forwards !important;}
  .intro-tag{animation:none !important; opacity:.9 !important; transform:none !important;}
}
@media(min-width:1080px){
  .appr{min-height:0 !important; align-items:stretch;}
  .appr-body{padding-top:clamp(64px,6vw,104px) !important; padding-bottom:clamp(64px,6vw,104px) !important; align-self:center;}
}

/* ===================== v66: mobile pathways + apprenticeship type matches ===================== */
.bridge{align-items:start !important;}
/* Apprenticeship word uses the same system as BE/AU/TY and CONS/TRUC/TION */
.appr-word{position:absolute; z-index:2; left:max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter))); top:50%; bottom:auto; transform:translateY(-50%);
  margin:0; color:#fff; -webkit-text-stroke:0 !important; font-size:min(12svh, 6.6vw) !important; font-weight:800; font-stretch:125%; line-height:.86; letter-spacing:-.04em; isolation:isolate; text-align:left;}
.appr-word .ln{display:block; overflow:visible; padding:.02em 0 .03em;}
.appr-word .ln:nth-child(2){padding-left:.42em;}
.appr-word .ln:nth-child(3){padding-left:.95em;}
.appr-word .ln > span{display:inline-block; position:relative; color:#fff;}
.appr-word .ln > span::after{content:attr(data-t); position:absolute; left:.05em; top:.045em; z-index:-1; color:transparent; -webkit-text-stroke:1.5px rgba(242,182,176,.7);}
.appr.pending .appr-word{opacity:0; transform:translateY(calc(-50% + 30px));}
@media(max-width:1079px){
  .appr-photo{aspect-ratio:4 / 3.4;}
  .appr-word{top:auto; bottom:24px; transform:none; left:var(--x, var(--gutter)); font-size:15vw !important;}
  .appr.pending .appr-word{transform:translateY(30px);}
}
/* phones: both pathway panels share one layout — photo band, word bottom-left, text below */
@media(max-width:599px){
  .sp-panel{height:88vw !important; margin-top:0 !important; clip-path:none !important;}
  [data-panel="construction"]{margin-top:0 !important;}
  .sp-panel .sp-img::after{background:linear-gradient(180deg, rgba(36,20,36,.15) 0%, rgba(36,20,36,.35) 45%, rgba(36,20,36,.88) 100%) !important;}
  [data-panel="beauty"] .sp-img img{object-position:30% 40% !important;}
  [data-panel="construction"] .sp-img img{object-position:60% 50% !important;}
  .sp-word{position:absolute !important; top:auto !important; bottom:22px !important; left:var(--gutter) !important; right:auto !important; transform:none !important; font-size:15vw !important; margin:0 !important;}
  .sp-pv{margin:0 !important; padding:26px var(--gutter) 40px; background:var(--navy);}
  [data-pv="construction"]{margin-bottom:0 !important; border-top:0;}
  [data-panel="construction"]{border-top:1px solid var(--navy-line);}
}

/* v67: photos with captions stay still so the image never covers its caption */
.why-photo img,.dm-photo img,.as-head figure img{scale:1 !important; translate:none !important;}
.why-photo figcaption,.dm-photo figcaption,.as-head figcaption{position:relative; z-index:2; margin-top:14px; padding-top:0;}
.why-photo,.dm-photo,.as-head figure{overflow:visible !important;}
.why-photo img,.dm-photo img,.as-head figure img{display:block;}

/* v68: Safeguarding photo: clean frame, no diagonal cut or stripe */
.as-head figure::after{display:none !important;}
.as-head figure img{clip-path:none !important; border-radius:4px;}

/* ===================== v69: 5 AP sites viewer in Delivery Models ===================== */
.sites{position:relative; min-width:0;}
.st-view{position:relative; aspect-ratio:16 / 10; overflow:hidden; border-radius:4px; background:var(--navy);}
.st-slide{position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; transition:opacity .6s ease, visibility 0s .6s; clip-path:inset(0 0 0 0);}
.st-slide.is-on{opacity:1; visibility:visible; transition:opacity .6s ease, visibility 0s;}
.st-slide img,.st-slide video{width:100%; height:100%; object-fit:cover; transform:scale(1.08); transition:transform 6.5s linear;}
.st-slide.is-on img,.st-slide.is-on video{transform:scale(1);}
.st-slide::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(36,20,36,0) 45%, rgba(36,20,36,.82) 100%); pointer-events:none;}
.st-slide figcaption{position:absolute; z-index:1; left:22px; right:22px; bottom:18px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; color:#fff; font-size:.9375rem; transform:translateY(10px); opacity:0; transition:transform .6s var(--mo) .15s, opacity .5s ease .15s;}
.st-slide.is-on figcaption{transform:none; opacity:1;}
.st-slide figcaption b{font-size:clamp(1.25rem,1rem + .8vw,1.75rem); font-weight:600; letter-spacing:-.02em; flex-basis:100%;}
.st-loc{color:var(--on-navy);}
.st-tags{display:flex; gap:6px;}
.st-tags span{padding:3px 10px; border:1px solid rgba(242,182,176,.6); border-radius:999px; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.08em; text-transform:uppercase; color:var(--blush);}
.st-sample{position:absolute; z-index:2; top:12px; right:12px; padding:4px 10px; border:1px dashed rgba(255,255,255,.6); border-radius:999px; font-size:.75rem; font-weight:650; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:rgba(36,20,36,.45);}
.st-tabs{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-top:12px;}
.st-tab{position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-height:56px; padding:10px 2px 12px; border:0; border-top:1px solid var(--line); background:none; color:var(--muted); text-align:left; cursor:pointer; transition:color .25s ease;}
.st-tab:hover,.st-tab.is-on{color:var(--navy);}
.st-n{font-size:.75rem; font-weight:650; letter-spacing:.1em; color:var(--rose);}
.st-name{font-size:.875rem; font-weight:600; line-height:1.25;}
.st-bar{position:absolute; left:0; right:0; top:-1px; height:2px; background:var(--rose); transform:scaleX(0); transform-origin:left;}
.st-tab.is-on .st-bar{animation:stBar var(--st-dur,6s) linear forwards;}
.sites.paused .st-tab.is-on .st-bar{animation-play-state:paused;}
@keyframes stBar{to{transform:scaleX(1);}}
@media(max-width:759px){
  .st-view{aspect-ratio:4 / 3;}
  .st-tabs{display:flex; overflow-x:auto; gap:16px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:4px;}
  .st-tab{flex:0 0 auto; min-width:140px; scroll-snap-align:start;}
}
@media (prefers-reduced-motion:reduce){.st-slide img,.st-slide video{transform:none !important; transition:none !important;} .st-tab.is-on .st-bar{animation:none; transform:scaleX(1);}}

/* ===================== v70: 5 AP sites as its own sub-block under the 4 models ===================== */
.sites-blk{display:grid; gap:24px; margin-top:clamp(56px,7vw,96px); padding-top:28px; border-top:1px solid var(--navy); scroll-margin-top:96px;}
.sb-head .eyebrow{margin-bottom:12px;}
.sb-head h3{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.75rem); line-height:1.05; letter-spacing:-.03em;}
.sb-head p{margin-top:12px; max-width:34ch; color:var(--muted);}
.sb-head .sb-note{margin-top:16px; font-size:.75rem; font-weight:650; letter-spacing:.08em; text-transform:uppercase; color:var(--rose);}
@media(min-width:1000px){.sites-blk{grid-template-columns:minmax(0,4fr) minmax(0,8fr); column-gap:clamp(40px,5vw,80px); align-items:start;}}
.to-sites{color:inherit; text-decoration:underline; text-decoration-color:var(--rose); text-underline-offset:3px;}
.to-sites:hover{color:var(--rose);}

/* ===================== v71: section numbers removed ===================== */
.where b{display:none;}
.sec-mark{display:block;}
.sec-mark .eyebrow{padding-bottom:0;}

/* ===================== v72: 5 sites typography cleanup ===================== */
.sb-head .eyebrow{margin-bottom:10px;}
.sb-head p{font-size:1rem; line-height:1.55;}
.sb-head .sb-note{margin-top:10px; font-size:.8125rem; font-weight:500; letter-spacing:0; text-transform:none; color:var(--muted); font-style:italic;}
.st-slide figcaption{gap:6px 10px;}
.st-loc{font-size:.875rem;}
@media(max-width:759px){
  .sites-blk{gap:20px;}
  .sb-head h3{font-size:1.75rem;}
  .st-slide figcaption{left:16px; right:16px; bottom:14px;}
  .st-slide figcaption b{font-size:1.125rem; line-height:1.2;}
  .st-loc{font-size:.8125rem;}
  .st-tags span{padding:2px 8px; font-size:.75rem; letter-spacing:.06em;}
  /* tabs become a clean vertical list instead of a cut-off scroller */
  .st-tabs{display:block; overflow:visible; margin-top:8px; padding:0;}
  .st-tab{display:flex; flex-direction:row; align-items:baseline; gap:12px; width:100%; min-width:0; min-height:48px; padding:13px 0 13px 14px; border-top:0; border-bottom:1px solid var(--line);}
  .st-tab .st-name{font-size:.9375rem;}
  .st-bar{left:0; right:auto; top:12px; bottom:12px; width:2px; height:auto; transform:scaleY(0); transform-origin:top;}
  .st-tab.is-on .st-bar{animation-name:stBarY;}
}
@keyframes stBarY{to{transform:scaleY(1);}}
@media (max-width:759px) and (prefers-reduced-motion:reduce){.st-tab.is-on .st-bar{animation:none; transform:scaleY(1);}}

/* ===================== v73: FINAL PALETTE = Aubergine & Rose (agreed with client) ===================== */
/* ===== PALETTE: Aubergine & Rose (a warmer, softer direction) ===== */
:root{--navy:#241424; --navy-2:#331D32; --navy-line:#4A3048; --navy-deep:#1B0E1B;
 --stone:#FBF6F2; --line:#EADFD8; --ink:#241424; --muted:#655565; --on-navy:#EDDDE8;
 --rose:#9A4A5A; --blush:#F2B6B0; --blush-50:#FBEDEA; --glow:rgba(154,74,90,.32);}

/* shared: route the few fixed dark shades through the palette tokens */
.foot{background:var(--navy-deep, var(--navy));}
.c-type,.sp-base,[data-panel="beauty"]{background:linear-gradient(180deg, var(--navy-2) 0%, var(--navy) 100%) !important;}
[data-panel="construction"]{background:var(--navy) !important;}
.sp-detail::before{background:radial-gradient(70% 90% at 80% 50%, var(--glow), transparent 70%), linear-gradient(180deg, var(--navy-2) 0%, var(--navy) 100%) !important;}

/* hero + image overlays in this palette */
.film::after{background:linear-gradient(90deg, rgba(36,20,36,.9) 0%, rgba(36,20,36,.78) 38%, rgba(36,20,36,.35) 62%, rgba(36,20,36,.08) 100%) !important;}
@media(max-width:639px){.film::after{background:linear-gradient(0deg, rgba(36,20,36,.96) 0%, rgba(36,20,36,.86) 38%, rgba(36,20,36,.3) 60%, rgba(36,20,36,0) 74%) !important;}}
.site::before{background:linear-gradient(180deg, rgba(36,20,36,.6), rgba(36,20,36,0)) !important;}
.hcard{background:rgba(36,20,36,.6) !important;}
.hero-badge{background:rgba(36,20,36,.5) !important;}
.sp-img::after{background:rgba(36,20,36,var(--veil,.5)) !important;}
.appr-photo::after{background:linear-gradient(180deg, rgba(36,20,36,.15), rgba(36,20,36,.55)) !important;}
.prog-bg::after{background:radial-gradient(60% 70% at 85% 20%, var(--glow), transparent 70%), linear-gradient(180deg, rgba(36,20,36,.8), var(--navy) 85%) !important;}
.refer::before,.hero::after{background:radial-gradient(circle, var(--glow), transparent 65%) !important;}


/* ===================== v74: referral / enquiry switch ===================== */
.f-mode{display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; margin-bottom:22px; border:1px solid var(--line); border-radius:999px; background:var(--stone);}
.f-mode label{position:relative; display:block; cursor:pointer;}
.f-mode input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
.f-mode span{display:flex; align-items:center; justify-content:center; min-height:44px; padding:0 12px; border-radius:999px; font-size:.875rem; font-weight:650; color:var(--muted); text-align:center; transition:background .25s ease, color .25s ease;}
.f-mode input:checked + span{background:var(--navy); color:#fff;}
.f-mode input:focus-visible + span{outline:2px solid var(--rose); outline-offset:2px;}
.fset[hidden]{display:none !important;}

/* ===================== v76: 5 AP sites header mirrors the 4 delivery models header ===================== */
.sb-head .sb-title{font-size:var(--sb-h2,clamp(2.25rem, 1.6rem + 2.2vw, 3.75rem)); line-height:1.02; letter-spacing:-.035em; font-weight:600; margin-top:10px; max-width:11em;}
.sb-head p.big4{margin-top:4px; max-width:none; color:var(--navy); font-size:clamp(8rem, 4.5rem + 11vw, 16rem); line-height:.72;}
.sb-head p.lead{margin-top:22px; max-width:28em; font-size:clamp(1.0625rem,1rem + .35vw,1.3125rem); line-height:1.55;}
.sb-head .sec-mark .eyebrow{margin-bottom:0;}
@media(min-width:1000px){.sites-blk{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px); align-items:end;}}
.sb-head .sb-title em{font-family:var(--serif); font-style:italic; font-weight:400; font-stretch:100%; letter-spacing:-.02em; font-size:1.06em; color:var(--rose);}

/* ===================== v77: progression removed; 5 AP sites gets its own dark photo section ===================== */
.sites-sec .sites-blk{margin-top:0; padding-top:0; border-top:0;}
.sites-sec .sb-head p.big4{color:#fff;}
.sites-sec .sb-head .sb-title{color:#fff;}
.sites-sec .sb-head .sb-title em{color:var(--blush);}
.sites-sec .sb-head p.lead{color:var(--on-navy);}
.sites-sec .sb-head .sb-note{color:var(--on-navy); opacity:.8;}
.sites-sec .st-view{box-shadow:0 30px 60px -30px rgba(0,0,0,.6);}
.sites-sec .st-tab{color:var(--on-navy); border-color:rgba(255,255,255,.18);}
.sites-sec .st-tab:hover,.sites-sec .st-tab.is-on{color:#fff;}
.sites-sec .st-n{color:var(--blush);}
.sites-sec .st-bar{background:var(--blush);}
.sites-sec .st-tab:focus-visible{outline:2px solid var(--blush); outline-offset:2px;}

/* ===================== v79: Delivery model cards redesigned (tinted art, serif numerals, info panel, CTA bar) ===================== */
.dm ol{gap:20px;}
@media(min-width:1180px){.dm ol{gap:20px;}}
.dm .dm-row{padding:0; background:#fff !important; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 1px 2px rgba(36,20,36,.04) !important; transition:transform .45s var(--mo), box-shadow .45s var(--mo), border-color .3s ease, opacity .45s var(--mo);}
.dm .dm-row::after{display:none;}
.dm .dm-row::before{top:0; height:4px; z-index:3;}
.dm .dm-row:hover{transform:translateY(-8px); border-color:rgba(154,74,90,.35); box-shadow:0 30px 50px -28px rgba(36,20,36,.45) !important;}
@media(hover:hover){.dm ol:hover .dm-row:not(:hover){opacity:.75;}}
/* art panel: each model gets its own tint from the palette */
.dm .dm-row .art{order:0; position:relative; margin:0; border-radius:0; aspect-ratio:1200 / 768; background:var(--tint,#F7E6E3);}
.dm .dm-row:nth-child(1){--tint:#F8E4E1;}
.dm .dm-row:nth-child(2){--tint:#F1E4EE;}
.dm .dm-row:nth-child(3){--tint:#F6EADF;}
.dm .dm-row:nth-child(4){--tint:#EAE2EC;}
.dm .dm-row .art::after{background:radial-gradient(60% 70% at 50% 75%, rgba(255,255,255,.7), rgba(255,255,255,0) 70%);}
.dm .art-no{display:block; position:absolute; z-index:2; top:12px; left:16px; font-family:var(--serif); font-style:italic; font-weight:400; font-size:2.5rem; line-height:1; letter-spacing:-.02em; color:var(--rose);}
/* copy */
.dm .dm-row .top{order:1; padding:22px 22px 0;}
.dm .dm-row .top .n{display:none;}
.dm .dm-row h3{font-size:1.375rem; line-height:1.15;}
.dm .dm-row .what{order:2; padding:8px 22px 0; font-size:.9688rem; line-height:1.55;}
/* where / who: soft info panel with icons */
.dm .dm-row dl{order:3; display:grid; grid-template-columns:1fr; gap:12px; margin:18px 22px 0; padding:14px 16px; border:0; border-radius:12px; background:var(--tint); }
@media(min-width:700px) and (max-width:1179px){.dm .dm-row dl{grid-template-columns:1fr;}}
.dm .dm-row dl > div{position:relative; padding-left:26px;}
.dm .dm-row dl > div::before{content:""; position:absolute; left:0; top:1px; width:16px; height:16px; background:var(--rose); -webkit-mask:var(--ic) center / contain no-repeat; mask:var(--ic) center / contain no-repeat;}
.dm .dm-row dl > div:first-child{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");}
.dm .dm-row dl > div:last-child{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-7 8-7s8 2.6 8 7'/%3E%3C/svg%3E");}
.dm .dm-row dt{font-size:.6875rem; color:var(--rose); letter-spacing:.1em;}
.dm .dm-row dd{margin-top:3px; font-size:.9375rem; line-height:1.4; color:var(--ink);}
/* CTA: full-width bar with a circular arrow */
.dm .dm-row .act{order:4; align-self:stretch; display:flex; justify-content:space-between; align-items:center; margin:22px 0 0; margin-top:auto; padding:18px 22px; border-top:1px solid var(--line); font-size:.9375rem; color:var(--navy); transition:background .3s ease, color .3s ease;}
.dm .dm-row dl + .act,.dm .dm-row .act{margin-top:auto;}
.dm .dm-row dl{margin-bottom:22px;}
.dm .dm-row .act::after{display:none;}
.dm .dm-row .act .i-arrow{box-sizing:content-box; width:14px; height:14px; padding:9px; border-radius:50%; border:1px solid currentColor; transition:transform .35s var(--mo), background .3s ease, color .3s ease, border-color .3s ease;}
.dm .dm-row:hover .act{background:var(--navy); color:#fff;}
.dm .dm-row:hover .act .i-arrow{transform:translateX(0) rotate(-45deg); background:var(--blush); border-color:var(--blush); color:var(--navy);}
.dm .dm-row .act:focus-visible{outline:2px solid var(--rose); outline-offset:-4px;}
.dm .dm-row .act > *{pointer-events:none;}
@media (prefers-reduced-motion:reduce){.dm .dm-row:hover{transform:none;} .dm .dm-row:hover .act .i-arrow{transform:none;}}
.dm .art-no{top:12px; left:12px; padding:4px 12px 2px; border-radius:999px; background:rgba(255,255,255,.88); font-size:1.5rem; line-height:1.1; box-shadow:0 4px 12px -6px rgba(36,20,36,.3);}

/* v80: hub photo removed from Delivery header; header runs full width */
.dm-head2{grid-template-columns:1fr !important;}

/* ===================== v81: accreditation / partner logo row (placeholders) ===================== */
.tb-logos{margin-top:clamp(24px,3vw,36px);}
.tb-logos ul{list-style:none; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px;}
.tb-logos li{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:76px; padding:10px 12px; border:1px dashed rgba(36,20,36,.25); border-radius:10px; text-align:center; color:var(--muted); transition:border-color .3s ease, color .3s ease;}
.tb-logos li:hover{border-color:var(--rose); color:var(--navy);}
.tb-logos li img{max-height:44px; width:auto; filter:grayscale(1); opacity:.75; transition:filter .3s ease, opacity .3s ease;}
.tb-logos li:hover img{filter:none; opacity:1;}
.lg-name{font-size:1rem; font-weight:650; letter-spacing:-.01em; line-height:1.15;}
.lg-sub{font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); opacity:.85;}
.lg-note{margin-top:10px; font-size:.8125rem; font-style:italic; color:var(--muted);}
@media(max-width:759px){.tb-logos ul{grid-template-columns:repeat(2,minmax(0,1fr));} .tb-logos li:last-child{grid-column:1 / -1;}}

/* ===================== v82: heavier logo intro: hub photo + aubergine wash + rose glow, slow push-in ===================== */
.intro{background:var(--navy-deep,#1B0E1B) !important; overflow:hidden;}
.intro-bg{position:absolute; inset:0; z-index:0;}
.intro .intro-bg img{position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none; object-fit:cover; opacity:0; filter:grayscale(.35) contrast(1.05) !important; transform:scale(1.12); animation:introBg 3s cubic-bezier(.2,.7,.2,1) forwards !important;}
.intro-bg::after{content:""; position:absolute; inset:0; background:radial-gradient(55% 60% at 50% 50%, rgba(154,74,90,.55), rgba(154,74,90,0) 70%), linear-gradient(180deg, rgba(27,14,27,.72) 0%, rgba(36,20,36,.82) 55%, rgba(27,14,27,.95) 100%);}
.intro::after{z-index:0; background:radial-gradient(40% 45% at 50% 52%, rgba(242,182,176,.18), rgba(242,182,176,0) 70%) !important;}
.intro::before{content:""; position:absolute; z-index:1; inset:clamp(14px,2.5vw,28px); border:1px solid rgba(242,182,176,.28); pointer-events:none; opacity:0; animation:introFrame .8s ease .2s forwards;}
.intro-in{z-index:2;}
.intro .intro-in img{width:min(440px,76vw) !important; filter:drop-shadow(0 10px 30px rgba(0,0,0,.45));}
.intro-tag{font-size:.875rem !important; text-shadow:0 2px 12px rgba(0,0,0,.5);}
@keyframes introBg{0%{opacity:0; transform:scale(1.12);} 30%{opacity:.55;} 100%{opacity:.55; transform:scale(1.02);}}
@keyframes introFrame{to{opacity:1;}}
@media (prefers-reduced-motion:reduce){.intro .intro-bg img{animation:none !important; opacity:.55 !important; transform:none !important;} .intro::before{animation:none; opacity:1;}}
@media(max-width:480px){.intro-tag{font-size:.75rem !important; letter-spacing:.12em !important;}}

/* ===================== v83: leaner model cards: "Where" removed, "Who it suits" as one line ===================== */
.dm .dm-row .suits{order:3; margin:16px 22px 22px; padding-left:12px; border-left:2px solid var(--rose); font-size:.9375rem; line-height:1.45; color:var(--ink);}
.dm .dm-row .suits b{display:block; font-size:.6875rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose); margin-bottom:2px;}
.dm .dm-row .what .to-sites{color:inherit;}
.dm .dm-row .what{padding-bottom:22px;}

/* ===================== v85: real logos — accreditation + awards ===================== */
.tb-logos{display:grid; gap:18px;}
@media(min-width:1000px){.tb-logos{grid-template-columns:minmax(0,2fr) minmax(0,4fr); gap:20px;}}
.lg-lab{display:block; margin-bottom:10px; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose);}
.tb-logos ul{display:flex; flex-wrap:wrap; gap:10px; grid-template-columns:none;}
.tb-logos li{flex:1 1 92px; min-height:96px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:12px; display:flex; align-items:center; justify-content:center;}
.tb-logos li.wide{flex:2 1 180px;}
.tb-logos li:hover{border-color:rgba(154,74,90,.4);}
.tb-logos li img{max-height:70px; max-width:100%; width:auto; height:auto; filter:none !important; opacity:1 !important; object-fit:contain;}
.tb-logos li.wide img{max-height:58px;}
@media(max-width:759px){.tb-logos li{min-height:84px; flex-basis:40%;} .tb-logos li:last-child{grid-column:auto;} .tb-logos li img{max-height:58px;}}
.tb-logos li{min-height:108px; padding:8px 10px;} .tb-logos li img{max-height:90px;} .tb-logos li.wide img{max-height:64px;}
@media(max-width:759px){.tb-logos li{min-height:92px;} .tb-logos li img{max-height:76px;}}

/* ===================== v86: logos as one clean strip (no tiles, no labels) ===================== */
.tb-logos2{list-style:none; display:flex; align-items:center; justify-content:space-between; gap:0; margin-top:clamp(32px,4vw,52px); padding-block:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.tb-logos2 li{flex:1 1 0; display:flex; align-items:center; justify-content:center; padding:0 clamp(10px,1.6vw,24px); min-height:84px;}
.tb-logos2 li + li{border-left:1px solid var(--line);}
.tb-logos2 li.w{flex:1.7 1 0;}
.tb-logos2 img{max-height:84px; max-width:100%; width:auto; height:auto; mix-blend-mode:multiply; transition:transform .35s var(--mo);}
.tb-logos2 li.w img{max-height:60px;}
.tb-logos2 li:hover img{transform:scale(1.05);}
@media(max-width:899px){
  .tb-logos2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding-block:0;}
  .tb-logos2 li{min-height:96px; padding:14px 10px; border-left:0 !important; border-bottom:1px solid var(--line);}
  .tb-logos2 li:nth-child(odd){border-right:1px solid var(--line) !important;}
  .tb-logos2 li:nth-last-child(-n+2){border-bottom:0;}
  .tb-logos2 img{max-height:70px;} .tb-logos2 li.w img{max-height:48px;}
}

/* v87: all partner/award logos in one ink colour */
.tb-logos2 img{mix-blend-mode:normal; opacity:.9; transition:opacity .3s ease, transform .35s var(--mo);}
.tb-logos2 li:hover img{opacity:1;}
.tb-logos2 img{max-height:76px;} .tb-logos2 li.w img{max-height:56px;}
@media(max-width:899px){.tb-logos2{padding-block:14px; row-gap:6px;} .tb-logos2 li{border:0 !important; min-height:88px;}}

/* ===================== v88: partner & award logos ride in the rose ribbon (white, crisp) ===================== */
.tb-lane .tb-track{align-items:center; gap:30px;}
.tb-lane .tb-track li.tb-logo{display:flex; align-items:center;}
.tb-track .tb-logo img{height:58px; width:auto; display:block;}
.tb-lane .tb-marquee{padding-block:18px;}
@media(max-width:639px){.tb-track .tb-logo img{height:44px;} .tb-lane .tb-track{gap:22px;}}
.tb-track .tb-logo img[src*="vtct"],.tb-track .tb-logo img[src*="prestige"]{height:66px;}
@media(max-width:639px){.tb-track .tb-logo img[src*="vtct"],.tb-track .tb-logo img[src*="prestige"]{height:50px;}}
.tb-lane .tb-track{gap:44px;} .tb-l2 .tb-track{animation-duration:55s;}
@media(max-width:639px){.tb-lane .tb-track{gap:30px;}}

/* v90: both section photos share one landscape 4:3 frame */
.why-photo img,.as-head figure img{aspect-ratio:4 / 3 !important; object-fit:cover; object-position:50% 30%; border-radius:4px;}
@media(min-width:1000px){.why-photo{max-width:560px; margin-top:120px;}}

/* v91: compact delivery model cards */
.dm .dm-row .art{aspect-ratio:16 / 8;}
.dm .dm-row .art img{object-fit:cover; object-position:50% 70%;}
.dm .art-no{top:8px; left:8px; padding:2px 10px 1px; font-size:1.125rem;}
.dm .dm-row .top{padding:16px 18px 0;}
.dm .dm-row h3{font-size:1.125rem;}
.dm .dm-row .what{padding:6px 18px 16px; font-size:.875rem; line-height:1.5;}
.dm .dm-row .act{padding:12px 18px; font-size:.875rem;}
.dm .dm-row .act .i-arrow{padding:7px; width:12px; height:12px;}
.dm .dm-row{border-radius:14px;}
.dm ol{gap:16px !important;}
@media(max-width:699px){.dm ol{grid-template-columns:1fr 1fr; gap:12px !important;} .dm .dm-row .top{padding:12px 12px 0;} .dm .dm-row h3{font-size:1rem;} .dm .dm-row .what{padding:4px 12px 12px; font-size:.8125rem;} .dm .dm-row .act{padding:10px 12px; font-size:.8125rem;} .dm .art-no{font-size:.9375rem;}}
@media(max-width:699px){.dm .dm-row .act{white-space:nowrap; font-size:.75rem; gap:6px;} .dm .dm-row .act .i-arrow{padding:5px; width:10px; height:10px;}}

/* v92: original diagonal cut between Beauty and Construction (desktop/tablet) */
@media(min-width:601px){
  [data-panel="beauty"]{clip-path:polygon(0 0,56% 0,44% 100%,0 100%);}
  [data-panel="construction"]{clip-path:polygon(56% 0,100% 0,100% 100%,44% 100%);}
  [data-panel="beauty"] .sp-img img{width:58%;}
  [data-panel="construction"] .sp-img img{left:42%; width:58%;}
  [data-state="beauty-preview"] [data-panel="construction"]{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%);}
  [data-state="construction-preview"] [data-panel="beauty"]{clip-path:polygon(0 0,0 0,0 100%,0 100%);}
  [data-panel="beauty"] .sp-word{left:calc(var(--x) + 1vw);}
}

/* ===================== v93: 7-step School & LA referral form (from official site) ===================== */
.f-prog{margin-top:22px;}
.fp-top{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.fp-count{font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose);}
.fp-count b{font-weight:650;}
.fp-title{font-size:1.0625rem; font-weight:650; color:var(--ink);}
.fp-bar{margin-top:10px; height:4px; border-radius:4px; background:var(--line); overflow:hidden;}
.fp-bar i{display:block; height:100%; background:linear-gradient(90deg,var(--rose),var(--blush)); transition:width .5s var(--mo);}
.f-step{margin-top:22px;}
.f-step:not([hidden]){animation:stepIn .45s var(--mo);}
@keyframes stepIn{from{opacity:0; transform:translateX(14px);} to{opacity:1; transform:none;}}
.f-sub{margin-top:10px; padding-top:16px; border-top:1px solid var(--line); font-size:1rem; font-weight:650;}
.f-note{margin-top:-10px; font-size:.8125rem; font-weight:600; color:var(--rose);}
.rg{border:0; padding:0; margin:0; min-width:0;}
.rg legend{display:block; margin-bottom:8px; font-size:.9375rem; font-weight:600; line-height:1.4;}
.rg-opts{display:flex; flex-wrap:wrap; gap:8px;}
.rb{position:relative; cursor:pointer;}
.rb input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
.rb span{display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border:1px solid #8F7F8C; border-radius:999px; font-size:.9375rem; font-weight:600; transition:background .2s ease, color .2s ease, border-color .2s ease;}
.rb:hover span{border-color:var(--navy);}
.rb input:checked + span{background:var(--navy); border-color:var(--navy); color:#fff;}
.rb input:focus-visible + span{outline:2px solid var(--rose); outline-offset:2px;}
.rg.has-err .rb span{border-color:#B3261E;}
.addr legend{display:block; margin-bottom:7px; font-size:.9375rem; font-weight:600;}
.addr .fields{gap:10px;}
.addr input{width:100%; min-height:50px; padding:12px 14px; background:#fff; border:1px solid #8F7F8C; border-radius:var(--r); font-size:1rem;}
.addr input[aria-invalid="true"]{border-color:#B3261E; border-width:2px;}
.f-disc{margin-top:6px;}
.f-disc p{margin-top:8px; font-size:.875rem; line-height:1.55; color:var(--muted);}
.f-disc a{color:var(--rose); text-decoration:underline;}
.cb{display:flex; gap:12px; align-items:flex-start; margin-top:14px; font-size:.9375rem; cursor:pointer;}
.cb input{width:20px; height:20px; margin-top:2px; accent-color:var(--rose); flex-shrink:0;}
.field.has-err .cb input{outline:2px solid #B3261E;}
.f-nav{display:flex; justify-content:space-between; gap:12px; margin-top:26px;}
.f-nav .btn{margin-top:0;}
.f-nav #fNext{margin-left:auto;}
.form .btn-sec{background:transparent !important; color:var(--navy); border:1px solid var(--navy);}
.form .btn-sec:hover{background:var(--navy) !important; color:#fff;}
.i-back{transform:none !important;}
@media (prefers-reduced-motion:reduce){.f-step:not([hidden]){animation:none;}}
.form .rg legend,.form .addr legend{text-transform:none !important; letter-spacing:0 !important; font-stretch:100% !important; color:var(--ink) !important; font-size:.9375rem !important; font-weight:600 !important;}
.f-nav .btn[hidden],.f-prog[hidden]{display:none !important;}
.tb-track .tl-ymca img{height:46px;} .tb-track .tl-eap img{height:54px;} .tb-track .tl-achieve img{height:34px;}
@media(max-width:639px){.tb-track .tl-ymca img{height:36px;} .tb-track .tl-eap img{height:42px;} .tb-track .tl-achieve img{height:26px;}}
.tb-l2 .tb-track{animation-duration:60s;}

/* ===================== v95: balance pass — Why AAXA, model cards, ribbon logos ===================== */
/* Why AAXA: photo and copy share the width; photo grows and stays in view */
@media(min-width:1000px){
  .why-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr) !important; align-items:start;}
  .why-photo{max-width:none !important; width:100%; margin-top:0 !important; position:sticky; top:110px; justify-self:stretch;}
  .why-photo img{aspect-ratio:4 / 5 !important;}
}
.why h2{font-size:clamp(2.4rem, 1.5rem + 2.8vw, 4.25rem) !important;}
.why .lead{font-size:clamp(1.0625rem,1rem + .3vw,1.25rem);}
/* Delivery cards: never stretch wide — 4 across from 900px, 2 across (max 760px) on tablets */
.dm ol{max-width:1200px;}
@media(min-width:900px){.dm ol{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}}
@media(min-width:600px) and (max-width:899px){.dm ol{grid-template-columns:repeat(2,minmax(0,1fr)) !important; max-width:760px;}}
/* Ribbon logos: one visual size */
.tb-track .tb-logo img,.tb-track .tl-ymca img,.tb-track .tl-eap img,.tb-track .tl-achieve img,.tb-track .tb-logo img[src*="vtct"],.tb-track .tb-logo img[src*="prestige"]{height:56px !important; width:auto; max-width:160px; object-fit:contain;}
@media(max-width:639px){.tb-track .tb-logo img,.tb-track .tl-ymca img,.tb-track .tl-eap img,.tb-track .tl-achieve img,.tb-track .tb-logo img[src*="vtct"],.tb-track .tb-logo img[src*="prestige"]{height:44px !important; max-width:124px;}}

/* v96: logos sized by visual area so they read equally */
.tb-track .tl-vtct img{height:60px !important; max-width:none !important;}
.tb-track .tl-hounslow img{height:35px !important; max-width:none !important;}
.tb-track .tl-ymca img{height:38px !important; max-width:none !important;}
.tb-track .tl-eap img{height:48px !important; max-width:none !important;}
.tb-track .tl-achieve img{height:31px !important; max-width:none !important;}
.tb-track .tl-wlcc img{height:46px !important; max-width:none !important;}
.tb-track .tl-prestige-2526 img{height:60px !important; max-width:none !important;}
.tb-track .tl-prestige-2324 img{height:58px !important; max-width:none !important;}
.tb-track .tl-prestige-2022 img{height:60px !important; max-width:none !important;}
@media(max-width:639px){.tb-track .tl-vtct img{height:47px !important;} .tb-track .tl-hounslow img{height:27px !important;} .tb-track .tl-ymca img{height:29px !important;} .tb-track .tl-eap img{height:38px !important;} .tb-track .tl-achieve img{height:24px !important;} .tb-track .tl-wlcc img{height:36px !important;} .tb-track .tl-prestige-2526 img{height:47px !important;} .tb-track .tl-prestige-2324 img{height:45px !important;} .tb-track .tl-prestige-2022 img{height:47px !important;}}

/* ===================== v98: one image treatment — matched grade (baked into files) + one reveal transition ===================== */
.gx{overflow:hidden; border-radius:4px; position:relative;}
.gx img{transition:clip-path 1.1s cubic-bezier(.7,0,.2,1), transform 1.4s cubic-bezier(.2,.7,.2,1), filter 1.1s ease !important;}
.gx.gx-wait img{clip-path:inset(100% 0 0 0); transform:scale(1.12); filter:saturate(.6) brightness(1.05);}
.gx.gx-in img{clip-path:inset(0 0 0 0); transform:scale(1); filter:none;}
@media(hover:hover){.gx.gx-in:hover img{transform:scale(1.035); transition:transform .9s cubic-bezier(.2,.7,.2,1) !important;}}
.gx::after{content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(154,74,90,0) 55%, rgba(36,20,36,.18)); mix-blend-mode:multiply;}
/* the sites viewer frame reveals the same way */
.st-view.gx-wait{clip-path:inset(100% 0 0 0);} .st-view{transition:clip-path 1.1s cubic-bezier(.7,0,.2,1);} .st-view.gx-in{clip-path:inset(0 0 0 0);}
@media (prefers-reduced-motion:reduce){.gx.gx-wait img,.st-view.gx-wait{clip-path:none; transform:none; filter:none;} .gx img{transition:none !important;}}
.why-photo .gx img{object-position:50% 20% !important;}

/* v101: final 7 partner logos, sized by visual area */
.tb-track .tl-vtct img{height:62px !important; max-width:none !important;}
.tb-track .tl-hounslow img{height:35px !important; max-width:none !important;}
.tb-track .tl-coventry img{height:67px !important; max-width:none !important;}
.tb-track .tl-eap img{height:49px !important; max-width:none !important;}
.tb-track .tl-achieve img{height:32px !important; max-width:none !important;}
.tb-track .tl-focus img{height:41px !important; max-width:none !important;}
.tb-track .tl-highfield img{height:26px !important; max-width:none !important;}
@media(max-width:639px){.tb-track .tl-vtct img{height:48px !important;} .tb-track .tl-hounslow img{height:27px !important;} .tb-track .tl-coventry img{height:53px !important;} .tb-track .tl-eap img{height:38px !important;} .tb-track .tl-achieve img{height:25px !important;} .tb-track .tl-focus img{height:32px !important;} .tb-track .tl-highfield img{height:20px !important;}}

/* ===================== v102: delivery model cards flip to show provision details ===================== */
.dm .dm-card{padding:0; background:none !important; border:0 !important; box-shadow:none !important; overflow:visible; perspective:1400px;}
.dm .dm-card::before{display:none;}
.dm .dm-card:hover{transform:none; box-shadow:none !important;}
.dm-flip{position:relative; display:grid; height:100%; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.3,.7,.2,1);}
.dm-card.flipped .dm-flip{transform:rotateY(180deg);}
.dm-face{grid-area:1 / 1; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; -webkit-backface-visibility:hidden; backface-visibility:hidden; box-shadow:0 1px 2px rgba(36,20,36,.04); transition:box-shadow .4s var(--mo), border-color .3s ease, transform .4s var(--mo);}
.dm-back{transform:rotateY(180deg); background:var(--navy); border-color:var(--navy); color:#fff;}
@media(hover:hover){.dm-card:not(.flipped):hover .dm-front{transform:translateY(-6px); border-color:rgba(154,74,90,.35); box-shadow:0 30px 50px -28px rgba(36,20,36,.45);}}
.dm-front .act{order:4; margin-top:auto !important; border:0; border-top:1px solid var(--line); background:none; width:100%; cursor:pointer; text-align:left; font:inherit; font-weight:650;}
.dm-card:hover .dm-front .act{background:var(--navy); color:#fff;}
.dm-card:hover .dm-front .act .i-arrow{background:var(--blush); border-color:var(--blush); color:var(--navy); transform:rotate(0) !important;}
.dmb-art{aspect-ratio:16 / 6; overflow:hidden; background:var(--tint,#F8E4E1);}
.dmb-art img{width:100%; height:100%; object-fit:cover; object-position:50% 60%; opacity:.95;}
.dmb-body{padding:14px 18px 6px;}
.dmb-n{font-family:var(--serif); font-style:italic; font-size:1.125rem; color:var(--blush);}
.dmb-body h3{margin-top:2px; font-size:1.125rem; color:#fff;}
.dmb-body dl{margin-top:10px; display:grid; gap:9px;}
.dmb-body dt{font-size:.6875rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--blush);}
.dmb-body dd{margin-top:2px; font-size:.875rem; line-height:1.45; color:var(--on-navy);}
.dmb-body dd a{color:#fff; text-decoration:underline; text-decoration-color:var(--blush); text-underline-offset:3px;}
.dm-back .dm-close{margin-top:auto !important; display:flex; align-items:center; gap:8px; justify-content:flex-start; padding:12px 18px; border:0; border-top:1px solid rgba(255,255,255,.15); background:none; color:#fff; font:inherit; font-size:.875rem; font-weight:650; cursor:pointer; width:100%;}
.dm-back .dm-close::after{display:none;}
.dm-back .dm-close .i-arrow{box-sizing:content-box; width:12px; height:12px; padding:7px; border:1px solid currentColor; border-radius:50%;}
.dm-back .dm-close:hover{background:rgba(255,255,255,.06);}
.dm-card:nth-child(1){--tint:#F8E4E1;} .dm-card:nth-child(2){--tint:#F1E4EE;} .dm-card:nth-child(3){--tint:#F6EADF;} .dm-card:nth-child(4){--tint:#EAE2EC;}
.dm-front .art{background:var(--tint);}
@media (prefers-reduced-motion:reduce){.dm-flip{transition:none;}}
@media(max-width:699px){.dmb-body{padding:10px 12px 4px;} .dmb-body dd{font-size:.8125rem;} .dm-back .dm-close{padding:10px 12px; font-size:.8125rem;}}
.dm .dm-card .dmb-body dl{order:0; margin:10px 0 0 !important; padding:0 !important; background:none !important; border:0 !important; grid-template-columns:1fr !important;}
.dm .dm-card .dmb-body dl > div{padding-left:0 !important;} .dm .dm-card .dmb-body dl > div::before{display:none !important;}
.dm .dm-card .dmb-body dt{position:static; width:auto; height:auto; clip:auto; overflow:visible; color:var(--blush);}
.dm .dm-card .dmb-body dd{color:var(--on-navy); margin:2px 0 0;}
.dm .dm-card .dmb-body h3{color:#fff !important;}
.dm .dm-card .dm-back .dm-close{color:#fff !important; background:none !important; justify-content:flex-start !important; gap:10px;}
.dm .dm-card .dm-back .dm-close:hover{background:rgba(255,255,255,.08) !important;}
.dm .dm-card .dm-back .dm-close .i-arrow{background:none !important; border-color:rgba(255,255,255,.6) !important; color:#fff !important; transform:none !important;}
.dm .dm-card .dm-back .dm-close:hover .i-arrow{transform:translateX(-3px) !important;}
.dm .dm-card .dm-front .act{justify-content:space-between;}
@media(hover:hover){.dm ol:hover .dm-card.flipped{opacity:1 !important;}}

/* v103: new delivery model illustrations (full-bleed, 3:2 artwork) */
.dm .dm-card .dm-front .art{aspect-ratio:3 / 2 !important; background:none !important;}
.dm .dm-card .dm-front .art img{object-fit:cover !important; object-position:50% 50% !important; mix-blend-mode:normal !important; padding:0 !important;}
.dm .dm-card .dm-front .art::after{display:none;}
.dmb-art{aspect-ratio:16 / 7;} .dmb-art img{object-position:50% 45%;}
.dm-card:nth-child(2) .dm-front .art img{object-position:50% 70% !important;}
@media(max-width:599px){.dm ol{grid-template-columns:1fr !important;} .dmb-art{aspect-ratio:16 / 5;} .dm .dm-card .dm-front .art{aspect-ratio:16 / 9 !important;}}

/* v104: compact card fronts; card grows to fit details when flipped */
.dm ol{align-items:start !important;}
.dm .dm-card{height:auto !important;}
.dm-flip{display:block !important; height:auto; transition:transform .8s cubic-bezier(.3,.7,.2,1), height .55s cubic-bezier(.3,.7,.2,1);}
.dm-front{position:relative;}
.dm-back{position:absolute !important; top:0; left:0; right:0;}
.dm .dm-card .dm-front .what{padding-bottom:16px !important;}
.dm .dm-card .dm-front .act{margin-top:0 !important;}

/* ===================== v105: apprenticeship callout + employer incentives; split divider ===================== */
.appr-callout{margin-top:22px; padding:14px 18px; border-left:3px solid var(--rose); background:var(--blush-50); border-radius:0 8px 8px 0; font-size:1rem; line-height:1.5;}
.appr-callout b{color:var(--rose);}
.appr-money{margin-top:12px; font-size:1rem;}
.appr-money b{display:block; font-size:clamp(1.75rem,1.4rem + 1vw,2.25rem); line-height:1.05; letter-spacing:-.02em; color:var(--rose);}
.appr-perks{list-style:none; margin-top:12px; display:grid; gap:8px;}
.appr-perks li{position:relative; padding-left:18px; font-size:.9375rem; line-height:1.45; color:var(--muted);}
.appr-perks li::before{content:""; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--rose);}
.appr-perks b{color:var(--ink);}
.appr-fine{margin-top:10px; font-size:.75rem; color:var(--muted);}
.sp-divider{position:absolute; inset:0; width:100%; height:100%; z-index:4; pointer-events:none; transition:opacity .4s ease;}
.sp-divider line{stroke:url(#spGrad); stroke-width:6; filter:drop-shadow(0 0 10px rgba(242,182,176,.7));}
[data-state$="-preview"] .sp-divider,[data-state$="-detail"] .sp-divider{opacity:0;}
@media(max-width:600px){.sp-divider{display:none;}}

/* ===================== v106: stronger signature filter + richer motion ===================== */
/* 1. Signature duotone filter on every photo frame; hover blooms to true colour */
.gx,.st-view{isolation:isolate;}
.gx::before,.st-view::before{content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(155deg, rgba(242,182,176,.55) 0%, rgba(154,74,90,.45) 55%, rgba(36,20,36,.65) 100%); mix-blend-mode:soft-light; transition:opacity .8s ease;}
.gx::after{z-index:3; background:linear-gradient(180deg, rgba(36,20,36,0) 50%, rgba(36,20,36,.35)) !important; mix-blend-mode:multiply;}
.gx img,.st-slide img{filter:saturate(.85) contrast(1.05);}
@media(hover:hover){.gx:hover::before,.st-view:hover::before{opacity:.25;} .gx:hover img{filter:saturate(1.05) contrast(1.02) !important;}}
.sp-img img{filter:saturate(.8) contrast(1.06);}
.sp-img::before{content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(160deg, rgba(242,182,176,.4), rgba(154,74,90,.35) 60%, rgba(36,20,36,.5)); mix-blend-mode:soft-light;}
/* 2. Gentle parallax inside each frame (image moves, frame and caption stay put) */
.gx img{will-change:transform;}
.gx.gx-in img{transform:translate3d(0,var(--py,0px),0) scale(1.12) !important; transition:clip-path 1.1s cubic-bezier(.7,0,.2,1), filter .8s ease !important;}
/* 3. Staggered list reveals */
.stg > *{transition:opacity .7s var(--mo), transform .7s var(--mo); transition-delay:calc(var(--i,0) * 70ms);}
.stg.stg-wait > *{opacity:0; transform:translateY(18px);}
/* 4. Section entrance: soft rise for content blocks */
.rise{transition:opacity .9s var(--mo), transform .9s var(--mo);}
.rise.rise-wait{opacity:0; transform:translateY(36px);}
/* 5. Button shimmer on hover */
.btn{position:relative; overflow:hidden;}
.btn::before{content:""; position:absolute; top:0; bottom:0; left:-60%; width:40%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); transform:skewX(-20deg); transition:left .7s ease; pointer-events:none;}
.btn:hover::before{left:130%;}
@media (prefers-reduced-motion:reduce){.stg.stg-wait > *,.rise.rise-wait{opacity:1; transform:none;} .gx.gx-in img{transform:none !important;} .btn::before{display:none;}}

/* ===================== v107: 5 AP sites — tabbed site explorer with details, map and referral shortcut ===================== */
.sx .wrap{position:relative;}
.sx-head{display:grid; gap:20px; align-items:end;}
@media(min-width:1000px){.sx-head{grid-template-columns:minmax(0,6fr) minmax(0,5fr); column-gap:clamp(40px,5vw,80px);}}
.sx .sb-head .sb-title{font-size:clamp(2.25rem,1.6rem + 2.2vw,3.75rem);}
.sx-lead{color:var(--on-navy); max-width:34em;}
.sx-tabs{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:clamp(28px,4vw,48px);}
.sx-tab{position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:14px 16px; text-align:left; cursor:pointer; color:var(--on-navy); background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:12px; transition:background .3s ease, border-color .3s ease, color .3s ease, transform .3s var(--mo);}
.sx-tab:hover{background:rgba(255,255,255,.08); transform:translateY(-2px);}
.sx-tab.is-on{background:#fff; border-color:#fff; color:var(--navy);}
.sx-tab:focus-visible{outline:2px solid var(--blush); outline-offset:3px;}
.sx-n{font-family:var(--serif); font-style:italic; font-size:1.0625rem; color:var(--blush);}
.sx-tab.is-on .sx-n{color:var(--rose);}
.sx-nm{font-size:.9375rem; font-weight:650; line-height:1.25;}
.sx-nm em{margin-left:6px; padding:1px 7px; border-radius:999px; background:var(--rose); color:#fff; font-style:normal; font-size:.625rem; letter-spacing:.08em; text-transform:uppercase; vertical-align:2px;}
.sx-ar{font-size:.75rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; opacity:.75;}
.sx-panels{margin-top:16px;}
.sx-panel{display:grid; gap:0; background:#fff; color:var(--ink); border-radius:16px; overflow:hidden; box-shadow:0 40px 80px -40px rgba(0,0,0,.6);}
.sx-panel.is-on{animation:sxIn .55s var(--mo);}
@keyframes sxIn{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}
@media(min-width:900px){.sx-panel{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);}}
.sx-media{position:relative; min-height:280px; background:var(--navy);}
.sx-photo{position:absolute; inset:0; margin:0;}
.sx-photo img{width:100%; height:100%; object-fit:cover; filter:saturate(.85) contrast(1.05);}
.sx-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(155deg, rgba(242,182,176,.5), rgba(154,74,90,.4) 55%, rgba(36,20,36,.6)); mix-blend-mode:soft-light;}
.sx-map{position:absolute; inset:0;}
.sx-map iframe{width:100%; height:100%; border:0; display:block; filter:saturate(.7);}
.sx-mtog{position:absolute; left:14px; bottom:14px; z-index:2; display:flex; padding:3px; border-radius:999px; background:rgba(36,20,36,.75); backdrop-filter:blur(6px);}
.sx-mtog button{padding:7px 14px; border:0; border-radius:999px; background:none; color:#fff; font:inherit; font-size:.8125rem; font-weight:650; cursor:pointer;}
.sx-mtog button.is-on{background:#fff; color:var(--navy);}
.sx-info{padding:clamp(22px,3vw,40px);}
.sx-area{display:inline-flex; align-items:center; gap:6px; font-size:.75rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose);}
.sx-area svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2;}
.sx-info h3{margin-top:8px; font-size:clamp(1.375rem,1.1rem + .8vw,1.875rem); line-height:1.1; letter-spacing:-.02em;}
.sx-desc{margin-top:10px; font-size:1rem; line-height:1.55; color:var(--muted);}
.sx-addr{margin-top:10px; font-size:.9375rem; font-weight:600;}
.sx-facts{display:grid; grid-template-columns:1fr; gap:12px 22px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line);}
@media(min-width:560px){.sx-facts{grid-template-columns:1fr 1fr;}}
.sx-facts dt{font-size:.6875rem; font-weight:650; font-stretch:112%; letter-spacing:.1em; text-transform:uppercase; color:var(--rose);}
.sx-facts dd{margin-top:3px; font-size:.875rem; line-height:1.45;}
.sx-acts{display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:22px;}
.sx-acts .link{color:var(--navy);}
.sx-call{margin-top:14px; font-size:.8125rem; color:var(--muted);}
.sx-call a{color:var(--ink); text-decoration:underline; text-decoration-color:var(--rose); text-underline-offset:3px;}
@media(max-width:899px){.sx-media{aspect-ratio:16 / 10; min-height:0;}}
@media(max-width:759px){
  .sx-tabs{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px; margin-inline:calc(-1 * var(--gutter)); padding-inline:var(--gutter);}
  .sx-tab{flex:0 0 auto; min-width:170px; scroll-snap-align:start;}
}
@media (prefers-reduced-motion:reduce){.sx-panel.is-on{animation:none;}}
.sx-panel[hidden],.sx-photo[hidden],.sx-map[hidden]{display:none !important;}
.sx-acts .btn{background:var(--rose); color:#fff;} .sx-acts .btn:hover{background:var(--navy);}
@media(max-width:759px){.sx-tabs{margin-inline:-20px !important; padding-inline:20px !important; scroll-padding-inline:20px;}}

/* v108: gradient edge on the apprenticeship diagonal (matches Beauty/Construction split) */
.appr-edge{display:none;}
@media(min-width:1080px){.appr-edge{display:block; position:absolute; inset:0; width:100%; height:100%; z-index:5; pointer-events:none;} .appr-edge line{stroke:url(#apGrad); stroke-width:12; filter:drop-shadow(0 0 10px rgba(242,182,176,.8));}}

/* v109: audit fixes */
.vid-btn{display:none !important;}
@media(min-width:1180px){.foot-grid{grid-template-columns:minmax(0,1.5fr) repeat(5,minmax(0,1fr)) !important; column-gap:32px;}}
@media(min-width:760px) and (max-width:1179px){.foot-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}}

/* v110: card 02 school-hub detail + map fallback */
.dmb-lead{margin-top:8px; font-family:var(--serif); font-style:italic; font-size:1.0625rem; line-height:1.3; color:var(--blush);}
.dmb-pts{list-style:none; margin-top:10px; display:grid; gap:9px;}
.dmb-pts li{position:relative; padding-left:14px; font-size:.8125rem; line-height:1.45; color:var(--on-navy);}
.dmb-pts li::before{content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--blush);}
.dmb-pts b{color:#fff; font-weight:650;}
.dmb-cta{display:inline-block; margin-top:12px; font-size:.8125rem; font-weight:650; color:#fff; text-decoration:underline; text-decoration-color:var(--blush); text-underline-offset:3px;}
.sx-map{background:#EDE4E8;}
.sx-mapfb{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:20px; color:var(--muted); font-size:.875rem;}
.sx-mapfb a{padding:10px 16px; border-radius:999px; background:var(--navy); color:#fff; font-weight:650; text-decoration:none;}
.sx-map iframe{position:relative; z-index:1;}
.sx-maplink{position:absolute; top:14px; right:14px; z-index:3; padding:8px 14px; border-radius:999px; background:rgba(36,20,36,.8); color:#fff; font-size:.8125rem; font-weight:650; backdrop-filter:blur(6px);}

/* v111: multi-photo site gallery */
.sx-multi img{position:absolute; inset:0; opacity:0; transition:opacity .7s ease, transform 6s linear; transform:scale(1.06);}
.sx-multi img.is-on{opacity:1; transform:scale(1);}
.sx-dots{position:absolute; right:14px; bottom:18px; z-index:3; display:flex; gap:6px;}
.sx-dots button{width:26px; height:6px; padding:0; border:0; border-radius:3px; background:rgba(255,255,255,.5); cursor:pointer; transition:background .3s ease, width .3s ease;}
.sx-dots button.is-on{background:#fff; width:38px;}
.sx-multi img[src*="cov-b"]{object-position:22% 60%;}

/* ===================== v115: apprenticeships — hover-expand split panels; photo fill fix ===================== */
.appr-photo .gx{position:absolute !important; inset:0; height:100% !important; border-radius:0;}
.appr-photo .gx img{height:100% !important; width:100%; object-fit:cover;}
.ap-split{display:flex; gap:10px; margin-top:26px; height:520px;}
.ap-pan{position:relative; flex:1 1 0; min-width:0; overflow:hidden; border-radius:14px; color:#fff; cursor:pointer; outline:none; transition:flex .65s cubic-bezier(.3,.7,.2,1), box-shadow .4s ease; isolation:isolate;}
.ap-pan > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transform:scale(1.06); transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
.ap-pan::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(36,20,36,.35) 0%, rgba(36,20,36,.78) 45%, rgba(27,14,27,.95) 100%); transition:background .5s ease;}
.ap-pan::after{content:""; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg,var(--rose),var(--blush)); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--mo);}
.ap-in{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:22px;}
.ap-in .eyebrow{color:var(--blush) !important;}
.ap-in h3{margin-top:6px; font-size:clamp(1.25rem,1.05rem + .6vw,1.625rem); line-height:1.12; color:#fff;}
.ap-tease{margin-top:8px; font-size:.9375rem; color:var(--on-navy);}
.ap-tease b{color:var(--blush);}
.ap-hint{margin-top:10px; font-size:.6875rem; font-weight:650; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); transition:opacity .3s ease;}
.ap-more{max-height:0; opacity:0; overflow:hidden; transition:max-height .65s cubic-bezier(.3,.7,.2,1), opacity .4s ease;}
.ap-more > p{margin-top:12px; font-size:.875rem; line-height:1.5; color:var(--on-navy);}
.ap-pts{list-style:none; margin-top:10px; display:grid; gap:7px;}
.ap-pts li{position:relative; padding-left:14px; font-size:.8125rem; line-height:1.45; color:var(--on-navy);}
.ap-pts li::before{content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--blush);}
.ap-pts b{color:#fff; font-weight:650;}
.ap-fine{margin-top:8px !important; font-size:.6875rem !important; opacity:.75;}
.ap-cta{display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:10px 16px; border-radius:999px; background:var(--blush); color:var(--navy); font-size:.8125rem; font-weight:650;}
.ap-cta:hover{background:#fff;}
/* open state */
.ap-pan.on{flex:2.1 1 0;}
.ap-split.has-on .ap-pan:not(.on){flex:.75 1 0;}
.ap-pan.on > img{transform:scale(1);}
.ap-pan.on::before{background:linear-gradient(180deg, rgba(36,20,36,.55) 0%, rgba(36,20,36,.9) 35%, rgba(27,14,27,.97) 100%);}
.ap-pan.on::after{transform:scaleX(1);}
.ap-pan.on .ap-more{max-height:520px; opacity:1; transition-delay:.15s;}
.ap-pan.on .ap-hint{opacity:0; height:0; margin:0;}
.ap-pan:focus-visible{box-shadow:0 0 0 3px var(--blush);}
.ap-split.has-on .ap-pan:not(.on) .ap-tease{opacity:.8;}
@media(max-width:759px){
  .ap-split{flex-direction:column; height:auto;}
  .ap-pan{flex:none !important; min-height:220px;}
  .ap-pan .ap-in{position:relative; min-height:220px;}
  
}
@media (prefers-reduced-motion:reduce){.ap-pan,.ap-more,.ap-pan > img{transition:none;}}

/* v117 image crop + frames */
.ap-pan > img[src*="site-barber"]{object-position:12% 35%;}
.ap-pan > img[src*="site-hb-a"]{object-position:30% 50%;}
.why-photo .gx, .as-head figure .gx, .why-photo, .as-head figure{box-shadow:none;}
.why-photo .gx, .as-head figure .gx{border-radius:6px; box-shadow:0 0 0 8px #fff, 0 0 0 9px rgba(154,74,90,.18), 0 34px 60px -28px rgba(36,20,36,.45);}
.sx-photo{box-shadow:0 0 0 6px #fff, 0 0 0 7px rgba(154,74,90,.18), 0 30px 54px -26px rgba(36,20,36,.42);}
.ap-pan{box-shadow:0 24px 44px -24px rgba(36,20,36,.5);}
@media (max-width:760px){.why-photo .gx, .as-head figure .gx{box-shadow:0 0 0 5px #fff, 0 0 0 6px rgba(154,74,90,.18), 0 22px 38px -22px rgba(36,20,36,.4);}}

.why-photo figcaption,.as-head figure figcaption,.why-photo .cap{margin-top:22px;}

/* v118 feathered photo */
.why-photo .gx{box-shadow:none !important; border-radius:0; -webkit-mask-image:linear-gradient(to right,transparent 0,#000 16%,#000 84%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent 0,#000 16%,#000 84%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); mask-composite:intersect;}
.as-head figure .gx{box-shadow:none !important; border-radius:0; -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); mask-composite:intersect;}

/* v119 blend all photos */
.sx-media{background:#fff;}
.sx-photo{box-shadow:none !important;}
@media(min-width:900px){.sx-photo{-webkit-mask-image:linear-gradient(to right,#000 0,#000 62%,transparent 100%); mask-image:linear-gradient(to right,#000 0,#000 62%,transparent 100%);}}
@media(max-width:899px){.sx-photo{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%);}}
@media(min-width:761px){.ap-pan{box-shadow:none; -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 6%,#000 94%,transparent 100%); -webkit-mask-composite:source-in; mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 6%,#000 94%,transparent 100%); mask-composite:intersect;}}

/* v120 */
.ap-pan > img[src*="p-heads"]{object-position:12% 40%;}
.ap-pan > img[src*="p-cape"]{object-position:40% 35%;}

/* v121 blend remaining photos */
.sp-stage{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 120px,#000 calc(100% - 80px),transparent 100%); mask-image:linear-gradient(to bottom,transparent 0,#000 120px,#000 calc(100% - 80px),transparent 100%);}
.appr-photo{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 110px,#000 calc(100% - 110px),transparent 100%); mask-image:linear-gradient(to bottom,transparent 0,#000 110px,#000 calc(100% - 110px),transparent 100%);}
.dm-front .art img,.dmb-art img{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0,#000 68%,transparent 100%);}

/* v122 subtle blend */
.why-photo .gx,.as-head figure .gx{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%) !important; mask-image:linear-gradient(to right,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%) !important; -webkit-mask-composite:source-in !important; mask-composite:intersect !important;}
@media(min-width:761px){.ap-pan{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%) !important; mask-image:linear-gradient(to right,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%),linear-gradient(to bottom,transparent 0,#000 10px,#000 calc(100% - 10px),transparent 100%) !important; -webkit-mask-composite:source-in !important; mask-composite:intersect !important;}}
@media(min-width:900px){.sx-photo{-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 46px),transparent 100%) !important; mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 46px),transparent 100%) !important;}}
@media(max-width:899px){.sx-photo{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 36px),transparent 100%) !important; mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 36px),transparent 100%) !important;}}
.sp-stage{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 36px,#000 calc(100% - 36px),transparent 100%) !important; mask-image:linear-gradient(to bottom,transparent 0,#000 36px,#000 calc(100% - 36px),transparent 100%) !important;}
.appr-photo{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 36px,#000 calc(100% - 36px),transparent 100%) !important; mask-image:linear-gradient(to bottom,transparent 0,#000 36px,#000 calc(100% - 36px),transparent 100%) !important;}
.dm-front .art img,.dmb-art img{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 22px),transparent 100%) !important; mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 22px),transparent 100%) !important;}

/* v123 royal recognition */
.royal{padding:clamp(72px,9vw,128px) 0; background:linear-gradient(180deg,#fff 0%,var(--blush-50) 100%);}
.ry-grid{display:grid; gap:clamp(28px,5vw,72px); align-items:center;}
@media(min-width:900px){.ry-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);}}
.ry-photo{margin:0; overflow:hidden;}
.ry-photo img{display:block; width:100%; height:auto; aspect-ratio:1600/1103; object-fit:cover;}
.ry-copy h2{margin:0 0 18px;}
.ry-copy .lead{margin:0 0 26px;}
.ry-facts{list-style:none; margin:0 0 26px; padding:0; border-top:1px solid rgba(36,20,36,.14);}
.ry-facts li{display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid rgba(36,20,36,.14); font-size:.95rem;}
.ry-facts b{font-weight:650; color:var(--navy);}
.ry-facts span{color:var(--rose); font-weight:600; font-size:.8125rem; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap;}
.ry-line{margin:0; font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--rose);}

/* v123 blend: only photos with text beside them */
.ap-pan,.sp-stage,.appr-photo,.dm-front .art img,.dmb-art img{-webkit-mask-image:none !important; mask-image:none !important;}
@media(min-width:761px){.ap-pan{box-shadow:0 24px 44px -24px rgba(36,20,36,.5) !important;}}
@media(min-width:900px){
 .why-photo .gx{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 30%) !important; mask-image:linear-gradient(to right,transparent 0,#000 30%) !important; -webkit-mask-composite:source-over !important; mask-composite:add !important;}
 .as-head figure .gx,.ry-photo{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 30%) !important; mask-image:linear-gradient(to left,transparent 0,#000 30%) !important; -webkit-mask-composite:source-over !important; mask-composite:add !important;}
 .sx-photo{-webkit-mask-image:linear-gradient(to right,#000 0,#000 66%,transparent 100%) !important; mask-image:linear-gradient(to right,#000 0,#000 66%,transparent 100%) !important;}
}
@media(max-width:899px){
 .why-photo .gx,.as-head figure .gx,.ry-photo{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%) !important; mask-image:linear-gradient(to bottom,transparent 0,#000 22%) !important; -webkit-mask-composite:source-over !important; mask-composite:add !important;}
 .sx-photo{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 72%,transparent 100%) !important; mask-image:linear-gradient(to bottom,#000 0,#000 72%,transparent 100%) !important;}
}

/* v123 custom dropdowns */
.cs{position:relative;}
.cs > select{position:absolute !important; inset:0; width:100%; height:100%; opacity:0; pointer-events:none;}
.cs-btn{width:100%; min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; background:#fff; border:1px solid #D6C7D0; border-radius:12px; font:inherit; font-size:1rem; color:var(--navy); text-align:left; cursor:pointer; transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;}
.cs-btn.ph .cs-val{color:#8F7F8C;}
.cs-val{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.cs-btn:hover{border-color:var(--rose);}
.cs-btn:focus-visible,.cs.open .cs-btn{outline:none; border-color:var(--rose); box-shadow:0 0 0 4px rgba(154,74,90,.15); background:var(--blush-50);}
.cs-chev{width:16px; height:16px; flex:none; fill:none; stroke:var(--rose); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s ease;}
.cs.open .cs-chev{transform:rotate(180deg);}
.cs-list{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:40; margin:0; padding:6px; list-style:none; background:#fff; border:1px solid rgba(154,74,90,.18); border-radius:14px; box-shadow:0 26px 50px -22px rgba(36,20,36,.4); max-height:280px; overflow:auto; opacity:0; visibility:hidden; transform:translateY(-6px) scale(.98); transform-origin:top center; transition:opacity .18s ease, transform .18s ease, visibility 0s linear .18s;}
.cs.open .cs-list{opacity:1; visibility:visible; transform:none; transition:opacity .18s ease, transform .18s ease;}
.cs-opt{position:relative; padding:11px 12px 11px 36px; border-radius:9px; cursor:pointer; color:var(--navy); font-size:.975rem; line-height:1.35;}
.cs-opt.act{background:var(--blush-50);}
.cs-opt[aria-selected="true"]{color:var(--rose); font-weight:600;}
.cs-opt[aria-selected="true"]::before{content:""; position:absolute; left:14px; top:50%; width:10px; height:5px; margin-top:-4px; border-left:2px solid var(--rose); border-bottom:2px solid var(--rose); transform:rotate(-45deg);}
.field.has-err .cs-btn{border-color:#B3261E; border-width:2px;}
.f-step,.fset,.fields{overflow:visible;}
@media (prefers-reduced-motion:reduce){.cs-list,.cs-chev{transition:none;}}

#referralForm .field input:not([type=radio]):not([type=checkbox]),#referralForm .field textarea{border-color:#D6C7D0; border-radius:12px; min-height:52px; padding:12px 16px;}
#referralForm .field input:not([type=radio]):not([type=checkbox]):hover,#referralForm .field textarea:hover{border-color:var(--rose);}
#referralForm .field.has-err input,#referralForm .field.has-err textarea{border-color:#B3261E;}

@media(max-width:899px){.ry-photo{-webkit-mask-image:linear-gradient(to top,transparent 0,#000 22%) !important; mask-image:linear-gradient(to top,transparent 0,#000 22%) !important;}}

/* v124 no photo gradients */
.why-photo .gx,.as-head figure .gx,.ry-photo,.sx-photo,.ap-pan,.sp-stage,.appr-photo,.dm-front .art img,.dmb-art img{-webkit-mask-image:none !important; mask-image:none !important;}
.why-photo .gx,.as-head figure .gx{border-radius:6px;}
.appr-photo img{object-position:62% 28% !important;}

.appr-ats{display:inline-flex; align-items:center; gap:8px; margin:16px 0 22px; padding:7px 14px; border:1px solid rgba(154,74,90,.3); border-radius:999px; font-size:.875rem; color:var(--ink); background:#fff;}
.appr-ats::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--rose);}
.appr-ats b{color:var(--navy); font-weight:650;}

/* v125 */
.sx-multi video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .7s ease;}
.sx-multi video.is-on{opacity:1;}
.sp-qual{margin:22px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.16); display:grid; gap:4px; max-width:46ch;}
.sp-qual b{font-weight:600; line-height:1.35;}
.sp-qual small{font-size:.8125rem; opacity:.72; letter-spacing:.01em;}

/* v126 full collapse of inactive apprenticeship panel */
.ap-vlabel{display:none;}
@media(min-width:761px){
 .ap-split.has-on .ap-pan:not(.on){flex:0 0 64px !important;}
 .ap-split.has-on .ap-pan.on{flex:1 1 0px !important;}
 .ap-split.has-on .ap-pan:not(.on) .ap-in{opacity:0; visibility:hidden; transition:opacity .2s ease, visibility 0s linear .2s;}
 .ap-pan .ap-in{transition:opacity .35s ease .25s;}
 .ap-vlabel{display:block; position:absolute; left:50%; bottom:28px; z-index:2; transform:translateX(-50%) rotate(180deg); writing-mode:vertical-rl; white-space:nowrap; font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--blush); opacity:0; transition:opacity .25s ease; pointer-events:none;}
 .ap-split.has-on .ap-pan:not(.on) .ap-vlabel{opacity:1; transition-delay:.3s;}
}

/* v127 curriculum placement lengths */
.sp-len{margin:22px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.16); max-width:52ch;}
.sp-len ol{list-style:none; margin:10px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;}
.sp-len li{display:grid; gap:3px; padding:10px 12px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(255,255,255,.04);}
.sp-len b{font-weight:650; color:var(--blush); font-size:.875rem;}
.sp-len span{font-size:.8125rem; opacity:.85; line-height:1.35;}
.sp-len-note{margin:10px 0 0; font-size:.8125rem; opacity:.8; line-height:1.45;}
@media(max-width:560px){.sp-len ol{grid-template-columns:1fr;}}

/* v127 safeguarding documents */
.sgd{grid-column:1 / -1; margin-top:clamp(40px,6vw,72px); padding:clamp(24px,3.5vw,40px); border:1px solid rgba(36,20,36,.12); border-radius:16px; background:var(--blush-50);}
.sgd-head h3{margin:8px 0 6px; font-size:clamp(1.3rem,2vw,1.6rem);}
.sgd-head p{margin:0 0 22px; max-width:60ch; color:var(--ink); opacity:.85;}
.sgd-list{list-style:none; margin:0; padding:0; display:grid; gap:8px; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.sgd-list li.sgd-hide{display:none;}
.sgd-row{display:flex; align-items:center; gap:12px; padding:12px 14px; background:#fff; border:1px solid rgba(36,20,36,.1); border-radius:12px; color:var(--navy); text-decoration:none; transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;}
.sgd-row:hover{border-color:var(--rose); transform:translateY(-2px); box-shadow:0 14px 26px -18px rgba(36,20,36,.45);}
.sgd-row[data-doc-placeholder]{cursor:default;}
.sgd-ic{flex:none; display:grid; place-items:center; width:38px; height:44px; border-radius:6px; background:var(--rose); color:#fff; font-size:.6875rem; font-weight:700; letter-spacing:.06em;}
.sgd-nm{flex:1; font-weight:600; font-size:.9375rem; line-height:1.3;}
.sgd-tag{flex:none; font-size:.6875rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--rose); background:var(--blush-50); padding:4px 8px; border-radius:999px;}
.sgd-row:not([data-doc-placeholder]) .sgd-tag{display:none;}
.sgd-ar{flex:none; width:16px; height:16px; fill:none; stroke:var(--rose); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.sgd-more{margin-top:18px;}

/* v127 one consistent body-photo size (5:4, 16px radius) */
.why-photo .gx,.as-head figure .gx,.as-head figure > img,.ry-photo{aspect-ratio:5 / 4; width:100%; border-radius:16px !important; overflow:hidden;}
.why-photo .gx img,.as-head figure img,.ry-photo img{width:100% !important; height:100% !important; aspect-ratio:auto !important; object-fit:cover; border-radius:0 !important; clip-path:none !important;}
.why-photo img{object-position:50% 50% !important;}
.as-head figure img{object-position:50% 40% !important;}
.ry-photo img{object-position:55% 50% !important;}
.sx-panel,.ap-pan{border-radius:16px;}

.sgd{margin-top:clamp(40px,6vw,64px);}
.sgd-more{margin-top:18px; padding:0 0 3px; background:none; border:0; border-bottom:1.5px solid var(--rose); font:inherit; font-weight:600; font-size:.9375rem; color:var(--navy); cursor:pointer;}
.sgd-more:hover{color:var(--rose);}
.sgd-row[data-doc-placeholder]:hover{border-color:rgba(36,20,36,.1); transform:none; box-shadow:none;}

/* v128 one size system */
:root{--max:1328px; --sec:clamp(80px, 9vw, 128px);}
/* section headings: one size */
section:not(.hero) h2{font-size:clamp(2.25rem, 1.2rem + 3vw, 3.5rem) !important; line-height:1.04 !important;}
/* intro paragraphs */
section:not(.hero) .lead,.tb-lead{font-size:clamp(1.0625rem, .95rem + .4vw, 1.25rem) !important; line-height:1.55 !important; max-width:560px;}
.sx-lead{max-width:520px;}
/* card titles */
.principles h3,.ap-pan h3,.sx-info h3,#formTitle,.sgd-head h3{font-size:clamp(1.25rem, 1rem + .6vw, 1.5rem) !important; line-height:1.2 !important;}
.dm-card h3,.dm-front h3,.ledger h3{font-size:1.25rem !important; line-height:1.25 !important;}
/* body text 17 */
.principles p,.ledger p,.sx-desc,.appr-callout,.sp-intro,.sp-prog,.dmb-lead,.ry-copy p:not(.lead):not(.ry-line),.rf-copy p:not(.lead):not(.parents){font-size:1.0625rem !important; line-height:1.6 !important;}
/* small text 15 */
.sx-facts dd,.dm-card p.what,.dm-front .what,.dmb-list li,.dm-back li,.sp-list li,.ap-more p,.ap-pts li,.appr-ats,.parents,figcaption,.sx-addr,.ap-tease,.req,.sgd-nm,.ry-facts li{font-size:.9375rem !important; line-height:1.55 !important;}
/* fine print: 13 minimum */
.ap-fine,.sx-call,.sp-len-note,.sp-qual small,.sp-hint{font-size:.8125rem !important;}
.ap-hint,.sgd-tag{font-size:.75rem !important;}
.ry-line{font-size:1.25rem !important;}

/* v129 standalone photos: identical size */
.why-photo,.as-head figure,.ry-photo{width:100%; max-width:460px;}
.why-photo .gx,.as-head figure .gx,.ry-photo{width:100% !important; max-width:460px; aspect-ratio:5 / 4;}
.why-photo{justify-self:end;}

/* v130 bigger standalone photos: ~46% of content width */
@media(min-width:900px){
 .why-grid{grid-template-columns:minmax(0,1fr) minmax(0,560px) !important; gap:clamp(40px,5vw,80px) !important;}
 .as-grid{grid-template-columns:minmax(0,560px) minmax(0,1fr) !important; gap:clamp(40px,5vw,80px) !important;}
 .ry-grid{grid-template-columns:minmax(0,560px) minmax(0,1fr) !important;}
}
.why-photo,.as-head figure,.ry-photo,.why-photo .gx,.as-head figure .gx{max-width:560px !important;}
.as-head .lead{max-width:560px;}

.tb-track .tl-wlcc-w img,.tb-track .tl-wlcc-f img{height:54px !important; max-width:none !important; width:auto !important;}
@media(max-width:639px){.tb-track .tl-wlcc-w img,.tb-track .tl-wlcc-f img{height:44px !important;}}

/* v132 depth shadow on Why AAXA photo */
.why-photo .gx{overflow:hidden; box-shadow:0 2px 4px rgba(36,20,36,.06), 0 18px 36px -12px rgba(36,20,36,.28), 0 48px 80px -32px rgba(36,20,36,.45) !important;}
.why-photo{position:relative;}
.why-photo::before{content:""; position:absolute; left:28px; right:-20px; top:28px; aspect-ratio:5 / 4; max-width:560px; border-radius:16px; background:var(--blush-50); border:1px solid rgba(154,74,90,.18); z-index:-1;}
.why-photo{isolation:isolate;}

.why-photo figcaption{margin-top:48px !important;}

/* v133 blend standalone photos (not Why AAXA, which keeps its frame) */
.as-head figure .gx,.ry-photo{border-radius:16px !important; box-shadow:none !important; -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%) !important; mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 92%,transparent 100%) !important; -webkit-mask-composite:source-in !important; mask-composite:intersect !important;}
/* v133 balance */
@media(min-width:900px){
 .why-grid{align-items:center !important;}
 .as-grid{align-items:center !important;}
 .as-head{position:static !important;}
 .ry-grid{grid-template-columns:minmax(0,1fr) minmax(0,560px) !important; align-items:center !important;}
 .ry-photo{order:2;}
}
@media(min-width:1100px){.rv-grid > :last-child{grid-column:span 2;}}

/* v133 standalone photos blend into background, no frame */
.why-photo::before{content:none !important;}
.why-photo .gx,.as-head figure .gx,.ry-photo{box-shadow:none !important; border-radius:0 !important; border:0 !important;
 -webkit-mask-image:radial-gradient(ellipse 72% 72% at 50% 50%, #000 58%, transparent 100%) !important; mask-image:radial-gradient(ellipse 72% 72% at 50% 50%, #000 58%, transparent 100%) !important;}
.why-photo figcaption{margin-top:12px !important;}
/* balance: centre photo against its text, alternate sides */
@media(min-width:900px){
 .why-grid,.ry-grid{align-items:center !important;}
 .ry-grid{grid-template-columns:minmax(0,1fr) minmax(0,560px) !important;}
 .ry-photo{order:2;}
 .ry-copy{order:1;}
}

.why-photo .gx,.as-head figure .gx,.ry-photo{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%) !important; mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%) !important; -webkit-mask-composite:source-in !important; mask-composite:intersect !important;}

/* v134 tinted glow behind blended photos (no white wash) */
.ry-photo{-webkit-mask-image:none !important; mask-image:none !important; overflow:visible !important;}
.ry-photo img{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); mask-image:linear-gradient(to right,transparent 0,#000 14%,#000 86%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%); -webkit-mask-composite:source-in; mask-composite:intersect; position:relative; z-index:1;}
.why-photo,.as-head figure,.ry-photo{position:relative; isolation:isolate;}
.why-photo::after,.as-head figure::after,.ry-photo::after{content:""; position:absolute; z-index:-1; left:-4%; top:-5%; width:108%; aspect-ratio:5 / 4; max-width:605px; pointer-events:none;
 background:radial-gradient(ellipse 60% 58% at 50% 50%, rgba(36,20,36,.55) 0%, rgba(154,74,90,.38) 45%, rgba(242,182,176,.22) 72%, transparent 100%); filter:blur(14px); display:block !important;}

.why-photo::after,.as-head figure::after,.ry-photo::after{left:-6% !important; top:-7.5% !important; width:112% !important; max-width:630px !important; filter:blur(10px) !important;
 background:radial-gradient(ellipse 62% 60% at 50% 50%, rgba(36,20,36,.85) 0%, rgba(110,52,70,.7) 50%, rgba(154,74,90,.42) 72%, rgba(242,182,176,.18) 88%, transparent 100%) !important;}
/* v136 soft edges only, no glow */
.why-photo::after,.as-head figure::after,.ry-photo::after{content:none !important;display:none !important}
.why-photo .gx,.as-head figure .gx,.ry-photo img{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%) !important;mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 9%,#000 91%,transparent 100%) !important;-webkit-mask-composite:source-in !important;mask-composite:intersect !important}
/* v137 full-bleed photos fading into the section background (reference) */
.bleed-sec{position:relative;overflow:hidden}
.bleed-sec>.wrap{position:relative;z-index:1}
.bleed{margin:0;padding:0;position:relative;height:300px;overflow:hidden;
 -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 82%,transparent 100%)}
.bleed img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:none}
@media(min-width:900px){
 .bleed{position:absolute;top:0;bottom:0;height:auto;width:54%;z-index:0}
 .bleed-r{right:0;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 42%),linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 42%),linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
 .bleed-l{left:0;-webkit-mask-image:linear-gradient(to left,transparent 0,#000 42%),linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(to left,transparent 0,#000 42%),linear-gradient(to bottom,transparent 0,#000 12%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
 .bleed-r img{object-position:60% 40%}
 #about .wrap.why-grid,#recognition .wrap.ry-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;column-gap:80px !important}
 #about .why-grid>.shead,#recognition .ry-copy{grid-column:1 !important;max-width:560px}
 #safeguarding .wrap.as-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;column-gap:80px !important;align-items:start !important}
 #safeguarding .as-grid>*{grid-column:2 !important}
 #safeguarding .as-grid>.as-head{grid-row:1 !important}
}
#recognition .bleed img{object-position:72% 35% !important}
@media(min-width:900px){#recognition .bleed-r{width:58%}}
/* v139 compact Why AAXA + Safeguarding */
@media(min-width:900px){
 #about,#safeguarding{padding-block:88px !important}
 #about .principles{margin-top:32px !important}
 #about .principles li{grid-template-columns:40px minmax(0,1fr) !important;gap:2px 12px !important;padding-block:16px !important;align-items:start !important}
 #about .principles .n{grid-row:1 / span 2;padding-top:4px}
 #about .principles h3{font-size:1.25rem !important;grid-column:2 !important}
 #about .principles p{grid-column:2 !important;font-size:1rem !important;margin:0 !important}
 #about .shead .lead{margin-bottom:0}
 #safeguarding .ledger>div{grid-template-columns:1fr !important;gap:2px !important;padding-block:14px !important}
 #safeguarding .ledger dt{display:flex;align-items:center;gap:8px;padding:0 !important;font-size:.6875rem !important}
 #safeguarding .ledger dd h3{font-size:1.125rem !important;margin-top:4px}
 #safeguarding .ledger dd p{margin-top:2px !important;font-size:1rem !important}
 #safeguarding .ledger .lg-ic{width:20px;height:20px}
 #safeguarding .liaison{margin-top:20px !important;padding:16px 20px !important}
}
@media(min-width:900px){#safeguarding .wrap.as-grid{row-gap:28px !important}#safeguarding .liaison{display:block !important}}
@media(min-width:900px){#safeguarding .ledger>div{grid-template-columns:170px minmax(0,1fr) !important;gap:16px !important;align-items:center !important;padding-block:16px !important}#safeguarding .ledger dt{display:flex !important;align-items:center;gap:10px;padding:0 !important}#safeguarding .ledger dd h3{margin-top:0 !important}}
/* v142 header follows the section colour */
.site{transition:background-color .35s ease,border-color .35s ease,color .35s ease}
.site.solid.tone-dark{background:rgba(36,20,36,.97);border-bottom-color:rgba(255,255,255,.12)}
.site.solid.tone-dark .brand .on-film{opacity:1}
.site.solid.tone-dark .brand .on-paper{opacity:0}
.site.solid.tone-dark .primary,.site.solid.tone-dark .menu-btn,.site.solid.tone-dark .primary a,.site.solid.tone-dark .primary button{color:#fff}
.site.solid.tone-dark .bar .btn{background:var(--rose);color:#fff}
.site.solid.tone-dark .bar .btn:hover{background:var(--blush);color:var(--navy)}
.site.solid.tone-dark .where{background:rgba(36,20,36,.97);border-color:rgba(255,255,255,.12);color:#fff}
.site.solid.tone-dark .where b{color:var(--blush)}
.site.solid.tone-dark .where b::after{color:rgba(255,255,255,.55)}
.site.solid.tone-dark :focus-visible{outline-color:var(--blush)}
/* v143 ATS line sits on top of the apprenticeship photo */
.appr-photo .appr-ats{position:absolute;z-index:6;top:56px;left:28px;margin:0;box-shadow:0 8px 24px -10px rgba(36,20,36,.5);background:rgba(255,255,255,.96)}
@media(max-width:760px){.appr-photo .appr-ats{top:44px;left:16px;font-size:.8125rem !important;padding:6px 12px}}
@media(min-width:1080px){.appr-photo .appr-ats{top:auto;bottom:56px;left:clamp(24px,8vw,120px)}}
/* v144 fade only on the text side, short and soft (reference) */
.bleed-sec{display:flex;flex-direction:column}
.bleed{order:2;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%) !important;mask-image:linear-gradient(to bottom,transparent 0,#000 24%) !important;-webkit-mask-composite:source-over !important;mask-composite:add !important}
@media(max-width:899px){.bleed-sec{padding-bottom:0 !important}.bleed{margin-top:32px;height:320px}}
@media(min-width:900px){
 .bleed-sec{display:block}
 .bleed-r{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%) !important;mask-image:linear-gradient(to right,transparent 0,#000 22%) !important;-webkit-mask-composite:source-over !important;mask-composite:add !important}
 .bleed-l{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 22%) !important;mask-image:linear-gradient(to left,transparent 0,#000 22%) !important;-webkit-mask-composite:source-over !important;mask-composite:add !important}
}
@media(min-width:900px){#safeguarding .bleed{top:50% !important;bottom:auto !important;height:660px !important;transform:translateY(-50%)}#safeguarding .bleed img{object-position:50% 45%}}
/* v146 wide editorial fade (starts ~50%, ~310px long) + 2-column bullets */
@media(min-width:900px){
 .bleed{width:50% !important}
 #recognition .bleed-r{width:52% !important}
 .bleed-r{-webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.04) 40px,rgba(0,0,0,.18) 100px,rgba(0,0,0,.48) 180px,rgba(0,0,0,.82) 250px,#000 310px) !important;mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.04) 40px,rgba(0,0,0,.18) 100px,rgba(0,0,0,.48) 180px,rgba(0,0,0,.82) 250px,#000 310px) !important}
 .bleed-l{-webkit-mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.04) 40px,rgba(0,0,0,.18) 100px,rgba(0,0,0,.48) 180px,rgba(0,0,0,.82) 250px,#000 310px) !important;mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.04) 40px,rgba(0,0,0,.18) 100px,rgba(0,0,0,.48) 180px,rgba(0,0,0,.82) 250px,#000 310px) !important}
 #about .principles{display:grid !important;grid-template-columns:1fr 1fr;column-gap:36px}
 #about .principles li{display:block !important;padding-block:18px !important}
 #about .principles .n{display:block;margin:0 0 6px;padding:0 !important}
 #about .principles h3{font-size:1.1875rem !important}
 #about .principles p{font-size:.9375rem !important}
 #safeguarding .ledger{display:grid !important;grid-template-columns:1fr 1fr;column-gap:36px}
 #safeguarding .ledger>div{display:block !important;padding-block:18px !important}
 #safeguarding .ledger dt{display:flex !important;align-items:center;gap:8px;margin-bottom:8px;padding:0 !important}
 #safeguarding .ledger dd h3{font-size:1.0625rem !important;margin:0 !important}
 #safeguarding .ledger dd p{font-size:.9375rem !important;margin-top:4px !important}
}
.sx-multi video.cov-new{object-fit:contain;background:#1b0f1b}
/* v148 soft edges, no hard corners, on white */
@media(min-width:900px){
 .bleed-r{-webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.05) 40px,rgba(0,0,0,.2) 100px,rgba(0,0,0,.5) 180px,rgba(0,0,0,.84) 250px,#000 310px),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.3) 40px,rgba(0,0,0,.75) 95px,#000 140px,#000 calc(100% - 140px),rgba(0,0,0,.75) calc(100% - 95px),rgba(0,0,0,.3) calc(100% - 40px),transparent 100%) !important;mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.05) 40px,rgba(0,0,0,.2) 100px,rgba(0,0,0,.5) 180px,rgba(0,0,0,.84) 250px,#000 310px),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.3) 40px,rgba(0,0,0,.75) 95px,#000 140px,#000 calc(100% - 140px),rgba(0,0,0,.75) calc(100% - 95px),rgba(0,0,0,.3) calc(100% - 40px),transparent 100%) !important;-webkit-mask-composite:source-in !important;mask-composite:intersect !important}
 .bleed-l{-webkit-mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.05) 40px,rgba(0,0,0,.2) 100px,rgba(0,0,0,.5) 180px,rgba(0,0,0,.84) 250px,#000 310px),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.3) 40px,rgba(0,0,0,.75) 95px,#000 140px,#000 calc(100% - 140px),rgba(0,0,0,.75) calc(100% - 95px),rgba(0,0,0,.3) calc(100% - 40px),transparent 100%) !important;mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.05) 40px,rgba(0,0,0,.2) 100px,rgba(0,0,0,.5) 180px,rgba(0,0,0,.84) 250px,#000 310px),linear-gradient(to bottom,transparent 0,rgba(0,0,0,.3) 40px,rgba(0,0,0,.75) 95px,#000 140px,#000 calc(100% - 140px),rgba(0,0,0,.75) calc(100% - 95px),rgba(0,0,0,.3) calc(100% - 40px),transparent 100%) !important;-webkit-mask-composite:source-in !important;mask-composite:intersect !important}
}
@media(max-width:899px){.bleed{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 78%,transparent 100%) !important;mask-image:linear-gradient(to bottom,transparent 0,#000 24%,#000 78%,transparent 100%) !important}}
/* v149 one light background colour everywhere */
body,#about,#study-programmes,#safeguarding,#recognition{background:#FBF6F2 !important}
/* v150 reference blend: photo hugs screen/section edges, fades only towards the content */
@media(min-width:900px){
 .bleed-r{width:52% !important;-webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.03) 40px,rgba(0,0,0,.12) 95px,rgba(0,0,0,.3) 155px,rgba(0,0,0,.55) 215px,rgba(0,0,0,.8) 285px,rgba(0,0,0,.95) 340px,#000 390px) !important;mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.03) 40px,rgba(0,0,0,.12) 95px,rgba(0,0,0,.3) 155px,rgba(0,0,0,.55) 215px,rgba(0,0,0,.8) 285px,rgba(0,0,0,.95) 340px,#000 390px) !important;-webkit-mask-composite:source-over !important;mask-composite:add !important}
 #safeguarding .bleed{top:0 !important;bottom:auto !important;height:82% !important;transform:none !important;width:52% !important}
 #safeguarding .bleed-l{-webkit-mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.03) 40px,rgba(0,0,0,.12) 95px,rgba(0,0,0,.3) 155px,rgba(0,0,0,.55) 215px,rgba(0,0,0,.8) 285px,rgba(0,0,0,.95) 340px,#000 390px),linear-gradient(to bottom,#000 0,#000 52%,rgba(0,0,0,.85) 62%,rgba(0,0,0,.5) 75%,rgba(0,0,0,.18) 88%,transparent 100%) !important;mask-image:linear-gradient(to left,transparent 0,rgba(0,0,0,.03) 40px,rgba(0,0,0,.12) 95px,rgba(0,0,0,.3) 155px,rgba(0,0,0,.55) 215px,rgba(0,0,0,.8) 285px,rgba(0,0,0,.95) 340px,#000 390px),linear-gradient(to bottom,#000 0,#000 52%,rgba(0,0,0,.85) 62%,rgba(0,0,0,.5) 75%,rgba(0,0,0,.18) 88%,transparent 100%) !important;-webkit-mask-composite:source-in !important;mask-composite:intersect !important}
 #safeguarding .bleed img{object-position:50% 40% !important}
}
@media(max-width:899px){.bleed{-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 12%,rgba(0,0,0,.8) 24%,#000 34%) !important;mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 12%,rgba(0,0,0,.8) 24%,#000 34%) !important}}

/* v152 QA: delivery-model card footers align across a row; larger tap area for photo dots (visual unchanged) */
.dm .dm-card .dm-front .act{margin-top:auto !important;}
.sx-dots button{position:relative;}
.sx-dots button::before{content:""; position:absolute; inset:-14px -3px;}

/* v153: flipped delivery-model cards share one height; long backs show point titles with View more */
.dmb-pts .dmb-more{display:inline;}
.dm-back:not(.is-open) .dmb-pts .dmb-more{display:none;}
.dm-back:not(.is-open) .dmb-pts li{padding-block:3px !important;}
.dmb-toggle{display:flex; width:fit-content; align-items:center; gap:6px; margin-top:12px; padding:0; border:0; background:none; color:var(--blush); font:inherit; font-size:.875rem; font-weight:650; cursor:pointer; text-decoration:underline; text-underline-offset:3px;}
.dmb-toggle:hover{color:#fff;}

/* v154: apprenticeships - eyebrow above headline removed; word sized to stay inside the photo; balanced top spacing */
#apprenticeships .sec-mark{display:none !important;}
@media(min-width:1080px){
  .appr-word{font-size:min(12svh, 6.6vw, 100px) !important;}
  .appr-body{padding-top:clamp(96px,8vw,136px) !important;}
}

/* v156/157: mobile + tablet photos blend out at the bottom (solid top), shorter fade, no dead gap */
@media(max-width:899px){.bleed{margin-bottom:-40px;position:relative;z-index:0;-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.2) 83%,transparent 88%) !important;mask-image:linear-gradient(to bottom,#000 0,#000 66%,rgba(0,0,0,.6) 76%,rgba(0,0,0,.2) 83%,transparent 88%) !important}}

/* v158: mobile + tablet section photos are square */
@media(max-width:899px){.bleed{height:auto !important;aspect-ratio:1 / 1}#recognition .bleed img{object-position:62% 30% !important}}

/* WordPress admin bar: keep the fixed site header below it when logged in */
body.admin-bar header.site{top:32px;}
@media(max-width:782px){body.admin-bar header.site{top:46px;}}

.status.err{background:#fbe9e7; color:#8a1f11;}