/*
Theme Name: CM Beyer
Theme URI: https://cmbeyer.co.uk
Author: CM Beyer Limited
Author URI: https://cmbeyer.co.uk
Description: Corporate website for CM Beyer Limited — marketing, advertising and business management consultancy based in London.
Version: 5.7.1
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary - All Rights Reserved
License URI: https://cmbeyer.co.uk/website-tos/
Text Domain: cmbeyer
Tags: corporate, business, consultancy, custom-logo, custom-menu, featured-images, threaded-comments

Changelog 4.6.2 (IndexNow + portal fixes — see CHANGELOG.md)
  - IndexNow tool: the SEO tab in the WP-admin CM Beyer Panel only
    accepted HTTP 200 as "submitted", so every successful bulk submit
    rendered as failure. IndexNow returns HTTP 202 Accepted on success;
    the helper now treats both 200 and 202 as success, handles
    wp_remote_post() returning a WP_Error (network/DNS/timeout) instead
    of dereferencing it, and surfaces the API's own response body on a
    rejection so the admin can see *why* (commonly: key file not
    reachable at /<key>.txt, or one of the URLs isn't on the declared
    host). Bulk and single-URL submits share the new helper.
  - Portal Site Health: the IndexNow row used function_exists('cmbeyer_
    indexnow_ping') — the legacy v1 function name — so it always
    showed "Inactive" even with the v2 mu-plugin loaded. Now also
    checks for cmbeyer_indexnow_ping_on_publish (v2.0+). Same fix
    applied to the SEO tab's IndexNow Status row.
  - Portal feedback: ticket reply, ticket close, note add and note
    delete all updated the DB silently and re-rendered the page with
    no notice. They each set a one-shot flag now and render a green
    "✓ Saved / Sent / Closed / Added / Deleted" notice, so the
    buttons no longer look like dead air.
  - Portal ↔ admin-panel ticket replies are now interoperable. The
    portal used to store replies only under a timestamped meta key
    (_ticket_reply_<time>) that nothing read, while the WP-admin
    panel stored the latest reply under _ticket_reply / _ticket_
    replied_at and rendered THAT in the ticket view. A reply sent
    from the portal therefore never showed up in the admin view, and
    vice versa. The portal now mirrors every reply into the canonical
    keys, AND the ticket view in the portal displays the last reply
    block (reading the same canonical keys) — so a reply sent in
    either place is now visible from both.
  - "Declare Dividend" quick action on the portal dashboard linked
    to /?tab=dividends, a read-only list with no creation form, which
    was the most obvious dead-air button on the dashboard. It now
    links to the WP-admin CM Beyer Panel → Dividends tab where the
    creation form actually lives. A matching "Declare Dividend"
    button was added to the dividends-list header in the portal so
    the path is consistent.
  - Portal handlers: all six state-changing POST handlers now read
    $_POST['portal_nonce'] / $_POST['ticket_id'] / etc. via `?? ''`
    so PHP 8 stops emitting undefined-key warnings on the first POST
    after a form load. wp_safe_redirect() replaces wp_redirect() on
    the login/logout flows for defence in depth (the targets are
    same-host, but wp_safe_redirect costs nothing). Ticket status
    update validates the new status against an allow-list of
    open/replied/closed before writing.
  - The standalone /wp-content/cmbeyer-portal.php is updated in
    lockstep with templates/cmbeyer-portal.php (the 4.6.0 release
    requires the two to be byte-identical).
  - Theme version → 4.6.2. No new features outside the portal; no DB
    schema changes; safe to drop in over 4.6.1 / 4.6.0.

Changelog 4.6.1 (housekeeping pass — see CHANGELOG.md)
  - Fixed a duplicate 'support' key in cmbeyer_seo_meta()'s $page_descs
    array. PHP silently kept the second value and dropped the first; the
    /support/ page was rendering with the longer "knowledge base, FAQs,
    and digital request forms" description while the shorter, hand-tuned
    "knowledge base articles, FAQs, and digital forms for service
    enquiries, proposals, complaints" line — which the array had defined
    first — was discarded unseen. The keeper is now the first definition.
  - Removed the dead pre-v2 contact-form handler from inc/contact-form.php
    and its companion remove_action() calls in inc/admin-panel.php. The
    v2 handler in admin-panel.php is now the only registered handler
    instead of admin-panel.php having to unhook the v1 first. Pure
    cleanup — behaviour is identical for the live form.
  - admin-panel.php: contact-form v2 now uses wp_safe_redirect() (was
    wp_redirect), $_POST['cmb_seo_nonce'] / $_POST['cmb_single_url'] now
    carry `?? ''` defaults so PHP 8 stops warning on missing keys, and
    ticket-status badges run their value through esc_attr() / esc_html()
    before echoing it into the class attribute and label.
  - Removed the dead in-theme floating-support-widget JS block from
    assets/js/main.js (it bound to #support-toggle/#support-panel/
    #sup-name IDs the markup no longer emits — the widget moved wholesale
    to mu-plugins/cmbeyer-support-ui.php in 3.x with new #swToggle/
    #swPanel/.sw-* names). Removed the matching .support-widget* /
    .support-panel* CSS in style.css for the same reason. wp_localize_
    script('cmbeyer_ajax') in functions.php — whose only consumer was
    that dead JS — removed too.
  - inc/company-data.php: removed the dead first `phone_raw` line in the
    cmb() data table. The line below it always re-derived phone_raw from
    $data['phone'], so the upper line was always overwritten before any
    caller could see it.
  - Theme version → 4.6.1. No new features; no DB changes; safe to drop
    in over 4.6.0.

Changelog 4.6.0 (bug-fix & hardening pass — see CHANGELOG.md / CHANGELOG-4.6.0.md)
  - Portal access control: cmbeyer-portal.php now requires manage_options
    in addition to is_user_logged_in() before accepting state-changing
    POST actions. Applied to both the standalone root file and the
    byte-identical bundled copy at templates/cmbeyer-portal.php.
  - <noscript> CSS fallback in header.php forces scroll-animation classes
    (.section, .card, .fade-in, etc.) visible when JavaScript is off, so
    no-JS visitors no longer see a blank page.
  - inc/enhance-kb.php: removed duplicate description / og:* / twitter:*
    tags (already emitted by cmbeyer_seo_meta() for cmb_kb). The unique
    article:* tags and Article JSON-LD are kept.
  - cmbeyer-support-ui.php: quick-message widget now parses the JSON
    envelope (success === true) instead of treating any HTTP 200 as a
    successful ticket submission. → 3.0.1.
  - cmbeyer_robots_txt(): the unprefixed "LLM index:" directive is now a
    comment so strict validators don't flag it as invalid format.
  - inc/admin-wizard.php: $_POST['_wpnonce'] now read as `?? ''` to avoid
    a PHP 8 undefined-key warning.
  - cmbeyer-pdf-seo.php: corrected an invalid cmb('company_name') key to
    cmb('name'). → 1.0.1.

Changelog 4.5.0 (SEO + GEO + progressive-loading pass)
  - Region switcher v9: server-side rendering via mu-plugin output buffer.
    Base markup is <details>/<summary> so it works with JS off and is
    visible to JS-disabled crawlers (Semrush Free, basic curl). Styling
    tightened to match the spec (wider items, more vertical padding,
    sharper active row).
  - Visible breadcrumbs (mu-plugin cmbeyer-breadcrumbs.php). Cluster
    heuristics so CMB Insight → Services, Privacy Policy → Legal, etc.
    Schema.org microdata on the rendered HTML; JSON-LD BreadcrumbList
    still emitted from functions.php (richer now — includes parents).
  - Cloudflare email-protection fix (mu-plugin cmbeyer-email-protection.php).
    Route handler at /cdn-cgi/l/email-protection returns 200 with a
    client-side decoder; PHP output-buffer filter rewrites every
    __cf_email__ link to a real mailto: before the HTML leaves the
    server. Resolves the 133 broken-link flags Semrush keeps hitting.
  - Optimize plugin v2: async non-critical CSS via the print-media
    swap trick (driven by the new cmbeyer_print_critical_css() helper
    in header.php), explicit width/height on raw <img> tags via
    getimagesize, lazy-load for below-fold images, Link rel=preload
    Early Hints, HSTS + best-practice security headers.
  - FAQ schema auto-detector (mu-plugin cmbeyer-faq-schema.php).
    Detects three Q&A patterns in rendered HTML and emits FAQPage
    JSON-LD. Wins for Generative Engine Optimization — LLM search
    products read FAQPage schema preferentially.
  - functions.php: critical CSS helper, duplicate-canonical dedupe
    filter, post titles differentiated from H1 (category suffix when
    it fits in 70 chars), unique meta descriptions for the three
    pages Semrush flagged as duplicates.
  - "Learn more" anchors on /do-more/ rewritten to "Learn more about
    CMB Insight" / Amplify / Core. Semrush flagged 3 non-descriptive
    anchor texts; this resolves them.
  - /site-credentials/ popup now declares lang="en-GB", carries a
    screen-reader-only <h1>, and a meta description. Page is still
    noindex (it's a popup, not a content page) but the basics are
    in place for the few tools that ignore noindex.

Changelog 4.4.0 (polish pass)
  - AU/NA mobile footer: collapses to 2 columns now (was 1 — created a blank
    right half that made the site feel zoomed-out). Brand spans both columns.
  - AU/NA mobile hero/section padding tightened so content reads less compressed.
  - Region-switcher mu-plugin v8: white-space:nowrap on the label (fixes
    "United Kingdom" wrapping to two lines), tighter padding/gaps, dedicated
    label span with ellipsis fallback, block-level on mobile with full
    container width, focus-visible ring, prefers-reduced-motion override.
  - Modernity: color-scheme:light, frosted-glass sticky header
    (backdrop-filter), card hover lift, button elevation+lift, link
    text-underline-offset, focus-visible rings throughout, smoother page-header
    gradient with radial highlight, tabular numerals in stats/tables, print
    stylesheet, prefers-reduced-motion respect (WCAG 2.1 SC 2.3.3).

Changelog 4.3.0 (consistency + performance pass)
  - Consolidated style-articles.css + style-logo-fix.css into style.css
    (cuts two HTTP requests on every page render).
  - Added canonical .uk-page-hero / .uk-page-main classes so all UK
    page templates render with identical hero/body geometry.
  - AU/NA self-contained templates: max-width normalised 1280 -> 1180 to
    match UK theme width so all three regional sites feel intentional.
  - Region switcher restyled: larger touch target, better contrast, and
    a robust fallback that finds the AU/NA footer Legal column too.
  - hero.jpg re-encoded (690 KB -> 173 KB); hero-mobile.jpg + WebP
    variants added; responsive <picture> + preload hints updated.
*/

/* ═══ TOKENS ═══ */
:root{
  --brand:#11676A;--brand-dark:#0c5052;--brand-light:#178286;--brand-pale:#dff0f0;
  --black:#0a0a0a;--dark:#1a1a1a;--g8:#2a2a2a;--g7:#444;--g6:#555;--g5:#666;--g4:#6b6b6b;--g3:#aaa;--g2:#d4d4d4;--g1:#e8e8e8;--g0:#f4f4f4;--white:#fff;
  --font:'Plus Jakarta Sans','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-serif:Georgia,'Times New Roman',serif;
  --mx:1180px;--nr:720px;
  --tr:.2s ease;
}

/* ═══ RESET ═══ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);font-weight:400;color:var(--black);background:var(--white);line-height:1.6;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{list-style:none}
::selection{background:var(--brand);color:var(--white)}
table{border-collapse:collapse;width:100%}

/* ═══ TYPOGRAPHY — Institutional/Corporate ═══ */
h1,h2,h3,h4,h5,h6{font-family:var(--font);line-height:1.2;font-weight:700}
h1{font-size:2.4rem;letter-spacing:-.02em}
h2{font-size:1.8rem;letter-spacing:-.01em}
h3{font-size:1.35rem}
h4{font-size:1.1rem}
h5{font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--g5)}
p{margin-bottom:.9rem}

/* ═══ LAYOUT ═══ */
.container{max-width:var(--mx);margin:0 auto;padding:0 1.25rem}
.container--narrow{max-width:var(--nr)}
.section{padding:3.5rem 0}
.section--gray{background:var(--g0)}
.section--dark{background:var(--dark);color:var(--white)}
.section--brand{background:var(--brand);color:var(--white)}
.grid{display:grid;gap:1.5rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.section{padding:2.5rem 0}}

/* ═══ UTILITY BAR ═══ */
.utility-bar{background:var(--dark);color:var(--white);font-size:.78rem;border-bottom:1px solid var(--g8)}
.utility-bar__inner{display:flex;justify-content:space-between;align-items:center;max-width:var(--mx);margin:0 auto;padding:.45rem 1.25rem}
.utility-bar__left,.utility-bar__right{display:flex;align-items:center;gap:1.25rem}
.utility-bar a{color:rgba(255,255,255,.7);font-weight:500;transition:color var(--tr)}
.utility-bar a:hover{color:var(--white);text-decoration:none}
.utility-bar__portal{color:#fff!important;font-weight:800!important;font-size:.8rem!important;letter-spacing:.025em}
.utility-bar__divider{width:1px;height:14px;background:rgba(255,255,255,.2)}
@media(max-width:768px){.utility-bar__left{display:none}}

/* ═══ SITE HEADER ═══ */
.site-header{background:var(--white);border-bottom:3px solid var(--brand);position:sticky;top:0;z-index:100;box-shadow:0 1px 4px rgba(0,0,0,.06)}
body.admin-bar .site-header{top:32px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--mx);margin:0 auto;padding:0 1.25rem;height:68px}
.site-logo{display:flex;align-items:center}
.site-logo svg{height:36px;width:auto}
.site-nav{display:flex;align-items:center;gap:0}
.site-nav a{display:block;padding:1.4rem 1rem;font-size:.88rem;font-weight:600;color:var(--black);border-bottom:3px solid transparent;margin-bottom:-3px;transition:all var(--tr)}
.site-nav a:hover,.site-nav a.active{color:var(--brand);border-bottom-color:var(--brand);text-decoration:none;background:var(--g0)}
.site-nav__cta{background:var(--brand)!important;color:var(--white)!important;border-bottom-color:var(--brand)!important;padding:0.7rem 1.5rem!important;margin:.5rem 0 .5rem .5rem;border-radius:3px}
.site-nav__cta:hover{background:var(--brand-dark)!important}

