/* ── Reset & Base ── */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --navy: #0a1d28;
    --blue: #0e6ec9;
    --light-blue: #399af8;
    --pale-blue: #e1f3fe;
    --cta-blue: #3f77cd;
    --coral: #ff5c66;
    --white: #ffffff;
    --navy-60: #9da5a9;
    /* passed into SVGs that use var(--stroke-0) */
    --stroke-0: #ff5c66;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: "Inter", sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: var(--navy);
    background: var(--pale-blue);
    overflow-x: hidden;
}

img {
    display: block;
    max-width: 100%;
}
a {
    text-decoration: none;
}
ul {
    list-style: disc;
    padding-left: 24px;
}
li {
    margin-bottom: 8px;
}

/* ── Typography helpers ── */
.body-text p {
    margin-bottom: 16px;
}
.body-text p:last-child {
    margin-bottom: 0;
}
.body-text ul {
    margin: 8px 0 16px;
}
.body-text--light {
    color: var(--white);
}
.body-text--light strong {
    color: var(--white);
}

.text-link {
    color: var(--blue);
}
.text-link:hover {
    text-decoration: underline;
}

/* ── Heading rule (coral SVG image) ── */
.heading-rule {
    display: block;
    width: 120px;
    height: 4px;
    margin-top: 12px;
}
.heading-rule--sm {
    width: 120px;
}

/* ── Buttons ── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0 16px;
    height: 44px;
    border-radius: 5px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s;
    border: 1.5px solid transparent;
}
.btn:hover {
    opacity: 0.85;
}

.btn--primary {
    background: var(--blue);
    color: var(--white);
    border-color: var(--blue);
}
.btn--outline {
    background: transparent;
    color: var(--blue);
    border-color: var(--blue);
}
.btn--outline-light {
    background: var(--white);
    color: var(--blue);
    border-color: var(--blue);
}
.btn--white {
    background: var(--white);
    color: var(--blue);
    border: none;
}

.btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    margin-top: 32px;
}

/* ── Section headings ── */
.section-heading {
    margin-bottom: 48px;
}
.section-heading h2 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 48px;
    line-height: 1.2;
    color: var(--navy);
}
.section-heading--light h2 {
    color: var(--white);
}

/* ══════════════════════════════════════
   TOP NAVIGATION
══════════════════════════════════════ */
.site-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--white);
    box-shadow: 0 4px 10px rgba(8, 66, 121, 0.2);
}

.site-nav__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 16px 84px;
    min-height: 104px;
    display: flex;
    align-items: center;
    /* logo left, links absolutely centred in the full bar */
    position: relative;
}

.site-nav__brand {
    flex-shrink: 0;
    z-index: 1; /* sits above the absolutely-positioned links */
}

.site-nav__brand-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.site-nav__logo {
    width: 123px;
    height: 41px;
    object-fit: contain;
    object-position: left center;
    display: block;
}

.site-nav__links {
    /* Truly centred in the full nav bar, independent of logo width */
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 48px;
    white-space: nowrap;
}

.site-nav__links a {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    font-family: "Montserrat", sans-serif;
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.16px;
    color: var(--navy);
    white-space: nowrap;
    transition: color 0.15s;
}
.site-nav__links a:hover {
    color: var(--blue);
}

/* Suppress browser default focus/active jump for mouse/touch — keyboard focus preserved via :focus-visible */
.site-nav__brand-link:focus:not(:focus-visible),
.site-nav__brand-link:active,
.site-nav__links a:focus:not(:focus-visible),
.site-nav__links a:active {
    outline: none;
}

/* Active page indicator — 3px mid-blue line at nav bottom */
.site-nav__links a.is-active::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--blue);
    border-radius: 1px 1px 0 0;
}

