:root{
  /* Brand */
  --primary: #2a6fdb;
  --primary2: #3b82f6;
  --violet: #6a5cf0;
  --violet-light: #7c6cf5;
  --indigo: #5b52ea;
  --sky: #8ec1ff;
  --lavender: #b4a9ff;
  --cyan: #38bdf8;
  --gold: #f3ba62;

  /* Text and neutrals */
  --navy: #102c4a;
  --ink: #16334f;
  --muted: #577187;
  --text-subtle: #5b7285;
  --white: #fff;
  --black: #000;

  /* Surfaces and borders */
  --soft: #f2f5fa;
  --surface-50: #f7f9fe;
  --surface-100: #eaf0fb;
  --surface-slate: #eaf0f7;
  --surface-slate-2: #e6edf5;
  --line: #dce8ee;
  --line-chip: #dbe3ee;
  --line-blue: #d3def2;
  --line-strong: #b9ccf3;

  /* Translucent */
  --white-a12: #ffffff1f;
  --primary-a6: #2a6fdb0f;
  --primary-a33: #2a6fdb55;
  --glow-a67: #4a80f5aa;
  --shadow-navy-a25: #0f2a5a40;
  --shadow-teal-a3: #10384d08;

  /* Gradients and shadows */
  --ai-grad: linear-gradient(120deg,var(--primary) 0%,#3a70e4 50%,var(--violet) 100%);
  --ai-glow: 0 8px 24px -8px #4a80f55c,0 0 0 1px #ffffff14 inset;
  --shadow-card: 0 14px 30px -24px var(--shadow-navy-a25);
  --shadow-card-hover: 0 22px 44px -26px var(--primary-a33);
  --shadow-glow-sm: 0 6px 16px -6px #4a80f566;
  --ring-avatar: 0 0 0 4px var(--white),0 0 0 6px #d6e3fa;

  /* Type, radius and motion */
  --font-sans: Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  --font-mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-md: 14px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;
  --ease-out: cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;background:var(--white)}a{color:inherit}img{max-width:100%;height:auto}button,input{font:inherit}button{cursor:pointer}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.skip{position:absolute;top:-100px;left:20px;background:var(--white);padding:10px;z-index:20}.skip:focus{top:10px}.topline{height:5px}.header{position:sticky;top:0;background:var(--white);border-bottom:1px solid var(--line);z-index:10;box-shadow:0 8px 25px #0a304708}.nav{min-height:76px;display:flex;align-items:center;gap:30px}.brand{font-size:25px;font-weight:800;letter-spacing:-.07em;color:var(--navy);text-decoration:none;white-space:nowrap}.brand-mark{color:var(--primary)}.navlinks{display:flex;align-items:center;gap:26px;margin-left:auto}.navlinks a{text-decoration:none;font-size:14px;font-weight:650;color:#334d63}.navlinks a:hover,.footer a:hover{color:var(--primary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:11px 20px;border-radius:var(--radius-sm);background:var(--primary);color:var(--white);text-decoration:none;font-weight:700;border:1px solid var(--primary);transition:transform .2s,background .2s}.button:hover{background:#1f5cc0;transform:translateY(-2px)}.button.secondary{background:var(--white);color:var(--ink);border-color:#aebbd1}.button.secondary:hover{background:#eef2f8}.button.light{background:var(--white);color:var(--navy);border-color:var(--white)}.menu-toggle{display:none}.eyebrow{font-size:12px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:var(--primary);margin:0 0 13px}.hero{overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;padding-top:80px;padding-bottom:73px}.hero h1{font-size:clamp(2.6rem,4.5vw,4.65rem);letter-spacing:-.055em;line-height:1.09;margin:0 0 24px;max-width:680px;color:var(--navy)}.hero h1 em{font-style:normal}.hero p{font-size:1.12rem;color:#456176;max-width:620px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.proofline{display:flex;gap:18px;flex-wrap:wrap;font-weight:650;font-size:13px;color:#526c7e}.proofline span+span{border-left:1px solid #b6c3d6;padding-left:18px}.hero-visual{position:relative}.hero-visual img{display:block;width:100%;object-fit:contain}.visual-label{bottom:-15px;left:30px;right:30px;text-align:center;font-size:13px}.section{padding:96px 0}.section.alt{background:var(--soft)}.section.dark{background:var(--navy);color:var(--white)}.section-head{max-width:730px;margin-bottom:42px}.section-head.center{text-align:center;margin-left:auto;margin-right:auto}h2{font-size:clamp(2rem,3vw,3.1rem);line-height:1.15;letter-spacing:-.04em;color:var(--navy);margin:0 0 18px}h3{font-size:1.18rem;line-height:1.3;letter-spacing:-.02em;margin:0 0 9px}p{margin:0 0 15px}.section-head p,.subtle{color:var(--muted);font-size:1.05rem}.dark h2,.dark p{color:var(--white)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tile{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:29px;box-shadow:0 8px 26px var(--shadow-teal-a3)}.tile p{color:var(--muted);margin-bottom:0}.glyph{display:grid;place-items:center;width:46px;height:46px;border-radius:11px;font-size:22px;margin-bottom:20px}.text-link{display:inline-flex;color:var(--primary);font-weight:750;text-decoration:none;margin-top:22px}.text-link:hover{text-decoration:underline}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.product-visual{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 20px 40px #12354d13}.product-visual img{display:block;width:100%;object-fit:contain}.mini-list{list-style:none;padding:0;margin:20px 0}.mini-list li{padding:8px 0 8px 27px;position:relative}.mini-list li:before{content:'✓';position:absolute;left:0;color:var(--primary);font-weight:900}.feature-layout{display:grid;align-items:start}.feature-tab{text-align:left;display:flex;justify-content:space-between;gap:15px}.feature-tab:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.feature-layout>div:last-child{display:grid}.feature-layout>div:last-child>.feature-panel{grid-area:1/1}.feature-panel[hidden]{display:grid;visibility:hidden}.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.chip{padding:12px 15px;background:#f1f4f9;border:1px solid #d9e1ec;border-radius:var(--radius-sm);font-weight:650;font-size:14px}.sg-strip{display:grid;grid-template-columns:1.4fr repeat(2,.7fr);gap:25px}.sg-strip h2{margin-bottom:12px}.stat{font-size:3rem;line-height:1;font-weight:800;letter-spacing:-.06em}.stat-label{font-size:14px;color:#cbd7eb;margin-top:12px}.marquee-frame{overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,var(--black) 5%,var(--black) 95%,transparent)}.marquee-track{display:flex;align-items:center;width:max-content;gap:20px;padding-right:20px;animation:marquee 86s linear infinite;will-change:transform}.marquee-frame:hover .marquee-track,.marquee-frame:focus-within .marquee-track{animation-play-state:paused}.client-logo{width:186px;height:106px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);display:grid;place-items:center;padding:18px;flex:none}.client-logo img{width:100%;height:100%;object-fit:contain}@keyframes marquee{to{transform:translateX(-50%)}}.testimonial{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:34px}.quote-mark{color:var(--primary);font-size:50px;line-height:1}.testimonial blockquote{margin:0 0 18px;font-size:1.2rem;line-height:1.5;color:var(--navy)}.testimonial small{color:var(--muted)}.faq{max-width:850px;margin:auto}.faq details{background:var(--white);border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:0 20px}.faq summary{cursor:pointer;font-weight:700;padding:19px 8px 19px 0;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';font-size:25px;color:var(--primary);line-height:1}.faq details[open] summary:after{content:'−'}.faq details p{color:var(--muted);padding:0 25px 16px 0}.final{color:var(--white);text-align:center;padding:85px 0}.final h2{color:var(--white)}.final p{max-width:610px;margin:0 auto 24px;color:#e0e8f4}.footer{background:#0b243b;color:#b8cad6;padding:55px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:35px}.footer a{display:block;text-decoration:none;margin:7px 0;font-size:14px}.footer b{color:var(--white)}.copyright{margin-top:35px;border-top:1px solid #32506a;padding-top:20px;font-size:13px}.desktop-only{display:block}@media(max-width:920px){.navlinks{display:none;position:absolute;top:100%;left:0;right:0;background:var(--white);padding:18px 24px 25px;box-shadow:0 15px 18px #12354d18;flex-direction:column;align-items:stretch;gap:12px}.navlinks.open{display:flex}.menu-toggle{display:grid;place-items:center;margin-left:auto;width:44px;height:44px;border:1px solid var(--line);background:var(--white);padding:0;border-radius:7px;cursor:pointer}.menu-toggle span{grid-area:1/1;width:20px;height:2px;border-radius:2px;background:var(--navy);transition:transform .3s var(--ease-out),opacity .2s}.menu-toggle span:nth-child(1){transform:translateY(-6px)}.menu-toggle span:nth-child(3){transform:translateY(6px)}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}.nav>.button{display:none}.hero-grid,.split,.proof-band{grid-template-columns:1fr}.hero-grid{padding-top:60px}.hero-visual{max-width:650px}.feature-layout{grid-template-columns:1fr}.sg-strip{grid-template-columns:1fr 1fr}.sg-strip>div:first-child{grid-column:1/-1}}@media(max-width:650px){.wrap{width:min(100% - 32px,1180px)}.section{padding:65px 0}.hero-grid{gap:30px;padding-bottom:60px}.hero h1{font-size:2.6rem}.hero p{font-size:1rem}.visual-label{position:static;margin-top:8px}.grid3,.proof-band,.sg-strip{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.footer-grid>:first-child{grid-column:1/-1}.feature-list{grid-template-columns:1fr}.feature-panel{min-height:0}.chip-grid{grid-template-columns:repeat(2,1fr)}.proofline{gap:8px}.proofline span+span{padding-left:8px}.client-logo{width:140px;height:90px}.desktop-only{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.marquee-frame{overflow-x:auto}.marquee-track{width:max-content}}

/* Shared secondary pages */
.page-hero{padding:76px 0;background:linear-gradient(135deg,var(--surface-slate),var(--white))}.page-hero .wrap{max-width:1180px}.page-hero h1{font-size:clamp(2.6rem,4.3vw,4.5rem);line-height:1.12;letter-spacing:-.055em;color:var(--navy);max-width:870px;margin:0 0 18px}.page-hero p{font-size:1.15rem;color:var(--muted);max-width:730px}.breadcrumb{font-size:13px;color:#587282;margin-bottom:30px}.breadcrumb a{color:var(--primary)}.two-col{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.info-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:30px}.info-card p{color:var(--muted)}.info-card h3{color:var(--navy)}.card-link{display:inline-block;margin-top:12px;color:var(--primary);font-weight:750}.editorial{max-width:760px;overflow-wrap:break-word}.editorial h2{font-size:2rem;margin-top:46px}.editorial h3{margin-top:27px}.editorial p,.editorial li{color:#455f73}.editorial li{margin-bottom:8px}.kicker{font-size:13px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.12em}.step-list{counter-reset:steps;display:grid;gap:12px}.step-list article{counter-increment:steps;padding:22px 25px 22px 72px;border:1px solid var(--line);border-radius:11px;position:relative;background:var(--white)}.step-list article:before{content:counter(steps,decimal-leading-zero);position:absolute;left:22px;top:22px;color:var(--primary);font-weight:800}.step-list h3{margin-bottom:4px}.step-list p{margin:0;color:var(--muted)}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.contact-grid a{color:var(--primary);font-weight:700}.note{padding:18px 23px;border-left:3px solid var(--primary);background:#edf2f9;color:#3c596b}.resource-card{min-height:260px;display:flex;flex-direction:column}.resource-card a{margin-top:auto}.course-tag{color:var(--primary);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.course-list{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.course-list article{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:25px}.course-list h3{margin-top:7px}.course-list a{font-weight:700;color:var(--primary)}@media(max-width:750px){.two-col,.three-col,.contact-grid,.course-list{grid-template-columns:1fr}.page-hero{padding:55px 0}.page-hero h1{font-size:2.55rem}}@media(min-width:921px) and (max-width:1220px){.navlinks a{font-size:13px}.nav>.button{padding:10px 12px;font-size:13px}}

.proof-band{display:grid}.award-card{display:flex;flex-direction:column;border:1px solid #d3dce9;border-radius:var(--radius-lg)}.award-top{display:flex}.award-top .eyebrow{margin-bottom:7px}.award-top h3{margin:0;color:#123653}.award-number{padding:14px;display:grid;place-items:center;color:var(--white);line-height:1;font-weight:850;letter-spacing:-.045em}.award-card>p:not(.award-source){line-height:1.65;color:#455f73}.award-source{border-top:1px solid #e1e6ee;padding-top:19px;font-size:13px;color:#557083}.award-source a{font-weight:750;color:var(--primary);text-decoration:none}.award-source a:hover{text-decoration:underline}.journey-card{border:1px solid #d5dee9;border-radius:var(--radius-lg)}.journey-card h3{font-size:1.45rem;color:#123653}.journey-steps{list-style:none;margin:23px 0 24px;padding:0;counter-reset:steps}.journey-steps li{position:relative;padding:0 0 20px 47px;counter-increment:steps;border-left:1px solid #a8bbd2;margin-left:15px}.journey-steps li:last-child{padding-bottom:0;border-left-color:transparent}.journey-steps li:before{content:counter(steps);position:absolute;top:0;left:-16px;width:31px;height:31px;border-radius:50%;background:var(--white);border:1px solid #9bb1ce;color:var(--primary);font-size:13px;font-weight:800;display:grid;place-items:center}.journey-steps strong,.journey-steps span{display:block}.journey-steps strong{color:#173650}.journey-steps span{color:var(--muted);font-size:14px;margin-top:3px}.journey-card .button{font-size:14px}@media(max-width:530px){.award-top{gap:13px;align-items:flex-start}.award-top h3{font-size:1.2rem}}

.local-assurances{display:grid;gap:14px;margin:25px 0 27px}.local-assurances>div{padding-left:15px;border-left:2px solid var(--sky)}.local-assurances strong,.local-assurances span{display:block}.local-assurances strong{color:#a0c4ea;font-size:14px;letter-spacing:.01em}.local-assurances span{color:#d8e6ee;font-size:14px;line-height:1.5;margin-top:4px}.sg-strip{align-items:center}@media(max-width:650px){.local-assurances{margin:23px 0}}

/* Course Design page */
.course-services{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.course-service{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);padding:30px;box-shadow:0 7px 25px var(--shadow-teal-a3)}.course-service img{width:56px;height:56px;object-fit:contain;margin-bottom:17px}.course-service h3{color:var(--navy);font-size:1.25rem}.course-service p{color:var(--muted);margin:0}.design-split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}.design-split p{color:#4f6b7d}.method-figure,.portfolio-figure{background:var(--white);border:1px solid var(--line);padding:15px;border-radius:15px;margin:0;box-shadow:0 14px 34px #10384d12}.method-figure img,.portfolio-figure img{display:block;width:100%;height:auto;border-radius:var(--radius-sm)}.method-figure figcaption,.portfolio-figure figcaption{font-size:13px;color:var(--muted);padding:11px 4px 2px}.course-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.course-stats>div{text-align:center;padding:33px 20px;border:1px solid var(--line);border-radius:var(--radius)}.course-stats strong{display:block;font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.1;letter-spacing:-.06em}.course-stats span{display:block;color:var(--muted);font-weight:650;margin-top:10px}.industry-list{display:flex;flex-wrap:wrap;gap:11px;list-style:none;padding:0;margin:0}.industry-list li{padding:10px 16px;border:1px solid #d6dfec;border-radius:100px;background:var(--white);font-size:14px;font-weight:700;color:#254c61}.showcase-layout{display:grid;grid-template-columns:1.05fr .95fr}.sample-main{margin:0;border-radius:15px;position:sticky;top:104px}.sample-main img{display:block;width:100%}.sample-main figcaption{color:#304d62}.sample-thumbs{display:grid;grid-template-columns:repeat(2,1fr)}.sample-thumb{display:flex;flex-direction:column;text-align:left;color:var(--ink);min-width:0}.sample-thumb:hover,.sample-thumb[aria-pressed="true"]{border-color:var(--primary);box-shadow:0 8px 21px #2a6fdb14}.sample-thumb img{width:100%}.sample-thumb span{font-size:12px;color:var(--muted);line-height:1.4}@media(max-width:860px){.design-split,.showcase-layout{grid-template-columns:1fr}.sample-main{position:static}}@media(max-width:600px){.course-services,.course-stats{grid-template-columns:1fr}.sample-thumbs{grid-template-columns:repeat(2,1fr)}.course-service{padding:24px}}

.brand-logo{display:inline-flex;align-items:center;flex:none;letter-spacing:normal}.brand-logo img{display:block;width:176px;height:auto;max-width:none}@media(min-width:921px) and (max-width:1220px){.nav .brand-logo img{width:150px}.navlinks{gap:11px}.nav{gap:13px}}@media(max-width:650px){.nav .brand-logo img{width:155px}}

/* Contact and Academy pages */
.contact-hero{background:linear-gradient(120deg,#e8eff7,#f9fbfd)}.contact-hero h1{max-width:950px}.contact-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.contact-method{padding:27px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 9px 24px #10384d0a}.contact-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius);margin-bottom:16px}.contact-icon svg{width:23px;height:23px}.contact-method h3{font-size:1.32rem;color:var(--navy);margin-bottom:14px}.contact-method address{font-style:normal;color:#476174;line-height:1.75}.contact-line{display:flex;justify-content:space-between;gap:14px;align-items:baseline;border-top:1px solid #e5eaf1;padding:11px 0}.contact-line span{font-size:13px;color:#62798a}.contact-line a{font-size:14px;color:var(--primary);font-weight:700;text-decoration:none;overflow-wrap:anywhere;text-align:right}.contact-line a:hover{text-decoration:underline}.contact-form-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}.contact-help{padding:20px 23px;border-left:3px solid var(--primary);background:var(--white);margin-top:25px}.contact-help p{margin:6px 0 0;color:var(--muted)}.contact-help a{color:var(--primary);font-weight:700}.enquiry-form{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:31px;box-shadow:0 15px 35px #10384d0d}.enquiry-form label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin:0 0 8px}.enquiry-form label span{color:#b33b43}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{width:100%;border:1px solid #b8c4d9;background:var(--white);border-radius:7px;color:var(--ink);padding:11px 13px;min-height:47px;margin-bottom:19px}.enquiry-form textarea{resize:vertical;min-height:135px}.enquiry-embed{padding-top:22px;background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 15px 35px #10384d14}.enquiry-embed iframe{display:block;width:100%;height:1260px;border:0}@media(min-width:951px){.contact-form-grid>div:first-child{position:sticky;top:110px}}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.form-actions button{font-size:14px}.form-note{font-size:12px;color:#5f7888;margin-top:15px;line-height:1.5}.map-frame{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#e9edf4}.map-frame iframe{display:block;width:100%;height:390px;border:0}.training-hero{background:linear-gradient(120deg,#ecf1f8,var(--white))}.academy-grid{display:grid;gap:18px}.academy-course{border:1px solid var(--line);border-radius:13px;background:var(--white);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 24px var(--shadow-teal-a3)}.academy-image{background:#e9eef6;aspect-ratio:16/9;overflow:hidden}.academy-image img{display:block;width:100%;height:100%;object-fit:cover}.academy-body{padding:22px;display:flex;flex-direction:column;flex:1}.academy-body .course-tag{font-size:11px;line-height:1.4}.academy-body h3{margin:10px 0;color:var(--navy)}.academy-body p{color:var(--muted);font-size:14px;line-height:1.55;flex:1}.academy-actions{display:flex;flex-wrap:wrap;gap:15px;border-top:1px solid var(--line);padding-top:15px;margin-top:12px}.academy-actions a{color:var(--primary);font-weight:700;font-size:13px;text-decoration:none}.academy-actions a:hover{text-decoration:underline}.academy-contact-section{background:linear-gradient(115deg,#e9eff7,var(--white))}.academy-contact-grid{display:grid;grid-template-columns:1fr .75fr;gap:30px;align-items:center}.academy-contact-grid>img{width:100%;height:auto;object-fit:contain}.academy-contact-grid .subtle a{color:var(--primary)}@media(max-width:950px){.contact-methods{grid-template-columns:repeat(2,1fr)}.contact-method:last-child{grid-column:1/-1}.academy-grid{grid-template-columns:repeat(2,1fr)}.contact-form-grid{grid-template-columns:1fr;gap:25px}}@media(max-width:650px){.contact-methods,.academy-grid,.academy-contact-grid,.form-row{grid-template-columns:1fr}.contact-method:last-child{grid-column:auto}.contact-form-grid{gap:22px}.enquiry-form{padding:23px}.enquiry-embed iframe{height:1360px}.map-frame iframe{height:300px}.academy-image{aspect-ratio:2}.academy-contact-grid>img{max-width:400px}}

/* Platform product tabs and screenshots */
.platform-head{max-width:760px;margin-bottom:24px}.platform-head p{color:var(--muted);font-size:1.05rem}.platform-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--line)}.platform-tabs button{padding:13px 19px;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--muted);font-weight:750}.platform-tabs button[aria-selected="true"]{color:var(--navy);border-color:var(--primary)}.platform-tabs button:focus-visible,.ai-carousel button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.platform-stage{background:var(--white);border:1px solid var(--line);border-radius:17px;padding:28px}.platform-panel{gap:42px}.platform-panel[hidden]{display:none}.platform-panel h3{font-size:clamp(1.55rem,2.1vw,2.15rem);color:var(--navy);line-height:1.2}.platform-panel .product-visual{margin:0}.product-visual figcaption{color:var(--muted);font-size:12px;margin-top:10px}.swda-visual img{aspect-ratio:1.8;object-fit:contain}.client-edufront{background:var(--white)}.client-edufront img{max-width:100%;object-fit:contain}.award-card{min-height:0}.journey-card{height:auto}.cert-section .section-head p{max-width:820px}.cert-grid{gap:13px}.cert-grid .info-card{box-shadow:0 10px 24px #10384d0a}.cert-grid .info-card h3{font-size:1.3rem}.cert-grid .info-card p{margin:0;font-size:14px}.cert-section>div>p.subtle{font-size:13px!important;margin-top:17px!important}.sample-main img,.sample-thumb img{filter:contrast(1.04) saturate(1.08)}
/* AI page: focused carousel */
.ai-carousel{border:1px solid var(--line);border-radius:var(--radius-xl);overflow:hidden;background:linear-gradient(120deg,#eff4fa,var(--white) 60%);box-shadow:0 18px 45px #10384d14}.ai-slide{display:grid;grid-template-columns:.62fr 1fr;gap:18px;min-height:440px;align-items:center;animation:aiReveal .38s ease both}.ai-slide[hidden]{display:none}.ai-slide-copy{padding:40px}.ai-step{color:var(--primary);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.ai-slide h3{font-size:clamp(1.6rem,2.2vw,2.35rem);color:var(--navy);margin:12px 0;line-height:1.17}.ai-slide p{color:var(--muted);line-height:1.65}.ai-slide-shot{margin:0;padding:24px 24px 18px 0;min-width:0}.ai-image-window{position:relative;overflow:hidden;aspect-ratio:1.6;border-radius:var(--radius);border:1px solid #d8e1ee;background:#f7f9fc;box-shadow:0 14px 32px #10384d20}.ai-image-window img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.12);filter:contrast(1.06) saturate(1.05)}#ai-slide-6 .ai-image-window img{transform:scale(1.03);object-position:65% center}.ai-slide-shot figcaption{font-size:12px;color:#536f82;margin-top:10px}.ai-carousel-controls{display:flex;gap:18px;align-items:center;justify-content:center;padding:15px 20px 22px}.carousel-arrow{border:1px solid #adbcd2;background:var(--white);color:var(--navy);border-radius:50%;width:43px;height:43px;font-size:20px;cursor:pointer}.carousel-arrow:hover{background:var(--surface-slate-2)}.ai-carousel-dots{display:flex;gap:8px}.ai-dot{border:0;background:transparent;padding:10px 4px;cursor:pointer}.ai-dot span{display:block;width:9px;height:9px;border-radius:50%;background:#b1bfd3;transition:width .25s,background .25s}.ai-dot[aria-current="true"] span{width:29px;border-radius:9px;background:var(--primary)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes aiReveal{from{opacity:.35;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media(max-width:950px){.ai-slide{grid-template-columns:1fr;min-height:0}.ai-slide-copy{padding:26px 28px 6px}.ai-slide-shot{padding:0 22px 10px}.platform-panel{grid-template-columns:1fr}}@media(max-width:650px){.platform-stage{padding:17px}.platform-tabs button{padding:11px 9px;font-size:13px}.ai-slide-copy{padding:23px 21px 7px}.ai-slide-shot{padding:0 16px 7px}.award-top h3{font-size:1.35rem}.award-number{min-width:84px;min-height:78px;font-size:1.7rem}}@media(prefers-reduced-motion:reduce){.ai-slide{animation:none}.ai-dot span{transition:none}}

/* Slow product and AI slides; imagery blended into the AI header */
.platform-panel:not([hidden]){animation:platformReveal 1.15s ease both}@keyframes platformReveal{from{opacity:.15;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.ai-slide{animation-duration:1.05s}
.cert-section h2,.cert-section .section-head p,.cert-section>div>p.subtle{color:#edf2fa}.cert-grid .info-card{background:var(--white);color:var(--navy)}
@media(prefers-reduced-motion:reduce){.platform-panel:not([hidden]),.ai-slide{animation:none}}

/* Compact homepage certification highlight */
  .cert-highlight{display:flex;align-items:center;gap:17px;padding:16px 21px;margin-top:-19px;margin-bottom:12px;border:1px solid #d3dce9;background:var(--white);border-radius:13px;box-shadow:0 15px 35px #13344b14;position:relative;z-index:1}.cert-symbol{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:9px;color:var(--primary);background:#e1eaf4;font-size:21px;font-weight:850}.cert-heading{display:flex;flex-direction:column;line-height:1.35}.cert-heading strong{font-size:15px;color:#153650}.cert-heading span{font-size:12px;color:#647e8d}.cert-tags{display:flex;gap:6px;margin-left:auto}.cert-tags span{padding:5px 9px;border-radius:5px;border:1px solid #d6dfec;background:#f5f7fb;font-size:12px;font-weight:800;color:var(--primary)}.cert-highlight>a{color:var(--primary);font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap;margin-left:12px}.cert-highlight>a:hover{text-decoration:underline}@media(max-width:730px){.cert-highlight{flex-wrap:wrap}.cert-tags{margin-left:0}.cert-highlight>a{margin-left:auto}}@media(max-width:520px){.cert-heading{flex:1}.cert-tags{order:3}.cert-highlight>a{order:4}.cert-heading span{font-size:12px}}

/* One-viewport platform slideshow */
.platform-carousel{border:1px solid var(--line);background:var(--white);border-radius:17px;overflow:hidden;box-shadow:0 16px 35px #10384d0d}.platform-carousel .platform-stage{border:0;border-radius:0;padding:27px;min-height:470px}.platform-slide{gap:42px;align-items:center}.platform-slide:not(.is-active),.platform-slide[hidden]{display:none!important}.platform-slide.is-active{display:grid;animation:platformReveal .7s ease both}.platform-slide h3{font-size:clamp(1.55rem,2.1vw,2.15rem);color:var(--navy);line-height:1.2}.platform-slide .product-visual{margin:0}.platform-controls{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 16px 19px;border-top:1px solid var(--line)}.platform-arrow{width:39px;height:39px;border:1px solid #b7c4d8;background:var(--white);color:var(--navy);border-radius:50%;font-size:20px;cursor:pointer}.platform-arrow:hover{background:#e8eef6}.platform-dots{display:flex;gap:8px}.platform-dot{border:0;background:transparent;padding:10px 4px;cursor:pointer}.platform-dot span{display:block;width:10px;height:10px;border-radius:50%;background:#b1bfd3}.platform-dot[aria-current="true"] span{width:27px;border-radius:10px}.platform-arrow:focus-visible,.platform-dot:focus-visible{outline:3px solid var(--gold);outline-offset:3px}@media(max-width:950px){.platform-slide{grid-template-columns:1fr}.platform-carousel .platform-stage{min-height:0}}@media(max-width:650px){.platform-carousel .platform-stage{padding:17px}}@media(prefers-reduced-motion:reduce){.platform-slide.is-active{animation:none}}

.insights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.insights-grid .resource-card{min-height:245px}.article-meta{font-size:14px;color:#597286;margin:0 0 26px}.security-table-wrap{overflow-x:auto;margin:24px 0 34px;border:1px solid var(--line);border-radius:var(--radius)}.security-table{width:100%;border-collapse:collapse;min-width:610px;background:var(--white)}.security-table th,.security-table td{text-align:left;vertical-align:top;padding:15px 18px;border-bottom:1px solid var(--line)}.security-table th{background:var(--surface-slate);color:var(--navy);font-size:14px}.security-table tr:last-child td{border-bottom:0}.security-table td:first-child{font-weight:750;color:var(--navy);min-width:140px}.editorial .source-list{font-size:14px}.editorial a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.editorial .note{margin:30px 0}.editorial .note p{margin:0 0 12px}.editorial .note p:last-child{margin-bottom:0}@media(max-width:750px){.insights-grid{grid-template-columns:1fr}.insights-grid .resource-card{min-height:0}}
/* Security and company-purpose sections */
.cert-icon{width:52px;height:52px;display:grid;place-items:center;border:1px solid #79aae0;border-radius:15px;background:#ffffff14;color:#8fbbe8;margin-bottom:20px}.cert-icon svg{width:31px;height:31px}.cert-section .subtle a{font-weight:750;text-decoration:underline;text-underline-offset:3px}.about-story{max-width:820px}.values-grid .info-card{height:100%}.values-label{font-size:13px;font-weight:800;color:var(--primary);letter-spacing:.1em;text-transform:uppercase}.values-grid h3{margin:13px 0 10px}
/* Long-form Insights guides and revised company values */
.article-toc{margin:26px 0 34px;padding:20px 24px;background:#edf2f9;border:1px solid #d1dceb;border-radius:var(--radius)}.article-toc strong{color:var(--navy)}.article-toc ul{margin:12px 0 0;padding-left:20px;columns:2;column-gap:48px}.article-toc li{break-inside:avoid;margin-bottom:7px}.article-references{border-top:1px solid var(--line);margin-top:48px;padding-top:6px}.article-next{margin-top:30px}.guide-article{max-width:860px}.guide-article h2{scroll-margin-top:105px}.guide-article h4{color:var(--navy);font-size:1.1rem;margin:24px 0 9px}.guide-article .security-table{min-width:620px}.values-principles{margin-top:25px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}.four-col{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.four-col>div{padding-left:13px}.four-col strong,.four-col span{display:block}.four-col strong{color:var(--navy)}.four-col span{color:var(--muted);font-size:14px;margin-top:4px}.values-source{font-size:13px;color:var(--muted);margin-top:18px}.values-source a{color:var(--primary)}@media(max-width:750px){.article-toc ul{columns:1}.four-col{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.four-col{grid-template-columns:1fr}}
/* Live catalogue training cards */
.catalogue-course{display:flex;flex-direction:column}.catalogue-course .academy-body{display:flex;flex-direction:column;flex:1}.catalogue-course .academy-actions{margin-top:auto}.catalogue-more{margin-top:28px;padding:23px 27px;border-radius:var(--radius-md);background:var(--surface-slate);display:flex;justify-content:space-between;align-items:center;gap:18px}.catalogue-more strong{font-size:1.15rem;color:var(--navy)}.catalogue-more p{margin:5px 0 0;color:var(--muted)}.catalogue-more .button{flex:none}@media(max-width:650px){.catalogue-more{align-items:flex-start;flex-direction:column}}
.academy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.academy-grid{grid-template-columns:1fr}}
/* AI glow layer: blue-to-indigo gradients and soft glows */

.topline{background:linear-gradient(90deg,var(--primary),var(--primary2),var(--violet-light),var(--cyan),var(--primary));background-size:300% 100%;animation:aiFlow 12s linear infinite}
@keyframes aiFlow{to{background-position:300% 0}}
.button:not(.secondary):not(.light){background:var(--ai-grad);background-size:160% 100%;background-position:0 0;border-color:transparent;box-shadow:var(--ai-glow);transition:transform .2s,box-shadow .25s,background-position .4s}
.button:not(.secondary):not(.light):hover{background-position:100% 0;box-shadow:0 12px 30px -8px #6a5cf077,0 0 0 1px #ffffff22 inset}
.button.light{box-shadow:0 8px 24px -10px #8ec1ff66}.button.light:hover{box-shadow:0 12px 28px -8px #a5b4fc8c}
.hero{position:relative;isolation:isolate;background:radial-gradient(38% 55% at 88% 18%,#d3e1ff 0,transparent 70%),radial-gradient(30% 45% at 70% 90%,#e8e3ff 0,transparent 70%),radial-gradient(35% 50% at 5% 0,#dce9fb 0,transparent 70%),linear-gradient(135deg,var(--surface-50),var(--surface-100))}
.hero:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--primary-a6) 1px,transparent 1px),linear-gradient(90deg,var(--primary-a6) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 80% at 70% 40%,var(--black) 20%,transparent 75%);mask-image:radial-gradient(70% 80% at 70% 40%,var(--black) 20%,transparent 75%)}
.hero h1 em{-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-visual{border-color:#ffffffcc}
.hero-visual:before{content:'';position:absolute;z-index:-1;animation:aiPulse 6s ease-in-out infinite}
@keyframes aiPulse{50%{opacity:.15;transform:scale(.98)}}
.glyph{background:var(--ai-grad);color:var(--white);box-shadow:var(--shadow-glow-sm)}

.platform-dot[aria-current="true"] span{background:var(--ai-grad);box-shadow:0 0 8px #3b82f677}
.section.dark,.final,.cert-section{position:relative;isolation:isolate;overflow:hidden}
.section.dark:before,.final:before,.cert-section:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(40% 70% at 90% 10%,#3b82f624,transparent 70%),radial-gradient(35% 60% at 5% 100%,#7c6cf520,transparent 70%)}
.final{background:linear-gradient(120deg,#0d2a4e,var(--primary) 70%,#4338ca)}
.stat{background:linear-gradient(100deg,var(--sky),var(--lavender));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Hero product: frameless device floating on the gradient */
.hero-visual{background:none;border:0;border-radius:0;padding:0;box-shadow:none}
.hero-visual img{aspect-ratio:auto}
@keyframes heroFloat{50%{transform:translateY(-10px)}}
.hero-visual:before{inset:10% 8% 18%;border-radius:50%;background:radial-gradient(closest-side,var(--primary2),var(--violet-light) 60%,transparent);filter:blur(60px);opacity:.28}
.visual-label{position:static;width:fit-content;max-width:100%;margin:14px auto 0;padding:9px 18px;border-radius:var(--radius-pill);background:#ffffffa6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #ffffffd9;color:var(--navy);font-weight:650;box-shadow:0 6px 18px -8px #0f2a5a33}

@media(max-width:920px){.hero-visual img{width:100%;max-width:100%;margin:0}}
/* Hero banner rises from the bottom edge of the hero */
.hero-grid{align-items:end}.hero-grid>div:first-child{align-self:center}
.hero-visual{margin-bottom:-73px}
.hero-visual img{animation:none;-webkit-mask-image:linear-gradient(var(--black) 85%,#0000);mask-image:linear-gradient(var(--black) 85%,#0000);filter:drop-shadow(0 20px 40px #0f2a5a2e)}
@media(max-width:650px){.hero-visual{margin-bottom:-60px}}
@media(min-width:921px){.hero-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.hero-visual{max-width:none}.hero-visual img{width:min(1040px,calc(103% + max(0px,(100vw - 1180px)/2) + 80px));max-width:none;margin:0 -100% 0 -4%}}
@media(min-width:921px){.hero-grid{padding-top:88px;padding-bottom:60px}.hero-visual{margin-bottom:-60px}.hero h1{font-size:clamp(2.6rem,4vw,4.1rem);margin-bottom:18px}.hero .actions{margin-bottom:0}}
/* Motion: hero entrance and scroll reveal */
@keyframes heroUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes heroRise{from{opacity:0;transform:translateY(60px) scale(.96)}to{opacity:1;transform:none}}
.hero-grid>div:first-child>*{animation:heroUp .8s var(--ease-out) both}
.hero-grid>div:first-child>:nth-child(2){animation-delay:.1s}.hero-grid>div:first-child>:nth-child(3){animation-delay:.2s}.hero-grid>div:first-child>:nth-child(4){animation-delay:.3s}
.hero-visual{animation:heroRise 1.1s var(--ease-out) .25s both}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s var(--ease-out);transition-delay:var(--reveal-delay,0s)}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
/* Platform explorer: pill tabs + split panel with product shot */
.feature-layout{grid-template-columns:1fr;gap:20px}
.feature-list{display:flex;flex-wrap:wrap;gap:10px}
.feature-tab{width:auto;padding:10px 20px;border-radius:var(--radius-pill);font-weight:650;font-size:15px;color:#3d566b;background:var(--white);border:1px solid var(--line);transition:box-shadow .2s,border-color .2s}
.feature-tab:hover{border-color:var(--line-strong);color:var(--navy)}
.feature-tab[aria-selected="true"]{background:var(--ai-grad);border-color:transparent;color:var(--white);box-shadow:0 0 0 3px var(--white),0 0 0 4px #2a6fdb66,0 10px 24px -10px var(--glow-a67)}
.feature-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;align-items:center;padding:36px;background:#f9fbfe;border:1px solid var(--line);border-radius:var(--radius-xl);min-height:0}
.feature-panel:not([hidden]){animation:heroUp .5s var(--ease-out) both}
.feature-panel .eyebrow,.ai-feature .eyebrow{font-family:var(--font-mono);font-weight:500;letter-spacing:.14em;font-size:12px}
.feature-panel h3,.ai-feature h3{font-size:clamp(1.45rem,2vw,1.75rem);color:var(--navy);letter-spacing:-.03em}
.feature-panel .chip-grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.feature-panel .chip{padding:7px 14px;border-radius:var(--radius-pill);background:var(--white);border:1px solid var(--line-chip);font-size:14px;font-weight:500;color:#4a6276}
.feature-shot{margin:0}
.feature-shot img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain}
.feature-shot figcaption{font-family:var(--font-mono);font-size:12.5px;color:var(--text-subtle)}
@media(max-width:920px){.feature-panel{grid-template-columns:1fr;gap:26px}.feature-list{grid-template-columns:none}}
@media(max-width:650px){.feature-tab{flex:none}.feature-panel{padding:22px}}
/* Current page in the main navigation */
.navlinks a{position:relative}
.navlinks a[aria-current="page"]{color:var(--primary)}
.navlinks a[aria-current="page"]:after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;border-radius:2px;background:var(--ai-grad)}
@media(max-width:920px){.navlinks a[aria-current="page"]{padding-left:12px}.navlinks a[aria-current="page"]:after{top:3px;bottom:3px;left:0;right:auto;width:3px;height:auto}}
/* Homepage rhythm: alternating light sections, one dark focal band */
.cert-section{padding:96px 0;background:var(--soft);color:var(--ink)}
.cert-section:before{display:none}
.cert-section h2{color:var(--navy);font-size:clamp(2rem,3vw,3.1rem)}
.cert-section .section-head p,.cert-section>div>p.subtle{color:var(--muted)}
.cert-section .eyebrow{color:var(--primary)}
.cert-section .subtle a{color:var(--primary)}
.cert-section .section-head{max-width:730px;margin-bottom:42px}
.section.logos{padding:48px 0 56px;border-bottom:1px solid var(--line)}
.section.logos .section-head{margin-bottom:22px}
.section.logos .section-head p{font-size:.95rem}
@media(max-width:650px){.cert-section{padding:65px 0}.section.logos{padding:36px 0 40px}}
/* Client logos: borderless, unified greyscale, colour on hover */
/* Each logo sets --logo-w inline (index.html). It is worked out from the visible logo inside each file (blank margins
   measured and excluded) so every logo covers roughly the same visual area, slightly smaller for heavy/solid marks.
   No max-height: files with built-in margins need to render taller than the visible logo.
   --logo-ml/--logo-mr are each file's blank side margins at that width; negative margins cancel them so the visible gaps match. */
.section.logos .client-logo,.section.logos .client-edufront{background:transparent;border:0;border-radius:0;padding:10px 22px;width:auto;height:84px;display:flex;align-items:center;justify-content:center}
.section.logos .client-logo img{transition:filter .3s,opacity .3s;will-change:filter;width:var(--logo-w,140px);max-width:none;height:auto;margin:0 calc(var(--logo-mr,0px)*-1) 0 calc(var(--logo-ml,0px)*-1)}

/* nav.js drives the marquee transform (hover eases to a stop); the CSS animation is only the no-JS fallback */
.marquee-frame.js-marquee .marquee-track{animation:none}
/* padding-right = gap, so the track is exactly two identical halves and the -50% loop has no seam jump */
.section.logos .marquee-track{gap:48px;padding-right:48px}
@media(max-width:650px){.section.logos .client-logo{height:66px;padding:8px 14px}.section.logos .client-logo img{width:calc(var(--logo-w,140px)*.75);margin:0 calc(var(--logo-mr,0px)*-.75) 0 calc(var(--logo-ml,0px)*-.75)}}
/* Recognition band: equal-height cards with balanced weight */
.proof-band{align-items:stretch;gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.award-card{position:relative;overflow:hidden;justify-content:space-between;gap:26px;padding:40px}.award-card,.gradient-card{background:radial-gradient(60% 55% at 100% 0,#dcd6ff99,transparent 70%),linear-gradient(155deg,var(--white) 0%,#f0f5fe 55%,#e8eefc 100%);border-color:var(--line-blue);box-shadow:var(--shadow-card-hover)}.gradient-card p{color:#455f73}
.award-top{margin-bottom:0;align-items:center;gap:24px}
.award-number{min-width:128px;min-height:118px;font-size:2.8rem;border-radius:var(--radius-xl);background:var(--ai-grad);box-shadow:0 18px 34px -12px var(--glow-a67)}
.award-top h3{font-size:clamp(1.4rem,2vw,1.75rem);line-height:1.2}
.award-card>p:not(.award-source){margin:0;font-size:1.12rem}
.award-source{margin:0;border-top-color:#d6e0f0}
.journey-card{padding:40px}
@media(max-width:900px){.proof-band{grid-template-columns:1fr}}
@media(max-width:530px){.award-card,.journey-card{padding:24px}.award-number{min-width:84px;min-height:78px;font-size:1.8rem;border-radius:var(--radius-md)}}
/* Hero: SWDA TPGateway badge */
.hero-badge{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:7px 14px 7px 7px;border-radius:var(--radius-pill);background:#ffffffb3;border:1px solid var(--line-blue);box-shadow:0 6px 18px -10px var(--primary-a33);color:var(--navy);font-size:14px;font-weight:650;text-decoration:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,box-shadow .2s}
.hero-badge:hover{border-color:#a9c1ec;box-shadow:0 8px 22px -10px #2a6fdb88}
.hero-badge-check{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ai-grad);color:var(--white);font-size:13px;font-weight:800}
.hero-badge>span:last-child{color:var(--primary);transition:transform .2s}
.hero-badge:hover>span:last-child{transform:translateX(3px)}
.hero-grid>div:first-child>:nth-child(5){animation-delay:.4s}
/* Singapore band: single home for SWDA TPGateway */
.section.dark .eyebrow{color:var(--sky)}
.sg-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:56px}
.sg-copy>p{color:#d8e3f2}

.sg-tpg strong{display:block;color:var(--white);font-size:15px}
.sg-tpg>span{display:block;color:#cbd8ea;font-size:14px;line-height:1.55;margin-top:5px}
.sg-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.sg-list li{position:relative;padding-left:26px;color:#e6eef9;font-size:14px;line-height:1.5}
.sg-list li:before{content:'✓';position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#8ec1ff26;color:var(--sky);font-size:11px;font-weight:900}
.sg-copy .local-assurances{margin:0 0 26px}
.sg-shot{margin:0;background:var(--white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 60px -24px #000a,0 0 0 1px #ffffff26}
.sg-shot img{display:block;width:100%;height:auto}
.sg-shot figcaption{padding:11px 16px;font-family:var(--font-mono);font-size:12.5px;color:var(--text-subtle);border-top:1px solid var(--line)}
.sg-stats{display:grid;grid-template-columns:1fr 1fr}

@media(max-width:920px){.sg-layout{grid-template-columns:1fr;gap:34px}}
@media(max-width:650px){.hero-badge{font-size:13px}.sg-stats{gap:12px}.sg-stats .stat{font-size:2.4rem}}
/* Singapore band: fewer boxes — only the screenshot is framed */
.sg-tpg{margin:28px 0 24px;padding:0;background:none;border:0;border-radius:0}
.sg-tpg strong,.sg-copy .local-assurances strong{font-size:1.05rem;color:var(--white);letter-spacing:0}
.sg-copy .local-assurances>div{padding-left:0;border-left:0}
.sg-copy .local-assurances span{color:#cbd8ea;line-height:1.55}
.sg-stats{gap:0;margin-top:30px;padding-top:26px;border-top:1px solid var(--white-a12)}
.sg-stats>div{padding:0 24px;background:none;border:0;border-radius:0}
.sg-stats>div:first-child{padding-left:0}
.sg-stats>div+div{border-left:1px solid var(--white-a12)}
@media(max-width:650px){.sg-tpg{padding:0}.sg-stats>div{padding:0 14px}}
/* Singapore band: screenshot slideshow */
.sg-slides{position:relative;aspect-ratio:3166/1534;background:radial-gradient(70% 90% at 75% 15%,#dfe9fb,transparent 70%),linear-gradient(135deg,#f5f8fd,#e9effa)}
.sg-shot .sg-slides img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;opacity:0;transition:opacity .8s ease}
.sg-shot .sg-slides img:not(:first-child){padding:14px}
.sg-shot .sg-slides img.is-active{opacity:1}
.sg-shot figcaption{display:flex;align-items:center;justify-content:space-between;gap:14px}
.sg-controls{display:flex;align-items:center;gap:4px;flex:none}
.sg-dot{border:0;background:transparent;padding:8px 3px;cursor:pointer}
.sg-dot:before{content:'';display:block;width:8px;height:8px;border-radius:var(--radius-sm);background:#c3d0e2;transition:width .3s,background .3s}
.sg-dot[aria-current="true"]:before{width:22px;background:var(--ai-grad)}
.sg-toggle{margin-left:6px;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--text-subtle);font-size:9px;letter-spacing:-1px;cursor:pointer;display:grid;place-items:center}
.sg-toggle:hover{border-color:var(--line-strong);color:var(--primary)}
.sg-dot:focus-visible,.sg-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
/* Singapore band mirrored on desktop so it alternates with the platform section */
@media(min-width:921px){.sg-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}.sg-visual{order:-1}}
/* Singapore band: full-width header above the two columns */
.section.dark .section-head p{color:#d8e3f2}

.sg-copy .sg-tpg{margin-top:0}
/* Singapore band balance: header + stats row, then screenshot + details row */
.sg-top{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:56px;align-items:end;margin-bottom:44px}
.sg-top .section-head{margin-bottom:0}
.sg-top .sg-stats{margin-top:0;padding-top:0;border-top:0}

@media(max-width:920px){.sg-top{grid-template-columns:1fr;gap:28px;margin-bottom:34px}.sg-top .sg-stats{padding-top:22px;border-top:1px solid var(--white-a12)}}
/* Singapore band grid: header / screenshot + details / stats strip */
.sg-layout{align-items:start}
.sg-copy{padding-top:4px}
#singapore .sg-stats{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);margin-top:56px;padding-top:30px}
#singapore .sg-stats>div{border:0}
#singapore .sg-stats .stat-label{margin-top:8px}
@media(max-width:920px){#singapore .sg-stats{grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}}
/* Singapore stats strip between header and columns */

#singapore .sg-stats{border-top:1px solid var(--white-a12);border-bottom:1px solid var(--white-a12)}
@media(max-width:920px){#singapore .sg-stats{margin-bottom:36px;padding:20px 0}}
/* Singapore stats: compact, part of the section header */
#singapore .section-head{margin-bottom:48px}
#singapore .sg-stats{display:flex;gap:0;padding:0;border:0}
#singapore .sg-stats>div{display:flex}

#singapore .sg-stats>div+div{border-left:1px solid #ffffff2e}

#singapore .sg-stats .stat-label{margin:0;font-size:14px;line-height:1.35}
@media(max-width:650px){#singapore .sg-stats>div{flex-direction:column;gap:4px;padding:0 16px}#singapore .sg-stats>div:first-child{padding-left:0}}
/* Singapore header: copy left, stats right (same columns as the row below) */
#singapore .sg-top{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:56px;align-items:center;margin-bottom:52px}
#singapore .sg-top .section-head{margin-bottom:0}
#singapore .sg-stats{margin:0}
#singapore .sg-stats>div{flex-direction:column;align-items:flex-start;gap:6px;padding:4px 36px}
#singapore .sg-stats>div:first-child{padding-left:0}
#singapore .sg-stats .stat{font-size:3.4rem}
#singapore .sg-stats .stat-label{max-width:190px}
@media(max-width:920px){#singapore .sg-top{grid-template-columns:1fr;gap:26px;margin-bottom:40px}#singapore .sg-stats .stat{font-size:2.4rem}#singapore .sg-stats>div{padding:0 20px}#singapore .sg-stats>div:first-child{padding-left:0}}
/* Stats count-up: fixed-width digits so the layout doesn't shift */
.stat{font-variant-numeric:tabular-nums}
/* Journey steps: light up one after another when the card is revealed */
@keyframes stepCircle{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1);opacity:1;background:var(--ai-grad);border-color:transparent;color:var(--white);box-shadow:0 6px 16px -6px var(--glow-a67)}}
@keyframes stepText{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@keyframes stepLine{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.journey-card.reveal .journey-steps li{border-left-color:transparent}
.journey-card.reveal .journey-steps li:not(:last-child):after{content:'';position:absolute;left:-1px;top:31px;bottom:0;width:2px;border-radius:2px;background:linear-gradient(var(--primary),var(--violet));transform:scaleY(0);transform-origin:top}
.journey-card.reveal .journey-steps li:before{opacity:0}
.journey-card.reveal .journey-steps strong,.journey-card.reveal .journey-steps span{opacity:0}
.journey-card.reveal.is-visible .journey-steps li:before{animation:stepCircle .5s var(--ease-out) both;animation-delay:calc(.35s + var(--i)*.55s)}
.journey-card.reveal.is-visible .journey-steps strong,.journey-card.reveal.is-visible .journey-steps span{animation:stepText .5s ease both;animation-delay:calc(.45s + var(--i)*.55s)}
.journey-card.reveal.is-visible .journey-steps li:after{animation:stepLine .4s ease-in-out both;animation-delay:calc(.7s + var(--i)*.55s)}
.journey-steps li:nth-child(1){--i:0}.journey-steps li:nth-child(2){--i:1}.journey-steps li:nth-child(3){--i:2}.journey-steps li:nth-child(4){--i:3}.journey-steps li:nth-child(5){--i:4}
.glyph svg{width:24px;height:24px}
/* Footer logo: white on navy, no box */
.footer .brand-logo{display:inline-flex;background:none;padding:0;border-radius:0;margin:0}
.footer .brand-logo img{width:170px;filter:brightness(0) invert(1)}
/* ===== Site-wide: carry homepage styling to inner pages ===== */
/* Light page heroes: same glow + faint grid as the homepage hero */
.page-hero:not(.course-hero):not(.ai-page-hero){position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(38% 60% at 88% 12%,#d3e1ff 0,transparent 70%),radial-gradient(30% 50% at 70% 100%,#e8e3ff 0,transparent 70%),radial-gradient(35% 55% at 5% 0,#dce9fb 0,transparent 70%),linear-gradient(135deg,var(--surface-50),var(--surface-100))}
.page-hero:not(.course-hero):not(.ai-page-hero):before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--primary-a6) 1px,transparent 1px),linear-gradient(90deg,var(--primary-a6) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 90% at 75% 30%,var(--black) 15%,transparent 75%);mask-image:radial-gradient(70% 90% at 75% 30%,var(--black) 15%,transparent 75%)}
/* Hero entrance on inner pages */
.page-hero .wrap>*{animation:heroUp .8s var(--ease-out) both}
.page-hero .wrap>:nth-child(2){animation-delay:.08s}
.page-hero .wrap>:nth-child(3){animation-delay:.16s}
.page-hero .wrap>:nth-child(4){animation-delay:.24s}
.page-hero .wrap>:nth-child(n+5){animation-delay:.32s}
/* Icons: gradient squares everywhere */
.course-service .glyph{margin-bottom:18px}


.contact-icon{background:var(--ai-grad);color:var(--white);box-shadow:var(--shadow-glow-sm)}
/* Stats: gradient numbers like the homepage */
.course-stats strong{background:linear-gradient(100deg,var(--primary),var(--indigo));-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.course-stats>div{background:var(--white);box-shadow:0 10px 26px -18px var(--primary-a33)}
/* Insight cards: links match homepage text links */
.card-link,.resource-card a{text-decoration:none}
.card-link:hover,.resource-card a:hover{text-decoration:underline}
/* About: horizontal version of the journey steps */
.journey-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:34px 0 0;max-width:none}
.journey-row li{margin:0;padding:48px 0 0;border-left:0;border-top:1px solid #a8bbd2}
.journey-row li:last-child{border-top-color:transparent}
.journey-row li:before{top:-16px;left:0}
.journey-row li:after{display:none}
.journey-card.reveal .journey-row li,.journey-row li{border-left-color:transparent}
@media(max-width:900px){.journey-row{grid-template-columns:1fr 1fr;row-gap:36px}.journey-row li:nth-child(2){border-top-color:transparent}}
@media(max-width:560px){.journey-row{grid-template-columns:1fr}.journey-row li{border-top-color:transparent}}
.course-stats strong span{display:inline;color:inherit;font-weight:inherit;font-size:inherit;margin:0}
/* Platform tabs: screenshot without its own card */
.feature-shot{background:none;border:0;border-radius:0;box-shadow:none;overflow:visible}
.feature-shot img{padding:0;background:none;filter:drop-shadow(0 18px 28px #0f2a5a26)}
.feature-shot figcaption{padding:10px 0 0;border-top:0;text-align:center;background:none}
/* Screenshot variant for feature panels (AI page): rounded, uncropped */
.feature-shot.feature-screen img{aspect-ratio:auto;height:auto;border-radius:var(--radius);filter:none;box-shadow:0 20px 40px -18px var(--shadow-navy-a25),0 0 0 1px var(--line-chip)}
/* Learner chatbot screenshot has a title baked into its top edge: crop it off */
.feature-screen img[src$="learner-chatbot.webp"]{aspect-ratio:1069/590;object-fit:cover;object-position:bottom}
/* Stats: looser letter spacing */
.stat,#singapore .sg-stats .stat,.course-stats strong{letter-spacing:-.01em}
/* About: values card header matches the vision/mission/commitment cards */
.values-principles{padding:30px}
.values-principles .values-label{margin-bottom:12px}
.values-principles h3{margin:0 0 22px;color:var(--navy)}
.four-col>div{border-left:2px solid transparent;border-image:linear-gradient(var(--primary),var(--violet)) 1}
/* Values: gradient bar as a pseudo-element so it can grow on reveal */
.values-principles .four-col>div{position:relative;border-left:0;padding-left:15px}
.values-principles .four-col>div:before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;border-radius:2px;background:linear-gradient(var(--primary),var(--violet));transform-origin:top}
.values-principles .four-col>div:nth-child(1){--i:0}.values-principles .four-col>div:nth-child(2){--i:1}.values-principles .four-col>div:nth-child(3){--i:2}.values-principles .four-col>div:nth-child(4){--i:3}
.values-principles.reveal:not(.is-visible) .four-col>div{opacity:0}
.values-principles.reveal.is-visible .four-col>div{animation:valueIn .5s var(--ease-out) backwards;animation-delay:calc(.3s + var(--i)*.15s)}
.values-principles.reveal.is-visible .four-col>div:before{animation:valueBar .5s ease-out backwards;animation-delay:calc(.3s + var(--i)*.15s)}
@keyframes valueIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes valueBar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* About steps: continuous connector from each circle to the next */
.journey-row{--row-gap:28px;column-gap:var(--row-gap)}
.journey-row li,.journey-row li:last-child{border-top:0}
.journey-row li:not(:last-child):after{content:'';display:block;position:absolute;top:-1px;left:31px;right:calc(-1 * var(--row-gap));height:2px;border-radius:2px;background:linear-gradient(90deg,var(--primary),var(--violet));opacity:.55}
@media(max-width:900px){.journey-row li:nth-child(2):after{display:none}}
@media(max-width:560px){.journey-row li:after{display:none!important}}
/* About: "How we work" steps */
.about-steps{list-style:none;margin:52px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.about-steps li{position:relative;padding:28px 24px 26px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform .25s,box-shadow .25s}
.about-steps li:not(:last-child):after{content:'';position:absolute;top:55px;left:calc(100% + 1px);width:26px;height:2px;background:linear-gradient(90deg,var(--primary),var(--violet));transform-origin:left}
.about-step-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:var(--radius-lg);background:var(--ai-grad);color:var(--white);box-shadow:0 10px 22px -8px var(--glow-a67);margin-bottom:20px}
.about-step-icon svg{width:26px;height:26px}
.about-step-num{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:6px}
.about-steps strong{display:block;font-size:1.15rem;color:var(--navy);margin-bottom:6px}
.about-step-text{display:block;color:var(--muted);font-size:14.5px;line-height:1.55}
/* Sequential reveal */
@keyframes aboutStepIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes aboutIconPop{0%{transform:scale(.5)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes aboutLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.about-steps.reveal{opacity:1;transform:none}
.about-steps.reveal li{opacity:0}
.about-steps.reveal li:after{transform:scaleX(0)}
.about-steps.reveal.is-visible li{animation:aboutStepIn .6s var(--ease-out) both;animation-delay:calc(var(--i)*.35s)}
.about-steps.reveal.is-visible .about-step-icon{animation:aboutIconPop .6s var(--ease-out) both;animation-delay:calc(var(--i)*.35s + .1s)}
.about-steps.reveal.is-visible li:after{animation:aboutLine .35s ease-out both;animation-delay:calc(var(--i)*.35s + .4s)}
@media(max-width:900px){.about-steps{grid-template-columns:1fr 1fr}.about-steps li:after{display:none}}
@media(max-width:560px){.about-steps{grid-template-columns:1fr;gap:16px}}
.team-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}@media(max-width:1000px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.team-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 22px 26px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.team-card img{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:18px;box-shadow:var(--ring-avatar)}
.team-card strong{font-size:1.15rem;color:var(--navy)}
.team-card span{margin-top:6px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}
@media(max-width:560px){.team-grid{grid-template-columns:1fr}}
/* Scroll reveal, all cards together: card fades in, photo sharpens into focus, a halo ripples out from the ring, then name and role rise.
   "backwards" fill so the cards return to their normal styles afterwards; the halo uses no fill so the normal ring shows before and after.
   --d is the per-card start offset (0 = all at once; e.g. calc(var(--i)*.2s) to stagger again).
   The halo alone ripples left to right, .3s apart. */
.team-grid.reveal{opacity:1;transform:none}
.team-grid.reveal:not(.is-visible) .team-card{opacity:0}
.team-grid.reveal.is-visible .team-card{--d:0s;animation:teamCardIn .5s ease-out backwards;animation-delay:var(--d)}
.team-grid.reveal.is-visible .team-card img{animation:teamPhotoIn .7s var(--ease-out) backwards,teamHalo 1.1s ease-out;animation-delay:calc(var(--d) + .1s),calc(var(--d) + .7s + var(--i)*.3s)}
.team-grid.reveal.is-visible .team-card strong{animation:teamTextIn .5s var(--ease-out) backwards;animation-delay:calc(var(--d) + .45s)}
.team-grid.reveal.is-visible .team-card span{animation:teamTextIn .5s var(--ease-out) backwards;animation-delay:calc(var(--d) + .55s)}
@keyframes teamCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes teamPhotoIn{from{opacity:0;transform:scale(.8);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes teamHalo{from{box-shadow:var(--ring-avatar),0 0 0 6px #2a6fdb59}to{box-shadow:var(--ring-avatar),0 0 0 26px #2a6fdb00}}
@keyframes teamTextIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.team-card:nth-child(1){--i:0}.team-card:nth-child(2){--i:1}.team-card:nth-child(3){--i:2}.team-card:nth-child(4){--i:3}
/* Photo heroes: dark navy overlay over a page image, with light text. Set --hero-img per page. */
.about-hero{--hero-img:url(assets/banners/about.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.insights-hero{--hero-img:url(assets/banners/insights.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.ai-learning-hero{--hero-img:url(assets/banners/ai-learning.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.contact-photo-hero{--hero-img:url(assets/banners/contact.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.course-design-hero{--hero-img:url(assets/banners/course-design.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.academy-hero{--hero-img:url(assets/banners/academy.webp);--hero-pos:right center;--hero-pos-sm:75% center}
.page-hero.photo-hero:not(.course-hero):not(.ai-page-hero){background:var(--hero-overlay,linear-gradient(100deg,rgba(13,42,61,.94) 0%,rgba(13,42,61,.86) 45%,rgba(13,42,61,.62) 100%)),var(--hero-img) var(--hero-pos)/cover no-repeat,#0d2a3d}
.page-hero.photo-hero h1{color:var(--white)}
/* Gradient accent on hero headings: dark on light heroes, light on dark heroes */
.page-hero h1 em{font-style:normal;-webkit-background-clip:text;background-clip:text;color:transparent}
/* Tight h1 letter-spacing pushes the last glyph past the box, where background-clip:text stops painting */
.page-hero h1 em,.hero h1 em{padding-right:.08em;margin-right:-.08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.page-hero.photo-hero h1 em{--em-grad:linear-gradient(100deg,var(--sky) 10%,var(--lavender) 90%)}
.page-hero.photo-hero p{color:#d5e2f0}
.page-hero.photo-hero .breadcrumb,.page-hero.photo-hero .breadcrumb a,.page-hero.photo-hero .eyebrow{color:#b6cfec}
.page-hero.photo-hero:not(.course-hero):not(.ai-page-hero):before{display:none}
@media(max-width:750px){.page-hero.photo-hero:not(.course-hero):not(.ai-page-hero){background:var(--hero-overlay-sm,linear-gradient(rgba(13,42,61,.9),rgba(13,42,61,.84))),var(--hero-img) var(--hero-pos-sm)/cover no-repeat,#0d2a3d}}
/* Light variant: white overlay with the home page's dark text */
.page-hero.photo-hero.hero-light{--hero-overlay:linear-gradient(100deg,rgba(247,249,254,.92) 0%,rgba(247,249,254,.78) 45%,rgba(247,249,254,.45) 100%);--hero-overlay-sm:linear-gradient(rgba(247,249,254,.93),rgba(247,249,254,.88))}
.page-hero.photo-hero.hero-light h1{color:var(--navy)}
.page-hero.photo-hero.hero-light h1 em{--em-grad:linear-gradient(100deg,var(--primary) 10%,var(--indigo) 90%)}
.page-hero.photo-hero.hero-light p{color:var(--muted)}
.page-hero.photo-hero.hero-light .breadcrumb{color:#587282}
.page-hero.photo-hero.hero-light .breadcrumb a,.page-hero.photo-hero.hero-light .eyebrow{color:var(--primary)}
/* Home: "Working with Wizlearn" steps, matching the About page style */
.home-steps{list-style:none;margin:24px 0 0;padding:0;display:grid}
.home-steps li{position:relative;display:grid;grid-template-columns:44px 1fr;gap:16px;align-items:start}
.home-steps li:not(:last-child):after{content:'';position:absolute;left:21px;top:50px;bottom:-14px;width:2px;border-radius:2px;background:linear-gradient(var(--primary),var(--violet));opacity:.6;transform-origin:top}
.home-step-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--ai-grad);color:var(--white);box-shadow:0 8px 18px -8px var(--glow-a67)}
.home-step-icon svg{width:22px;height:22px}
.home-steps .about-step-num{margin:1px 0 2px;font-size:11px}
.home-steps strong{color:var(--navy);font-size:1.02rem}
.home-step-text{display:block;color:var(--muted);font-size:14px;line-height:1.5}
/* Sequential reveal when the card scrolls in */
@keyframes homeLine{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.journey-card.reveal .home-steps li{opacity:0}
.journey-card.reveal .home-steps li:after{transform:scaleY(0)}
.journey-card.reveal.is-visible .home-steps li{animation:aboutStepIn .55s var(--ease-out) both;animation-delay:calc(.3s + var(--i)*.4s)}
.journey-card.reveal.is-visible .home-step-icon{animation:aboutIconPop .55s var(--ease-out) both;animation-delay:calc(.4s + var(--i)*.4s)}
.journey-card.reveal.is-visible .home-steps li:after{animation:homeLine .35s ease-out both;animation-delay:calc(.7s + var(--i)*.4s)}
/* Home steps: title beside icon, no step label */
.home-steps li>div{padding-top:1px}
.home-steps strong{display:block}
.home-step-text{margin-top:3px}
.home-steps{gap:22px}
/* Client logos: stronger greyscale so they read clearly */
.section.logos .client-logo img{filter:grayscale(1) contrast(1.25);opacity:.75}
.section.logos .client-logo img[src$="wmi.webp"],.section.logos .client-logo img[src$="income.webp"]{filter:grayscale(1) brightness(.65) contrast(3.5);opacity:.75}
/* Hover to matching identity filters (not "none") so the filter interpolates smoothly instead of flashing */
.section.logos .client-logo:hover img{filter:grayscale(0) contrast(1);opacity:1}
/* WMI and Income are fine line-art logos: animating the filter makes the thin lines shimmer, so swap it instantly and fade only opacity */
.section.logos .client-logo img[src$="wmi.webp"],.section.logos .client-logo img[src$="income.webp"]{transition:opacity .3s}
.section.logos .client-logo:hover img[src$="wmi.webp"],.section.logos .client-logo:hover img[src$="income.webp"]{filter:grayscale(0) brightness(.8) contrast(1.8);opacity:1}
/* Security cards: gradient icon replaces the top accent bar */
.cert-grid .info-card{border-top:1px solid var(--line);padding:26px 24px}
.cert-grid .glyph{margin-bottom:16px}
.cert-grid .info-card h3{margin-bottom:6px}
/* Course design showcase: polished preview + numbered thumbnails */
.showcase-layout{gap:36px;align-items:start}
.sample-main{padding:0;border:0;background:none}
.sample-frame{position:relative;isolation:isolate}
.sample-frame:before{content:'';position:absolute;inset:8% 6% -4%;z-index:-1;border-radius:40px;background:radial-gradient(closest-side,var(--primary2),var(--violet-light) 60%,transparent);filter:blur(50px);opacity:.28}
.sample-main img{border-radius:var(--radius-lg);box-shadow:0 30px 60px -28px #0f2a5a66,0 0 0 1px var(--line-chip);transition:opacity .22s ease,transform .22s ease}
.sample-main img.is-fading{opacity:0;transform:scale(.985)}
.sample-main figcaption{display:grid;gap:4px;padding:22px 2px 0;font-weight:400;transition:opacity .22s ease}
.sample-main figcaption.is-fading{opacity:0}
.sample-main figcaption strong{font-size:1.2rem;color:var(--navy);letter-spacing:-.01em}
.sample-main figcaption span{color:var(--muted);line-height:1.6}
.sample-thumbs{gap:16px}
.sample-thumb{position:relative;padding:0;gap:0;overflow:hidden;border-radius:var(--radius-md);background:var(--white);border:1px solid var(--line);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}
.sample-thumb img{object-position:top;border-radius:0;background:#f4f6fa;border-bottom:1px solid var(--line)}
.sample-thumb strong{padding:14px 16px 0;font-size:14.5px;color:var(--navy)}
.sample-thumb span{padding:4px 16px 16px}
.sample-num{position:absolute;top:10px;left:10px;padding:3px 8px;border-radius:var(--radius-pill);background:#ffffffe6;font-style:normal;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--primary);box-shadow:0 2px 8px #0f2a5a1f}
.sample-thumb:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 14px 28px -16px #2a6fdb66}
.sample-thumb[aria-pressed="true"]{background:var(--white);border-color:transparent;box-shadow:0 0 0 2px var(--white),0 0 0 4px #4a80f5,0 16px 32px -16px var(--glow-a67)}
.sample-thumb[aria-pressed="true"] .sample-num{background:var(--ai-grad);color:var(--white)}
.sample-thumb:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
/* Showcase scroll reveal: large preview rises in, caption follows, thumbnails stagger in.
   Animates .sample-frame (not the sticky figure) and uses "backwards" fill so thumbnail hover lift still works. */
.showcase-layout.reveal{opacity:1;transform:none}
.showcase-layout.reveal:not(.is-visible) :is(.sample-frame,.sample-main figcaption,.sample-thumb){opacity:0}
.showcase-layout.reveal.is-visible .sample-frame{animation:showcaseMain .8s var(--ease-out) backwards}
.showcase-layout.reveal.is-visible .sample-main figcaption{animation:showcaseUp .5s var(--ease-out) backwards;animation-delay:.35s}
.showcase-layout.reveal.is-visible .sample-thumb{animation:showcaseUp .5s var(--ease-out) backwards;animation-delay:calc(.25s + var(--i)*.12s)}
.sample-thumb:nth-child(1){--i:0}.sample-thumb:nth-child(2){--i:1}.sample-thumb:nth-child(3){--i:2}.sample-thumb:nth-child(4){--i:3}
@keyframes showcaseMain{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@keyframes showcaseUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* Contact enquiry: text column rises in (children only; the column itself is sticky), form card follows */
.contact-form-grid.reveal{opacity:1;transform:none}
.contact-form-grid.reveal:not(.is-visible) :is(.contact-form-grid>div:first-child>*,.enquiry-embed){opacity:0}
.contact-form-grid.reveal.is-visible>div:first-child>*{animation:showcaseUp .55s var(--ease-out) backwards}
.contact-form-grid.reveal.is-visible>div:first-child>:nth-child(2){animation-delay:.1s}
.contact-form-grid.reveal.is-visible>div:first-child>:nth-child(3){animation-delay:.2s}
.contact-form-grid.reveal.is-visible>div:first-child>:nth-child(4){animation-delay:.3s}
/* No scale here: zooming a card that holds a live iframe makes the form jitter as it re-renders */
.contact-form-grid.reveal.is-visible .enquiry-embed{animation:enquiryIn .7s var(--ease-out) .15s backwards}
@keyframes enquiryIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* Google Form loading state (class added by nav.js): shimmering form outline until the iframe loads, then the form fades in */
.enquiry-embed{position:relative}
.enquiry-embed iframe{transition:opacity .5s ease}
.enquiry-embed.is-loading iframe{opacity:0}
.enquiry-embed.is-loading:before,.enquiry-embed.is-loading:after{content:'';position:absolute;top:22px;left:0;right:0;height:500px;pointer-events:none}
.enquiry-embed.is-loading:before{background:
  linear-gradient(#e6edf7,#e6edf7) 32px 28px/55% 26px no-repeat,
  linear-gradient(#eef2f8,#eef2f8) 32px 70px/78% 12px no-repeat,
  linear-gradient(#eef2f8,#eef2f8) 32px 130px/28% 12px no-repeat,
  linear-gradient(#f2f5fa,#f2f5fa) 32px 152px/calc(100% - 64px) 40px no-repeat,
  linear-gradient(#eef2f8,#eef2f8) 32px 222px/34% 12px no-repeat,
  linear-gradient(#f2f5fa,#f2f5fa) 32px 244px/calc(100% - 64px) 40px no-repeat,
  linear-gradient(#eef2f8,#eef2f8) 32px 314px/24% 12px no-repeat,
  linear-gradient(#f2f5fa,#f2f5fa) 32px 336px/calc(100% - 64px) 40px no-repeat,
  linear-gradient(#eef2f8,#eef2f8) 32px 406px/30% 12px no-repeat,
  linear-gradient(#f2f5fa,#f2f5fa) 32px 428px/calc(100% - 64px) 40px no-repeat}
.enquiry-embed.is-loading:after{background:linear-gradient(100deg,transparent 30%,#ffffffb3 50%,transparent 70%);background-size:220% 100%;animation:formShimmer 1.4s linear infinite}
@keyframes formShimmer{from{background-position:120% 0}to{background-position:-120% 0}}
/* Course design methodology: text rises in, figure slides in, then ADDIE stages pop in left to right with arrows between */
.addie-diagram{display:block;width:100%;height:auto;border-radius:var(--radius-sm)}
.addie-stage,.addie-arrow{transform-box:fill-box;transform-origin:center}
.design-split.reveal{opacity:1;transform:none}
.design-split.reveal:not(.is-visible) :is(.design-split>div>*,.method-figure,.addie-head,.addie-stage,.addie-arrow,.addie-foot){opacity:0}
.design-split.reveal.is-visible>div>*{animation:showcaseUp .55s var(--ease-out) backwards}
.design-split.reveal.is-visible>div>:nth-child(2){animation-delay:.1s}
.design-split.reveal.is-visible>div>:nth-child(3){animation-delay:.2s}
.design-split.reveal.is-visible>div>:nth-child(4){animation-delay:.3s}
.design-split.reveal.is-visible .method-figure{animation:methodFigureIn .7s var(--ease-out) .15s backwards}
.design-split.reveal.is-visible .addie-head{animation:showcaseUp .5s var(--ease-out) .5s backwards}
.design-split.reveal.is-visible .addie-stage{animation:addieStageIn .45s var(--ease-out) backwards;animation-delay:calc(.7s + var(--i)*.22s)}
.design-split.reveal.is-visible .addie-arrow{animation:addieArrowIn .3s ease-out backwards;animation-delay:calc(.85s + var(--i)*.22s)}
.design-split.reveal.is-visible .addie-foot{animation:showcaseUp .5s var(--ease-out) 1.85s backwards}
@keyframes methodFigureIn{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes addieStageIn{from{opacity:0;transform:translateY(14px) scale(.85)}to{opacity:1;transform:none}}
@keyframes addieArrowIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@media(max-width:600px){.sample-thumb img{height:96px}.sample-main img{aspect-ratio:1.35}}
.sample-num{z-index:2}
.sample-main img{object-fit:contain;object-position:center;background:radial-gradient(80% 90% at 70% 10%,#e3ecfb,transparent 70%),linear-gradient(135deg,var(--surface-50),var(--surface-100))}
/* Showcase screens are 16:9 */
.sample-main img{aspect-ratio:16/9}
.sample-thumb img{height:auto;aspect-ratio:16/9;object-fit:cover}
.academy-about-note{max-width:820px;margin:28px 0 0}
.course-format{margin:-4px 0 10px;font-size:12.5px;font-weight:650;color:var(--ink);opacity:.75}
.academy-contact-center{max-width:720px;margin:0 auto;text-align:center}
.academy-contact-center .actions{justify-content:center}
.academy-contact-center h2{text-wrap:balance}
.final .button.secondary{background:transparent;border-color:#ffffff8c;color:var(--white)}
.final .button.secondary:hover{background:var(--white-a12)}
/* Lighter journey card to pair with the award card (glow mirrored to the bottom-left) */
.journey-card{background:radial-gradient(60% 55% at 0 100%,#d6e6ff80,transparent 70%),linear-gradient(155deg,var(--white) 0%,var(--surface-50) 60%,#f0f5fe 100%);border-color:var(--line-blue);box-shadow:var(--shadow-card-hover)}
/* Hero heading accent: gradient text (per-hero colours via --em-grad) with one light sweep after the entrance animation */
.hero h1 em,.page-hero h1 em{background-image:linear-gradient(110deg,transparent 38%,#8fd3ff80 50%,transparent 62%),var(--em-grad,linear-gradient(100deg,var(--primary) 10%,var(--indigo) 90%));background-size:250% 100%,100% 100%;background-repeat:no-repeat;background-position:-20% 0,0 0;animation:emSweep 1.2s ease-in-out 1s both}
@keyframes emSweep{from{background-position:120% 0,0 0}to{background-position:-20% 0,0 0}}
@media(prefers-reduced-motion:reduce){.hero h1 em,.page-hero h1 em{animation:none}}
@media(prefers-reduced-motion:reduce){.menu-toggle span{transition:none}}

/* Course examples on small screens: every example shown as a card (2x2 on tablets, stacked on phones) */
.sample-long{display:none}
@media(max-width:860px){.sample-main{display:none}.sample-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sample-thumb{cursor:default}.sample-thumb img{height:auto;aspect-ratio:16/9}.sample-thumb strong{font-size:16px;padding:16px 18px 0}.sample-thumb span{font-size:14px;padding:6px 18px 18px}.sample-thumb span:not(.sample-long){display:none}.sample-thumb .sample-long{display:block}.sample-thumb:hover{transform:none;border-color:var(--line);box-shadow:none}.sample-thumb[aria-pressed="true"]{border-color:var(--line);box-shadow:none}.sample-thumb[aria-pressed="true"] .sample-num{background:#ffffffe6;color:var(--primary)}}
@media(max-width:600px){.sample-thumbs{grid-template-columns:1fr}}

/* Feature tabs become an accordion on phones (nav.js toggles .is-open) */
.feature-acc{display:none}
@media(max-width:650px){.feature-list{display:none}.feature-layout>div:last-child{display:flex;flex-direction:column;gap:12px}.feature-layout>div:last-child>.feature-panel{grid-area:auto}.feature-panel,.feature-panel[hidden]{visibility:visible;padding:0;gap:0;overflow:hidden;animation:none}.feature-panel:not(.is-open)>:not(.feature-acc){display:none}.feature-panel>.feature-copy{padding:0 20px}.feature-panel>.feature-shot{margin:22px 20px 20px}.feature-panel.is-open>:not(.feature-acc){animation:heroUp .4s var(--ease-out) both}.feature-acc{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:18px 20px;border:0;background:none;font:inherit;font-size:16px;font-weight:700;color:var(--navy);text-align:left;cursor:pointer}.feature-acc:after{content:"";width:8px;height:8px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s var(--ease-out)}.feature-acc[aria-expanded="true"]{color:var(--primary)}.feature-acc[aria-expanded="true"]:after{transform:translateY(2px) rotate(-135deg)}.feature-acc:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:var(--radius-xl)}}
@media(max-width:650px) and (prefers-reduced-motion:reduce){.feature-panel.is-open>:not(.feature-acc){animation:none}.feature-acc:after{transition:none}}

/* About steps in one column: vertical connectors through the icon centres */
@media(max-width:560px){.about-steps li:not(:last-child):after{display:block;top:calc(100% + 1px);left:50px;width:2px;height:16px;background:linear-gradient(var(--primary),var(--violet));transform-origin:top}.about-steps.reveal li:after{transform:scaleY(0)}.about-steps.reveal.is-visible li:after{animation-name:homeLine}}

/* AI page: features as alternating rows */
.ai-features{display:grid;gap:96px;margin-top:56px}.ai-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;align-items:center}.ai-feature:nth-child(even) .ai-feature-copy{order:2}.ai-feature h3{margin:10px 0 12px}.ai-feature .mini-list{margin:18px 0 0}.ai-feature .mini-list li{color:#455f73;padding-top:6px;padding-bottom:6px}.ai-feature .feature-shot{margin:0}
@media(max-width:920px){.ai-features{gap:64px;margin-top:40px}.ai-feature{grid-template-columns:1fr;gap:28px}.ai-feature:nth-child(even) .ai-feature-copy{order:0}}

/* AI page motion: rows animate their parts instead of moving as one block (nav.js adds .reveal/.is-visible).
   Hidden states use :not(.is-visible) so they can never outrank the settled state. */
.ai-feature.reveal{opacity:1;transform:none;transition:none}.ai-feature.reveal .ai-feature-copy,.ai-feature.reveal .feature-shot{transition:opacity .8s ease,transform .8s var(--ease-out)}.ai-feature.reveal .feature-shot{transition-delay:.12s}.ai-feature.reveal .mini-list li{transition:opacity .5s ease,transform .5s var(--ease-out)}.ai-feature.reveal .mini-list li:nth-child(1){transition-delay:.35s}.ai-feature.reveal .mini-list li:nth-child(2){transition-delay:.45s}.ai-feature.reveal .mini-list li:nth-child(3){transition-delay:.55s}.ai-feature.reveal:not(.is-visible) .ai-feature-copy,.ai-feature.reveal:not(.is-visible) .feature-shot{opacity:0;transform:translateY(28px)}.ai-feature.reveal:not(.is-visible) .mini-list li{opacity:0;transform:translateY(10px)}
@media(min-width:1240px){.ai-feature.reveal:not(.is-visible) .ai-feature-copy{transform:translateX(-28px)}.ai-feature.reveal:not(.is-visible) .feature-shot{transform:translateX(28px) scale(.97)}.ai-feature.reveal:not(.is-visible):nth-child(even) .ai-feature-copy{transform:translateX(28px)}.ai-feature.reveal:not(.is-visible):nth-child(even) .feature-shot{transform:translateX(-28px) scale(.97)}}
.gradient-card.reveal .mini-list li{transition:opacity .45s ease,transform .45s var(--ease-out)}.gradient-card.reveal .mini-list li:nth-child(1){transition-delay:.3s}.gradient-card.reveal .mini-list li:nth-child(2){transition-delay:.4s}.gradient-card.reveal .mini-list li:nth-child(3){transition-delay:.5s}.gradient-card.reveal .mini-list li:nth-child(4){transition-delay:.6s}.gradient-card.reveal .mini-list li:nth-child(5){transition-delay:.7s}.gradient-card.reveal .mini-list li:nth-child(6){transition-delay:.8s}.gradient-card.reveal:not(.is-visible) .mini-list li{opacity:0;transform:translateX(-10px)}

/* "Coming soon" badge: soft violet from the brand gradient, distinct from the blue eyebrow labels */
.badge-soon{display:inline-block;margin-left:8px;padding:3px 10px;border-radius:var(--radius-pill);background:#efecfe;border:1px solid #d9d4fb;color:var(--indigo);font-family:var(--font-sans);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.4;vertical-align:middle;white-space:nowrap}
/* Eyebrow badges wrap as their own item: the gap only applies between items on one line,
   so a badge that drops to the next line starts flush left (no stray indent).
   In lists the badge flows inline after the text; wrap it with the last word in .nowrap so it never sits alone. */
.eyebrow:has(>.badge-soon){display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:6px}.eyebrow:has(>.badge-soon) .badge-soon{margin-left:0}
/* Keep a phrase and its badge together mid-sentence (the badge then flows inline with the text) */
.nowrap{white-space:nowrap}
.nowrap .badge-soon{margin-left:0} /* the space before it already separates it, matching the space after */

/* Academy course cards with cover images: 4 across on wide screens (2 on tablets, 1 on phones via earlier rules) */
@media(min-width:1101px){.academy-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* First row of course cards is on screen at load, so the scroll reveal skips it; give it a CSS entrance instead.
   Pure CSS starts with the first paint, so the cards never flash visible before the animation. */
@media(min-width:1101px){
  .academy-grid>.academy-course:nth-child(-n+4){animation:heroUp .7s var(--ease-out) backwards}
  .academy-grid>.academy-course:nth-child(1){animation-delay:.35s}
  .academy-grid>.academy-course:nth-child(2){animation-delay:.47s}
  .academy-grid>.academy-course:nth-child(3){animation-delay:.59s}
  .academy-grid>.academy-course:nth-child(4){animation-delay:.71s}
  /* Never let the scroll reveal hide them again after the entrance (e.g. when they start just below the fold) */
  .academy-grid>.academy-course:nth-child(-n+4).reveal{opacity:1;transform:none;transition:none}
}

/* Images inside insight articles (click through to full size) */
.article-figure{margin:30px 0 34px}.article-figure>a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);text-decoration:none}.article-figure img{display:block;width:100%;height:auto}.article-figure figcaption{margin-top:12px;font-size:14px;color:var(--muted)}