/* Search in header */
.header-search{position:relative;margin-left:.75rem}
.header-search__btn{background:none;border:none;cursor:pointer;padding:.5rem;color:var(--g5);transition:color var(--tr)}
.header-search__btn:hover{color:var(--brand)}
.header-search__btn svg{width:20px;height:20px}

/* Mobile */
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--black);margin:4px 0;border-radius:1px;transition:var(--tr)}
@media(max-width:768px){
  .menu-toggle{display:block}
  .site-nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--white);flex-direction:column;border-bottom:3px solid var(--brand);box-shadow:0 8px 20px rgba(0,0,0,.1)}
  .site-nav.open{display:flex}
  .site-nav a{padding:1rem 1.25rem;border-bottom:1px solid var(--g1);margin-bottom:0}
  .site-nav__cta{margin:.75rem 1.25rem;text-align:center}
}

/* ═══ BUTTONS ═══ */
.btn{display:inline-block;padding:.7rem 1.6rem;font-family:var(--font);font-size:.88rem;font-weight:600;border:none;cursor:pointer;transition:all var(--tr);text-decoration:none;border-radius:3px}
.btn:hover{text-decoration:none}
.btn--primary{background:var(--brand);color:var(--white)}
.btn--primary:hover{background:var(--brand-dark)}
.btn--secondary{background:var(--dark);color:var(--white)}
.btn--secondary:hover{background:var(--black)}
.btn--outline{background:transparent;color:var(--brand);border:2px solid var(--brand)}
.btn--outline:hover{background:var(--brand);color:var(--white)}
.btn--white{background:var(--white);color:var(--brand)}
.btn--white:hover{background:var(--g0)}
.btn--sm{padding:.5rem 1rem;font-size:.8rem}
.btn--lg{padding:.85rem 2rem;font-size:.95rem}
.btn--block{display:block;width:100%;text-align:center}
.btn-arrow::after{content:' →'}

/* ═══ HERO — Corporate full-width banner ═══ */
.hero-banner{position:relative;min-height:480px;display:flex;align-items:center;background:var(--dark);color:var(--white);overflow:hidden}
.hero-banner__bg{position:absolute;inset:0}
.hero-banner__bg img{width:100%;height:100%;object-fit:cover;opacity:.25}
.hero-banner__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,103,106,.92) 0%,rgba(17,103,106,.6) 60%,rgba(17,103,106,.3) 100%)}
.hero-banner__content{position:relative;z-index:1;max-width:560px}
.hero-banner__title{font-size:2.6rem;font-weight:700;line-height:1.15;margin-bottom:1rem;letter-spacing:-.02em}
.hero-banner__subtitle{font-size:1.05rem;line-height:1.7;opacity:.9;margin-bottom:1.75rem}
.hero-banner__actions{display:flex;gap:.75rem;flex-wrap:wrap}
@media(max-width:600px){.hero-banner{min-height:360px}.hero-banner__title{font-size:1.8rem}.hero-banner__actions{flex-direction:column}.hero-banner__actions .btn{text-align:center}}

/* ═══ PAGE HEADER — Inner pages ═══
   CANONICAL UK PAGE HERO — Every UK page (whether using .page-header from
   this file, an inline-styled .xx-hero block, or a partial like .lp-hero)
   should match these geometry values so the site feels intentional:
     background gradient  linear-gradient(135deg,#11676A 0%,#0d5254 100%)
     padding              3rem 2rem
     inner max-width      900px
     breadcrumb           font-size:.75rem  rgba(255,255,255,.55)
     h1                   clamp(1.55rem,3.5vw,2.1rem)  weight 700  #fff
     subtitle/desc        font-size:.92rem  rgba(255,255,255,.65)  lh 1.65
                          max-width 620px
   The per-page CSS in templates/ keeps its prefixed class names (so any
   page-specific overrides still work), but the underlying values are
   identical. New templates can drop in .uk-page-hero / .uk-page-main and
   get the canonical look without any extra CSS.
*/
.page-header,.uk-page-hero{background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);color:var(--white);padding:3rem 2rem;border-bottom:none}
.page-header .container,.uk-page-hero__inner{max-width:900px;margin:0 auto}
.page-header__breadcrumb,.uk-page-hero__bc{font-size:.75rem;color:rgba(255,255,255,.55);margin-bottom:.5rem;line-height:1.4}
.page-header__breadcrumb a,.uk-page-hero__bc a{color:rgba(255,255,255,.55);text-decoration:none}
.page-header__breadcrumb a:hover,.uk-page-hero__bc a:hover{color:#fff;text-decoration:underline}
.page-header__title,.uk-page-hero h1{font-size:clamp(1.55rem,3.5vw,2.1rem);font-weight:700;color:var(--white);line-height:1.2;margin:0 0 .35rem}
.page-header__desc,.uk-page-hero__sub{font-size:.92rem;color:rgba(255,255,255,.8);margin:0;line-height:1.65;max-width:620px}
.page-header .wrap{max-width:900px;margin:0 auto}
.page-header__label{font-size:.7rem;font-weight:700;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.4rem}
/* ═══ CARDS ═══ */
.card{background:var(--white);border:1px solid var(--g1);padding:1.75rem;transition:all var(--tr)}
.card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);border-color:var(--g2)}
.card--link{text-decoration:none;display:block;color:inherit}
.card--link:hover{text-decoration:none}
.card--link:hover .card__title{color:var(--brand)}
.card--featured{border-left:4px solid var(--brand)}
.card__label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin-bottom:.35rem}
.card__title{font-size:1.15rem;font-weight:700;margin-bottom:.5rem;transition:color var(--tr)}
.card__text{font-size:.9rem;color:var(--g5);line-height:1.55}
.card__link{display:inline-block;margin-top:1rem;font-size:.85rem;font-weight:600;color:var(--brand)}
.card__link:hover{text-decoration:underline}

/* ═══ PRICING TIERS ═══ */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;align-items:stretch}
@media(max-width:900px){.pricing-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}}
.pricing-card{border:1px solid var(--g1);padding:2rem;display:flex;flex-direction:column;background:var(--white)}
.pricing-card+.pricing-card{border-left:none}
@media(max-width:900px){.pricing-card+.pricing-card{border-left:1px solid var(--g1);border-top:none}}
.pricing-card--featured{border:2px solid var(--brand);position:relative;z-index:1;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.pricing-card--featured .pricing-card__head{background:var(--brand);color:var(--white);margin:-2rem -2rem 1.5rem;padding:1.5rem 2rem}.pricing-card__badge{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--brand)}
.pricing-card--featured .pricing-card__badge{color:rgba(255,255,255,.7)}
.pricing-card__name{font-size:1.4rem;font-weight:700;margin-top:.25rem}
.pricing-card__desc{font-size:.85rem;color:var(--g5);line-height:1.5;margin-bottom:1.25rem}
.pricing-card--featured .pricing-card__desc{color:rgba(255,255,255,.8)}
.pricing-card__features{flex:1;margin-bottom:1.5rem}
.pricing-card__features li{padding:.4rem 0 .4rem 1.25rem;font-size:.84rem;color:var(--g6);border-bottom:1px solid var(--g0);position:relative}
.pricing-card__features li::before{content:'✓';position:absolute;left:0;color:var(--brand);font-weight:700;font-size:.8rem}
.pricing-card .btn{width:100%;text-align:center}

/* ═══ FEATURE LIST ═══ */
.feature-list{columns:2;column-gap:2rem;margin:1.5rem 0}
@media(max-width:600px){.feature-list{columns:1}}
.feature-list li{padding:.4rem 0 .4rem 1.25rem;font-size:.9rem;color:var(--g6);border-bottom:1px solid var(--g0);position:relative;break-inside:avoid}
.feature-list li::before{content:'•';position:absolute;left:0;color:var(--brand);font-weight:700}

/* ═══ CONTENT / PROSE ═══ */
.prose{max-width:var(--nr)}
/* Paragraph: single canonical rule. (Previously declared twice — once here
   and again lower down as ".prose p{font-size:1.05rem;line-height:1.85}",
   which silently overrode the size/leading. Merged here so there is one
   source of truth. Computed values are unchanged: 1.05rem / 1.85.) */
.prose p{font-size:1.05rem;line-height:1.85;color:var(--g6);margin-bottom:1rem}
.prose h2{margin-top:2rem;margin-bottom:.75rem;padding-top:1.5rem;border-top:1px solid var(--g1);font-size:1.2rem}
.prose h2:first-child{border-top:none;padding-top:0;margin-top:0}
/* Sub-heading. Seeded articles use <h3> (e.g. FAQ question headings).
   Without a .prose rule it fell through to the global "h3{font-size:1.5rem}",
   so an <h3> rendered LARGER than the 1.2rem .prose h2 above it and carried
   no controlled spacing — the article formatting inconsistency this fixes.
   Sized between body text (1.05rem) and .prose h2 (1.2rem); spacing scaled
   below h2's so the heading hierarchy reads correctly. */
.prose h3{margin-top:1.6rem;margin-bottom:.4rem;font-size:1.1rem;font-weight:700;line-height:1.4}
.prose h3:first-child{margin-top:0}
.prose a{color:var(--brand);text-decoration:underline}
.prose ul{padding-left:1.25rem;margin-bottom:1rem}
.prose ul li{list-style:disc;margin-bottom:.3rem;font-size:.93rem;color:var(--g6)}@media(max-width:768px){}.legal-toc a{display:block;padding:.35rem 0 .35rem .75rem;color:var(--g5);border-left:2px solid var(--g1);transition:all var(--tr)}
.legal-toc a:hover,.legal-toc a.active{color:var(--brand);border-left-color:var(--brand);text-decoration:none}
.legal-body h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;margin-top:2.5rem;margin-bottom:.75rem;padding-top:1.5rem;border-top:1px solid var(--g1);scroll-margin-top:100px}
.legal-body h2:first-child{border-top:none;padding-top:0;margin-top:0}.legal-body p{font-size:.95rem;line-height:1.8;color:var(--g6);margin-bottom:.95rem}
.legal-body a{color:var(--brand);text-decoration:underline}
/* Restore list markers stripped by the global ul,ol reset (review finding — KB + legal body) */
.legal-body ul,.sc-article-body ul{list-style:disc;padding-left:1.4rem;margin:.5rem 0 1rem}
.legal-body ol,.sc-article-body ol{list-style:decimal;padding-left:1.5rem;margin:.5rem 0 1rem}
.legal-body li,.sc-article-body li{margin-bottom:.35rem;line-height:1.7;color:var(--g6)}

/* ═══ CONTACT ═══ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr}}.contact-field__value a{color:var(--brand)}
.hours-table td{padding:.55rem 0;border-bottom:1px solid var(--g1);font-size:.9rem}
.hours-table td:first-child{font-weight:600;width:120px}.email-card__addr a{font-size:.85rem;color:var(--brand)}

/* ═══ NEWS ═══ */
.news-item{padding:1.25rem 0;border-bottom:1px solid var(--g1);display:flex;gap:1.25rem;align-items:baseline}
.news-item:hover .news-item__title{color:var(--brand)}
.news-item__date{font-size:.78rem;font-weight:600;color:var(--g4);white-space:nowrap;min-width:90px}
.news-item__title{font-size:.95rem;font-weight:600;transition:color var(--tr)}
.news-pagination{display:flex;gap:.5rem;margin-top:2rem}
.news-pagination a,.news-pagination span{display:inline-block;padding:.4rem .8rem;font-size:.85rem;border:1px solid var(--g2);color:var(--g5)}
.news-pagination .current{background:var(--brand);color:var(--white);border-color:var(--brand)}

/* Dividend */
.dividend-box{background:var(--g0);padding:1.75rem;border-left:4px solid var(--brand)}
.dividend-box__label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--g4);margin-bottom:.2rem}
.dividend-box__value{font-size:1.4rem;font-weight:700;color:var(--brand)}
.dividend-row{display:flex;gap:2.5rem;flex-wrap:wrap}
.dividend-item{flex:1;min-width:120px}

/* ═══ SUPPORT WIDGET ═══ */
/* 4.6.1 — the .support-panel* / .support-widget* rules that used to live
   here were paired with #support-toggle / #support-panel / #sup-name
   markup that the theme no longer emits (the floating widget moved
   wholesale to the cmbeyer-support-ui.php mu-plugin, which uses
   #swToggle / #swPanel / .sw-* names and inlines its own CSS).
   Removed in 4.6.1 to drop dead rules — no markup referenced them. */