/* ── Burger button (hidden on desktop) ── */
.site-nav__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    z-index: 2;
}
.site-nav__burger span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--navy);
    border-radius: 2px;
    transition:
        transform 0.2s,
        opacity 0.2s;
}
.site-nav__burger[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.site-nav__burger[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}
.site-nav__burger[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
.hero {
    position: relative;
    background: var(--navy);
    overflow: hidden;
    min-height: 482px;
}

/* Decorative background circles — behind all content */
.hero__circles-lhs,
.hero__circles-rhs {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}
.hero__circles-lhs {
    left: -260px;
    top: 0px;
    width: 628px;
    height: auto;
}
.hero__circles-rhs {
    right: -20px;
    top: -60px;
    width: 420px;
    height: auto;
}

.hero__inner {
    position: relative;
    z-index: 2; /* above circles (0) and wave (1) */
    max-width: 1440px;
    margin: 0 auto;
    padding: 87px 84px 60px;
    display: flex;
    align-items: center;
    gap: 80px;
}

.hero__image-wrap {
    flex-shrink: 0;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    z-index: 2; /* sits in front of the wave */
}
.hero__image-wrap img {
    width: 100%;
    height: 150%; /* taller than container so vertical room exists */
    object-fit: cover;
    transform: translateY(
        -33%
    ); /* shift up by 1/3 of element height = top third cropped */
}

.hero__text {
    flex: 1;
    max-width: 510px;
}

.hero__text h1 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 60px;
    line-height: 1.2;
    color: var(--white);
    margin-bottom: 30px;
}

.hero__text p {
    font-size: 16px;
    line-height: 1.5;
    color: var(--white);
}

/* Full-width wave container — always covers the viewport */
.hero__wave {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 120px;
    z-index: 1;
}
.hero__wave--flipped svg {
    transform: scaleX(-1);
}

.hero__wave svg {
    display: block;
    width: 100%;
    height: 100%;
}

/* ══════════════════════════════════════
   INTRODUCTION
══════════════════════════════════════ */
.intro {
    background: var(--pale-blue);
    padding: 120px 0 80px;
}

.intro__inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 24px;
}

.intro__content {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

/* ── Framework image ── */
.framework-img {
    width: 100%;
    height: auto;
    margin-top: 8px;
}

/* ── Framework Diagram (legacy SVG version — kept for reference) ── */
.framework {
    width: 100%;
    margin-top: 8px;
}

.framework__diagram {
    position: relative;
    width: 640px;
    height: 624px;
}

/* Concentric rings — fill from Figma inset percentages */
.framework__ring {
    position: absolute;
    pointer-events: none;
}
/* Ellipse 26 — inset: 12.77% 15.44% 16.93% 15.98% */
.framework__ring--outer {
    top: 12.77%;
    left: 15.98%;
    right: 15.44%;
    bottom: 16.93%;
}
/* Ellipse 28 — inset: 17.98% 20.46% 22.07% 21.05% */
.framework__ring--mid {
    top: 17.98%;
    left: 21.05%;
    right: 20.46%;
    bottom: 22.07%;
}

/* Three arc line groups */
.framework__arc {
    position: absolute;
    pointer-events: none;
}
/* Group 507 — inset: 11.17% 11.41% 23.96% 64.46%  (right side) */
.framework__arc--finance {
    top: 11.17%;
    left: 64.46%;
    right: 11.41%;
    bottom: 23.96%;
}
/* Group 508 — inset: 46.74% 25.51% 0% 7.38%  (bottom-left) */
.framework__arc--regulatory {
    top: 46.74%;
    left: 7.38%;
    right: 25.51%;
    bottom: 0%;
    /* rotate 119.16deg around its own center */
    transform-origin: center;
    transform: rotate(119.16deg);
}
/* Group 509 — inset: 0% 33.23% 45.59% 0%  (top-left) */
.framework__arc--technology {
    top: 0%;
    left: 0%;
    right: 33.23%;
    bottom: 45.59%;
    transform-origin: center;
    transform: rotate(-120.7deg);
}

/* Center hub — Ellipse 29 is at inset: 38% 40% 42.1% 40.59% */
.framework__center {
    position: absolute;
    top: 38%;
    left: 40.59%;
    right: 40%;
    bottom: 42.1%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--blue);
    border-radius: 50%;
    z-index: 5;
    gap: 2px;
}
.framework__center img {
    width: 50%;
    height: auto;
    filter: brightness(0) invert(1);
}
.framework__center span {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 11px;
    color: var(--white);
    line-height: 1;
}

