/* Homepage showcase: extends the existing light design tokens. */
[hidden] { display:none!important; }
.sf-hero { position:relative; background:radial-gradient(ellipse at 85% 30%,#e7eaff 0,transparent 52%),linear-gradient(115deg,#fff 10%,#f2f7ff 100%); padding:48px 0 70px; overflow:hidden; }
.sf-slides { display:grid; }
.sf-slide { grid-area:1/1; display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; opacity:0; visibility:hidden; transition:opacity .65s ease,visibility .65s; pointer-events:none; }
.sf-slide.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.sf-copy { padding:18px 0; min-width:0; }
.sf-copy h1,.sf-copy h2 { white-space:pre-line; }
.sf-copy .eyebrow { font-size:10px; letter-spacing:.16em; color:var(--blue); margin-bottom:24px; }
.sf-copy h1,.sf-copy h2 { font-size:clamp(38px,3.8vw,58px); line-height:1.09; letter-spacing:-.045em; margin:0 0 24px; max-width:610px; }
.sf-description { font-size:16px; max-width:490px; margin-bottom:25px; }
.sf-copy .button-row { gap:12px; }
.sf-copy .button { font-size:12px; padding:15px 19px; white-space:normal; text-align:center; }
.sf-highlights { list-style:none; padding:0; margin:0 0 26px; display:flex; flex-wrap:wrap; gap:8px; }
.sf-highlights li { font-size:11px; color:#455e8b; padding:6px 10px; border:1px solid #dfe6f5; background:#ffffffb3; border-radius:6px; }
.sf-visual { position:relative; margin:0; padding:24px 22px 17px; background:linear-gradient(150deg,#fff9,#ffffffdd); border:1px solid white; border-radius:28px; box-shadow:0 24px 65px #3c569a14; transform:rotate(-1deg); }
.sf-visual img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:14px; margin:18px 0; background:#edf2fa; }
.sf-visual-label { display:flex; justify-content:space-between; font-size:9px; font-weight:650; letter-spacing:.18em; color:#607496; }
.sf-visual-label>span { color:#8a98b4; }
.sf-visual figcaption { display:flex; align-items:center; gap:10px; color:#445b7e; font-size:11px; border-top:1px solid #e1e7f4; padding-top:16px; }
.sf-caption-mark { color:var(--blue); }
.sf-controls { display:flex; align-items:center; gap:24px; padding-top:23px; }
.sf-counter { font-size:11px; letter-spacing:.12em; color:#7687a2; }
.sf-counter b { color:var(--navy); }
.sf-dots { display:flex; gap:3px; }
.sf-dots button { display:grid; place-items:center; padding:0; width:38px; height:44px; background:none; border:0; }
.sf-dots button span { display:block; width:7px; height:7px; border-radius:10px; background:#a7b5d0; transition:width .3s,background .3s; }
.sf-dots button[aria-current=true] span { width:28px; background:var(--blue); }
.sf-control-actions { display:flex; align-items:center; gap:8px; margin-left:auto; }
.round-control { display:inline-grid; place-items:center; width:44px; height:44px; background:white; border:1px solid #dbe3f0; border-radius:50%; color:var(--navy); transition:background .2s,border-color .2s; flex-shrink:0; }
.round-control:hover { background:#edf2ff; border-color:#8da6f0; }
.round-control.previous .icon { transform:rotate(180deg); }
.round-control:disabled { opacity:.35; cursor:default; }
.sf-play { border:0; color:#52698c; background:transparent; font-size:11px; min-width:48px; min-height:44px; }
.sf-slide.is-active .sf-copy>* { animation:sf-arrive .65s both; }
.sf-slide.is-active .sf-copy>:nth-child(2) { animation-delay:.06s; }
.sf-slide.is-active .sf-copy>:nth-child(3) { animation-delay:.12s; }
.sf-slide.is-active .sf-copy>:nth-child(n+4) { animation-delay:.18s; }
.sf-slide.is-active .sf-visual { animation:sf-visual-in .8s both; }
@keyframes sf-arrive { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes sf-visual-in { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:rotate(-1deg); } }
.sf-service-wrap { position:relative; z-index:2; margin-top:-38px; }
.sf-service-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 16px 45px #223b7210; padding:24px 8px; }
.sf-service-strip a { display:flex; align-items:center; gap:12px; padding:5px 18px; border-right:1px solid var(--line); transition:background .2s; }
.sf-service-strip a:last-child { border:0; }
.sf-service-strip a:hover { background:#f5f7fe; }
.sf-service-strip .icon-tile { width:38px; height:44px; flex-shrink:0; background:#f0f4ff; }
.sf-service-strip strong { font-size:12px; line-height:1.55; display:block; }
.sf-service-strip small { display:block; font-size:10px; color:var(--slate); line-height:1.65; margin-top:4px; }
.sf-programs { padding:82px 0 0; }
.sf-programs .section-heading { align-items:flex-end; gap:28px; }
.sf-programs .section-heading p:not(.eyebrow) { max-width:600px; margin-bottom:0; font-size:14px; }
.sf-programs .section-heading>.text-link { white-space:nowrap; margin-bottom:5px; }
.sf-course-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:2px; padding:12px 2px 23px; scrollbar-width:thin; scrollbar-color:#bccae8 transparent; }
.sf-course-card { flex:0 0 calc((100% - 60px)/4); min-width:0; border:1px solid var(--line); border-radius:14px; background:white; overflow:hidden; scroll-snap-align:start; box-shadow:0 7px 18px #23395f08; transition:transform .25s,border-color .25s,box-shadow .25s; }
.sf-course-card:hover { transform:translateY(-5px); border-color:#a4b8ef; box-shadow:0 14px 25px #23395f12; }
.sf-course-image { overflow:hidden; position:relative; background:#f0f4fd; }
.sf-course-image img { width:100%; aspect-ratio:480/280; object-fit:cover; display:block; transition:transform .45s; }
.sf-course-card:hover img { transform:scale(1.045); }
.sf-course-image>span { position:absolute; top:14px; left:14px; font-size:7px; letter-spacing:.12em; font-weight:600; background:#ffffffde; padding:5px 8px; border-radius:4px; color:#4d638b; }
.sf-course-body { position:relative; padding:31px 21px 22px; }
.sf-course-body>.icon-tile { position:absolute; top:-22px; right:19px; width:42px; height:42px; background:white; color:var(--blue); border:1px solid #e2e8f4; border-radius:11px; box-shadow:0 4px 14px #254b9410; }
.sf-course-body h3 { font-size:27px; margin:0 0 10px; }
.sf-course-body p { font-size:13px; line-height:1.65; min-height:44px; margin-bottom:24px; }
.sf-course-body .text-link { font-size:11px; width:100%; justify-content:space-between; min-height:30px; }
.sf-course-card:hover .text-link .icon { transform:translateX(3px); }
.sf-course-controls { display:flex; align-items:center; gap:12px; margin:6px 0 22px; }
.sf-course-controls>[data-course-status] { font-size:11px; color:var(--slate); white-space:nowrap; }
.sf-course-meter { position:relative; height:3px; flex:1; margin:0 24px; background:#e9edf6; border-radius:4px; overflow:hidden; }
.sf-course-meter span { position:absolute; height:100%; border-radius:4px; background:#7a92d1; }
.sf-program-note { font-size:11px; line-height:1.8; color:#687892; margin:24px 0 42px; }
.sf-benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; border-top:1px solid var(--line); padding:34px 0 42px; }
.sf-benefits .icon { display:block; color:#6c7fc4; margin-bottom:16px; }
.sf-benefits strong { font-size:13px; }
.sf-benefits p { font-size:11px; margin:8px 0 0; max-width:215px; }
.sf-enquiry-context { background:#edf2ff; border-radius:8px; padding:12px 15px; color:var(--blue-dark); font-size:13px; }
.sf-whatsapp { position:fixed; bottom:22px; right:22px; z-index:1030; display:flex; align-items:center; gap:9px; min-height:48px; padding:12px 18px; color:white; background:#167b4a; border-radius:30px; box-shadow:0 6px 22px #163f3426; font-size:12px; }
.sf-whatsapp:hover { color:white; background:#10683d; }
.sf-footer-contact { display:flex; flex-wrap:wrap; column-gap:28px; padding-bottom:18px; }
.sf-footer-contact p { color:#a9b6cc; font-size:11px; }
@media(min-width:1600px) { .sf-programs>.container { max-width:1540px; } .sf-course-card { flex-basis:calc((100% - 100px)/6); } }
@media(max-width:1199px) { .sf-slide { gap:30px; } .sf-copy h1,.sf-copy h2 { font-size:43px; } .sf-service-strip a { padding:5px 12px; gap:8px; } .sf-service-strip strong { font-size:11px; } }
@media(max-width:991px) { .sf-slide { gap:20px; } .sf-copy h1,.sf-copy h2 { font-size:36px; } .sf-copy .eyebrow { font-size:8px; } .sf-description { font-size:14px; } .sf-visual { padding:18px 14px; } .sf-visual figcaption { font-size:10px; } .sf-course-card { flex-basis:calc((100% - 40px)/3); } .sf-service-strip { grid-template-columns:1fr 1fr; gap:18px 0; } .sf-service-strip a:nth-child(2) { border:0; } .sf-service-strip strong { font-size:12px; } }
@media(max-width:767px) { .sf-hero { padding:28px 0 63px; } .sf-slide { grid-template-columns:1fr; grid-template-rows:1fr auto; gap:18px; } .sf-copy { padding:0; } .sf-copy h1,.sf-copy h2 { font-size:clamp(34px,7vw,46px); margin-bottom:18px; } .sf-copy .eyebrow { margin-bottom:18px; font-size:8px; } .sf-description { margin-bottom:19px; } .sf-copy .button-row { gap:9px; } .sf-copy .button { font-size:11px; padding:13px 14px; } .sf-highlights { margin-bottom:20px; gap:6px; } .sf-highlights li { font-size:10px; padding:4px 7px; } .sf-visual { width:100%; max-width:430px; margin:auto; padding:14px; border-radius:20px; } .sf-visual img { height:195px; } .sf-visual-label { font-size:8px; } .sf-visual figcaption { padding-top:9px; font-size:10px; } .sf-controls { gap:8px; padding-top:15px; } .sf-dots { gap:0; } .sf-dots button { width:30px; } .sf-counter { font-size:9px; } .sf-control-actions { gap:4px; } .sf-play { font-size:10px; min-width:40px; } .sf-controls .round-control { width:38px; height:44px; } .sf-service-strip { padding:15px 7px; gap:0; } .sf-service-strip a { padding:13px 10px; flex-direction:column; align-items:flex-start; gap:9px; } .sf-service-strip strong { font-size:11px; } .sf-service-strip small { font-size:9px; } .sf-service-strip a:nth-child(-n+2) { border-bottom:1px solid var(--line); } .sf-service-strip .icon-tile { height:34px; } .sf-programs { padding-top:54px; } .sf-programs .section-heading>.text-link { margin-top:20px; } .sf-course-card { flex-basis:calc((100% - 20px)/2); } .sf-course-body { padding:30px 17px 17px; } .sf-course-body p { min-height:65px; font-size:12px; } .sf-course-meter { margin:0 8px; } .sf-benefits { grid-template-columns:1fr 1fr; gap:24px; } .sf-whatsapp { bottom:16px; right:16px; padding:12px; } .sf-whatsapp span { display:none; } }
@media(max-width:480px) { .sf-course-card { flex-basis:82%; } .sf-course-body p { min-height:44px; } }
@media(prefers-reduced-motion:reduce) { .sf-slide,.sf-slide *,.sf-course-card,.sf-course-card * { animation:none!important; transition:none!important; } .sf-course-track { scroll-behavior:auto; } .sf-course-card:hover,.sf-course-card:hover img { transform:none; } }

/* Seven-slide controls wrap cleanly on narrow screens. */
@media(max-width:767px) { .sf-visual img { height:auto; aspect-ratio:16/9; } .sf-controls { flex-wrap:wrap; justify-content:space-between; } .sf-counter { display:none; } .sf-dots { gap:0; } .sf-dots button { width:27px; } .sf-control-actions { margin-left:0; } }
@media(max-width:359px) { .sf-control-actions { width:100%; justify-content:flex-end; } }


/* Shared business contact surfaces */
.address-line { display:block; }
.sf-footer-contact { gap:20px 28px; align-items:flex-start; }
.sf-footer-contact a { display:flex; align-items:flex-start; gap:10px; overflow-wrap:anywhere; }
.sf-footer-contact .icon { flex-shrink:0; width:20px; height:20px; }
.contact-details .contact-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-details .contact-cards>div { padding:20px; border:1px solid var(--line); border-radius:16px; min-width:0; }
.contact-details .contact-cards dt { display:flex; align-items:center; gap:10px; }
.contact-details .contact-cards dt .icon-tile { position:static; }
.contact-details .contact-cards dd { margin:16px 0 0; overflow-wrap:anywhere; }
.contact-action { display:flex; align-items:center; gap:8px; min-height:44px; margin-top:12px; font-weight:600; }
.cta-actions { display:grid; gap:8px; }
.mobile-contact-actions { display:none; }
@media(max-width:767px) {
 body { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
 .mobile-contact-actions { position:fixed; bottom:0; left:0; right:0; z-index:1020; display:grid; grid-template-columns:repeat(4,1fr); padding:8px 8px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 20px #163f3410; }
 .mobile-contact-actions a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:52px; font-size:11px; color:#14334a; }
 .sf-whatsapp { bottom:calc(88px + env(safe-area-inset-bottom)); }
 .contact-details .contact-cards { grid-template-columns:1fr; }
 .contact-details .contact-cards>div { padding:18px; }
}
body:has(.modal.show) .sf-whatsapp, body:has(.modal.show) .mobile-contact-actions { visibility:hidden; }

/* One shared, light enquiry experience. */
.enquiry-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.enquiry-failure { background:#fff6f7; border:1px solid #f0d4da; border-radius:12px; padding:18px; margin-bottom:18px; font-size:14px; }
.enquiry-failure p { margin:8px 0 0; }
.enquiry-success { padding:24px 0; text-align:center; }
.success-mark { display:inline-flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:50%; background:#edf7f2; color:#18764d; margin-bottom:22px; }
.enquiry-success h3 { font-size:30px; }
.enquiry-success p { color:var(--slate); font-size:15px; }
.enquiry-success .button { min-width:150px; margin-top:12px; }
.enquiry-success .contact-action { justify-content:center; margin-top:0; }
.enquiry-success .whatsapp-alternative { margin:26px 0 0; font-size:13px; }
.contact-enquiry-prompt .eyebrow { margin-top:24px; }