/* ═══ FOOTER — Corporate multi-tier ═══ */
.site-footer{background:var(--dark);color:var(--white)}
.footer-top{border-bottom:1px solid rgba(255,255,255,.08);padding:3rem 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:2.5rem}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr 1fr}}
.footer-brand__logo{height:32px;width:auto;margin-bottom:1rem}
.footer-brand__text{font-size:.82rem;color:rgba(255,255,255,.62);line-height:1.7}
.footer-col__title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin-bottom:.75rem}
.footer-col a{display:block;font-size:.85rem;color:rgba(255,255,255,.72);padding:.25rem 0;transition:color var(--tr)}
.footer-col a:hover{color:var(--white);text-decoration:none}
.footer-mid{padding:1.5rem 0;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;font-size:.78rem;color:rgba(255,255,255,.66)}
.footer-mid a{color:rgba(255,255,255,.7)}
.footer-mid a:hover{color:var(--white);text-decoration:none}
.footer-mid__link{color:inherit;text-decoration:underline}
.footer-brand__link{color:rgba(255,255,255,.6);text-decoration:none}
.footer-brand__link:hover{color:#fff}
.footer-bottom{padding:1.25rem 0;font-size:.75rem;color:rgba(255,255,255,.66);line-height:1.6;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.footer-bottom__copy{flex:1;min-width:280px}
.footer-bottom__seal{flex-shrink:0;align-self:center}
.footer-bottom__seal img{height:36px;width:auto;opacity:.7;transition:opacity .2s}
.footer-bottom__seal:hover img{opacity:1}
@media(max-width:600px){.footer-bottom{flex-direction:column;align-items:center;text-align:center}.footer-bottom__seal{align-self:center;margin-top:.5rem}}

/* ═══ GROUP ESTATE DIRECTORY ═══
   Interlinks CM Beyer into the wider Credicorp group estate. Sits inside the
   dark site-footer; uses CM Beyer's own teal (--brand) accent so it reads as
   part of this site, not the lending brand. Signpost only — additive. */
.footer-estate{border-top:1px solid rgba(255,255,255,.08);background:#192323}
.footer-estate__inner{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:2.5rem;padding:2.25rem 0;align-items:start}
.footer-estate__eyebrow{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#8fe8ea;background:#303d3d;padding:.28rem .6rem;border-radius:3px;margin-bottom:.75rem}
.footer-estate__lead{font-size:.85rem;line-height:1.65;color:#d6d6d6;margin:0;max-width:34ch}
.footer-estate__lead-link{color:#fff;text-decoration:underline;text-underline-offset:2px;font-weight:600}
.footer-estate__lead-link:hover{color:var(--brand,#11676A);text-decoration:none}
.footer-estate__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.footer-estate__title{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#c5c5c5;margin:0 0 .6rem}
.footer-estate__group a{display:block;font-size:.85rem;color:#dedede;padding:.25rem 0;text-decoration:none;transition:color var(--tr)}
.footer-estate__group a:hover{color:#fff;text-decoration:none}
@media(max-width:900px){.footer-estate__inner{grid-template-columns:1fr;gap:1.75rem}}
@media(max-width:600px){.footer-estate__nav{grid-template-columns:1fr 1fr;gap:1.5rem}.footer-estate__lead{max-width:none}}
@media(max-width:400px){.footer-estate__nav{grid-template-columns:1fr}}

/* ═══ BACK LINK ═══ */
.back-link{display:inline-block;font-size:.85rem;font-weight:600;color:var(--brand);margin-bottom:1.5rem}
.back-link::before{content:'← '}
/* ═══ INFO BAR ═══ */
.info-bar{background:var(--brand-pale);border-left:4px solid var(--brand);padding:1rem 1.25rem;margin:1.5rem 0;font-size:.9rem;color:var(--g7)}

/* ═══ UTILITIES ═══ */
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ═══ WP SPECIFIC ═══ */
.wp-block-image{margin-bottom:1.5rem}
.aligncenter{margin-left:auto;margin-right:auto;text-align:center}
.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute;width:1px}

/* ═══ FIX: Headings inherit color in dark/brand contexts ═══ */
.hero-banner h1,.hero-banner h2,.hero-banner h3,
.page-header h1,.page-header h2,
.section--brand h1,.section--brand h2,.section--brand h3,
.section--dark h1,.section--dark h2,.section--dark h3{color:inherit}
/* Fix hero buttons on dark background */
.hero-banner .btn--outline{color:var(--white);border-color:rgba(255,255,255,.5)}
.hero-banner .btn--outline:hover{background:var(--white);color:var(--brand);border-color:var(--white)}

/* ═══ PATCH 4.0.2 — Typography, spacing, pricing, visual density ═══ */

/* Increase base font size */
body{font-size:1rem;line-height:1.7}

/* Better heading sizes */
h1{font-size:2.6rem}
h2{font-size:2rem}
h3{font-size:1.5rem}
h4{font-size:1.2rem}
h5{font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--g4);margin-bottom:.4rem}

/* Prose paragraph size/leading is defined once in the CONTENT / PROSE block
   above (1.05rem / 1.85). The duplicate ".prose p" override that previously
   sat here has been merged there so there is a single source of truth. */

/* ─── HEADER FIXES ─── */
.site-header__inner{height:72px}
.site-nav{gap:.15rem}
.site-nav a{padding:1.2rem .9rem;font-size:.85rem}
.site-nav__cta{padding:.6rem 1.3rem!important;font-size:.85rem!important;margin:.35rem 0 .35rem .6rem!important;vertical-align:middle}
.header-search{margin-left:.5rem}
/* Ensure nav + cta + search are vertically centered */
.site-nav{align-items:center}
@media(max-width:768px){.site-nav{top:72px}}

/* ─── HERO IMPROVEMENTS ─── */
.hero-banner{min-height:496px}
.hero-banner__title{font-size:2.55rem;line-height:1.12;margin-bottom:1.25rem}
.hero-banner__subtitle{font-size:1.08rem;line-height:1.7;max-width:560px;margin-bottom:2rem}
.hero-banner__actions{gap:.85rem}
.hero-banner .btn{font-size:.9rem}

/* ─── PAGE HEADER ───
   (values now defined canonically in the ═══ PAGE HEADER ═══ block above
    so every UK page renders identically. Kept here as a no-op marker.) */

/* ─── PRICING CARDS — Complete redesign, no teal outlines ─── */
.pricing-card{border:none;background:var(--g0);padding:2.25rem;border-radius:0}
.pricing-card+.pricing-card{border-left:none}
@media(max-width:900px){.pricing-card+.pricing-card{border-top:none}}.pricing-card__badge{font-size:.65rem;letter-spacing:.12em;margin-bottom:.3rem}
.pricing-card__name{font-size:1.5rem;margin-top:.2rem}
.pricing-card__desc{font-size:.88rem;min-height:auto;margin-bottom:1.5rem}

/* Featured card — elevated, not outlined */
.pricing-card--featured{background:var(--white);box-shadow:0 4px 24px rgba(0,0,0,.1);position:relative;z-index:1;border:none;transform:scale(1.02)}
.pricing-card--featured:hover{box-shadow:0 8px 32px rgba(0,0,0,.14)}
.pricing-card--featured .pricing-card__head{background:var(--brand);color:var(--white);margin:-2.25rem -2.25rem 1.5rem;padding:1.75rem 2.25rem;border-bottom:none}
.pricing-card--featured .pricing-card__badge{color:rgba(255,255,255,.65)}
.pricing-card--featured .pricing-card__name{color:var(--white)}
.pricing-card--featured .pricing-card__desc{color:rgba(255,255,255,.8)}

/* Non-featured cards — clean, no outlines */
.pricing-card:not(.pricing-card--featured){border:none;box-shadow:none}
.pricing-card:not(.pricing-card--featured):hover{background:var(--white);box-shadow:0 2px 12px rgba(0,0,0,.06)}
.pricing-card:not(.pricing-card--featured) .btn--outline{border-color:var(--g2);color:var(--g6)}
.pricing-card:not(.pricing-card--featured) .btn--outline:hover{border-color:var(--brand);color:var(--brand);background:transparent}

/* Feature list inside pricing — cleaner */
.pricing-card__features li{border-bottom-color:var(--g1);padding:.5rem 0 .5rem 1.4rem;font-size:.86rem}
.pricing-card__features li::before{width:16px;height:16px;background:none;border:none}
.pricing-card__features li::after{font-size:.78rem;left:0;top:.35rem}

/* Pricing grid spacing */
.pricing-grid{gap:0;border:1px solid var(--g1);overflow:hidden}
.pricing-card--featured{border:none}

/* ─── CARDS — more visual weight ─── */
.card{padding:2rem}
.card--featured{border-left:4px solid var(--brand);background:var(--white);box-shadow:0 1px 4px rgba(0,0,0,.04)}
.card--featured:hover{box-shadow:0 4px 20px rgba(0,0,0,.08)}
.card__label{font-size:.7rem;margin-bottom:.5rem}
.card__title{font-size:1.1rem;line-height:1.35;margin-bottom:.6rem}
.card__text{font-size:.9rem;line-height:1.65}

/* ─── ABOUT SECTION on homepage — add visual weight ─── */
.section--gray{background:var(--g0);border-top:1px solid var(--g1);border-bottom:1px solid var(--g1)}
@media(max-width:768px){
  .section--gray .container[style*="grid-template-columns"]{display:block!important}
  .section--gray .container[style*="grid-template-columns"]>div+div{margin-top:2rem}
}
/* ─── FOOTER ─── */
.footer-grid{gap:2rem}
.footer-col a{font-size:.88rem;padding:.3rem 0}
.footer-brand__text{font-size:.84rem;line-height:1.75}

/* ─── DIVIDEND BOX ─── */
.dividend-box{background:var(--white);border:1px solid var(--g1);border-left:4px solid var(--brand)}

/* ─── NEWS ITEMS — more touch target ─── */
.news-item{padding:1rem 0;gap:1.5rem}
.news-item__title{font-size:1rem}

/* ─── FEATURE LIST on service pages ─── */
.feature-list li{font-size:.93rem;padding:.5rem 0 .5rem 1.3rem}
/* ─── BUTTONS — slightly more padding ─── */
.btn{padding:.75rem 1.8rem;font-size:.88rem}
.btn--sm{padding:.55rem 1.2rem;font-size:.82rem}
.btn--lg{padding:.9rem 2.2rem;font-size:.95rem}

/* ─── SECTION SPACING ─── */
.section{padding:3rem 0}
.section--brand{padding:3rem 0}
/* Mobile spacing — restated AFTER the 4rem rule above so source order lets it win.
   An earlier @media(max-width:600px) .section rule near the top of the file was
   silently overridden by .section{padding:4rem 0}, leaving mobile sections with the
   full 64px top/bottom (too much whitespace). Restores the intended tighter rhythm. */
@media(max-width:600px){.section{padding:2.5rem 0}.section--brand{padding:2.25rem 0}}
/* ═══ PATCH 4.0.3 — Contact form, images, visual density ═══ */

/* ─── CONTACT FORM ─── */
.contact-form{background:var(--g0);padding:2.5rem;margin-top:2rem;border:1px solid var(--g1)}
.contact-form h3{margin-bottom:1.5rem}
.form-row{margin-bottom:1.25rem}
.form-row label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g4);margin-bottom:.4rem}
.form-row input,.form-row textarea,.form-row select{width:100%;padding:.7rem .9rem;border:1px solid var(--g2);font-family:var(--font);font-size:.92rem;background:var(--white);border-radius:2px;transition:border-color var(--tr)}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--brand)}
.form-row textarea{resize:vertical;min-height:120px}@media(max-width:600px){}.form-success.show{display:block}.img-block img{width:100%;height:auto;display:block}.img-split img{width:100%;height:300px;object-fit:cover}
@media(max-width:600px){.img-split img{height:200px}}

/* ─── HERO with proper image overlay ─── */
.hero-banner__content{max-width:580px}

/* ─── SERVICE CARDS — add image area ─── */
.card--service{padding:0;overflow:hidden;border:1px solid var(--g1)}
.card--service__img{width:100%;height:180px;object-fit:cover;display:block;background:var(--g0)}
.card--service__body{padding:1.75rem 2rem}
.card--service:hover{box-shadow:0 6px 24px rgba(0,0,0,.08)}

/* ─── FULL WIDTH BAND ─── */
.band{padding:3rem 0;position:relative;overflow:hidden}.band__img img{width:100%;height:100%;object-fit:cover;opacity:.2}

/* ═══ PATCH 4.0.3 — Contact form, images, density ═══ */

/* ─── CONTACT FORM ─── */
.contact-form{margin-top:2rem}
.contact-form .form-row{margin-bottom:1.25rem}
.contact-form .form-row--half{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.contact-form .form-row--half{grid-template-columns:1fr}}
.contact-form label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--g4);margin-bottom:.4rem}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:.7rem .9rem;border:1px solid var(--g2);font-family:var(--font);font-size:.92rem;background:var(--white);transition:border-color var(--tr)}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-pale)}
.contact-form textarea{resize:vertical;min-height:120px}
/* Polish (review): custom teal dropdown chevron on form selects (were OS-default) */
.form-row select,.contact-form select,.ct-f select,.cmb-acct-form select,.cmb-order select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%2311676A' stroke-width='2'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.2rem;cursor:pointer}.img-block img{width:100%;height:100%;object-fit:cover;display:block}.img-block__caption h3{color:var(--white);margin-bottom:.25rem}
.img-block__caption p{font-size:.85rem;opacity:.8;margin-bottom:0}@media(max-width:768px){}.feature-banner__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.feature-banner__content h2{margin-bottom:.75rem}
.feature-banner__content p{color:var(--g5);line-height:1.75;font-size:.95rem}.feature-banner--dark .feature-banner__content p{color:rgba(255,255,255,.7)}
.feature-banner--dark .feature-banner__content h2{color:var(--white)}.feature-banner--brand .feature-banner__content p{color:rgba(255,255,255,.8)}
.feature-banner--brand .feature-banner__content h2{color:var(--white)}

/* ─── QUICK LINKS BAR ─── */
.quick-links{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--g1)}
@media(max-width:768px){.quick-links{grid-template-columns:repeat(2,1fr)}}
.quick-link{padding:1.5rem;text-align:center;border-right:1px solid var(--g1);transition:all var(--tr);text-decoration:none;color:inherit}
.quick-link:last-child{border-right:none}
.quick-link:hover{background:var(--brand);color:var(--white);text-decoration:none}
.quick-link:hover h4{color:var(--white)}
.quick-link h4{font-size:.9rem;margin-bottom:.25rem;transition:color var(--tr)}
.quick-link p{font-size:.78rem;color:var(--g4);margin:0}
.quick-link:hover p{color:rgba(255,255,255,.7)}.dividend-entry__info h4{margin-bottom:.2rem}
.dividend-entry__info p{font-size:.85rem;color:var(--g5);margin:0}.ticker__item strong{opacity:1}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ═══ PATCH 4.0.5 — Mobile layout fixes ═══ */

