:root {
    --navy: #09203a;
    --navy-2: #123961;
    --navy-3: #061527;
    --steel: #4e6378;
    --blue: #1d5f8d;
    --gold: #c9a24a;
    --gold-dark: #9f7a27;
    --silver: #e7ebef;
    --paper: #ffffff;
    --cream: #f7f4ed;
    --mist: #eef2f5;
    --ink: #1c2736;
    --muted: #627085;
    --line: #cfd8e2;
    --line-dark: rgba(255,255,255,0.16);
    --shadow: 0 18px 45px rgba(6, 21, 39, 0.22);
    --soft-shadow: 0 9px 26px rgba(9, 32, 58, 0.14);
    --classic-border: 1px solid rgba(16, 45, 74, 0.18);
    --wrap: 1180px;
    --font-main: Arial, Helvetica, sans-serif;
    --font-head: Georgia, 'Times New Roman', serif;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-main);
    line-height: 1.65;
    background:
        radial-gradient(circle at 50% 0, rgba(255,255,255,0.72), transparent 360px),
        linear-gradient(90deg, rgba(9,32,58,0.035) 1px, transparent 1px),
        linear-gradient(0deg, rgba(9,32,58,0.032) 1px, transparent 1px),
        #d7dde4;
    background-size: auto, 44px 44px, 44px 44px, auto;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(7,20,36,0.09), transparent 18%, transparent 82%, rgba(7,20,36,0.09));
    z-index: -1;
}

img { max-width: 100%; height: auto; }

a {
    color: var(--blue);
    text-decoration: none;
    transition: color 180ms ease, background 180ms ease, border 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

a:hover,
a:focus { color: var(--gold-dark); }

button,
input,
select,
textarea { font: inherit; }

.wrap {
    width: min(100% - 40px, var(--wrap));
    margin: 0 auto;
}

.site-frame {
    width: min(100%, 1320px);
    margin: 0 auto;
    background: var(--paper);
    box-shadow: 0 0 42px rgba(9, 23, 42, 0.25);
    min-height: 100vh;
    overflow: hidden;
}

.screen-reader-text,
.skip-link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link:focus {
    left: 18px;
    top: 18px;
    z-index: 99999;
    width: auto;
    height: auto;
    padding: 12px 18px;
    margin: 0;
    clip: auto;
    background: var(--paper);
    color: var(--navy);
    box-shadow: var(--shadow);
}

.executive-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: var(--paper);
    box-shadow: 0 9px 25px rgba(6, 21, 39, 0.14);
}

.admin-bar .executive-header { top: 32px; }