/* Pillar text labels — clock positions */
.framework__label {
    position: absolute;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 11px;
    line-height: 1.45;
    color: var(--navy);
    text-align: center;
    z-index: 3;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

/* Positions taken from Figma inset centroids */
.framework__label--1 {
    top: 46%;
    left: 26%;
} /* Healthy Markets */
.framework__label--2 {
    top: 30%;
    left: 37%;
} /* Business Archetypes */
.framework__label--3 {
    top: 30%;
    left: 63%;
} /* Policy & Governance */
.framework__label--4 {
    top: 46%;
    left: 74%;
} /* Product Regulation */
.framework__label--5 {
    top: 57%;
    left: 26%;
} /* Financial Models */
.framework__label--6 {
    top: 70%;
    left: 37%;
} /* R&D & Mfg Innovation */
.framework__label--7 {
    top: 70%;
    left: 63%;
} /* Tech transfer */
.framework__label--8 {
    top: 57%;
    left: 74%;
} /* Supply Chain */

/* Pillar icon circles */
.framework__icon {
    position: absolute;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--blue);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 14px;
    z-index: 4;
    transform: translate(-50%, -50%);
}

.framework__icon--1 {
    top: 44%;
    left: 20%;
}
.framework__icon--2 {
    top: 26%;
    left: 33%;
}
.framework__icon--3 {
    top: 26%;
    left: 67%;
}
.framework__icon--4 {
    top: 44%;
    left: 80%;
}
.framework__icon--5 {
    top: 58%;
    left: 20%;
}
.framework__icon--6 {
    top: 76%;
    left: 33%;
}
.framework__icon--7 {
    top: 76%;
    left: 67%;
}
.framework__icon--8 {
    top: 58%;
    left: 80%;
}

/* Outer sector labels (Finance/Regulatory/Technology) */
.framework__sector {
    position: absolute;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 10px;
    line-height: 1.4;
    color: var(--navy);
    text-align: center;
    z-index: 3;
    transform: translate(-50%, -50%);
}
.framework__sector--finance {
    top: 37%;
    left: 84%;
}
.framework__sector--regulatory {
    top: 88%;
    left: 25%;
}
.framework__sector--technology {
    top: 10%;
    left: 38%;
}

/* ══════════════════════════════════════
   OVERALL ASSESSMENT
══════════════════════════════════════ */
.assessment {
    background: var(--navy);
    border-bottom: 8px solid var(--light-blue);
    padding: 120px 0;
}

.assessment__inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 24px;
}

.assessment .body-text--light ul {
    color: var(--white);
}

/* ══════════════════════════════════════
   DATA QUALITY
══════════════════════════════════════ */
.quality {
    background: var(--pale-blue);
    padding: 120px 0 80px;
}

.quality__inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 0 24px;
}

.quality__card {
    /* Full viewport width minus 100px each side, no max-width */
    margin: 40px 7% 0;
    background: var(--white);
    border-radius: 20px;
    padding: 30px 25px;
}

.quality__card-header {
    padding: 0 5px 24px;
}
.quality__card-header h3 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.5;
    color: var(--navy);
}

.quality__chart img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}

.embed-responsive {
    position: relative;
    width: 100%;
    height: 0;
    overflow: hidden;
    will-change: transform;
}

.embed-responsive--quality {
    padding-top: 93.75%;
}

.embed-responsive--business-archetypes {
    padding-top: calc(56.5% + 72px);
}