/* Article page — sidebar stacks below on mobile */
@media(max-width:900px){
  [style*="grid-template-columns:1fr 280px"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:1fr 280px"] aside{position:static!important}
}

/* Homepage 4-up service grid — borders + mobile stack */
@media(max-width:768px){
  [style*="grid-template-columns:1fr 1fr"][style*="border"]{display:block!important}
  [style*="grid-template-columns:1fr 1fr"][style*="border"]>div{border-right:none!important;border-bottom:1px solid var(--g1)!important;padding:1.75rem 1.5rem!important}
  [style*="grid-template-columns:1fr 1fr"][style*="border"]>div:last-child{border-bottom:none!important}
  /* About section grid */
  [style*="grid-template-columns:1fr 1fr"][style*="gap:3.5rem"]{display:block!important}
  [style*="grid-template-columns:1fr 1fr"][style*="gap:3.5rem"]>div+div{margin-top:2rem}
}

/* Contact form — full width fields on mobile */
@media(max-width:600px){
  .form-row{grid-template-columns:1fr!important}
  .contact-form .btn--lg{width:100%;text-align:center}
  .contact-grid{grid-template-columns:1fr!important}
}

/* Mobile menu — improved slide-down */
@media(max-width:768px){
  .site-nav{gap:0;padding:0}
  .site-nav a{padding:1rem 1.25rem;font-size:.95rem;font-weight:600;border-bottom:1px solid var(--g1);margin-bottom:0;border-radius:0}
  .site-nav a:last-of-type:not(.site-nav__cta){border-bottom:1px solid var(--g1)}
  .site-nav a:hover,.site-nav a.active{background:var(--g0);color:var(--brand);border-bottom-color:var(--g1)}
  .site-nav__cta{margin:.75rem 1rem!important;padding:.8rem 1.25rem!important;text-align:center;display:block;border-radius:3px!important;border-bottom:none!important;font-size:.95rem!important}
  .header-search{display:none}
  .menu-toggle span{width:24px;height:2.5px;margin:5px 0}
  .site-header__inner{height:64px}
  .site-nav{top:64px}
  /* Utility bar on mobile — company info hidden; the right-hand links keep
     their dividers and sit in an even, left-aligned row (desktop-style, not
     centred). Uniform font size across every link incl. Client Portal. */
  .utility-bar__inner{justify-content:flex-start;flex-wrap:nowrap;gap:0;padding:.42rem .9rem}
  .utility-bar__right{width:auto;flex-wrap:nowrap;justify-content:flex-start;gap:.5rem;align-items:center}
  .utility-bar__divider{display:block;height:11px}
  .utility-bar a{font-size:.72rem;white-space:nowrap}
  .utility-bar__portal{font-size:.72rem!important}
}

/* News items on mobile — don't side-by-side squish */
@media(max-width:600px){
  .news-item,.news-item[style]{flex-direction:column!important;gap:.25rem!important}
  .news-item__date{min-width:auto!important}
  /* Dividend row stack */
  .dividend-row{flex-direction:column;gap:1rem}
}

/* ═══ PATCH 4.0.5b — Mobile menu corporate redesign ═══ */
@media(max-width:768px){
  .site-nav{padding:0!important;border-top:1px solid var(--g1)}
  .site-nav a{text-align:left!important;padding:.9rem 1.25rem!important;font-size:.92rem!important;font-weight:600!important;color:var(--black)!important;border-bottom:1px solid var(--g1)!important;display:block!important;border-radius:0!important;background:var(--white)!important}
  .site-nav a:hover,.site-nav a.active{color:var(--brand)!important;background:var(--g0)!important;border-left:3px solid var(--brand);padding-left:calc(1.25rem - 3px)!important}
  .site-nav__cta{background:var(--brand)!important;color:var(--white)!important;text-align:left!important;margin:0!important;border-radius:0!important;border-bottom:none!important;padding:.9rem 1.25rem!important;font-size:.92rem!important;border-left:none!important}
  .site-nav__cta:hover{background:var(--brand-dark)!important}
  .header-search{display:none!important}
}

/* ═══ PATCH 4.0.5b — Mobile menu redesign ═══ */
@media(max-width:768px){
  .site-nav{
    padding:0!important;
    background:var(--white)!important;
    border-top:3px solid var(--brand);
    box-shadow:0 12px 30px rgba(0,0,0,.12)!important
  }
  .site-nav a{
    text-align:left!important;
    padding:.9rem 1.5rem!important;
    font-size:.92rem!important;
    font-weight:600!important;
    color:var(--black)!important;
    border-bottom:1px solid var(--g1)!important;
    border-radius:0!important;
    background:none!important;
    display:block!important
  }
  .site-nav a:hover,.site-nav a.active{
    background:var(--g0)!important;
    color:var(--brand)!important;
    border-left:3px solid var(--brand);
    padding-left:calc(1.5rem - 3px)!important
  }
  .site-nav__cta{
    text-align:center!important;
    margin:1rem 1.5rem!important;
    padding:.75rem 1.25rem!important;
    display:block!important;
    border-bottom:none!important;
    border-left:none!important
  }
  .site-nav__cta:hover{
    border-left:none!important;
    padding-left:1.25rem!important
  }
  .header-search{
    display:none!important
  }
}

/* ═══════════════════════════════════════════════════════════════
   PATCH 4.0.4 — Articles (was style-articles.css)
   Folded into style.css 4.3.0 to reduce HTTP requests on mobile.
═══════════════════════════════════════════════════════════════ */

/* ═══ ARTICLES PATCH — Featured images, categories, news cards ═══ */

/* Article featured image — uniform aspect ratio */
.wp-post-image{display:block;width:100%;height:100%;object-fit:cover}
/* News page sidebar responsive */
@media(max-width:900px){
  [style*="grid-template-columns:1fr 320px"]{grid-template-columns:1fr!important}
}

/* Article page sidebar responsive */
@media(max-width:900px){
  [style*="grid-template-columns:1fr 280px"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:1fr 280px"] aside [style*="position:sticky"]{position:static!important}
}

/* Featured image on article page responsive */
@media(max-width:600px){
  [style*="aspect-ratio:16/7"]{aspect-ratio:16/9!important;max-height:250px!important}
}

/* Category tab active state hover */
[style*="border-bottom:2px solid var(--brand)"]:hover{opacity:.9}
[style*="border-bottom:2px solid transparent"]:hover{border-bottom-color:var(--g2)!important;color:var(--g7)!important}

/* ═══════════════════════════════════════════════════════════════
   PATCH 4.1.x — Logo + mobile menu refinements (was style-logo-fix.css)
   Folded into style.css 4.3.0 to reduce HTTP requests on mobile.
═══════════════════════════════════════════════════════════════ */
/* ═══ 1. Logo — LARGER ═══ */
.site-logo svg,.site-logo img{height:42px!important;width:auto!important}
@media(max-width:768px){
  /* 64px landscape logo was ~320px wide on a phone — crowded the hamburger/edges.
     44px ≈ 220px wide leaves comfortable whitespace. Applies to UK + regional
     headers (both use .site-logo). */
  .site-logo svg,.site-logo img{height:44px!important;width:auto!important}
  .site-header__inner{height:auto!important;min-height:60px;padding:.6rem 1.25rem!important}
}

/* ═══ 2. Mobile menu — CTA as proper button ═══ */
@media(max-width:768px){
  .site-nav{
    padding:0!important;
    background:#fff!important;
    border-top:3px solid var(--brand)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.15)!important
  }
  .site-nav a{
    text-align:left!important;
    padding:.85rem 1.5rem!important;
    font-size:.92rem!important;
    font-weight:600!important;
    color:var(--black)!important;
    border-bottom:1px solid var(--g1)!important;
    border-radius:0!important;
    background:none!important;
    display:block!important;
    margin:0!important
  }
  .site-nav a:hover,.site-nav a.active{
    background:var(--g0)!important;
    color:var(--brand)!important;
    border-left:3px solid var(--brand)!important;
    padding-left:calc(1.5rem - 3px)!important
  }
  .site-nav__cta{
    text-align:left!important;
    margin:0!important;
    padding:.85rem 1.5rem!important;
    display:block!important;
    border:none!important;
    border-bottom:1px solid var(--g1)!important;
    border-left:none!important;
    background:none!important;
    color:var(--brand)!important;
    border-radius:0!important;
    font-weight:700!important
  }
  .site-nav__cta:hover{
    border-left:3px solid var(--brand)!important;
    padding-left:calc(1.5rem - 3px)!important;
    background:var(--g0)!important;
    color:var(--brand)!important
  }
  .mobile-search{
    display:block!important;
    padding:.6rem 1.25rem!important;
    border-bottom:1px solid var(--g1)!important;
    background:var(--g0)!important
  }
  .mobile-search form{display:flex;gap:.5rem}
  .mobile-search input{
    flex:1!important;padding:.5rem .75rem!important;border:1px solid var(--g2)!important;
    font-size:.85rem!important;font-family:var(--font)!important;border-radius:2px!important;background:#fff!important
  }
  .mobile-search button{
    padding:.5rem .75rem;border:none;background:var(--brand);color:#fff;
    font-size:.8rem;font-weight:600;cursor:pointer;border-radius:2px;font-family:var(--font)
  }
  .header-search{display:none!important}
}
@media(min-width:769px){.mobile-search{display:none!important}}

/* ═══ 3. Desktop dropdown menu ═══ */
.has-dropdown{position:relative}
.has-dropdown .dropdown{
  display:none;position:absolute;top:100%;left:0;min-width:220px;
  background:#fff;border:1px solid var(--g1);box-shadow:0 6px 20px rgba(0,0,0,.1);
  z-index:100;padding:.5rem 0
}
.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown{display:block}
.dropdown a{
  display:block!important;padding:.6rem 1.25rem!important;font-size:.85rem!important;
  font-weight:500!important;color:var(--g6)!important;border-bottom:none!important;
  white-space:nowrap
}
.dropdown a:hover{background:var(--g0)!important;color:var(--brand)!important}
.dropdown .dropdown__label{
  display:block;padding:.4rem 1.25rem;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;color:var(--g3);pointer-events:none
}
.dropdown hr.dropdown__sep{border:none;border-top:1px solid var(--g1);margin:.35rem 1.25rem}
.dropdown a.dropdown__item--has-sub{display:flex!important;flex-direction:column!important;gap:.08rem}
.dropdown a.dropdown__item--has-sub span{font-weight:600;color:var(--g6);font-size:.85rem;line-height:1.3}
.dropdown a.dropdown__item--has-sub small{font-size:.72rem;font-weight:400;color:var(--g3);line-height:1.2}
.dropdown a.dropdown__item--has-sub:hover span{color:var(--brand)}

/* Mobile dropdown — just show inline */
@media(max-width:768px){
  .has-dropdown .dropdown{
    display:none;position:static;box-shadow:none;border:none;
    background:var(--g0);padding:0;min-width:auto
  }
  .has-dropdown.open .dropdown{display:block}
  .dropdown a{padding:.7rem 1.5rem .7rem 2.5rem!important;font-size:.88rem!important;border-bottom:1px solid var(--g1)!important}
  .dropdown a.dropdown__item--has-sub{padding:.6rem 1.5rem .6rem 2.5rem!important;display:flex!important;flex-direction:column!important}
  .dropdown a.dropdown__item--has-sub small{display:block}
  .dropdown hr.dropdown__sep{margin:.25rem 2.5rem}
  .dropdown .dropdown__label{padding:.5rem 1.5rem .3rem 2.5rem}
  .has-dropdown>a{position:relative}
  .has-dropdown>a::after{content:'▾';margin-left:.4rem;font-size:.7rem}
}

/* ═══ 4. Dividend cards — used on history page ═══ */
.dividend-card{
  background:var(--white);border:1px solid var(--g1);border-left:4px solid var(--brand);
  padding:1.5rem;margin-bottom:1rem;
  display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:1rem;align-items:center
}
.dividend-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}.dividend-card__actions .btn{font-size:.75rem;padding:.35rem .75rem}
.div-status{display:inline-block;padding:.15rem .5rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-radius:2px}@media(max-width:768px){
  .dividend-card{grid-template-columns:1fr 1fr;gap:.75rem;padding:1.25rem}}

