
@font-face {
  font-family: 'Securevision-Body';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Body';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Body';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Ew-.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtZ6Ew-.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCu170w-.ttf) format('truetype');
}
@font-face {
  font-family: 'Securevision-Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/montserrat/v31/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCuM70w-.ttf) format('truetype');
}

/* ==========================================================
   sv-shared.css — Securevision Master Stylesheet

   VERSION HISTORY
   -------------------------------------------------------
   v1.0  April 1 2026   Initial build — core styles, nav,
                         hero, solutions, systems, brands,
                         insights, portfolio base.

   v1.1  April 2026     Portfolio additions block added:
                         section-spacing, mt-16, mt-24,
                         snapshot-tech-col/card,
                         snapshot-systems-col/card,
                         portfolio-tech-stack/item,
                         tech-brand-name/desc,
                         portfolio-layer-card,
                         related-project-badge variants.

   v1.2  April 2026     Discovery Path cards redesigned:
                         portfolio-link-stack changed to
                         4-col responsive grid (desktop),
                         2-col (tablet), 1-col (mobile).
                         portfolio-link-card-body added.
                         Duplicate definitions removed.

   v1.3  April 2026     Comparison table header fixed:
                         th background dark-blue, white
                         text. th.feature-col forced white
                         to override specificity clash.

   v1.4  April 2026     Result cards standardised:
                         portfolio-result-card green top
                         border, left-aligned.
                         portfolio-result-title added —
                         green, Montserrat 700, bottom
                         padding and divider.
                         portfolio-result-text added.

   v1.5  April 2026     Related project card alignment:
                         body left-aligned, badge/title/
                         link centred explicitly.
                         related-project-link margin-top
                         auto + padding-top 20px.
                         related-project-title !important
                         centre override.

   v1.6  April 2026     Section header fix:
                         .section-header.text-center p
                         gets explicit text-align: center.
                         .section-header.text-center
                         p.text-left exception added so
                         Discovery Path and Related
                         Projects intro paragraphs align
                         left correctly.

   v1.7  April 2026     CTA button group margin-top: 40px
                         added for spacing between body
                         text and CTA buttons.
                         Hero overlay darkened:
                         0.82/0.72/0.82 opacity.
                         no-bottom-spacing utility added.

   v1.9  April 2026     Global .container changed from 1200px
                         to 1080px site-wide. Better reading width
                         for 2026 screens. Portfolio-specific
                         container override removed — redundant.
                         portfolio-section-narrow class retained
                         in CSS but no longer needed on pages.

   v1.8  April 2026     portfolio-section-narrow set to
                         max-width: 100% — removes narrow
                         viewport from portfolio prose
                         sections (Transformation, Decision
                         Point, Our Approach, Solution).
                         Full width now consistent across
                         all portfolio sections.
                         portfolio-insight redesigned as
                         quiet editorial pullquote: no
                         filled background, no left border,
                         centred at 760px, smaller type,
                         decorative quote mark via ::before.
                         Duplicate definitions removed.

   v2.0  April 2026     MAJOR: sv-forms.css and sv-guides.css merged
                         into sv-shared. Both separate files deprecated.
                         Single stylesheet for entire site.

                         From sv-forms.css:
                           Sections 29-32: Form system
                           (proposal-form, form-group, form-section,
                           checkbox-group, interaction-toggle,
                           scheduling slots, submit-wrap).
                           Fixed: --accent-green → --primary-blue
                           on form section decorative border.

                         From sv-guides.css:
                           Section 33: Long-form content layout
                           (blog-row, blog-row-wrap, blog-img-wrap,
                           blog-table, stat-grid, stat-card,
                           component-card, case-study-card,
                           recommendation-box, layout-with-sidebar,
                           sticky-toc, author-bio-strip).
                           Fixed: --primary-access → --page-accent
                           throughout. Global main p/li font-size
                           overrides scoped to .guide-page wrapper.
                           Conflicting .faq-grid/.faq-item removed —
                           Section 28 (sv-shared) is canonical.
                           .main-nav.scrolled override removed —
                           handled by per-page --page-accent.

                         Section 34: Checklist UI components added.
                           (.cl-layout, .cl-section, .cl-question,
                           .cl-score-bar, .cl-score-band,
                           .cl-final-score, .cl-cta-strip)

   v2.1  May 2026       Equipment Deployed spec-list rule added:
                         .portfolio-system-card .spec-list — smaller
                         font (0.9rem), lighter colour (var(--text-light)),
                         18px left padding, 8px top margin, 4px item gap.
                         Standardises a pattern previously achieved with
                         inline styles on each <ul>. Scoped under
                         portfolio-system-card so the .spec-list class
                         cannot accidentally restyle other <ul> elements.
                         Used in portfolio Equipment Deployed sections
                         alongside <p><strong>Sub-category:</strong>
                         description</p> pattern for inline sub-headings.

   v2.2  May 2026       Systems page CSS extracted to systems.css.
                         Sections 35-36 removed (818 lines).
                         All 7 systems pages now load systems.css
                         alongside sv-shared.css.

   v2.3  May 2026       Solutions page CSS extracted to solutions.css.
                         Removed from this file (892 lines total):
                         - step-row / step-item / step-num
                         - rel-card / rel-card-img / rel-card-footer
                         - Section 23: Solutions hub components
                           (featured-condo, badge-popular, grid-5,
                           simple-card, icon-row)
                         - Section 24: Solution detail components
                           (pillar-card, pricing-card, pillar-closing-note)
                         - Section 28: FAQ component (faq-grid, faq-list)
                         - proof-grid / proof-card (two duplicate blocks)
                         - Solution-specific responsive overrides
                         All solutions pages now load solutions.css
                         alongside sv-shared.css.
                         NOTE: rel-card / rel-card-img retained in
                         sv-shared — used on homepage and portfolio
                         pages, not solutions-only.

   v2.4  May 2026       Portfolio CSS extracted to sv-portfolio.css.
                         Sections 27 and 37 removed (~1,493 lines).
                         All portfolio classes now in sv-portfolio.css.
                         All 51 portfolio pages updated to load
                         sv-portfolio.css after sv-shared.css.

   v2.5  May 2026       Insights CSS extracted to sv-insights.css.
                         Sections 12, 13, 38, 38b, 38c removed
                         (~743 lines). All insights classes now in
                         sv-insights.css. All 40 insights pages
                         updated to load sv-insights.css after
                         sv-shared.css.
                         Retained in sv-shared: .hidden (utility),
                         .layout-with-sidebar, .sticky-toc (also
                         used by guides/resources pages).

   v2.6  May 2026       Systems CSS partially cleaned from sv-shared.
                         Sections 35 + 36 removed (~817 lines).
                         All classes confirmed present in sv-systems.css.

   v2.7  May 2026       Section 34 (Checklist UI, ~490 lines) moved
                         to sv-resources.css Section E.
                         Section 39 (sv-sys-* injectable block, ~195
                         lines) moved to sv-systems.css Section 37.
                         Retained: Section 40 (.img-float-*, .clearfix).

   v2.8  May 2026       Form system extracted to sv-forms.css.
                         Section 29 (~286 lines) removed.
                         Section 33 dead stub (~9 lines) deleted.
                         sv-forms.css created fresh from Section 29
                         content — load on all pages with forms.
   ========================================================== */

/* (Existing root and core styles remain) */

/* COLOR SYSTEM */
:root {
    --display-font: 'Securevision-Display', sans-serif;
    --body-font: 'Securevision-Body', sans-serif;
    --primary-blue: #0056b3;
    --dark-blue: #003d82;
    --accent-green: #25d366;
    --text-dark: #1B1F23;
    --text-gray: #333333;
    --text-light: #5F6368;
    --bg-light: #F8F9FA;
    --white: #ffffff;
    --border-light: #E8EAED;
    /* spacing & layout */
    --spacing-lg: 80px;
    --spacing-md: 40px;
    --border-radius: 12px;

    /* ── DESIGN TOKENS — canonical spacing system ────────────────
       These variables are the authoritative source. All grids,
       cards, and components reference these — do not hardcode.    */

    /* Section padding */
    --spacing-section: 80px;
    /* top/bottom padding on every content section */

    /* Card gaps by column count */
    --gap-4col: 24px;
    /* 4-column grids — narrower cards need tighter gap */
    --gap-3col: 28px;
    /* 3-column grids — default */
    --gap-2col: 32px;
    /* 2-column grids — more breathing room */
    --spacing-card-gap: 28px;
    /* legacy alias — use specific vars above */

    /* Card internal spacing */
    --card-padding: 32px;
    /* icon/text cards */
    --card-body-padding: 24px 28px 28px;
    /* image cards — body below image */
    --card-img-ratio: 4/3;
    /* aspect ratio for all card images */

    /* Step circles */
    --step-circle-sm: 36px;
    --step-circle-md: 48px;
    /* default */
    --step-circle-lg: 64px;

    /* Buttons */
    --btn-height: 52px;
    /* min-height — all button variants */
    --btn-min-width: 180px;
    --btn-padding: 14px 32px;
    --btn-gap: 16px;
    /* gap between buttons in a btn-group */

    /* Typography — card body */
    --card-title-size: 18px;
    --card-title-clamp: 2;
    /* max lines before truncation */
    --card-body-size: 15px;
    --card-body-clamp: 3;
    /* max lines before truncation */
    --card-link-margin: 20px;
    /* space above card link from body text */

    /* Shadows */
    --shadow-card-rest: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);

    /* Paragraphs */
    --spacing-para: 24px;
    /* margin-bottom between paragraphs */
    /* subsystem colors */
    --c-surveillance: #2b6cb0;
    --c-people: #319795;
    --c-vehicle: #dd6b20;
    --c-platform: #38a169;
    /*
      SECTOR COLOUR SYSTEM — WCAG 2.1 AA COMPLIANT
      Each sector has two values:
        -dark  = text, buttons, badges, card accents — passes AA on white, bg-light, and dark hero bg
        -light = decorative hero tints, background elements only — NOT for text
      All ratios verified. Do not change without re-running contrast check.

      Private Homes    dark #257000 (6.18 AA)   light #38B000
      Condominiums     dark #2d45c4 (7.61 AAA)  light #4361EE
      Commercial       dark #B54E00 (5.18 AA)   light #FF6D00
      Industrial       dark #5a0892 (11.1 AAA)  light #7209B7
      Institutions     dark #1B4F72 (8.72 AAA)  light #2471A3
      Healthcare       dark #0D7377 (5.62 AA)   light #17A2A7
    */
    --c-homes: #257000;
    --c-homes-light: #38B000;
    --c-condos: #2d45c4;
    --c-condos-light: #4361EE;
    --c-commercial: #B54E00;
    --c-commercial-light: #FF6D00;
    --c-industrial: #5a0892;
    --c-industrial-light: #7209B7;
    --c-institutions: #1B4F72;
    --c-institutions-light: #2471A3;
    --c-healthcare: #0D7377;
    --c-healthcare-light: #17A2A7;
    /* Copyright year (can be updated dynamically or manually) */
    --current-year: "2026";
    /* Per-page accent — override in each page <style> block */
    --page-accent: #0056b3;
    /* Always primary blue — one accent colour across all pages.
                              Sector differentiation via photography and content, not colour.
                              Do not override with sector colours on solution pages. */
    /* Guide pages accent — maps to --page-accent */
    --primary-access: var(--page-accent);
}