.embed-responsive__iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    border: none;
    padding: 0;
    margin: 0;
}

/* ══════════════════════════════════════
   CTA — DATA ENQUIRIES
══════════════════════════════════════ */
.cta {
    position: relative;
    background: var(--cta-blue);
    overflow: hidden;
    padding: 40px 0;
}

.cta__graphic {
    position: absolute;
    right: 0;
    top: -13px;
    height: 130%;
    width: auto;
    pointer-events: none;
    opacity: 0.3;
}

.cta__inner {
    position: relative;
    z-index: 1;
    max-width: 640px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.cta__text h3 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.5;
    color: var(--white);
    margin-bottom: 4px;
}
.cta__text p {
    font-size: 16px;
    line-height: 1.5;
    color: var(--white);
}

/* ══════════════════════════════════════
   FOOTER
══════════════════════════════════════ */
.site-footer {
    position: relative;
    background: var(--navy);
    overflow: hidden;
    padding: 63px 84px 56px;
    min-height: 327px;
}

/* Footer curve SVG — matches Figma: left=-264 top=-531 rotated 12.78deg */
.site-footer__curve {
    position: absolute;
    /* Figma places the curve 531px above the footer top */
    top: -531px;
    left: -264px;
    width: 1490px;
    height: 734px;
    pointer-events: none;
    transform: rotate(12.78deg);
    transform-origin: top left;
    opacity: 0.35;
}

.site-footer__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.site-footer__logo {
    /* PNG is 3043×1109 — display at Figma size */
    width: 304px;
    height: auto;
    object-fit: contain;
    object-position: left center;
}

.site-footer__nav {
    display: flex;
    gap: 48px;
    flex-wrap: wrap;
}
.site-footer__nav a {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.5;
    color: var(--white);
    white-space: nowrap;
    transition: color 0.15s;
}
.site-footer__nav a:hover {
    color: var(--light-blue);
}

.site-footer__copy {
    font-size: 14px;
    line-height: 1.5;
    color: var(--navy-60);
}
.text-link--footer {
    color: var(--light-blue);
}
.text-link--footer:hover {
    text-decoration: underline;
}

/* ── Responsive: burger menu (≤ 1200px) ── */
@media (max-width: 1200px) {
    .site-nav__burger {
        display: flex;
    }

    .site-nav__links {
        position: absolute;
        top: 100%;
        bottom: auto; /* reset desktop bottom:0 so dropdown can expand freely */
        left: 50%;
        transform: translateX(-50%);
        width: 100vw;
        display: none;
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 24px 84px;
        background: var(--white);
        box-shadow: 0 4px 10px rgba(8, 66, 121, 0.2);
        z-index: 99;
    }

    .site-nav__links.is-open {
        display: flex;
    }

    /* Reset link height so dropdown sizes to content, not vice versa */
    .site-nav__links a {
        height: auto;
        display: block;
    }

    /* Hide active indicator in mobile dropdown */
    .site-nav__links a.is-active::after {
        display: none;
    }
}

/* ── Responsive: hide hero circles (≤ 1400px) ── */
@media (max-width: 1400px) {
    .hero__circles-lhs,
    .hero__circles-rhs,
    .subpage-hero__circles-lhs,
    .subpage-hero__circles-rhs {
        display: none;
    }
}

/* ── Responsive: compact hero (≤ 860px) ── */
@media (max-width: 860px) {
    /* Remove wave — straight navy bottom edge */
    .hero__wave,
    .hero__wave--flipped {
        display: none;
    }

    .hero {
        min-height: unset;
    }

    .hero__inner {
        padding: 48px 40px 40px;
        gap: 40px;
    }

    .hero__image-wrap {
        width: 240px;
        height: 240px;
    }

    .hero__text h1 {
        font-size: 40px;
        margin-bottom: 20px;
    }
}