.top-ribbon {
    max-height: 50px;
    overflow: hidden;
    color: rgba(255,255,255,0.9);
    background: linear-gradient(#0d2947, #061627);
    border-bottom: 1px solid rgba(255,255,255,0.1);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: max-height 180ms ease, opacity 180ms ease, border-color 180ms ease;
}

.top-ribbon strong { color: #fff; font-weight: 800; }
.ribbon-legal, .ribbon-scope { display: inline-flex; align-items: center; gap: 6px; }

.top-ribbon-inner {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.brand-panel {
    background:
        linear-gradient(180deg, #ffffff 0%, #f4f7f9 100%);
    border-bottom: 1px solid var(--line);
}

.brand-panel-inner {
    min-height: 103px;
    display: grid;
    grid-template-columns: minmax(270px, 1fr) auto;
    align-items: center;
    gap: 30px;
    transition: min-height 180ms ease;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    color: var(--navy);
}

.brand:hover,
.brand:focus { color: var(--navy); }

.crest {
    width: 74px;
    height: 74px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.18), transparent 40%),
        linear-gradient(135deg, #0e3155, #061527);
    border: 1px solid rgba(255,255,255,0.55);
    outline: 3px solid var(--gold);
    outline-offset: -7px;
    box-shadow: 0 8px 18px rgba(6, 21, 39, 0.25), inset 0 1px 0 rgba(255,255,255,0.35);
    font-weight: 800;
    letter-spacing: 0.1em;
    font-size: 20px;
    transition: width 180ms ease, height 180ms ease, font-size 180ms ease;
}

.crest.small {
    width: 52px;
    height: 52px;
    outline-width: 2px;
    outline-offset: -6px;
    font-size: 14px;
}

.brand-copy strong {
    display: block;
    color: var(--navy);
    font-family: var(--font-head);
    font-size: clamp(24px, 2vw, 34px);
    line-height: 1.1;
    letter-spacing: -0.025em;
    transition: font-size 180ms ease;
}

.brand-copy small {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.header-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(122px, 1fr));
    gap: 10px;
}

.header-cards div {
    min-height: 62px;
    padding: 9px 12px;
    background: linear-gradient(180deg, #fff, #edf2f6);
    border: 1px solid var(--line);
    box-shadow: inset 0 1px 0 #fff;
}

.header-cards strong {
    display: block;
    color: var(--gold-dark);
    font-family: var(--font-head);
    font-size: 20px;
    line-height: 1.1;
}

.header-cards span {
    display: block;
    margin-top: 4px;
    color: var(--steel);
    font-size: 11px;
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

@media (min-width: 901px) {
    .executive-header.is-scrolled .top-ribbon {
        max-height: 0;
        opacity: 0;
        border-bottom-color: transparent;
    }
    .executive-header.is-scrolled .brand-panel-inner { min-height: 72px; }
    .executive-header.is-scrolled .crest { width: 54px; height: 54px; font-size: 15px; outline-width: 2px; outline-offset: -6px; }
    .executive-header.is-scrolled .brand .custom-logo { max-height: 56px; }
    .executive-header.is-scrolled .brand-copy strong { font-size: clamp(22px, 1.65vw, 28px); }
    .executive-header.is-scrolled .brand-copy small { margin-top: 3px; font-size: 10px; }
    .executive-header.is-scrolled .header-cards div { min-height: 54px; padding-top: 7px; padding-bottom: 7px; }
}

.nav-bar {
    background: linear-gradient(180deg, #1c4c78, #102f50 50%, #0a223d 51%, #07182c 100%);
    border-top: 1px solid rgba(255,255,255,0.55);
    border-bottom: 4px solid var(--gold);
}

.nav-bar-inner {
    min-height: 50px;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}

.primary-nav {
    display: flex;
    align-items: stretch;
}

.primary-nav ul {
    display: flex;
    align-items: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-nav li { position: relative; }

.primary-nav a {
    display: flex;
    align-items: center;
    min-height: 50px;
    padding: 0 17px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-left: 1px solid rgba(255,255,255,0.14);
    border-right: 1px solid rgba(0,0,0,0.22);
    text-shadow: 0 -1px 0 rgba(0,0,0,0.35);
}

.primary-nav a:hover,
.primary-nav a:focus-visible,
.primary-nav .current-menu-item > a {
    color: #fff;
    background: linear-gradient(180deg, #c8a14a, #9e771e);
}

.primary-nav .sub-menu {
    position: absolute;
    z-index: 100;
    top: 100%;
    left: 0;
    display: flex;
    min-width: 300px;
    flex-direction: column;
    align-items: stretch;
    visibility: hidden;
    opacity: 0;
    transform: translateY(8px);
    background: #07182c;
    border: 1px solid rgba(255,255,255,0.16);
    border-top: 3px solid var(--gold);
    box-shadow: 0 14px 28px rgba(0,0,0,0.28);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.primary-nav li:hover > .sub-menu,
.primary-nav li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.primary-nav .sub-menu a {
    min-height: 42px;
    padding: 10px 16px;
    font-size: 11px;
    line-height: 1.35;
    white-space: normal;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.primary-nav .sub-menu li:last-child > a { border-bottom: 0; }

.nav-cta {
    display: flex;
    align-items: center;
    align-self: stretch;
    padding: 0 20px;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: linear-gradient(180deg, #d1aa53, #a57920);
    border-left: 1px solid rgba(255,255,255,0.22);
    text-shadow: 0 -1px 0 rgba(0,0,0,0.28);
}

.nav-cta:hover,
.nav-cta:focus { color: #fff; background: linear-gradient(180deg, #e2bd68, #a77922); }

.nav-toggle {
    display: none;
    width: 48px;
    height: 40px;
    margin: 5px 0;
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(0,0,0,0.18);
    cursor: pointer;
}

.nav-toggle span:not(.screen-reader-text) {
    display: block;
    width: 24px;
    height: 2px;
    margin: 5px auto;
    background: #fff;
}

.section-label {
    margin: 0 0 10px;
    color: var(--gold-dark);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    line-height: 1.25;
    text-transform: uppercase;
}

.section-label.light { color: #e8c96d; }

h1, h2, h3, h4 {
    margin: 0 0 16px;
    color: var(--navy);
    font-family: var(--font-head);
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.16;
}

h1 { font-size: clamp(34px, 4.4vw, 58px); }
h2 { font-size: clamp(27px, 3vw, 42px); }
h3 { font-size: 24px; }

p { margin: 0 0 16px; }

.button,
.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 21px;
    border-radius: 2px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.3), 0 8px 18px rgba(6, 21, 39, 0.18);
}

.button:hover,
.button:focus { transform: translateY(-1px); }

.button-gold,
.wp-block-button__link {
    color: #fff;
    border: 1px solid #8b681d;
    background: linear-gradient(180deg, #d8b45f, #a77b22);
    text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
}

.button-gold:hover,
.button-gold:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus { color: #fff; }

.button-silver {
    color: var(--navy);
    border: 1px solid #c5ced8;
    background: linear-gradient(180deg, #ffffff, #dfe6ed);
}

.button-silver:hover,
.button-silver:focus { color: var(--navy); }

.classic-hero {
    position: relative;
    color: #fff;
    padding: 30px 0 28px;
    background:
        linear-gradient(120deg, rgba(5,17,31,0.94), rgba(12,43,72,0.86)),
        url('../img/pattern-grid.svg'),
        linear-gradient(135deg, #09203a, #1f4c74);
}

.classic-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 82% 28%, rgba(201,162,74,0.24), transparent 260px), linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.05) 50%, transparent 100%);
    pointer-events: none;
}

.hero-console {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 310px;
    gap: 22px;
    align-items: stretch;
}

.hero-window {
    position: relative;
    min-height: 510px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.26);
    box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,0.18);
    background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
}

.hero-slide {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
    align-items: center;
    gap: 25px;
    padding: 54px 46px 72px;
    opacity: 0;
    transform: translateX(26px);
    transition: opacity 420ms ease, transform 420ms ease;
    pointer-events: none;
}

.hero-slide.is-active {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.hero-copy h1 { color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.hero-copy p { color: rgba(255,255,255,0.88); font-size: 18px; max-width: 620px; }

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.hero-graphic {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-graphic::before {
    content: "";
    position: absolute;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.16), rgba(201,162,74,0.08) 46%, transparent 68%);
    filter: blur(2px);
}

.hero-graphic img {
    position: relative;
    width: min(100%, 470px);
    filter: drop-shadow(0 24px 40px rgba(0,0,0,0.35));
}

.classic-slider-controls {
    position: absolute;
    left: 46px;
    bottom: 27px;
    display: flex;
    gap: 8px;
}

.classic-dot {
    width: 38px;
    height: 9px;
    padding: 0;
    border: 1px solid rgba(255,255,255,0.4);
    background: rgba(255,255,255,0.18);
    cursor: pointer;
}

.classic-dot.is-active { background: var(--gold); border-color: var(--gold); }

.consultation-panel {
    padding: 26px 23px;
    background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(237,242,247,0.94));
    color: var(--ink);
    border: 1px solid rgba(255,255,255,0.55);
    box-shadow: var(--shadow);
}

.consultation-panel h2 { font-size: 28px; }

.consultation-panel p { color: var(--muted); }

.consultation-panel ul {
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.consultation-panel li {
    padding: 13px 0 13px 32px;
    border-top: 1px solid var(--line);
    color: var(--steel);
    font-weight: 700;
    position: relative;
}

.consultation-panel li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 13px;
    color: var(--gold-dark);
    font-weight: 900;
}

.stat-ledger {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 22px;
    background: linear-gradient(180deg, #fff, #edf2f6);
    border: 1px solid rgba(255,255,255,0.58);
    box-shadow: var(--shadow);
}

.ledger-box {
    padding: 22px 20px;
    border-right: 1px solid var(--line);
    text-align: center;
}

.ledger-box:last-child { border-right: 0; }

.ledger-box strong {
    display: block;
    color: var(--navy);
    font-family: var(--font-head);
    font-size: 39px;
    line-height: 1;
}

.ledger-box span:last-child {
    display: block;
    margin-top: 8px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.35;
    text-transform: uppercase;
}

.section { padding: 76px 0; }

.intro-section,
.service-section,
.governance-section,
.partners-section { background: #fff; }

.sector-section,
.transformation-section { background: var(--mist); }

.classic-grid { display: grid; gap: 28px; align-items: start; }
.two-col { grid-template-columns: 0.95fr 1.05fr; }

.title-card,
.text-panel,
.executive-report,
.value-list,
.classic-content-card,
.classic-post-card,
.not-found-card {
    background: #fff;
    border: var(--classic-border);
    box-shadow: var(--soft-shadow);
}

.title-card { padding: 34px; border-top: 5px solid var(--gold); }
.text-panel { padding: 34px; color: var(--steel); font-size: 17px; }

.title-card h2,
.text-panel h2 { margin-bottom: 0; }

.section-heading {
    max-width: 860px;
    margin-bottom: 34px;
}

.service-directory {
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.service-card + .service-card { border-top: 1px solid var(--line); }

.service-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 17px;
    padding: 20px 24px;
    color: var(--navy);
    background: linear-gradient(180deg, #fff, #f0f4f7);
    border: 0;
    border-left: 5px solid transparent;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-head);
    font-size: 25px;
    font-weight: 700;
}

.service-card.is-open .service-trigger {
    border-left-color: var(--gold);
    background: linear-gradient(180deg, #f8fbfd, #e7eef5);
}

.service-trigger img {
    width: 56px;
    height: 56px;
    flex: 0 0 auto;
}

.service-content {
    display: none;
    padding: 0 30px 32px 102px;
}

.service-card.is-open .service-content { display: block; }

.service-content p {
    color: var(--steel);
    font-size: 17px;
    max-width: 900px;
}

.check-list {
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.check-list.columns {
    columns: 2;
    column-gap: 36px;
}

.check-list li {
    position: relative;
    break-inside: avoid;
    padding: 9px 0 9px 29px;
    color: var(--steel);
}

.check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    width: 11px;
    height: 11px;
    background: linear-gradient(135deg, var(--gold), var(--gold-dark));
    box-shadow: 0 0 0 3px rgba(201,162,74,0.18);
}

.sector-grid { grid-template-columns: 0.9fr 1.1fr; align-items: center; }
.sector-copy p { color: var(--steel); }

.sector-table {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--line);
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.sector-table span {
    min-height: 86px;
    display: flex;
    align-items: center;
    padding: 18px;
    color: var(--navy);
    font-weight: 800;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: linear-gradient(180deg, #fff, #f4f7fa);
}

.sector-table span:nth-child(3n) { border-right: 0; }
.sector-table span:nth-last-child(-n+3) { border-bottom: 0; }

.markets-band {
    padding: 76px 0;
    color: #fff;
    background:
        linear-gradient(120deg, rgba(6,21,39,0.96), rgba(12,49,82,0.9)),
        url('../img/pattern-grid.svg'),
        #0c2744;
}

.markets-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 44px;
    align-items: center;
}

.map-plaque {
    padding: 26px;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.18);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), var(--shadow);
}

.map-plaque img { display: block; width: 100%; filter: drop-shadow(0 12px 24px rgba(0,0,0,0.25)); }

.markets-copy h2 { color: #fff; }
.markets-copy p { color: rgba(255,255,255,0.82); font-size: 17px; }

.market-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.market-pills span {
    padding: 9px 13px;
    color: #fff;
    background: linear-gradient(180deg, rgba(255,255,255,0.16), rgba(255,255,255,0.07));
    border: 1px solid rgba(255,255,255,0.2);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.governance-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
    gap: 26px;
}

.executive-report { overflow: hidden; }

.report-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 24px;
    color: #fff;
    background: linear-gradient(180deg, #1c4c78, #0b243e);
    border-bottom: 4px solid var(--gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.executive-report h2,
.executive-report p { margin-left: 30px; margin-right: 30px; }
.executive-report h2 { margin-top: 30px; }
.executive-report p { color: var(--steel); font-size: 17px; }

.sic-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 32px;
    border-top: 1px solid var(--line);
}

.sic-row span {
    padding: 21px;
    color: var(--steel);
    border-right: 1px solid var(--line);
    background: linear-gradient(180deg, #fff, #f3f6f8);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

.sic-row span:last-child { border-right: 0; }
.sic-row strong { display: block; color: var(--navy); font-family: var(--font-head); font-size: 27px; letter-spacing: 0; }

.value-list {
    padding: 28px;
    border-top: 5px solid var(--gold);
}

.value-list h3 { margin-bottom: 14px; }
.value-list ul { margin: 0; padding: 0; list-style: none; }
.value-list li {
    padding: 10px 0 10px 23px;
    border-bottom: 1px solid var(--line);
    color: var(--steel);
    position: relative;
    font-weight: 700;
}
.value-list li:last-child { border-bottom: 0; }
.value-list li::before { content: "•"; position: absolute; left: 0; color: var(--gold-dark); font-weight: 900; }

.transformation-grid {
    display: grid;
    grid-template-columns: minmax(320px, 0.88fr) minmax(0, 1.12fr);
    gap: 42px;
    align-items: center;
}

.dashboard-graphic {
    padding: 22px;
    background: #fff;
    border: 1px solid var(--line);
    box-shadow: var(--soft-shadow);
}

.dashboard-graphic img { display: block; }

.partner-row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    border: 1px solid var(--line);
    box-shadow: var(--soft-shadow);
    background: #fff;
}

.partner-row a {
    min-height: 122px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px;
    color: var(--navy);
    border-right: 1px solid var(--line);
    background: linear-gradient(180deg, #fff, #f1f5f8);
}

.partner-row a:last-child { border-right: 0; }
.partner-row a:hover,
.partner-row a:focus { background: linear-gradient(180deg, #fefbf4, #f1e4bf); transform: translateY(-2px); }
.partner-row span { font-family: var(--font-head); font-size: 22px; font-weight: 700; line-height: 1.15; }
.partner-row small { margin-top: 8px; color: var(--gold-dark); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }

.mission-panel {
    padding: 72px 0;
    color: #fff;
    text-align: center;
    background:
        linear-gradient(120deg, rgba(6,21,39,0.95), rgba(10,35,61,0.93)),
        linear-gradient(90deg, rgba(201,162,74,0.18), transparent 35%, transparent 65%, rgba(201,162,74,0.18)),
        var(--navy);
    border-top: 5px solid var(--gold);
}

.mission-panel h2 {
    max-width: 1030px;
    margin: 0 auto 18px;
    color: #fff;
    font-size: clamp(26px, 3vw, 42px);
}

.mission-panel > .wrap > p:not(.section-label) {
    max-width: 980px;
    margin: 0 auto 26px;
    color: rgba(255,255,255,0.78);
    font-size: 17px;
}

.footer-top {
    padding: 44px 0;
    background: linear-gradient(180deg, #f8fafc, #e8eef4);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.footer-cta {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 30px;
    align-items: center;
}
.footer-cta h2 { font-size: 32px; }
.footer-cta p { color: var(--steel); max-width: 760px; }

.site-footer {
    color: rgba(255,255,255,0.82);
    background: #061527;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.25fr 1.05fr 0.95fr 0.95fr 0.8fr;
    gap: 30px;
    padding: 54px 0;
}

.footer-grid h3 {
    color: #fff;
    font-size: 21px;
}

.footer-grid p { color: rgba(255,255,255,0.72); }
.footer-grid ul { margin: 0; padding: 0; list-style: none; }
.footer-grid li,
.footer-grid a { color: rgba(255,255,255,0.72); }
.footer-grid li { padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.07); }
.footer-grid a:hover,
.footer-grid a:focus { color: #fff; }
.footer-brand h3 { margin-top: 16px; }

.footer-bottom {
    padding: 18px 0;
    color: rgba(255,255,255,0.58);
    background: #030b14;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.footer-bottom .wrap {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.content-main {
    padding: 64px 0;
    background: var(--mist);
}

.content-wrap { max-width: 960px; }
.page-wrap { max-width: 900px; }

.archive-header {
    margin-bottom: 28px;
    padding: 34px;
    background: #fff;
    border: var(--classic-border);
    box-shadow: var(--soft-shadow);
}

.post-list { display: grid; gap: 24px; }

.classic-post-card { overflow: hidden; }
.post-thumb { display: block; background: var(--mist); }
.post-card-body { padding: 28px; }
.post-card-body h2 { font-size: 31px; }
.post-meta { margin-bottom: 12px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.read-more { font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; font-size: 13px; }

.classic-content-card { padding: 40px; }
.entry-header { margin-bottom: 24px; }
.entry-content { color: var(--steel); font-size: 17px; }
.entry-content a { font-weight: 700; }
.entry-content img { box-shadow: var(--soft-shadow); }
.featured-image { margin: 0 0 28px; }
.featured-image img { display: block; width: 100%; }

.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table td,
.wp-block-table th { border: 1px solid var(--line); padding: 12px; }
.wp-block-quote { margin-left: 0; padding-left: 22px; border-left: 4px solid var(--gold); color: var(--steel); }

.reveal-item {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 520ms ease, transform 520ms ease;
}
.reveal-item.is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
    .reveal-item { opacity: 1; transform: none; }
}

@media (max-width: 1100px) {
    .header-cards { display: none; }
    .brand-panel-inner { grid-template-columns: 1fr; }
    .hero-console { grid-template-columns: 1fr; }
    .consultation-panel { display: none; }
    .hero-slide { grid-template-columns: 1fr; }
    .hero-graphic { opacity: 0.35; position: absolute; right: -10px; bottom: 30px; width: 45%; min-height: 0; }
    .partner-row { grid-template-columns: repeat(3, 1fr); }
    .partner-row a { border-bottom: 1px solid var(--line); }
}

@media (max-width: 900px) {
    .executive-header { position: relative; top: auto; }
    .top-ribbon { font-size: 10px; letter-spacing: 0.055em; }
    .top-ribbon-inner { min-height: 0; flex-direction: column; align-items: flex-start; gap: 5px; padding: 8px 0; }
    .ribbon-legal, .ribbon-scope { display: block; line-height: 1.35; }
    .nav-bar-inner { align-items: center; min-height: 54px; }
    .nav-toggle { display: block; }
    .primary-nav {
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        display: none;
        background: #07182c;
        border-top: 1px solid rgba(255,255,255,0.12);
        box-shadow: var(--shadow);
    }
    body.nav-open .primary-nav { display: block; }
    .primary-nav ul { flex-direction: column; width: min(100% - 40px, var(--wrap)); margin: 0 auto; padding: 12px 0; }
    .primary-nav a { min-height: 45px; border: 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
    .primary-nav .sub-menu {
        position: static;
        min-width: 0;
        width: 100%;
        margin: 0;
        padding: 0 0 0 18px;
        visibility: visible;
        opacity: 1;
        transform: none;
        border: 0;
        box-shadow: none;
        background: rgba(255,255,255,0.035);
    }
    .primary-nav .sub-menu a { min-height: 40px; padding-left: 20px; font-size: 10px; }
    .nav-cta { min-height: 42px; align-self: center; }
    .classic-hero { padding-top: 20px; }
    .hero-window { min-height: 560px; }
    .hero-slide { padding: 40px 28px 70px; }
    .stat-ledger { grid-template-columns: repeat(2, 1fr); }
    .ledger-box:nth-child(2) { border-right: 0; }
    .ledger-box:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .two-col, .sector-grid, .markets-inner, .governance-grid, .transformation-grid, .footer-cta, .footer-grid { grid-template-columns: 1fr; }
    .check-list.columns { columns: 1; }
    .service-content { padding-left: 30px; }
    .sector-table { grid-template-columns: repeat(2, 1fr); }
    .sector-table span:nth-child(3n) { border-right: 1px solid var(--line); }
    .sector-table span:nth-child(2n) { border-right: 0; }
    .sector-table span:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }
    .sector-table span:last-child { border-bottom: 0; }
    .sic-row { grid-template-columns: 1fr; }
    .sic-row span { border-right: 0; border-bottom: 1px solid var(--line); }
    .sic-row span:last-child { border-bottom: 0; }
    .footer-bottom .wrap { flex-direction: column; }
}

@media (max-width: 640px) {
    .ribbon-scope { display: none; }
    .brand-panel-inner { min-height: 86px; }
    .wrap { width: min(100% - 28px, var(--wrap)); }
    .brand { align-items: flex-start; }
    .crest { width: 58px; height: 58px; font-size: 15px; }
    .brand-copy strong { font-size: 25px; }
    .brand-copy small { letter-spacing: 0.1em; }
    .nav-cta { display: none; }
    .hero-window { min-height: 610px; }
    .hero-copy p { font-size: 16px; }
    .hero-graphic { width: 68%; right: -50px; opacity: 0.22; }
    .hero-actions { flex-direction: column; align-items: stretch; }
    .classic-slider-controls { left: 28px; }
    .stat-ledger, .sector-table, .partner-row { grid-template-columns: 1fr; }
    .ledger-box { border-right: 0; border-bottom: 1px solid var(--line); }
    .ledger-box:last-child { border-bottom: 0; }
    .sector-table span { border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
    .sector-table span:last-child { border-bottom: 0 !important; }
    .partner-row a { border-right: 0; border-bottom: 1px solid var(--line); }
    .partner-row a:last-child { border-bottom: 0; }
    .section { padding: 54px 0; }
    .title-card, .text-panel, .classic-content-card { padding: 26px; }
    .service-trigger { font-size: 20px; padding: 17px; }
    .service-trigger img { width: 45px; height: 45px; }
    .service-content { padding: 0 18px 24px; }
}

/* Premium 2.0 accessibility, compliance and launch-ready components. */
[hidden] { display: none !important; }

:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 3px;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    box-shadow: 0 0 0 4px rgba(201, 162, 74, 0.24);
}

.hero-copy h1,
.hero-copy h2 {
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

.hero-copy h2 {
    font-size: clamp(34px, 4vw, 58px);
    margin: 0 0 18px;
}

.classic-slider-controls {
    align-items: center;
    flex-wrap: wrap;
}

.classic-arrow,
.classic-pause {
    min-width: 34px;
    min-height: 32px;
    border: 1px solid rgba(255,255,255,0.45);
    color: #fff;
    background: rgba(0,0,0,0.24);
    cursor: pointer;
    font-weight: 800;
}

.classic-arrow {
    font-size: 24px;
    line-height: 1;
}

.classic-pause {
    padding: 5px 12px;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.classic-arrow:hover,
.classic-arrow:focus,
.classic-pause:hover,
.classic-pause:focus {
    color: var(--navy);
    background: var(--gold);
    border-color: var(--gold);
}

.panel-kicker {
    margin: 0 0 8px;
    color: var(--gold-dark) !important;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.panel-link {
    display: inline-block;
    margin-top: 22px;
    font-size: 13px;
    font-weight: 800;
}

.assurance-bar {
    color: #fff;
    background: linear-gradient(180deg, #102f50, #081d35);
    border-top: 1px solid rgba(255,255,255,0.14);
    border-bottom: 1px solid rgba(255,255,255,0.14);
}

.assurance-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.assurance-grid span {
    position: relative;
    padding: 18px 18px 18px 39px;
    border-right: 1px solid rgba(255,255,255,0.13);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.assurance-grid span:last-child { border-right: 0; }

.assurance-grid span::before {
    content: "✓";
    position: absolute;
    left: 16px;
    color: var(--gold);
}

.inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    margin-top: 24px;
}

.text-button,
.footer-cookie-button {
    padding: 0;
    color: var(--blue);
    background: transparent;
    border: 0;
    border-bottom: 1px solid currentColor;
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.text-button:hover,
.text-button:focus { color: var(--gold-dark); }

.button-navy {
    color: #fff;
    background: linear-gradient(180deg, var(--navy-2), var(--navy));
    border-color: rgba(0,0,0,0.35);
}

.button-navy:hover,
.button-navy:focus {
    color: #fff;
    background: var(--navy-3);
}

.section-action {
    margin: 30px 0 0;
    text-align: right;
}

.process-section {
    background:
        linear-gradient(90deg, rgba(9,32,58,0.035) 1px, transparent 1px),
        linear-gradient(0deg, rgba(9,32,58,0.03) 1px, transparent 1px),
        var(--cream);
    background-size: 36px 36px;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.process-card {
    position: relative;
    min-height: 245px;
    padding: 28px 24px;
    background: #fff;
    border: var(--classic-border);
    border-top: 5px solid var(--gold);
    box-shadow: var(--soft-shadow);
}

.process-card > span {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--navy);
    font-family: var(--font-head);
    font-size: 19px;
}

.process-card h3 {
    margin-top: 22px;
    font-size: 26px;
}

.process-card p {
    color: var(--steel);
}

.fine-print {
    margin: 20px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.mission-actions { justify-content: center; }

.footer-contact-lines {
    display: grid;
    gap: 6px;
    margin-top: 18px;
}

.company-data-list li {
    line-height: 1.45;
}

.footer-cookie-button {
    margin-top: 15px;
    color: rgba(255,255,255,0.76);
}

.footer-cookie-button:hover,
.footer-cookie-button:focus { color: #fff; }

.regulatory-strip {
    padding: 0 0 30px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.regulatory-strip p {
    max-width: 1100px;
    margin: 18px 0 0;
    color: rgba(255,255,255,0.62);
    font-size: 12px;
    line-height: 1.55;
}

.cookie-banner {
    position: fixed;
    z-index: 10000;
    left: 50%;
    bottom: 20px;
    width: min(calc(100% - 32px), 980px);
    transform: translateX(-50%);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    padding: 22px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-top: 5px solid var(--gold);
    box-shadow: 0 18px 70px rgba(0,0,0,0.35);
}

.cookie-banner h2 {
    margin: 0 0 7px;
    font-size: 24px;
}

.cookie-banner p { margin: 0; color: var(--steel); }

.cookie-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Contact and enquiry template. */
.contact-page-main {
    padding: 64px 0;
    background:
        linear-gradient(90deg, rgba(9,32,58,0.035) 1px, transparent 1px),
        linear-gradient(0deg, rgba(9,32,58,0.03) 1px, transparent 1px),
        var(--mist);
    background-size: 44px 44px;
}

.contact-page-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.75fr);
    gap: 28px;
    align-items: start;
}

.contact-intro h1 {
    max-width: 800px;
}

.contact-lead {
    color: var(--steel);
    font-size: 18px;
}

.form-notice {
    margin: 24px 0;
    padding: 16px 18px;
    border-left: 5px solid;
    font-weight: 700;
}

.form-notice.is-success {
    color: #174c2d;
    background: #eaf6ee;
    border-color: #2c8a50;
}

.form-notice.is-error {
    color: #6d2020;
    background: #fff0f0;
    border-color: #b93b3b;
}

.ish-contact-form {
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid var(--line);
}

.form-row.two-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.ish-contact-form p { margin: 0 0 20px; }

.ish-contact-form label {
    display: block;
    margin-bottom: 7px;
    color: var(--navy);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.ish-contact-form input[type="text"],
.ish-contact-form input[type="email"],
.ish-contact-form input[type="tel"],
.ish-contact-form select,
.ish-contact-form textarea {
    width: 100%;
    padding: 12px 13px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #aebccc;
    border-radius: 0;
}

.ish-contact-form textarea { resize: vertical; }

.ish-contact-form small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
}

.privacy-check label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: start;
    color: var(--steel);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.55;
}

.privacy-check input { margin-top: 5px; }

.honeypot {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.form-submit-row {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
}

.form-submit-row span {
    max-width: 400px;
    color: var(--muted);
    font-size: 12px;
}

.contact-details-panel {
    color: rgba(255,255,255,0.85);
    background: linear-gradient(180deg, var(--navy-2), var(--navy-3));
    border-top: 5px solid var(--gold);
    box-shadow: var(--shadow);
}

.contact-details-panel section {
    padding: 28px;
    border-bottom: 1px solid rgba(255,255,255,0.14);
}

.contact-details-panel section:last-child { border-bottom: 0; }

.contact-details-panel h2,
.contact-details-panel h3 { color: #fff; }

.contact-details-panel h2 { font-size: 29px; }
.contact-details-panel h3 { font-size: 21px; }
.contact-details-panel p { color: rgba(255,255,255,0.72); }
.contact-details-panel a { color: #fff; }

.contact-details-panel dl { margin: 25px 0; }

.contact-details-panel dl div {
    padding: 12px 0;
    border-top: 1px solid rgba(255,255,255,0.13);
}

.contact-details-panel dt {
    color: var(--gold);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.contact-details-panel dd {
    margin: 4px 0 0;
    line-height: 1.55;
}

.full-button {
    width: 100%;
    justify-content: center;
    text-align: center;
}

/* No-JavaScript and motion-safe reveal behavior. */
.reveal-item {
    opacity: 1;
    transform: none;
}

.js-ready .reveal-item {
    opacity: 0;
    transform: translateY(22px);
}

.js-ready .reveal-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1100px) {
    .process-grid { grid-template-columns: repeat(2, 1fr); }
    .contact-page-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .assurance-grid { grid-template-columns: repeat(2, 1fr); }
    .assurance-grid span:nth-child(2) { border-right: 0; }
    .assurance-grid span:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,0.13); }
    .cookie-banner { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .classic-slider-controls {
        left: 18px;
        right: 18px;
        bottom: 18px;
    }
    .classic-dot { width: 26px; }
    .assurance-grid,
    .process-grid,
    .form-row.two-fields { grid-template-columns: 1fr; }
    .assurance-grid span {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.13);
    }
    .assurance-grid span:last-child { border-bottom: 0; }
    .cookie-banner { bottom: 8px; padding: 18px; }
    .cookie-actions { display: grid; grid-template-columns: 1fr; }
    .contact-details-panel section { padding: 24px; }
}

@media print {
    body,
    .site-frame { background: #fff !important; box-shadow: none !important; }
    .executive-header,
    .classic-slider-controls,
    .nav-bar,
    .footer-top,
    .site-footer,
    .cookie-banner,
    .button,
    .text-button,
    .partners-section { display: none !important; }
    .classic-hero { padding: 20px 0 !important; background: #fff !important; color: #000 !important; }
    .hero-window { min-height: 0 !important; border: 0 !important; box-shadow: none !important; }
    .hero-slide.is-active { position: static !important; display: block !important; padding: 20px 0 !important; }
    .hero-copy h1,
    .hero-copy h2,
    .hero-copy p { color: #000 !important; text-shadow: none !important; }
    .hero-graphic,
    .consultation-panel { display: none !important; }
    .section,
    .markets-band,
    .mission-panel { padding: 25px 0 !important; background: #fff !important; color: #000 !important; }
    .reveal-item,
    .js-ready .reveal-item { opacity: 1 !important; transform: none !important; }
    a { color: #000 !important; text-decoration: underline; }
}

.brand .custom-logo {
    display: block;
    width: auto;
    max-width: 150px;
    max-height: 78px;
    object-fit: contain;
}

/* Completed policy and information pages. */
.policy-page-main {
    padding: 64px 0 82px;
    background:
        linear-gradient(90deg, rgba(9,32,58,0.028) 1px, transparent 1px),
        linear-gradient(0deg, rgba(9,32,58,0.025) 1px, transparent 1px),
        var(--mist);
    background-size: 46px 46px;
}

.policy-page-shell { max-width: 1180px; }

.policy-hero {
    margin-bottom: 28px;
    border-top: 5px solid var(--gold);
}

.policy-hero h1 { max-width: 900px; }

.policy-intro {
    max-width: 900px;
    color: var(--steel);
    font-size: 19px;
    line-height: 1.75;
}

.policy-reviewed {
    margin: 22px 0 0;
    color: var(--muted);
    font-size: 13px;
    letter-spacing: 0.03em;
}

.policy-notice {
    margin-top: 26px;
    padding: 18px 20px;
    color: #25384b;
    background: #f5f0df;
    border-left: 5px solid var(--gold);
    line-height: 1.65;
}

.policy-layout {
    display: grid;
    grid-template-columns: minmax(230px, 0.32fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.policy-toc {
    position: sticky;
    top: 150px;
    padding: 25px;
    background: linear-gradient(180deg, var(--navy-2), var(--navy-3));
    border-top: 5px solid var(--gold);
    box-shadow: var(--soft-shadow);
}

.policy-toc h2 {
    margin-bottom: 15px;
    color: #fff;
    font-size: 22px;
}

.policy-toc ol {
    margin: 0;
    padding-left: 21px;
}

.policy-toc li {
    padding: 7px 0;
    color: rgba(255,255,255,0.48);
    border-bottom: 1px solid rgba(255,255,255,0.09);
}

.policy-toc a {
    color: rgba(255,255,255,0.82);
    font-size: 13px;
    line-height: 1.45;
}

.policy-toc a:hover,
.policy-toc a:focus { color: #fff; }

.policy-print-button {
    width: 100%;
    margin-top: 20px;
    padding: 11px 12px;
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.3);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
}

.policy-print-button:hover,
.policy-print-button:focus { border-color: var(--gold); }

.policy-content { padding: 42px 48px; }

.policy-section {
    padding: 0 0 34px;
    margin: 0 0 34px;
    border-bottom: 1px solid var(--line);
    scroll-margin-top: 155px;
}

.policy-section:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: 0;
}

.policy-section h2 {
    margin-bottom: 18px;
    color: var(--navy);
    font-size: clamp(25px, 3vw, 34px);
}

.policy-section h3 { font-size: 22px; }

.policy-section p,
.policy-section li,
.policy-section dd {
    color: var(--steel);
    font-size: 16px;
    line-height: 1.75;
}

.policy-section li { margin: 7px 0; }
.policy-section a { font-weight: 750; }

.policy-back-link {
    display: inline-block;
    margin-top: 10px;
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.policy-table-wrap {
    width: 100%;
    overflow-x: auto;
    margin: 22px 0;
    border: 1px solid var(--line);
}

.policy-table {
    width: 100%;
    min-width: 690px;
    border-collapse: collapse;
    background: #fff;
}

.policy-table th,
.policy-table td {
    padding: 14px 15px;
    text-align: left;
    vertical-align: top;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.policy-table th {
    color: #fff;
    background: var(--navy-2);
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.policy-table tr:last-child td { border-bottom: 0; }
.policy-table th:last-child,
.policy-table td:last-child { border-right: 0; }

.policy-definition-list {
    margin: 0;
    border-top: 1px solid var(--line);
}

.policy-definition-list div {
    display: grid;
    grid-template-columns: minmax(150px, 0.32fr) 1fr;
    gap: 20px;
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
}

.policy-definition-list dt {
    color: var(--navy);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.policy-definition-list dd { margin: 0; }
.policy-steps { padding-left: 22px; }
.policy-steps li { padding-left: 6px; margin-bottom: 12px; }

/* Expanded enquiry form. */
.enquiry-process {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    margin: 28px 0 6px;
    background: var(--line);
    border: 1px solid var(--line);
}

.enquiry-process div {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px;
    background: #f8fafc;
}

.enquiry-process strong {
    display: grid;
    place-items: center;
    width: 29px;
    height: 29px;
    flex: 0 0 29px;
    color: var(--navy);
    background: var(--gold);
    border-radius: 50%;
    font-size: 13px;
}

.enquiry-process span {
    color: var(--steel);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ish-contact-form fieldset {
    min-width: 0;
    margin: 0 0 27px;
    padding: 0;
    border: 0;
}

.ish-contact-form legend {
    width: 100%;
    margin-bottom: 18px;
    padding-bottom: 9px;
    color: var(--navy);
    border-bottom: 1px solid var(--line);
    font-family: var(--font-heading);
    font-size: 23px;
    font-weight: 700;
}

.character-count { text-align: right; }
.form-notice:focus { outline: 3px solid rgba(21,81,126,0.28); outline-offset: 3px; }

@media (max-width: 900px) {
    .policy-layout { grid-template-columns: 1fr; }
    .policy-toc { position: static; }
    .policy-toc ol { columns: 2; column-gap: 28px; }
}

@media (max-width: 640px) {
    .policy-page-main { padding: 34px 0 54px; }
    .policy-hero,
    .policy-content { padding: 27px 22px; }
    .policy-toc ol { columns: 1; }
    .policy-definition-list div { grid-template-columns: 1fr; gap: 5px; }
    .enquiry-process { grid-template-columns: 1fr; }
}

@media print {
    .policy-page-main { padding: 0 !important; background: #fff !important; }
    .policy-page-shell { max-width: none !important; }
    .policy-hero,
    .policy-content { padding: 0 !important; border: 0 !important; box-shadow: none !important; }
    .policy-layout { display: block !important; }
    .policy-toc,
    .policy-back-link { display: none !important; }
    .policy-section { break-inside: avoid; scroll-margin-top: 0; }
    .policy-table { min-width: 0; font-size: 10pt; }
}

.contact-details-panel .button-silver,
.contact-details-panel .button-silver:hover,
.contact-details-panel .button-silver:focus { color: var(--navy); }

/* Search architecture and editorial trust signals. */
.ish-breadcrumbs {
    margin: 0 0 22px;
    font-size: 13px;
}

.ish-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ish-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--steel);
}

.ish-breadcrumbs li:not(:last-child)::after {
    content: "/";
    color: #98a6b4;
}

.ish-breadcrumbs a {
    color: var(--navy);
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.ish-breadcrumbs [aria-current="page"] { color: var(--steel); }

.related-services {
    margin-top: 38px;
    padding: 28px;
    border: 1px solid var(--line);
    background: #f5f8fb;
}

.related-services h2 {
    margin-top: 0;
    font-size: clamp(22px, 2.5vw, 31px);
}

.related-services ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 24px;
    margin: 0;
    padding-left: 20px;
}

.related-services a {
    color: var(--navy);
    font-weight: 750;
}

.entry-byline {
    margin: 12px 0 0;
    color: var(--steel);
    font-size: 14px;
}

.light-link,
.light-link:hover,
.light-link:focus {
    color: #fff;
}

@media (max-width: 640px) {
    .related-services ul { grid-template-columns: 1fr; }
}

.ish-search-form {
    display: flex;
    align-items: stretch;
    gap: 10px;
    max-width: 680px;
    margin: 24px 0;
}

.ish-search-form label { flex: 1 1 auto; }

.ish-search-form input[type="search"] {
    width: 100%;
    min-height: 46px;
    padding: 10px 13px;
    color: var(--ink);
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 0;
    font: inherit;
}

.ish-search-form input[type="search"]:focus {
    outline: 3px solid rgba(21,81,126,0.24);
    outline-offset: 2px;
    border-color: var(--blue);
}

@media (max-width: 560px) {
    .ish-search-form { flex-direction: column; }
}