/* ── Base paragraph spacing ── */
p {
    margin-top: 0;
    margin-bottom: var(--spacing-para, 20px);
}

p:last-child {
    margin-bottom: 0;
}

.current-year::after {
    content: var(--current-year);
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--body-font);
    color: var(--text-dark);
    line-height: 1.6;
    padding-top: 96px;
    /* Offset for fixed two-row nav (row1 52px + row2 44px) */
    }

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

h1,
h2,
h3,
h4 {
    font-family: var(--display-font);
    font-weight: 700;
}

h3,
h4 {
    font-weight: 600;
}

h1 {
    font-size: clamp(36px, 5.5vw, 60px);
    line-height: 1.1;
    margin-bottom: 24px;
}

h2 {
    font-size: clamp(26px, 3.5vw, 40px);
    line-height: 1.2;
    margin-bottom: 24px;
}

h3 {
    font-size: 20px;
    line-height: 1.3;
    margin-bottom: 16px;
}

h4 {
    font-size: 16px;
    line-height: 1.4;
}

.container {
    width: 100%;
    max-width: 1080px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 24px;
}

/* CLICKABLE CARDS UTILITY */
.card-clickable {
    position: relative !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
    cursor: pointer;
}

.card-clickable:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
    border-color: var(--primary-blue) !important;
}

.stretched-link::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
    content: "";
}

/* Ensure buttons inside clickable cards still work and look right */
.card-clickable .btn {
    position: relative;
    z-index: 15;
}

.feature-icon {
    width: 32px;
    height: 32px;
    color: var(--page-accent, var(--primary-blue));
    display: block;
    margin-bottom: 16px;
    flex-shrink: 0;
}


/* 6. SIDEBAR & NAVIGATION */
.layout-with-sidebar {
    display: grid;
    grid-template-columns: 1fr 280px;
    /* Sidebar on RIGHT */
    grid-template-areas: "content sidebar";
    gap: 64px;
    align-items: stretch;
    margin-bottom: 120px;
}

.layout-with-sidebar aside {
    grid-area: sidebar;
}

.layout-with-sidebar main {
    grid-area: content;
}

.layout-with-sidebar main section {
    padding: 80px 0;
    border-bottom: 1px solid var(--border-light);
}

.layout-with-sidebar main section.bg-light {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 64px 32px !important;
    border-radius: 12px !important;
    border-bottom: 1px solid var(--border-light) !important;
}

.sticky-toc {
    position: sticky;
    top: 100px;
    background: var(--white);
    padding: 32px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    max-height: calc(100vh - 140px) !important;
    overflow-y: auto;
}

.toc-list {
    list-style: none;
    padding: 0;
}

.toc-list li {
    margin-bottom: 12px;
}

.toc-list a {
    text-decoration: none;
    color: var(--text-light);
    font-size: 13px;
    font-weight: 500;
    transition: 0.2s;
    display: block;
    line-height: 1.4;
}

.toc-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: default;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--bg-light);
    color: var(--text-dark);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.toc-list a:hover,
.toc-list a.active {
    color: var(--page-accent) !important;
}

/* 7. RESPONSIVE COMPLIANCE (991px Mobile Rule) */
@media (max-width: 991px) {
    .container {
        padding: 0 24px !important;
        /* 24px standard gutter for text compliance */
        width: 100% !important;
        max-width: 100% !important;
    }

    .layout-with-sidebar {
        display: block !important;
    }

    /* Sticky Mobile TOC Bar */
    aside {
        position: sticky !important;
        top: 96px !important;
        /* Site Nav Height — two-row nav */
        z-index: 900 !important;
        width: 100% !important;
        background: var(--white);
    }

    .sticky-toc {
        position: relative !important;
        top: 0 !important;
        width: 100vw !important;
        margin-left: -24px !important;
        margin-right: -24px !important;
        padding: 16px 24px !important;
        background: var(--white) !important;
        border: none !important;
        border-bottom: 2px solid var(--border-light) !important;
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05) !important;
        border-radius: 0 !important;
        max-height: none !important;
    }

    .toc-title {
        margin: 0 !important;
        cursor: pointer;
        font-size: 14px !important;
        color: var(--page-accent) !important;
    }

    .toc-title::after {
        content: '▼';
        font-size: 10px;
        transition: transform 0.3s;
        opacity: 0.6;
    }

    .toc-title.active::after {
        transform: rotate(180deg);
    }

    .toc-list {
        display: none;
        max-height: 50vh;
        overflow-y: auto;
        margin-top: 15px;
        padding-top: 15px;
        border-top: 1px solid rgba(0, 0, 0, 0.05);
    }

    .toc-list.active {
        display: block;
    }

    /* Layout Reset on Mobile */
    .blog-row {
        grid-template-columns: 1fr !important;
        gap: 24px;
    }

    .blog-row-wrap .blog-img-wrap {
        float: none !important;
        width: 100% !important;
        margin-left: 0 !important;
        margin-bottom: 24px !important;
    }

    .blog-img-wrap {
        aspect-ratio: 16 / 9;
        height: auto !important;
        min-height: 220px;
        order: -1;
    }

    .blog-img-wrap.blog-img-square {
        aspect-ratio: 1 / 1;
        width: 100%;
        max-width: 400px;
        margin: 0 auto 24px;
    }

    .stat-grid {
        grid-template-columns: 1fr;
    }
}



.btn {
    font-family: var(--display-font);
    font-weight: 600;
    padding: 14px 32px;
    min-height: 52px;
    /* enforces equal height across all button variants */
    min-width: 180px;
    /* prevents very narrow buttons on short labels */
    white-space: nowrap;
    /* prevents label text wrapping inside button */
    border-radius: 8px;
    text-decoration: none;
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0.3px;
    transition: 0.3s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: 2px solid transparent;
}

/* -- UTILITIES -- */
.text-center {
    text-align: center !important;
}

.display-block {
    display: block !important;
}

.pos-relative {
    position: relative !important;
}

.z-2 {
    z-index: 2 !important;
}

.opacity-60 {
    opacity: 0.6 !important;
}

.bg-white {
    background-color: var(--white) !important;
}

.bg-light {
    background-color: var(--bg-light) !important;
}

.mt-32 {
    margin-top: 32px !important;
}

.section-divider {
    font-weight: 600;
    color: var(--text-dark);
    border-top: 1px solid var(--border-light);
    padding-top: 40px;
    margin-top: 64px;
}

.border-top {
    border-top: 1px solid var(--border-light) !important;
}

.border-bottom {
    border-bottom: 1px solid var(--border-light) !important;
}

/* ============================================================
   NAVIGATION — Two-row fixed nav
   Row 1 (52px): brand strip — logo, tagline, CTA button
   Row 2 (44px): nav links + search + mobile toggle
   On scroll: .scrolled adds margin-top: -52px — row 1 slides up
   Total: 96px unscrolled → 44px scrolled
   Body padding-top: 96px (set on body rule above)
   ============================================================ */

/* ============================================================
   NAVIGATION — Two-row fixed nav
   ─────────────────────────────────────────────────────────────
   Desktop (≥992px):
     Row 1 (52px): logo + wordmark | tagline | CTA button
     Row 2 (44px): nav links + search
     Total height: 96px

   Mobile (≤991px):
     Row 1: hidden
     Row 2 (52px): mobile-brand (logo) | search + hamburger
     Total height: 52px
   ============================================================ */

/* ── Wordmark ── */

.wordmark {
    font-family: var(--display-font);
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 0.5px;
}

.nav-wordmark {
    font-size: 20px;
}

/* ── Main nav wrapper ── */

.main-nav {
    background: #0A0F18;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    transition: margin-top 0.25s ease;
}

.main-nav.scrolled {
    margin-top: -52px;
}

/* ── Mobile: reset scrolled margin — row 1 already hidden ── */
@media (max-width: 991px) {
    .main-nav.scrolled {
        margin-top: 0;
    }
}

/* ── Row 1 — brand strip ── */

.nav-row1 {
    height: 52px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    overflow: hidden;
}

.nav-row1-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    height: 100%;
}

.nav-row2-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    height: 100%;
}

/* Col 1 — logo icon only, no wordmark */
.nav-logo-icon-only {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    flex-shrink: 0;
    width: 36px;
}

.nav-logo-icon-only .nav-logo-img {
    height: 30px;
    width: auto;
}

/* Col 2 row 1 — wordmark left + tagline centred */
.nav-row1-center {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.nav-row1-center .nav-wordmark {
    font-size: 16px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-right: 16px;
}

.nav-row1-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
}


.nav-tagline {
    font-family: var(--body-font);
    font-size: 13px;
    color: rgba(255, 255, 255, 0.65);
    letter-spacing: 1px;
    white-space: nowrap;
    pointer-events: none;
    flex: 1;
    text-align: center;
}

.nav-cta-btn {
    display: inline-flex;
    align-items: center;
    font-family: var(--display-font);
    font-size: 12px;
    font-weight: 700;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    padding: 6px 18px;
    border-radius: 4px;
    text-decoration: none;
    letter-spacing: 0.3px;
    transition: background 0.2s, border-color 0.2s;
    white-space: nowrap;
}

.nav-cta-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.6);
}

/* ── Row 2 — links strip ── */

.nav-row2 {
    height: 44px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.nav-row2-inner {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

/* ── Mobile CTA in row 2 — hidden on desktop ── */
.nav-mobile-cta {
    display: none;
}

/* ── Mobile-only elements — hidden on desktop ── */

.nav-mobile-brand {
    display: none;
}

.nav-mobile-buttons {
    display: none;
}

/* ── Scroll-home logo — hidden until row 1 slides away ── */

.nav-scroll-home {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
    visibility: hidden;
}

.nav-scroll-logo {
    height: 28px;
    width: auto;
    display: block;
    opacity: 0.85;
    transition: opacity 0.2s;
}

.nav-scroll-home:hover .nav-scroll-logo {
    opacity: 1;
}

/* Desktop only — show on scroll */
@media (min-width: 992px) {
    .main-nav.scrolled .nav-scroll-home {
        visibility: visible;
    }
}

/* ── Logo ── */

.nav-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    gap: 10px;
    flex-shrink: 0;
}

.nav-logo-img {
    height: 32px;
    width: auto;
    display: block;
    flex-shrink: 0;
}

.main-nav.scrolled .nav-logo-img {
    filter: none;
}

/* ── Desktop nav menu ── */

.nav-menu {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0 0 0 8px;
    padding: 0;
    height: 44px;
    gap: 8px;
}

.nav-item {
    position: relative;
    height: 44px;
    display: flex;
    align-items: center;
}

.nav-link {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-weight: 500;
    padding: 0 16px;
    height: 34px;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s, background 0.2s;
    font-size: 14px;
    letter-spacing: 0.3px;
    border-radius: 6px;
    white-space: nowrap;
}

.nav-link.has-dropdown::after {
    content: '\25be';
    font-size: 9px;
    opacity: 0.55;
    flex-shrink: 0;
    line-height: 1;
}

.nav-item {
    position: relative;
    height: 44px;
    display: flex;
    align-items: center;
}

.nav-link {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-weight: 500;
    padding: 0 14px;
    height: 34px;
    display: flex;
    align-items: center;
    transition: color 0.2s, background 0.2s;
    font-size: 14px;
    letter-spacing: 0.3px;
    border-radius: 6px;
    white-space: nowrap;
}

.nav-link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.1);
}