/* ═══ 6. Product quick-links near footer — visual cards ═══ */
.quick-links{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border:1px solid var(--g1);background:var(--g0)
}
.quick-link{
  display:block;padding:2rem 1.5rem;text-align:center;text-decoration:none;
  color:inherit;border-right:1px solid var(--g1);border-bottom:1px solid var(--g1);
  background:var(--g0);position:relative;transition:all .25s
}
.quick-link:nth-child(2n){border-right:none}
.quick-link:nth-child(n+3){border-bottom:none}
.quick-link::before{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--brand);transform:scaleX(0);transition:transform .3s
}
.quick-link:hover::before{transform:scaleX(1)}
.quick-link:hover{background:var(--brand);color:#fff}
.quick-link:hover h4{color:#fff}
.quick-link:hover p{color:rgba(255,255,255,.8)}
.quick-link h4{font-size:1.05rem;font-weight:800;margin:0 0 .25rem;color:var(--black)}
.quick-link p{font-size:.82rem;color:var(--g4);line-height:1.4;margin:0}
@media(max-width:600px){
  .quick-links{grid-template-columns:1fr}
  .quick-link{border-right:none!important;border-bottom:1px solid var(--g1)!important;text-align:left;padding:1.5rem}
  .quick-link:last-child{border-bottom:none!important}
}

/* ═══ FAQ accordion ═══ */
.faq-item{border-bottom:1px solid var(--g1)}
.faq-item__q{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;cursor:pointer;font-size:.95rem;font-weight:700;color:var(--black)}
.faq-item__q:hover{color:var(--brand)}
.faq-item__q::after{content:'+';font-size:1.2rem;font-weight:400;color:var(--g3)}
.faq-item.active .faq-item__q::after{content:'−'}
.faq-item__a{display:none;padding:0 0 1rem;font-size:.9rem;line-height:1.7;color:var(--g5)}
.faq-item.active .faq-item__a{display:block}

/* ═══ Dividend table fallback ═══ */
.dividend-table{width:100%;border-collapse:collapse;margin-top:1.5rem}
.dividend-table th{text-align:left;padding:.75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--g4);border-bottom:2px solid var(--g2);background:var(--g0)}
.dividend-table td{padding:.75rem;border-bottom:1px solid var(--g1);font-size:.9rem;vertical-align:middle}

/* ═══ MOBILE MENU — full width items, centred ═══ */
@media(max-width:768px){
  .site-nav{
    left:0!important;right:0!important;width:100%!important
  }
  .site-nav a,
  .site-nav .site-nav__cta{
    width:100%!important;
    box-sizing:border-box!important
  }
  /* Hide logo when menu is open */
  .site-logo{transition:opacity .15s ease}
  .menu-open .site-logo{opacity:0;pointer-events:none}
  /* Search bar full width */
  .mobile-search{width:100%!important;box-sizing:border-box!important}
  .mobile-search input{width:100%!important;box-sizing:border-box!important}
  /* Dropdown items indented slightly */
  .has-dropdown .dropdown a{
    padding-left:2rem!important;
    font-size:.88rem!important
  }
  .has-dropdown .dropdown .dropdown__label{
    padding-left:2rem!important
  }
}

/* ═══ SCROLL ANIMATIONS — gentle fade (no jump) ═══ */
.fade-in{opacity:0;transform:translateY(6px);transition:opacity .45s ease,transform .45s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
/* Auto-apply to key sections — opacity only, no position jump */
.section,.card,.dividend-box,.quick-link,.pricing-card,.dividend-card{
  opacity:0;transition:opacity .4s ease
}
.section.visible,.card.visible,.dividend-box.visible,.quick-link.visible,.pricing-card.visible,.dividend-card.visible{
  opacity:1
}
/* Don't animate hero or header */
.hero-banner,.site-header,.page-header,.utility-bar,.site-footer{opacity:1!important;transform:none!important}

/* ═══ FIX: Services dropdown parent — force left align like siblings ═══ */
@media(max-width:768px){
  .has-dropdown{display:block!important;width:100%!important}
  .has-dropdown>a{
    text-align:left!important;
    width:100%!important;
    box-sizing:border-box!important;
    display:block!important
  }
}

/* ═══ JOURNEY CARDS ═══ */
.journey-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.journey-card{background:var(--white);border:1px solid var(--g1);padding:1.5rem;border-top:3px solid var(--brand);transition:box-shadow .3s}
.journey-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.07)}
.journey-card__date{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);display:block;margin-bottom:.5rem}
.journey-card__title{font-size:.95rem;font-weight:700;margin:0 0 .5rem;color:var(--black)}
.journey-card__text{font-size:.85rem;line-height:1.6;color:var(--g5);margin:0}
.journey-card--current{background:var(--brand);border-color:var(--brand);border-top-color:rgba(255,255,255,.3)}
.journey-card--current .journey-card__date{color:rgba(255,255,255,.5)}
.journey-card--current .journey-card__title{color:#fff}
.journey-card--current .journey-card__text{color:rgba(255,255,255,.8)}
@media(max-width:768px){.journey-grid{grid-template-columns:1fr}}

/* ═══ STATS GRID ═══ */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--g1);background:var(--white)}
.stats-grid__item{padding:2rem;text-align:center;border-right:1px solid var(--g1)}
.stats-grid__item:last-child{border-right:none}
.stats-grid__item h3{font-size:2rem;color:var(--brand);margin:0 0 .25rem}
.stats-grid__item p{font-size:.82rem;color:var(--g5);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin:0}
@media(max-width:600px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .stats-grid__item:nth-child(2n){border-right:none}
  /* Trim padding so each cell's min-content (label + 2rem padding) stays
     narrower than its 1fr track — at 2rem it overflowed the grid on ≤320px
     phones (iPhone SE). 1.25rem keeps the cell comfortable and fits. */
  .stats-grid__item{border-bottom:1px solid var(--g1);padding:1.5rem 1.25rem}
}.support-widget__btn svg{width:22px!important;height:22px!important;fill:none!important;stroke:#fff!important;stroke-width:2!important;flex-shrink:0}.cookie-banner.show{transform:translateY(0)}
.cookie-banner p{margin:0;flex:1;color:rgba(255,255,255,.85)}
.cookie-banner p a{color:var(--brand);text-decoration:underline}@media(max-width:600px){}

/* ═══ FIX: Gap between services header and product buttons ═══ */
.quick-links{margin-top:1rem!important}

/* ═══════════════════════════════════════════════════════════════
   PATCH 4.4.0 — Modernity polish
   Subtle improvements: focus-visible rings, motion-safe transitions,
   backdrop-filter on sticky header, card lift, link underline offset,
   smoother page-header gradient. Designed to be additive — overrides
   earlier rules rather than rewriting them.
═══════════════════════════════════════════════════════════════ */

/* Browsers can choose a matching scrollbar / form-control colour scheme.
   We're explicitly light. */
html{color-scheme:light}

/* Nicer numerals (tabular figures in stats/tables) where the font supports it. */
table,.dividend-box__value,.stat,[class*="stat-num"],[class*="summary-num"]{
  font-variant-numeric:tabular-nums
}

/* Modern link underline: smaller, offset away from descenders. */
.prose a,
.legal-body a,
.lp-clause a,
.ab-intro a,
.footer-mid a,
p a{
  text-underline-offset:.18em;
  text-decoration-thickness:1px
}

/* Focus-visible rings (keyboard only — mouse clicks don't trigger).
   2px ring + offset so it works on light AND dark backgrounds. */
:focus{outline:none}
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.btn:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
  border-radius:3px
}
/* On dark backgrounds the brand ring still works, but lighten slightly. */
.site-footer a:focus-visible,
.hero-banner a:focus-visible,
.page-header a:focus-visible,
.section--brand a:focus-visible,
.section--dark a:focus-visible{
  outline-color:rgba(255,255,255,.7)
}

/* Sticky header: frosted glass look. Falls back gracefully to opaque. */
@supports (backdrop-filter:blur(12px)) or (-webkit-backdrop-filter:blur(12px)){
  .site-header{
    background:rgba(255,255,255,.85);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    backdrop-filter:saturate(180%) blur(14px)
  }
}

/* Cards lift subtly on hover — modern micro-interaction. */
.card,.ab-info-card,.ab-div-card,.ab-link,.dm-step,.dm-report,
.au-card,.au-svc,.au-why-card,.au-news-item,
.na-card,.na-svc,.na-why-card,.na-news-item{
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease
}
.card--link:hover,
.ab-div-card:hover,
.ab-link:hover,
.dm-step:hover,
.dm-report:hover,
.au-svc:hover,
.au-why-card:hover,
.na-svc:hover,
.na-why-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(17,103,106,.08)
}

/* Buttons get a soft elevation that strengthens on hover. */
.btn{
  box-shadow:0 1px 2px rgba(0,0,0,.05);
  transition:transform .15s ease,box-shadow .2s ease,background .15s ease,color .15s ease,border-color .15s ease
}
.btn--primary,.btn--secondary{
  box-shadow:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04)
}
.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(17,103,106,.18)
}
.btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.btn--outline:hover{box-shadow:0 4px 12px rgba(17,103,106,.12)}

/* Header nav dropdown — keep the existing display:none/block system (other
   rules elsewhere depend on it) but add a brief slide-in animation when
   the dropdown becomes visible. CSS animations work on display changes
   in a way transitions cannot. */
@media(min-width:769px){
  .has-dropdown:hover .dropdown,
  .has-dropdown:focus-within .dropdown{
    animation:cmb-dropdown-in .14s ease-out
  }
}
@keyframes cmb-dropdown-in{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}

/* Smoother canonical page-header gradient (adds a soft inner shadow at the
   bottom so it transitions visually into white content below). */
.page-header,.uk-page-hero{
  background-image:
    linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%),
    radial-gradient(ellipse at top right,rgba(255,255,255,.08),transparent 60%);
  background-blend-mode:overlay,normal;
  position:relative
}
.page-header::after,.uk-page-hero::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  pointer-events:none
}

/* Hero-banner (homepage): subtle scroll-cue indicator on desktop. */
@media(min-width:769px){
  .hero-banner{position:relative}
  .hero-banner::after{
    content:'';position:absolute;left:50%;bottom:1.5rem;
    width:1px;height:24px;
    background:linear-gradient(rgba(255,255,255,0),rgba(255,255,255,.5));
    transform:translateX(-50%);
    pointer-events:none;
    opacity:.6
  }
}

/* Forms: nicer focused state, modern shadow. */
input:focus,
select:focus,
textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus,
.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(17,103,106,.12)
}