/* ── Responsive: stacked mobile hero (≤ 560px) ── */
@media (max-width: 560px) {
    .site-nav__inner {
        padding-left: 40px;
        padding-right: 40px;
    }

    .hero {
        min-height: unset;
    }

    .hero__inner {
        flex-direction: column;
        align-items: center;
        padding: 0 0 80px;
        gap: 0;
    }

    .hero__image-wrap {
        display: none;
    }

    .hero__text {
        max-width: 100%;
        padding: 32px 24px 0;
        text-align: left;
    }

    .hero__text h1 {
        font-size: 36px;
        margin-bottom: 16px;
    }

    .hero__wave {
        height: 80px;
    }
}

/* ══════════════════════════════════════
   SUBPAGE HERO
══════════════════════════════════════ */
.subpage-hero {
    position: relative;
    background: var(--navy);
    overflow: hidden;
    min-height: 266px;
}

/* Decorative circles — reuse landing page images */
.subpage-hero__circles-lhs,
.subpage-hero__circles-rhs {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}
.subpage-hero__circles-lhs {
    left: -260px;
    top: -40px;
    width: 628px;
    height: auto;
}
.subpage-hero__circles-rhs {
    right: -20px;
    top: -20px;
    width: 420px;
    height: auto;
}

/* Inner uses same max-width + centering as body copy so h1 left-aligns with it */
.subpage-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 640px;
    margin: 0 auto;
    padding: 70px 40px 100px;
}

.subpage-hero__inner h1 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 60px;
    line-height: 1.2;
    color: var(--white);
    max-width: 640px;
}

/* ══════════════════════════════════════
   PILLAR PAGE SECTIONS
══════════════════════════════════════ */

/* All intro paragraphs (between H1 and first H2) bold */
.pillar-intro__inner p {
    font-weight: 700;
}

/* Introductory text block at top of subpage */
.pillar-intro {
    background: var(--pale-blue);
}
.pillar-intro__inner {
    max-width: 640px;
    margin: 0 auto;
    padding: 80px 40px 60px;
}

/* Each data pillar: text + chart card */
.pillar-section {
    background: var(--pale-blue);
    padding: 0 84px 100px;
}

.pillar-section__text {
    max-width: 640px;
    margin: 0 auto 40px;
}

.pillar-section__text h2 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 48px;
    line-height: 1.2;
    color: var(--navy);
    margin-bottom: 16px;
}

/* Chart card — white rounded box wrapping each infogram */
.chart-card {
    background: var(--white);
    border-radius: 20px;
    padding: 30px 25px;
    margin-bottom: 40px;
}

.chart-card + .chart-card {
    margin-top: -20px;
}

.chart-card__header {
    padding: 0 5px;
    margin-bottom: 16px;
}

.chart-card__header h3 {
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.5;
    color: var(--navy);
    margin-bottom: 4px;
}

/* Placeholder shown before real infogram is embedded */
.chart-card__placeholder {
    background: var(--pale-blue);
    border-radius: 8px;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy-60);
    font-style: italic;
    font-size: 14px;
    padding: 20px;
    text-align: center;
}

/* ── Subpage hero responsive ── */
@media (max-width: 860px) {
    .subpage-hero {
        min-height: unset;
    }
    .subpage-hero__inner {
        padding: 48px 40px;
    }
    .subpage-hero__inner h1 {
        font-size: 40px;
    }
    .pillar-section {
        padding-left: 40px;
        padding-right: 40px;
    }
}

@media (max-width: 560px) {
    .subpage-hero__inner {
        padding: 40px 24px;
    }
    .subpage-hero__inner h1 {
        font-size: 32px;
    }
    .pillar-intro__inner {
        padding: 48px 24px 40px;
    }
    .pillar-section {
        padding-left: 24px;
        padding-right: 24px;
        padding-bottom: 60px;
    }
    .pillar-section__text h2 {
        font-size: 32px;
    }
}