.nav-link.active {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.15);
}

/* ── Desktop search ── */

.nav-right {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.nav-search-btn {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    padding: 8px;
    display: flex;
    align-items: center;
    transition: color 0.2s;
    border-radius: 6px;
}

.nav-search-btn:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}

/* ── Dropdowns ── */

.simple-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background: #ffffff;
    border: 1px solid var(--border-light);
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    padding: 6px;
    min-width: 200px;
    display: none;
    z-index: 1100;
}

.simple-dropdown::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 8px;
}

.nav-item:hover .simple-dropdown,
.nav-item.dropdown-open .simple-dropdown {
    display: block;
}

.simple-dropdown a {
    display: block;
    padding: 9px 14px;
    border-radius: 5px;
    text-decoration: none;
    font-size: 13px;
    color: var(--text-dark);
    transition: background 0.15s, color 0.15s;
    font-weight: 500;
}

.simple-dropdown a:hover {
    background: #0A0F18;
    color: #ffffff;
}

.simple-dropdown a.active {
    background: #d0d0d0;
    color: #1a1a1a;
    font-weight: 600;
}

.simple-dropdown a.active:hover {
    background: #0A0F18;
    color: #ffffff;
}

.simple-dropdown hr {
    border: none;
    border-top: 1px solid var(--border-light);
    margin: 6px 0;
}

.wide-dropdown {
    min-width: 480px;
    left: auto;
    right: 0;
}

.wide-dropdown a strong {
    color: var(--text-dark);
}

.wide-dropdown a:hover strong {
    color: #ffffff;
}

/* ── Mobile toggle buttons — hidden on desktop ── */

.mobile-toggle {
    display: none;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    padding: 8px;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    transition: background 0.2s;
}

.mobile-toggle:hover {
    background: rgba(255, 255, 255, 0.08);
}

.mobile-search-btn {
    display: none;
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    padding: 8px;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    transition: background 0.2s;
}

.mobile-search-btn:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

/* ── Mobile menu panel ── */

.mobile-menu {
    display: none;
    position: fixed;
    top: 52px;
    left: 0;
    right: 0;
    background: #0A0F18;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 12px 24px 24px;
    z-index: 999;
    max-height: calc(100vh - 52px);
    overflow-y: auto;
}

.mobile-menu.active {
    display: block;
}

.mobile-menu-cta {
    display: none;
    /* Hidden by default — shown only on ≤480px where nav bar CTA is hidden */
    padding: 14px 0;
    color: #fff;
    font-weight: 700;
    font-family: var(--display-font);
    font-size: 14px;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    margin-bottom: 4px;
}

@media (max-width: 480px) {
    .mobile-menu-cta {
        display: block;
    }
}

.mobile-menu-item {
    display: block;
    padding: 13px 0;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 15px;
    cursor: pointer;
}

.mobile-menu-item:hover {
    color: #fff;
}

.mobile-submenu {
    padding-left: 16px;
    margin: 8px 0 4px;
    display: none;
}

.mobile-submenu.active {
    display: block;
}

.mobile-submenu a {
    display: block;
    padding: 8px 0;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.mobile-submenu a:hover {
    color: rgba(255, 255, 255, 0.85);
}

.mobile-submenu a strong {
    color: rgba(255, 255, 255, 0.85);
}

/* ── Mobile breakpoint ≤991px ── */

@media (max-width: 991px) {

    /* Row 1 hidden — row 2 becomes the only bar */
    .nav-row1 {
        display: none;
    }

    .nav-row2 {
        height: 52px;
    }

    .nav-row2-inner {
        padding: 0 16px;
    }

    /* Body offset for single-row mobile nav */
    body {
        padding-top: 52px;
    }

    /* Show mobile brand */
    .nav-mobile-brand {
        display: flex;
        align-items: center;
        flex: 1;
        min-width: 0;
    }

    /* Mobile CTA pill */
    .nav-mobile-cta {
        display: inline-flex;
        align-items: center;
        font-family: var(--display-font);
        font-size: 11px;
        font-weight: 700;
        color: #ffffff;
        border: 1px solid rgba(255, 255, 255, 0.4);
        padding: 5px 12px;
        border-radius: 4px;
        text-decoration: none;
        white-space: nowrap;
        flex-shrink: 0;
        margin: 0 8px;
    }

    .nav-mobile-brand .nav-logo-link {
        min-width: 0;
    }

    .nav-mobile-brand .wordmark {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 18px;
    }

    .nav-mobile-brand .nav-logo-img {
        height: 28px;
    }

    /* Show mobile buttons */
    .nav-mobile-buttons {
        display: flex;
        align-items: center;
        gap: 4px;
        flex-shrink: 0;
    }

    .mobile-search-btn {
        display: flex;
    }

    .mobile-toggle {
        display: flex;
    }

    /* Hide desktop-only elements */
    .nav-menu,
    .nav-right,
    .nav-tagline {
        display: none;
    }

}

/* ── Small phone ≤480px ── */

@media (max-width: 480px) {
    .nav-row2-inner {
        padding: 0 12px;
    }

    .nav-mobile-brand .wordmark {
        font-size: 13px;
    }

    .nav-mobile-brand .nav-logo-img {
        height: 20px;
    }

    /* Too small to show CTA — menu handles it */
    .nav-mobile-cta {
        display: none;
    }
}



/* BREADCRUMBS */
.sv-breadcrumb {
    background: #ffffff;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-light);
    overflow: hidden;
}

.sv-breadcrumb ul {
    display: flex;
    list-style: none;
    gap: 8px;
    font-size: 12px;
    color: #888888;
    align-items: center;
    flex-wrap: nowrap;
    overflow: hidden;
}

.sv-breadcrumb li {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Last item — current page — allowed to shrink and truncate */
.sv-breadcrumb li:last-child {
    flex-shrink: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #111111;
    font-weight: 600;
}

.sv-breadcrumb a {
    color: #555555;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
    white-space: nowrap;
}

.sv-breadcrumb a:hover {
    color: #111111;
}

.sv-breadcrumb li:not(:last-child)::after {
    content: '\203A';
    font-size: 16px;
    color: #ccc;
    font-weight: 400;
}

/* On small phones — hide current page breadcrumb, shrink font */
@media (max-width: 480px) {
    .sv-breadcrumb {
        padding: 8px 0;
    }

    .sv-breadcrumb ul {
        font-size: 11px;
        gap: 4px;
    }

    /* Hide article title on small phones */
    .sv-breadcrumb li:last-child {
        display: none;
    }

    /* Remove separator after category (now last visible) */
    .sv-breadcrumb li:nth-last-child(2)::after {
        display: none;
    }

    /* All items can shrink */
    .sv-breadcrumb li {
        flex-shrink: 1;
        min-width: 0;
    }

    /* Home and Insights — short enough to never need truncating */
    .sv-breadcrumb li:first-child,
    .sv-breadcrumb li:nth-child(2) {
        flex-shrink: 0;
    }

    /* Category — last visible item, truncate if needed */
    .sv-breadcrumb li:nth-last-child(2) {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: block;
    }
}

/* -- GLOBAL CARD UTILITY -- */
/* ── CARD BASE — unified standard ─────────────────────────────────
   Two card families:
   A) Image cards  — .card with .card-img-wrap + .card-body inside
   B) Icon cards   — .card.card-icon — padding:32px, SVG top-left
   Whole card clickable: use <a class="card"> as the outer element.
   Subgrid aligns image/title/body/link across all cards in a row.
───────────────────────────────────────────────────────────────── */
.card {
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

/* Whole-card anchor — no stretched-link needed */
a.card {
    text-decoration: none;
    color: inherit;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
    border-color: var(--primary-blue);
}

/* Image wrapper — enforces 4:3 aspect ratio, bleeds to card edges */
.card-img-wrap {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
    flex-shrink: 0;
    background: var(--bg-light);
}

.card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.card:hover .card-img-wrap img {
    transform: scale(1.04);
}

/* Card body — padding below image, subgrid for internal alignment */
.card-body {
    padding: 24px 28px 28px;
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 3;
    /* rows: title | body | link */
    gap: 0;
}

/* Title — left-aligned, max 2 lines */
.card-body h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-dark);
    line-height: 1.4;
    margin: 0 0 12px 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Description — left-aligned, max 3 lines */
.card-body p {
    font-size: 15px;
    color: var(--text-gray);
    line-height: 1.7;
    margin: 0;
    display: block;
    overflow: visible;
}

/* Card link — pinned to bottom, arrow slides right on hover */
.card-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--display-font);
    color: var(--primary-blue);
    text-decoration: none;
    transition: gap 0.2s ease;
    white-space: nowrap;
}

.card-link:hover {
    gap: 10px;
}

/* Icon card — no image, padding replaces image+body structure */
.card.card-icon {
    grid-row: span 3;
    padding: 32px;
    text-align: left;
}

.card.card-icon .card-icon-wrap {
    margin-bottom: 20px;
    flex-shrink: 0;
}

/* Legacy: push last child to bottom when not using card-body subgrid */
.card>*:last-child {
    margin-top: auto;
}

/* ── SECTIONS ──
   Global spacing: every content section uses --spacing-section.
   Text alignment: LEFT by default everywhere except .cta-section (centred).
   Hero and final CTA keep their own alignment rules — do not override them here.
*/
section {
    padding: var(--spacing-section) 0;
}

/* ── CONTENT SECTION: left-align text by default ── */
section .container,
section .container h2,
section .container h3,
section .container p,
section .container .eyebrow,
section .container ul,
section .container ol {
    text-align: left;
}

/* Eyebrow inside sections always left */
section .eyebrow {
    text-align: left;
}

/* Subtitle inside sections: left-align, no auto-centering margin */
section .subtitle {
    margin-left: 0;
    margin-right: 0;
    text-align: left;
}

/* ── FINAL CTA: stays centred ── */
.cta-section {
    text-align: center !important;
}

.cta-section .container,
.cta-section .container h2,
.cta-section .container p,
.cta-section .container .eyebrow-light,
.cta-section .container .subtitle {
    text-align: center !important;
    margin-left: auto;
    margin-right: auto;
}

.cta-section .btn-group {
    justify-content: center !important;
}

/* ── ALTERNATING SECTION BACKGROUNDS ──
   Rule: breadcrumb + section 1 = bg-light (#F8F9FA)
         section 2 onwards alternates: white → bg-light → white …
   Apply via .sv-section-white and .sv-section-grey utility classes on <section>.
   The templates use these classes — do not override with inline styles.
*/
.sv-section-white {
    background: var(--white) !important;
}

.sv-section-grey {
    background: var(--bg-light) !important;
}

/* ── CARD DEFAULTS: light border always present ── */
.card {
    border: 1px solid var(--border-light);
}

/* ── LINKED CARDS: whole card is clickable — use card-clickable + stretched-link ──
   Already defined in CLICKABLE CARDS UTILITY above. Reminder to templates:
   wrap card in <a class="card card-clickable"> and put <span class="stretched-link"> 
   on the inner link text.
*/
.eyebrow {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--primary-blue);
    margin-bottom: 10px;
    display: block;
}

.eyebrow-light {
    font-family: 'Montserrat', sans-serif;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: rgba(255, 255, 255, 0.9) !important;
    margin-bottom: 10px;
    display: block;
}

