:root {
    --dsn-navy: #012A5A;
    --dsn-deep: #022B64;
    --dsn-blue: #0B5CBA;
    --dsn-teal: #00A6A6;
    --dsn-aqua: #37D6E4;
    --dsn-green: #43C97E;
    --dsn-soft: #F7F9FA;
    --dsn-ink: #071B44;
    --dsn-muted: #5E6F8F;
    --dsn-line: rgba(1, 42, 90, .13);
    --dsn-card: #FFFFFF;
    --dsn-shadow: 0 20px 55px rgba(1, 42, 90, .13);
    --dsn-soft-shadow: 0 10px 30px rgba(1, 42, 90, .1);
    --dsn-radius-lg: 28px;
    --dsn-radius-md: 20px;
    --dsn-radius-sm: 14px;
    --dsn-max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--dsn-soft);
    color: var(--dsn-ink);
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
h1, h2, h3, h4 { margin: 0; color: var(--dsn-navy); line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: clamp(2.7rem, 6vw, 5.7rem); font-weight: 900; }
h2 { font-size: clamp(1.9rem, 3vw, 3rem); font-weight: 850; }
h3 { font-size: 1.1rem; font-weight: 800; }
svg { width: 1em; height: 1em; stroke: currentColor; fill: none; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; }
.dsnc-container { width: min(calc(100% - 42px), var(--dsn-max)); margin-inline: auto; }
.screen-reader-text { position: absolute; left: -999em; width: 1px; height: 1px; overflow: hidden; }
.screen-reader-text:focus { left: 1rem; top: 1rem; width: auto; height: auto; padding: .75rem 1rem; z-index: 9999; background: #fff; color: var(--dsn-navy); border-radius: 10px; box-shadow: var(--dsn-shadow); }

/* Header */
.dsnc-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: #FFFFFF;
    border-bottom: 1px solid #E8F0F7;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: box-shadow .25s ease, transform .25s ease;
}
.dsnc-site-header.is-scrolled { box-shadow: 0 6px 18px rgba(1, 42, 90, .045); }
.admin-bar .dsnc-site-header { top: 32px; }
.dsnc-header-inner { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.dsnc-brand { display: flex; align-items: center; flex: 0 0 auto; }
.dsnc-brand img { width: 152px; max-height: 56px; object-fit: contain; }
.dsnc-brand .custom-logo-link img { width: 152px; max-height: 56px; object-fit: contain; }
.dsnc-primary-nav { display: flex; align-items: center; justify-content: flex-end; gap: 1.55rem; flex: 1; }
.dsnc-menu { display: flex; align-items: center; justify-content: center; gap: 1.72rem; margin: 0; padding: 0; list-style: none; }
.dsnc-menu a { position: relative; display: inline-flex; align-items: center; min-height: 42px; color: var(--dsn-ink); font-size: .88rem; font-weight: 800; }
.dsnc-menu a::after { content: ""; position: absolute; left: 0; bottom: 3px; width: 0; height: 3px; border-radius: 999px; background: linear-gradient(90deg,var(--dsn-teal),var(--dsn-green)); transition: width .2s ease; }
.dsnc-menu a:hover::after, .dsnc-menu .current-menu-item > a::after { width: 100%; }
.dsnc-header-cta, .dsnc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    border-radius: 12px;
    padding: 1rem 1.35rem;
    font-weight: 850;
    line-height: 1;
    border: 1px solid transparent;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
    white-space: nowrap;
}
.dsnc-header-cta { background: linear-gradient(135deg, var(--dsn-deep), #001C47); color: #fff; box-shadow: 0 10px 22px rgba(1,42,90,.18); min-height: 46px; padding: .9rem 1.32rem; }
.dsnc-header-cta:hover, .dsnc-btn:hover { transform: translateY(-2px); }
.dsnc-nav-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--dsn-line); background: #fff; border-radius: 12px; padding: 10px; }
.dsnc-nav-toggle span { display: block; height: 2px; margin: 5px 0; background: var(--dsn-navy); border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }

/* Hero */
.dsnc-main { overflow: hidden; background: #fff; }
.dsnc-hero { position: relative; isolation: isolate; min-height: 590px; padding: 76px 0 104px; background: radial-gradient(circle at 82% 32%, rgba(55,214,228,.26), transparent 30%), linear-gradient(110deg, #fff 0%, #F4FBFF 48%, #DDF5FF 100%); }
.dsnc-network-bg { position: absolute; inset: 0; z-index: -2; opacity: .7; background-image: radial-gradient(circle at 8% 20%, rgba(11,92,186,.16) 0 2px, transparent 2.7px), radial-gradient(circle at 68% 26%, rgba(0,166,166,.16) 0 2px, transparent 2.7px), linear-gradient(30deg, transparent 0 45%, rgba(11,92,186,.08) 45% 45.4%, transparent 45.4%), linear-gradient(150deg, transparent 0 53%, rgba(0,166,166,.08) 53% 53.3%, transparent 53.3%); background-size: 120px 120px, 150px 150px, 240px 240px, 280px 280px; }
.dsnc-hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, 1.08fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.dsnc-hero-copy { max-width: 650px; padding: 26px 0 30px; }
.dsnc-eyebrow { color: var(--dsn-teal); text-transform: uppercase; letter-spacing: .22em; font-size: .87rem; font-weight: 900; margin-bottom: 1rem; }
.dsnc-hero h1 span { color: var(--dsn-teal); }
.dsnc-accent-line, .dsnc-section-heading span { display: block; width: 78px; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--dsn-teal), var(--dsn-green)); margin: 1.15rem 0 1.35rem; }
.dsnc-hero p:not(.dsnc-eyebrow) { max-width: 540px; color: #20385F; font-size: clamp(1rem, 1.45vw, 1.18rem); font-weight: 520; }
.dsnc-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.8rem; }
.dsnc-btn-primary { background: linear-gradient(135deg, var(--dsn-deep), #004BAA); color: #fff; box-shadow: 0 14px 32px rgba(1,42,90,.23); }
.dsnc-btn-outline { background: rgba(255,255,255,.7); color: var(--dsn-navy); border-color: rgba(1,42,90,.32); }
.dsnc-btn-outline:hover { background: #fff; border-color: var(--dsn-teal); }
.dsnc-hero-visual { position: relative; border-radius: 0 0 0 95px; overflow: hidden; min-height: 410px; box-shadow: var(--dsn-shadow); transform: translateX(28px); }
.dsnc-hero-visual::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.12), transparent 36%); z-index: 1; pointer-events: none; }
.dsnc-hero-visual img { width: 100%; height: 100%; min-height: 410px; object-fit: cover; object-position: center; }
.dsnc-wave { position: absolute; left: -5%; right: -5%; bottom: -56px; height: 145px; z-index: -1; border-radius: 60% 65% 0 0 / 65% 70% 0 0; transform: rotate(-1deg); }
.dsnc-wave-one { background: linear-gradient(90deg, var(--dsn-deep), var(--dsn-blue) 45%, var(--dsn-teal) 82%); opacity: .95; bottom: -86px; }
.dsnc-wave-two { height: 112px; bottom: -42px; background: linear-gradient(90deg, transparent 0 8%, rgba(255,255,255,.98) 9% 12%, rgba(55,214,228,.88) 13%, rgba(0,166,166,.92) 68%, rgba(67,201,126,.92)); opacity: .95; }

/* Pillars */
.dsnc-pillars { position: relative; margin-top: -72px; z-index: 4; }
.dsnc-pillar-card { display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(255,255,255,.94); border: 1px solid rgba(1,42,90,.11); box-shadow: var(--dsn-shadow); border-radius: 22px; overflow: hidden; backdrop-filter: blur(16px); }
.dsnc-pillar-card article { display: grid; grid-template-columns: 56px 1fr; gap: 1rem; align-items: center; padding: 1.25rem 1.4rem; border-right: 1px solid rgba(1,42,90,.11); }
.dsnc-pillar-card article:last-child { border-right: 0; }
.dsnc-pillar-card svg { font-size: 2.9rem; color: var(--dsn-blue); }
.dsnc-pillar-card article:nth-child(3) svg { color: var(--dsn-teal); }
.dsnc-pillar-card article:nth-child(4) svg { color: var(--dsn-green); }
.dsnc-pillar-card h2 { font-size: 1rem; letter-spacing: -.02em; margin-bottom: .2rem; }
.dsnc-pillar-card p { margin: 0; font-size: .88rem; color: var(--dsn-muted); font-weight: 650; line-height: 1.35; }

/* Sections */
.dsnc-section { padding: 74px 0; }
.dsnc-section-heading { margin-bottom: 1.9rem; }
.dsnc-center { text-align: center; }
.dsnc-center span { margin-inline: auto; }
.dsnc-offer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.45rem; }
.dsnc-offer-card { background: #fff; border: 1px solid rgba(1,42,90,.12); box-shadow: var(--dsn-soft-shadow); border-radius: 22px; padding: 2rem 1.5rem; text-align: center; min-height: 268px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.dsnc-offer-card:hover { transform: translateY(-7px); box-shadow: var(--dsn-shadow); border-color: rgba(0,166,166,.35); }
.dsnc-icon-bubble { width: 78px; height: 78px; display: grid; place-items: center; border-radius: 999px; margin-bottom: 1.1rem; color: var(--dsn-blue); background: linear-gradient(135deg, rgba(11,92,186,.12), rgba(55,214,228,.15)); }
.dsnc-icon-bubble svg { font-size: 2.4rem; }
.dsnc-offer-card:nth-child(2) .dsnc-icon-bubble { color: var(--dsn-teal); background: rgba(55,214,228,.18); }
.dsnc-offer-card:nth-child(3) .dsnc-icon-bubble { color: var(--dsn-teal); background: rgba(0,166,166,.13); }
.dsnc-offer-card:nth-child(4) .dsnc-icon-bubble { color: var(--dsn-green); background: rgba(67,201,126,.15); }
.dsnc-offer-card h3 { margin-bottom: .85rem; }
.dsnc-offer-card p { color: var(--dsn-muted); font-weight: 560; font-size: .96rem; }
.dsnc-offer-card a, .dsnc-row-heading a, .dsnc-archive-card a { margin-top: auto; color: var(--dsn-blue); font-weight: 850; }

/* Why */
.dsnc-why { padding: 78px 0; background: linear-gradient(115deg, rgba(238,249,255,.95), rgba(247,249,250,.98)); border-top: 1px solid rgba(1,42,90,.07); border-bottom: 1px solid rgba(1,42,90,.07); }
.dsnc-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.dsnc-benefit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.45rem 1.25rem; }
.dsnc-benefit { display: grid; grid-template-columns: 52px 1fr; gap: 1rem; align-items: start; }
.dsnc-benefit > div:first-child { width: 52px; height: 52px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--dsn-blue), var(--dsn-teal)); border-radius: 999px; box-shadow: 0 14px 26px rgba(0,166,166,.23); }
.dsnc-benefit:nth-child(2) > div:first-child { background: linear-gradient(135deg, var(--dsn-teal), #0EB6A8); }
.dsnc-benefit:nth-child(4) > div:first-child { background: linear-gradient(135deg, var(--dsn-green), #31A35C); }
.dsnc-benefit svg { font-size: 1.7rem; }
.dsnc-benefit h3 { margin-bottom: .35rem; }
.dsnc-benefit p { color: var(--dsn-muted); margin: 0; font-weight: 560; font-size: .94rem; }
.dsnc-campus-card { position: relative; min-height: 310px; border-radius: 28px; overflow: hidden; box-shadow: var(--dsn-shadow); }
.dsnc-campus-card img { width: 100%; height: 100%; min-height: 310px; object-fit: cover; }
.dsnc-quote-card { position: absolute; right: 0; top: 0; bottom: 0; width: 35%; min-width: 218px; background: linear-gradient(180deg, var(--dsn-deep), #001A45); color: #fff; padding: 2.2rem 1.5rem; display: flex; flex-direction: column; justify-content: center; }
.dsnc-quote-card span { display: block; color: rgba(255,255,255,.9); font-size: 3rem; line-height: .7; margin-bottom: .6rem; }
.dsnc-quote-card p { color: #fff; font-size: 1.01rem; font-weight: 650; }
.dsnc-quote-card i { display: block; width: 62px; height: 5px; border-radius: 999px; background: var(--dsn-teal); margin-top: .8rem; }

/* Programmes */
.dsnc-programmes { padding-top: 66px; }
.dsnc-row-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.65rem; }
.dsnc-row-heading .dsnc-section-heading { margin-bottom: 0; }
.dsnc-programme-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.55rem; }
.dsnc-programme-card { display: grid; grid-template-columns: 135px 1fr; gap: 1rem; background: #fff; border: 1px solid rgba(1,42,90,.12); border-radius: 18px; box-shadow: var(--dsn-soft-shadow); padding: .85rem; align-items: center; min-height: 150px; }
.dsnc-programme-card > img { width: 135px; height: 120px; border-radius: 13px; object-fit: cover; }
.dsnc-label { margin: 0 0 .25rem; color: var(--dsn-teal); text-transform: uppercase; letter-spacing: .08em; font-size: .71rem; font-weight: 900; }
.dsnc-programme-card h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.dsnc-programme-card p:not(.dsnc-label) { margin-bottom: .6rem; color: var(--dsn-muted); font-size: .88rem; line-height: 1.35; }
.dsnc-programme-card ul { display: flex; gap: 1.2rem; align-items: center; margin: 0; padding: 0; list-style: none; color: var(--dsn-ink); font-size: .82rem; font-weight: 700; }

/* Stats and Insights */
.dsnc-stats { background: linear-gradient(100deg, #004AAC, var(--dsn-teal) 62%, #00A978); color: #fff; }
.dsnc-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.dsnc-stats article { display: grid; grid-template-columns: 76px 1fr; gap: 1.1rem; align-items: center; padding: 1.9rem 2.4rem; min-height: 142px; border-right: 1px solid rgba(255,255,255,.55); }
.dsnc-stats article:last-child { border-right: 0; }
.dsnc-stats svg { font-size: 4.2rem; color: #fff; opacity: .95; }
.dsnc-stats strong { display: block; color: #fff; font-size: 3rem; font-weight: 900; line-height: .86; }
.dsnc-stats h2 { color: #fff; font-size: 1.6rem; letter-spacing: -.04em; }
.dsnc-stats p { color: rgba(255,255,255,.9); margin: .15rem 0 0; font-size: .92rem; font-weight: 650; line-height: 1.35; }
.dsnc-insights { background: #fff; }
.dsnc-insights-grid { display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding: 2.2rem; border-radius: 28px; background: linear-gradient(135deg, rgba(1,42,90,.05), rgba(55,214,228,.1)); border: 1px solid rgba(1,42,90,.09); }
.dsnc-insights h2 { max-width: 860px; margin-bottom: 1rem; }
.dsnc-insights p:not(.dsnc-eyebrow) { max-width: 760px; color: var(--dsn-muted); font-weight: 560; }

/* Footer */
.dsnc-footer { position: relative; background: radial-gradient(circle at 88% 20%, rgba(0,166,166,.25), transparent 32%), linear-gradient(140deg, #001836, var(--dsn-deep)); color: rgba(255,255,255,.86); padding: 74px 0 24px; }
.dsnc-footer-grid { display: grid; grid-template-columns: 1.25fr .8fr .95fr .8fr 1.15fr; gap: 2.4rem; }
.dsnc-footer h3 { color: #fff; font-size: 1rem; margin-bottom: 1rem; letter-spacing: -.02em; }
.dsnc-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.dsnc-footer a { color: rgba(255,255,255,.84); }
.dsnc-footer a:hover { color: #fff; }
.dsnc-footer-brand img { width: 185px; border-radius: 12px; margin-bottom: .75rem; }
.dsnc-footer-brand p { max-width: 260px; font-size: .94rem; }
.dsnc-footer-tagline { color: #fff; font-weight: 900; margin-bottom: .25rem !important; }
.dsnc-socials { display: flex; gap: .55rem; margin-top: 1rem; }
.dsnc-socials a { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); font-weight: 800; }
.dsnc-contact-card p { display: grid; grid-template-columns: 24px 1fr; gap: .65rem; margin-bottom: .7rem; font-size: .94rem; }
.dsnc-footer-bottom { margin-top: 3.1rem; padding-top: 1.1rem; border-top: 1px solid rgba(255,255,255,.16); display: flex; justify-content: space-between; gap: 1rem; align-items: center; font-size: .84rem; }
.dsnc-footer-bottom p { margin: 0; }

/* Content pages */
.dsnc-content-page { background: #fff; }
.dsnc-page-hero { padding: 84px 0; background-image: linear-gradient(115deg, rgba(255,255,255,.9), rgba(231,248,255,.94)), url('../images/dsn-wide-banner.png'); background-size: cover; background-position: center; border-bottom: 1px solid rgba(1,42,90,.08); }
.dsnc-page-hero h1 { max-width: 920px; }
.dsnc-page-hero p:not(.dsnc-eyebrow) { max-width: 700px; color: #20385F; font-size: 1.1rem; font-weight: 560; }
.dsnc-entry-content { padding: 70px 0; max-width: 900px; }
.dsnc-entry-content > * { max-width: 820px; margin-left: auto; margin-right: auto; }
.dsnc-entry-content .alignwide { max-width: 1120px; }
.dsnc-entry-content .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); }
.dsnc-featured-image { margin-bottom: 2rem; border-radius: 24px; overflow: hidden; box-shadow: var(--dsn-soft-shadow); }
.dsnc-post-list { padding: 70px 0; display: grid; gap: 1.25rem; }
.dsnc-archive-card { display: grid; grid-template-columns: 260px 1fr; gap: 1.5rem; background: #fff; border: 1px solid rgba(1,42,90,.12); border-radius: 22px; padding: 1rem; box-shadow: var(--dsn-soft-shadow); }
.dsnc-archive-thumb img { width: 260px; height: 180px; object-fit: cover; border-radius: 16px; }
.dsnc-archive-card h2 { font-size: 1.65rem; margin-bottom: .5rem; }
.dsnc-empty-state { text-align: center; padding: 5rem 1rem; background: #fff; border-radius: 24px; box-shadow: var(--dsn-soft-shadow); }
.search-form { display: flex; gap: .65rem; margin-top: 1.2rem; max-width: 560px; }
.search-form label { flex: 1; }
.search-field { width: 100%; min-height: 48px; border: 1px solid rgba(1,42,90,.2); border-radius: 12px; padding: 0 1rem; font: inherit; }
.search-submit { min-height: 48px; border: 0; border-radius: 12px; background: var(--dsn-deep); color: #fff; padding: 0 1.2rem; font-weight: 850; }
.pagination .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; }
.pagination a, .pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 .75rem; border-radius: 10px; border: 1px solid rgba(1,42,90,.16); color: var(--dsn-navy); font-weight: 800; }
.pagination .current { background: var(--dsn-navy); color: #fff; }

/* Seeded content pages */
.dsnc-entry-content h2 { margin-top: 1.35rem; margin-bottom: .85rem; }
.dsnc-entry-content p { color: #263D62; font-size: 1.05rem; font-weight: 520; }
.dsnc-entry-content ul { color: #263D62; font-weight: 560; }
.dsnc-page-grid { max-width: 1120px !important; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr); gap: 1.6rem; align-items: stretch; margin-top: 1.5rem; margin-bottom: 1.7rem; }
.dsnc-page-grid.dsnc-three { grid-template-columns: repeat(3, 1fr); }
.dsnc-content-card { background: #fff; border: 1px solid rgba(1,42,90,.12); border-radius: 22px; box-shadow: var(--dsn-soft-shadow); padding: 1.55rem; }
.dsnc-content-card h3 { margin-bottom: .65rem; color: var(--dsn-navy); }
.dsnc-content-card ul, .dsnc-syllabus-list { padding-left: 1.15rem; margin-top: .75rem; }
.dsnc-content-card li, .dsnc-syllabus-list li { margin-bottom: .45rem; }
.dsnc-content-cta { max-width: 1120px !important; margin-top: 2rem; padding: 2rem; border-radius: 26px; background: linear-gradient(135deg, rgba(1,42,90,.07), rgba(55,214,228,.13)); border: 1px solid rgba(1,42,90,.1); }
.dsnc-content-cta h2 { margin-top: 0; }
.dsnc-contact-panel { margin-top: 1.2rem; padding: 1.35rem; border-left: 5px solid var(--dsn-teal); background: #F5FBFF; border-radius: 0 18px 18px 0; }
.dsnc-contact-panel p { margin-bottom: .55rem; }
.dsnc-entry-content .dsnc-btn { margin-top: .5rem; }

/* Responsive */
@media (max-width: 1120px) {
    .dsnc-menu { gap: 1rem; }
    .dsnc-menu a { font-size: .86rem; }
    .dsnc-hero-grid { grid-template-columns: 1fr 1fr; }
    .dsnc-offer-grid { grid-template-columns: repeat(2, 1fr); }
    .dsnc-programme-grid { grid-template-columns: 1fr; }
    .dsnc-footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
}
@media (max-width: 940px) {
    .admin-bar .dsnc-site-header { top: 46px; }
    .dsnc-nav-toggle { display: block; }
    .dsnc-primary-nav { position: fixed; inset: 86px 0 auto 0; max-height: calc(100vh - 86px); overflow: auto; transform: translateY(-130%); transition: transform .25s ease; background: rgba(255,255,255,.98); display: grid; justify-content: stretch; padding: 1.4rem 1.5rem 2rem; box-shadow: var(--dsn-shadow); border-bottom: 1px solid rgba(1,42,90,.1); }
    .dsnc-primary-nav.is-open { transform: translateY(0); }
    .dsnc-menu { display: grid; gap: .35rem; }
    .dsnc-menu a { min-height: 48px; }
    .dsnc-header-cta { width: 100%; margin-top: .75rem; }
    .dsnc-hero { padding-top: 56px; }
    .dsnc-hero-grid, .dsnc-why-grid, .dsnc-insights-grid { grid-template-columns: 1fr; }
    .dsnc-hero-visual { transform: none; border-radius: 32px; min-height: 320px; }
    .dsnc-hero-visual img { min-height: 320px; }
    .dsnc-pillar-card { grid-template-columns: repeat(2, 1fr); }
    .dsnc-pillar-card article:nth-child(2) { border-right: 0; }
    .dsnc-benefit-grid { grid-template-columns: 1fr; }
    .dsnc-stats-grid { grid-template-columns: 1fr; }
    .dsnc-stats article { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.35); }
    .dsnc-stats article:last-child { border-bottom: 0; }
    .dsnc-footer-grid { grid-template-columns: 1fr 1fr; }
    .dsnc-footer-bottom { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 700px) {
    .dsnc-container { width: min(calc(100% - 30px), var(--dsn-max)); }
    .dsnc-header-inner { min-height: 76px; }
    .dsnc-brand img, .dsnc-brand .custom-logo-link img { width: 152px; }
    .dsnc-primary-nav { top: 76px; max-height: calc(100vh - 76px); }
    .dsnc-hero { min-height: auto; padding: 38px 0 96px; }
    h1 { font-size: clamp(2.55rem, 14vw, 4rem); }
    .dsnc-hero-copy { padding-top: 0; }
    .dsnc-hero-actions { display: grid; }
    .dsnc-pillar-card, .dsnc-offer-grid, .dsnc-footer-grid, .dsnc-page-grid, .dsnc-page-grid.dsnc-three { grid-template-columns: 1fr; }
    .dsnc-pillar-card article { border-right: 0; border-bottom: 1px solid rgba(1,42,90,.11); }
    .dsnc-pillar-card article:last-child { border-bottom: 0; }
    .dsnc-section, .dsnc-why { padding: 56px 0; }
    .dsnc-row-heading { align-items: start; flex-direction: column; gap: .75rem; }
    .dsnc-programme-card, .dsnc-archive-card { grid-template-columns: 1fr; }
    .dsnc-programme-card > img, .dsnc-archive-thumb img { width: 100%; height: 210px; }
    .dsnc-campus-card, .dsnc-campus-card img { min-height: 430px; }
    .dsnc-quote-card { top: auto; left: 0; width: 100%; min-width: 0; bottom: 0; padding: 1.4rem; }
    .dsnc-insights-grid { padding: 1.4rem; }
    .search-form { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Approved homepage alignment v1.2.0
   These overrides tighten the theme to match the approved Digital Savvy Nation mockup. */
:root {
    --dsn-navy: #012A5A;
    --dsn-deep: #001F54;
    --dsn-blue: #005CBA;
    --dsn-teal: #00A6A6;
    --dsn-aqua: #37D6E4;
    --dsn-green: #43C97E;
    --dsn-soft: #F7F9FA;
    --dsn-max: 1140px;
}
body { background: #fff; }
.dsnc-site-header { background: #FFFFFF; border-bottom: 1px solid #E8F0F7; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.dsnc-header-inner { min-height: 72px; }
.dsnc-brand img, .dsnc-brand .custom-logo-link img { width: 150px; max-height: 58px; }
.dsnc-primary-nav { gap: 1.25rem; }
.dsnc-menu { gap: 1.45rem; }
.dsnc-menu a { min-height: 40px; font-size: .78rem; font-weight: 850; }
.dsnc-menu a::after { bottom: 1px; height: 2px; }
.dsnc-header-cta { min-height: 38px; padding: .8rem 1.05rem; border-radius: 8px; font-size: .78rem; box-shadow: 0 10px 22px rgba(1,42,90,.18); }

.dsnc-main { background: #fff; }
.dsnc-hero { min-height: 400px; padding: 56px 0 86px; background: linear-gradient(111deg, #ffffff 0%, #f8fcff 42%, #dff5ff 100%); overflow: hidden; }
.dsnc-network-bg { opacity: .36; background-size: 90px 90px, 110px 110px, 180px 180px, 210px 210px; }
.dsnc-hero-grid { display: block; position: relative; }
.dsnc-hero-copy { position: relative; z-index: 3; max-width: 560px; padding: 0; }
.dsnc-eyebrow { margin-bottom: .78rem; font-size: .77rem; letter-spacing: .23em; color: var(--dsn-teal); }
.dsnc-hero h1 { max-width: 530px; font-size: clamp(2.5rem, 4.6vw, 4.6rem); line-height: .98; letter-spacing: -.045em; }
.dsnc-hero h1 span { color: var(--dsn-teal); }
.dsnc-accent-line { width: 62px; height: 4px; margin: 1rem 0 1.1rem; }
.dsnc-hero p:not(.dsnc-eyebrow) { max-width: 460px; font-size: 1rem; line-height: 1.48; color: #20385F; font-weight: 530; }
.dsnc-hero-actions { margin-top: 1.45rem; gap: .95rem; }
.dsnc-btn { border-radius: 8px; min-height: 42px; padding: .9rem 1.25rem; font-size: .85rem; }
.dsnc-btn-primary { background: linear-gradient(135deg, var(--dsn-deep), var(--dsn-blue)); box-shadow: 0 10px 24px rgba(1,42,90,.18); }
.dsnc-btn-outline { background: rgba(255,255,255,.78); border-color: rgba(1,42,90,.42); }
.dsnc-hero-visual { position: absolute; z-index: 1; right: calc((100vw - min(100vw, var(--dsn-max))) / -2); top: -56px; bottom: -86px; width: min(62vw, 760px); min-height: 0; height: auto; border-radius: 0; box-shadow: none; transform: none; overflow: hidden; }
.dsnc-hero-visual::before { display: none; }
.dsnc-hero-visual img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.dsnc-wave { z-index: 2; pointer-events: none; }
.dsnc-wave-one { height: 112px; bottom: -74px; opacity: .98; transform: rotate(-2deg); }
.dsnc-wave-two { height: 80px; bottom: -39px; opacity: .96; transform: rotate(-2deg); }

.dsnc-pillars { margin-top: -54px; }
.dsnc-pillar-card { width: min(calc(100% - 84px), 1010px); border-radius: 18px; box-shadow: 0 16px 40px rgba(1,42,90,.12); }
.dsnc-pillar-card article { grid-template-columns: 48px 1fr; gap: .85rem; padding: 1rem 1.18rem; min-height: 82px; }
.dsnc-pillar-card svg { font-size: 2.55rem; }
.dsnc-pillar-card h2 { font-size: .86rem; margin-bottom: .12rem; }
.dsnc-pillar-card p { font-size: .74rem; line-height: 1.25; }

.dsnc-section { padding: 46px 0; }
.dsnc-section-heading { margin-bottom: 1.45rem; }
.dsnc-section-heading h2 { font-size: clamp(1.55rem, 2.2vw, 2.1rem); letter-spacing: -.03em; }
.dsnc-section-heading span { width: 56px; height: 4px; margin-top: .62rem; margin-bottom: 0; }
.dsnc-offer-grid { gap: 1.35rem; }
.dsnc-offer-card { min-height: 210px; padding: 1.55rem 1.25rem 1.35rem; border-radius: 18px; box-shadow: 0 12px 30px rgba(1,42,90,.08); }
.dsnc-icon-bubble { width: 58px; height: 58px; margin-bottom: .95rem; }
.dsnc-icon-bubble svg { font-size: 2rem; }
.dsnc-offer-card h3 { margin-bottom: .7rem; font-size: .98rem; }
.dsnc-offer-card p { font-size: .82rem; line-height: 1.45; }
.dsnc-offer-card a { font-size: .8rem; }

.dsnc-why { padding: 44px 0; background: linear-gradient(115deg, rgba(235,248,255,.96), rgba(248,251,253,.98)); }
.dsnc-why-grid { gap: 2.7rem; grid-template-columns: .94fr 1.06fr; }
.dsnc-benefit-grid { gap: 1.15rem 1rem; }
.dsnc-benefit { grid-template-columns: 42px 1fr; gap: .85rem; }
.dsnc-benefit > div:first-child { width: 42px; height: 42px; }
.dsnc-benefit svg { font-size: 1.35rem; }
.dsnc-benefit h3 { font-size: .95rem; margin-bottom: .22rem; }
.dsnc-benefit p { font-size: .78rem; line-height: 1.32; }
.dsnc-campus-card { min-height: 240px; border-radius: 18px; box-shadow: 0 15px 36px rgba(1,42,90,.15); }
.dsnc-campus-card img { min-height: 240px; }
.dsnc-quote-card { width: 34%; min-width: 190px; padding: 1.45rem 1.2rem; }
.dsnc-quote-card span { font-size: 2.2rem; margin-bottom: .45rem; }
.dsnc-quote-card p { font-size: .83rem; line-height: 1.45; }
.dsnc-quote-card i { width: 52px; height: 4px; }

.dsnc-programmes { padding-top: 36px; padding-bottom: 34px; }
.dsnc-row-heading { margin-bottom: 1.05rem; }
.dsnc-row-heading a { font-size: .82rem; }
.dsnc-programme-grid { gap: 1.2rem; }
.dsnc-programme-card { grid-template-columns: 114px 1fr; gap: .85rem; min-height: 116px; padding: .65rem; border-radius: 14px; box-shadow: 0 10px 28px rgba(1,42,90,.08); }
.dsnc-programme-card > img { width: 114px; height: 96px; border-radius: 10px; }
.dsnc-label { font-size: .58rem; margin-bottom: .18rem; }
.dsnc-programme-card h3 { font-size: .86rem; margin-bottom: .22rem; }
.dsnc-programme-card p:not(.dsnc-label) { font-size: .72rem; line-height: 1.28; margin-bottom: .42rem; }
.dsnc-programme-card ul { gap: .75rem; font-size: .65rem; }

.dsnc-stats { background: linear-gradient(100deg, #0047A8 0%, #006EC1 28%, var(--dsn-teal) 68%, #05A66A 100%); }
.dsnc-stats-grid { width: min(calc(100% - 0px), var(--dsn-max)); }
.dsnc-stats article { grid-template-columns: 60px 1fr; padding: 1.25rem 2rem; min-height: 100px; gap: 1rem; }
.dsnc-stats svg { font-size: 3.4rem; }
.dsnc-stats strong { font-size: 2.35rem; }
.dsnc-stats h2 { font-size: 1.28rem; line-height: 1.05; }
.dsnc-stats p { font-size: .76rem; line-height: 1.3; }
.dsnc-insights { display: none !important; }

.dsnc-footer { padding: 48px 0 20px; background: radial-gradient(circle at 86% 0%, rgba(0,166,166,.25), transparent 32%), linear-gradient(140deg, #001738, var(--dsn-deep)); }
.dsnc-footer-grid { grid-template-columns: 1.25fr .8fr .95fr .8fr 1.15fr; gap: 2rem; }
.dsnc-footer h3 { font-size: .86rem; margin-bottom: .8rem; }
.dsnc-footer ul { gap: .25rem; }
.dsnc-footer li, .dsnc-footer p, .dsnc-contact-card p { font-size: .74rem; line-height: 1.35; }
.dsnc-footer-brand img { width: 150px; margin-bottom: .6rem; }
.dsnc-footer-tagline { font-size: .86rem !important; }
.dsnc-socials { gap: .45rem; margin-top: .8rem; }
.dsnc-socials a { width: 26px; height: 26px; font-size: .72rem; }
.dsnc-contact-card p { grid-template-columns: 18px 1fr; gap: .5rem; margin-bottom: .45rem; }
.dsnc-footer-bottom { margin-top: 2rem; padding-top: .85rem; font-size: .68rem; }

@media (max-width: 1120px) {
    .dsnc-hero-visual { width: 58vw; opacity: .9; }
    .dsnc-menu { gap: .9rem; }
    .dsnc-menu a { font-size: .74rem; }
}
@media (max-width: 940px) {
    .dsnc-header-inner { min-height: 76px; }
    .dsnc-primary-nav { inset: 76px 0 auto 0; }
    .dsnc-hero { padding: 42px 0 104px; }
    .dsnc-hero-visual { position: relative; inset: auto; width: 100%; height: 320px; margin-top: 2rem; border-radius: 24px; }
    .dsnc-hero-grid { display: grid; grid-template-columns: 1fr; }
    .dsnc-pillar-card { width: min(calc(100% - 42px), var(--dsn-max)); }
    .dsnc-why-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .dsnc-brand img, .dsnc-brand .custom-logo-link img { width: 145px; }
    .dsnc-hero h1 { font-size: clamp(2.4rem, 12vw, 3.5rem); }
    .dsnc-pillar-card, .dsnc-offer-grid, .dsnc-programme-grid, .dsnc-stats-grid, .dsnc-footer-grid { grid-template-columns: 1fr; }
    .dsnc-pillar-card article { min-height: 72px; }
    .dsnc-programme-card { grid-template-columns: 1fr; }
    .dsnc-programme-card > img { width: 100%; height: 190px; }
    .dsnc-quote-card { width: 100%; min-width: 0; }
}

/* Final v1.2 header and link-page corrections */
.dsnc-site-header, .dsnc-site-header.is-scrolled { background: #FFFFFF !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.dsnc-primary-nav a[href="#"], .dsnc-footer a[href="#"] { pointer-events: auto; }
@media (max-width: 700px) {
    .dsnc-page-grid, .dsnc-page-grid.dsnc-three { grid-template-columns: 1fr !important; }
}

/* Corporate page uplift v1.3.0 */
.dsnc-site-header,
.dsnc-site-header.is-scrolled {
    background: #FFFFFF !important;
    border-bottom: 1px solid #E7EEF7 !important;
}

.dsnc-menu a,
.dsnc-footer a,
.dsnc-entry-content a,
.dsnc-archive-card a {
    text-decoration: none;
}

.dsnc-menu a:hover,
.dsnc-menu .current-menu-item > a,
.dsnc-menu .current_page_item > a {
    color: var(--dsn-navy);
}

/* Professional subpage banner: removes the faint old homepage/banner text */
.dsnc-page-hero.dsnc-inner-banner,
.dsnc-page-hero {
    position: relative;
    overflow: hidden;
    min-height: 0;
    padding: 72px 0 68px !important;
    background-image: none !important;
    background:
        radial-gradient(circle at 12% 18%, rgba(55, 214, 228, .18), transparent 28%),
        radial-gradient(circle at 86% 16%, rgba(11, 92, 186, .14), transparent 30%),
        linear-gradient(115deg, #FFFFFF 0%, #F7FCFF 46%, #E5F7FF 100%) !important;
    border-bottom: 1px solid rgba(1, 42, 90, .09);
    isolation: isolate;
}

.dsnc-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    opacity: .42;
    background-image:
        radial-gradient(circle, rgba(0,166,166,.22) 0 2px, transparent 2.6px),
        linear-gradient(30deg, transparent 0 47%, rgba(11,92,186,.09) 47% 47.25%, transparent 47.25%),
        linear-gradient(150deg, transparent 0 52%, rgba(0,166,166,.08) 52% 52.25%, transparent 52.25%);
    background-size: 96px 96px, 220px 220px, 260px 260px;
}

.dsnc-page-hero::after {
    content: "DSN";
    position: absolute;
    right: -1.5rem;
    bottom: -5rem;
    z-index: -1;
    color: rgba(1, 42, 90, .055);
    font-size: clamp(10rem, 21vw, 22rem);
    font-weight: 900;
    line-height: .78;
    letter-spacing: -.12em;
}

.dsnc-page-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}

.dsnc-page-hero-copy {
    max-width: 780px;
}

.dsnc-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    margin-bottom: 1.15rem;
    color: #40587E;
    font-size: .86rem;
    font-weight: 750;
}

.dsnc-breadcrumb a {
    color: var(--dsn-blue);
    border-bottom: 1px solid rgba(0,92,186,.25);
}

.dsnc-breadcrumb a:hover {
    color: var(--dsn-teal);
    border-color: var(--dsn-teal);
}

.dsnc-page-hero .dsnc-eyebrow {
    margin-bottom: .7rem;
    color: var(--dsn-teal);
}

.dsnc-page-hero h1 {
    max-width: 820px;
    font-size: clamp(2.6rem, 5vw, 5rem);
    letter-spacing: -.06em;
    line-height: .96;
}

.dsnc-page-intro,
.dsnc-page-hero p:not(.dsnc-eyebrow):not(.dsnc-page-intro) {
    max-width: 690px;
    margin-top: 1rem;
    color: #263D62;
    font-size: clamp(1rem, 1.35vw, 1.18rem);
    font-weight: 570;
    line-height: 1.62;
}

.dsnc-banner-panel {
    position: relative;
    padding: 2rem;
    border-radius: 26px;
    color: #fff;
    background:
        radial-gradient(circle at 15% 0%, rgba(55,214,228,.35), transparent 34%),
        linear-gradient(135deg, #001B46, var(--dsn-deep) 55%, #005CBA);
    box-shadow: 0 22px 55px rgba(1,42,90,.18);
    overflow: hidden;
}

.dsnc-banner-panel::after {
    content: "";
    position: absolute;
    right: -35px;
    bottom: -35px;
    width: 160px;
    height: 160px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    box-shadow: inset 0 0 0 18px rgba(255,255,255,.04);
}

.dsnc-banner-panel span {
    display: inline-flex;
    margin-bottom: 1rem;
    color: var(--dsn-aqua);
    text-transform: uppercase;
    letter-spacing: .2em;
    font-size: .76rem;
    font-weight: 900;
}

.dsnc-banner-panel strong {
    display: block;
    max-width: 320px;
    color: #fff;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    line-height: 1.25;
    letter-spacing: -.03em;
}

/* Professional seeded page content */
.dsnc-entry-content {
    max-width: 1160px !important;
    padding: 64px 0 78px !important;
}

.dsnc-entry-content > * {
    max-width: 880px;
}

.dsnc-entry-content > .dsnc-lead-block,
.dsnc-entry-content > .dsnc-page-grid,
.dsnc-entry-content > .dsnc-card-grid,
.dsnc-entry-content > .dsnc-process,
.dsnc-entry-content > .dsnc-mini-kpis,
.dsnc-entry-content > .dsnc-content-cta,
.dsnc-entry-content > .dsnc-contact-grid {
    max-width: 1120px !important;
}

.dsnc-lead-block {
    padding: 1.35rem 1.6rem;
    margin-bottom: 2rem;
    border-left: 6px solid var(--dsn-teal);
    border-radius: 0 22px 22px 0;
    background: linear-gradient(135deg, rgba(55,214,228,.12), rgba(1,42,90,.035));
}

.dsnc-lead-block p {
    max-width: 950px;
    margin: 0;
    color: #1C355F;
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.65;
    font-weight: 650;
}

.dsnc-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 1.6rem;
    margin-bottom: 2rem;
}

.dsnc-card-grid.dsnc-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dsnc-content-card {
    position: relative;
    border-radius: 24px;
    padding: 1.65rem;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, rgba(0,166,166,.35), rgba(11,92,186,.18)) border-box;
    border: 1px solid transparent;
    box-shadow: 0 14px 34px rgba(1, 42, 90, .08);
}

.dsnc-content-card h2,
.dsnc-content-card h3 {
    color: var(--dsn-navy);
}

.dsnc-highlight-card {
    background:
        radial-gradient(circle at 100% 0%, rgba(55,214,228,.18), transparent 34%),
        #FFFFFF;
}

.dsnc-content-card a:not(.dsnc-btn),
.dsnc-entry-content a:not(.dsnc-btn),
.dsnc-text-link {
    color: var(--dsn-blue);
    font-weight: 850;
    border-bottom: 1px solid rgba(0,92,186,.25);
}

.dsnc-content-card a:not(.dsnc-btn):hover,
.dsnc-entry-content a:not(.dsnc-btn):hover,
.dsnc-text-link:hover {
    color: var(--dsn-teal);
    border-color: var(--dsn-teal);
}

.dsnc-process {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 1rem 1.15rem;
    margin-top: 1.4rem;
    margin-bottom: 2rem;
    padding: 1.45rem;
    border: 1px solid rgba(1,42,90,.12);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(1,42,90,.08);
}

.dsnc-process > span {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    color: #fff;
    background: linear-gradient(135deg, var(--dsn-deep), var(--dsn-teal));
    font-weight: 900;
}

.dsnc-process h3 {
    margin-bottom: .3rem;
}

.dsnc-process p {
    margin: 0;
}

.dsnc-mini-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.5rem auto 2rem;
}

.dsnc-mini-kpis article {
    padding: 1.25rem;
    border-radius: 20px;
    color: #fff;
    background: linear-gradient(135deg, var(--dsn-deep), var(--dsn-blue));
    box-shadow: 0 15px 35px rgba(1,42,90,.15);
}

.dsnc-mini-kpis strong {
    display: block;
    color: #fff;
    font-size: 1.15rem;
    margin-bottom: .35rem;
}

.dsnc-mini-kpis span {
    color: rgba(255,255,255,.85);
    font-size: .92rem;
    font-weight: 600;
}

.dsnc-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr);
    gap: 1.5rem;
    align-items: stretch;
}

.dsnc-contact-panel {
    border-left-color: var(--dsn-teal);
    background: linear-gradient(135deg, #F5FBFF, #FFFFFF);
    box-shadow: inset 0 0 0 1px rgba(1,42,90,.06);
}

.dsnc-content-cta {
    box-shadow: 0 16px 40px rgba(1,42,90,.08);
}

/* Archive and programme listing polish */
.dsnc-post-list {
    max-width: 1160px !important;
    padding: 64px 0 78px !important;
    gap: 1.1rem;
}

.dsnc-archive-card {
    grid-template-columns: 230px 1fr;
    align-items: stretch;
    padding: 1rem;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(1,42,90,.08);
}

.dsnc-archive-card.dsnc-card-no-thumb {
    grid-template-columns: 1fr !important;
    padding: 1.4rem 1.6rem;
}

.dsnc-archive-body {
    max-width: 760px;
}

.dsnc-archive-card h2 {
    font-size: clamp(1.45rem, 2vw, 2rem);
    line-height: 1.05;
}

.dsnc-archive-card p:not(.dsnc-label) {
    color: #263D62;
    font-size: 1rem;
    line-height: 1.58;
    font-weight: 540;
}

.dsnc-archive-thumb img {
    width: 230px;
    height: 175px;
    border-radius: 18px;
}

/* Footer logo and footer quality uplift */
.dsnc-footer {
    background:
        radial-gradient(circle at 90% 5%, rgba(0,166,166,.28), transparent 30%),
        radial-gradient(circle at 8% 0%, rgba(11,92,186,.24), transparent 34%),
        linear-gradient(140deg, #001631 0%, #002A63 60%, #001A43 100%) !important;
}

.dsnc-footer-brand img.dsnc-footer-logo {
    width: 158px;
    max-height: none;
    height: auto;
    object-fit: contain;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0;
    margin-bottom: .65rem;
}

.dsnc-footer-brand p,
.dsnc-footer li,
.dsnc-footer p,
.dsnc-contact-card p {
    color: rgba(255,255,255,.84);
}

.dsnc-footer h3 {
    font-weight: 850;
    letter-spacing: .01em;
}

.dsnc-footer a {
    transition: color .18s ease, border-color .18s ease, opacity .18s ease;
}

.dsnc-footer ul a:hover,
.dsnc-contact-card a:hover,
.dsnc-footer-bottom a:hover {
    color: var(--dsn-aqua);
}

.dsnc-footer-tagline {
    letter-spacing: .01em;
}

/* Responsive v1.3 */
@media (max-width: 980px) {
    .dsnc-page-hero-grid,
    .dsnc-contact-grid {
        grid-template-columns: 1fr;
    }
    .dsnc-banner-panel {
        max-width: 520px;
    }
    .dsnc-card-grid,
    .dsnc-card-grid.dsnc-three,
    .dsnc-mini-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .dsnc-page-hero.dsnc-inner-banner,
    .dsnc-page-hero {
        padding: 48px 0 50px !important;
    }
    .dsnc-page-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.6rem);
    }
    .dsnc-banner-panel {
        padding: 1.4rem;
        border-radius: 20px;
    }
    .dsnc-card-grid,
    .dsnc-card-grid.dsnc-three,
    .dsnc-mini-kpis,
    .dsnc-process {
        grid-template-columns: 1fr !important;
    }
    .dsnc-process > span {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }
    .dsnc-archive-card,
    .dsnc-archive-card.dsnc-card-no-thumb {
        grid-template-columns: 1fr !important;
    }
    .dsnc-archive-thumb img {
        width: 100%;
        height: 190px;
    }
    .dsnc-footer-brand img.dsnc-footer-logo {
        width: 150px;
    }
}

/* Digital Savvy Nation v1.4: homepage-style inner pages and logo quality fix */
.dsnc-brand img,
.dsnc-brand .custom-logo-link img {
    width: 154px;
    max-height: 56px;
    object-fit: contain;
}

.dsnc-footer-logo {
    display: block;
}

.dsnc-footer-brand img.dsnc-footer-logo {
    width: 194px !important;
    max-width: 100%;
    height: auto !important;
    padding: .62rem .7rem !important;
    border-radius: 18px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .18);
    border: 1px solid rgba(255,255,255,.6);
}

.dsnc-footer-brand {
    align-self: start;
}

.dsnc-footer-brand p {
    margin-top: .25rem;
}

/* Inner pages now use the same visual language as the homepage hero */
.dsnc-subpage-hero {
    min-height: 420px !important;
    padding: 68px 0 118px !important;
    background:
        radial-gradient(circle at 82% 32%, rgba(55,214,228,.26), transparent 30%),
        linear-gradient(110deg, #FFFFFF 0%, #F4FBFF 48%, #DDF5FF 100%) !important;
    border-bottom: 0 !important;
}

.dsnc-subpage-hero .dsnc-network-bg {
    opacity: .72;
}

.dsnc-subpage-grid {
    grid-template-columns: minmax(0, .95fr) minmax(360px, .86fr) !important;
    gap: clamp(2rem, 5vw, 4rem) !important;
}

.dsnc-subpage-copy {
    max-width: 720px !important;
    padding: 18px 0 24px !important;
}

.dsnc-subpage-copy .dsnc-breadcrumb {
    margin-bottom: 1.05rem;
    color: #3E577F;
}

.dsnc-subpage-copy .dsnc-breadcrumb a {
    color: var(--dsn-blue);
    text-decoration: none;
    border-bottom: 1px solid rgba(0,92,186,.25);
}

.dsnc-subpage-copy .dsnc-breadcrumb a:hover {
    color: var(--dsn-teal);
    border-color: var(--dsn-teal);
}

.dsnc-subpage-copy h1 {
    max-width: 780px;
    font-size: clamp(2.85rem, 5.2vw, 5.15rem);
    line-height: .96;
    letter-spacing: -.065em;
}

.dsnc-subpage-copy .dsnc-page-intro {
    max-width: 680px;
    color: #20385F;
    font-size: clamp(1rem, 1.38vw, 1.18rem);
    font-weight: 560;
    line-height: 1.6;
}

.dsnc-subpage-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .95rem;
    margin-top: 1.65rem;
}

.dsnc-subpage-visual {
    min-height: 330px !important;
    height: 330px;
    border-radius: 0 0 0 88px !important;
    transform: translateX(16px) !important;
    box-shadow: 0 20px 52px rgba(1,42,90,.14) !important;
}

.dsnc-subpage-visual img {
    min-height: 330px !important;
    object-position: center right;
}

.dsnc-archive-main,
.dsnc-search-main {
    margin-top: 0;
}

.dsnc-search-box {
    padding-top: 56px;
}

.dsnc-search-box + .dsnc-post-list {
    padding-top: 24px;
}

.dsnc-polished-empty {
    margin-top: 72px;
    margin-bottom: 84px;
    max-width: 920px;
}

.dsnc-polished-empty h2 {
    margin-bottom: .8rem;
}

.dsnc-polished-empty .dsnc-btn {
    margin-top: 1rem;
}

/* Professional content/link refinement */
.dsnc-entry-content h2,
.dsnc-entry-content h3 {
    letter-spacing: -.04em;
}

.dsnc-entry-content a:not(.dsnc-btn),
.dsnc-archive-card a:not(.dsnc-btn),
.dsnc-row-heading a,
.dsnc-offer-card a {
    text-underline-offset: 4px;
}

.dsnc-content-card,
.dsnc-archive-card,
.dsnc-offer-card,
.dsnc-programme-card {
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.dsnc-content-card:hover,
.dsnc-archive-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(1,42,90,.12);
    border-color: rgba(0,166,166,.32);
}

.dsnc-archive-card.dsnc-card-no-thumb {
    grid-template-columns: 1fr !important;
    min-height: 0;
}

.dsnc-archive-body {
    padding: .25rem .35rem;
}

@media (max-width: 980px) {
    .dsnc-subpage-hero {
        padding: 52px 0 108px !important;
    }
    .dsnc-subpage-grid {
        grid-template-columns: 1fr !important;
    }
    .dsnc-subpage-visual {
        width: 100% !important;
        height: 300px;
        min-height: 300px !important;
        transform: none !important;
        border-radius: 26px !important;
    }
    .dsnc-subpage-visual img {
        min-height: 300px !important;
    }
}

@media (max-width: 700px) {
    .dsnc-brand img,
    .dsnc-brand .custom-logo-link img {
        width: 142px;
    }
    .dsnc-subpage-hero {
        padding: 42px 0 96px !important;
    }
    .dsnc-subpage-copy h1 {
        font-size: clamp(2.35rem, 11vw, 3.55rem);
    }
    .dsnc-subpage-actions .dsnc-btn {
        width: 100%;
    }
    .dsnc-footer-brand img.dsnc-footer-logo {
        width: 178px !important;
    }
}

/* v1.5 WooCommerce registration, SEO-ready content, and footer logo hardening */
.dsnc-footer-grid {
    grid-template-columns: minmax(250px, 1.45fr) .8fr .95fr .8fr minmax(220px, 1.1fr) !important;
    align-items: start;
}

.dsnc-footer-brand img.dsnc-footer-logo {
    width: min(100%, 280px) !important;
    height: auto !important;
    max-height: none !important;
    display: block;
    object-fit: contain !important;
    background: #fff !important;
    padding: 10px 12px !important;
    border-radius: 18px !important;
    box-shadow: 0 22px 54px rgba(0, 0, 0, .24) !important;
    border: 1px solid rgba(255,255,255,.72) !important;
}

.dsnc-footer-brand p {
    max-width: 310px !important;
}

.dsnc-learning-grid .dsnc-programme-card,
.dsnc-catalog-grid .dsnc-programme-card {
    align-items: stretch;
}

.dsnc-product-card h3 a,
.dsnc-programme-card h3 a {
    color: var(--dsn-navy);
    text-decoration: none;
}

.dsnc-product-card h3 a:hover,
.dsnc-programme-card h3 a:hover {
    color: var(--dsn-teal);
}

.dsnc-product-image {
    display: block;
    border-radius: 13px;
    overflow: hidden;
    align-self: stretch;
}

.dsnc-product-image img {
    width: 135px;
    height: 100%;
    min-height: 120px;
    object-fit: cover;
}

.dsnc-price {
    color: var(--dsn-navy) !important;
    font-weight: 900 !important;
    margin: .35rem 0 !important;
}

.dsnc-mini-cta {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-top: .7rem;
    color: var(--dsn-blue) !important;
    font-size: .86rem;
    font-weight: 900;
}

.dsnc-mini-cta:hover {
    color: var(--dsn-teal) !important;
}

.dsnc-commerce-catalog {
    margin-top: 2rem;
    margin-bottom: 2.4rem;
}

.dsnc-catalog-notice {
    margin: 0 0 1.3rem;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(0,166,166,.26);
    border-left: 5px solid var(--dsn-teal);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(55,214,228,.1), rgba(255,255,255,.95));
    color: #20385F;
    font-weight: 620;
}

.dsnc-catalog-warning {
    border-color: rgba(244, 143, 54, .3);
    border-left-color: #F48F36;
    background: linear-gradient(135deg, rgba(244,143,54,.12), rgba(255,255,255,.95));
}

.dsnc-registration-panel {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(320px, 1.1fr);
    gap: 1.6rem;
    align-items: start;
    margin-top: 2rem;
}

.dsnc-registration-copy h2 {
    margin-bottom: .85rem;
}

.dsnc-account-box form,
.dsnc-woo-shell form {
    background: #fff;
    border-radius: 20px;
}

.dsnc-account-box .woocommerce,
.dsnc-woo-shell .woocommerce {
    color: #20385F;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.woocommerce div.product form.cart .button {
    background: linear-gradient(135deg, var(--dsn-deep), #004BAA) !important;
    color: #fff !important;
    border-radius: 12px !important;
    font-weight: 900 !important;
    padding: .9rem 1.2rem !important;
    border: 0 !important;
    box-shadow: 0 12px 28px rgba(1,42,90,.20) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, var(--dsn-teal), var(--dsn-blue)) !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: #fff;
    border: 1px solid rgba(1,42,90,.12);
    border-radius: 22px;
    padding: 1rem !important;
    box-shadow: 0 12px 34px rgba(1,42,90,.08);
    transition: transform .2s ease, box-shadow .2s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(1,42,90,.12);
}

.woocommerce ul.products li.product img {
    border-radius: 16px;
    margin-bottom: 1rem !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    color: var(--dsn-navy);
    font-size: 1.08rem;
    font-weight: 900;
    letter-spacing: -.03em;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--dsn-teal) !important;
    font-weight: 900 !important;
}

.woocommerce div.product .product_title {
    color: var(--dsn-navy);
    font-weight: 900;
    letter-spacing: -.055em;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-radius: 16px;
    border-top: 0 !important;
    box-shadow: 0 10px 30px rgba(1,42,90,.09);
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: var(--dsn-teal) !important;
}

.dsnc-woocommerce-main .dsnc-entry-content,
.dsnc-woo-shell {
    max-width: 1180px !important;
}

.dsnc-woo-shell > * {
    max-width: 1180px !important;
}

@media (max-width: 980px) {
    .dsnc-footer-grid,
    .dsnc-registration-panel {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 700px) {
    .dsnc-footer-grid,
    .dsnc-registration-panel {
        grid-template-columns: 1fr !important;
    }
    .dsnc-footer-brand img.dsnc-footer-logo {
        width: min(100%, 250px) !important;
    }
    .dsnc-product-image img {
        width: 100%;
        height: 190px;
    }
}

/* v1.6 hardening: fixed header/footer logos and professional course page rendering */
.dsnc-site-header {
    background: #fff !important;
    position: sticky !important;
    top: 0;
    z-index: 999 !important;
    overflow: visible !important;
}
.admin-bar .dsnc-site-header { top: 32px; }
.dsnc-header-inner {
    min-height: 72px !important;
    height: 72px !important;
    align-items: center !important;
    overflow: visible !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    display: inline-flex !important;
    width: 158px !important;
    max-width: 158px !important;
    height: 58px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: hidden !important;
    flex: 0 0 158px !important;
}
.dsnc-brand img,
.dsnc-brand .custom-logo,
.dsnc-brand .custom-logo-link img,
.dsnc-nav-logo {
    display: block !important;
    width: 150px !important;
    max-width: 150px !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: 56px !important;
    object-fit: contain !important;
    object-position: left center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.dsnc-primary-nav {
    min-width: 0 !important;
}
.dsnc-footer-brand img.dsnc-footer-logo {
    display: block !important;
    width: 230px !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 116px !important;
    object-fit: contain !important;
    object-position: left center !important;
    padding: .75rem .85rem !important;
    border-radius: 18px !important;
    background: #FFFFFF !important;
    box-shadow: 0 18px 42px rgba(0,0,0,.22) !important;
}
.dsnc-featured-image {
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.dsnc-featured-image img {
    width: 100% !important;
    max-height: 380px !important;
    object-fit: cover !important;
    object-position: center !important;
}
/* Never allow accidental logo artwork inside content to become a giant page image. */
.dsnc-entry-content img[src*="logo"],
.dsnc-entry-content img[src*="Logo"],
.dsnc-entry-content img[src*="dsn-logo"],
.dsnc-entry-content img[src*="digital-savvy-nation"] {
    width: auto !important;
    max-width: 220px !important;
    max-height: 120px !important;
    object-fit: contain !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.single-course .dsnc-entry-content > figure:first-child,
.single-courses .dsnc-entry-content > figure:first-child,
.single-sfwd-courses .dsnc-entry-content > figure:first-child,
.single-lp_course .dsnc-entry-content > figure:first-child,
.single-tutor_course .dsnc-entry-content > figure:first-child {
    max-width: 220px !important;
}
.dsnc-learning-single-main .dsnc-entry-content {
    padding-top: 64px !important;
}
.dsnc-learning-detail-grid {
    max-width: 1120px !important;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: 1.45rem;
    align-items: start;
}
.dsnc-learning-detail-main,
.dsnc-learning-register-card {
    margin: 0 !important;
}
.dsnc-learning-detail-main h2,
.dsnc-learning-register-card h2 {
    margin-bottom: .85rem;
}
.dsnc-learning-summary {
    color: #20385F;
    font-weight: 650;
    line-height: 1.65;
}
.dsnc-sanitised-course-content {
    margin-top: 1.5rem;
}
.dsnc-sanitised-course-content > * {
    max-width: 100%;
}
.dsnc-learning-register-card {
    position: sticky;
    top: 100px;
    background: linear-gradient(135deg, #FFFFFF, #F2FBFF) !important;
    border-color: rgba(0,166,166,.22) !important;
}
.dsnc-learning-register-card .dsnc-btn {
    width: 100%;
    margin-top: .8rem;
}
.dsnc-learning-meta-list {
    display: grid;
    gap: .55rem;
    margin-top: 1.1rem;
    color: #20385F;
    font-size: .9rem;
    font-weight: 720;
}
.dsnc-learning-meta-list span {
    padding-left: 1.1rem;
    position: relative;
}
.dsnc-learning-meta-list span::before {
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--dsn-teal);
}
@media (max-width: 980px) {
    .dsnc-learning-detail-grid {
        grid-template-columns: 1fr;
    }
    .dsnc-learning-register-card {
        position: static;
    }
}
@media (max-width: 700px) {
    .dsnc-header-inner { height: 68px !important; min-height: 68px !important; }
    .dsnc-brand { width: 142px !important; max-width: 142px !important; flex-basis: 142px !important; height: 54px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 136px !important; max-width: 136px !important; max-height: 52px !important; }
    .dsnc-footer-brand img.dsnc-footer-logo { width: 210px !important; }
}

/* v1.7 full-page cleanup: remove legacy giant logo/banner artefacts and align subpages to the homepage style */
.dsnc-subpage-hero-v17 {
    min-height: 430px !important;
    padding: 72px 0 92px !important;
    background:
        radial-gradient(circle at 85% 22%, rgba(79, 209, 197, .30), transparent 32%),
        linear-gradient(115deg, #ffffff 0%, #f7fcff 42%, #eaf8ff 100%) !important;
    overflow: hidden !important;
}
.dsnc-subpage-hero-v17::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .16;
    background:
        linear-gradient(90deg, rgba(3, 43, 100, .08) 1px, transparent 1px),
        linear-gradient(rgba(3, 43, 100, .08) 1px, transparent 1px);
    background-size: 46px 46px;
    pointer-events: none;
}
.dsnc-subpage-grid {
    grid-template-columns: minmax(0, .95fr) minmax(320px, .75fr) !important;
    align-items: center !important;
    gap: clamp(2rem, 5vw, 5rem) !important;
}
.dsnc-subpage-copy {
    position: relative;
    z-index: 3;
}
.dsnc-subpage-copy h1 {
    max-width: 780px !important;
    font-size: clamp(3rem, 5.6vw, 5.6rem) !important;
    line-height: .95 !important;
    letter-spacing: -.065em !important;
    color: #032B64 !important;
}
.dsnc-subpage-copy .dsnc-page-intro {
    max-width: 720px !important;
    color: #213B65 !important;
    font-weight: 550 !important;
    font-size: clamp(1.05rem, 1.3vw, 1.22rem) !important;
}
.dsnc-subpage-panel {
    min-height: 300px;
    position: relative;
    z-index: 2;
    border: 1px solid rgba(11, 178, 192, .26);
    border-radius: 34px;
    background:
        linear-gradient(145deg, rgba(255,255,255,.86), rgba(232,249,255,.76)),
        radial-gradient(circle at 70% 26%, rgba(0, 157, 229, .22), transparent 40%);
    box-shadow: 0 28px 70px rgba(3, 43, 100, .14);
    overflow: hidden;
}
.dsnc-panel-map {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 72% 44%, rgba(0, 157, 229, .22) 0 2px, transparent 3px),
        radial-gradient(circle at 38% 62%, rgba(14, 166, 174, .20) 0 2px, transparent 3px);
    background-size: 22px 22px, 34px 34px;
    opacity: .85;
}
.dsnc-subpage-panel::before,
.dsnc-subpage-panel::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    border: 2px solid rgba(0, 157, 229, .26);
}
.dsnc-subpage-panel::before { width: 360px; height: 360px; right: -110px; top: -110px; }
.dsnc-subpage-panel::after { width: 250px; height: 250px; left: -70px; bottom: -92px; border-color: rgba(13, 166, 174, .30); }
.dsnc-panel-card {
    position: absolute;
    z-index: 3;
    width: min(72%, 290px);
    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(225,235,248,.95);
    box-shadow: 0 18px 40px rgba(3, 43, 100, .12);
}
.dsnc-panel-card strong {
    display: block;
    color: #032B64;
    font-size: 1.02rem;
    line-height: 1.15;
}
.dsnc-panel-card span {
    display: block;
    margin-top: .32rem;
    color: #4A6284;
    font-size: .86rem;
    font-weight: 650;
}
.dsnc-panel-card-one { left: 7%; top: 14%; }
.dsnc-panel-card-two { right: 7%; top: 42%; }
.dsnc-panel-card-three { left: 16%; bottom: 10%; }
.dsnc-subpage-hero .dsnc-hero-visual,
.dsnc-subpage-hero .dsnc-subpage-visual,
.dsnc-subpage-hero-v17 img {
    display: none !important;
}

/* Do not render legacy featured/logo images directly under page heroes. */
.dsnc-standard-page-v17 .dsnc-featured-image,
.dsnc-content-page .dsnc-entry-content > figure:first-child,
.dsnc-content-page .dsnc-entry-content > .wp-block-image:first-child,
.dsnc-content-page .dsnc-entry-content > p:first-child > img:first-child,
.dsnc-learning-single-main .dsnc-sanitised-course-content > figure:first-child,
.dsnc-learning-single-main .dsnc-sanitised-course-content > .wp-block-image:first-child,
.dsnc-learning-single-main .dsnc-sanitised-course-content > p:first-child > img:first-child {
    display: none !important;
}
.dsnc-entry-content img[alt*="Digital Savvy Nation"],
.dsnc-entry-content img[src*="DSN"],
.dsnc-entry-content img[src*="dsn"],
.dsnc-entry-content img[src*="savvy"],
.dsnc-entry-content img[src*="logo"] {
    display: none !important;
}

/* Keep legitimate course/programme/product images professional and bounded. */
.dsnc-archive-thumb {
    min-height: 188px !important;
    max-height: 210px !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #eaf8ff, #ffffff) !important;
}
.dsnc-archive-thumb img,
.dsnc-product-image img,
.woocommerce ul.products li.product img {
    width: 100% !important;
    height: 190px !important;
    max-height: 190px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 18px !important;
}
.dsnc-card-no-thumb {
    padding-top: 0 !important;
}
.dsnc-post-list-v17 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.35rem !important;
    padding-bottom: 80px !important;
}
.dsnc-post-list-v17 .navigation {
    grid-column: 1 / -1;
}
.dsnc-archive-intro {
    padding: 64px 0 16px !important;
    max-width: 1120px !important;
}
.dsnc-archive-intro h2 {
    margin: .35rem 0 .55rem !important;
    color: #032B64 !important;
    font-size: clamp(2rem, 3.2vw, 3.2rem) !important;
    letter-spacing: -.045em !important;
}
.dsnc-archive-intro p:not(.dsnc-label) {
    max-width: 760px;
    color: #334E76;
    font-size: 1.08rem;
    font-weight: 550;
}

@media (max-width: 980px) {
    .dsnc-subpage-grid,
    .dsnc-post-list-v17 {
        grid-template-columns: 1fr !important;
    }
    .dsnc-subpage-panel { min-height: 250px; }
}
@media (max-width: 640px) {
    .dsnc-subpage-hero-v17 { padding: 48px 0 72px !important; }
    .dsnc-subpage-copy h1 { font-size: clamp(2.45rem, 13vw, 3.3rem) !important; }
    .dsnc-subpage-panel { display: none !important; }
}

/* v1.8 header logo clipping fix: compact approved logo, more vertical breathing room, no overflow cropping */
.dsnc-site-header {
    background: #fff !important;
    overflow: visible !important;
}
.dsnc-header-inner {
    min-height: 88px !important;
    height: auto !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    overflow: visible !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    width: 168px !important;
    max-width: 168px !important;
    min-width: 168px !important;
    flex: 0 0 168px !important;
    height: 74px !important;
    min-height: 74px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    line-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
.dsnc-brand img,
.dsnc-brand .custom-logo,
.dsnc-brand .custom-logo-link img,
.dsnc-nav-logo {
    display: block !important;
    width: auto !important;
    height: 70px !important;
    max-width: 168px !important;
    max-height: 70px !important;
    object-fit: contain !important;
    object-position: left center !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.dsnc-primary-nav {
    align-self: center !important;
}
@media (max-width: 1120px) {
    .dsnc-header-inner { gap: 1rem !important; }
    .dsnc-menu { gap: 1.05rem !important; }
    .dsnc-menu a { font-size: .82rem !important; }
    .dsnc-header-cta { padding: .82rem 1rem !important; }
}
@media (max-width: 700px) {
    .dsnc-header-inner {
        min-height: 80px !important;
        padding-top: 7px !important;
        padding-bottom: 7px !important;
    }
    .dsnc-brand,
    .dsnc-brand:visited {
        width: 146px !important;
        max-width: 146px !important;
        min-width: 146px !important;
        flex-basis: 146px !important;
        height: 64px !important;
        min-height: 64px !important;
        overflow: visible !important;
    }
    .dsnc-brand img,
    .dsnc-brand .custom-logo,
    .dsnc-brand .custom-logo-link img,
    .dsnc-nav-logo {
        height: 60px !important;
        max-height: 60px !important;
        max-width: 146px !important;
        width: auto !important;
    }
}

/* v2.0 programme, course, catalogue and page display repair
   Fixes squeezed programme cards, title clipping, overly narrow text columns,
   and inconsistent course/corporate-training catalogue cards. */
.dsnc-post-list-v20,
.dsnc-post-list-v17 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.55rem !important;
    align-items: stretch !important;
    padding-top: 40px !important;
    padding-bottom: 82px !important;
}
.dsnc-post-list-v20 .navigation,
.dsnc-post-list-v17 .navigation {
    grid-column: 1 / -1 !important;
}
.dsnc-learning-tile,
.dsnc-post-list-v20 .dsnc-archive-card,
.dsnc-post-list-v17 .dsnc-archive-card,
.dsnc-learning-grid .dsnc-programme-card,
.dsnc-catalog-grid .dsnc-programme-card {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: 100% !important;
    overflow: hidden !important;
    padding: 0 !important;
    border-radius: 24px !important;
    border: 1px solid rgba(1,42,90,.12) !important;
    background: #fff !important;
    box-shadow: 0 16px 42px rgba(1,42,90,.08) !important;
}
.dsnc-learning-tile-image,
.dsnc-post-list-v20 .dsnc-archive-thumb,
.dsnc-post-list-v17 .dsnc-archive-thumb,
.dsnc-learning-grid .dsnc-product-image,
.dsnc-catalog-grid .dsnc-product-image {
    width: 100% !important;
    min-height: 190px !important;
    max-height: 210px !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    display: block !important;
    background: linear-gradient(135deg, #eaf8ff, #ffffff) !important;
}
.dsnc-learning-tile-image img,
.dsnc-post-list-v20 .dsnc-archive-thumb img,
.dsnc-post-list-v17 .dsnc-archive-thumb img,
.dsnc-learning-grid .dsnc-product-image img,
.dsnc-catalog-grid .dsnc-product-image img,
.dsnc-post-list-v20 .dsnc-archive-card img,
.dsnc-post-list-v17 .dsnc-archive-card img {
    display: block !important;
    width: 100% !important;
    height: 205px !important;
    max-height: 205px !important;
    min-height: 205px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    margin: 0 !important;
}
.dsnc-learning-tile-body,
.dsnc-post-list-v20 .dsnc-archive-body,
.dsnc-post-list-v17 .dsnc-archive-body,
.dsnc-learning-grid .dsnc-programme-card > div,
.dsnc-catalog-grid .dsnc-programme-card > div {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 1.35rem 1.35rem 1.45rem !important;
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}
.dsnc-learning-tile h2,
.dsnc-post-list-v20 .dsnc-archive-card h2,
.dsnc-post-list-v17 .dsnc-archive-card h2,
.dsnc-learning-grid .dsnc-programme-card h3,
.dsnc-catalog-grid .dsnc-programme-card h3 {
    font-size: clamp(1.26rem, 1.65vw, 1.75rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.04em !important;
    margin: .2rem 0 .75rem !important;
    color: #005CBD !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto !important;
}
.dsnc-learning-tile h2 a,
.dsnc-post-list-v20 .dsnc-archive-card h2 a,
.dsnc-post-list-v17 .dsnc-archive-card h2 a,
.dsnc-learning-grid .dsnc-programme-card h3 a,
.dsnc-catalog-grid .dsnc-programme-card h3 a {
    color: #005CBD !important;
    text-decoration: none !important;
}
.dsnc-learning-tile p:not(.dsnc-label),
.dsnc-post-list-v20 .dsnc-archive-card p:not(.dsnc-label),
.dsnc-post-list-v17 .dsnc-archive-card p:not(.dsnc-label),
.dsnc-learning-grid .dsnc-programme-card p:not(.dsnc-label),
.dsnc-catalog-grid .dsnc-programme-card p:not(.dsnc-label) {
    color: #173257 !important;
    font-size: .98rem !important;
    line-height: 1.55 !important;
    font-weight: 560 !important;
    margin: 0 0 1rem !important;
}
.dsnc-learning-tile .dsnc-mini-cta,
.dsnc-post-list-v20 .dsnc-mini-cta,
.dsnc-post-list-v17 .dsnc-mini-cta,
.dsnc-post-list-v20 .dsnc-text-link,
.dsnc-post-list-v17 .dsnc-text-link,
.dsnc-learning-grid .dsnc-mini-cta,
.dsnc-catalog-grid .dsnc-mini-cta {
    margin-top: auto !important;
    align-self: flex-start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: .35rem !important;
    color: #005CBD !important;
    font-weight: 900 !important;
    text-decoration: none !important;
}
.dsnc-learning-tile:hover,
.dsnc-post-list-v20 .dsnc-archive-card:hover,
.dsnc-post-list-v17 .dsnc-archive-card:hover,
.dsnc-learning-grid .dsnc-programme-card:hover,
.dsnc-catalog-grid .dsnc-programme-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 26px 58px rgba(1,42,90,.14) !important;
    border-color: rgba(0,166,166,.35) !important;
}
.dsnc-learning-grid,
.dsnc-catalog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 1.55rem !important;
}
.dsnc-learning-grid .dsnc-programme-card ul,
.dsnc-catalog-grid .dsnc-programme-card ul {
    flex-wrap: wrap !important;
    gap: .75rem 1rem !important;
    margin: .15rem 0 .4rem !important;
    font-size: .82rem !important;
}
.dsnc-price {
    font-size: 1.02rem !important;
    margin: .2rem 0 .7rem !important;
}
.dsnc-archive-intro {
    padding-bottom: 4px !important;
}
.dsnc-entry-content > .dsnc-lead-block,
.dsnc-entry-content > p:first-child {
    max-width: 900px !important;
}
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.55rem !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
}
.woocommerce ul.products li.product {
    width: auto !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    border-radius: 22px !important;
    border: 1px solid rgba(1,42,90,.12) !important;
    box-shadow: 0 16px 42px rgba(1,42,90,.08) !important;
    overflow: hidden !important;
    padding: 0 0 1.25rem !important;
    background: #fff !important;
}
.woocommerce ul.products li.product img {
    height: 205px !important;
    border-radius: 0 !important;
    margin: 0 0 1rem !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0 1.1rem !important;
    color: #005CBD !important;
    font-size: 1.16rem !important;
    line-height: 1.16 !important;
}
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
    margin-left: 1.1rem !important;
    margin-right: 1.1rem !important;
}
@media (max-width: 1100px) {
    .dsnc-post-list-v20,
    .dsnc-post-list-v17,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 700px) {
    .dsnc-post-list-v20,
    .dsnc-post-list-v17,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }
    .dsnc-learning-tile-image img,
    .dsnc-post-list-v20 .dsnc-archive-thumb img,
    .dsnc-post-list-v17 .dsnc-archive-thumb img,
    .dsnc-learning-grid .dsnc-product-image img,
    .dsnc-catalog-grid .dsnc-product-image img,
    .woocommerce ul.products li.product img {
        height: 220px !important;
        max-height: 220px !important;
        min-height: 220px !important;
    }
}

/* v2.1 final header/logo repair and restored homepage-style page headers */
.dsnc-site-header,
.dsnc-site-header.is-scrolled {
    background: #FFFFFF !important;
    border-bottom: 1px solid #E8F0F7 !important;
    overflow: visible !important;
    z-index: 9999 !important;
}
.dsnc-site-header .dsnc-container {
    width: min(calc(100% - 48px), 1280px) !important;
}
.dsnc-header-inner {
    min-height: 98px !important;
    height: auto !important;
    padding: 13px 0 !important;
    overflow: visible !important;
    align-items: center !important;
    gap: 1.35rem !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    width: 192px !important;
    max-width: 192px !important;
    min-width: 192px !important;
    flex: 0 0 192px !important;
    height: 72px !important;
    min-height: 72px !important;
    max-height: 72px !important;
    overflow: visible !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    line-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.dsnc-brand img,
.dsnc-brand .custom-logo,
.dsnc-brand .custom-logo-link img,
.dsnc-nav-logo {
    display: block !important;
    width: 186px !important;
    max-width: 186px !important;
    height: auto !important;
    max-height: 72px !important;
    object-fit: contain !important;
    object-position: left center !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
.dsnc-primary-nav {
    gap: 1.25rem !important;
    align-items: center !important;
    min-width: 0 !important;
}
.dsnc-menu {
    gap: 1.22rem !important;
    align-items: center !important;
}
.dsnc-menu a {
    font-size: .86rem !important;
    min-height: 42px !important;
    white-space: nowrap !important;
}
.dsnc-header-cta {
    min-height: 46px !important;
    padding: .88rem 1.24rem !important;
}

.dsnc-subpage-hero-v21 {
    min-height: 560px !important;
    padding: 74px 0 104px !important;
    position: relative !important;
    isolation: isolate !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 82% 24%, rgba(55,214,228,.24), transparent 30%),
        linear-gradient(110deg, #ffffff 0%, #f5fbff 46%, #dff6ff 100%) !important;
    border-bottom: 1px solid rgba(1,42,90,.08) !important;
}
.dsnc-subpage-hero-v21 .dsnc-network-bg {
    display: block !important;
    opacity: .68 !important;
}
.dsnc-subpage-hero-v21 .dsnc-subpage-grid {
    grid-template-columns: minmax(0, .92fr) minmax(430px, .88fr) !important;
    align-items: center !important;
    gap: clamp(2.5rem, 5vw, 5.2rem) !important;
}
.dsnc-subpage-hero-v21 .dsnc-subpage-copy {
    max-width: 700px !important;
    padding: 22px 0 34px !important;
    position: relative !important;
    z-index: 4 !important;
}
.dsnc-subpage-hero-v21 .dsnc-breadcrumb {
    display: inline-flex !important;
    gap: .5rem !important;
    align-items: center !important;
    margin-bottom: 1.05rem !important;
    color: #466083 !important;
    font-size: .84rem !important;
    font-weight: 800 !important;
}
.dsnc-subpage-hero-v21 .dsnc-breadcrumb a {
    color: #005CBD !important;
}
.dsnc-subpage-hero-v21 .dsnc-eyebrow {
    color: var(--dsn-teal) !important;
    letter-spacing: .24em !important;
}
.dsnc-subpage-hero-v21 h1 {
    max-width: 780px !important;
    font-size: clamp(3.2rem, 5.7vw, 5.9rem) !important;
    line-height: .95 !important;
    letter-spacing: -.07em !important;
    color: #032B64 !important;
}
.dsnc-subpage-hero-v21 .dsnc-page-intro {
    max-width: 680px !important;
    color: #1C3760 !important;
    font-size: clamp(1.05rem, 1.22vw, 1.18rem) !important;
    line-height: 1.56 !important;
    font-weight: 650 !important;
}
.dsnc-subpage-hero-v21 .dsnc-subpage-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .9rem !important;
    margin-top: 1.4rem !important;
}
.dsnc-subpage-hero-v21 .dsnc-subpage-media {
    position: relative !important;
    z-index: 3 !important;
    display: block !important;
    min-height: 365px !important;
    border-radius: 36px !important;
    overflow: hidden !important;
    border: 1px solid rgba(1,42,90,.12) !important;
    box-shadow: 0 34px 78px rgba(1,42,90,.16) !important;
    transform: translateY(6px) !important;
    background: #EAF8FF !important;
}
.dsnc-subpage-hero-v21 img.dsnc-subpage-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 365px !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
}
.dsnc-subpage-hero-v21 .dsnc-wave-one,
.dsnc-subpage-hero-v21 .dsnc-wave-two {
    display: block !important;
}
.dsnc-subpage-hero-v21 .dsnc-wave-one {
    height: 98px !important;
    bottom: -34px !important;
    background: linear-gradient(90deg, #005CBD, #00A6A6, #43C97E) !important;
    opacity: .95 !important;
}
.dsnc-subpage-hero-v21 .dsnc-wave-two {
    height: 78px !important;
    bottom: -51px !important;
    background: linear-gradient(90deg, #012A5A, #0B5CBA, #37D6E4) !important;
    opacity: .85 !important;
}

/* Restore professional page body rhythm after the hero. */
.dsnc-content-page .dsnc-entry-content {
    max-width: 1180px !important;
    padding-top: 72px !important;
    padding-bottom: 86px !important;
}
.dsnc-content-page .dsnc-entry-content > h2,
.dsnc-content-page .dsnc-entry-content > p,
.dsnc-content-page .dsnc-entry-content > ul,
.dsnc-content-page .dsnc-entry-content > ol {
    max-width: 920px !important;
}
.dsnc-content-card,
.dsnc-archive-card,
.dsnc-learning-tile,
.dsnc-product-card,
.woocommerce ul.products li.product {
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}
.dsnc-content-card:hover,
.dsnc-archive-card:hover,
.dsnc-learning-tile:hover,
.dsnc-product-card:hover,
.woocommerce ul.products li.product:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 24px 60px rgba(1,42,90,.13) !important;
    border-color: rgba(0,166,166,.32) !important;
}

@media (max-width: 1180px) {
    .dsnc-site-header .dsnc-container { width: min(calc(100% - 34px), 1280px) !important; }
    .dsnc-brand,
    .dsnc-brand:visited { width: 172px !important; min-width: 172px !important; max-width: 172px !important; flex-basis: 172px !important; }
    .dsnc-brand img,
    .dsnc-nav-logo { width: 166px !important; max-width: 166px !important; }
    .dsnc-menu { gap: .86rem !important; }
    .dsnc-menu a { font-size: .78rem !important; }
    .dsnc-header-cta { padding: .78rem .98rem !important; }
}
@media (max-width: 980px) {
    .dsnc-header-inner { min-height: 90px !important; }
    .dsnc-brand,
    .dsnc-brand:visited { width: 170px !important; min-width: 170px !important; max-width: 170px !important; flex-basis: 170px !important; height: 70px !important; }
    .dsnc-brand img,
    .dsnc-nav-logo { width: 164px !important; max-width: 164px !important; max-height: 70px !important; }
    .dsnc-primary-nav { inset: 98px 0 auto 0 !important; max-height: calc(100vh - 98px) !important; }
    .admin-bar .dsnc-primary-nav { inset: 144px 0 auto 0 !important; max-height: calc(100vh - 144px) !important; }
    .dsnc-subpage-hero-v21 .dsnc-subpage-grid { grid-template-columns: 1fr !important; }
    .dsnc-subpage-hero-v21 .dsnc-subpage-media { min-height: 300px !important; }
    .dsnc-subpage-hero-v21 img.dsnc-subpage-image { min-height: 300px !important; }
}
@media (max-width: 700px) {
    .dsnc-site-header .dsnc-container { width: min(calc(100% - 28px), 1280px) !important; }
    .dsnc-header-inner { min-height: 84px !important; padding-top: 8px !important; padding-bottom: 8px !important; }
    .dsnc-brand,
    .dsnc-brand:visited { width: 154px !important; min-width: 154px !important; max-width: 154px !important; flex-basis: 154px !important; height: 66px !important; }
    .dsnc-brand img,
    .dsnc-nav-logo { width: 150px !important; max-width: 150px !important; max-height: 66px !important; }
    .dsnc-subpage-hero-v21 { min-height: auto !important; padding: 48px 0 88px !important; }
    .dsnc-subpage-hero-v21 h1 { font-size: clamp(2.35rem, 12vw, 3.3rem) !important; }
    .dsnc-subpage-hero-v21 .dsnc-subpage-media { min-height: 230px !important; border-radius: 26px !important; }
    .dsnc-subpage-hero-v21 img.dsnc-subpage-image { min-height: 230px !important; }
}

/* --------------------------------------------------------------------------
   v2.2 final visual system
   Purpose: remove the pasted-image feel from the homepage hero and replace the
   disliked inner-page banners with a unified homepage-style blended banner.
---------------------------------------------------------------------------- */
.dsnc-site-header {
    overflow: visible !important;
    background: #fff !important;
}
.dsnc-header-inner {
    min-height: 86px !important;
    overflow: visible !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 190px !important;
    min-width: 190px !important;
    max-width: 190px !important;
    height: 72px !important;
    overflow: visible !important;
    flex: 0 0 190px !important;
}
.dsnc-brand img,
.dsnc-nav-logo {
    display: block !important;
    width: 180px !important;
    max-width: 180px !important;
    height: auto !important;
    max-height: 72px !important;
    object-fit: contain !important;
    object-position: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}
.dsnc-primary-nav { align-self: center !important; }

/* Homepage hero: make the right-side image blend into the banner instead of
   appearing as a rectangular pasted panel. */
body.home .dsnc-main > .dsnc-hero,
body.front-page .dsnc-main > .dsnc-hero,
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) {
    min-height: 592px !important;
    padding: 72px 0 112px !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 78% 28%, rgba(55,214,228,.18), transparent 32%),
        linear-gradient(110deg, #FFFFFF 0%, #F8FCFF 42%, #E5F7FF 100%) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid {
    display: grid !important;
    grid-template-columns: minmax(0, .98fr) minmax(420px, 1fr) !important;
    align-items: center !important;
    gap: clamp(2rem, 5vw, 5rem) !important;
    position: relative !important;
    min-height: 404px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-copy {
    position: relative !important;
    z-index: 5 !important;
    max-width: 640px !important;
    padding: 20px 0 28px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual {
    position: absolute !important;
    z-index: 1 !important;
    top: -72px !important;
    bottom: -112px !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    width: min(62vw, 840px) !important;
    min-height: 0 !important;
    height: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center right !important;
    filter: saturate(1.02) contrast(1.01) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background:
        linear-gradient(90deg,
            #F8FCFF 0%,
            rgba(248,252,255,.98) 9%,
            rgba(248,252,255,.78) 24%,
            rgba(248,252,255,.28) 43%,
            rgba(248,252,255,0) 62%),
        linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0) 44%) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
    pointer-events: none !important;
    background: radial-gradient(circle at 43% 48%, rgba(255,255,255,.16), transparent 34%) !important;
}

/* Inner-page hero: use the same homepage-style blended image, not the earlier
   page-specific image cards. */
.dsnc-subpage-hero-v22 {
    position: relative !important;
    min-height: 462px !important;
    padding: 60px 0 98px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    border-bottom: 1px solid rgba(1,42,90,.08) !important;
    background:
        radial-gradient(circle at 78% 26%, rgba(55,214,228,.15), transparent 30%),
        linear-gradient(110deg, #FFFFFF 0%, #F8FCFF 44%, #E7F8FF 100%) !important;
}
.dsnc-subpage-hero-v22 .dsnc-network-bg {
    display: block !important;
    opacity: .52 !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-grid {
    display: grid !important;
    grid-template-columns: minmax(0, .98fr) minmax(380px, .82fr) !important;
    align-items: center !important;
    gap: clamp(2rem, 5vw, 5rem) !important;
    position: relative !important;
    min-height: 300px !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-copy {
    position: relative !important;
    z-index: 5 !important;
    max-width: 760px !important;
    padding: 10px 0 18px !important;
}
.dsnc-subpage-hero-v22 .dsnc-breadcrumb {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    gap: .5rem !important;
    margin-bottom: 1rem !important;
    color: #466083 !important;
    font-size: .84rem !important;
    font-weight: 800 !important;
}
.dsnc-subpage-hero-v22 .dsnc-breadcrumb a { color: #005CBA !important; }
.dsnc-subpage-hero-v22 .dsnc-eyebrow {
    color: var(--dsn-teal) !important;
    letter-spacing: .24em !important;
    margin-bottom: .8rem !important;
}
.dsnc-subpage-hero-v22 h1 {
    max-width: 780px !important;
    color: #032B64 !important;
    font-size: clamp(3rem, 5.4vw, 5.4rem) !important;
    line-height: .96 !important;
    letter-spacing: -.065em !important;
}
.dsnc-subpage-hero-v22 .dsnc-page-intro {
    max-width: 660px !important;
    color: #1C3760 !important;
    font-size: clamp(1.02rem, 1.2vw, 1.17rem) !important;
    line-height: 1.58 !important;
    font-weight: 620 !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .9rem !important;
    margin-top: 1.4rem !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media {
    position: absolute !important;
    z-index: 1 !important;
    top: -60px !important;
    bottom: -98px !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    width: min(58vw, 760px) !important;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background:
        linear-gradient(90deg,
            #F8FCFF 0%,
            rgba(248,252,255,.98) 10%,
            rgba(248,252,255,.82) 27%,
            rgba(248,252,255,.32) 48%,
            rgba(248,252,255,0) 68%),
        linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0) 50%) !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 3 !important;
    background: radial-gradient(circle at 46% 50%, rgba(255,255,255,.12), transparent 34%) !important;
    pointer-events: none !important;
}
.dsnc-subpage-hero-v22 img.dsnc-subpage-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center right !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    opacity: .96 !important;
}
.dsnc-subpage-hero-v22 .dsnc-wave-one,
.dsnc-subpage-hero-v22 .dsnc-wave-two,
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-wave-one,
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-wave-two {
    display: block !important;
}

/* Restore page body polish after the cleaned banners. */
.dsnc-page-content,
.dsnc-archive-wrap,
.dsnc-learning-wrap,
.dsnc-commerce-content,
.woocommerce .dsnc-commerce-content {
    background: #fff !important;
}
.dsnc-page-content a,
.dsnc-archive-wrap a,
.dsnc-learning-wrap a,
.woocommerce a {
    color: #005CBA;
    font-weight: 800;
}
.dsnc-page-content a:hover,
.dsnc-archive-wrap a:hover,
.dsnc-learning-wrap a:hover,
.woocommerce a:hover { color: var(--dsn-teal); }
.dsnc-programme-grid-v20,
.dsnc-learning-grid,
.dsnc-wc-grid,
.products.columns-3,
.products.columns-4 {
    align-items: stretch !important;
}

@media (max-width: 1180px) {
    .dsnc-menu { gap: 1rem !important; }
    .dsnc-menu a { font-size: .78rem !important; }
    .dsnc-brand, .dsnc-brand:visited { width: 174px !important; min-width: 174px !important; max-width: 174px !important; flex-basis: 174px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 166px !important; max-width: 166px !important; }
}
@media (max-width: 980px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero),
    .dsnc-subpage-hero-v22 {
        padding: 48px 0 100px !important;
        min-height: auto !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid,
    .dsnc-subpage-hero-v22 .dsnc-subpage-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        min-height: auto !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        position: relative !important;
        inset: auto !important;
        right: auto !important;
        width: 100% !important;
        height: 300px !important;
        margin-top: 1.5rem !important;
        border-radius: 28px !important;
        box-shadow: 0 18px 40px rgba(1,42,90,.12) !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::before,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media::before {
        background: linear-gradient(90deg, rgba(248,252,255,.32), rgba(248,252,255,0) 40%) !important;
    }
    .dsnc-subpage-hero-v22 h1 { font-size: clamp(2.5rem, 10vw, 3.7rem) !important; }
}
@media (max-width: 700px) {
    .dsnc-header-inner { min-height: 82px !important; }
    .dsnc-brand, .dsnc-brand:visited { width: 160px !important; min-width: 160px !important; max-width: 160px !important; flex-basis: 160px !important; height: 64px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 150px !important; max-width: 150px !important; max-height: 64px !important; }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media { height: 240px !important; }
    .dsnc-subpage-hero-v22 .dsnc-subpage-actions { display: grid !important; }
}

/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.3.0: High-quality blended hero repair
   Fixes the pasted-image effect without degrading the image. The hero image is
   kept at full opacity/contrast and blended using a CSS mask, not a white wash.
---------------------------------------------------------------------------- */
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero),
body.home .dsnc-main > .dsnc-hero,
body.front-page .dsnc-main > .dsnc-hero {
    min-height: 592px !important;
    padding: 72px 0 112px !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 82% 24%, rgba(55,214,228,.13), transparent 31%),
        linear-gradient(110deg, #FFFFFF 0%, #F9FDFF 41%, #E6F8FF 100%) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid {
    min-height: 408px !important;
    grid-template-columns: minmax(0, .96fr) minmax(420px, 1fr) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-copy {
    z-index: 8 !important;
    position: relative !important;
    max-width: 660px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual {
    position: absolute !important;
    z-index: 1 !important;
    top: 0 !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    bottom: 0 !important;
    left: 40% !important;
    width: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::before,
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::after {
    content: none !important;
    display: none !important;
    background: none !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center right !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    image-rendering: auto !important;
}
/* Subpage banners: same blended hero language, no separate pasted image cards. */
.dsnc-subpage-hero-v22 {
    min-height: 462px !important;
    padding: 62px 0 98px !important;
    overflow: hidden !important;
    background:
        radial-gradient(circle at 82% 26%, rgba(55,214,228,.13), transparent 31%),
        linear-gradient(110deg, #FFFFFF 0%, #F9FDFF 42%, #E7F8FF 100%) !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-grid {
    min-height: 304px !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-copy {
    position: relative !important;
    z-index: 8 !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media {
    position: absolute !important;
    z-index: 1 !important;
    top: 0 !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    bottom: 0 !important;
    left: 44% !important;
    width: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.50) 23%, #000 40%, #000 100%) !important;
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.50) 23%, #000 40%, #000 100%) !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media::before,
.dsnc-subpage-hero-v22 .dsnc-subpage-media::after {
    content: none !important;
    display: none !important;
    background: none !important;
}
.dsnc-subpage-hero-v22 img.dsnc-subpage-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center right !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    image-rendering: auto !important;
}
@supports not ((mask-image: linear-gradient(#000, #000)) or (-webkit-mask-image: linear-gradient(#000, #000))) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        left: 46% !important;
    }
}
@media (max-width: 1180px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual { left: 44% !important; }
    .dsnc-subpage-hero-v22 .dsnc-subpage-media { left: 48% !important; }
}
@media (max-width: 980px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        position: relative !important;
        inset: auto !important;
        right: auto !important;
        left: auto !important;
        width: 100% !important;
        height: 320px !important;
        margin-top: 1.5rem !important;
        border-radius: 28px !important;
        box-shadow: 0 18px 40px rgba(1,42,90,.12) !important;
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }
}
@media (max-width: 700px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media { height: 250px !important; }
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.5.0: restore approved hero placement and
   standardise banner heights across all pages.
---------------------------------------------------------------------------- */

/* Header/logo breathing room */
.dsnc-header-inner { min-height: 82px !important; }
.dsnc-brand { width: 178px !important; min-width: 178px !important; max-width: 178px !important; flex-basis: 178px !important; padding: 4px 0 !important; }
.dsnc-brand img, .dsnc-brand .custom-logo-link img, .dsnc-nav-logo { width: 168px !important; max-width: 168px !important; max-height: 64px !important; object-fit: contain !important; }

/* Keep the homepage placement that the user approved. */
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) {
    min-height: 592px !important;
    padding: 72px 0 112px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid {
    min-height: 408px !important;
    grid-template-columns: minmax(0, .96fr) minmax(420px, 1fr) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-copy {
    z-index: 8 !important;
    position: relative !important;
    max-width: 660px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual {
    position: absolute !important;
    z-index: 1 !important;
    top: 0 !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    bottom: 0 !important;
    left: 40% !important;
    width: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::before,
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::after {
    content: none !important;
    display: none !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center right !important;
    opacity: 1 !important;
    filter: none !important;
}

/* Make all other page banners the same visual size as the homepage banner. */
.dsnc-subpage-hero-v22 {
    min-height: 592px !important;
    padding: 72px 0 112px !important;
    overflow: hidden !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-grid {
    min-height: 408px !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-copy {
    position: relative !important;
    z-index: 8 !important;
    max-width: 660px !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media {
    position: absolute !important;
    z-index: 1 !important;
    top: 0 !important;
    right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
    bottom: 0 !important;
    left: 40% !important;
    width: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: hidden !important;
    background: transparent !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
}
.dsnc-subpage-hero-v22 .dsnc-subpage-media::before,
.dsnc-subpage-hero-v22 .dsnc-subpage-media::after {
    content: none !important;
    display: none !important;
}
.dsnc-subpage-hero-v22 img.dsnc-subpage-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center right !important;
    opacity: 1 !important;
    filter: none !important;
}

@media (max-width: 1180px) {
    .dsnc-brand { width: 170px !important; min-width: 170px !important; max-width: 170px !important; flex-basis: 170px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 160px !important; max-width: 160px !important; max-height: 62px !important; }
}
@media (max-width: 980px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero),
    .dsnc-subpage-hero-v22 {
        min-height: auto !important;
        padding: 48px 0 100px !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid,
    .dsnc-subpage-hero-v22 .dsnc-subpage-grid {
        min-height: auto !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        position: relative !important;
        inset: auto !important;
        right: auto !important;
        left: auto !important;
        width: 100% !important;
        height: 300px !important;
        margin-top: 1.5rem !important;
        border-radius: 28px !important;
        box-shadow: 0 18px 40px rgba(1,42,90,.12) !important;
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }
}
@media (max-width: 700px) {
    .dsnc-brand { width: 160px !important; min-width: 160px !important; max-width: 160px !important; flex-basis: 160px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 150px !important; max-width: 150px !important; max-height: 60px !important; }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media { height: 240px !important; }
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.6.0: keep approved placement and blend, but use an
   extended hero asset so the image fills vertically without cutting the head.
---------------------------------------------------------------------------- */

.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
.dsnc-subpage-hero-v22 img.dsnc-subpage-image {
    object-position: 54% center !important;
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.7.0: match approved hero placement exactly by
   lowering the visible crop window while keeping full-width blend and equal
   banner heights across all pages.
---------------------------------------------------------------------------- */

.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
.dsnc-subpage-hero-v22 img.dsnc-subpage-image {
    object-position: 54% 20% !important;
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.8.0: keep the approved banner composition, but
   stretch the existing image vertically in CSS so it fills the banner area
   without changing the source artwork.
---------------------------------------------------------------------------- */

@media (min-width: 981px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        top: -14px !important;
        bottom: -14px !important;
    }

    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
    .dsnc-subpage-hero-v22 img.dsnc-subpage-image {
        width: 100% !important;
        height: calc(100% + 28px) !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: 54% 26% !important;
    }
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v2.9.0: final banner-fit correction
   Requirement: keep the image placement and blend, but stretch the existing
   image vertically so it reaches the top blue/green banner boundary and the
   bottom green boundary before the white page background.
---------------------------------------------------------------------------- */

@media (min-width: 981px) {
    /* The image panel itself must occupy the full banner height, not a smaller
       centered strip. This makes it touch the top and bottom banner boundaries. */
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        top: 0 !important;
        bottom: 0 !important;
        height: 100% !important;
        min-height: 100% !important;
        left: 40% !important;
        overflow: hidden !important;
    }

    /* Stretch the current image vertically inside the full-height panel.
       object-fit: fill intentionally stretches the image vertically instead of
       preserving aspect-ratio cropping. This is the requested behaviour. */
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
    .dsnc-subpage-hero-v22 img.dsnc-subpage-image {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        max-height: none !important;
        object-fit: fill !important;
        object-position: center center !important;
        transform: none !important;
        opacity: 1 !important;
        filter: none !important;
    }

    /* Preserve the blend on the left edge only. Do not add white overlays above
       or below the image. */
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        -webkit-mask-size: 100% 100% !important;
        mask-size: 100% 100% !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
    }
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v3.0.0: exact vertical stretch correction.
   The source image is unchanged. The banner visual is now painted as a
   stretched background that reaches from the top blue/green banner boundary
   to the bottom green boundary before the white page section.
---------------------------------------------------------------------------- */

@media (min-width: 981px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        top: 0 !important;
        bottom: 0 !important;
        height: 100% !important;
        min-height: 100% !important;
        left: 40% !important;
        right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
        background-image: url('../images/hero-woman-africa-quality-blend.png') !important;
        background-size: 100% 100% !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        overflow: hidden !important;
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        -webkit-mask-size: 100% 100% !important;
        mask-size: 100% 100% !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
    }

    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
    .dsnc-subpage-hero-v22 img.dsnc-subpage-image {
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v3.1.0: exact banner correction, image quality, and
   programmes archive pagination cleanup.
---------------------------------------------------------------------------- */

@media (min-width: 981px) {
    /* Undo the v3.0 background-image workaround. Use the actual image element,
       preserve the approved horizontal placement, and stretch it vertically to
       fill the visual panel from the top boundary to the bottom green boundary. */
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        top: 0 !important;
        bottom: 0 !important;
        height: 100% !important;
        min-height: 100% !important;
        left: 40% !important;
        right: calc((100vw - min(100vw, var(--dsn-max))) / -2) !important;
        background-image: none !important;
        background: transparent !important;
        overflow: hidden !important;
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.08) 8%, rgba(0,0,0,.52) 22%, #000 38%, #000 100%) !important;
        -webkit-mask-size: 100% 100% !important;
        mask-size: 100% 100% !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
    }

    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
    .dsnc-subpage-hero-v22 img.dsnc-subpage-image {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
        max-height: none !important;
        object-fit: fill !important;
        object-position: center center !important;
        transform: none !important;
        filter: none !important;
        image-rendering: auto !important;
    }
}

/* Sharper programme/course images: use full-size sources and avoid browser scaling blur. */
.dsnc-learning-tile-image,
.dsnc-learning-grid .dsnc-product-image,
.dsnc-catalog-grid .dsnc-product-image {
    min-height: 220px !important;
    max-height: 240px !important;
}
.dsnc-learning-tile-image img,
.dsnc-learning-grid .dsnc-product-image img,
.dsnc-catalog-grid .dsnc-product-image img,
.dsnc-post-list-v20 .dsnc-archive-card img {
    height: 230px !important;
    min-height: 230px !important;
    max-height: 230px !important;
    object-fit: cover !important;
    image-rendering: auto !important;
    filter: none !important;
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
}
.dsnc-post-list-v20 .navigation,
.dsnc-programmes-archive-v20 .navigation.pagination {
    display: none !important;
}


/* --------------------------------------------------------------------------
   Digital Savvy Nation v3.3.0: full site uplift, professional header lockup,
   sharp cards, use cases, case studies, insights and audit hardening.
---------------------------------------------------------------------------- */
.dsnc-site-header,
.dsnc-site-header.is-scrolled {
    background: #fff !important;
    border-bottom: 1px solid rgba(1,42,90,.10) !important;
    box-shadow: 0 4px 18px rgba(1,42,90,.045) !important;
}
.dsnc-header-inner {
    min-height: 88px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    gap: 1.35rem !important;
    overflow: visible !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    width: 230px !important;
    min-width: 230px !important;
    max-width: 230px !important;
    flex-basis: 230px !important;
    height: 72px !important;
    display: flex !important;
    align-items: center !important;
    overflow: visible !important;
    padding: 0 !important;
}
.dsnc-brand img,
.dsnc-brand .custom-logo,
.dsnc-brand .custom-logo-link img,
.dsnc-nav-logo {
    width: 218px !important;
    max-width: 218px !important;
    height: auto !important;
    max-height: 70px !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
    overflow: visible !important;
}
.dsnc-primary-nav { gap: 1.05rem !important; }
.dsnc-menu { gap: 1.28rem !important; }
.dsnc-menu a { font-size: .84rem !important; letter-spacing: -.01em !important; }
.dsnc-header-cta { padding: .95rem 1.22rem !important; min-height: 46px !important; }

.dsnc-usecase-grid,
.dsnc-case-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin: 2rem 0;
}
.dsnc-usecase-grid article,
.dsnc-case-grid article,
.dsnc-reference-box {
    background: #fff;
    border: 1px solid rgba(1,42,90,.12);
    border-radius: 22px;
    box-shadow: 0 12px 32px rgba(1,42,90,.08);
    padding: 1.5rem;
}
.dsnc-usecase-grid h3,
.dsnc-case-grid h3,
.dsnc-reference-box h3 { margin-bottom: .75rem; color: var(--dsn-navy); }
.dsnc-usecase-grid p,
.dsnc-case-grid p,
.dsnc-reference-box li { color: #20385F; font-weight: 560; }
.dsnc-reference-box { margin: 2rem 0; }
.dsnc-reference-box ul { margin: .75rem 0 0; padding-left: 1.15rem; }
.dsnc-reference-box a { color: #005CBA; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.dsnc-learning-tile-image img,
.dsnc-product-image img,
.dsnc-programme-card img {
    image-rendering: auto !important;
    filter: none !important;
    transform: translateZ(0);
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    object-position: center !important;
}
.dsnc-programme-grid,
.dsnc-learning-grid,
.dsnc-catalog-grid,
.dsnc-post-list-v20 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.55rem !important;
}
.dsnc-programme-card,
.dsnc-learning-tile {
    overflow: hidden !important;
    border-radius: 24px !important;
    box-shadow: 0 14px 36px rgba(1,42,90,.08) !important;
}
.dsnc-catalog-warning { display: none !important; }
.admin-bar .dsnc-catalog-warning { display: block !important; }

@media (max-width: 1180px) {
    .dsnc-brand,
    .dsnc-brand:visited { width: 205px !important; min-width: 205px !important; max-width: 205px !important; flex-basis: 205px !important; }
    .dsnc-brand img,
    .dsnc-nav-logo { width: 196px !important; max-width: 196px !important; }
    .dsnc-menu { gap: .82rem !important; }
    .dsnc-menu a { font-size: .75rem !important; }
}
@media (max-width: 980px) {
    .dsnc-usecase-grid,
    .dsnc-case-grid,
    .dsnc-programme-grid,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .dsnc-post-list-v20 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 700px) {
    .dsnc-header-inner { min-height: 84px !important; }
    .dsnc-brand,
    .dsnc-brand:visited { width: 178px !important; min-width: 178px !important; max-width: 178px !important; flex-basis: 178px !important; height: 66px !important; }
    .dsnc-brand img,
    .dsnc-nav-logo { width: 168px !important; max-width: 168px !important; max-height: 62px !important; }
    .dsnc-usecase-grid,
    .dsnc-case-grid,
    .dsnc-programme-grid,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .dsnc-post-list-v20 { grid-template-columns: 1fr !important; }
    .dsnc-learning-tile-image img,
    .dsnc-product-image img,
    .dsnc-programme-card img { height: 210px !important; }
}

/* --------------------------------------------------------------------------
   Digital Savvy Nation v3.4.0: clean professional rebuild layer
   Purpose: preserve the approved visual direction, remove the disjointed hero
   look, make headers consistent across pages, and professionalise grids/cards.
---------------------------------------------------------------------------- */
:root {
    --dsn-navy: #012A5A;
    --dsn-deep: #022B64;
    --dsn-blue: #0B5CBA;
    --dsn-teal: #00A6A6;
    --dsn-aqua: #37D6E4;
    --dsn-green: #43C97E;
    --dsn-soft: #F7F9FA;
    --dsn-ink: #071B44;
    --dsn-muted: #5E6F8F;
    --dsn-line: rgba(1,42,90,.13);
    --dsn-shadow: 0 20px 55px rgba(1,42,90,.13);
}
body { background: #fff !important; }
.dsnc-main { background: #fff !important; }

/* Professional, horizontal header lockup. */
.dsnc-site-header,
.dsnc-site-header.is-scrolled {
    background: rgba(255,255,255,.98) !important;
    border-bottom: 1px solid rgba(1,42,90,.10) !important;
    box-shadow: 0 8px 24px rgba(1,42,90,.055) !important;
    backdrop-filter: none !important;
}
.dsnc-header-inner {
    min-height: 86px !important;
    padding-top: 8px !important;
    padding-bottom: 8px !important;
    overflow: visible !important;
}
.dsnc-brand,
.dsnc-brand:visited {
    width: 226px !important;
    min-width: 226px !important;
    max-width: 226px !important;
    flex-basis: 226px !important;
    height: 70px !important;
    display: flex !important;
    align-items: center !important;
    overflow: visible !important;
}
.dsnc-brand img,
.dsnc-brand .custom-logo,
.dsnc-brand .custom-logo-link img,
.dsnc-nav-logo {
    width: 214px !important;
    max-width: 214px !important;
    height: auto !important;
    max-height: 68px !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
}
.dsnc-menu { gap: 1.2rem !important; }
.dsnc-menu a {
    color: #061C45 !important;
    font-size: .84rem !important;
    font-weight: 850 !important;
    letter-spacing: -.01em !important;
}
.dsnc-menu a::after { bottom: 2px !important; height: 3px !important; }
.dsnc-header-cta {
    border-radius: 12px !important;
    padding: .9rem 1.25rem !important;
    background: linear-gradient(135deg,#012A5A,#001B43) !important;
    box-shadow: 0 12px 26px rgba(1,42,90,.20) !important;
}

/* Clean, unified banner system: homepage and inner pages use the same height,
   same blend, and no pasted/image-card treatment. */
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero),
.dsnc-subpage-hero-v22 {
    position: relative !important;
    min-height: 560px !important;
    padding: 68px 0 112px !important;
    overflow: hidden !important;
    isolation: isolate !important;
    background:
        radial-gradient(circle at 84% 20%, rgba(55,214,228,.16), transparent 31%),
        linear-gradient(110deg, #FFFFFF 0%, #F8FCFF 44%, #E9F8FF 100%) !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-network-bg,
.dsnc-subpage-hero-v22 .dsnc-network-bg {
    opacity: .58 !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid,
.dsnc-subpage-hero-v22 .dsnc-subpage-grid {
    min-height: 382px !important;
    grid-template-columns: minmax(0,.98fr) minmax(420px,1.02fr) !important;
    align-items: center !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-copy,
.dsnc-subpage-hero-v22 .dsnc-subpage-copy {
    position: relative !important;
    z-index: 6 !important;
    max-width: 655px !important;
    padding: 26px 0 30px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) h1,
.dsnc-subpage-hero-v22 h1 {
    color: #012A5A !important;
    font-size: clamp(3.1rem, 5.3vw, 5.45rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.055em !important;
    max-width: 760px !important;
}
.dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) h1 span { color: var(--dsn-teal) !important; }
.dsnc-page-intro,
.dsnc-hero p:not(.dsnc-eyebrow) {
    color: #17315C !important;
    font-size: clamp(1rem, 1.35vw, 1.16rem) !important;
    font-weight: 650 !important;
    max-width: 560px !important;
}
.dsnc-eyebrow {
    color: var(--dsn-teal) !important;
    letter-spacing: .24em !important;
    font-size: .83rem !important;
    font-weight: 950 !important;
}
.dsnc-accent-line,
.dsnc-section-heading span {
    background: linear-gradient(90deg,var(--dsn-teal),var(--dsn-green)) !important;
}

@media (min-width: 981px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        position: absolute !important;
        z-index: 1 !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 46.5% !important;
        width: auto !important;
        height: 100% !important;
        min-height: 100% !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transform: none !important;
        background: transparent !important;
        overflow: hidden !important;
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.14) 9%, rgba(0,0,0,.64) 24%, #000 40%, #000 100%) !important;
        mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.14) 9%, rgba(0,0,0,.64) 24%, #000 40%, #000 100%) !important;
        -webkit-mask-size: 100% 100% !important;
        mask-size: 100% 100% !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::before,
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual::after,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media::before,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media::after {
        content: none !important;
        display: none !important;
    }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual img,
    .dsnc-subpage-hero-v22 img.dsnc-subpage-image {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center center !important;
        transform: none !important;
        filter: none !important;
        image-rendering: auto !important;
    }
}
.dsnc-wave-one { bottom: -86px !important; opacity: .98 !important; }
.dsnc-wave-two { bottom: -43px !important; opacity: .98 !important; }

/* More professional content cards and grids. */
.dsnc-pillars { margin-top: -72px !important; }
.dsnc-pillar-card {
    border-radius: 22px !important;
    box-shadow: 0 22px 58px rgba(1,42,90,.12) !important;
    border: 1px solid rgba(1,42,90,.12) !important;
}
.dsnc-offer-card,
.dsnc-learning-tile,
.dsnc-programme-card,
.dsnc-content-card,
.dsnc-usecase-grid article,
.dsnc-case-grid article,
.dsnc-reference-box,
.woocommerce ul.products li.product,
.dsnc-product-card {
    border: 1px solid rgba(1,42,90,.12) !important;
    border-radius: 24px !important;
    box-shadow: 0 14px 38px rgba(1,42,90,.075) !important;
    background: #fff !important;
}
.dsnc-learning-tile:hover,
.dsnc-programme-card:hover,
.dsnc-offer-card:hover,
.dsnc-product-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 22px 55px rgba(1,42,90,.13) !important;
}
.dsnc-learning-tile-image img,
.dsnc-product-image img,
.dsnc-programme-card img,
.dsnc-post-list-v20 .dsnc-archive-card img {
    width: 100% !important;
    height: 232px !important;
    min-height: 232px !important;
    max-height: 232px !important;
    object-fit: cover !important;
    object-position: center !important;
    image-rendering: auto !important;
    filter: none !important;
}
.dsnc-post-list-v20,
.dsnc-programme-grid,
.dsnc-learning-grid,
.dsnc-catalog-grid {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 1.6rem !important;
}
.dsnc-post-list-v20 .navigation,
.dsnc-programmes-archive-v20 .navigation.pagination,
.navigation.pagination { display: none !important; }
.dsnc-entry-content {
    padding-top: 64px !important;
    padding-bottom: 82px !important;
}
.dsnc-entry-content h2,
.dsnc-archive-intro h2 { margin: 1.2rem 0 .8rem !important; }
.dsnc-entry-content p,
.dsnc-entry-content li { font-size: 1.05rem !important; color: #20385F !important; }
.dsnc-lead-block {
    background: linear-gradient(135deg,rgba(231,248,255,.72),rgba(255,255,255,.95)) !important;
    border: 1px solid rgba(1,42,90,.10) !important;
    border-radius: 24px !important;
    padding: 1.55rem 1.7rem !important;
    box-shadow: 0 12px 32px rgba(1,42,90,.06) !important;
}
.dsnc-content-cta {
    background: linear-gradient(135deg,#012A5A,#00A6A6) !important;
    color: #fff !important;
    border-radius: 26px !important;
    padding: 2rem !important;
    margin: 2.5rem 0 !important;
}
.dsnc-content-cta h2,
.dsnc-content-cta p { color: #fff !important; }
.dsnc-catalog-warning { display: none !important; }
body.logged-in.admin-bar .dsnc-catalog-warning { display: block !important; }

/* Responsive polish. */
@media (max-width: 1180px) {
    .dsnc-brand, .dsnc-brand:visited { width: 200px !important; min-width: 200px !important; max-width: 200px !important; flex-basis: 200px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 190px !important; max-width: 190px !important; }
    .dsnc-menu { gap: .82rem !important; }
    .dsnc-menu a { font-size: .75rem !important; }
}
@media (max-width: 980px) {
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero),
    .dsnc-subpage-hero-v22 { min-height: auto !important; padding: 48px 0 104px !important; }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-grid,
    .dsnc-subpage-hero-v22 .dsnc-subpage-grid { display: grid !important; grid-template-columns: 1fr !important; min-height: auto !important; }
    .dsnc-main > .dsnc-hero:not(.dsnc-subpage-hero) .dsnc-hero-visual,
    .dsnc-subpage-hero-v22 .dsnc-subpage-media {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: 310px !important;
        min-height: 310px !important;
        margin-top: 1.5rem !important;
        border-radius: 26px !important;
        box-shadow: 0 18px 40px rgba(1,42,90,.12) !important;
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }
    .dsnc-post-list-v20,
    .dsnc-programme-grid,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .dsnc-usecase-grid,
    .dsnc-case-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 700px) {
    .dsnc-header-inner { min-height: 82px !important; }
    .dsnc-brand, .dsnc-brand:visited { width: 176px !important; min-width: 176px !important; max-width: 176px !important; flex-basis: 176px !important; height: 64px !important; }
    .dsnc-brand img, .dsnc-nav-logo { width: 166px !important; max-width: 166px !important; max-height: 62px !important; }
    .dsnc-post-list-v20,
    .dsnc-programme-grid,
    .dsnc-learning-grid,
    .dsnc-catalog-grid,
    .dsnc-usecase-grid,
    .dsnc-case-grid { grid-template-columns: 1fr !important; }
    .dsnc-learning-tile-image img,
    .dsnc-product-image img,
    .dsnc-programme-card img,
    .dsnc-post-list-v20 .dsnc-archive-card img { height: 210px !important; min-height: 210px !important; }
}


/* ==========================================================
   v4.0 Reimagined Design Override
   Fresh layout, same branding and content
   ========================================================== */
:root {
  --dsnc-navy: #0b2d67;
  --dsnc-navy-dark: #082149;
  --dsnc-teal: #15b8b5;
  --dsnc-cyan: #18c0e0;
  --dsnc-green: #74c857;
  --dsnc-ink: #12284a;
  --dsnc-text: #1e3151;
  --dsnc-muted: #5d6f8d;
  --dsnc-surface: #ffffff;
  --dsnc-surface-alt: #f4f8fc;
  --dsnc-line: rgba(10, 45, 103, 0.12);
  --dsnc-shadow-soft: 0 16px 38px rgba(8, 33, 73, 0.08);
  --dsnc-shadow-strong: 0 22px 60px rgba(8, 33, 73, 0.12);
  --dsnc-radius-sm: 14px;
  --dsnc-radius-md: 20px;
  --dsnc-radius-lg: 28px;
  --dsnc-radius-xl: 36px;
}

html { scroll-behavior: smooth; }
body {
  background: linear-gradient(180deg, #f7fbff 0%, #f4f8fc 100%);
  color: var(--dsnc-text);
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; }
.dsnc-container { width: min(1240px, calc(100% - 40px)); }
.dsnc-main { overflow: clip; }
.dsnc-section { padding: 84px 0; }
.dsnc-section-alt { background: linear-gradient(180deg, rgba(17, 184, 181, 0.03), rgba(255, 255, 255, 0)); }
.dsnc-content-card,
.dsnc-offer-card,
.dsnc-learning-tile,
.dsnc-programme-card,
.dsnc-product-card,
.dsnc-content-page .woocommerce,
.dsnc-contact-card {
  background: #fff;
  border: 1px solid var(--dsnc-line);
  border-radius: var(--dsnc-radius-lg);
  box-shadow: var(--dsnc-shadow-soft);
}

/* Header */
.dsnc-site-header {
  position: sticky;
  top: 0;
  z-index: 120;
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.98), rgba(247, 251, 255, 0.90));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(10, 45, 103, 0.08);
}
.dsnc-site-header.is-scrolled { box-shadow: 0 10px 28px rgba(8, 33, 73, 0.08); }
.dsnc-utility-bar {
  background: linear-gradient(90deg, var(--dsnc-navy-dark), var(--dsnc-navy));
  color: rgba(255,255,255,0.92);
  font-size: 0.88rem;
}
.dsnc-utility-inner {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.dsnc-utility-copy { margin: 0; font-weight: 600; letter-spacing: 0.04em; }
.dsnc-utility-links { display: flex; align-items: center; gap: 16px; }
.dsnc-utility-links a { color: rgba(255,255,255,0.95); }
.dsnc-header-shell {
  margin: 16px 0;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(10,45,103,0.10);
  border-radius: 24px;
  box-shadow: var(--dsnc-shadow-soft);
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 14px 18px 14px 22px;
}
.dsnc-brand { flex: 0 0 auto; display: inline-flex; align-items: center; max-width: 305px; }
.dsnc-nav-logo { width: 100%; max-width: 300px; height: auto; }
.dsnc-primary-nav {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 22px;
  flex: 1 1 auto;
  justify-content: flex-end;
}
.dsnc-menu, .dsnc-menu > ul {
  display: flex;
  align-items: center;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.dsnc-menu li { list-style: none; }
.dsnc-menu a {
  color: var(--dsnc-ink);
  font-weight: 700;
  font-size: 0.98rem;
  position: relative;
  padding: 10px 0;
}
.dsnc-menu a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dsnc-teal), var(--dsnc-cyan));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.28s ease;
}
.dsnc-menu a:hover::after,
.dsnc-menu .current-menu-item > a::after,
.dsnc-menu .current_page_item > a::after,
.dsnc-menu .current-menu-ancestor > a::after { transform: scaleX(1); }
.dsnc-header-cta,
.dsnc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 14px;
  padding: 15px 24px;
  font-weight: 800;
  line-height: 1;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.dsnc-header-cta,
.dsnc-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--dsnc-navy), #0e4fa3);
  box-shadow: 0 12px 28px rgba(11, 45, 103, 0.22);
}
.dsnc-header-cta:hover,
.dsnc-btn-primary:hover { transform: translateY(-2px); color: #fff; }
.dsnc-btn-outline {
  color: var(--dsnc-navy);
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(10,45,103,0.20);
}
.dsnc-btn-outline:hover { background: #fff; color: var(--dsnc-navy); transform: translateY(-2px); }
.dsnc-nav-toggle {
  display: none;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(10,45,103,0.14);
  background: #fff;
  border-radius: 16px;
  padding: 0;
  margin-left: auto;
}
.dsnc-nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--dsnc-navy);
  margin: 5px auto;
  border-radius: 999px;
}

/* Hero */
.dsnc-hero-v40 {
  padding: 30px 0 0;
}
.dsnc-hero-shell {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
  align-items: stretch;
  background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(236,246,253,0.95));
  border: 1px solid rgba(10,45,103,0.10);
  box-shadow: var(--dsnc-shadow-strong);
  border-radius: 34px;
  overflow: hidden;
}
.dsnc-network-bg {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 12%, rgba(24,192,224,0.12) 2px, transparent 2.5px),
    linear-gradient(120deg, rgba(10,45,103,0.04) 1px, transparent 1px),
    linear-gradient(35deg, rgba(21,184,181,0.04) 1px, transparent 1px);
  background-size: 120px 120px, 130px 130px, 160px 160px;
  opacity: 0.55;
  pointer-events: none;
}
.dsnc-hero-copy,
.dsnc-subpage-copy {
  position: relative;
  z-index: 2;
  padding: 72px 56px;
}
.dsnc-eyebrow {
  margin: 0 0 18px;
  color: #0ea3ab;
  font-weight: 800;
  font-size: 0.96rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}
.dsnc-hero-copy h1,
.dsnc-subpage-copy h1 {
  margin: 0;
  color: var(--dsnc-navy);
  font-size: clamp(3rem, 5.6vw, 5.45rem);
  line-height: 0.94;
  letter-spacing: -0.04em;
}
.dsnc-hero-copy h1 span,
.dsnc-subpage-copy h1 span { color: var(--dsnc-teal); }
.dsnc-accent-line {
  width: 66px;
  height: 5px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--dsnc-teal), var(--dsnc-cyan));
  margin: 24px 0 20px;
}
.dsnc-hero-copy > p:not(.dsnc-eyebrow),
.dsnc-page-intro,
.dsnc-hero-copy .dsnc-proof-intro {
  max-width: 640px;
  margin: 0;
  color: var(--dsnc-text);
  font-size: 1.18rem;
  line-height: 1.75;
}
.dsnc-hero-actions,
.dsnc-subpage-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}
.dsnc-hero-mini-points {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}
.dsnc-hero-mini-points span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(10,45,103,0.08);
  color: var(--dsnc-navy);
  font-weight: 700;
  font-size: 0.92rem;
}
.dsnc-hero-visual,
.dsnc-subpage-media {
  min-height: 600px;
  position: relative;
  background: linear-gradient(135deg, #deeff9 0%, #f4fbff 100%);
}
.dsnc-hero-visual::before,
.dsnc-subpage-media::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.00) 30%);
  z-index: 1;
  pointer-events: none;
}
.dsnc-hero-visual img,
.dsnc-subpage-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Pillars */
.dsnc-pillars {
  position: relative;
  z-index: 3;
  margin-top: -42px;
}
.dsnc-pillar-card {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(10,45,103,0.10);
  border-radius: 26px;
  box-shadow: 0 18px 40px rgba(8,33,73,0.08);
  overflow: hidden;
}
.dsnc-pillar-card article {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 26px;
  min-height: 122px;
}
.dsnc-pillar-card article + article { border-left: 1px solid rgba(10,45,103,0.10); }
.dsnc-pillar-card svg {
  width: 42px;
  height: 42px;
  stroke: currentColor;
  stroke-width: 1.8;
  fill: none;
}
.dsnc-pillar-card article:nth-child(1) { color: #1161c5; }
.dsnc-pillar-card article:nth-child(2) { color: #0d70d2; }
.dsnc-pillar-card article:nth-child(3) { color: #11a7aa; }
.dsnc-pillar-card article:nth-child(4) { color: #67b646; }
.dsnc-pillar-card h2 { margin: 0 0 6px; color: var(--dsnc-navy); font-size: 1.06rem; }
.dsnc-pillar-card p { margin: 0; color: var(--dsnc-muted); line-height: 1.6; }

/* Section headings */
.dsnc-section-heading { margin-bottom: 34px; }
.dsnc-section-heading h2,
.dsnc-row-heading h2 {
  margin: 0;
  color: var(--dsnc-navy);
  font-size: clamp(2rem, 4vw, 3rem);
  letter-spacing: -0.03em;
}
.dsnc-section-heading span {
  display: block;
  width: 84px;
  height: 5px;
  border-radius: 999px;
  margin-top: 16px;
  background: linear-gradient(90deg, var(--dsnc-teal), #4fc36a);
}
.dsnc-center { text-align: center; }
.dsnc-center span { margin-inline: auto; }
.dsnc-row-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 34px;
}
.dsnc-row-heading > a {
  color: var(--dsnc-navy);
  font-weight: 800;
}

/* Offer cards */
.dsnc-offer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.dsnc-offer-card {
  padding: 28px 26px;
  position: relative;
  overflow: hidden;
}
.dsnc-offer-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 6px;
  background: linear-gradient(90deg, var(--dsnc-navy), var(--dsnc-teal), #5cc46a);
}
.dsnc-offer-card h3 { margin: 16px 0 10px; color: var(--dsnc-navy); font-size: 1.35rem; }
.dsnc-offer-card p { margin: 0 0 16px; color: var(--dsnc-muted); line-height: 1.7; }
.dsnc-offer-card a,
.dsnc-mini-cta,
.dsnc-text-link { color: var(--dsnc-navy); font-weight: 800; }
.dsnc-icon-bubble {
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(21,184,181,0.12), rgba(14,79,163,0.06));
  color: var(--dsnc-teal);
}
.dsnc-icon-bubble svg { width: 36px; height: 36px; stroke: currentColor; stroke-width: 1.8; fill: none; }

/* Proof / Why section */
.dsnc-proof { padding-top: 28px; }
.dsnc-proof-grid,
.dsnc-why-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(420px, 0.98fr);
  gap: 32px;
  align-items: center;
}
.dsnc-proof-intro { margin: 0 0 28px; color: var(--dsnc-muted); font-size: 1.08rem; line-height: 1.75; }
.dsnc-benefit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.dsnc-benefit {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding: 20px 18px;
  background: rgba(255,255,255,0.74);
  border: 1px solid rgba(10,45,103,0.08);
  border-radius: 22px;
}
.dsnc-benefit svg { width: 34px; height: 34px; stroke: currentColor; stroke-width: 1.8; fill: none; color: var(--dsnc-teal); }
.dsnc-benefit h3 { margin: 0 0 6px; color: var(--dsnc-navy); font-size: 1.12rem; }
.dsnc-benefit p { margin: 0; color: var(--dsnc-muted); line-height: 1.65; }
.dsnc-campus-card {
  position: relative;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: var(--dsnc-shadow-strong);
  min-height: 520px;
}
.dsnc-campus-card img { width: 100%; height: 100%; object-fit: cover; }
.dsnc-quote-card {
  position: absolute;
  right: 24px;
  bottom: 24px;
  width: min(290px, calc(100% - 48px));
  padding: 24px 22px;
  background: linear-gradient(180deg, rgba(11,45,103,0.96), rgba(8,33,73,0.96));
  color: #fff;
  border-radius: 24px;
  box-shadow: 0 20px 40px rgba(8,33,73,0.28);
}
.dsnc-quote-card > span { font-size: 2rem; display: block; opacity: 0.7; margin-bottom: 4px; }
.dsnc-quote-card p { margin: 0 0 18px; line-height: 1.7; }
.dsnc-quote-card i { display: block; width: 52px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, var(--dsnc-teal), #4fc36a); }

/* Programme / archive cards */
.dsnc-programme-grid,
.dsnc-post-list,
.dsnc-learning-grid,
.dsnc-catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dsnc-programme-card,
.dsnc-learning-tile {
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.dsnc-programme-card > div,
.dsnc-learning-tile-body { padding: 22px 22px 24px; }
.dsnc-programme-card h3,
.dsnc-learning-tile h2,
.dsnc-learning-tile h3 {
  margin: 0 0 10px;
  font-size: 1.52rem;
  line-height: 1.12;
  letter-spacing: -0.03em;
  color: var(--dsnc-navy);
}
.dsnc-programme-card p,
.dsnc-learning-tile p { margin: 0 0 14px; color: var(--dsnc-muted); line-height: 1.72; }
.dsnc-programme-card ul,
.dsnc-learning-tile ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0 0 16px;
  padding: 0;
  color: var(--dsnc-text);
  font-weight: 700;
}
.dsnc-label {
  display: inline-block;
  margin: 0 0 10px;
  color: #0ea3ab;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.dsnc-product-image,
.dsnc-learning-tile-image {
  display: block;
  aspect-ratio: 1.32 / 1;
  overflow: hidden;
}
.dsnc-product-image img,
.dsnc-learning-tile-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}
.dsnc-product-image:hover img,
.dsnc-learning-tile-image:hover img { transform: scale(1.04); }
.dsnc-price { color: var(--dsnc-navy); font-weight: 800; font-size: 1.08rem; }
.dsnc-mini-cta { display: inline-flex; align-items: center; gap: 8px; }

/* Stats */
.dsnc-stats { padding: 0 0 90px; }
.dsnc-stats-grid {
  background: linear-gradient(90deg, var(--dsnc-navy), #0c4e9b 38%, var(--dsnc-teal) 100%);
  border-radius: 30px;
  box-shadow: var(--dsnc-shadow-strong);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
}
.dsnc-stats-grid article {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 28px 34px;
  color: #fff;
}
.dsnc-stats-grid article + article { border-left: 1px solid rgba(255,255,255,0.16); }
.dsnc-stats-grid svg { width: 56px; height: 56px; stroke: #fff; stroke-width: 1.7; fill: none; opacity: 0.95; }
.dsnc-stats-grid strong { display: block; font-size: 2.3rem; line-height: 1; margin-bottom: 8px; }
.dsnc-stats-grid h2 { margin: 0 0 6px; color: #fff; font-size: 1.45rem; line-height: 1.08; }
.dsnc-stats-grid p { margin: 0; color: rgba(255,255,255,0.86); line-height: 1.5; }

/* Subpage hero */
.dsnc-subpage-hero {
  padding: 28px 0 18px;
  background: transparent;
}
.dsnc-subpage-hero .dsnc-container.dsnc-hero-grid,
.dsnc-subpage-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(390px, 1.02fr);
  align-items: stretch;
  background: linear-gradient(135deg, rgba(255,255,255,0.95), rgba(236,246,253,0.95));
  border: 1px solid rgba(10,45,103,0.10);
  border-radius: 32px;
  box-shadow: var(--dsnc-shadow-strong);
  overflow: hidden;
}
.dsnc-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  color: var(--dsnc-muted);
  font-weight: 700;
}
.dsnc-breadcrumb a { color: var(--dsnc-navy); }
.dsnc-subpage-copy h1 { font-size: clamp(2.6rem, 5vw, 4.4rem); }
.dsnc-subpage-media { min-height: 430px; }
.dsnc-page-intro { max-width: 62ch; }

/* Page and content styling */
.dsnc-entry-content,
.dsnc-archive-intro,
.dsnc-search-box,
.dsnc-polished-empty,
.dsnc-empty-state,
.dsnc-registration-panel,
.dsnc-woocommerce-main .woocommerce,
.dsnc-woo-shell {
  margin-top: 28px;
}
.dsnc-entry-content {
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(10,45,103,0.10);
  border-radius: 30px;
  padding: 42px;
  box-shadow: var(--dsnc-shadow-soft);
}
.dsnc-entry-content > *:first-child { margin-top: 0; }
.dsnc-entry-content > *:last-child { margin-bottom: 0; }
.dsnc-entry-content h2,
.dsnc-entry-content h3,
.dsnc-entry-content h4 { color: var(--dsnc-navy); letter-spacing: -0.02em; }
.dsnc-entry-content h2 { font-size: clamp(1.9rem, 3vw, 2.55rem); margin-top: 1.4em; margin-bottom: 0.6em; }
.dsnc-entry-content h3 { font-size: clamp(1.35rem, 2.4vw, 1.8rem); margin-top: 1.3em; margin-bottom: 0.55em; }
.dsnc-entry-content p,
.dsnc-entry-content li { color: var(--dsnc-text); line-height: 1.82; }
.dsnc-entry-content ul,
.dsnc-entry-content ol { padding-left: 1.3rem; }
.dsnc-entry-content blockquote {
  margin: 28px 0;
  padding: 24px 26px;
  border-left: 5px solid var(--dsnc-teal);
  background: linear-gradient(180deg, rgba(21,184,181,0.08), rgba(11,45,103,0.03));
  border-radius: 0 18px 18px 0;
}
.dsnc-entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 24px 0;
  overflow: hidden;
  border-radius: 18px;
}
.dsnc-entry-content th,
.dsnc-entry-content td {
  border: 1px solid rgba(10,45,103,0.10);
  padding: 14px 16px;
  text-align: left;
}
.dsnc-entry-content th { background: rgba(10,45,103,0.06); color: var(--dsnc-navy); }
.dsnc-entry-content .wp-block-image img,
.dsnc-entry-content figure img { border-radius: 20px; }
.dsnc-page-grid,
.dsnc-case-grid,
.dsnc-usecase-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 26px;
}
.dsnc-lead-block {
  padding: 28px 30px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(11,45,103,0.05), rgba(21,184,181,0.06));
  border: 1px solid rgba(10,45,103,0.08);
  margin-bottom: 28px;
}
.dsnc-highlight-card {
  background: linear-gradient(180deg, #0b2d67, #0b4c96);
  color: #fff;
}
.dsnc-highlight-card h3,
.dsnc-highlight-card p,
.dsnc-highlight-card li,
.dsnc-highlight-card a { color: #fff; }
.dsnc-content-cta {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.dsnc-reference-box,
.dsnc-catalog-notice {
  padding: 18px 20px;
  border-radius: 18px;
  margin-bottom: 20px;
  background: rgba(10,45,103,0.04);
  border: 1px solid rgba(10,45,103,0.10);
}
.dsnc-catalog-warning { background: rgba(224,88,35,0.08); border-color: rgba(224,88,35,0.18); }

/* Learning details */
.dsnc-learning-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 24px;
}
.dsnc-learning-detail-main,
.dsnc-learning-register-card { padding: 28px; }
.dsnc-learning-summary { color: var(--dsnc-muted); font-size: 1.04rem; }
.dsnc-learning-meta-list { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; }
.dsnc-learning-meta-list span {
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(21,184,181,0.08);
  color: var(--dsnc-navy);
  font-weight: 700;
}
.dsnc-sanitised-course-content > *:first-child { margin-top: 0; }

/* Forms / contact */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="password"],
input[type="search"],
textarea,
select {
  width: 100%;
  border: 1px solid rgba(10,45,103,0.16);
  border-radius: 14px;
  padding: 14px 16px;
  background: #fff;
  color: var(--dsnc-text);
}
textarea { min-height: 140px; }
button,
input[type="submit"],
.wp-element-button,
.button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button,
.woocommerce #respond input#submit {
  border: none;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--dsnc-navy), #0e4fa3);
  color: #fff;
  padding: 14px 22px;
  font-weight: 800;
}

/* Footer */
.dsnc-footer {
  margin-top: 84px;
  background: linear-gradient(180deg, #0a2450 0%, #081a3a 100%);
  color: rgba(255,255,255,0.88);
  position: relative;
  padding-top: 38px;
}
.dsnc-footer-top {
  padding-bottom: 20px;
}
.dsnc-footer-cta-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) auto;
  gap: 28px;
  align-items: center;
  padding: 28px 30px;
  background: linear-gradient(135deg, rgba(255,255,255,0.07), rgba(21,184,181,0.16));
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 28px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}
.dsnc-footer-cta-shell h2 { color: #fff; margin: 8px 0 12px; font-size: clamp(2rem, 4vw, 2.9rem); }
.dsnc-footer-cta-shell p { margin: 0; line-height: 1.75; }
.dsnc-footer-cta-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.dsnc-footer .dsnc-btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,0.28); }
.dsnc-footer .dsnc-btn-outline:hover { color: #fff; background: rgba(255,255,255,0.08); }
.dsnc-footer-grid {
  padding: 34px 0 24px;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr 1.1fr;
  gap: 26px;
}
.dsnc-footer-logo { max-width: 260px; height: auto; }
.dsnc-footer h3 { margin: 0 0 14px; color: #fff; font-size: 1.16rem; }
.dsnc-footer p,
.dsnc-footer li,
.dsnc-footer a { color: rgba(255,255,255,0.80); line-height: 1.72; }
.dsnc-footer ul { list-style: none; margin: 0; padding: 0; }
.dsnc-footer li + li { margin-top: 8px; }
.dsnc-footer a:hover { color: #fff; }
.dsnc-footer-tagline { font-weight: 800; color: #fff; margin: 14px 0 8px; }
.dsnc-socials { display: flex; gap: 10px; margin-top: 16px; }
.dsnc-socials a {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(255,255,255,0.06);
  font-weight: 800;
}
.dsnc-contact-card span { display: inline-block; width: 1.4em; color: #fff; }
.dsnc-footer-bottom {
  padding: 22px 0 30px;
  border-top: 1px solid rgba(255,255,255,0.10);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.dsnc-footer-bottom p { margin: 0; }

/* Search / none */
.dsnc-search-box,
.dsnc-polished-empty,
.dsnc-empty-state {
  background: #fff;
  border-radius: 26px;
  padding: 28px;
  border: 1px solid rgba(10,45,103,0.10);
  box-shadow: var(--dsnc-shadow-soft);
}

/* Responsive */
@media (max-width: 1180px) {
  .dsnc-offer-grid,
  .dsnc-programme-grid,
  .dsnc-post-list,
  .dsnc-learning-grid,
  .dsnc-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dsnc-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dsnc-pillar-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dsnc-pillar-card article:nth-child(3) { border-left: none; }
  .dsnc-pillar-card article:nth-child(n+3) { border-top: 1px solid rgba(10,45,103,0.10); }
}

@media (max-width: 1024px) {
  .dsnc-proof-grid,
  .dsnc-why-grid,
  .dsnc-learning-detail-grid,
  .dsnc-page-grid,
  .dsnc-case-grid,
  .dsnc-usecase-grid,
  .dsnc-footer-cta-shell,
  .dsnc-hero-shell,
  .dsnc-subpage-grid,
  .dsnc-subpage-hero .dsnc-container.dsnc-hero-grid {
    grid-template-columns: 1fr;
  }
  .dsnc-hero-visual,
  .dsnc-subpage-media { min-height: 420px; order: -1; }
  .dsnc-hero-copy,
  .dsnc-subpage-copy { padding: 44px 34px; }
  .dsnc-benefit-grid { grid-template-columns: 1fr; }
  .dsnc-stats-grid { grid-template-columns: 1fr; }
  .dsnc-stats-grid article + article { border-left: none; border-top: 1px solid rgba(255,255,255,0.16); }
}

@media (max-width: 900px) {
  .dsnc-nav-toggle { display: inline-block; }
  .dsnc-primary-nav {
    position: absolute;
    top: calc(100% + 12px);
    left: 20px;
    right: 20px;
    margin-left: 0;
    background: rgba(255,255,255,0.98);
    border: 1px solid rgba(10,45,103,0.10);
    box-shadow: var(--dsnc-shadow-strong);
    border-radius: 22px;
    padding: 18px;
    display: block;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
  }
  .dsnc-primary-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
  .dsnc-menu, .dsnc-menu > ul { flex-direction: column; align-items: flex-start; gap: 8px; }
  .dsnc-menu a { display: block; width: 100%; padding: 8px 0; }
  .dsnc-header-cta { margin-top: 14px; width: 100%; }
  .dsnc-header-shell { position: relative; }
  .dsnc-utility-inner { flex-direction: column; justify-content: center; padding: 10px 0; text-align: center; }
  .dsnc-utility-links { flex-wrap: wrap; justify-content: center; }
}

@media (max-width: 768px) {
  .dsnc-container { width: min(100% - 24px, 1240px); }
  .dsnc-header-shell { padding: 12px 14px; gap: 14px; }
  .dsnc-brand { max-width: 230px; }
  .dsnc-nav-logo { max-width: 220px; }
  .dsnc-hero-copy h1,
  .dsnc-subpage-copy h1 { font-size: clamp(2.4rem, 11vw, 4rem); }
  .dsnc-offer-grid,
  .dsnc-programme-grid,
  .dsnc-post-list,
  .dsnc-learning-grid,
  .dsnc-catalog-grid,
  .dsnc-pillar-card,
  .dsnc-footer-grid { grid-template-columns: 1fr; }
  .dsnc-pillar-card article + article { border-left: none; border-top: 1px solid rgba(10,45,103,0.10); }
  .dsnc-row-heading { flex-direction: column; align-items: flex-start; }
  .dsnc-entry-content { padding: 28px 22px; }
  .dsnc-footer-bottom { flex-direction: column; align-items: flex-start; }
  .dsnc-section { padding: 66px 0; }
  .dsnc-pillars { margin-top: -30px; }
}

@media (max-width: 520px) {
  .dsnc-header-shell { margin: 12px 0; }
  .dsnc-brand { max-width: 190px; }
  .dsnc-nav-logo { max-width: 182px; }
  .dsnc-hero-copy,
  .dsnc-subpage-copy { padding: 36px 20px; }
  .dsnc-hero-visual,
  .dsnc-subpage-media { min-height: 300px; }
  .dsnc-footer-cta-shell { padding: 22px 18px; }
  .dsnc-btn,
  .dsnc-header-cta { width: 100%; }
  .dsnc-hero-actions,
  .dsnc-subpage-actions,
  .dsnc-content-cta { flex-direction: column; }
}
