:root { --navy:#25294f; --red:#bc2939; --red-dark:#9b1b2a; --ink:#252a43; --muted:#626779; --line:#e3e4eb; --soft:#f7f7fa; --blush:#fcf3f2; --radius:22px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:white; color:var(--ink); font-family:Poppins,Arial,sans-serif; font-size:15px; line-height:1.85; -webkit-font-smoothing:antialiased; }
img,svg { max-width:100%; }
img { height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
h1,h2,h3,p,figure { margin-top:0; }
h1,h2,h3 { font-family:Nunito,Arial,sans-serif; font-weight:700; line-height:1.1; letter-spacing:-.035em; }
h1 { font-size:clamp(43px,4.8vw,68px); margin-bottom:26px; }
h1>span { color:var(--red); }
h2 { font-size:clamp(32px,3.3vw,46px); margin-bottom:24px; }
h3 { font-size:26px; margin-bottom:17px; }
p { margin-bottom:20px; }
::selection { background:#f5ced2; color:var(--navy); }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--red); outline-offset:5px; border-radius:3px; }
.container { width:min(1180px,calc(100% - 96px)); margin-inline:auto; }
.section { padding-block:96px; }
.section-tight { padding-top:16px; }
.eyebrow { color:var(--red); text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:600; margin-bottom:20px; line-height:1.7; }
.lead { font-size:17px; color:var(--muted); max-width:590px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:25px; min-height:53px; padding:14px 24px; background:var(--red); color:white; border:1px solid transparent; border-radius:9px; font-size:12px; font-weight:600; line-height:1.5; transition:background .18s,transform .18s,box-shadow .18s; }
.button:hover { background:var(--red-dark); transform:translateY(-2px); box-shadow:0 8px 20px #bc293922; }
.button>span { font-size:19px; line-height:1; }
.button.small { min-height:43px; padding:11px 17px; gap:17px; font-size:11px; }
.button-row { display:flex; align-items:center; flex-wrap:wrap; gap:25px; margin-top:32px; }
.text-link { display:inline-flex; align-items:center; gap:16px; font-size:12px; font-weight:600; color:var(--red); }
.text-link>span { font-size:20px; }
.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.topline { background:var(--navy); color:#dddfea; font-size:9px; }
.topline>.container { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:9px; }
.topline a { color:white; }
.topline a span { margin-left:12px; }
.site-header { position:sticky; top:0; z-index:30; background:#fffffff2; backdrop-filter:blur(15px); border-bottom:1px solid #ececf1; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:30px; min-height:100px; }
.brand { display:block; flex-shrink:0; line-height:0; }
.brand img { width:200px; height:auto; }
.site-nav { display:flex; align-items:center; gap:28px; font-size:11px; font-weight:500; }
.site-nav>a:not(.button) { padding-block:13px; }
.site-nav>a:not(.button):hover,.site-nav>a[aria-current=page] { color:var(--red); }
.site-nav>a[aria-current=page] { box-shadow:0 2px var(--red); }
.nav-toggle { display:none; }
.skip-link { position:fixed; top:-70px; left:16px; z-index:100; padding:12px 20px; background:var(--navy); color:#fff; border-radius:6px; }
.skip-link:focus { top:12px; }
.hero { padding-block:80px 90px; background:radial-gradient(ellipse at 95% 15%,#faeded,transparent 60%),#fcfbfb; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:75px; align-items:center; }
.hero h1 { font-size:clamp(45px,4.65vw,64px); line-height:1.08; letter-spacing:-.04em; }
.hero .lead { max-width:465px; font-size:16px; }
.dot { display:inline-block; width:7px; height:7px; margin-right:8px; background:var(--red); border-radius:50%; box-shadow:0 0 0 5px #bc293911; }
.hero-footnote { display:flex; align-items:center; gap:14px; margin-top:35px; color:var(--muted); font-size:10px; }
.hero-footnote>span { width:25px; height:1px; background:#ca969f; }
.hero-visual { position:relative; padding-bottom:60px; }
.photo-frame { overflow:hidden; border-radius:100px 24px 24px 24px; background:#eee; }
.photo-frame img { display:block; width:100%; aspect-ratio:1.03; object-fit:cover; object-position:55% center; }
.photo-caption { position:absolute; display:flex; align-items:center; gap:18px; left:-30px; bottom:22px; padding:23px 30px; border:1px solid #ece1e1; border-radius:16px; background:white; box-shadow:0 16px 35px #25294f0b; }
.caption-mark { color:var(--red); font-family:Nunito,Arial,sans-serif; font-size:39px; line-height:1; }
.photo-caption strong { display:block; font-family:Nunito,Arial,sans-serif; font-size:20px; font-weight:700; letter-spacing:-.02em; line-height:1.3; }
.photo-caption div>span { display:block; margin-top:5px; color:var(--muted); font-size:10px; }
.visual-label { position:absolute; top:50%; right:-32px; writing-mode:vertical-rl; font-size:8px; letter-spacing:.17em; color:#8b7d86; }
.topic-strip { border-block:1px solid var(--line); }
.topic-strip>.container { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:27px; font-family:Nunito,Arial,sans-serif; font-size:17px; color:#5a5e74; font-weight:600; }
.topic-strip span::before { content:'+'; margin-right:15px; color:var(--red); }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:70px; margin-bottom:40px; }
.section-heading h2 { margin-bottom:0; }
.section-heading>p { max-width:360px; margin-bottom:5px; color:var(--muted); font-size:14px; }
.small-note { color:var(--muted); font-size:10px; margin-bottom:6px; }
.service-grid,.three-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { display:flex; flex-direction:column; padding:32px; border:1px solid var(--line); border-radius:var(--radius); transition:transform .2s,border-color .2s,box-shadow .2s; }
.service-card:hover { transform:translateY(-5px); border-color:#d9a6ae; box-shadow:0 12px 30px #25294f08; }
.number { display:block; margin-bottom:25px; color:#777184; font-size:9px; font-weight:500; letter-spacing:.1em; }
.line-icon { display:flex; align-items:center; justify-content:center; width:51px; height:51px; margin-bottom:26px; border:1px solid #f0d7da; border-radius:13px; background:#fcf3f3; color:var(--red); }
.line-icon svg,.mail-icon svg { width:25px; height:25px; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.service-card h3 { font-size:28px; }
.service-card p { margin-bottom:30px; color:var(--muted); font-size:13px; }
.card-link { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:22px; border-top:1px solid var(--line); color:var(--red); font-size:11px; font-weight:500; }
.card-link>span { font-size:21px; }
.story-section,.soft-section { background:var(--soft); border-block:1px solid #ececf1; }
.story-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:100px; align-items:center; }
.story-image { position:relative; }
.story-image img { display:block; width:100%; max-height:430px; aspect-ratio:1.1; object-fit:cover; object-position:center 60%; border-radius:24px 80px 24px 24px; }
.story-image>span { position:absolute; bottom:24px; left:24px; right:24px; padding:14px 20px; border-radius:10px; background:#fffffff0; color:var(--navy); font-size:11px; }
.story-copy .lead { font-size:17px; }
.story-copy>p:not(.eyebrow):not(.lead) { color:var(--muted); font-size:14px; }
.testimonial-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.testimonial-grid figure { display:flex; flex-direction:column; margin:0; padding:32px; border:1px solid var(--line); border-radius:var(--radius); }
.quote-mark { color:var(--red); font-family:Georgia,serif; font-size:66px; line-height:1; height:48px; }
blockquote { margin:12px 0 24px; font-size:14px; line-height:1.9; color:#51576d; }
figcaption { padding-top:20px; margin-top:auto; border-top:1px solid var(--line); color:var(--navy); font-size:12px; font-weight:600; }
.contact-panel { position:relative; padding:48px; border:1px solid #ead7da; border-radius:var(--radius); background:radial-gradient(ellipse at top right,#f9e0e3,transparent 75%),#fdf6f5; box-shadow:0 12px 35px #25294f04; }
.mail-icon { display:flex; align-items:center; justify-content:center; width:56px; height:56px; margin-bottom:26px; border:1px solid #eccbd0; border-radius:16px; background:#fbecee; color:var(--red); }
.contact-panel h2 { font-size:36px; margin-bottom:16px; }
.contact-panel>p:not(.eyebrow) { max-width:500px; color:var(--muted); font-size:14px; }
.contact-panel .eyebrow { font-size:9px; }
.email-address { display:block; width:fit-content; margin-block:24px; color:var(--red-dark); font-size:clamp(18px,2.4vw,26px); font-weight:600; overflow-wrap:anywhere; }
.email-address:hover { text-decoration:underline; text-underline-offset:5px; }
.page-home .contact-panel,.page-courses .contact-panel { padding-right:40%; }
.page-home .contact-panel::after,.page-courses .contact-panel::after { content:'↗'; position:absolute; top:50%; right:12%; transform:translateY(-50%); font-family:Arial,sans-serif; font-size:210px; line-height:1; color:#edc2c8; pointer-events:none; }
.page-hero { background:linear-gradient(120deg,#fcfbfb,#fbf1f1); border-bottom:1px solid #ede3e5; }
.page-hero-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:75px; align-items:center; }
.page-hero h1 { font-size:clamp(42px,4.6vw,62px); }
.page-hero .button { margin-top:12px; }
.course-hero-photo img { display:block; width:100%; aspect-ratio:1.2; object-fit:cover; object-position:50% center; border-radius:65px 22px 22px 22px; }
.course-list { border-bottom:1px solid var(--line); }
.course-row { display:grid; grid-template-columns:120px 1fr; gap:35px; padding-block:42px; border-top:1px solid var(--line); scroll-margin-top:120px; }
.course-number { color:#b0afbe; font-family:Nunito,Arial,sans-serif; font-size:49px; font-weight:600; line-height:1; padding-top:6px; }
.course-row>div { max-width:790px; }
.pill { display:inline-block; padding:4px 12px; margin-bottom:18px; border:1px solid #eed5d8; border-radius:30px; font-size:8px; font-weight:500; letter-spacing:.1em; color:var(--red); background:#fcf5f6; }
.course-row h3 { font-size:34px; margin-bottom:22px; }
.course-row p { color:var(--muted); font-size:14px; }
.two-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.info-card { padding:34px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.info-card h3 { font-size:27px; }
.info-card p { color:var(--muted); font-size:14px; }
.info-card p:last-child { margin-bottom:0; }
.info-card .number { color:var(--red); font-size:12px; }
.other-courses { display:grid; grid-template-columns:1fr 1.15fr; gap:100px; }
.other-courses>div>p:last-child { color:var(--muted); font-size:14px; }
.other-courses ul { list-style:none; padding:0; margin:0; }
.other-courses li { padding:17px 0; border-bottom:1px solid var(--line); font-size:14px; }
.other-courses li::before { content:'+'; display:inline-block; width:26px; color:var(--red); }
.ppe-photo { background:white; padding:20px; border:1px solid var(--line); border-radius:22px; }
.ppe-photo img { display:block; width:100%; height:auto; }
.enquiry-band { display:flex; align-items:center; justify-content:space-between; gap:60px; }
.enquiry-band p:last-child { max-width:510px; margin-bottom:0; color:var(--muted); font-size:14px; }
.button-stack { display:flex; flex-direction:column; align-items:flex-start; flex-shrink:0; gap:22px; }
.contact-section { background:radial-gradient(ellipse at top left,#fcf1f2,transparent 60%); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:center; }
.contact-copy h1 { font-size:clamp(43px,4.6vw,62px); }
.contact-copy>p:not(.eyebrow):not(.lead) { max-width:480px; color:var(--muted); font-size:14px; }
.social-link { display:inline-flex; align-items:center; gap:15px; margin-top:15px; color:var(--red); font-size:11px; font-weight:500; }
.contact-grid .contact-panel { padding:38px; }
.contact-grid .contact-panel h2 { font-size:34px; }
.contact-grid .email-address { font-size:23px; }
.option-card { padding:32px; border:1px solid var(--line); border-radius:var(--radius); transition:border-color .2s,background .2s; }
.option-card:hover { border-color:#d7a8b0; background:#fdfafa; }
.option-card h2 { display:flex; justify-content:space-between; gap:20px; font-size:29px; margin-bottom:16px; }
.option-card h2>span { color:var(--red); }
.option-card p:last-child { margin:0; color:var(--muted); font-size:13px; }
.error-page { padding-block:35px; }
.site-footer { background:var(--navy); color:#d6d8e5; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1.25fr; gap:65px; padding-block:60px 45px; }
.footer-logo { display:block; width:190px; padding:10px 12px; background:white; border-radius:9px; line-height:0; }
.footer-logo img { display:block; width:100%; }
.footer-brand>p { margin:22px 0 0; color:#acb0c8; font-size:12px; }
.footer-grid h2 { color:#adb2cc; font-family:Poppins,Arial,sans-serif; font-size:9px; font-weight:500; text-transform:uppercase; letter-spacing:.13em; margin-bottom:22px; }
.footer-grid>div>a:not(.footer-logo) { display:block; width:fit-content; margin-top:10px; font-size:12px; overflow-wrap:anywhere; }
.footer-grid>div>a:hover { color:white; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-block:22px; border-top:1px solid #414562; color:#a6abc4; font-size:9px; }
@media(max-width:1100px) {
  .container { width:calc(100% - 64px); }
  .site-nav { gap:20px; }
  .brand img { width:175px; }
  .hero-grid { gap:50px; }
  .hero h1 { font-size:52px; }
  .photo-caption { padding:22px; }
  .photo-caption strong { font-size:18px; }
  .story-grid { gap:60px; }
  .contact-grid { gap:45px; }
  .contact-grid .contact-panel { padding:30px; }
  .contact-grid .email-address { font-size:20px; }
  .page-hero-grid { gap:50px; }
  .service-card { padding:27px; }
  .footer-grid { gap:40px; }
}
@media(max-width:850px) {
  .section { padding-block:70px; }
  .section-tight { padding-top:12px; }
  .topline>.container { font-size:8px; }
  .header-inner { position:relative; min-height:85px; flex-wrap:wrap; gap:18px; }
  .brand img { width:175px; }
  .site-nav { flex-basis:100%; flex-wrap:wrap; padding-bottom:20px; }
  .js .nav-toggle { display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid var(--line); border-radius:8px; color:var(--navy); background:white; font-size:11px; }
  .js .site-nav { display:none; position:absolute; top:100%; left:-32px; right:-32px; padding:20px 32px 28px; border-bottom:1px solid var(--line); background:white; box-shadow:0 15px 25px #25294f0b; }
  .js .site-nav[data-open=true] { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
  .site-nav>a[aria-current=page] { box-shadow:none; }
  .hero-grid { gap:35px; }
  .hero h1 { font-size:44px; }
  .hero .lead { font-size:14px; }
  .hero .button { padding-inline:18px; font-size:11px; }
  .hero .button-row { gap:18px; }
  .hero-footnote { font-size:9px; }
  .photo-frame { border-top-left-radius:65px; }
  .photo-frame img { aspect-ratio:.8; }
  .photo-caption { left:-10px; padding:20px; }
  .photo-caption strong { font-size:17px; }
  .photo-caption div>span { font-size:9px; }
  .visual-label { right:-23px; font-size:7px; }
  .topic-strip>.container { flex-wrap:wrap; justify-content:flex-start; gap:15px 30px; font-size:15px; }
  .section-heading { gap:40px; }
  .section-heading>p { max-width:280px; font-size:13px; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { padding:30px; }
  .service-card h3 { font-size:30px; }
  .service-card p { font-size:14px; }
  .story-grid { gap:40px; }
  .story-copy .lead { font-size:15px; }
  .story-image img { aspect-ratio:.7; }
  .testimonial-grid figure { padding:26px; }
  blockquote { font-size:13px; }
  .page-hero-grid { gap:35px; }
  .page-hero h1 { font-size:44px; }
  .page-hero .lead { font-size:15px; }
  .course-hero-photo img { aspect-ratio:.8; }
  .course-row { grid-template-columns:65px 1fr; gap:25px; }
  .other-courses { gap:50px; }
  .three-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; gap:40px; }
  .contact-copy { max-width:600px; }
  .contact-copy>p:not(.eyebrow) { max-width:600px; }
  .contact-grid .contact-panel { padding:40px; }
  .contact-grid .email-address { font-size:25px; }
  .info-card { padding:28px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:35px; }
  .footer-brand { grid-column:1/-1; }
}
@media(max-width:600px) {
  .container { width:calc(100% - 40px); }
  .section { padding-block:54px; }
  .section-tight { padding-top:10px; }
  h1 { font-size:43px; }
  h2 { font-size:35px; }
  .lead { font-size:15px; }
  .eyebrow { font-size:9px; }
  .button { font-size:12px; padding-inline:21px; gap:21px; }
  .topline>.container { justify-content:center; padding-block:8px; font-size:7px; }
  .topline a { display:none; }
  .header-inner { min-height:80px; }
  .brand img { width:166px; }
  .js .nav-toggle { font-size:10px; padding:8px 10px; }
  .js .site-nav { left:-20px; right:-20px; padding-inline:20px; }
  .hero-grid,.page-hero-grid { grid-template-columns:1fr; gap:42px; }
  .hero h1 { font-size:clamp(40px,10.9vw,49px); }
  .hero .lead { font-size:15px; }
  .hero .button { font-size:12px; }
  .hero-footnote { margin-top:30px; font-size:9px; }
  .hero-visual { padding-bottom:60px; margin-right:8px; }
  .photo-frame { border-radius:60px 20px 20px 20px; }
  .photo-frame img { aspect-ratio:1; }
  .photo-caption { left:12px; right:-8px; bottom:17px; padding:20px; gap:15px; }
  .photo-caption strong { font-size:18px; }
  .photo-caption div>span { font-size:9px; }
  .visual-label { display:none; }
  .topic-strip>.container { display:grid; grid-template-columns:1fr 1fr; gap:18px 10px; padding-block:24px; font-size:12px; }
  .topic-strip span::before { margin-right:9px; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:20px; margin-bottom:30px; }
  .section-heading>p { max-width:none; font-size:14px; }
  .service-card { padding:28px; }
  .service-card p { font-size:14px; }
  .story-grid { grid-template-columns:1fr; gap:38px; }
  .story-image img { max-height:360px; aspect-ratio:1; }
  .story-image>span { left:20px; right:20px; bottom:20px; padding:12px 16px; font-size:10px; }
  .story-copy .lead { font-size:16px; }
  .testimonial-grid,.two-grid { grid-template-columns:1fr; }
  .testimonial-grid figure { padding:28px; }
  blockquote { font-size:14px; }
  .contact-panel,.contact-grid .contact-panel { padding:30px 25px; border-radius:20px; }
  .page-home .contact-panel,.page-courses .contact-panel { padding:30px 25px; }
  .page-home .contact-panel::after,.page-courses .contact-panel::after { display:none; }
  .contact-panel h2,.contact-grid .contact-panel h2 { font-size:31px; }
  .contact-panel .eyebrow { font-size:8px; }
  .contact-panel>p:not(.eyebrow) { font-size:13px; }
  .email-address,.contact-grid .email-address { font-size:18px; }
  .page-hero h1 { font-size:42px; }
  .course-hero-photo img { aspect-ratio:1.2; border-radius:50px 20px 20px 20px; }
  .course-row { grid-template-columns:35px 1fr; gap:16px; padding-block:32px; }
  .course-number { font-size:27px; padding-top:6px; }
  .course-row h3 { font-size:29px; }
  .course-row p { font-size:13px; }
  .course-row .text-link { font-size:11px; gap:10px; }
  .pill { font-size:7px; padding-inline:10px; }
  .info-card { padding:28px; }
  .info-card h3 { font-size:28px; }
  .other-courses { grid-template-columns:1fr; gap:25px; }
  .other-courses li { font-size:13px; }
  .ppe-photo { padding:14px; border-radius:18px; }
  .enquiry-band { flex-direction:column; align-items:flex-start; gap:30px; }
  .contact-copy h1 { font-size:44px; }
  .social-link { font-size:10px; gap:10px; }
  .option-card { padding:28px; }
  .option-card h2 { font-size:27px; }
  .footer-grid { padding-block:44px; gap:35px 24px; }
  .footer-grid>div:last-child { grid-column:1/-1; }
  .footer-grid>div>a:not(.footer-logo) { font-size:11px; }
  .footer-grid h2 { font-size:9px; margin-bottom:18px; }
  .footer-brand>p { font-size:12px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }

/* Social platform icons */
.social-glyph { display:inline-block; width:20px; height:20px; flex-shrink:0; vertical-align:middle; }
.footer-grid>div>a:has(.social-glyph) { display:flex; align-items:center; gap:10px; min-height:36px; }
.social-link .social-glyph,.text-link .social-glyph { width:18px; height:18px; }