/* -- 1. HERO -- */
.hero {
    color: white;
    padding: 160px 0 120px;
    text-align: left;
    position: relative;
    overflow: hidden;
    background: #0E1A2B;
}

.hero-video,
.hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom,
            rgba(7, 13, 22, 0.9) 0%,
            rgba(7, 13, 22, 0.75) 50%,
            rgba(7, 13, 22, 0.9) 100%);
    z-index: 1;
}

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

.hero h1 {
    text-shadow: 0 2px 30px rgba(0, 0, 0, 0.7);
}

.hero h1 em {
    font-style: normal;
    color: #5b9ee1;
}

.hero-solid {
    background: linear-gradient(rgba(14, 26, 43, 0.75), rgba(14, 26, 43, 0.75)), #0E1A2B;
    background-size: cover;
    background-position: center;
    padding: 200px 0 140px;
    text-align: left;
    position: relative;
    color: white;
}

.hero-solid .eyebrow-light {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 14px;
    margin-bottom: 24px;
    text-transform: uppercase;
    letter-spacing: 2px;
}

.hero-solid h1 {
    margin-bottom: 24px;
}

.hero-solid .subtitle {
    font-size: 20px;
    color: rgba(255, 255, 255, 0.9);
    max-width: 800px;
    margin: 0 auto 40px;
}

.hero .subtitle {
    font-size: 20px;
    max-width: 750px;
    margin: 0 0 40px 0;
    color: #fff;
    opacity: 1;
    line-height: 1.8;
    text-shadow: 0 2px 15px rgba(0, 0, 0, 0.8);
}

.hero .eyebrow-light {
    color: rgba(255, 255, 255, 0.9) !important;
    font-family: var(--display-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
    display: block;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}

.btn-group {
    display: flex;
    gap: 16px;
    /* up from 14px — more breathing room between buttons */
    justify-content: flex-start;
    align-items: center;
    /* equal-height buttons align on centre axis */
    flex-wrap: wrap;
    margin-bottom: 40px;
}

.btn-group-left {
    justify-content: flex-start !important;
}

/* Remove fixed 240px width — let content + padding determine width */
.btn-group .btn {
    width: auto;
    min-width: 180px;
    text-align: center;
}

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

.btn-primary:hover {
    background: var(--dark-blue);
    transform: translateY(-2px);
}

.btn-outline {
    border: 2px solid rgba(255, 255, 255, 0.5);
    color: white;
    background: transparent;
}

.btn-outline:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.btn-outline-light {
    border: 2px solid rgba(255, 255, 255, 0.6);
    color: #fff;
    background: transparent;
}

.btn-outline-light:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.1);
    transform: translateY(-2px);
}

/* Dark outline button — for use on white/light backgrounds */
.btn-outline-dark {
    border: 2px solid var(--primary-blue);
    color: var(--primary-blue);
    background: transparent;
}

.btn-outline-dark:hover {
    background: var(--primary-blue);
    color: #fff;
    transform: translateY(-2px);
}

.btn-whatsapp {
    background: #25d366;
    color: var(--text-dark);
    border-color: #25d366;
}

/* dark text on WA green — white fails WCAG at 1.98 */
.btn-whatsapp:hover {
    background: #1da851;
    transform: translateY(-2px);
}

.hero-trust-note {
    font-size: 13px;
    opacity: 0.6;
    font-weight: 500;
    color: #fff;
}

/* Removed specific hero button rule as it is now covered by the global .btn-group .btn rule */

/* ── 2. TRUST BAR ──
   Slim credential strip directly below the hero.
   Height is intentionally compact — just enough for a single line of text.
   Do NOT increase padding without a specific reason.
*/
.trust-bar,
.sv-trust-bar {
    background: white;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-light);
    line-height: 1.4;
}

/*
   CANONICAL TRUST BAR INNER CLASS: .trust-flex-inline
   This is the single source of truth for the inner trust bar layout.
   Always use this class inside .sv-trust-bar on all pages.
   Divider spans use class="sep"

   .trust-bar-inner is an alias for forward compatibility.
   .trust-inner (used in portfolio additions) shares the same spec.

   Font size: 11px desktop / 10px mobile — do NOT increase.
   This matches the visual weight of the original trust bar.
*/
.trust-flex-inline,
.trust-bar-inner,
.trust-inner {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    /* keep on one line — prevents height expansion */
    column-gap: 24px;
    font-size: 11px;
    font-weight: 700;
    font-family: var(--display-font);
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    white-space: nowrap;
    text-align: center;
}

.trust-flex-inline span:not(.sep):not(.divider),
.trust-bar-inner span:not(.sep):not(.divider),
.trust-inner span:not(.sep):not(.divider) {
    white-space: nowrap;
}

.trust-flex-inline .sep,
.trust-flex-inline .divider,
.trust-bar-inner .sep,
.trust-bar-inner .divider,
.trust-inner .sep,
.trust-inner .divider {
    color: var(--border-light);
    font-weight: 400;
    font-size: 14px;
    flex-shrink: 0;
}

.trust-flex-inline,
.trust-bar-inner,
.trust-inner {
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 6px;
    font-size: 10px;
}

.trust-flex-inline .sep,
.trust-flex-inline .divider,
.trust-bar-inner .sep,
.trust-bar-inner .divider,
.trust-inner .sep,
.trust-inner .divider {
    display: none;
}
}

/* ── 2b. SUBTLE TRUST NOTE (problem-based pages only) ──
   A single centred line below the hero — no border, no background weight.
   Intentionally quieter than .sv-trust-bar. Do not add icons or multiple items.
   Update the text content per page; keep it to one short sentence.
*/
.sv-trust-note {
    background: var(--white);
    border-bottom: 1px solid var(--border-light);
    padding: 9px 0;
    text-align: center;
    font-family: var(--display-font);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-light);
    letter-spacing: 0.5px;
    line-height: 1.4;
}

/*
   CTA TRUST NOTE — use inside .cta-high-impact dark sections only.
   Transparent background, white text at reduced opacity.
   Usage: <p class="cta-trust-note">Police Licence ... · bizSAFE ... · Since ...</p>
   Do NOT use .sv-trust-note inside dark CTA sections — it has a white background
   and will create a white bar over the dark background.
*/
.cta-trust-note {
    background: transparent;
    border: none;
    padding: 0;
    margin-top: 32px;
    text-align: center;
    font-family: var(--display-font);
    font-size: 11px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.45);
    letter-spacing: 0.5px;
    line-height: 1.4;
}

/* ── 3. LOGIC (Problem) ── */
.logic {
    background: var(--bg-light);
    padding: var(--spacing-section) 0;
}

.logic h2 {
    color: var(--text-dark);
}

.logic .intro-text {
    max-width: 850px;
    margin: 0 0 56px;
    color: var(--text-gray);
    font-size: 18px;
    line-height: 1.8;
    font-weight: 500;
}

.logic .intro-text strong {
    color: var(--primary-blue);
    font-weight: 700;
}

/* Standard Grids */
.grid-2,
.grid-3,
.grid-4 {
    display: grid;
    gap: 28px;
    margin-top: 40px;
}

.grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

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

.subtitle {
    font-size: 16px;
    color: var(--text-gray);
    max-width: 750px;
    margin: 0 auto 40px;
    line-height: 1.7;
}

.card {
    background: white;
    padding: 36px 28px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    border: 1px solid var(--border-light);
    transition: 0.3s;
    display: flex;
    flex-direction: column;
}

.card>*:last-child {
    margin-top: auto;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.card h3 {
    font-size: 18px;
    margin-bottom: 14px;
    color: var(--primary-blue);
}

.card p {
    color: var(--text-gray);
    line-height: 1.7;
    margin: 0;
    font-size: 15px;
    flex-grow: 1;
}

/* ── 4. ASSURANCE ── */
.assurance {
    padding: 100px 0;
    background: white;
}

.assurance-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    align-items: center;
}

.assurance h2 {
    line-height: 1.3;
}

.assurance h3 {
    margin-bottom: 18px;
}

.assurance p {
    color: var(--text-gray);
    line-height: 1.8;
    margin-bottom: 14px;
    font-size: 15px;
}

.badge-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 24px;
    grid-auto-rows: 1fr;
}

.badge {
    background: var(--bg-light);
    padding: 18px 14px;
    text-align: center;
    border-radius: 8px;
    border: 1px solid var(--border-light);
    transition: 0.3s;
    display: block;
}

.badge:hover {
    background: white;
    border-color: var(--primary-blue);
}

.badge strong {
    display: block;
    font-size: 16px;
    margin-bottom: 4px;
    color: var(--primary-blue);
}

.badge span {
    font-size: 12px;
    color: var(--text-light);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

/* Compact label badges used in headers/hero */
.badge-primary {
    display: inline-block;
    background: var(--primary-blue);
    color: white !important;
    padding: 6px 14px !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: none !important;
    line-height: 1;
    text-align: center;
}

.badge:hover {
    background: white;
    border-color: var(--primary-blue);
}

.badge strong {
    display: block;
    font-size: 16px;
    margin-bottom: 4px;
    color: var(--primary-blue);
}

.badge small {
    color: var(--text-light);
    font-size: 12px;
}

.link-arrow {
    color: var(--primary-blue);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 2px solid var(--primary-blue);
    padding-bottom: 4px;
    transition: 0.3s;
    display: inline-block;
    margin-top: 16px;
    font-size: 14px;
}

.link-arrow:hover {
    color: var(--dark-blue);
}

/* --- Assurance Section (Solution Trust Bar) --- */
.assurance-section {
    padding: 100px 0;
}

.assurance-section .assurance-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    align-items: stretch;
}

.assurance-card {
    background: #ffffff;
    padding: 40px 32px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.assurance-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.06);
    border-color: var(--primary-blue);
}

.assurance-icon {
    color: var(--primary-blue);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.assurance-content h3 {
    margin-bottom: 10px;
    color: var(--text-dark);
    font-family: var(--display-font);
    font-weight: 700;
}

.assurance-content p {
    font-size: 15px;
    color: var(--text-light);
    line-height: 1.6;
    margin: 0;
}

/* -- 6. PROCESS -- */
.process {
    padding: var(--spacing-section) 0;
    background: var(--bg-light);
}

.process h2 {
    margin-bottom: 14px;
}

.process .subtitle {
    color: var(--text-light);
    max-width: 650px;
    margin: 14px 0 0;
    line-height: 1.7;
    font-size: 16px;
}

.process .subtitle strong {
    color: var(--primary-blue);
    font-weight: 600;
}



.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    grid-auto-rows: 1fr;
}

/* ── PROOF-GRID — Case study / results card grid
   Used on: homepage Proven Results section, solutions pages.
   Global component — do not move to solutions.css.            */
.proof-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 56px;
}

@media (max-width: 992px) {
    .proof-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .proof-grid {
        grid-template-columns: 1fr;
    }
}

/* ── END proof-grid ───────────────────────────────────────── */

/* ── REL-CARD — Related / sector card grid
   Used on: homepage sector grid, solutions pages, portfolio related sections.
   Global component — do not move to solutions.css.              */
.rel-card {
    background: white;
    padding: 32px 28px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    transition: 0.3s;
    text-decoration: none;
    color: var(--text-dark);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.rel-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    border-color: var(--primary-blue);
}