/* Selection contrast bumped slightly for the new gradient hero. */
::selection{background:var(--brand);color:#fff}

/* Respect users who prefer less motion. Disables transitions/animations
   site-wide — required for WCAG 2.1 SC 2.3.3. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important
  }
}

/* Print: hide things that don't print, reset colours. */
@media print{
  .site-header,.site-footer,.utility-bar,.support-widget,
  .cookie-banner,.search-overlay,.menu-toggle,.cmb-rs,
  .au-topbar,.au-header,.au-footer,
  .na-topbar,.na-header,.na-footer{display:none!important}
  body{background:#fff!important;color:#000!important}
  a{color:#000!important;text-decoration:underline}
  .page-header,.uk-page-hero{background:#f0f0f0!important;color:#000!important;border-bottom:2px solid #000}
  .page-header__title,.uk-page-hero h1{color:#000!important}
}

/* ═══════════════════════════════════════════════════════════════
   CLIENT PORTAL — fancy design delta + marketing-page components
   Additive only (new :root merges); built on existing brand tokens.
   Contrast verified: brand on white 6.62:1, brand-dark/pale 7.82:1.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --sh-1:0 1px 2px rgba(16,40,40,.06);--sh-2:0 2px 8px rgba(16,40,40,.07);
  --sh-3:0 8px 24px rgba(16,40,40,.09);--sh-4:0 18px 48px rgba(16,40,40,.12);
  --sh-brand:0 10px 30px rgba(17,103,106,.18);
  --r-1:4px;--r-2:8px;--r-3:14px;--r-pill:999px;
  --grad-hero:radial-gradient(120% 120% at 85% -10%,rgba(23,130,134,.55) 0%,rgba(23,130,134,0) 55%),radial-gradient(90% 90% at -10% 110%,rgba(12,82,84,.65) 0%,rgba(12,82,84,0) 50%),linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);
  --grad-cta:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand) 55%,var(--brand-light) 130%);
  --ease-out:cubic-bezier(.22,.61,.36,1);--dur-2:.28s;--dur-3:.5s;
  --hair:1px solid var(--g1);
}
.ico{display:inline-flex;flex:0 0 auto}
.ico svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.has-grain{position:relative;isolation:isolate}
.has-grain>*{position:relative;z-index:1}
.has-grain::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* pills */
.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.3rem .7rem;border-radius:var(--r-pill);line-height:1}
.pill--onbrand{background:rgba(255,255,255,.16);color:#fff}
.pill--brand{background:var(--brand-pale);color:var(--brand-dark)}
/* ghost button for use ON teal */
.btn--ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
/* generic marketing wrappers */
.cp-wrap{max-width:var(--mx);margin:0 auto;padding:0 1.25rem}
.cp-sec{padding:4rem 0}
.cp-sec--tint{background:linear-gradient(180deg,var(--g0) 0%,var(--white) 100%)}
.cp-h2{font-size:clamp(1.45rem,2.8vw,2rem);font-weight:700;text-align:center;margin:0 0 .6rem;color:var(--black);letter-spacing:-.01em}
.cp-sub{text-align:center;color:var(--g5);font-size:1.02rem;line-height:1.6;max-width:46ch;margin:0 auto 2.75rem}
/* hero */
.cp-hero{background:var(--grad-hero);color:#fff;overflow:hidden;position:relative}
/* Hero background photo — layered behind the teal gradient + grain so the text stays readable */
.cp-hero::before{content:"";position:absolute;inset:0;z-index:0;background:url("/assets/img/cmb/hero.webp") center/cover no-repeat;opacity:.18;pointer-events:none}
@media(max-width:768px){.cp-hero::before{background-image:url("/assets/img/cmb/hero-mobile.webp");opacity:.14}}
.cp-hero__inner{position:relative;z-index:1}
.cp-hero__inner{max-width:var(--mx);margin:0 auto;padding:4.5rem 1.25rem;display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
/* Division-page hero: no browser-shot column — collapse to single centred column */
.cp-hero__inner--centred{grid-template-columns:1fr;justify-items:center}
.cp-hero__inner--centred .cp-hero__copy p{margin:0 auto}
.cp-hero__inner--centred .cp-hero__trust{margin-left:auto;margin-right:auto}
.cp-hero__copy h1{color:#fff;font-weight:700;line-height:1.13;margin:.7rem 0 1rem;font-size:clamp(1.65rem,3.9vw,2.55rem);letter-spacing:-.015em}
.cp-hero__copy p{color:rgba(255,255,255,.9);font-size:1.02rem;line-height:1.65;max-width:44ch;margin:0}
.cp-hero__cta{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.7rem 0 1rem}
.cp-hero__trust{font-size:.8rem;color:rgba(255,255,255,.72);letter-spacing:.02em;margin:.5rem 0 0}
.cp-hero__shot{perspective:1400px}
.cp-browser{background:#fff;border-radius:var(--r-3);box-shadow:var(--sh-4);overflow:hidden;transform:rotateY(-6deg) rotateX(2deg);transition:transform var(--dur-3) var(--ease-out)}
.cp-hero__shot:hover .cp-browser{transform:rotateY(0) rotateX(0)}
.cp-browser__bar{display:flex;gap:6px;padding:10px 12px;background:var(--g0);border-bottom:var(--hair)}
.cp-browser__bar span{width:10px;height:10px;border-radius:var(--r-pill);background:var(--g2)}
.cp-browser__body{padding:1.1rem 1.2rem;background:#fff}
/* feature grid */
.cp-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.25rem;max-width:var(--mx);margin:0 auto}
.cp-feature{background:#fff;border:var(--hair);border-radius:var(--r-2);padding:1.5rem;box-shadow:var(--sh-1);transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2)}
.cp-feature:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:var(--g2)}
.cp-feature__chip{width:46px;height:46px;border-radius:var(--r-2);display:inline-flex;align-items:center;justify-content:center;background:var(--brand-pale);color:var(--brand-dark);margin-bottom:1rem;transition:transform var(--dur-2) var(--ease-out)}
.cp-feature__chip svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cp-feature:hover .cp-feature__chip{transform:scale(1.07)}
.cp-feature h3{font-size:1.08rem;font-weight:700;margin:0 0 .4rem;color:var(--black)}
.cp-feature p{font-size:.92rem;color:var(--g5);line-height:1.6;margin:0}
/* how-it-works stepper */
.cp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.cp-step{position:relative;padding-top:64px;text-align:center}
.cp-step__num{position:absolute;top:0;left:50%;transform:translateX(-50%);width:46px;height:46px;border-radius:var(--r-pill);display:grid;place-items:center;font-weight:700;font-size:1.05rem;color:#fff;background:var(--brand);box-shadow:var(--sh-brand);z-index:1}
.cp-step:not(:last-child)::before{content:"";position:absolute;top:22px;left:calc(50% + 23px);right:calc(-50% + 23px);height:2px;background:linear-gradient(90deg,var(--brand),var(--brand-pale));z-index:0}
.cp-step h3{font-size:1rem;font-weight:700;margin:0 0 .35rem;color:var(--black)}
.cp-step p{font-size:.88rem;color:var(--g5);line-height:1.55;margin:0 auto;max-width:30ch}
/* outcomes bullets */
.cp-outcomes{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 2rem;max-width:760px;margin:0 auto}
.cp-outcome{display:flex;gap:.7rem;align-items:flex-start;font-size:.96rem;color:var(--g7);line-height:1.5}
.cp-outcome svg{width:22px;height:22px;flex:0 0 auto;margin-top:1px;color:var(--brand);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* stat strip */
.cp-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:var(--hair);border-radius:var(--r-2);box-shadow:var(--sh-1);overflow:hidden}
.cp-stats li{padding:1.5rem 1rem;text-align:center;border-right:var(--hair)}
.cp-stats li:last-child{border-right:none}
.cp-stats b{display:block;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;color:var(--brand);line-height:1;letter-spacing:-.01em;margin-bottom:.35rem;font-variant-numeric:tabular-nums}
.cp-stats span{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--g5)}
/* FAQ */
.cp-faq{max-width:760px;margin:0 auto}
.cp-faq details{border:var(--hair);border-radius:var(--r-2);background:#fff;margin-bottom:.7rem;overflow:hidden}
.cp-faq summary{cursor:pointer;padding:1rem 1.2rem;font-weight:600;font-size:.96rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.cp-faq summary::-webkit-details-marker{display:none}
.cp-faq summary::after{content:"+";font-size:1.3rem;font-weight:400;color:var(--brand);transition:transform var(--dur-2)}
.cp-faq details[open] summary::after{transform:rotate(45deg)}
.cp-faq p{margin:0;padding:0 1.2rem 1.1rem;color:var(--g6);font-size:.92rem;line-height:1.6}
/* CTA band */
.cp-cta{background:var(--grad-cta);color:#fff}
.cp-cta__inner{max-width:var(--nr);margin:0 auto;padding:4rem 1.25rem;text-align:center}
.cp-cta h2{color:#fff;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;margin:0 0 .6rem}
.cp-cta p{color:rgba(255,255,255,.9);font-size:1.05rem;margin:0 0 1.75rem}
.cp-cta__actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
@media(max-width:820px){
  .cp-hero__inner{grid-template-columns:1fr;gap:2rem}
  .cp-browser{transform:none}
  .cp-hero__shot:hover .cp-browser{transform:none}
}
@media(max-width:600px){
  .cp-hero__inner{padding:2.4rem 1.15rem}
  .cp-hero__copy p{font-size:.92rem}
}
@media(max-width:780px){
  .cp-steps{grid-template-columns:1fr;gap:0}
  .cp-step{padding:0 0 2rem 64px;text-align:left}
  .cp-step__num{left:0;transform:none}
  .cp-step:not(:last-child)::before{top:46px;left:22px;right:auto;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,var(--brand),var(--brand-pale))}
  .cp-step p{max-width:none}
  .cp-outcomes{grid-template-columns:1fr}
}
@media(max-width:720px){
  .cp-stats{grid-template-columns:1fr 1fr}
  .cp-stats li:nth-child(2n){border-right:none}
  .cp-stats li:nth-child(-n+2){border-bottom:var(--hair)}
}
@media(prefers-reduced-motion:reduce){
  .cp-feature:hover{transform:none}.cp-feature:hover .cp-feature__chip{transform:none}
  .cp-browser,.cp-hero__shot:hover .cp-browser{transform:none}
  .has-grain::after{display:none}
}

/* ───────────────────────────────────────────────────────────
   MOBILE GRID SAFETY NET
   Inline style="" attributes cannot carry media queries, so any
   element that hard-codes a MULTI-column grid inline stays
   multi-column on phones and squashes (seen on Foundation
   how-to-apply / contact / about, /do-more, /dividend-history,
   /client-portal, /account/ and the homepage). Collapse those
   specific multi-column patterns to a single column at phone
   width. Scoped to multi-col value patterns ONLY, so single
   `1fr` grids and `auto 1fr` icon+text rows are left intact.
   A stylesheet !important inside a media query overrides the
   element's inline (non-important) grid-template-columns. */
@media(max-width:600px){
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"],
  [style*="grid-template-columns:repeat(2"],
  [style*="grid-template-columns:repeat(3"],
  [style*="grid-template-columns:repeat(4"],
  [style*="grid-template-columns:repeat(5"],
  [style*="grid-template-columns:repeat(6"],
  [style*="grid-template-columns:.9fr"],
  [style*="grid-template-columns:1.1fr"]{
    grid-template-columns:1fr!important;
  }
}

/* ───────────────────────────────────────────────────────────
   FRONT PAGE — HP-* COMPONENT STYLES (PF21: consolidated from inline blocks)
   ─────────────────────────────────────────────────────────── */
.hp-statbar-sec{background:#fff;border-bottom:1px solid var(--g1,#e5e7eb)}
.hp-statbar{max-width:var(--mx,1180px);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem 1.75rem;padding:1.5rem 1.25rem;align-items:start}
.hp-statbar__stat{text-align:center;min-width:0}
.hp-statbar__num{font-size:1.3rem;font-weight:700;color:var(--brand,#11676A);line-height:1.1}
.hp-statbar__label{font-size:.68rem;color:var(--g4,#6b6b6b);margin-top:.3rem;text-transform:uppercase;letter-spacing:.04em;line-height:1.3}
@media(max-width:640px){
  .hp-statbar{grid-template-columns:repeat(2,1fr);gap:1.25rem 1rem;padding:1.25rem 1.1rem}
  .hp-statbar__num{font-size:1.15rem}
}
.hp-svc-card{overflow:hidden}
.hp-svc-img{margin:-2rem -2rem 0;height:150px;overflow:hidden;background:#0d3a3c}
.hp-svc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.hp-svc-card:hover .hp-svc-img img{transform:scale(1.06)}
.hp-svc-icon{position:relative;width:50px;height:50px;border-radius:13px;background:#fff;border:1px solid var(--g1,#e5e7eb);box-shadow:0 5px 14px rgba(13,58,60,.12);display:grid;place-items:center;color:var(--brand,#11676A);margin:-26px 0 .85rem;z-index:1;transition:transform .2s ease}
.hp-svc-icon svg{width:25px;height:25px}
.hp-svc-card:hover .hp-svc-icon{transform:translateY(-3px)}
.hp-svc-card .card__link{transition:gap .18s ease}
.hp-svc-card:hover .card__link{gap:.5rem}
@media(max-width:768px){.hp-services,.hp-services .card{opacity:1!important}}
.hp-flow{background:linear-gradient(180deg,#fff,#f5fafa)}
.hp-flow-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.25rem}
.hp-flow-line{position:absolute;top:30px;left:12.5%;right:12.5%;height:3px;background:var(--g1,#e5e7eb);border-radius:3px;z-index:0;overflow:hidden}
.hp-flow-line-fill{display:block;width:0;height:100%;background:var(--brand,#11676A);border-radius:3px;transition:width 1.2s ease}
.hp-flow-track.is-running .hp-flow-line-fill{width:100%}
.hp-flow-step{position:relative;z-index:1;text-align:center}
.hp-flow-node{width:60px;height:60px;border-radius:50%;background:#fff;border:3px solid var(--g1,#e5e7eb);display:grid;place-items:center;margin:0 auto 1rem;color:var(--g3,#cbd5d5);transition:transform .2s ease,box-shadow .2s ease}
.hp-flow-node svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hp-flow-step.is-lit .hp-flow-node{border:3px solid #11676A;color:#11676A;background:#f0fafa}
.hp-flow-step:hover .hp-flow-node{transform:translateY(-3px);box-shadow:0 10px 22px rgba(17,103,106,.16)}
.hp-flow-step h4{font-size:1rem;margin:0 0 .35rem;color:var(--black,#1a1a1a)}
.hp-flow-step p{font-size:.84rem;color:var(--g5,#6b7280);line-height:1.55;margin:0 auto;max-width:15rem}
@media(max-width:680px){
  .hp-flow-track{grid-template-columns:1fr;gap:1.5rem;max-width:23rem;margin-left:auto;margin-right:auto}
  .hp-flow-line{top:0;bottom:0;left:30px;right:auto;width:3px;height:auto}
  .hp-flow-line-fill{width:100%;height:0;transition:height 1.2s ease}
  .hp-flow-track.is-running .hp-flow-line-fill{height:100%}
  .hp-flow-step{display:grid;grid-template-columns:60px 1fr;column-gap:1rem;row-gap:.25rem;text-align:left;align-items:start}
  .hp-flow-node{margin:0;grid-row:1 / 3;align-self:start}
  .hp-flow-step h4{align-self:center}
  .hp-flow-step p{margin:0;max-width:none}
}
.hp-ai{background:linear-gradient(180deg,#f3fbfb,#fff)}
.hp-ai-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hp-ai h5{margin:0}
.hp-ai h2{margin:.4rem 0 .65rem}
.hp-ai-lead{color:var(--g5,#6b7280);line-height:1.7;font-size:.95rem;margin:0 0 1.25rem}
.hp-ai-pts{display:grid;gap:.8rem;margin:0 0 1.5rem;padding:0;list-style:none}
.hp-ai-pts li{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;color:var(--g6,#374151);line-height:1.5}
.hp-ai-pts svg{width:18px;height:18px;flex:0 0 auto;stroke:var(--brand,#11676A);fill:none;stroke-width:2.4;margin-top:.15rem}
.hp-ai-actions{display:flex;gap:.75rem;flex-wrap:wrap}
.hp-ai-note{font-size:.76rem;color:var(--g4,#6b7280);line-height:1.5;margin:1rem 0 0}
.hp-ai-card{background:#fff;border:1px solid var(--g1,#e5e7eb);border-radius:14px;padding:1.35rem;box-shadow:0 6px 28px rgba(17,103,106,.09)}
.hp-ai-cardhead{display:flex;align-items:center;gap:.55rem;margin-bottom:.85rem}
.hp-ai-cardhead b{font-size:.92rem;color:var(--black,#1a1a1a)}
.hp-ai-cardhead .on{font-size:.68rem;color:#15803d;display:flex;align-items:center;gap:.32rem;margin-left:auto;font-weight:600}
.hp-ai-cardhead .on::before{content:"";width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block}
.hp-ai-chat{display:grid;gap:.55rem}
.hp-ai-bub{font-size:.84rem;line-height:1.5;padding:.65rem .85rem;border-radius:13px;max-width:88%}
.hp-ai-bub.q{background:var(--brand,#11676A);color:#fff;justify-self:end;border-bottom-right-radius:4px}
.hp-ai-bub.a{background:var(--g0,#f3f4f6);color:var(--g7,#1f2937);justify-self:start;border-bottom-left-radius:4px}
.hp-ai-bub.a a{color:var(--brand,#11676A);font-weight:600}
.hp-ai-chat{max-height:300px;overflow-y:auto;scroll-behavior:smooth}
.hp-ai-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}
.hp-ai-chips button{font-size:.76rem;color:var(--brand,#11676A);background:#fff;border:1px solid #cfe2e2;border-radius:99px;padding:.32rem .72rem;cursor:pointer;font-family:inherit;transition:background .15s}
.hp-ai-chips button:hover{background:#dff0f0}
.hp-ai-typing{display:inline-flex!important;gap:4px;align-items:center;width:auto}
.hp-ai-typing span{width:6px;height:6px;border-radius:50%;background:#9ca3af;display:inline-block;animation:hpAiBlink 1.2s infinite}
.hp-ai-typing span:nth-child(2){animation-delay:.2s}.hp-ai-typing span:nth-child(3){animation-delay:.4s}
@keyframes hpAiBlink{0%,60%,100%{opacity:.3}30%{opacity:1}}
@media(max-width:768px){.hp-ai-grid{grid-template-columns:1fr;gap:2rem}.hp-ai-card{order:-1}}
.hp-ideas{background:linear-gradient(160deg,#0d5254,#11676A);color:#fff}
.hp-ideas .container{max-width:880px}
.hp-ideas-head{text-align:center;max-width:620px;margin:0 auto 1.6rem}
.hp-ideas h5{color:#bfeaea;margin:0}
.hp-ideas h2{color:#fff;margin:.4rem 0 .6rem}
.hp-ideas-head p{color:rgba(255,255,255,.88);font-size:.96rem;line-height:1.6;margin:0}
.hp-ideas-form{display:flex;gap:.6rem;max-width:640px;margin:0 auto;flex-wrap:wrap}
.hp-ideas-form input.hp-ideas-input{flex:1;min-width:210px;font-family:inherit;font-size:.95rem;padding:.85rem 1.1rem;border:1px solid rgba(255,255,255,.4);border-radius:10px;outline:none;background:rgba(255,255,255,.95);color:#16261f}
.hp-ideas-form input.hp-ideas-input:focus{box-shadow:0 0 0 3px rgba(191,234,234,.4)}
.hp-ideas-hp{position:absolute!important;left:-9999px}
.hp-ideas-form .btn{white-space:nowrap;background:#fff;color:#0d5254;border:none}
.hp-ideas-form .btn:hover{background:#eafafa}
.hp-ideas-out{margin-top:1.8rem}
.hp-ideas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.hp-idea{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:13px;padding:1.2rem}
.hp-idea-n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#bfeaea;color:#0d5254;font-weight:800;font-size:.85rem;margin-bottom:.7rem}
.hp-idea h4{color:#fff;font-size:1rem;margin:0 0 .35rem;line-height:1.3}
.hp-idea p{color:rgba(255,255,255,.86);font-size:.86rem;line-height:1.55;margin:0}
.hp-ideas-note{text-align:center;margin:1.4rem auto 0;max-width:600px;font-size:.94rem;color:#eafafa;line-height:1.5}
.hp-ideas-cta{display:flex;gap:.65rem;justify-content:center;flex-wrap:wrap;margin-top:1.2rem}
.hp-ideas-loading,.hp-ideas-err{text-align:center;color:rgba(255,255,255,.85);padding:1.4rem}
.hp-ideas-err{color:#ffe0d6}
@media(max-width:680px){.hp-ideas-grid{grid-template-columns:1fr}}
.hp-why{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.hp-why-card{border:1px solid var(--g1,#e5e7eb);border-radius:8px;padding:1.5rem;text-align:center;background:var(--white,#fff);transition:all .15s}
.hp-why-card:hover{border-color:var(--brand,#11676A);box-shadow:0 2px 12px rgba(17,103,106,.06)}
.hp-why-icon{width:40px;height:40px;background:rgba(17,103,106,.08);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}
.hp-why-icon svg{width:20px;height:20px;stroke:var(--brand,#11676A);fill:none;stroke-width:1.8}
.hp-why-card h4{font-size:.88rem;font-weight:700;margin:0 0 .3rem;color:var(--black,#1a1a1a)}
.hp-why-card p{font-size:.78rem;color:var(--g4,#6b7280);line-height:1.5;margin:0}
@media(max-width:768px){.hp-why{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.hp-why{grid-template-columns:1fr}}
.hp-reports{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.hp-report{border:1px solid var(--g1,#e5e7eb);border-radius:6px;padding:1.25rem;text-decoration:none;color:inherit;display:block;transition:all .15s}
.hp-report:hover{border-color:var(--brand,#11676A);box-shadow:0 2px 8px rgba(17,103,106,.06)}
.hp-report-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand,#11676A);margin-bottom:.4rem}
.hp-report h4{font-size:.92rem;font-weight:700;margin:0 0 .3rem;color:var(--black,#1a1a1a)}
.hp-report p{font-size:.78rem;color:var(--g4,#6b7280);margin:0;line-height:1.4}
@media(max-width:768px){.hp-reports{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.hp-reports{grid-template-columns:1fr}}
.hp-fdn{background:linear-gradient(135deg,#0d5254 0%,#11676A 100%);padding:3rem 0;color:#fff}
.hp-fdn__inner{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;max-width:1180px;margin:0 auto;padding:0 1.25rem}
.hp-fdn-mark{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.85rem}
.hp-fdn-mark svg{width:36px;height:36px}
.hp-fdn-mark span{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.65)}
.hp-fdn h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin:0 0 .6rem;line-height:1.2}
.hp-fdn h2 em{font-style:normal;color:#e0a83e}
.hp-fdn p{font-size:.97rem;line-height:1.65;color:rgba(255,255,255,.88);margin:0 0 1.25rem;max-width:34rem}
.hp-fdn__ctas{display:flex;gap:.75rem;flex-wrap:wrap}
.hp-fdn__ctas a{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.9rem;border-radius:99px;padding:.7rem 1.25rem;text-decoration:none;border:1px solid transparent}
.hp-fdn__ctas .btn-gold{background:#e0a83e;color:#3a2b08;border-color:#e0a83e}.hp-fdn__ctas .btn-gold:hover{background:#eebb55}
.hp-fdn__ctas .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}.hp-fdn__ctas .btn-ghost:hover{background:rgba(255,255,255,.1)}
.hp-fdn__progs{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.hp-fdn__prog{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:11px;padding:.85rem 1rem}
.hp-fdn__prog-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#e0a83e;margin-bottom:.2rem}
.hp-fdn__prog h4{font-size:.92rem;font-weight:700;margin:0 0 .15rem;color:#fff}
.hp-fdn__prog-max{font-size:.78rem;color:rgba(255,255,255,.65)}
@media(max-width:768px){.hp-fdn__inner{grid-template-columns:1fr}.hp-fdn__progs{grid-template-columns:1fr 1fr}}
.hp-cc{background:linear-gradient(135deg,#1976D2 0%,#0d57a4 100%);border-radius:8px;padding:2rem 2.5rem;color:#fff;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;position:relative;overflow:hidden;margin-bottom:1.75rem}
.hp-cc::before{content:"";position:absolute;top:-30%;right:-5%;width:55%;height:200%;background:radial-gradient(circle at center,rgba(140,198,63,.2),transparent 60%);pointer-events:none}
.hp-cc>*{position:relative;z-index:1}
.hp-cc h3{font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 .4rem}
.hp-cc p{font-size:.85rem;color:rgba(255,255,255,.72);margin:0 0 .85rem;line-height:1.6}
.hp-cc-stats{display:flex;gap:1.5rem;flex-wrap:wrap}
.hp-cc-stat div:first-child{font-size:1.15rem;font-weight:700;color:#8CC63F;line-height:1}
.hp-cc-stat div:last-child{font-size:.62rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.04em;margin-top:.15rem}
.hp-cc-right{text-align:center}
.hp-cc-logo{background:#fff;padding:.65rem 1rem;border-radius:6px;margin-bottom:.85rem;display:inline-block;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.hp-cc-logo img{height:34px;width:auto;display:block}
.hp-cc .btn--cc{background:#8CC63F;color:#fff;border:none}
.hp-cc .btn--cc:hover{background:#6f9e15;color:#fff}
.hp-cc-who{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:1.5rem}
.hp-cc-who-card{border:1px solid var(--g1,#e5e7eb);border-radius:8px;padding:1.5rem;text-align:center;background:#fff;transition:all .15s}
.hp-cc-who-card:hover{border-color:#1976D2;box-shadow:0 2px 12px rgba(25,118,210,.08)}
.hp-cc-who-icon{width:40px;height:40px;background:rgba(25,118,210,.08);border-radius:8px;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}
.hp-cc-who-icon svg{width:20px;height:20px;stroke:#1976D2;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hp-cc-who-card h4{font-size:.88rem;font-weight:700;margin:0 0 .3rem;color:var(--black,#1a1a1a)}
.hp-cc-who-card p{font-size:.78rem;color:var(--g4,#6b7280);line-height:1.5;margin:0}
.hp-cc-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;background:#fff;border:1px solid var(--g1,#e5e7eb);border-radius:8px}
.hp-cc-trust-item{display:flex;align-items:center;gap:.6rem;font-size:.78rem;color:var(--g5,#4b5563);line-height:1.4}
.hp-cc-trust-item svg{flex-shrink:0;width:18px;height:18px;stroke:#8CC63F;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hp-cc-trust-item strong{display:block;color:var(--black,#1a1a1a);font-weight:700;font-size:.82rem;margin-bottom:.1rem}
@media(max-width:900px){.hp-cc-who,.hp-cc-trust{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.hp-cc{grid-template-columns:1fr;text-align:center}.hp-cc-stats{justify-content:center}}
@media(max-width:480px){.hp-cc-who,.hp-cc-trust{grid-template-columns:1fr}}
.hp-inv{background:var(--brand,#11676A);border-radius:8px;padding:2rem 2.5rem;color:#fff;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}
.hp-inv h3{font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 .4rem}
.hp-inv p{font-size:.85rem;color:rgba(255,255,255,.85);margin:0 0 .75rem;line-height:1.6}
.hp-inv-stats{display:flex;gap:1.5rem}
.hp-inv-stat{text-align:center}
.hp-inv-stat div:first-child{font-size:1.2rem;font-weight:700;color:#fff}
.hp-inv-stat div:last-child{font-size:.62rem;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.04em;margin-top:.1rem}
.hp-inv-right{text-align:center}
.hp-inv-rate{font-size:2rem;font-weight:700;line-height:1}
.hp-inv-ratelbl{font-size:.7rem;color:rgba(255,255,255,.85);margin:.2rem 0 1rem}
@media(max-width:768px){.hp-inv{grid-template-columns:1fr;text-align:center}.hp-inv-stats{justify-content:center}}
.hp-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.hp-link-card{border:1px solid var(--g1,#e5e7eb);border-radius:6px;padding:1.5rem;text-decoration:none;color:inherit;display:block;transition:all .15s}
.hp-link-card:hover{border-color:var(--brand,#11676A);box-shadow:0 2px 8px rgba(17,103,106,.06)}
.hp-link-tag{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand,#11676A);margin-bottom:.5rem}
.hp-link-card h4{font-size:.95rem;font-weight:700;margin:0 0 .3rem}
.hp-link-card p{font-size:.8rem;color:var(--g4,#6b7280);margin:0;line-height:1.5}

/* ═══════════════════════════════════════════════════════════════
   SEARCH OVERLAY + MOBILE SEARCH RESULTS
   Moved from header.php inline <style> (PF20) — cached with stylesheet.
   ═══════════════════════════════════════════════════════════════ */

/* ───────── MOBILE INLINE SEARCH RESULTS ───────── */
.mobile-search-results.has-results{
    display:block;
    background:var(--white,#fff);
    border-top:1px solid var(--g1,#e5e7eb);
    max-height:55vh;overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.mobile-search-results .msr-status{
    font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
    color:var(--g4,#888);padding:.6rem 1.25rem .3rem;
}
.mobile-search-results .msr-item{
    display:flex;align-items:center;gap:.7rem;
    padding:.7rem 1.25rem;border-bottom:1px solid var(--g0,#f4f4f4);
    text-decoration:none;color:inherit;
}
.mobile-search-results .msr-item:active{background:var(--g0,#f4f4f4)}
.mobile-search-results .msr-thumb{
    width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;
    background:var(--g0,#f4f4f4);
}
.mobile-search-results .msr-thumb--none{
    width:40px;height:40px;border-radius:6px;flex-shrink:0;
    background:var(--g0,#f4f4f4);display:grid;place-items:center;
    color:var(--g2,#d4d4d4);
}
.mobile-search-results .msr-body{flex:1;min-width:0}
.mobile-search-results .msr-title{
    display:block;font-size:.85rem;font-weight:600;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    color:var(--black,#0a0a0a);
}
.mobile-search-results .msr-meta{
    display:block;font-size:.7rem;color:var(--g4,#888);margin-top:1px;
}
.mobile-search-results .msr-type{
    font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
    color:var(--g4,#888);background:var(--g0,#f4f4f4);
    padding:2px 6px;border-radius:3px;flex-shrink:0;
}
.mobile-search-results .msr-empty{
    padding:1.5rem 1.25rem;text-align:center;
    font-size:.85rem;color:var(--g4,#888);
}
.mobile-search-results .msr-skeleton{
    display:flex;align-items:center;gap:.7rem;padding:.7rem 1.25rem;
}
.mobile-search-results .msr-skeleton__box{
    width:40px;height:40px;border-radius:6px;
    background:var(--g1,#e8e8e8);animation:msr-pulse 1s ease-in-out infinite;
}
.mobile-search-results .msr-skeleton__lines{flex:1}
.mobile-search-results .msr-skeleton__line{
    height:8px;border-radius:3px;margin-bottom:6px;
    background:var(--g1,#e8e8e8);animation:msr-pulse 1s ease-in-out infinite;
}
.mobile-search-results .msr-skeleton__line:last-child{width:45%;margin-bottom:0}
@keyframes msr-pulse{0%,100%{opacity:.4}50%{opacity:.8}}

/* When results are showing, dim the menu items behind */
.mobile-search.searching ~ .has-dropdown,
.mobile-search.searching ~ .site-nav__cta{opacity:.3;pointer-events:none;transition:opacity .15s}

/* ───────── SEARCH OVERLAY ───────── */
/* Reset properties that bleed from old style.css search-overlay rules */
.search-overlay{
    position:fixed;inset:0;
    background:rgba(8,8,12,.92);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    z-index:10000;
    display:none;
    /* kill old style.css bleed */
    padding:0;padding-top:0;
    align-items:stretch;justify-content:stretch;
}
.search-overlay.open{display:flex;flex-direction:column;animation:so-fadeIn .2s ease-out}
@keyframes so-fadeIn{from{opacity:0}to{opacity:1}}

/* Kill old style.css .search-overlay__box rules */
.search-overlay__box{background:none !important;padding:0 !important;border-radius:0 !important;max-width:none !important;box-shadow:none !important;width:auto !important}

/* Scroll container — fills the overlay, scrolls internally */
.search-overlay__scroll{
    flex:1;overflow-y:auto;overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
}

.search-overlay__inner{
    width:100%;max-width:680px;
    margin:0 auto;
    padding:0 1.5rem 3rem;
    overflow:hidden; /* prevent grid children from pushing wider */
}

/* Sticky header: search bar + filters pin to top while body scrolls */
.search-overlay__sticky{
    position:sticky;top:0;z-index:2;
    background:rgba(8,8,12,.96);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    padding:1.5rem 0 0;
    margin:0 -1.5rem;padding-left:1.5rem;padding-right:1.5rem;
}
/* fade-out edge at bottom of sticky area */
.search-overlay__sticky::after{
    content:'';display:block;height:16px;
    background:linear-gradient(rgba(8,8,12,.96),transparent);
    margin:0 -1.5rem;pointer-events:none;
}

/* Scrollable body */
.search-overlay__body{
    padding-top:.5rem;
}

/* Header row */
.search-overlay__header{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:1.25rem;
}
.search-overlay__title{
    font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
    color:rgba(255,255,255,.3);
}
.search-overlay__close{
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
    color:rgba(255,255,255,.5);border-radius:8px;
    width:36px;height:36px;display:grid;place-items:center;
    cursor:pointer;transition:all .15s;
}
.search-overlay__close:hover{background:rgba(255,255,255,.12);color:#fff}

/* Search form — selectors prefixed to beat old style.css .search-overlay__box rules */
.search-overlay .search-overlay__form{
    display:flex;align-items:center;
    background:#fff;border-radius:12px;
    padding:4px;position:relative;
    box-shadow:0 0 0 1px rgba(255,255,255,.08),0 20px 60px rgba(0,0,0,.3);
    gap:0;
}
.search-overlay__icon{position:absolute;left:16px;width:20px;height:20px;stroke:#9ca3af;pointer-events:none}
.search-overlay .search-overlay__form input{
    flex:1;border:none;padding:14px 14px 14px 46px;
    font-size:1.05rem;font-family:inherit;outline:none;
    background:transparent;border-radius:10px;min-width:0;
}
.search-overlay__kbd{
    font-size:.65rem;font-family:inherit;font-weight:600;
    color:#9ca3af;background:#f3f4f6;border:1px solid #e5e7eb;
    border-radius:4px;padding:2px 6px;margin-right:8px;
    line-height:1;flex-shrink:0;
}
.search-overlay .search-overlay__submit{
    background:var(--brand,#11676A);color:#fff;border:none;
    padding:11px 22px;border-radius:8px;font-size:.85rem;font-weight:600;
    cursor:pointer;font-family:inherit;flex-shrink:0;transition:background .12s;
}
.search-overlay .search-overlay__submit:hover{background:#0d5254}

/* Category filter chips */
.search-overlay__filters{
    display:flex;flex-wrap:wrap;gap:6px;margin-top:1rem;
}
.search-filter{
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
    color:rgba(255,255,255,.5);border-radius:20px;
    padding:6px 14px;font-size:.78rem;font-weight:500;font-family:inherit;
    cursor:pointer;transition:all .15s;white-space:nowrap;
}
.search-filter:hover{background:rgba(255,255,255,.1);color:rgba(255,255,255,.7)}
.search-filter.active{
    background:var(--brand,#11676A);border-color:var(--brand,#11676A);
    color:#fff;
}

/* ── AJAX results ── */
.search-overlay__results{margin-top:1.25rem}
.search-results__status{
    font-size:.78rem;color:rgba(255,255,255,.35);margin-bottom:.75rem;
    min-height:1.2em;
}
.search-results__list{display:flex;flex-direction:column;gap:2px}

.search-result{
    display:flex;align-items:center;gap:.85rem;
    padding:.75rem .85rem;border-radius:10px;
    text-decoration:none;color:#fff;transition:background .12s;
}
.search-result:hover,.search-result.active{background:rgba(255,255,255,.07)}
.search-result__img{
    width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0;
    background:rgba(255,255,255,.06);
}
.search-result__img--placeholder{
    width:52px;height:52px;border-radius:8px;flex-shrink:0;
    background:rgba(255,255,255,.04);display:grid;place-items:center;
    color:rgba(255,255,255,.15);
}
.search-result__body{flex:1;min-width:0}
.search-result__title{
    display:block;font-size:.9rem;font-weight:500;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.search-result__meta{
    display:block;font-size:.75rem;color:rgba(255,255,255,.35);margin-top:2px;
}
.search-result__type{
    font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;
    color:rgba(255,255,255,.2);background:rgba(255,255,255,.06);
    padding:3px 8px;border-radius:4px;flex-shrink:0;
}

/* Skeleton loader */
.search-skeleton{display:flex;align-items:center;gap:.85rem;padding:.75rem .85rem}
.search-skeleton__img{width:52px;height:52px;border-radius:8px;background:rgba(255,255,255,.06);animation:so-pulse 1.2s ease-in-out infinite}
.search-skeleton__lines{flex:1}
.search-skeleton__line{height:10px;border-radius:4px;background:rgba(255,255,255,.06);animation:so-pulse 1.2s ease-in-out infinite;margin-bottom:8px}
.search-skeleton__line:last-child{width:50%;margin-bottom:0}
@keyframes so-pulse{0%,100%{opacity:.4}50%{opacity:.8}}

/* No results */
.search-noresults{text-align:center;padding:2.5rem 1rem;color:rgba(255,255,255,.35)}
.search-noresults svg{margin-bottom:.75rem;opacity:.3}
.search-noresults p{font-size:.88rem;margin:0}
.search-noresults span{font-size:.78rem;display:block;margin-top:.35rem;opacity:.6}

/* ── Pre-search content ── */
.search-overlay__presearch{margin-top:1.75rem}

.presearch-section{margin-bottom:1.5rem}
.presearch-section__heading{
    font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
    color:rgba(255,255,255,.3);margin:0 0 .75rem;
    display:flex;align-items:center;gap:6px;
}
.presearch-section__grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
}

.presearch-card{
    display:flex;align-items:center;gap:.7rem;
    padding:.6rem .7rem;border-radius:10px;
    text-decoration:none;color:#fff;
    background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);
    transition:all .15s;
    min-width:0;overflow:hidden;
}
.presearch-card:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}
.presearch-card__img{
    width:44px;height:44px;border-radius:7px;object-fit:cover;flex-shrink:0;
}
.presearch-card__img--placeholder{
    width:44px;height:44px;border-radius:7px;flex-shrink:0;
    background:rgba(255,255,255,.04);display:grid;place-items:center;
    color:rgba(255,255,255,.12);
}
.presearch-card__body{flex:1;min-width:0}
.presearch-card__title{
    display:block;font-size:.82rem;font-weight:500;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.presearch-card__meta{
    display:block;font-size:.7rem;color:rgba(255,255,255,.3);margin-top:2px;
}

/* Quick links */
.search-overlay__links{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
    margin-top:1.75rem;padding-top:1.5rem;
    border-top:1px solid rgba(255,255,255,.06);
}
.search-overlay__col h4{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.3);margin:0 0 .6rem}
.search-overlay__col a{display:block;font-size:.82rem;color:rgba(255,255,255,.5);text-decoration:none;padding:.3rem 0;transition:color .12s}
.search-overlay__col a:hover{color:#fff}

/* ── Mobile fullscreen ── */
@media(max-width:640px){
    .search-overlay__inner{padding:0 1rem 2rem;overflow:hidden}
    .search-overlay__sticky{margin:0 -1rem;padding-left:1rem;padding-right:1rem;padding-top:1rem}
    .search-overlay__sticky::after{margin:0 -1rem}
    .search-overlay__header{margin-bottom:.75rem}
    .search-overlay .search-overlay__form{border-radius:10px}
    .search-overlay .search-overlay__form input{padding:12px 12px 12px 42px;font-size:.95rem}
    .search-overlay .search-overlay__submit{padding:10px 16px;font-size:.8rem}
    .search-overlay__kbd{display:none}
    .search-overlay__filters{gap:5px;margin-top:.75rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
    .search-filter{padding:5px 12px;font-size:.73rem}
    .presearch-section__grid{grid-template-columns:1fr}
    .search-overlay__links{grid-template-columns:1fr;gap:1rem;margin-top:1.25rem;padding-top:1.25rem}
}
@media(max-width:768px){.hp-links{grid-template-columns:1fr}}

/* ════════════════════════════════════════════════════════════
   SCROLL REVEAL — .reveal elements fade-up when they enter the viewport.
   Applied site-wide via IntersectionObserver in main.js.
   ════════════════════════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s cubic-bezier(.2,0,.1,1),transform .6s cubic-bezier(.2,0,.1,1)}
.reveal--done{opacity:1!important;transform:none!important}
/* Stagger grid children so they cascade in */
.reveal-grid>.reveal:nth-child(2){transition-delay:.1s}
.reveal-grid>.reveal:nth-child(3){transition-delay:.2s}
.reveal-grid>.reveal:nth-child(4){transition-delay:.3s}
.reveal-grid>.reveal:nth-child(5){transition-delay:.4s}
.reveal-grid>.reveal:nth-child(6){transition-delay:.5s}
.reveal-grid>.reveal:nth-child(7){transition-delay:.6s}
.reveal-grid>.reveal:nth-child(8){transition-delay:.7s}
@media(prefers-reduced-motion:reduce){.reveal,.reveal--done{opacity:1!important;transform:none!important;transition:none!important}}

/* ════════════════════════════════════════════════════════════
   HERO ENTRANCE — staggered fade-up on page load.
   ════════════════════════════════════════════════════════════ */
@keyframes heroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero-banner__title{animation:heroIn .75s .04s cubic-bezier(.2,0,.1,1) both}
.hero-rotate-line{animation:heroIn .75s .18s cubic-bezier(.2,0,.1,1) both}
.hero-banner__subtitle.hero-sub{animation:heroIn .75s .30s cubic-bezier(.2,0,.1,1) both}
.hero-askbea{animation:heroIn .75s .42s cubic-bezier(.2,0,.1,1) both}
.hero-banner__actions{animation:heroIn .75s .54s cubic-bezier(.2,0,.1,1) both}
@media(prefers-reduced-motion:reduce){.hero-banner__title,.hero-rotate-line,.hero-banner__subtitle.hero-sub,.hero-askbea,.hero-banner__actions{animation:none}}

/* ════════════════════════════════════════════════════════════
   SCROLLING TICKER — continuous marquee strip.
   ════════════════════════════════════════════════════════════ */
.cmb-ticker{overflow:hidden;background:var(--brand);padding:.5rem 0;border-top:1px solid rgba(255,255,255,.08)}
.cmb-ticker__inner{display:flex;width:max-content;animation:cmb-tick 32s linear infinite}
.cmb-ticker__track{display:flex;align-items:center;gap:0;flex-shrink:0}
.cmb-ticker span{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);padding:0 1.1rem;white-space:nowrap}
.cmb-ticker__dot{color:rgba(255,255,255,.3)!important;font-size:.5rem!important;padding:0!important;letter-spacing:0!important}
@keyframes cmb-tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.cmb-ticker:hover .cmb-ticker__inner{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.cmb-ticker__inner{animation:none}}

/* ════════════════════════════════════════════════════════════
   WHY-CARD hover — icon glow + card lift.
   ════════════════════════════════════════════════════════════ */
.hp-why-card{transition:transform .25s ease,box-shadow .25s ease}
.hp-why-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(17,103,106,.12)}
.hp-why-icon svg{transition:transform .3s ease,filter .3s ease}
.hp-why-card:hover .hp-why-icon svg{transform:scale(1.18);filter:drop-shadow(0 0 6px rgba(17,103,106,.45))}

/* ════════════════════════════════════════════════════════════
   SERVICE CARD hover — sharper lift.
   ════════════════════════════════════════════════════════════ */
.hp-svc-card .hp-svc-icon svg{transition:transform .3s ease,color .3s ease}
.hp-svc-card:hover .hp-svc-icon svg{transform:scale(1.15) rotate(-8deg);color:var(--brand)}

/* =====================================================================
   DESIGN UPLIFT (2026-06-24) — deep neutral skeuomorphism layer.
   Adds standard group shadow vocabulary without touching brand colour.
   ===================================================================== */
:root {
  --navy-950: #06131f;
  --navy-900: #0b1f33;
  --navy-850: #102b46;
  --navy-800: #163856;
  --line: rgba(6,19,31,.12);
  --line-strong: rgba(6,19,31,.18);
  --paper: #ffffff;
  --paper-warm: #f8faf9;
  --focus-ring: #0b1f33;
  --shadow-sm: 0 1px 1px rgba(6,19,31,.05),0 2px 4px rgba(6,19,31,.06);
  --shadow-md: 0 1px 1px rgba(6,19,31,.06),0 8px 18px rgba(6,19,31,.10),0 18px 34px rgba(6,19,31,.08);
  --shadow-lg: 0 2px 3px rgba(6,19,31,.08),0 16px 30px rgba(6,19,31,.13),0 36px 72px rgba(6,19,31,.12);
  --sk-raised: inset 0 1px 0 rgba(255,255,255,.88),0 1px 1px rgba(6,19,31,.06),0 6px 14px rgba(6,19,31,.10),0 18px 36px rgba(6,19,31,.08);
  --sk-raised-lg: inset 0 1px 0 rgba(255,255,255,.92),0 2px 3px rgba(6,19,31,.08),0 14px 28px rgba(6,19,31,.13),0 34px 68px rgba(6,19,31,.12);
  --sk-hover: inset 0 1px 0 rgba(255,255,255,.95),0 3px 5px rgba(6,19,31,.08),0 20px 38px rgba(6,19,31,.15),0 42px 78px rgba(6,19,31,.12);
  --sk-inset: inset 0 2px 4px rgba(6,19,31,.13),inset 0 1px 2px rgba(6,19,31,.08);
  --sk-cta: inset 0 1px 0 rgba(255,255,255,.26),0 1px 2px rgba(6,19,31,.18),0 8px 18px rgba(6,19,31,.18);
  --sk-cta-hover: inset 0 1px 0 rgba(255,255,255,.32),0 2px 4px rgba(6,19,31,.18),0 14px 28px rgba(6,19,31,.22);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.btn:focus-visible,
.site-nav a:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 3px;
  box-shadow: none;
}

.hp-why-card:hover {
  box-shadow: var(--sk-hover);
}
.hp-why-card:hover .hp-why-icon svg {
  filter: drop-shadow(0 0 6px rgba(6,19,31,.22));
}

.kb-card,
.cmb-service-card,
.hp-svc-card,
.cmb-post-card {
  border-color: var(--line);
  box-shadow: var(--sk-raised);
  background-image: linear-gradient(180deg,#fff 0%,#fbfcfc 56%,#f2f6f6 100%);
}
.kb-card:hover,
.cmb-service-card:hover,
.hp-svc-card:hover,
.cmb-post-card:hover {
  box-shadow: var(--sk-hover);
}

.site-header {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70),0 1px 2px rgba(6,19,31,.06),0 8px 20px rgba(6,19,31,.07);
}

.btn--primary {
  box-shadow: var(--sk-cta);
}
.btn--primary:hover {
  box-shadow: var(--sk-cta-hover);
}

@media(max-width:768px){
  .container,.site-header .container,.hero__inner{width:100%;max-width:100%;min-width:0}
  .btn,.btn--primary{justify-content:center;width:100%;max-width:100%;white-space:normal;text-align:center}
}
