:root {
    --primary-blue: #24476f;
    --primary-teal: #2b9bb7;
    --secondary-white: #FFFFFF;
    --accent-gray: #F4F7FA;
    --text-dark: #1A1A1A;
    --text-light: #666666;
    --transition: all 0.4s ease;
}
* { margin:0; padding:0; box-sizing:border-box; font-family:'Inter',sans-serif; border-radius:0 !important; }
html { scroll-behavior:smooth; }
body { line-height:1.6; color:var(--text-dark); background:var(--secondary-white); overflow-x:hidden; }
img { max-width:100%; display:block; }
a { transition:var(--transition); }
.top-bar {
    background:var(--primary-blue); color:white; padding:8px 5%;
    display:flex; justify-content:space-between; align-items:center;
    font-size:.85rem; z-index:1001; position:relative;
}
.top-bar .contact-info { display:flex; gap:24px; align-items:center; }
.top-bar .contact-info a { color:#fff; text-decoration:none; }
.top-bar .social-icons { display:flex; align-items:center; gap:15px; }
.top-bar .social-icons a { color:white; text-decoration:none; }
.top-bar .social-icons a:hover { opacity:.7; }
header {
    background:white; padding:10px 5%; box-shadow:0 2px 10px rgba(0,0,0,.1);
    position:sticky; top:0; z-index:1000;
}
.header-main { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.logo { display:flex; align-items:center; text-decoration:none; }
.logo img { height:72px; width:auto; object-fit:contain; image-rendering:auto; }
.nav-container { display:flex; flex:1; justify-content:flex-end; align-items:center; }
nav ul { display:flex; list-style:none; align-items:center; }
nav ul li { position:relative; padding:0 9px; }
nav ul li a {
    text-decoration:none; color:var(--text-dark); font-weight:500; font-size:.88rem;
    white-space:nowrap; display:flex; align-items:center; gap:5px;
}
nav ul li a:hover, nav ul li a.active { color:var(--primary-teal); }
.has-sub:hover .sub-nav { display:block; }
.sub-nav {
    display:none; position:absolute; top:100%; left:0; background:#fff; min-width:230px;
    box-shadow:0 5px 15px rgba(0,0,0,.1); padding:10px 0;
    border-top:3px solid var(--primary-teal);
}
.sub-nav a {
    display:block; padding:10px 20px; font-size:.88rem; border-bottom:1px solid #eee;
    text-decoration:none; color:var(--text-dark);
}
.sub-nav a:hover { color:var(--primary-teal); background:#f9fbfc; }
.btn-portal {
    background:var(--primary-blue); color:white !important; padding:9px 18px;
    text-decoration:none; font-weight:600; margin-left:18px; display:flex;
    align-items:center; gap:8px; font-size:.88rem; border:0; cursor:pointer;
}
.btn-portal:hover { background:var(--primary-teal); }
.mobile-controls {
    display:none; width:100%; justify-content:space-between; align-items:center;
    margin-top:10px; border-top:1px solid #eee; padding-top:10px;
}
.menu-toggle { font-size:1.5rem; color:var(--primary-blue); cursor:pointer; }
.mobile-socials { display:flex; gap:14px; }
.mobile-socials a { color:var(--primary-blue); font-size:1.05rem; }
.sidebar {
    position:fixed; top:0; left:-100vw; width:100vw; max-width:100vw; height:100%; background:#fff;
    z-index:2000; transition:.3s; padding:20px; box-shadow:2px 0 10px rgba(0,0,0,.2);
    overflow-y:auto;
}
.sidebar.active { left:0; }
.sidebar-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; z-index:1999;
}
.sidebar-overlay.active { display:block; }
.sidebar-brand { border-bottom:1px solid #eee; padding:0 0 16px; margin-bottom:8px; }
.sidebar-brand img { height:84px; width:auto; max-width:100%; object-fit:contain; image-rendering:auto; }
.sidebar-close { display:flex; justify-content:flex-end; margin-bottom:12px; }
.sidebar-close i { font-size:1.5rem; color:var(--primary-blue); cursor:pointer; }
.sidebar a {
    display:block; padding:12px 0; border-bottom:1px solid #eee;
    text-decoration:none; color:var(--text-dark); font-weight:600;
}
.sidebar-item { border-bottom:1px solid #eee; }
.sidebar-header {
    display:flex; justify-content:space-between; align-items:center;
    padding:12px 0; cursor:pointer; color:var(--text-dark); font-weight:600;
}
.sub-nav-mobile { display:none; padding-left:15px; background:#fafafa; }
.sub-nav-mobile a { font-weight:400; font-size:.9rem; border-bottom:1px solid #f0f0f0; }
.sidebar-header.active i::before { content:"\f068"; }
.hero { height:70vh; min-height:520px; position:relative; overflow:hidden; background:#000; color:#fff; }
.slide {
    position:absolute; inset:0; opacity:0; transition:opacity 1s ease-in-out;
    display:flex; align-items:center; justify-content:center; text-align:center; padding:0 10%;
}
.slide.active { opacity:1; }
.slide img {
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1;
    filter:brightness(34%);
}
.hero-content { max-width:920px; }
.hero-content h1 {
    font-size:2.8rem; text-transform:uppercase; letter-spacing:2px;
    margin-bottom:15px; font-weight:700;
}
.hero-content p { font-size:1.1rem; letter-spacing:.5px; max-width:830px; margin:0 auto; }
.hero-tag {
    display:inline-block; border:1px solid rgba(255,255,255,.65); padding:6px 13px;
    margin-bottom:18px; font-size:.77rem; font-weight:700; letter-spacing:1.5px;
}
.hero-btns { margin-top:25px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.hero-btn {
    padding:10px 22px; text-decoration:none; font-weight:600; text-transform:uppercase;
    font-size:.85rem; transition:var(--transition);
}
.btn-enroll { background:var(--primary-teal); color:#fff; }
.btn-enroll:hover { background:var(--primary-blue); }
.btn-hero-apply { background:transparent; color:#fff; border:1.5px solid #fff; }
.btn-hero-apply:hover { background:#fff; color:var(--primary-blue); }
.page-hero {
    background-size:cover; background-position:center; color:#fff;
    padding:100px 5%; text-align:center; position:relative;
}
.page-hero::before { content:""; position:absolute; inset:0; background:rgba(36,71,111,.85); }
.page-hero > * { position:relative; z-index:2; }
.page-hero h1 { font-size:2.8rem; text-transform:uppercase; letter-spacing:2px; margin-bottom:12px; }
.page-hero p { font-size:1.08rem; max-width:820px; margin:0 auto; opacity:.95; }
section { padding:80px 5%; border-bottom:1px solid #eee; }
.section-title { text-align:center; margin-bottom:50px; }
.section-title h2 { font-size:2rem; color:var(--primary-blue); text-transform:uppercase; }
.section-title p { color:var(--text-light); margin-top:7px; }
.section-title.left { text-align:left; margin-bottom:25px; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(285px,1fr)); gap:0; }
.card { background:#fff; border:1px solid #eee; display:flex; flex-direction:column; transition:var(--transition); }
.card:hover { box-shadow:0 12px 32px rgba(0,0,0,.08); transform:translateY(-2px); }
.card-img { height:220px; background-size:cover; background-position:center; border-bottom:4px solid var(--primary-teal); }
.card-body { padding:25px; flex-grow:1; display:flex; flex-direction:column; }
.card-body h3 { color:var(--primary-blue); margin-bottom:10px; font-size:1.2rem; }
.card-body p { color:var(--text-light); margin-bottom:16px; }
.btn-card-apply {
    margin-top:auto; background:var(--primary-blue); color:#fff; padding:10px; text-align:center;
    text-decoration:none; font-weight:600; display:flex; align-items:center; justify-content:center;
    gap:10px; font-size:.85rem;
}
.btn-card-apply:hover { background:var(--primary-teal); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:0; }
.service-card { border:1px solid #eee; padding:36px; text-align:center; transition:var(--transition); background:#fff; }
.service-card:hover { background:var(--primary-blue); color:#fff; }
.service-card i { font-size:2.4rem; color:var(--primary-teal); margin-bottom:15px; }
.service-card:hover i, .service-card:hover h3, .service-card:hover p { color:#fff !important; }
.service-card h3 { color:var(--primary-blue); margin-bottom:8px; }
.service-card p { color:var(--text-light); }
.testimonial-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:25px; }
.testimonial-card { background:var(--accent-gray); padding:30px; border-left:6px solid var(--primary-teal); }
.testimonial-card h4 { color:var(--primary-blue); margin-bottom:10px; }
.testimonial-card p { color:var(--text-light); }
.cta-section { background:var(--primary-blue); color:#fff; padding:60px 5%; text-align:center; }
.cta-section h2 { font-size:2rem; }
.btn-cta {
    background:#fff; color:var(--primary-blue); padding:12px 30px; display:inline-flex;
    align-items:center; gap:10px; text-decoration:none; font-weight:700; margin-top:20px;
}
.btn-cta:hover { background:var(--primary-teal); color:#fff; }
.accred-box {
    display:grid; grid-template-columns:repeat(3,1fr); gap:15px;
    background:var(--accent-gray); padding:30px; text-align:center;
}
.accred-box div { padding:18px; background:#fff; border:1px solid #eee; }
.accred-box strong { color:var(--primary-blue); font-size:.9rem; }
.accred-box img { height:48px; width:auto; margin:0 auto 10px; object-fit:contain; }
.qcto-banner {
    display:flex; gap:35px; align-items:center; background:#fff; border:1px solid #eee;
    padding:30px; margin-bottom:35px;
}
.qcto-banner img { width:310px; max-width:36%; }
.qcto-banner p { color:var(--text-light); }
.info-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.info-box { border-left:5px solid var(--primary-teal); background:var(--accent-gray); padding:24px; }
.info-box h4 { color:var(--primary-blue); margin-bottom:8px; }
.info-box p, .info-box li { color:var(--text-light); }
.info-box ul { margin-left:18px; }
.two-col { display:flex; gap:50px; flex-wrap:wrap; align-items:center; }
.two-col > * { flex:1; min-width:300px; }
.image-shadow { width:100%; box-shadow:20px 20px 0 var(--primary-teal); }
.programme-detail { border:1px solid #eee; display:grid; grid-template-columns:330px 1fr; margin-bottom:30px; background:#fff; }
.programme-detail img { width:100%; height:100%; min-height:315px; object-fit:cover; }
.programme-content { padding:30px; }
.programme-content h3 { color:var(--primary-blue); font-size:1.45rem; margin-bottom:8px; }
.programme-content h4 { color:var(--primary-blue); margin:18px 0 8px; }
.programme-content p, .programme-content li { color:var(--text-light); }
.programme-content ul { margin:8px 0 0 20px; }
.programme-meta { display:flex; gap:8px; flex-wrap:wrap; margin:15px 0; }
.programme-meta span { background:var(--accent-gray); border-left:3px solid var(--primary-teal); padding:7px 10px; font-size:.82rem; font-weight:600; }
.event-wrap { display:grid; grid-template-columns:minmax(280px,420px) 1fr; gap:45px; align-items:center; }
.event-wrap img { width:100%; border:1px solid #ddd; }
.event-details h2 { color:var(--primary-blue); text-transform:uppercase; margin-bottom:15px; }
.price-row { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:25px 0; }
.price-row div { padding:16px; background:var(--accent-gray); border:1px solid #e4e8ed; }
.price-row small { display:block; color:var(--text-light); text-transform:uppercase; font-size:.68rem; }
.price-row strong { color:var(--primary-blue); }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:0; }
.gallery-grid figure { position:relative; height:280px; overflow:hidden; border:1px solid #fff; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:.4s; }
.gallery-grid figure:hover img { transform:scale(1.04); }
.gallery-grid figcaption { position:absolute; left:0; right:0; bottom:0; padding:35px 15px 12px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.8)); font-size:.85rem; }
.document-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.document-card { border:1px solid #eee; background:#fff; }
.document-card img { width:100%; height:420px; object-fit:cover; object-position:top; }
.document-card .card-body { padding:20px; }
.document-card code { display:block; background:var(--accent-gray); color:var(--primary-blue); padding:8px; margin-top:10px; font-size:.78rem; overflow-wrap:anywhere; }
.form-wrap { max-width:1000px; margin:0 auto; background:#fff; border:1px solid #eee; box-shadow:0 5px 25px rgba(0,0,0,.07); padding:45px; }
.form-section { margin-bottom:30px; }
.form-section h3 { color:var(--primary-blue); border-bottom:2px solid var(--accent-gray); padding-bottom:10px; margin-bottom:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-field.full { grid-column:1/-1; }
.form-field label { display:block; font-size:.85rem; font-weight:600; margin-bottom:8px; }
.form-field input, .form-field select, .form-field textarea {
    width:100%; padding:12px; border:1px solid #ddd; outline:none; background:#fff;
}
.form-field textarea { min-height:120px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:var(--primary-teal); }
.form-note { background:var(--accent-gray); padding:18px; border-left:5px solid var(--primary-teal); color:var(--text-light); font-size:.88rem; }
.alert-success, .alert-error { padding:14px; margin-bottom:20px; font-size:.9rem; }
.alert-success { background:#e9f8f0; color:#176b49; border-left:5px solid #2e9569; }
.alert-error { background:#fff0ef; color:#8f281f; border-left:5px solid #c9483b; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:35px; }
.contact-card { border:1px solid #eee; padding:30px; background:#fff; }
.contact-card h3 { color:var(--primary-blue); margin-bottom:20px; }
.contact-line { display:flex; gap:14px; margin-bottom:18px; align-items:flex-start; }
.contact-line i { color:var(--primary-teal); width:22px; margin-top:4px; }
.contact-line a { color:var(--primary-blue); text-decoration:none; }
footer { background:#183858; color:#fff; padding:70px 5% 0; }
.footer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:40px; padding-bottom:50px; }
.footer-col h4 { font-size:1.2rem; margin-bottom:25px; position:relative; padding-bottom:10px; }
.footer-col h4::after { content:''; position:absolute; left:0; bottom:0; width:40px; height:3px; background:var(--primary-teal); }
.footer-col p { font-size:.9rem; color:#cbd5e1; margin-bottom:15px; }
.footer-logo-box { background:#fff; display:inline-block; padding:10px 14px; margin-bottom:18px; }
.footer-logo-box img { height:78px; width:auto; object-fit:contain; }
.footer-links { list-style:none; }
.footer-links li { margin-bottom:12px; }
.footer-links a { color:#cbd5e1; text-decoration:none; font-size:.9rem; }
.footer-links a:hover { color:#fff; padding-left:5px; }
.footer-socials { display:flex; gap:10px; margin-top:20px; }
.footer-socials a { color:#fff; font-size:1.1rem; background:rgba(255,255,255,.1); width:38px; height:38px; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.footer-socials a:hover { background:var(--primary-teal); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:25px 5%; display:flex; justify-content:space-between; align-items:center; font-size:.85rem; color:#cbd5e1; flex-wrap:wrap; gap:15px; }
.sub-footer-links a { color:#cbd5e1; text-decoration:none; margin-left:20px; }
.whatsapp-float {
    position:fixed; right:20px; bottom:20px; z-index:1300; width:52px; height:52px;
    display:flex; align-items:center; justify-content:center; background:#25D366;
    color:#fff; text-decoration:none; font-size:1.45rem; box-shadow:0 5px 20px rgba(0,0,0,.2);
}
@media (max-width:1100px) {
    .nav-container { display:none; }
    .header-main { justify-content:center; }
    .mobile-controls { display:flex; }
    .accred-box { grid-template-columns:1fr 1fr; }
    .document-grid { grid-template-columns:1fr 1fr; }
    .hero-content h1 { font-size:2.1rem; }
}
@media (max-width:760px) {
    .top-bar .social-icons { display:none; }
    .top-bar { justify-content:center; }
    .top-bar .contact-info { flex-direction:column; gap:3px; text-align:center; }
    .top-bar .contact-info span:nth-child(2) { display:none; }
    .logo img { height:64px; }
    section { padding:60px 5%; }
    .page-hero { padding:80px 5%; }
    .page-hero h1 { font-size:2rem; }
    .hero { height:66vh; min-height:500px; }
    .hero-content h1 { font-size:1.8rem; }
    .hero-content p { font-size:.98rem; }
    .accred-box, .document-grid, .contact-grid, .form-grid, .price-row { grid-template-columns:1fr; }
    .programme-detail, .event-wrap { grid-template-columns:1fr; }
    .programme-detail img { height:270px; min-height:0; }
    .qcto-banner { display:block; }
    .qcto-banner img { max-width:100%; width:260px; margin:0 auto 20px; }
    .form-wrap { padding:25px 20px; }
    .footer-bottom { justify-content:center; text-align:center; }
    .sub-footer-links a { margin:0 8px; }
}


.public-image, .card-img, .gallery-grid img, .programme-detail img, .document-card img, .event-wrap img, .image-shadow, .slide img {
    image-rendering: auto;
}
@media (max-width:760px) {
    .sidebar { width:100vw; max-width:100vw; left:-100vw; padding:24px 20px 28px; }
    .sidebar-close { margin-bottom:18px; }
    .sidebar a, .sidebar-header { padding:16px 0; font-size:1rem; }
    .sidebar-brand { padding-bottom:18px; margin-bottom:10px; }
    .sidebar-brand img { height:88px; }
    .mobile-socials a { margin-left:0; }
}

/* Final presentation pass: consistent soft corners and a transparent footer logo. */
html body .card,
html body .contact-card,
html body .form-wrap,
html body .programme-detail,
html body .catalogue-item,
html body .industry-grid article,
html body .review-slide,
html body .moderation-card,
html body .info-box,
html body .event-wrap,
html body .document-card,
html body .accred-box,
html body .qcto-banner,
html body .gbc-app-card,
html body .gbc-consent-card {
    border-radius: 16px !important;
    overflow: hidden;
}

html body .hero-btn,
html body .btn-portal,
html body .btn-card-apply,
html body .btn-cta,
html body .form-submit,
html body .approve-btn,
html body .decline-btn,
html body button,
html body input,
html body select,
html body textarea,
html body .whatsapp-float,
html body .footer-socials a,
html body .social-icons a,
html body .mobile-socials a {
    border-radius: 10px !important;
}

html body .footer-logo-box {
    display: inline-flex !important;
    align-items: center !important;
    background: transparent !important;
    padding: 0 !important;
    margin-bottom: 18px !important;
}

html body .footer-logo-box img {
    display: block !important;
    background: transparent !important;
    height: 78px !important;
    width: auto !important;
    object-fit: contain !important;
}

html body header {
    position: sticky;
    top: 0;
    z-index: 1200;
    background: #fff;
}

html body .tdm-alert {
    display: block;
    margin: 18px 0 0;
    padding: 14px 16px;
    border-radius: 10px !important;
    line-height: 1.55;
}

html body .tdm-alert-success {
    background: #ecfdf5;
    color: #065f46;
    border: 1px solid #bbf7d0;
}

html body .tdm-alert-error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}


.logo,
.sidebar-brand,
.footer-logo-box { display:flex; align-items:center; }

.top-bar .social-icons a,
.mobile-socials a {
    text-decoration:none;
}

.sidebar a.btn-portal {
    width:100%;
    margin-top:24px;
    min-height:48px;
    justify-content:center;
    font-size:.95rem;
}

.sidebar-close i { font-size:1.7rem; }

@media (max-width:760px) {
    .logo img { height:68px; }
    .sidebar-brand img { height:86px; }
}


/* ===== WHITE-PAGE FIX / MOBILE MENU HARDENING ===== */
.menu-toggle {
    border: 0;
    background: transparent;
    padding: 0;
}

.sidebar-login {
    margin-left: 0 !important;
    margin-top: 20px !important;
    justify-content: center !important;
    border-bottom: 0 !important;
}

@media (max-width:1100px) {
    .sidebar {
        left: -100vw !important;
        width: 100vw !important;
        max-width: none !important;
        height: 100vh !important;
        min-height: 100vh !important;
        padding: 24px 24px 40px !important;
        overflow-y: auto !important;
    }

    .sidebar.active {
        left: 0 !important;
    }

    .sidebar-brand {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        padding-bottom: 20px !important;
    }

    .sidebar-brand img {
        width: auto !important;
        height: 84px !important;
        max-width: 88vw !important;
        object-fit: contain !important;
    }
}

@media (max-width:760px) {
    .logo img {
        height: 66px !important;
        max-width: 76vw !important;
        object-fit: contain !important;
    }

    .mobile-controls {
        display: flex !important;
    }
}


/* =========================================================
   FINAL RESPONSIVE / HERO / GALLERY UPDATE
   ========================================================= */

/* ----- Desktop must never display the mobile sidebar ----- */
@media (min-width:1101px) {
    .sidebar,
    .sidebar-overlay,
    .mobile-controls {
        display:none !important;
    }
}

/* ----- Mobile sidebar: transform is faster and smoother ----- */
@media (max-width:1100px) {
    .sidebar {
        display:block !important;
        position:fixed !important;
        top:0 !important;
        left:0 !important;
        right:auto !important;
        width:100vw !important;
        max-width:100vw !important;
        height:100dvh !important;
        min-height:100vh !important;
        padding:22px 22px 36px !important;
        background:#fff !important;
        transform:translate3d(-100%,0,0) !important;
        transition:transform .18s cubic-bezier(.2,.8,.2,1) !important;
        will-change:transform;
        z-index:2000 !important;
        overflow-y:auto !important;
        overscroll-behavior:contain;
        box-shadow:none !important;
    }

    .sidebar.active {
        transform:translate3d(0,0,0) !important;
    }

    .sidebar-overlay {
        display:block !important;
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .16s ease, visibility .16s ease !important;
    }

    .sidebar-overlay.active {
        opacity:1;
        visibility:visible;
        pointer-events:auto;
    }

    .sidebar-brand {
        display:flex !important;
        justify-content:center !important;
        align-items:center !important;
        padding:0 8px 20px !important;
        margin:0 0 8px !important;
    }

    .sidebar-brand img {
        height:82px !important;
        width:auto !important;
        max-width:88vw !important;
        object-fit:contain !important;
    }

    .sidebar-close {
        margin:0 4px 8px !important;
    }

    .sidebar > a:not(.btn-portal),
    .sidebar-item {
        margin-left:10px !important;
        margin-right:10px !important;
    }

    .sidebar .btn-portal,
    .sidebar-login {
        width:calc(100% - 36px) !important;
        margin:26px 18px 34px !important;
        padding:14px 18px !important;
        min-height:50px !important;
        justify-content:center !important;
        text-align:center !important;
        border-bottom:0 !important;
    }
}

/* ----- Homepage hero: preserve the full photo ----- */
.hero {
    height:min(74vh,760px) !important;
    min-height:560px !important;
    background:#142c47 !important;
}

.slide {
    isolation:isolate;
    overflow:hidden;
    transition:opacity 1.25s ease-in-out !important;
}

.slide::before {
    content:"";
    position:absolute;
    inset:-28px;
    background-image:var(--slide-image);
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    filter:blur(18px) brightness(.33) saturate(.95);
    transform:scale(1.045);
    z-index:-4;
}

.slide::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        90deg,
        rgba(16,39,63,.72),
        rgba(16,39,63,.45),
        rgba(16,39,63,.72)
    );
    z-index:-2;
}

.slide img.hero-image {
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
    z-index:-3 !important;
    filter:brightness(.70) saturate(1.04) !important;
    transform:none !important;
}

.hero-content {
    position:relative;
    z-index:2;
}

/* ----- Inner page hero: no forced crop/zoom ----- */
.page-hero {
    background-size:contain !important;
    background-repeat:no-repeat !important;
    background-position:center !important;
    background-color:#173858 !important;
}

/* ----- Gallery: display complete images, no cropping ----- */
.gallery-grid-hd {
    grid-template-columns:repeat(auto-fit,minmax(285px,1fr)) !important;
    gap:18px !important;
}

.gallery-grid-hd figure,
.gallery-documents figure {
    height:auto !important;
    min-height:0 !important;
    background:#f4f7fa !important;
    border:1px solid #e1e6eb !important;
    overflow:hidden !important;
}

.gallery-grid-hd figure a,
.gallery-documents figure a {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    background:#eef2f5;
}

.gallery-grid-hd img {
    width:100% !important;
    height:340px !important;
    object-fit:contain !important;
    object-position:center !important;
    background:#eef2f5 !important;
    transform:none !important;
}

.gallery-documents {
    grid-template-columns:repeat(3,minmax(250px,1fr)) !important;
    gap:18px !important;
}

.gallery-documents img {
    width:100% !important;
    height:520px !important;
    object-fit:contain !important;
    background:#fff !important;
}

.gallery-grid-hd figcaption,
.gallery-documents figcaption {
    position:static !important;
    padding:12px 14px !important;
    background:#fff !important;
    color:var(--primary-blue) !important;
    font-weight:600 !important;
    text-align:center !important;
}

@media (max-width:760px) {
    .hero {
        height:68vh !important;
        min-height:520px !important;
    }

    .hero-content {
        padding-left:8px;
        padding-right:8px;
    }

    .gallery-grid-hd,
    .gallery-documents {
        grid-template-columns:1fr !important;
    }

    .gallery-grid-hd img {
        height:310px !important;
    }

    .gallery-documents img {
        height:440px !important;
    }

    .page-hero {
        min-height:300px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
}


/* ============================================================
   SERIOUS RESPONSIVE FINAL PATCH
   ============================================================ */

.hero {
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    height: clamp(560px, 72vh, 760px) !important;
    min-height: 560px !important;
    overflow: hidden !important;
    background: #102d49 !important;
}

.slide {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    padding: 0 5% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: hidden !important;
    isolation: isolate !important;
    transition: opacity 1.15s ease-in-out !important;
}

.slide::before {
    display: none !important;
    content: none !important;
}

.slide::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(
        90deg,
        rgba(17,43,69,.70) 0%,
        rgba(17,43,69,.46) 50%,
        rgba(17,43,69,.70) 100%
    ) !important;
    z-index: -1 !important;
}

.hero-picture {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: -2 !important;
}

.slide img.hero-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
    filter: none !important;
    transform: none !important;
}

.hero-content {
    width: min(920px, 92vw) !important;
    max-width: 920px !important;
    margin: 0 auto !important;
    position: relative !important;
    z-index: 2 !important;
    color: #fff !important;
}

.hero-content h1 {
    font-size: clamp(2.4rem, 4vw, 4rem) !important;
    line-height: 1.12 !important;
    margin: 18px 0 !important;
    letter-spacing: .02em !important;
}

.hero-content p {
    max-width: 800px !important;
    margin: 0 auto !important;
    font-size: clamp(1rem, 1.4vw, 1.15rem) !important;
    line-height: 1.7 !important;
}

.hero-btns {
    margin-top: 28px !important;
}

.page-hero {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    min-height: 360px !important;
}

.top-bar .social-icons,
.mobile-socials,
.footer-socials {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
}

@media (max-width: 1100px) {
    .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        left: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        min-height: 100vh !important;
        transform: translate3d(-100%,0,0) !important;
        transition: transform .18s cubic-bezier(.2,.8,.2,1) !important;
        will-change: transform;
        overflow-y: auto !important;
    }

    .sidebar.active {
        transform: translate3d(0,0,0) !important;
    }

    .sidebar .btn-portal,
    .sidebar-login {
        width: calc(100% - 40px) !important;
        margin: 26px 20px 34px !important;
        padding: 14px 18px !important;
    }
}

@media (min-width: 1101px) {
    .sidebar,
    .sidebar-overlay,
    .mobile-controls {
        display: none !important;
    }
}

@media (max-width: 820px) {
    body {
        overflow-x: hidden !important;
    }

    section {
        padding-left: 5% !important;
        padding-right: 5% !important;
    }

    .hero {
        height: 70svh !important;
        min-height: 580px !important;
        max-height: 720px !important;
    }

    .slide {
        padding: 34px 6% !important;
    }

    .hero-content {
        width: 100% !important;
        max-width: 620px !important;
    }

    .hero-content h1 {
        font-size: clamp(2rem, 8vw, 2.8rem) !important;
        line-height: 1.12 !important;
    }

    .hero-content p {
        font-size: .98rem !important;
        line-height: 1.6 !important;
    }

    .hero-btns {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        width: min(100%, 340px) !important;
        margin: 24px auto 0 !important;
        gap: 10px !important;
    }

    .hero-btns .hero-btn {
        width: 100% !important;
        text-align: center !important;
    }

    .card-grid,
    .services-grid,
    .testimonial-grid,
    .info-grid,
    .accred-box,
    .document-grid,
    .gallery-grid,
    .gallery-grid-hd,
    .gallery-documents,
    .contact-grid,
    .form-grid,
    .price-row,
    .footer-grid {
        grid-template-columns: 1fr !important;
    }

    .two-col,
    .event-wrap,
    .programme-detail {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }

    .two-col > *,
    .event-wrap > *,
    .programme-detail > * {
        min-width: 0 !important;
        width: 100% !important;
    }

    .home-offer-grid {
        flex-direction: column !important;
        gap: 18px !important;
    }

    .home-offer-grid > div {
        width: 100% !important;
        min-width: 0 !important;
        flex: none !important;
    }

    footer {
        padding-top: 50px !important;
    }

    .footer-grid {
        display: grid !important;
        gap: 34px !important;
    }

    .footer-col {
        width: 100% !important;
        min-width: 0 !important;
    }

    .footer-bottom {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        text-align: left !important;
        gap: 10px !important;
    }

    .sub-footer-links a {
        margin-left: 0 !important;
        margin-right: 14px !important;
    }

    .programme-detail img,
    .document-card img {
        width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .qcto-banner {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }

    .qcto-banner img {
        max-width: 260px !important;
        width: 100% !important;
    }
}

@media (max-width: 520px) {
    .hero {
        min-height: 600px !important;
    }

    .hero-content h1 {
        font-size: 2rem !important;
    }

    .hero-tag {
        font-size: .72rem !important;
        line-height: 1.4 !important;
    }

    .page-hero {
        min-height: 320px !important;
        padding-top: 72px !important;
        padding-bottom: 72px !important;
    }
}

/* Programme catalogue, industry forms and moderated review corner */
.programme-catalogue,.industry-grid,.moderation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.catalogue-item{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid #dbe4ec;border-left:5px solid var(--primary-teal);padding:22px;box-shadow:0 5px 18px rgba(22,50,78,.06)}.catalogue-item h3{font-size:1rem;color:var(--primary-blue);margin:6px 0}.catalogue-item p{font-size:.85rem;color:var(--text-light)}.catalogue-type{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--primary-teal);font-weight:700}.industry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.industry-grid article{background:#fff;padding:30px;border-top:5px solid var(--primary-teal);box-shadow:0 8px 25px rgba(22,50,78,.08)}.industry-grid article>i{font-size:2rem;color:var(--primary-teal);margin-bottom:15px}.industry-grid h3{color:var(--primary-blue)}.hp-field{position:absolute!important;left:-9999px!important}.consent-row{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;color:var(--text-light);margin-top:20px}.form-submit{width:100%;max-width:400px;justify-content:center;border:0;cursor:pointer;margin:30px auto 0}.review-carousel{max-width:900px;margin:auto;min-height:330px}.review-slide{display:none;grid-template-columns:220px 1fr;gap:35px;align-items:center;background:#fff;padding:30px;box-shadow:0 12px 35px rgba(22,50,78,.12);animation:reviewFade .6s ease}.review-slide.active{display:grid}.review-slide img,.moderation-card img{width:100%;height:240px;object-fit:cover}.review-slide blockquote,.moderation-card blockquote{font-size:1.05rem;line-height:1.7;margin:12px 0;color:var(--text)}.review-stars{color:#f5a623;font-size:1.3rem;letter-spacing:2px}.empty-state{text-align:center;max-width:700px;margin:auto}.moderation-grid{grid-template-columns:1fr}.moderation-card{display:grid;grid-template-columns:220px 1fr;gap:24px;background:#fff;border:1px solid #dbe4ec;padding:20px}.status-badge{display:inline-block;padding:5px 10px;border-radius:20px;font-size:.75rem;font-weight:700}.status-pending{background:#fff3cd;color:#745500}.status-approved{background:#d9f5e6;color:#17643b}.status-declined{background:#f8d7da;color:#842029}.moderation-actions{display:flex;gap:10px;margin-top:15px}.moderation-actions button{border:0;color:#fff;padding:10px 18px;cursor:pointer}.approve-btn{background:#198754}.decline-btn{background:#b02a37}.moderation-logout{text-align:right;margin-bottom:20px}@keyframes reviewFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.programme-catalogue,.industry-grid{grid-template-columns:1fr}.review-slide,.moderation-card{grid-template-columns:1fr}.review-slide img,.moderation-card img{height:auto;max-height:380px}.catalogue-item{align-items:flex-start;flex-direction:column}}