.rel-card h3 {
    font-size: 18px;
    margin-bottom: 10px;
}

.rel-card strong {
    display: block;
    color: var(--primary-blue);
    font-size: 13px;
    margin-bottom: 8px;
    font-family: var(--display-font);
}

.rel-card p {
    margin: 0;
    color: var(--text-gray);
    font-size: 15px;
    line-height: 1.6;
}

.rel-card-footer {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--border-light);
    font-size: 13px;
    color: var(--primary-blue);
    font-weight: 600;
    font-family: var(--display-font);
}

.rel-card-img {
    width: calc(100% + 56px);
    margin: -32px -28px 20px -28px;
    border-radius: 12px 12px 0 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    flex-shrink: 0;
}

.rel-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.rel-card:hover .rel-card-img img {
    transform: scale(1.04);
}

/* ── END rel-card ─────────────────────────────────────────── */

/* -- PRODUCTS SECTION -- */
.products-section {
    background: white;
    padding: 100px 0;
}

.products-section .section-header {
    text-align: center;
    margin-bottom: 56px;
}

.products-section .section-header h2 {
    margin-bottom: 14px;
}

.products-section .section-header p {
    font-size: 17px;
    color: var(--text-light);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.7;
}

.products-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: center;
    margin-bottom: 56px;
}

.products-intro-text p {
    color: var(--text-gray);
    line-height: 1.8;
    margin-bottom: 14px;
    font-size: 15px;
}

.secure-callout {
    background: #003d82;
    border-radius: 16px;
    padding: 36px;
    color: #fff;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin-top: 40px;
}

.secure-callout::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top right, rgba(255, 255, 255, 0.08) 0%, transparent 60%);
}

.secure-callout>* {
    position: relative;
    z-index: 1;
}

.secure-callout .sc-label {
    font-family: var(--display-font);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.4);
    margin-bottom: 6px;
}

.secure-callout .sc-title {
    font-family: var(--display-font);
    font-size: 40px;
    font-weight: 700;
    letter-spacing: 4px;
    color: #fff;
    margin-bottom: 4px;
}

.secure-callout .sc-sub {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 24px;
}

.sc-steps {
    display: flex;
    flex-direction: column;
    gap: 16px;
    /* standardised from 10px */
}

.sc-step {
    display: flex;
    gap: 20px;
    /* standardised from 12px */
    align-items: flex-start;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 24px;
    /* standardised from 10px 14px */
}

/* Vertical step stack on light backgrounds */
.step-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 40px;
}

.step-stack-item {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 24px;
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.step-stack-item .step-num {
    margin: 0;
    /* override auto centering — left-aligned in flex row */
    flex-shrink: 0;
}

.step-stack-item h3 {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 8px 0;
    font-family: var(--display-font);
}

.step-stack-item p {
    font-size: 15px;
    color: var(--text-gray);
    line-height: 1.65;
    margin: 0;
}

.sc-letter {
    font-family: var(--display-font);
    font-size: 16px;
    font-weight: 700;
    color: #5b9ee1;
    width: 20px;
    flex-shrink: 0;
}

.sc-word {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--display-font);
    font-weight: 600;
}

.sc-desc {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
    margin-top: 1px;
}

/* Subsystem cards */
.subsystem-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}

/* 3+2 layout — two separate rows, same card width */
.subsystem-row-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 40px;
}

.subsystem-row-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 20px;
    width: calc(66.667% - 6.667px);
    margin-left: auto;
    margin-right: auto;
}

.subsys-card {
    background: var(--bg-light);
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 24px 20px;
    
    transition: 0.3s;
    text-decoration: none;
    color: var(--text-dark);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.subsys-card:hover {
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
    background: #fff;
}

.subsys-card.c-surv {
    border-top-color: var(--c-surveillance);
}

.subsys-card.c-peop {
    border-top-color: var(--c-people);
}

.subsys-card.c-vehi {
    border-top-color: var(--c-vehicle);
}

.subsys-card.c-plat {
    border-top-color: var(--c-platform);
}

.subsys-card .s-icon {
    font-size: 28px;
    margin-bottom: 12px;
}

.subsys-card h3 {
    font-size: 16px;
    margin-bottom: 8px;
}

.subsys-card p {
    font-size: 13px;
    color: var(--text-light);
    line-height: 1.5;
    flex: 1;
}

.subsys-card .s-link {
    margin-top: 16px;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--display-font);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.subsys-card.c-surv .s-link {
    color: var(--c-surveillance);
}

.subsys-card.c-peop .s-link {
    color: var(--c-people);
}

.subsys-card.c-vehi .s-link {
    color: var(--c-vehicle);
}

.subsys-card.c-plat .s-link {
    color: var(--c-platform);
}



/* -- 7. TECH FIT -- */
.tech-fit {
    background: linear-gradient(135deg, #0E1A2B 0%, #1a2942 100%);
    color: white;
    padding: 100px 0;
    position: relative;
}

.tech-fit h2 {
    text-align: center;
    margin-bottom: 14px;
}

.tech-fit .subtitle {
    text-align: center;
    color: #fff;
    max-width: 800px;
    margin: 0 auto 48px;
    font-size: 17px;
    line-height: 1.8;
}

.tech-fit .subtitle strong {
    color: white;
    font-weight: 600;
}

.infinity-box {
    background: rgba(255, 255, 255, 0.05);
    padding: 48px;
    border-radius: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.infinity-box h3 {
    font-size: 22px;
    margin-bottom: 14px;
}

.infinity-box p {
    margin: 0 0 12px 0;
    opacity: 0.9;
    font-size: 15px;
}

.infinity-box strong {
    font-weight: 600;
    letter-spacing: 0.5px;
}

.infinity-box small {
    opacity: 0.75;
    line-height: 1.8;
    display: block;
    font-size: 15px;
}

.system-side {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    padding-right: 28px;
}

.people-side {
    padding-left: 28px;
}

/* -- 8. RESULTS -- */
.results {
    padding: var(--spacing-section) 0;
    background: white;
}

.results h2 {
    margin-bottom: 14px;
}

.results .subtitle {
    color: var(--text-light);
    margin-bottom: 56px;
    font-size: 16px;
}

.results .subtitle strong {
    color: var(--primary-blue);
}

.res-card {
    border: 1px solid var(--border-light);
    padding: 28px;
    border-radius: 10px;
    transition: 0.3s;
    background: white;
}

.res-card:hover {
    border-color: var(--primary-blue);
    transform: translateY(-2px);
    box-shadow: 0 4px 166px rgba(0, 86, 179, 0.1);
}

.res-card strong {
    display: block;
    font-size: 16px;
    margin-bottom: 10px;
    color: var(--text-dark);
    font-family: var(--display-font);
}

.res-card small {
    color: var(--text-gray);
    line-height: 1.7;
    font-size: 15px;
}

.res-card small strong {
    display: inline;
    color: var(--primary-blue);
    font-size: inherit;
    margin: 0;
}

/* -- 9. TESTIMONIALS -- */
.testimonials {
    padding: var(--spacing-section) 0;
    background: var(--bg-light);
}

.testimonials h2 {
    margin-bottom: 14px;
}

.testimonials .subtitle {
    color: var(--text-light);
    max-width: 700px;
    margin: 0 0 56px;
    line-height: 1.7;
    font-size: 16px;
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.testimonial-card {
    background: white;
    padding: 36px 28px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    transition: 0.3s;
}

.testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.quote-icon {
    font-size: 40px;
    color: var(--primary-blue);
    line-height: 1;
    margin-bottom: 18px;
}

.testimonial-card blockquote {
    color: var(--text-gray);
    font-size: 15px;
    line-height: 1.8;
    margin: 0 0 22px 0;
    font-style: italic;
}

.attribution {
    border-top: 1px solid var(--border-light);
    padding-top: 14px;
}

.attribution strong {
    color: var(--primary-blue);
    display: block;
    margin-bottom: 3px;
    font-size: 14px;
}

.attribution span {
    color: var(--text-light);
    font-size: 13px;
}

/* -- 10. WHY CHOOSE -- */
.why-choose {
    padding: var(--spacing-section) 0;
    background: white;
}

.why-choose h2 {
    margin-bottom: 56px;
}

.why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.why-card {
    background: var(--bg-light);
    padding: 32px 24px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--border-light);
    transition: 0.3s;
}

.why-card:hover {
    background: white;
    border-color: var(--primary-blue);
    transform: translateY(-4px);
    box-shadow: 0 4px 16px rgba(0, 86, 179, 0.1);
}

.why-card .icon {
    font-size: 36px;
    margin-bottom: 14px;
    display: block;
}

.why-card h4 {
    font-size: 15px;
    margin-bottom: 10px;
    color: var(--primary-blue);
}

.why-card p {
    color: var(--text-gray);
    line-height: 1.7;
    margin: 0;
    font-size: 15px;
}

/* -- 11. CLIENT LOGOS -- */
.client-logos {
    padding: 80px 0;
    background: var(--bg-light);
}

.client-logos h2 {
    margin-bottom: 14px;
}

.client-logos .intro {
    color: var(--text-light);
    max-width: 700px;
    margin: 0 0 48px;
    font-size: 15px;
}

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

.logo-box {
    background: white;
    padding: 28px;
    border-radius: 10px;
    text-align: center;
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-light);
    transition: 0.3s;
}

.logo-box:hover {
    border-color: var(--primary-blue);
    box-shadow: 0 4px 12px rgba(0, 86, 179, 0.1);
}

.logo-box h4 {
    color: var(--primary-blue);
    font-size: 14px;
    margin-bottom: 5px;
}

.logo-box p {
    margin: 0;
    font-size: 12px;
    color: var(--text-light);
}

.logos-disclaimer {
    text-align: center;
    margin-top: 32px;
    color: var(--text-light);
    font-size: 13px;
    font-style: italic;
}

/* -- 12. FINAL CTA -- */
.cta-section {
    background: linear-gradient(135deg, #0E1A2B 0%, #1a2942 100%);
    padding: 100px 0;
    text-align: center;
    color: #fff;
}


.cta-section h2 {
    margin-bottom: 20px;
    color: #ffffff;
}

.cta-section .subtitle,
.cta-section p {
    color: rgba(255, 255, 255, 0.75) !important;
    font-size: 18px;
    margin: 0 auto 32px;
}

.cta-section .btn-group {
    justify-content: center;
}

/* -- NEW BRANDED COMPONENTS -- */

/* High-Impact CTA Base Class */
/* ── FINAL CTA — SITEWIDE BACKGROUND ──────────────────────────
   Single shared background image used across all pages.
   To update the CTA image sitewide, change the url() value here only.
   Placeholder: replace PLACEHOLDER with your final image path.
   Recommended: /images/cta-sitewide.webp (1920×1080px, 16:9)
   Overlay: rgba(14, 26, 43, 0.85) — do not change.
────────────────────────────────────────────────────────────── */
/* ━━━━━━━━━━━━━━━━━━━━━━━━
   CTA HIGH-IMPACT (v2.1)
   Used for sector conversion sections.
   Centralised background-image (cta-sitewide.webp)
   ━━━━━━━━━━━━━━━━━━━━━━━━ */
.cta-high-impact {
    background: linear-gradient(rgba(14, 26, 43, 0.88), rgba(14, 26, 43, 0.88)),
        url('/images/cta-sitewide.webp') !important;
    background-size: cover !important;
    background-position: center !important;
    color: #fff !important;
    padding: 120px 0 !important;
    text-align: center !important;
    position: relative;
    overflow: hidden;
}

/* ── CTA Persona Groups ──
   Standardised visuals based on buyer psychology.
   These replace all legacy sector-specific CTA classes. */

/* GROUP A: Asset Protection / Property Managers (.cta-property) */
.cta-property {
    background-image: linear-gradient(rgba(14, 26, 43, 0.88), rgba(14, 26, 43, 0.88)), url('/images/cta-property.webp') !important;
}

/* GROUP B: Operations / Facilities / Engineering (.cta-facilities) */
.cta-facilities {
    background-image: linear-gradient(rgba(14, 26, 43, 0.88), rgba(14, 26, 43, 0.88)), url('/images/cta-facilities.webp') !important;
}

/* GROUP C: Compliance / Risk / Governance (.cta-compliance) */
.cta-compliance {
    background-image: linear-gradient(rgba(14, 26, 43, 0.88), rgba(14, 26, 43, 0.88)), url('/images/cta-compliance.webp') !important;
}

/* GROUP D: Healthcare / Senior Care / Social (.cta-care) */
.cta-care {
    background-image: linear-gradient(rgba(14, 26, 43, 0.88), rgba(14, 26, 43, 0.88)), url('/images/cta-care.webp') !important;
}


/* Hero High-Impact Component */
.hero-high-impact {
    position: relative;
    padding: 160px 0 140px;
    background-size: cover !important;
    background-position: center !important;
    color: #fff !important;
    min-height: 80vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.hero-high-impact .container {
    position: relative;
    z-index: 5;
}

.hero-title-main {
    color: #ffffff !important;
    font-size: clamp(36px, 5.5vw, 68px) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    margin: 0 0 28px 0 !important;
}

.hero-subtitle-main {
    color: rgba(255, 255, 255, 0.95) !important;
    font-size: clamp(16px, 1.25vw, 21px) !important;
    max-width: 850px;
    line-height: 1.8 !important;
    margin: 0 0 48px 0 !important;
}

.eyebrow-light {
    display: block;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    font-size: 12px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 24px;
    font-family: var(--display-font);
}

/* Master Overlay for All High-Impact Heroes */
.hero-high-impact::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(105deg, rgba(14, 26, 43, 0.45) 0%, rgba(14, 26, 43, 0.25) 50%, transparent 100%);
    z-index: 1;
}

/* Increased intensity for complex guides or busy backgrounds */
.hero-intense-overlay::before {
    background: linear-gradient(105deg, rgba(14, 26, 43, 0.45) 0%, rgba(14, 26, 43, 0.6) 50%, rgba(14, 26, 43, 0.4) 100%) !important;
}


/* CTA Backgrounds */


/* Founder / Expert Quote Card */
.founder-card-wrap {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 56px;
    padding-top: 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.founder-portrait {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 3px solid #63b3ed;
    flex-shrink: 0;
}

.founder-info-text {
    margin-left: 8px;
}

.founder-info-text strong {
    display: block;
    font-size: 1.35rem;
    color: #ffffff !important;
    margin-bottom: 6px;
}

.founder-info-text span {
    font-size: 0.95rem;
    color: #94a3b8;
    line-height: 1.5;
    display: block;
}

.action-box-plus {
    margin-top: 64px;
    margin-bottom: 24px;
    display: flex;
    justify-content: center;
    width: 100%;
}

/* -- FOUNDER CALL-TO-ACTION BLOCK -- */
.founder-cta-block {
    margin-top: 56px;
}

.founder-cta-block p {
    margin-bottom: 36px !important;
    color: #cbd5e1 !important;
    font-size: 1.05rem;
    line-height: 1.75;
}

.cta-section .subtitle {
    max-width: 700px;
    margin: 0 auto 40px;
    line-height: 1.8;
}

.cta-section .subtitle strong {
    color: white;
}

.footer-note {
    margin-top: 48px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.45);
    line-height: 1.9;
}

.footer-note strong {
    color: rgba(255, 255, 255, 0.6);
}

/* Glass CTA Cards */
.cta-card-glass {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    display: flex;
    flex-direction: column;
    text-align: center;
    padding: 48px 32px;
    border-radius: 12px;
    color: #fff;
    transition: 0.3s;
    height: 100%;
}

.cta-card-glass:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-5px);
}

.cta-card-glass h3 {
    color: #fff;
    margin-bottom: 12px;
    font-size: 20px;
}

.cta-card-glass p {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 15px;
    margin-bottom: 24px;
    flex-grow: 1;
}

.cta-card-prominent {
    background: #ffffff;
    display: flex;
    flex-direction: column;
    text-align: center;
    padding: 48px 32px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    color: var(--text-dark);
    transition: 0.3s;
    height: 100%;
}

.cta-card-prominent:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
}

.cta-card-prominent h3 {
    color: var(--text-dark);
    margin-bottom: 12px;
}

.cta-card-prominent p {
    color: var(--text-light) !important;
    font-size: 15px;
    margin-bottom: 24px;
    flex-grow: 1;
}

.cta-header-wrap {
    max-width: 850px;
    margin: 0 auto 64px;
}

.cta-icon {
    font-size: 32px;
    margin-bottom: 20px;
}

/* FOOTER */
.site-footer,
.main-footer {
    background: #0E1A2B;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding: 60px 0 30px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    line-height: 1.6;
}

.footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr 1.2fr;
    gap: 32px;
    margin-bottom: 32px;
}

.footer-brand .f-logo-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
}

.footer-brand .f-logo-wrap img,
.footer-brand .footer-logo img,
.footer-brand img {
    height: 24px;
    display: block;
    width: auto;
}

.footer-brand .brand-name {
    font-family: var(--display-font);
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    letter-spacing: 0.5px;
}

.footer-brand p {
    color: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 20px;
}

.f-socials {
    display: flex;
    gap: 16px;
    margin-top: 24px;
}

.f-socials a {
    color: rgba(255, 255, 255, 0.4);
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.f-socials a:hover {
    color: var(--primary-blue);
    transform: translateY(-3px);
}

.footer-links h4,
.footer-contact h4 {
    color: #fff;
    font-family: var(--display-font);
    font-size: 14px;
    margin-bottom: 24px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
}

.footer-links ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    font-size: 13px;
    transition: 0.2s;
}

.footer-links a:hover {
    color: #fff;
    padding-left: 4px;
}

.footer-contact-item {
    margin-bottom: 16px;
    display: flex;
    gap: 12px;
    align-items: center;
}

.footer-contact-item span {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.footer-contact-item a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 14px;
    transition: 0.3s;
    font-weight: 500;
}

.footer-contact-item a:hover {
    color: #fff;
}

.footer-bottom {
    margin-top: 60px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.footer-bottom p {
    color: rgba(255, 255, 255, 0.4);
    font-size: 11px;
    margin: 0;
    flex: 1;
    min-width: 0;
}

.footer-bottom-links {
    display: flex;
    gap: 20px;
}

.footer-bottom-links a {
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none;
    font-size: 11px;
    transition: 0.2s;
}

.footer-bottom-links a:hover {
    color: #fff;
}

/* -- MOBILE FOOTER -- */
@media (max-width: 768px) {
    .footer-bottom {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
}

/* -- 13. HUB PAGES & GRIDS (Pathfinder, Property Types, etc.) -- */
.pathfinder,
.property-types,
.why-matters {
    padding: 100px 0;
}

.pathfinder {
    background: var(--bg-light);
}

.property-types {
    background: white;
}

.why-matters {
    background: var(--bg-light);
}

.pathfinder h2,
.property-types h2,
.why-matters h2 {
    text-align: center;
    font-size: clamp(24px, 3.5vw, 36px);
    margin-bottom: 16px;
}

.pathfinder .intro,
.property-types .intro {
    text-align: center;
    color: var(--text-light);
    max-width: 700px;
    margin: 0 auto 60px;
    font-size: 17px;
    line-height: 1.8;
}

/* Pathfinder Grid */
.pathfinder-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 40px;
}

.pathfinder-card {
    background: white;
    padding: 40px 30px;
    border-radius: 12px;
    text-align: center;
    border: 2px solid var(--border-light);
    transition: 0.3s;
    cursor: pointer;
    text-decoration: none;
    color: var(--text-dark);
}

.pathfinder-card:hover {
    border-color: var(--primary-blue);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 86, 179, 0.15);
}

.pathfinder-card .icon {
    font-size: 48px;
    margin-bottom: 20px;
    display: block;
}

.pathfinder-card h3 {
    font-size: 20px;
    margin-bottom: 12px;
    color: var(--text-dark);
}

.pathfinder-card p {
    color: var(--text-light);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* -- Detailed Pathfinder Card (Used on Solutions pages) -- */
.pathfinder-card-detail {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    transition: 0.3s;
}

.pathfinder-card-detail:hover {
    border-color: var(--primary-blue);
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

.path-card-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

.path-card-body {
    padding: 32px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.path-card-body h3 {
    text-align: left;
    margin-bottom: 24px;
    font-size: 22px;
    color: var(--text-dark);
}

.path-card-item {
    margin-bottom: 24px;
}

.path-card-item strong {
    color: var(--primary-blue);
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.path-card-item p {
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-gray);
    margin: 0;
}

.path-card-body .btn {
    margin-top: auto;
}

.pathfinder-card.help-me {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, var(--primary-blue), var(--dark-blue));
    color: white;
    border: none;
    padding: 50px;
}

.pathfinder-card.help-me .icon {
    font-size: 64px;
}

.pathfinder-card.help-me h3 {
    color: white;
    font-size: 24px;
}

.pathfinder-card.help-me p {
    color: rgba(255, 255, 255, 0.9);
}

/* Property Grid */
.property-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.property-card {
    background: var(--bg-light);
    padding: 40px;
    border-radius: 12px;
    border: 1px solid var(--border-light);
    transition: 0.3s;
    text-decoration: none;
    color: var(--text-dark);
    display: block;
}

.property-card:hover {
    background: white;
    border-color: var(--primary-blue);
    box-shadow: 0 4px 16px rgba(0, 86, 179, 0.1);
}

.property-card .icon {
    font-size: 40px;
    margin-bottom: 20px;
    display: block;
}

.property-card h3 {
    font-size: 24px;
    margin-bottom: 12px;
    color: var(--primary-blue);
}

.property-card .subtitle-text {
    font-size: 14px;
    color: var(--text-light);
    margin-bottom: 16px;
    font-style: italic;
}

.property-card .challenge {
    background: white;
    padding: 20px;
    border-radius: 8px;
    margin-top: 16px;
    border-left: 4px solid var(--primary-blue);
}

.property-card .challenge strong {
    display: block;
    color: var(--text-dark);
    margin-bottom: 8px;
    font-size: 15px;
}

.property-card .challenge p {
    margin: 0;
    font-size: 15px;
    color: var(--text-gray);
    line-height: 1.6;
}

/* Comparison Grid */
.comparison-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.comparison-card {
    background: white;
    padding: 30px;
    border-radius: 10px;
    border: 1px solid var(--border-light);
}

.comparison-card h4 {
    color: var(--primary-blue);
    font-size: 18px;
    margin-bottom: 16px;
    font-family: var(--display-font);
}

.comparison-card ul {
    list-style: none;
}

.comparison-card li {
    padding: 10px 0;
    font-size: 15px;
    color: var(--text-gray);
    border-bottom: 1px solid var(--bg-light);
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.comparison-card li:last-child {
    border-bottom: none;
}

.comparison-card li::before {
    content: "\2713";
    color: var(--accent-green);
    font-weight: bold;
}

@media (max-width: 992px) {

    /* ≤1200px: 5-col subsystem-grid steps to 3-col (avoids 2-orphan at laptop) */
    @media (max-width: 1200px) {
        .subsystem-grid {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    /* Standardise: All 3-card and 4-card grids stack to 2 columns at 992px */
    .grid-3,
    .grid-4,
    .subsystem-grid,
    .factors-grid,
    .factors-4,
    .property-hub-grid,
    .pathfinder-grid,
    .comparison-grid,
    .logos-grid,
    .products-intro-grid,
    .why-grid,
    .testimonials-grid,
    .assurance-grid,
    .assurance-section .assurance-grid,
    .brand-grid-3 {
        grid-template-columns: repeat(2, 1fr);
    }

    .property-grid {
        grid-template-columns: 1fr;
    }
}


.pathfinder-grid,
.comparison-grid {
    grid-template-columns: 1fr;
}

.pathfinder-card.help-me {
    grid-column: auto;
}

.pathfinder,
.property-types,
.why-matters {
    padding: 60px 0;
}
}

/* ── 14. PERSONA CARDS (Choose Your Path) ── */
.persona-cards {
    background-color: var(--bg-light);
    padding: var(--spacing-lg) 0;
}

.persona-card {
    background: var(--white);
    border: 1px solid var(--border-light);
    border-radius: var(--border-radius);
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    position: relative;
    text-decoration: none;
    color: inherit;
}

.persona-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 30px rgba(0, 86, 179, 0.12);
    border-color: var(--primary-blue);
}

/* For image-based persona cards */
.card-image-wrap {
    height: 200px;
    width: 100%;
    overflow: hidden;
    background: #f0f0f0;
}

.card-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.5s ease;
}

.persona-card:hover .card-image-wrap img {
    transform: scale(1.05);
}

.persona-content {
    padding: 32px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.persona-card .card-title {
    font-size: 20px;
    margin-bottom: 12px;
    color: var(--text-dark);
    font-family: var(--display-font);
    font-weight: 700;
}

.persona-card .card-description {
    font-size: 15px;
    color: var(--text-light);
    margin-bottom: 24px;
    line-height: 1.6;
}

.persona-card .card-features {
    list-style: none;
    padding: 0;
    margin: 0 0 32px 0;
    text-align: left;
    flex-grow: 1;
}

.persona-card .card-features li {
    font-size: 15px;
    color: var(--text-gray);
    margin-bottom: 10px;
    padding-left: 24px;
    position: relative;
    line-height: 1.4;
}

.persona-card .card-features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--accent-green);
    font-weight: 700;
}

.persona-card .btn {
    text-align: center;
    width: 100%;
    margin-top: auto;
}


/* ── 16. SUBSYSTEM CARDS ── */
.subsystem-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    margin-top: 40px;
    grid-auto-rows: 1fr;
}

.subsys-card {
    background: var(--bg-light);
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 24px;
    text-decoration: none;
    color: var(--text-dark);
    
    transition: 0.3s;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.subsys-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    background: var(--white);
}

.subsys-card h3 {
    font-size: 16px;
    margin: 12px 0 8px;
}

/* WhatsApp Standard Button (Elite Framed Style) */
.btn-whatsapp-standard {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1.5px solid rgba(255, 255, 255, 0.8) !important;
    color: #ffffff !important;
    padding: 12px 24px !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    text-decoration: none !important;
    backdrop-filter: blur(4px);
}

.btn-whatsapp-standard:hover {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--primary-blue) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2) !important;
}

.btn-whatsapp-standard::before {
    content: "";
    width: 20px;
    height: 20px;
    display: inline-block;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512' fill='white'%3E%3Cpath d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.7 17.7 68.9 27.1 106.1 27.1h.1c122.3 0 222-99.6 222-222 0-59.3-23-115.1-65.1-157.1zM223.9 446.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 365.9l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-82.7 184.6-184.5 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-5.5-2.8-23.2-8.5-44.2-27.1-16.4-14.6-27.4-32.7-30.6-38.2-3.2-5.6-.3-8.6 2.5-11.3 2.5-2.5 5.5-6.5 8.3-9.7 2.8-3.3 3.7-5.6 5.6-9.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 13.2 5.8 23.5 9.2 31.5 11.8 13.3 4.2 25.4 3.6 35 2.2 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transition: 0.3s;
}

.btn-whatsapp-standard:hover::before {
    filter: invert(1) brightness(0.5);
    /* Makes icon dark blue on hover */
}

.subsys-card p {
    font-size: 13px;
    color: var(--text-light);
    line-height: 1.6;
    flex-grow: 1;
}

.subsys-card .s-link {
    font-size: 12px;
    font-weight: 700;
    color: var(--primary-blue);
    text-transform: uppercase;
    margin-top: 16px;
}

/* ── 17. PROCESS STEPS & STEP CIRCLES ── */
/* .step-circle — canonical alias for large numbered circle
   Use .step-num.step-num-lg for new builds.
   .step-circle kept for backwards compatibility.              */
.step-circle {
    width: 64px;
    height: 64px;
    min-width: 64px;
    border-radius: 50%;
    background: var(--primary-blue);
    color: #fff !important;
    font-family: var(--display-font);
    font-size: 24px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: 0 auto 24px;
    box-shadow: 0 4px 12px rgba(0, 86, 179, 0.20);
    position: relative;
    z-index: 1;
}

/* ── PROCESS CARD — numbered step card with accent top border ─────
   Used on homepage Section 9 and anywhere a 4-step process is shown.
   Structure: <div class="process-card">
                <span class="process-num">1</span>
                <h4>Title</h4>
                <p>Description</p>
              </div>
   Grid: use inside .grid-4 (4-col) or .grid-2 (2-col for mobile)
─────────────────────────────────────────────────────────────────── */
.process-card {
    background: #fff;
    border: 1px solid var(--border-light);
    
    border-radius: 12px;
    padding: 32px 28px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    text-align: left;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.process-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
}

.process-num {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 50%;
    background: var(--primary-blue);
    color: #fff;
    font-family: var(--display-font);
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-bottom: 28px;
}

.process-card p {
    font-size: 15px;
    color: var(--text-gray);
    line-height: 1.65;
    margin: 0;
    flex-grow: 1;
}

/* ── 18. PARTNERS & BRANDS MATRIX ── */
.partners-table-outer {
    width: 100%;
    overflow-x: auto;
    margin-top: 48px;
    padding: 1px;
}

.partners-matrix-table {
    display: grid;
    grid-template-columns: repeat(7, minmax(130px, 1fr));
    border: 1px solid var(--border-light);
    background: var(--border-light);
    gap: 1px;
    border-radius: 12px;
    overflow: hidden;
    min-width: 910px;
}

.cat-cell {
    background: #f8f9fa;
    padding: 20px 10px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--text-light);
    border-bottom: 1px solid var(--border-light);
    transition: 0.3s;
}

.cat-cell:hover {
    background: #fff;
    color: var(--primary-blue);
}

.brand-cell {
    background: #fff;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    text-decoration: none;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.brand-cell:hover {
    background: #f0f7ff;
    z-index: 2;
    box-shadow: inset 0 0 0 2px var(--primary-blue);
}

.table-logo {
    width: 100%;
    height: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    filter: grayscale(1) opacity(0.8);
    transition: 0.3s;
}

.brand-cell:hover .table-logo {
    filter: grayscale(0) opacity(1);
    transform: scale(1.1);
}

.brand-cell.empty {
    background: #fafafa;
    pointer-events: none;
}

.scroll-hint {
    display: none;
    font-size: 11px;
    color: var(--text-light);
    margin-bottom: 8px;
    text-align: right;
}

@media (max-width: 910px) {
    .scroll-hint {
        display: block;
    }
}

/* Partnership Table Logo Sprites/Sources */
.tl-risco {
    background-image: url('/images/brands/logo-risco.png');
}

.tl-ajax {
    background-image: url('/images/brands/logo-ajax.png');
}

.tl-paradox {
    background-image: url('/images/brands/logo-paradox.png');
}

.tl-hikvision {
    background-image: url('/images/brands/logo-hikvision.png');
}

.tl-milesight {
    background-image: url('/images/brands/strip-cctv.png');
    background-size: 200% auto;
    background-position: 100% center;
}

.tl-hanwha {
    background-image: url('/images/brands/logo-wisenet.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.tl-zkteco {
    background-image: url('/images/brands/strip-access.png');
    background-size: 600% auto;
    background-position: 0% center;
}

.tl-suprema {
    background-image: url('/images/brands/strip-access.png');
    background-size: 600% auto;
    background-position: 20% center;
}

.tl-hid {
    background-image: url('/images/brands/strip-access.png');
    background-size: 600% auto;
    background-position: 80% center;
}

.tl-akuvox {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 0% center;
}

.tl-aiphone {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 20% center;
}

.tl-kocom {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 40% center;
}

.tl-faac {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 60% center;
}

.tl-dormer {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 80% center;
}

.tl-mag {
    background-image: url('/images/brands/strip-intercom-gates.png');
    background-size: 600% auto;
    background-position: 100% center;
}

.tl-yeastar {
    background-image: url('/images/brands/strip-it-network.png');
    background-size: 400% auto;
    background-position: 0% center;
}

.tl-fanvil {
    background-image: url('/images/brands/strip-it-network.png');
    background-size: 400% auto;
    background-position: 33% center;
}

.tl-ruijie {
    background-image: url('/images/brands/strip-it-network.png');
    background-size: 400% auto;
    background-position: 66% center;
}

.tl-omada {
    background-image: url('/images/brands/strip-it-network.png');
    background-size: 400% auto;
    background-position: 100% center;
}


.products-cta-row {
    margin-top: 56px;
    display: flex;
    gap: 16px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.btn-products {
    border: 2px solid var(--primary-blue);
    color: var(--primary-blue);
    background: rgba(0, 86, 179, 0.03);
    text-decoration: none;
    padding: 14px 32px;
    border-radius: 8px;
    font-family: var(--display-font);
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: 0.3s;
    display: inline-block;
}

.prop-card-img,
.project-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-bottom: 1px solid var(--border-light);
    transition: 0.3s;
}

.prop-compare-card:hover .prop-card-img,
.project-card:hover .project-img {
    transform: scale(1.05);
}

.prop-header {
    padding: 16px;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
}

.prop-header h3 {
    font-size: 18px;
    margin-bottom: 4px;
    color: var(--primary-blue);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.prop-header .subtypes {
    font-size: 13px;
    color: var(--text-light);
    font-style: italic;
}

.prop-details,
.project-card-body {
    padding: 20px;
    flex-grow: 1;
}

.prop-group {
    margin-bottom: 16px;
}

.prop-group strong {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-dark);
    margin-bottom: 8px;
}

.prop-group ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.prop-group li {
    font-size: 14px;
    color: var(--text-light);
    margin-bottom: 4px;
    padding-left: 18px;
    position: relative;
}

.prop-group li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--primary-blue);
}

.view-btn-wrap {
    padding: 16px 20px;
    border-top: 1px dashed var(--border-light);
}

.view-prop-btn {
    width: 100%;
    background: var(--primary-blue);
    color: #fff;
    padding: 12px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
    display: block;
    transition: 0.3s;
    border: none;
}

.view-prop-btn:hover,
.prop-compare-card:hover .view-prop-btn {
    background: var(--dark-blue);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 86, 179, 0.2);
}

.project-category {
    color: var(--primary-blue);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 8px;
    display: block;
}

.project-name {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 4px;
    font-family: var(--display-font);
}

.project-detail {
    font-size: 13px;
    color: var(--text-light);
    margin-bottom: 24px;
    display: block;
}

.project-card-body p {
    margin-bottom: 16px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-light);
}

.project-card-body p strong {
    color: var(--text-dark);
    display: block;
    margin-bottom: 4px;
}

.project-result {
    color: var(--primary-blue);
    font-weight: 600;
    border-top: 1px solid var(--border-light);
    padding-top: 16px;
    margin-top: 16px;
}

.btn-products:hover {
    background: var(--primary-blue);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 86, 179, 0.2);
}


/* Category & Factoring */
.category-group {
    margin-bottom: 80px;
}

.category-header {
    text-align: center;
    margin-bottom: 40px;
}

.category-eyebrow {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--primary-blue);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 8px;
}

.category-h3 {
    font-size: 28px;
    font-weight: 700;
    color: var(--text-dark);
    margin: 0;
}

.factors-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
}

.factors-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    margin-top: 48px;
}

.factor-card {
    padding: 48px 32px 32px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid var(--border-light);
    transition: 0.3s;
    display: flex;
    flex-direction: column;
    position: relative;
}

.factor-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border-color: var(--accent-red);
}

.factor-num {
    position: absolute;
    top: 16px;
    left: 16px;
    font-size: 24px;
    font-weight: 800;
    color: var(--accent-red);
}

/* Property Hub Grid */
.property-hub-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 56px;
}

.prop-compare-card,
.project-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    transition: 0.3s;
    height: 100%;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
}

.prop-compare-card:hover,
.project-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0, 86, 179, 0.12);
    border-color: var(--primary-blue);
}

@media (max-width: 991px) {

    section {
        padding: 64px 0;
    }

    .hero {
        padding: 110px 0 80px;
    }

    .hero h1 {
        font-size: 32px;
    }

    .hero .subtitle {
        font-size: 16px;
    }

    .hero-nav-pills {
        display: none;
    }

    /* Trust bar — hide on mobile, not needed at small screen */
    .sv-trust-bar {
        display: none;
    }

    /* Standardise: All grids stack into a single column at 768px */
    .grid-2,
    .grid-3,
    .grid-4,
    .subsystem-grid,
    .factors-grid,
    .factors-4,
    .property-hub-grid,
    .pathfinder-grid,
    .comparison-grid,
    .logos-grid,
    .products-intro-grid,
    .why-grid,
    .testimonials-grid,
    .assurance-grid,
    .assurance-section .assurance-grid,
    .infinity-box,
    .brand-grid-3 {
        grid-template-columns: 1fr;
    }


    .system-side {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
        padding-right: 0;
        padding-bottom: 28px;
    }

    .people-side {
        padding-left: 0;
        padding-top: 28px;
    }

    .trust-flex {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        align-items: center;
    }

    /* Buttons stack vertically and stretch full width on mobile */
    .btn-group {
        flex-direction: column;
        align-items: stretch;
        max-width: 340px;
        margin: 0 auto 40px;
        gap: 12px;
        /* tighter gap when stacked */
    }

    .btn-group .btn {
        width: 100%;
        min-width: unset;
        min-height: 52px;
        /* keep min-height on mobile */
        padding: 14px 24px;
        white-space: normal;
        /* allow wrap on very narrow mobile */
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }
}

/* Intermediate tablet stack for 4-column grids */
@media (max-width: 992px) and (min-width: 769px) {

    .factors-4,
    .grid-4,
    .logos-grid,
    grid-template-columns: repeat(2, 1fr);
}
}

@media (min-width: 769px) {
    .desktop-only {
        display: inline-block;
    }
}

/* ≤480px: tighten up */
@media (max-width: 480px) {

    .subsystem-grid,
    .factors-grid,
    .factors-4,
    .property-hub-grid,
    .trust-flex {
        grid-template-columns: 1fr;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }
}



/* Floating WhatsApp */
.sv-wa-float {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: #25d366;
    color: white;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.3);
    z-index: 1000;
    transition: transform 0.2s;
}

.sv-wa-float:hover {
    transform: scale(1.1);
}

@media (max-width: 480px) {
    .sv-wa-float {
        width: 48px;
        height: 48px;
        bottom: 16px;
        right: 16px;
    }
}

.hidden {
    display: none !important;
}

/* System Browse Tiles */
.system-browse {
    padding: 100px 0;
    background: #fff;
}

.system-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
}

.system-tile {
    padding: 32px;
    border-radius: 12px;
    background: var(--bg-light);
    text-decoration: none;
    color: inherit;
    border: 1px solid transparent;
    transition: 0.3s;
}

.system-tile:hover {
    transform: translateY(-3px);
    background: #fff;
    border-color: var(--primary-blue);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.system-tile h3 {
    font-size: 18px;
    margin-bottom: 12px;
    color: var(--text-dark);
    transition: 0.3s;
}

.system-tile:hover h3 {
    color: var(--primary-blue);
}

.system-tile p {
    font-size: 15px;
    color: var(--text-light);
    line-height: 1.6;
    margin-bottom: 16px;
}

.tile-link {
    font-size: 13px;
    font-weight: 700;
    color: var(--primary-blue);
    display: flex;
    align-items: center;
    gap: 4px;
}

@media (max-width: 992px) {
    .system-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .system-grid {
        grid-template-columns: 1fr;
    }
}

/* -- 25. SITEMAP STYLES -- */
.sitemap-hero {
    padding: 60px 0;
    background: var(--bg-light);
    border-bottom: 1px solid var(--border-light);
    margin-bottom: 60px;
    padding-top: 140px;
}

.sitemap-hero h1 {
    font-family: var(--display-font);
    font-size: 36px;
    margin-bottom: 10px;
    color: var(--text-dark);
}

.sitemap-hero p {
    color: var(--text-light);
    font-size: 16px;
}

.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 40px;
    margin-bottom: 80px;
}

.sitemap-col h3 {
    font-family: var(--display-font);
    font-size: 18px;
    color: var(--primary-blue);
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--primary-blue);
    display: inline-block;
}

.sitemap-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sitemap-list li {
    margin-bottom: 12px;
}

.sitemap-list a {
    color: var(--text-dark);
    text-decoration: none;
    font-size: 14px;
    transition: 0.2s;
    display: block;
}

.sitemap-list a:hover {
    color: var(--primary-blue);
    transform: translateX(5px);
}

.sitemap-list a strong {
    color: var(--primary-blue);
}

.sitemap-list .sub-list {
    margin-left: 15px;
    margin-top: 8px;
    border-left: 1px solid var(--border-light);
    padding-left: 15px;
}

.sitemap-hero {
    padding: 40px 0;
    padding-top: 100px;
}

.sitemap-hero h1 {
    font-size: 28px;
}

.sitemap-grid {
    grid-template-columns: 1fr;
    gap: 30px;
}
}

/* -- UTILITY ADDITIONS -- */
.mt-16 {
    margin-top: 16px !important;
}

.mt-24 {
    margin-top: 24px !important;
}

.mt-40 {
    margin-top: 40px !important;
}

.mt-48 {
    margin-top: 48px !important;
}

.mt-56 {
    margin-top: 56px !important;
}

.mt-64 {
    margin-top: 64px !important;
}

.mt-80 {
    margin-top: 80px !important;
}

.mt-100 {
    margin-top: 100px !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.ml-0 {
    margin-left: 0 !important;
}

.p-32 {
    padding: 32px !important;
}

.rounded-12 {
    border-radius: 12px !important;
}

.align-center {
    align-items: center !important;
}

.gap-64 {
    gap: 64px !important;
}

.text-left {
    text-align: left !important;
}


/* Compliance & Assurance Cards */
.compliance-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: 0.3s;
}

.compliance-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0, 86, 179, 0.08);
    border-color: var(--primary-blue);
}

.compliance-icon {
    width: 48px;
    height: 48px;
    background: var(--bg-light);
    color: var(--primary-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    margin-bottom: 24px;
}

.compliance-card h3 {
    font-size: 18px !important;
    margin-bottom: 12px !important;
    color: var(--text-dark) !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
}

.compliance-card p {
    font-size: 14px;
    color: var(--text-gray);
    line-height: 1.6;
    margin-bottom: 20px;
}

.compliance-list {
    flex-grow: 1;
    margin-bottom: 24px;
}

.compliance-list strong {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    color: var(--text-light);
    margin-bottom: 12px;
    letter-spacing: 0.5px;
}

.compliance-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.compliance-list li {
    font-size: 13px;
    color: var(--text-gray);
    margin-bottom: 8px;
    position: relative;
    padding-left: 18px;
}

.compliance-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--accent-green);
    font-weight: bold;
}

.compliance-footer p {
    font-size: 12px;
    color: var(--text-light);
    font-style: italic;
    margin: 0;
    border-top: 1px solid var(--border-light);
    padding-top: 16px;
}

.compliance-callout {
    text-align: center;
    max-width: 800px;
    margin: 64px auto 0;
    background: var(--primary-blue);
    color: #fff;
    padding: 40px;
    border-radius: 16px;
}

.compliance-callout h3 {
    font-size: 22px !important;
    margin-bottom: 12px !important;
    color: #fff !important;
    font-weight: 700 !important;
}

.compliance-callout p {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
    line-height: 1.6;
}

/* Insight Cards (Sector Specific) */
.insight-card {
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 12px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    transition: 0.3s;
    text-decoration: none;
    color: inherit;
    height: 100%;
}

.insight-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0, 86, 179, 0.08);
    border-color: var(--primary-blue);
    text-decoration: none;
    color: inherit;
}

.insight-card .category-pill {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    color: var(--primary-blue);
    background: rgba(0, 86, 179, 0.08);
    padding: 4px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 16px;
    align-self: flex-start;
}

.insight-card h3 {
    font-size: 18px !important;
    color: var(--text-dark) !important;
    margin-bottom: 12px !important;
    line-height: 1.4 !important;
    font-weight: 700 !important;
}

.insight-card p {
    font-size: 14px;
    color: var(--text-gray);
    line-height: 1.6;
    margin-bottom: 24px;
}

.insight-card .read-more {
    margin-top: auto;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-blue);
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Spacing Utilities added during sitemap refactor */
.pt-100 { padding-top: 100px !important; }
.pb-100 { padding-bottom: 100px !important; }
.py-100 { padding-top: 100px !important; padding-bottom: 100px !important; }

/* ── HOMEPAGE SVG FALLBACK RULES FOR HOSTINGER ── */
.hp-card-svg,
.hp-resource-svg,
.hp-factor-svg,
.learned-card-svg {
  width: 24px;
  height: 24px;
  stroke: var(--primary-blue, #0056b3);
  transition: stroke 0.2s, transform 0.2s;
  display: block;
  margin-bottom: 12px;
}
