/*
 * Kalviro site shell — v6.11.0
 * Tokens use the --kvs- prefix on purpose: older rules redefine --kvl-green per element.
 * Header, footer, buttons, login card and one UI font. Design only: no text, links or slugs
 * change. Loads after kvl-design-v2.css (see kvl_design_v2_enqueue_assets). Selectors start
 * with "html body" / #masthead / #colophon so they beat Elementor's per-widget CSS without
 * relying on Elementor element IDs. Kill switch: define( 'KVL_SHELL_CSS', false ).
 */

:root {
    --kvs-font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --kvs-font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
    --kvs-forest: #0F3D24;
    --kvs-green: #1F6B3A;
    --kvs-green-hover: #164D2B;
    --kvs-gold: #C9A227;
    --kvs-gold-hover: #D6B23F;
    --kvs-ink: #1E293B;
    --kvs-muted: #5C6560;
    --kvs-line: #E2E6E3;
    --kvs-subtle: #F7F8F6;
}

/* ------------------------------------------------------------------------------------------
 * 1. One UI font. Manrope was never loaded, so these fell back to Arial while body text used
 *    the system font. Everything below now uses the same system stack as body text.
 * ---------------------------------------------------------------------------------------- */
html body.kvl-design-v2 #masthead,
html body.kvl-design-v2 #masthead a,
html body.kvl-design-v2 #colophon,
html body.kvl-design-v2 #colophon a,
html body.kvl-design-v2 #page .ekit-template-content-footer,
html body.kvl-design-v2 #page .ekit-template-content-footer a,
html body.kvl-design-v2 #page .ekit-template-content-footer p,
html body.kvl-design-v2 #page .ekit-template-content-footer .elementor-icon-list-text,
html body.kvl-design-v2 .kvl-trust-strip.kvl-trust-strip,
html body.kvl-design-v2 a.register-button.register-button,
html body.kvl-design-v2 a.logout-button.logout-button,
html body.kvl-design-v2 a.product-dashboard.product-dashboard,
html body.kvl-design-v2 a.aif-button.aif-button,
html body.kvl-design-v2 .elementor-button,
html body.kvl-design-v2 .elementor .elementor-widget-button .elementor-button.elementor-button.elementor-button,
html body.kvl-design-v2 .elementor .elementor-widget-button .elementor-button .elementor-button-text,
html body.kvl-design-v2 .kvl-rmbtn.kvl-rmbtn,
html body.kvl-design-v2 .forminator-ui .forminator-button,
html body.kvl-design-v2 .kvl-ia,
html body.kvl-design-v2 .kvl-ia input,
html body.kvl-design-v2 .kvl-ia button,
html body.kvl-design-v2 .kvl-auth-tabs a,
html body.kvl-design-v2 .kvl-blog-lead,
html body.kvl-design-v2 .kvl-blog-lead input,
html body.kvl-design-v2 .kvl-blog-lead button,
html body.kvl-design-v2 table.dataTable,
html body.kvl-design-v2 .table-container,
html body.kvl-design-v2 .unlisted-share-table,
html body.kvl-design-v2 .unlisted-share-table-1,
html body.kvl-design-v2 .unlisted-zone-table {
    font-family: var(--kvs-font-ui) !important;
}

/* ------------------------------------------------------------------------------------------
 * 2. Header — sticky, one line on desktop, smaller logo.
 * ---------------------------------------------------------------------------------------- */
html body #masthead {
    position: sticky !important;
    top: 0;
    z-index: 999 !important;
    background: #fff;
    box-shadow: 0 1px 0 var(--kvs-line);
}
/* overflow-x:hidden on <body> turns it into a scroll box and stops the sticky header on phones.
   clip blocks sideways scrolling the same way without that side effect (older browsers keep hidden). */
html body.kvl-design-v2 {
    overflow-x: hidden !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
}
html body.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { html body.admin-bar #masthead { top: 46px; } }
@media (max-width: 600px) { html body.admin-bar #masthead { top: 0; } }

html body #masthead [data-elementor-type="header"],
html body #masthead .elementor-location-header {
    box-shadow: none !important;
}

/* Logo: 44px tall on desktop/tablet, 34px on phones (was 62px / 40px). */
html body #masthead .elementor-widget-image {
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
}
html body #masthead .elementor-widget-image img {
    height: 44px !important;
    width: auto !important;
    max-width: none !important;
}
html body #masthead .e-con:has(> .elementor-widget-image) {
    width: auto !important;
    flex: 0 0 auto !important;
}

@media (min-width: 1024.01px) {
    /* Row: logo | menu (grows, centred) | buttons.
       #menu-primary is doubled on purpose: the header template's saved Elementor CSS still holds
       the old 5|4 two-row rules with two ID selectors; three IDs win without editing the template. */
    html body #masthead .e-con:has(> .elementor-widget-ekit-nav-menu) {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    html body #masthead .elementor-widget-image img { height: 40px !important; }
    html body #masthead .e-con:has(> .elementor-widget-image) + .e-con,
    html body #masthead .e-con:has(> .elementor-widget-shortcode) {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    html body #masthead .e-con:has(> .elementor-widget-image),
    html body #masthead .e-con:has(> .elementor-widget-ekit-nav-menu),
    html body #masthead .e-con:has(> .elementor-widget-shortcode) {
        min-height: 0 !important;
        align-items: center !important;
    }
    html body #masthead .e-con:has(> .elementor-widget-ekit-nav-menu) > .elementor-widget-ekit-nav-menu {
        width: 100% !important;
        max-width: 100% !important;
    }
    html body #masthead .elementskit-menu-container {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav {
        display: flex !important;
        flex-wrap: nowrap !important; /* always one line (owner decision 14 Oct 2026) */
        justify-content: center !important;
        align-items: center !important;
        gap: 0 !important;
        width: auto !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav::after { content: none !important; display: none !important; }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li {
        flex: 0 0 auto !important;
        order: 0 !important;
        margin: 0 !important;
        width: auto !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a {
        display: block !important;
        padding: 8px 9px !important;
        border-radius: 8px !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        line-height: 1.3 !important;
        letter-spacing: 0 !important;
        white-space: nowrap !important;
        color: var(--kvs-ink) !important;
        background: transparent !important;
        transition: color .15s ease, background-color .15s ease;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a:hover {
        color: var(--kvs-green) !important;
        background: var(--kvs-subtle) !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li.current-menu-item > a,
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li.current_page_item > a,
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a.active {
        color: var(--kvs-green) !important;
        box-shadow: inset 0 -2px 0 var(--kvs-gold);
        border-radius: 8px 8px 0 0 !important;
    }
    html body #masthead .e-con:has(> .elementor-widget-shortcode) {
        flex: 0 0 auto !important;
        width: auto !important;
        gap: 10px !important;
        flex-wrap: nowrap !important;
    }
}
/* Tighter menu between 1025px and 1365px so 1280px laptops still fit it on one line. */
@media (min-width: 1024.01px) and (max-width: 1365px) {
    html body #masthead .elementor-widget-image img { height: 34px !important; }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 6px !important; font-size: 14px !important; }
    html body #masthead a.register-button,
    html body #masthead a.logout-button,
    html body #masthead .elementor-widget-button .elementor-button { padding: 0 14px !important; min-width: 0 !important; font-size: 14px !important; }
}

/* 1025–1179px: most compact tier, still one line. */
@media (min-width: 1024.01px) and (max-width: 1179px) {
    html body #masthead .elementor-widget-image img { height: 30px !important; }
    html body #masthead .e-con:has(> .elementor-widget-ekit-nav-menu) { padding-left: 6px !important; padding-right: 6px !important; }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 5px !important; font-size: 13px !important; }
    html body.kvl-design-v2 #masthead a.register-button.register-button,
    html body.kvl-design-v2 #masthead a.logout-button.logout-button,
    html body.kvl-design-v2 #masthead .elementor-widget-button .elementor-button.elementor-button-link.elementor-button-link { padding: 0 12px !important; font-size: 13px !important; min-height: 40px !important; }
    html body #masthead .e-con:has(> .elementor-widget-shortcode) { gap: 8px !important; }
}
/* Signed in (owner decision 14 Oct 2026): "Open the Dashboard" + "Click To Logout";
   "Book A Meeting" shows to visitors only. */
html body .kvl-account-actions {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
}
html body #masthead:has(.kvl-account-actions) .elementor-widget-button:has(a[href*="calendly.com"]),
html body #masthead:has(.kvl-account-actions) .elementor-widget-button:has(a.kvl-cta-meeting) {
    display: none !important;
}
@media (min-width: 1024.01px) and (max-width: 1179px) {
    html body #masthead:has(.kvl-account-actions) #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 4px !important; }
}
/* Tablet & phone: menu buttons and slide-out panels. */
@media (max-width: 1024px) {
    html body #masthead .elementskit-menu-hamburger,
    html body #masthead .ekit_navSidebar-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        border: 1px solid var(--kvs-line) !important;
        border-radius: 10px !important;
        background: #fff !important;
        color: var(--kvs-forest) !important;
    }
    html body #masthead .ekit_navSidebar-button::after { content: none !important; }
    /* Panels opened slowly (about 2 s); now 0.2 s. */
    html body .elementskit-menu-offcanvas-elements,
    html body .ekit-sidebar-group,
    html body .ekit-sidebar-group .ekit-sidebar-widget,
    html body .ekit-sidebar-group .ekit-overlay {
        transition-duration: .2s !important;
        transition-delay: 0s !important;
    }
    html body .elementskit-navbar-nav > li > a,
    html body .ekit-sidebar-widget a:not(.elementor-button):not(.register-button):not(.logout-button) {
        min-height: 44px;
        display: flex !important;
        align-items: center;
    }
}
@media (max-width: 767px) {
    html body #masthead .elementor-widget-image img { height: 34px !important; }
}

/* Trust strip under the header: same font as the rest of the UI. */
html body.kvl-design-v2 .kvl-trust-strip.kvl-trust-strip { letter-spacing: .01em !important; }

/* ------------------------------------------------------------------------------------------
 * 3. Buttons — one shape (10px radius), one height, hover darkens instead of turning gold.
 * ---------------------------------------------------------------------------------------- */
html body.kvl-design-v2 a.register-button.register-button,
html body.kvl-design-v2 a.logout-button.logout-button,
html body.kvl-design-v2 a.product-dashboard.product-dashboard,
html body.kvl-design-v2 a.aif-button.aif-button,
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link:not(.kvl-no-style),
html body.kvl-design-v2 .kvl-rmbtn.kvl-rmbtn,
html body.kvl-design-v2 div.read-more a.tpg-post-link.tpg-post-link,
html body.kvl-design-v2 a.more-link.more-link,
html body.kvl-design-v2 .ast-the-content-more-link a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px;
    min-height: 44px !important;
    padding: 0 22px !important;
    border-radius: 10px !important;
    border: 1.5px solid var(--kvs-green) !important;
    background: var(--kvs-green) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease !important;
}
html body.kvl-design-v2 a.register-button.register-button:hover,
html body.kvl-design-v2 a.product-dashboard.product-dashboard:hover,
html body.kvl-design-v2 a.aif-button.aif-button:hover,
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link:not(.kvl-no-style):hover,
html body.kvl-design-v2 .kvl-rmbtn.kvl-rmbtn:hover,
html body.kvl-design-v2 div.read-more a.tpg-post-link.tpg-post-link:hover,
html body.kvl-design-v2 a.more-link.more-link:hover,
html body.kvl-design-v2 .ast-the-content-more-link a:hover {
    background: var(--kvs-green-hover) !important;
    border-color: var(--kvs-green-hover) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
}
html body.kvl-design-v2 .elementor-widget-button a.elementor-button .elementor-button-text,
html body.kvl-design-v2 .elementor-widget-button a.elementor-button .elementor-button-icon { color: inherit !important; }

/* "Click To Logout": outlined, so it reads as secondary next to the dashboard link. */
html body.kvl-design-v2 a.logout-button.logout-button {
    background: #fff !important;
    color: var(--kvs-green) !important;
}
html body.kvl-design-v2 a.logout-button.logout-button:hover {
    background: var(--kvs-subtle) !important;
    border-color: var(--kvs-green-hover) !important;
    color: var(--kvs-green-hover) !important;
}

/* "Book A Meeting" (Calendly): gold with forest text; hover lightens (was white on dark gold, 3.4:1). */
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link[href*="calendly.com"],
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link.kvl-cta-meeting {
    background: var(--kvs-gold) !important;
    border-color: var(--kvs-gold) !important;
    color: var(--kvs-forest) !important;
}
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link[href*="calendly.com"]:hover,
html body.kvl-design-v2 .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link.kvl-cta-meeting:hover {
    background: var(--kvs-gold-hover) !important;
    border-color: var(--kvs-gold-hover) !important;
    color: var(--kvs-forest) !important;
}

/* Header buttons: no forced 180px minimum, same height as the menu row. */
html body.kvl-design-v2 #masthead a.register-button.register-button,
html body.kvl-design-v2 #masthead a.logout-button.logout-button,
html body.kvl-design-v2 #masthead .elementor-widget-button .elementor-button {
    min-width: 0 !important;
    width: auto !important;
    white-space: nowrap !important;
}

/* Forms (Forminator): rounded like the other buttons. */
html body.kvl-design-v2 .forminator-ui .forminator-button-submit.forminator-button-submit {
    min-height: 48px !important;
    padding: 0 32px !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    box-shadow: none !important;
}

/* Focus: green ring with a white gap, visible on light and dark backgrounds (gold was 2.4:1). */
html body.kvl-design-v2 a:focus-visible,
html body.kvl-design-v2 button:focus-visible,
html body.kvl-design-v2 input:focus-visible,
html body.kvl-design-v2 select:focus-visible,
html body.kvl-design-v2 textarea:focus-visible,
html body.kvl-design-v2 [tabindex]:focus-visible {
    outline: 2px solid var(--kvs-green) !important;
    outline-offset: 2px !important;
    box-shadow: 0 0 0 4px #fff !important;
}

/* ------------------------------------------------------------------------------------------
 * 4. Headings appear with their text (the slow fade-in made them lag behind while scrolling).
 * ---------------------------------------------------------------------------------------- */
html body .elementor-element.animated,
html body .elementor-element.animated-slow {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* ------------------------------------------------------------------------------------------
 * 5. Footer — forest (direction A), reversed logo from the approved logo pack, cream text, gold
 *    column headings, clear columns. The footer is an ElementsKit template directly under #page,
 *    not inside Astra's #colophon.
 * ---------------------------------------------------------------------------------------- */
html body #page .ekit-template-content-footer {
    background: linear-gradient(180deg, #0F3D24 0%, #0B2E1B 100%) !important;
    border-top: 3px solid var(--kvs-gold) !important;
    margin-top: 0 !important;
}
html body #page .ekit-template-content-footer .elementor-573,
html body #page .ekit-template-content-footer .elementor-573 .e-con,
html body #page .ekit-template-content-footer .elementor-573 .e-con-inner {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
html body #page .ekit-template-content-footer .elementor-573 > .e-con {
    padding-top: 40px !important;
    padding-bottom: 24px !important;
}
/* Logo block: no white card; top-aligned with the other columns, icons left-aligned with the text. */
html body #page .ekit-template-content-footer .elementor-573 .e-con:has(> .elementor-widget-image) {
    padding: 0 !important;
    border: 0 !important;
    align-items: flex-start !important;
    text-align: left !important;
}
html body #page .ekit-template-content-footer .elementor-573 .e-con:has(> .elementor-widget-heading) {
    padding-top: 0 !important;
}
html body #page .ekit-template-content-footer .elementor-573 .elementor-social-icons-wrapper {
    justify-content: flex-start !important;
    gap: 8px !important;
}
/* The icon widget itself was centred inside the column; pin it to the left edge with the text. */
@media (min-width: 922px) {
    html body #page .ekit-template-content-footer .elementor-573 .elementor-widget-social-icons {
        align-self: flex-start !important;
        width: auto !important;
        margin-left: 0 !important;
        text-align: left !important;
        --justify-content: flex-start;
    }
    html body #page .ekit-template-content-footer .elementor-573 .elementor-widget-social-icons .elementor-widget-container {
        display: flex !important;
        justify-content: flex-start !important;
    }
}
@media (max-width: 921px) {
    html body #page .ekit-template-content-footer .elementor-573 .e-con:has(> .elementor-widget-image) { align-items: center !important; text-align: center !important; }
    html body #page .ekit-template-content-footer .elementor-573 .elementor-social-icons-wrapper { justify-content: center !important; }
}
/* Logo: the approved reversed lockup (white wordmark) on forest; same <img>, file swapped by CSS. */
html body #page .ekit-template-content-footer .elementor-573 .elementor-widget-image img {
    content: url("img/kalviro-logo-reversed.svg");
    height: 40px !important;
    width: auto !important;
    max-width: none !important;
}
/* Column headings: serif, gold. */
html body #page .ekit-template-content-footer .elementor-573 .elementor-heading-title {
    font-family: var(--kvs-font-display) !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    color: var(--kvs-gold) !important;
    margin-bottom: 4px !important;
}
/* Text and links: cream. */
html body #page .ekit-template-content-footer .elementor-573 p,
html body #page .ekit-template-content-footer .elementor-573 .elementor-icon-list-text,
html body #page .ekit-template-content-footer .elementor-573 [data-id="b8bc0b3"] p,
html body #page .ekit-template-content-footer .elementor-573 [data-id="b8bc0b3"] a {
    color: #E9E2CF !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
}
html body #page .ekit-template-content-footer .elementor-573 a { color: #E9E2CF !important; text-decoration: none !important; }
html body #page .ekit-template-content-footer .elementor-573 a:hover,
html body #page .ekit-template-content-footer .elementor-573 a:hover .elementor-icon-list-text {
    color: #fff !important;
    text-decoration: underline !important;
    text-decoration-color: var(--kvs-gold) !important;
    text-underline-offset: 3px;
}
html body #page .ekit-template-content-footer .elementor-573 .elementor-icon-list-item { padding-bottom: 6px !important; }
html body #page .ekit-template-content-footer .elementor-573 .elementor-icon-list-icon i,
html body #page .ekit-template-content-footer .elementor-573 .elementor-icon-list-icon svg {
    color: var(--kvs-gold) !important;
    fill: var(--kvs-gold) !important;
}
/* Social icons: gold-outlined rings, 36px. */
html body #page .ekit-template-content-footer .elementor-573 .elementor-social-icon {
    width: 36px !important;
    height: 36px !important;
    font-size: 15px !important;
    background: transparent !important;
    border: 1px solid rgba(201, 162, 39, .6) !important;
    color: #E9E2CF !important;
    text-decoration: none !important;
}
html body #page .ekit-template-content-footer .elementor-573 .elementor-social-icon svg { fill: #E9E2CF !important; }
html body #page .ekit-template-content-footer .elementor-573 .elementor-social-icon:hover { background: rgba(201, 162, 39, .18) !important; }
/* Legal links row and registration lines: separated by a rule, smaller and softer. */
html body #page .ekit-template-content-footer .kvl-footer-legal-nav {
    border-top: 1px solid rgba(233, 226, 207, .18) !important;
    padding-top: 18px !important;
    margin-top: 8px !important;
}
html body #page .ekit-template-content-footer .kvl-footer-legal-nav a {
    color: #E9E2CF !important;
    font-size: 14px !important;
}
html body #page .ekit-template-content-footer .kvl-footer-legal-sep {
    color: rgba(233, 226, 207, .5) !important;
    font-size: 14px !important;
}
html body #page .ekit-template-content-footer .elementor-573 .e-con:has(.kvl-footer-legal-nav) + .e-con p,
html body #page .ekit-template-content-footer .elementor-573 .e-con:has(.kvl-footer-legal-nav) + .e-con a {
    color: rgba(233, 226, 207, .85) !important;
    font-size: 13px !important;
}
/* Astra's own copyright bar, if present. */
html body #colophon .site-below-footer-wrap,
html body #colophon .ast-small-footer {
    background: var(--kvs-subtle) !important;
    color: var(--kvs-muted) !important;
}

/* ------------------------------------------------------------------------------------------
 * 6. Login / register card (/login/, /register/). Same text and steps; new layout.
 * ---------------------------------------------------------------------------------------- */
html body.kvl-ia-on #content,
html body.kvl-ia-on .site-content {
    background: var(--kvs-subtle);
}
html body.kvl-ia-on #primary {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 56px 0 72px !important;
}
html body.kvl-ia-on .custom-login-wrapper.kvl-auth {
    width: min(100%, 460px) !important;
    max-width: 460px !important;
    margin: 0 auto !important;
    padding: 40px 36px 32px !important;
    background: #fff !important;
    border: 1px solid var(--kvs-line) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 24px rgba(15, 61, 36, .08) !important;
    box-sizing: border-box !important;
}
@media (max-width: 520px) {
    html body.kvl-ia-on #primary { padding: 24px 0 40px !important; }
    html body.kvl-ia-on .custom-login-wrapper.kvl-auth { padding: 28px 20px 24px !important; border-radius: 10px !important; }
}

/* Card text uses the UI font (style.css sets Manrope→Arial on these with page-specific selectors). */
html body.kvl-design-v2.kvl-ia-on .kvl-auth :is(p, span, label, input, button, a, div):not(.kvl-ia-title) {
    font-family: var(--kvs-font-ui) !important;
}

/* Step bar: email → code → details. */
html body .kvl-ia .kvl-ia-steps {
    display: flex;
    gap: 6px;
    margin: 0 0 24px;
}
html body .kvl-ia .kvl-ia-steps span {
    flex: 1;
    height: 4px;
    border-radius: 4px;
    background: rgba(201, 162, 39, .28); /* steps still to come: soft gold, not grey (7.20) */
    transition: background-color .2s ease;
}
html body .kvl-ia[data-kvl-ia-step="email"] .kvl-ia-steps span:nth-child(1),
html body .kvl-ia[data-kvl-ia-step="otp"] .kvl-ia-steps span:nth-child(-n+2),
html body .kvl-ia[data-kvl-ia-step="profile"] .kvl-ia-steps span { background: var(--kvs-green); }
html body .kvl-ia:not([data-kvl-ia-step]) .kvl-ia-steps span:nth-child(1) { background: var(--kvs-green); }

html body .kvl-ia .kvl-ia-title {
    margin: 0 0 8px !important;
    font-family: var(--kvs-font-display) !important;
    font-size: 28px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -.01em !important;
    color: var(--kvs-forest) !important;
}
@media (max-width: 480px) { html body .kvl-ia .kvl-ia-title { font-size: 24px !important; } }
/* Code and details steps hide the intro line; keep air under the heading. */
html body .kvl-ia[data-kvl-ia-step="otp"] .kvl-ia-title,
html body .kvl-ia[data-kvl-ia-step="profile"] .kvl-ia-title { margin-bottom: 20px !important; }
html body .kvl-ia .kvl-ia-lead,
html body .kvl-ia .kvl-ia-hint {
    margin: 0 0 22px !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    color: var(--kvs-muted) !important;
}
html body .kvl-ia .kvl-ia-label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--kvs-ink) !important;
    margin-bottom: 6px !important;
}
html body .kvl-ia input[type="text"],
html body .kvl-ia input[type="email"],
html body .kvl-ia input[type="tel"] {
    min-height: 50px !important;
    padding: 12px 14px !important;
    border: 1.5px solid #CBD3CE !important;
    border-radius: 8px !important;
    font-size: 16px !important; /* 16px stops iOS zooming into the field */
    color: var(--kvs-ink) !important;
    background: #fff !important;
}
html body .kvl-ia input:focus {
    border-color: var(--kvs-green) !important;
    box-shadow: 0 0 0 3px rgba(31, 107, 58, .15) !important;
    outline: none !important;
}
html body .kvl-ia .kvl-ia-otp {
    min-height: 58px !important;
    font-size: 26px !important;
    font-weight: 600 !important;
    letter-spacing: .5em !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums;
    padding-left: .5em !important; /* balances the trailing letter-space */
}
html body .kvl-auth.kvl-ia .kvl-ia-submit,
html body .kvl-auth .kvl-ia .kvl-ia-submit,
html body.kvl-ia-on .kvl-auth .button-login {
    width: 100% !important;
    min-height: 52px !important;
    margin: 6px 0 0 !important; /* a mobile rule elsewhere added 72px below the button */
    border-radius: 10px !important;
    border: 0 !important;
    background: var(--kvs-green) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}
html body .kvl-auth.kvl-ia .kvl-ia-submit:hover,
html body .kvl-auth .kvl-ia .kvl-ia-submit:hover,
html body.kvl-ia-on .kvl-auth .button-login:hover {
    background: var(--kvs-green-hover) !important;
    color: #fff !important;
}
html body .kvl-ia .kvl-ia-submit:disabled { opacity: .7 !important; cursor: wait !important; }
/* Code step: "Use a different email" left, "Resend code" right, under the button. */
html body .kvl-ia .kvl-ia-form--otp:not([hidden]) {
    display: grid !important;
    grid-template-columns: 1fr auto;
    column-gap: 12px;
}
html body .kvl-ia .kvl-ia-form--otp > * { grid-column: 1 / -1; }
html body .kvl-ia .kvl-ia-form--otp > .kvl-ia-back { grid-column: 1; grid-row: 10; text-align: left !important; }
html body .kvl-ia .kvl-ia-form--otp > .kvl-ia-resend { grid-column: 2; grid-row: 10; text-align: right !important; }
html body .kvl-ia .kvl-ia-resend,
html body .kvl-ia .kvl-ia-back {
    width: auto !important;
    margin: 14px 0 0 !important;
    padding: 6px 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--kvs-green) !important;
    background: none !important;
    border: 0 !important;
}
html body .kvl-ia .kvl-ia-resend:hover:not(:disabled),
html body .kvl-ia .kvl-ia-back:hover { text-decoration: underline !important; text-underline-offset: 3px; }
html body .kvl-ia .kvl-ia-resend:disabled { color: var(--kvs-muted) !important; text-decoration: none !important; }
html body .kvl-ia .kvl-ia-msg { border-radius: 8px !important; font-size: 14px !important; }
html body .kvl-ia .kvl-ia-msg.is-error { background: #FDF0EE !important; color: #8A1F11 !important; border: 1px solid #F3C7BF; }
html body .kvl-ia .kvl-ia-msg.is-ok { background: #EEF6F0 !important; color: var(--kvs-forest) !important; border: 1px solid #CFE3D5; }

/* Respect reduced motion. */
@media (prefers-reduced-motion: reduce) {
    html body #masthead *,
    html body .kvl-ia * { transition: none !important; }
}

/* ==========================================================================================
 * 7. KALVIRO LOOK (owner approved 14 Oct 2026)
 *    Floating header with centred tree mark · trust strip below it · cream page, no white panels ·
 *    hairlines between sections · large light Source Serif headings · forest instead of bright green.
 *    Surfaces and headings are styled through tags added by inc/design-v2.php while each Elementor
 *    element renders (kvl-surface-band / -card / -brand, kvl-heading-brand), so no element IDs.
 *    Deliberate exception: form fields stay white so people can see where to type.
 * ========================================================================================== */
:root {
    --kc-cream: #F8F5EB;       /* page */
    --kc-panel: #F1ECDC;       /* deeper cream: panels that need separation, footer, table stripes */
    --kc-forest: #0F3D24;
    --kc-green: #1F6B3A;
    --kc-gold: #C9A227;
    --kc-ink: #1E293B;
    --kc-muted: #5C6560;
    --kc-hair: rgba(15, 61, 36, .16);
    --kc-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
    /* Direction A ("Forest rhythm"), brand-kit colours only. */
    --kc-wash: #F5EDD6;        /* gold wash: call-to-action panels, trust strip, story band */
    --kc-ivory: #FFFAEB;       /* cards */
    --kc-mid: #185A32;         /* green mid: start of forest gradients */
    --kc-deep: #0B2E1B;        /* end of forest gradients */
    --kc-cream-text: #E9E2CF;  /* body text on forest */
    --kc-gold-hair: rgba(201, 162, 39, .4);
}

/* 7.1 Page surface: cream with a barely visible paper grain on the page itself; every wrapper and
   article sheet above it is transparent so the grain shows through. */
html body.kvl-design-v2,
html body.kvl-design-v2 #page {
    background: var(--kc-cream) url("img/paper-grain.svg") !important;
}
html body.kvl-design-v2 #content,
html body.kvl-design-v2 .site-content,
html body.kvl-design-v2 .ast-container,
html body.kvl-design-v2.ast-separate-container,
html body.kvl-design-v2.ast-separate-container .ast-article-single,
html body.kvl-design-v2.ast-separate-container .ast-article-post,
html body.kvl-design-v2.ast-separate-container .comments-area,
html body.kvl-design-v2.ast-separate-container .ast-author-box,
html body.kvl-design-v2.ast-separate-container .ast-archive-description,
html body.kvl-design-v2 article.type-normal-page,
html body.kvl-design-v2 article.type-post,
html body.kvl-design-v2 article.type-page,
html body.kvl-design-v2.kvl-ia-on #content,
html body.kvl-design-v2.kvl-ia-on .site-content {
    background: transparent !important;
    background-color: transparent !important;
}

/* 7.2 Floating header; the trust strip sits directly below it. */
/* The frosted glass lives on ::before, never on #masthead itself: a backdrop-filter (or transform)
   on the header makes it the containing block for position:fixed children, which trapped the
   ElementsKit phone/tablet menus inside the header bar. */
html body #masthead {
    top: 12px !important;
    margin: 12px 16px 0 !important;
    background: transparent !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    transform: none !important;
    filter: none !important;
    isolation: isolate;
    border: 1px solid rgba(15, 61, 36, .08);
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(15, 61, 36, .10) !important;
}
html body #masthead::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: rgba(250, 247, 238, .9);
    -webkit-backdrop-filter: saturate(1.3) blur(14px);
    backdrop-filter: saturate(1.3) blur(14px);
    pointer-events: none;
}
html body.admin-bar #masthead { top: 44px !important; }
html body #masthead .elementor-4091 > .e-con,
html body #masthead .elementor-4091 .e-con-inner {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 14px !important;
}
html body #masthead .elementor-4091 > .e-con { min-height: 0 !important; padding-top: 6px !important; padding-bottom: 6px !important; }
@media (max-width: 1024px) {
    html body #masthead { margin: 10px 10px 0 !important; top: 10px !important; border-radius: 12px; }
}
html body.kvl-design-v2 #page > .kvl-header-band { margin-top: 6px !important; position: relative; z-index: 1; }
html body.kvl-design-v2 .kvl-header-band .kvl-trust-strip.kvl-trust-strip {
    background: var(--kc-wash) !important;
    border-top: 1px solid rgba(201, 162, 39, .35) !important;
    border-bottom: 1px solid rgba(201, 162, 39, .35) !important;
    font-weight: 600 !important;
    font-size: 12.5px !important;
    letter-spacing: .02em !important;
    color: var(--kc-forest) !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}
/* Slide-out menus (tablet and phone) on cream, not white. */
@media (max-width: 1024px) {
    html body .elementskit-menu-offcanvas-elements.elementskit-menu-offcanvas-elements,
    html body .ekit-sidebar-group .ekit-sidebar-widget { background: var(--kc-cream) !important; }
}

/* Menu: serif, no boxes, gold underline for hover and the current page. */
@media (min-width: 1024.01px) {
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a {
        font-family: var(--kc-serif) !important;
        font-weight: 400 !important;
        font-size: 16px !important;
        color: var(--kc-forest) !important;
        background: transparent !important;
        padding: 8px 10px !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a:hover {
        color: var(--kc-green) !important;
        background: transparent !important;
        text-decoration: underline !important;
        text-underline-offset: 6px;
        text-decoration-color: var(--kc-gold) !important;
    }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li.current-menu-item > a,
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li.current_page_item > a {
        box-shadow: none !important;
        border-radius: 8px !important;
        text-decoration: underline !important;
        text-underline-offset: 6px;
        text-decoration-thickness: 2px;
        text-decoration-color: var(--kc-gold) !important;
    }
    /* Header buttons: Login / Register outlined, Book A Meeting the one filled call to action. */
    html body.kvl-design-v2 #masthead a.register-button.register-button:not(.kvl-account-dashboard) {
        background: transparent !important;
        color: var(--kc-green) !important;
        border-color: rgba(31, 107, 58, .45) !important;
    }
    html body.kvl-design-v2 #masthead a.register-button.register-button:not(.kvl-account-dashboard):hover {
        background: rgba(31, 107, 58, .06) !important;
        border-color: var(--kc-green) !important;
    }
    html body.kvl-design-v2 #masthead a.register-button.register-button,
    html body.kvl-design-v2 #masthead a.logout-button.logout-button,
    html body.kvl-design-v2 #masthead .elementor-widget-button .elementor-button.elementor-button-link.elementor-button-link {
        min-height: 40px !important;
        padding: 0 16px !important;
        font-size: 14px !important;
    }
}
/* Desktop: full logo on the left, menu and buttons on the right (7.21, owner feedback:
   the centred tree mark looked misplaced; brand rule: symbol alone only where the name is clear). */
@media (min-width: 1025px) {
    html body #masthead .elementor-4091 .e-con:has(> .elementor-widget-ekit-nav-menu) {
        position: static !important;
        flex: 1 1 auto !important;
        justify-content: flex-end !important;
        padding-left: 0 !important;
        order: 1 !important;
    }
    html body #masthead .elementor-4091 > .e-con > .e-con-inner > .e-con { position: relative !important; }
    html body #masthead .elementor-4091 .e-con:has(> .elementor-widget-image) {
        position: static !important;
        order: 0 !important;
        flex: 0 0 auto !important;
        width: auto !important;
        margin-right: 24px !important;
        padding: 0 0 0 10px !important; /* matches the buttons' 10px on the right */
        justify-content: center !important;
        align-self: center !important;
    }
    html body #masthead .elementor-4091 .elementor-element-3949f8e img { height: 34px !important; width: auto !important; max-width: none !important; }
    html body #masthead .elementor-4091 .e-con:has(> .elementor-widget-shortcode),
    html body #masthead .elementor-element.elementor-element-4c2fb14 { order: 2 !important; }
    /* One row of menu items, right-aligned next to the buttons. */
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav { width: 100% !important; justify-content: flex-end !important; }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li:nth-child(7) { margin-left: 0 !important; }
    html body #masthead .elementskit-menu-container,
    html body #masthead .elementor-widget-ekit-nav-menu,
    html body #masthead .elementor-widget-ekit-nav-menu .ekit-wid-con { width: 100% !important; }
}
/* Laptops: the serif menu above overrode the compact tiers near the top of this file, so the
   menu ran over the logo and buttons below 1340px. Smaller sizes here keep it on one line. */
@media (min-width: 1025px) and (max-width: 1339px) {
    html body #masthead .elementor-4091 .e-con:has(> .elementor-widget-image) { margin-right: 16px !important; }
    html body #masthead .e-con:has(> .elementor-widget-ekit-nav-menu) { padding-left: 0 !important; padding-right: 8px !important; }
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a { font-size: 15px !important; padding: 8px 6px !important; }
    html body.kvl-design-v2 #masthead a.register-button.register-button,
    html body.kvl-design-v2 #masthead a.logout-button.logout-button,
    html body.kvl-design-v2 #masthead .elementor-widget-button .elementor-button.elementor-button-link.elementor-button-link { padding: 0 14px !important; }
}
/* Below 1240px (1440px when signed in: wider account buttons) the full logo would have to drop
   under its 180px minimum to fit, so the tree mark stands alone there. */
@media (min-width: 1025px) and (max-width: 1239px) {
    html body #masthead .elementor-4091 .elementor-widget-image { width: 40px !important; }
    html body #masthead .elementor-4091 .elementor-element-3949f8e img { opacity: 0 !important; width: 40px !important; height: 40px !important; }
    html body #masthead .elementor-4091 .elementor-widget-image a {
        display: block;
        width: 40px;
        height: 40px;
        background: url("img/kalviro-symbol-green.svg") center / contain no-repeat;
    }
}
@media (min-width: 1025px) and (max-width: 1439px) {
    html body #masthead:has(.kvl-account-actions) .elementor-4091 .elementor-widget-image { width: 40px !important; }
    html body #masthead:has(.kvl-account-actions) .elementor-4091 .elementor-element-3949f8e img { opacity: 0 !important; width: 40px !important; height: 40px !important; }
    html body #masthead:has(.kvl-account-actions) .elementor-4091 .elementor-widget-image a {
        display: block;
        width: 40px;
        height: 40px;
        background: url("img/kalviro-symbol-green.svg") center / contain no-repeat;
    }
}
/* 1366px and wider: logo and buttons line up with the page text edges (20px inside the 1300px box). */
@media (min-width: 1340px) {
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 9px !important; }
}
@media (min-width: 1366px) {
    html body #masthead .elementor-4091 .e-con:has(> .elementor-widget-image) { padding-left: 20px !important; }
    html body #masthead .elementor-element.elementor-element-4c2fb14 { padding-right: 20px !important; }
}
@media (min-width: 1440px) {
    html body #masthead:has(.kvl-account-actions) #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 7px !important; }
}
@media (min-width: 1025px) and (max-width: 1179px) {
    html body #masthead #menu-primary#menu-primary.elementskit-navbar-nav > li > a { padding: 8px 5px !important; }
    html body.kvl-design-v2 #masthead a.register-button.register-button,
    html body.kvl-design-v2 #masthead a.logout-button.logout-button,
    html body.kvl-design-v2 #masthead .elementor-widget-button .elementor-button.elementor-button-link.elementor-button-link { padding: 0 12px !important; font-size: 13px !important; }
}

/* 7.3 Headings: light Source Serif everywhere; forest + display size on tagged (brand) headings.
   Headings with their own light colour (white on green bands) keep colour and size. */
html body.kvl-design-v2 #content .elementor-widget-heading .elementor-heading-title,
html body.kvl-design-v2 #page .entry-content h1,
html body.kvl-design-v2 #page .entry-content h2,
html body.kvl-design-v2 #page .entry-content h3,
html body.kvl-design-v2 #page .entry-title {
    font-family: var(--kc-serif) !important;
    font-weight: 400 !important;
    letter-spacing: -.01em !important;
}
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] > .e-con:first-child .elementor-widget-heading h1.elementor-heading-title {
    font-size: clamp(34px, 4.6vw, 62px) !important;
    line-height: 1.1 !important;
    letter-spacing: -.015em !important;
}
/* Brand colour and display size only below the hero (the first section is always dark: theme hero CSS). */
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] > .e-con:not(:first-child) .elementor-widget-heading.kvl-heading-brand h2.elementor-heading-title {
    font-size: clamp(28px, 3.4vw, 46px) !important;
    line-height: 1.12 !important;
    letter-spacing: -.015em !important;
    color: var(--kc-forest) !important;
}
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] > .e-con:not(:first-child) .elementor-widget-heading.kvl-heading-brand h3.elementor-heading-title,
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] > .e-con:not(:first-child) .elementor-widget-heading.kvl-heading-brand h4.elementor-heading-title {
    font-size: clamp(21px, 2vw, 28px) !important;
    line-height: 1.2 !important;
    color: var(--kc-forest) !important;
}
/* Blog-post headings written in the editor (direct children of the article body only — Elementor
   pages also sit inside .entry-content and must keep their own heading colours). */
html body.kvl-design-v2 #page .entry-content > h2,
html body.kvl-design-v2 #page .entry-content > h3 { color: var(--kc-forest) !important; }

/* 7.4 Surfaces (tags from inc/design-v2.php). */
html body.kvl-design-v2 #content .e-con.kvl-surface-band,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-band {
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #content .e-con.kvl-surface-band:not(:first-child),
html body.kvl-design-v2 #content .elementor-section.kvl-surface-band:not(:first-child) {
    border-top: 1px solid var(--kc-hair) !important;
}
/* Cards: ivory with a fine gold edge. */
html body.kvl-design-v2 #content .e-con.kvl-surface-card,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-card {
    background: var(--kc-ivory) !important;
    background-color: var(--kc-ivory) !important;
    box-shadow: none !important;
    border: 1px solid var(--kc-gold-hair) !important;
    border-radius: 6px !important;
}
html body.kvl-design-v2 #content .kvl-surface-band .elementor-widget-text-editor,
html body.kvl-design-v2 #content .kvl-surface-card .elementor-widget-text-editor {
    color: var(--kc-ink) !important;
}

/* Call-to-action panels (were bright-green bands): gold wash, forest text, fine gold frame. */
html body.kvl-design-v2 #content .e-con.kvl-surface-brand,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-brand {
    background: var(--kc-wash) !important;
    background-image: none !important;
    border: 1px solid var(--kc-gold-hair) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-heading-title,
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-widget-text-editor,
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-widget-text-editor :is(p, li, span, strong, a),
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-icon-list-text,
html body.kvl-design-v2 #content .kvl-surface-brand :is(.elementor-image-box-title, .elementor-icon-box-title),
html body.kvl-design-v2 #content .kvl-surface-brand :is(.elementor-image-box-title, .elementor-icon-box-title) a,
html body.kvl-design-v2 #content .kvl-surface-brand :is(.elementor-image-box-description, .elementor-icon-box-description),
html body.kvl-design-v2 #content .kvl-surface-brand :is(.elementor-image-box-description, .elementor-icon-box-description) :is(p, span, strong, a),
html body.kvl-design-v2 #content .kvl-surface-brand .forminator-label,
html body.kvl-design-v2 #content .kvl-surface-brand label {
    color: var(--kc-forest) !important;
}
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-widget-heading h3.elementor-heading-title {
    font-style: italic !important;
    color: var(--kc-green) !important;
}
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-icon-list-icon svg,
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-social-icon svg { fill: var(--kc-forest) !important; }

/* Feature sections (were ivory "why choose" bands): forest with cream text and gold-edged cards. */
html body.kvl-design-v2 #content .e-con.kvl-surface-feature,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-feature {
    background: url("img/guilloche-rosette-faint.svg") no-repeat right -230px top -250px / 500px,
                linear-gradient(160deg, var(--kc-mid) 0%, var(--kc-forest) 55%, var(--kc-deep) 100%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}
/* Specificity note: must beat 7.3's brand-heading rule (1,8,3), hence the doubled classes. */
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-heading-title,
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] .kvl-surface-feature.kvl-surface-feature .elementor-widget-heading.kvl-heading-brand.kvl-heading-brand .elementor-heading-title.elementor-heading-title {
    color: #fff !important;
}
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-widget-text-editor,
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-widget-text-editor :is(p, li, span),
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-icon-list-text,
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-image-box-description, .elementor-icon-box-description),
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-image-box-description, .elementor-icon-box-description) :is(p, span) {
    color: var(--kc-cream-text) !important;
}
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-image-box-title, .elementor-icon-box-title),
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-image-box-title, .elementor-icon-box-title) a {
    color: #fff !important;
}
/* Catch-all for widgets not styled above (future content): inherited text turns cream and common
   widget titles white. Tables and form fields keep their own light panels, so they are left alone. */
html body.kvl-design-v2 #content .e-con.kvl-surface-feature,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-feature,
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-widget-html, .elementor-widget-shortcode, .elementor-accordion, .elementor-toggle, .e-n-accordion, .elementor-tabs, .e-n-tabs, .elementor-counter, .elementor-testimonial-wrapper, [class*="elementor-widget-elementskit"], [class*="elementor-widget-ekit"]) {
    color: var(--kc-cream-text);
}
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-tab-title, .elementor-accordion-title, .elementor-toggle-title, .e-n-accordion-item-title-text, .e-n-tab-title-text, .elementor-counter-title, .elementor-counter-number-wrapper, .ekit-heading--title, .elementskit-info-box-title, .elementskit-section-title, .ekit-accordion-title) {
    color: #fff !important;
}
html body.kvl-design-v2 #content .kvl-surface-feature :is(.elementor-tab-content, .elementor-toggle-content, .e-n-accordion-item > [role="region"], .elementskit-info-box-desc, .ekit-heading__description) :is(p, li, span):not(:where(table *)) {
    color: var(--kc-cream-text) !important;
}
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-widget-text-editor :is(strong, b) { color: #fff !important; }
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-widget-text-editor a { color: #fff !important; text-decoration-color: var(--kc-gold) !important; }
html body.kvl-design-v2 #content .kvl-surface-feature .e-con.kvl-surface-card,
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-section.kvl-surface-card {
    background: rgba(255, 255, 255, .04) !important;
    border: 1px solid rgba(201, 162, 39, .45) !important;
}
html body.kvl-design-v2 #content .kvl-surface-feature .kvl-surface-card .elementor-widget-text-editor { color: var(--kc-cream-text) !important; }
/* Card numbers ("01.", "02." …): a heading directly followed by another heading reads as a gold italic numeral. */
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] .kvl-surface-feature.kvl-surface-feature .elementor-widget-heading.elementor-widget-heading:has(+ .elementor-widget-heading) .elementor-heading-title.elementor-heading-title.elementor-heading-title {
    color: var(--kc-gold) !important;
    font-style: italic !important;
}
/* Buttons inside forest sections: gold, so they don't vanish green-on-green. */
html body.kvl-design-v2 #content .kvl-surface-feature .elementor-widget-button a.elementor-button.elementor-button-link.elementor-button-link,
html body.kvl-design-v2 #content .kvl-surface-feature a.product-dashboard.product-dashboard {
    background: var(--kc-gold) !important;
    border-color: var(--kc-gold) !important;
    color: var(--kc-forest) !important;
}

/* 7.5 Theme modules and plugin blocks that painted white or grey. */
html body.kvl-design-v2 #page aside.kvl-seo-link-module,
html body.kvl-design-v2 #page p.kvl-legal-intro,
html body.kvl-design-v2 #page .elementskit-faq-header {
    background: var(--kc-panel) !important;
    background-color: var(--kc-panel) !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #page aside.kvl-seo-link-module { border: 1px solid var(--kc-hair) !important; }
/* Blog grid cards. */
html body.kvl-design-v2 #page .rt-holder.tpg-post-holder {
    background: transparent !important;
    box-shadow: none !important;
    border: 1px solid var(--kc-hair) !important;
    border-radius: 6px !important;
    overflow: hidden;
}
/* Tables: cream rows, deeper-cream stripes, forest header row, hairlines (no white sheet). */
html body.kvl-design-v2 #page .kv-table-wrap,
html body.kvl-design-v2 #page figure.wp-block-table,
html body.kvl-design-v2 #page .wp-block-table {
    background: transparent !important;
    box-shadow: none !important;
    border: 1px solid var(--kc-hair) !important;
}
html body.kvl-design-v2 #page .kv-table-wrap table td,
html body.kvl-design-v2 #page .wp-block-table td {
    background-color: transparent !important;
}
html body.kvl-design-v2 #page .kv-table-wrap table tbody tr:nth-child(even) td,
html body.kvl-design-v2 #page .wp-block-table tbody tr:nth-child(even) td {
    background-color: var(--kc-panel) !important;
}
html body.kvl-design-v2 #page .wp-block-table thead th {
    background: var(--kc-forest) !important;
}
/* TablePress tables (e.g. GIFT City comparison). */
html body.kvl-design-v2 #page .tablepress {
    border: 1px solid var(--kc-hair) !important;
}
html body.kvl-design-v2 #page .tablepress > :where(thead, tbody, tfoot) > tr > * {
    background-color: transparent !important;
    border-color: var(--kc-hair) !important;
}
html body.kvl-design-v2 #page .tablepress > tbody > tr:nth-child(even) > * {
    background-color: var(--kc-panel) !important;
}
html body.kvl-design-v2 #page .tablepress > thead > tr > th {
    background-color: var(--kc-forest) !important;
    color: #fff !important;
}
/* PMS fund list: phone card view, returns strip, and the intro line under the table title. */
html body.kvl-design-v2 #page .kv-card {
    background: transparent !important;
    box-shadow: none !important;
    border: 1px solid var(--kc-hair) !important;
}
html body.kvl-design-v2 #page .kv-returns { background: var(--kc-panel) !important; }
html body.kvl-design-v2 #page .kv-header p { color: var(--kc-muted) !important; }
/* Blog post date/author box. */
html body.kvl-design-v2 #page .kvl-post-meta { background: var(--kc-panel) !important; }
/* Some post headings carry <strong> in the saved content (converter output); headings are already
   headings, so the inner bold is neutralised to keep every heading the same light serif. */
html body.kvl-design-v2 #page .entry-content :is(h1, h2, h3, h4) :is(strong, b) {
    font-weight: inherit !important;
}
/* Blog grid pagination (The Post Grid): forest for the current page, cream boxes for the rest. */
html body.kvl-design-v2 #page .rt-pagination .pagination-list li > :is(a, span) {
    background: transparent !important;
    border: 1px solid var(--kc-hair) !important;
    color: var(--kc-forest) !important;
    border-radius: 6px !important;
}
html body.kvl-design-v2 #page .rt-pagination .pagination-list li.active > span,
html body.kvl-design-v2 #page .rt-pagination .pagination-list li > a:hover {
    background: var(--kc-forest) !important;
    border-color: var(--kc-forest) !important;
    color: #fff !important;
}
/* Blog lead popup: ivory dialog with a gold edge. */
html body.kvl-design-v2 .kvl-blog-lead__dialog {
    background: var(--kc-ivory) !important;
    border: 1px solid var(--kc-gold-hair) !important;
}
/* Form fields: warm white (not stark white) with a visible forest edge, so they still read as fields. */
html body .kvl-ia input[type="text"],
html body .kvl-ia input[type="email"],
html body .kvl-ia input[type="tel"],
html body.kvl-design-v2 #content .forminator-ui .forminator-input,
html body.kvl-design-v2 #content .forminator-ui .forminator-textarea {
    background: #FFFDF6 !important;
    border-color: rgba(201, 162, 39, .6) !important; /* soft gold (was grey-green; 7.18) */
}
/* Partner logos and registration badges are JPG/WebP files on white: multiply drops the white box
   so each logo sits on the cream page (coloured ink is unchanged). The swiper track is transformed
   (its own blend group), so each slide gets the page cream to blend against. */
/* White background overlays (Elementor's ::before wash; tagged in inc/design-v2.php) turn cream. */
html body.kvl-design-v2 #content .e-con.kvl-overlay-light::before,
html body.kvl-design-v2 #content .elementor-section.kvl-overlay-light > .elementor-background-overlay {
    background-color: var(--kc-cream, #F8F5EB) !important;
    background-image: none !important;
}
html body.kvl-design-v2 #content .elementor-widget-image-carousel .swiper-slide {
    background: var(--kc-cream, #F8F5EB);
}
html body.kvl-design-v2 #content .elementor-widget-image-carousel img.swiper-slide-image,
html body.kvl-design-v2 #content .elementor-widget-image img[alt*="Startup India" i],
html body.kvl-design-v2 #content .elementor-widget-image img[alt*="MSME" i] {
    mix-blend-mode: multiply;
}

/* 7.6 Homepage polish (page-specific on purpose: these touches only make sense there). */
html body.kvl-design-v2.home #content .elementor-widget-heading.kvl-heading-brand:has(h2) + .elementor-widget-heading.kvl-heading-brand h3.elementor-heading-title {
    font-style: italic !important;
    font-size: clamp(18px, 1.6vw, 22px) !important;
    color: var(--kc-green) !important;
}

/* 7.7 Hero on every page (the first section): forest with a faint guilloche rosette. The old photo
   slideshow is hidden and Elementor's leftover "multiply" blend is reset, or the art goes dark. */
html body.kvl-design-v2.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
    background-image: url("img/guilloche-rosette-faint.svg"), linear-gradient(135deg, #0F3D24 0%, #071C11 100%) !important;
    background-repeat: no-repeat, no-repeat !important;
    background-position: right -170px top -190px, center !important;
    background-size: 440px, cover !important;
    background-blend-mode: normal !important;
}
html body.kvl-design-v2.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child > .elementor-background-slideshow {
    display: none !important;
}
/* Homepage hero: the engraved Kalpavriksha on the right, headline and buttons left-aligned.
   Welcome motion (owner choice 14 Oct 2026, replaces the old photo slideshow): the -motion SVGs
   grow the tree, unfurl the leaves, glint the gold and turn the rosette once (~5 s and 12 s),
   then hold still. The motion lives inside the SVG files (build script:
   Claude outputs/website-redesign-2026-10/hero-motion/build_hero_motion.py). */
html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
    background-image: url("img/tree-engraved-reversed-motion.svg"), url("img/guilloche-rosette-cream-motion.svg"), linear-gradient(135deg, #0F3D24 0%, #071C11 100%) !important;
    background-repeat: no-repeat, no-repeat, no-repeat !important;
    background-position: right 6% bottom -10px, right -140px top -160px, center !important;
    background-size: auto 92%, 460px, cover !important;
    min-height: 600px !important;
}
@media (min-width: 1024.01px) {
    html body.kvl-design-v2.home #content .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child > .e-con-inner { align-items: flex-start !important; text-align: left !important; }
    html body.kvl-design-v2.home #content .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .elementor-widget-heading { align-self: flex-start !important; margin-left: 0 !important; margin-right: auto !important; }
    html body.kvl-design-v2.home #content .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .elementor-heading-title { text-align: left !important; max-width: 720px; }
    html body.kvl-design-v2.home #content .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .e-con:has(.elementor-widget-shortcode) { justify-content: flex-start !important; }
}
@media (max-width: 1024px) {
    html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
        background-position: center bottom -10px, right -160px top -160px, center !important;
        background-size: auto 44%, 360px, cover !important;
        min-height: 660px !important;
    }
}
/* Phones: the rosette shrinks, fades and tucks into the corner so no line crosses the headline;
   the headline gets a real side margin; on Home the tree sits in reserved space under the buttons. */
@media (max-width: 767px) {
    html body.kvl-design-v2.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
        background-image: url("img/guilloche-rosette-faint.svg"), linear-gradient(160deg, #0F3D24 0%, #071C11 100%) !important;
        background-position: right -130px top -130px, center !important;
        background-size: 260px, cover !important;
        padding: 44px 22px 40px !important;
    }
    html body.kvl-design-v2.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child .elementor-heading-title {
        overflow-wrap: break-word;
        text-wrap: balance;
    }
    html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
        background-image: url("img/tree-engraved-reversed-motion.svg"), url("img/guilloche-rosette-faint.svg"), linear-gradient(160deg, #0F3D24 0%, #071C11 100%) !important;
        background-position: center bottom -8px, right -120px top -120px, center !important;
        background-size: auto 230px, 260px, cover !important;
        min-height: 0 !important;
        padding: 52px 22px 250px !important;
    }
    html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child > .e-con-inner {
        min-height: 0 !important;
        justify-content: flex-start !important;
    }
}
/* "Reduce motion": still art. Browsers do not pass this setting into SVG backgrounds. */
@media (prefers-reduced-motion: reduce) {
    html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
        background-image: url("img/tree-engraved-reversed.svg"), url("img/guilloche-rosette-cream.svg"), linear-gradient(135deg, #0F3D24 0%, #071C11 100%) !important;
    }
}
@media (prefers-reduced-motion: reduce) and (max-width: 767px) {
    html body.kvl-design-v2.home.elementor-page #page .elementor[data-elementor-type="wp-page"] > .e-con.e-parent:first-child {
        background-image: url("img/tree-engraved-reversed.svg"), url("img/guilloche-rosette-faint.svg"), linear-gradient(160deg, #0F3D24 0%, #071C11 100%) !important;
    }
}
/* Phone/tablet header: logo on the left, menu button flush right (it sat centred in its column). */
@media (max-width: 1024px) {
    html body #masthead .elementor-element.elementor-element-b1cd0be.elementor-element-b1cd0be {
        width: 100% !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin-left: 0 !important;
    }
    /* Logo column: centred on the same line as the menu button (it sat 5px high). */
    html body #masthead .elementor-element.elementor-element-7fbefac9 {
        align-self: center !important;
        justify-content: center !important;
    }
    html body #masthead .elementor-element.elementor-element-37d153cd,
    html body #masthead .e-con:has(> .elementor-widget .ekit-offcanvas-toggle-wraper) {
        margin-left: auto !important;
        justify-content: center !important;
        align-items: flex-end !important;
    }
    html body #masthead .elementor-element.elementor-element-56352cd4 {
        margin-right: 0 !important;
        margin-inline-end: 0 !important;
    }
    /* Both menu buttons (phone off-canvas toggle, tablet nav hamburger) look the same:
       44px ivory square, fine forest edge, three clear forest lines. */
    html body #masthead .ekit_navSidebar-button,
    html body #masthead .elementskit-menu-hamburger {
        width: 44px !important;
        height: 44px !important;
        background: #FFFDF6 !important;
        border: 1px solid rgba(15, 61, 36, .2) !important;
        border-radius: 10px !important;
        box-shadow: none !important;
        color: var(--kc-forest, #0F3D24) !important;
    }
    html body #masthead .elementskit-menu-hamburger {
        display: inline-flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 4px !important;
        padding: 0 !important;
    }
    html body #masthead .elementskit-menu-hamburger .elementskit-menu-hamburger-icon {
        display: block !important;
        width: 18px !important;
        height: 2px !important;
        margin: 0 !important;
        border-radius: 1px !important;
        background: var(--kc-forest, #0F3D24) !important;
        opacity: 1 !important;
    }
}
/* Open menus (phone off-canvas sidebar, tablet nav panel): ivory panel, dimmed page behind,
   serif links on gold hairlines, matching close buttons. */
@media (max-width: 1024px) {
    html body .elementskit-menu-overlay.elementskit-menu-offcanvas-elements {
        background: rgba(7, 28, 17, .55) !important;
    }
    html body #masthead .elementskit-menu-container.elementskit-menu-offcanvas-elements {
        background: var(--kc-ivory, #FFFAEB) !important;
        width: min(360px, 86vw) !important;
        max-width: 86vw !important;
        padding: 18px 26px 32px !important;
        border-right: 1px solid rgba(201, 162, 39, .45) !important;
        box-shadow: 0 0 40px rgba(7, 28, 17, .25) !important;
        overflow-y: auto !important;
    }
    html body #masthead .elementskit-menu-offcanvas-elements #menu-primary#menu-primary.elementskit-navbar-nav > li > a,
    html body #masthead .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a {
        display: block !important;
        padding: 14px 2px !important;
        font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
        font-size: 20px !important;
        font-weight: 400 !important;
        line-height: 1.3 !important;
        color: var(--kc-forest, #0F3D24) !important;
        border-bottom: 1px solid rgba(201, 162, 39, .3) !important;
        background: transparent !important;
    }
    html body #masthead .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li.current-menu-item > a,
    html body #masthead .elementskit-menu-offcanvas-elements .elementskit-navbar-nav > li > a.active {
        color: var(--kc-green, #1F6B3A) !important;
        box-shadow: inset 3px 0 0 #C9A227 !important;
        padding-left: 12px !important;
    }
    html body #masthead .elementskit-menu-offcanvas-elements .elementskit-nav-identity-panel {
        display: flex !important;
        justify-content: flex-end !important;
        padding: 0 0 10px !important;
        border: 0 !important;
    }
    html body #masthead .elementskit-menu-close,
    html body .ekit-sidebar-group .ekit_close-side-widget {
        width: 42px !important;
        height: 42px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
        background: #FFFDF6 !important;
        border: 1px solid rgba(15, 61, 36, .2) !important;
        border-radius: 10px !important;
        box-shadow: none !important;
        color: var(--kc-forest, #0F3D24) !important;
        font-size: 18px !important;
        line-height: 1 !important;
    }
    /* Signed in, the phone menu's two account buttons are too wide side by side: stack them. */
    html body .ekit-sidebar-group .elementor-widget-shortcode:has(.kvl-account-actions) {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
    html body .ekit-sidebar-group .kvl-account-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        width: 100% !important;
    }
    html body .ekit-sidebar-group .kvl-account-actions > a {
        display: flex !important;
        justify-content: center !important;
        width: 100% !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        white-space: nowrap !important;
    }
    /* Phone sidebar links (an Elementor icon list): same serif list as the tablet menu. */
    html body .ekit-sidebar-group .elementor-widget-icon-list,
    html body .ekit-sidebar-group .elementor-widget-icon-list .elementor-icon-list-items {
        width: 100% !important;
        max-width: 100% !important;
    }
    html body .ekit-sidebar-group .elementor-icon-list-items .elementor-icon-list-item {
        margin: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid rgba(201, 162, 39, .3) !important;
    }
    html body.kvl-design-v2 #masthead .ekit-sidebar-group .elementor-icon-list-items .elementor-icon-list-item > a,
    html body .ekit-sidebar-group .elementor-icon-list-items .elementor-icon-list-item > a {
        display: block !important;
        padding: 13px 2px !important;
        font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
        font-size: 20px !important;
        font-weight: 400 !important;
        line-height: 1.3 !important;
        color: var(--kc-forest, #0F3D24) !important;
    }
    html body.kvl-design-v2 #masthead .ekit-sidebar-group .elementor-icon-list-items .elementor-icon-list-item > a .elementor-icon-list-text,
    html body .ekit-sidebar-group .elementor-icon-list-items .elementor-icon-list-item > a .elementor-icon-list-text {
        color: inherit !important;
        font: inherit !important;
    }
    html body .ekit-sidebar-group .ekit_close-side-widget svg {
        width: 18px !important;
        height: 18px !important;
        fill: var(--kc-forest, #0F3D24) !important;
    }
}
/* Tablet header (768-1024px): logo left, then the two buttons, menu button last on the right. */
@media (min-width: 768px) and (max-width: 1024px) {
    /* Same buttons as desktop: Login / Register outlined, Book A Meeting the one filled call to action. */
    html body.kvl-design-v2 #masthead a.register-button.register-button:not(.kvl-account-dashboard) {
        background: transparent !important;
        color: var(--kc-green) !important;
        border: 1px solid rgba(31, 107, 58, .45) !important;
    }
    html body #masthead .elementor-element.elementor-element-634f547 { justify-content: flex-start !important; align-items: center !important; }
    html body #masthead .elementor-element.elementor-element-4c2fb14 { order: 2 !important; margin-left: auto !important; width: auto !important; flex: 0 1 auto !important; justify-content: flex-end !important; }
    html body #masthead .elementor-element.elementor-element-ef7187f { order: 3 !important; width: auto !important; flex: 0 0 auto !important; margin-left: 4px !important; padding-left: 0 !important; justify-content: center !important; align-items: flex-end !important; }
}
/* Phones up to 440px: the first trust-strip row was a few px wider than the screen and got clipped. */
@media (max-width: 440px) {
    html body .kvl-header-band .kvl-trust-strip :is(.kvl-trust-strip__row, .kvl-trust-strip__item, .kvl-trust-strip__dot) { font-size: 11.5px !important; letter-spacing: 0 !important; }
    html body .kvl-header-band .kvl-trust-strip__row { flex-wrap: wrap !important; white-space: normal !important; justify-content: center !important; max-width: 100% !important; }
}
@media (max-width: 380px) {
    html body .kvl-header-band .kvl-trust-strip :is(.kvl-trust-strip__row, .kvl-trust-strip__item, .kvl-trust-strip__dot) { font-size: 11px !important; }
}

/* 7.8 Login / register: split screen. Forest art panel on the left (engraved tree, guilloche),
   ivory card with the medallion seal on the right; phones get the card only. Same text, same steps. */
@media (min-width: 900px) {
    html body.kvl-ia-on #content > .ast-container {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        max-width: none !important;
        padding: 0 !important;
        min-height: 620px;
    }
    html body.kvl-ia-on #content > .ast-container::before {
        content: "";
        display: block;
        min-height: 620px;
        background: url("img/tree-engraved-reversed.svg") no-repeat center bottom 20px / auto 82%,
                    url("img/guilloche-rosette-cream.svg") no-repeat left -160px top -160px / 460px,
                    linear-gradient(150deg, #185A32 0%, #0F3D24 50%, #0B2E1B 100%);
    }
    html body.kvl-ia-on #primary { align-self: center; padding: 56px 40px !important; }
}
html body.kvl-design-v2.kvl-ia-on .custom-login-wrapper.kvl-auth,
html body.kvl-design-v2 .custom-login-wrapper.kvl-auth {
    background: var(--kc-ivory) !important;
    border: 1px solid var(--kc-gold-hair) !important;
    box-shadow: 0 18px 50px rgba(15, 61, 36, .10) !important;
}
html body.kvl-design-v2.kvl-ia-on .custom-login-wrapper.kvl-auth::before {
    content: "";
    display: block;
    width: 52px;
    height: 52px;
    margin: 0 0 18px;
    background: url("img/icons/kvm-access.svg") no-repeat center / contain;
}

/* 7.9 Homepage sections (page-specific art and icons, keyed to the homepage's own sections). */
/* Intro: a gold lozenge under the main line. */
html body.kvl-design-v2.home #content .elementor-element-ed31ac8 .elementor-widget-heading:has(h2)::after {
    content: "";
    display: block;
    width: 9px;
    height: 9px;
    margin: 18px auto 6px;
    background: var(--kc-gold);
    transform: rotate(45deg);
}
/* Our Story: gold-wash band with the engraved tree. */
html body.kvl-design-v2.home #content .elementor-element-18f5509.e-con {
    background: var(--kc-wash) url("img/tree-engraved.svg") no-repeat right 4% center / auto 86% !important;
    padding: 56px 46% 56px 48px !important;
    border-top: 0 !important;
    border-radius: 6px !important;
    margin-top: 24px;
    margin-bottom: 24px;
}
@media (max-width: 860px) {
    html body.kvl-design-v2.home #content .elementor-element-18f5509.e-con {
        background-position: center bottom 18px !important;
        background-size: auto 220px !important;
        padding: 36px 22px 260px !important;
    }
}
/* Offering cards: medallion seal above each title. */
html body.kvl-design-v2.home #content .elementor-element-aa97a7a > .elementor-widget-heading:first-of-type,
html body.kvl-design-v2.home #content .elementor-element-d2c56a2 > .elementor-widget-heading:first-of-type,
html body.kvl-design-v2.home #content .elementor-element-d757519 > .elementor-widget-heading:first-of-type,
html body.kvl-design-v2.home #content .elementor-element-d888b75 > .elementor-widget-heading:first-of-type {
    background: no-repeat left top / 56px 56px !important;
    padding-top: 70px !important;
}
html body.kvl-design-v2.home #content .elementor-element-aa97a7a > .elementor-widget-heading:first-of-type { background-image: url("img/icons/kvm-mutual-funds.svg") !important; }
html body.kvl-design-v2.home #content .elementor-element-d2c56a2 > .elementor-widget-heading:first-of-type { background-image: url("img/icons/kvm-pms.svg") !important; }
html body.kvl-design-v2.home #content .elementor-element-d757519 > .elementor-widget-heading:first-of-type { background-image: url("img/icons/kvm-aif.svg") !important; }
html body.kvl-design-v2.home #content .elementor-element-d888b75 > .elementor-widget-heading:first-of-type { background-image: url("img/icons/kvm-gift-city.svg") !important; }
/* Closing tagline strip above the footer: forest, italic cream. */
html body.kvl-design-v2.home #content .elementor-element-2049870.e-con { background: var(--kc-forest) !important; }
html body.kvl-design-v2.home #content .elementor-element-2049870 :is(.elementor-heading-title, p) { color: var(--kc-cream-text) !important; font-style: italic; }

/* 7.10 Page art: engraved plates in place of the old stock and generated images (img/art/).
   Each slot is an empty Elementor image column (or one image widget); the art sits on an ivory
   card with a double gold hairline. Keyed to those elements on purpose, like 7.9. */
html body.kvl-design-v2 #content .elementor-element-4cd2f74,
html body.kvl-design-v2 #content .elementor-element-3d5f75a,
html body.kvl-design-v2 #content .elementor-element-076e7e4,
html body.kvl-design-v2 #content .elementor-element-e950175,
html body.kvl-design-v2 #content .elementor-element-7c304e78,
html body.kvl-design-v2 #content .elementor-element-4b8c4d53,
html body.kvl-design-v2 #content .elementor-element-af3272c > .elementor-widget-container,
html body.kvl-design-v2 #content figure:has(> img[alt^="Numbered list of 100 essential investing"]) {
    background-color: var(--kc-ivory) !important;
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-origin: content-box !important;
    padding: 22px !important;
    border: 1px solid var(--kc-gold-hair) !important;
    border-radius: 14px !important;
    box-shadow: inset 0 0 0 7px var(--kc-ivory), inset 0 0 0 8px rgba(201, 162, 39, .35) !important;
    box-sizing: border-box !important;
}
html body.kvl-design-v2 #content .elementor-element-4cd2f74 { background-image: url("img/art/about-banyan.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-3d5f75a { background-image: url("img/art/aif-stepwell.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-076e7e4 { background-image: url("img/art/gift-towers.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-e950175 { background-image: url("img/art/gift-globe.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-7c304e78 { background-image: url("img/art/mf-cairn.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-4b8c4d53 { background-image: url("img/art/mf-grove.svg") !important; }
html body.kvl-design-v2 #content .elementor-element-af3272c > .elementor-widget-container { background-image: url("img/art/pms-ledger.svg") !important; }
html body.kvl-design-v2 #content figure:has(> img[alt^="Numbered list of 100 essential investing"]) {
    background-image: url("img/art/terms-lexicon.svg") !important;
    aspect-ratio: 16 / 9;
}
/* The original <img> keeps its box (and alt text) but is not painted. */
html body.kvl-design-v2 #content .elementor-element-af3272c img,
html body.kvl-design-v2 #content figure > img[alt^="Numbered list of 100 essential investing"] {
    opacity: 0 !important;
}
html body.kvl-design-v2 #content figure:has(> img[alt^="Numbered list of 100 essential investing"]) > img {
    width: 100% !important;
    height: 100% !important;
}

/* 7.11 About: founder portrait as an arched plate. The photo's pale studio backdrop is multiplied
   into the cream (so it reads warm, not white), the arch and double gold hairline make the
   backdrop deliberate, and a faint rosette sits behind the plate. */
html body.kvl-design-v2 #content .elementor-element.elementor-element-a370a6c {
    background: url("img/guilloche-rosette-faint.svg") no-repeat center 40px / 470px !important;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-93afd1f,
html body.kvl-design-v2 #content .elementor-element.elementor-element-93afd1f :is(p, span, strong) {
    border: 0 !important;
    text-align: center !important;
    font-size: 12.5px !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    color: #8A6D12 !important;
    font-weight: 600 !important;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-ab7d885 > .elementor-widget-container {
    position: relative;
    width: min(380px, 100%) !important;
    margin: 6px auto 0 !important;
    padding: 12px !important;
    background: #F8F5EB !important;
    border: 1px solid rgba(201, 162, 39, .55) !important;
    border-radius: 200px 200px 16px 16px !important;
    box-shadow: inset 0 0 0 5px #F8F5EB, inset 0 0 0 6px rgba(201, 162, 39, .35), 0 18px 40px rgba(15, 61, 36, .10) !important;
    isolation: isolate;
    overflow: hidden;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-ab7d885 img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    border: 0 !important;
    border-radius: 190px 190px 10px 10px !important;
    mix-blend-mode: multiply;
    filter: sepia(.06) saturate(1.04);
}
/* LinkedIn: a small forest-outlined icon aligned with the bio text. */
html body.kvl-design-v2 #content .elementor-element.elementor-element-14f40dc .elementor-social-icons-wrapper {
    justify-content: flex-start !important;
    text-align: left !important;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-14f40dc .elementor-social-icon {
    background: transparent !important;
    border: 1px solid rgba(15, 61, 36, .35) !important;
    width: 40px !important;
    height: 40px !important;
    font-size: 16px !important;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-14f40dc .elementor-social-icon :is(i, svg) {
    color: var(--kc-forest) !important;
    fill: var(--kc-forest) !important;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-14f40dc .elementor-social-icon:hover {
    background: var(--kc-gold-wash, #F5EDD6) !important;
    border-color: var(--kc-gold) !important;
}

/* 7.12 PMS directory (#kv-pms, styled inline on the page): brand colours instead of mint greens.
   Gold-wash pills, forest active chips, forest table header, ivory striped rows on gold hairlines,
   brand-green returns, gold-wash calls to action. */
html body.kvl-design-v2 #kv-pms .kv-pill {
    background: #FFFAEB !important;
    color: #3C4A42 !important;
    border: 1px solid rgba(15, 61, 36, .16) !important;
}
html body.kvl-design-v2 #kv-pms .kv-pill.kv-pill-live {
    background: #F5EDD6 !important;
    color: #6B5410 !important;
    border-color: rgba(201, 162, 39, .55) !important;
}
html body.kvl-design-v2 #kv-pms .kv-search {
    background: #FFFAEB !important;
    border: 1px solid rgba(15, 61, 36, .22) !important;
    color: #1f2a24 !important;
}
html body.kvl-design-v2 #kv-pms .kv-search:focus {
    border-color: #1F6B3A !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .3) !important;
    outline: none !important;
}
html body.kvl-design-v2 #kv-pms :is(.kv-filter, .kv-view-btn) {
    background: #FFFAEB !important;
    color: #0F3D24 !important;
    border: 1px solid rgba(15, 61, 36, .18) !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #kv-pms :is(.kv-filter, .kv-view-btn):hover {
    border-color: #C9A227 !important;
    background: #F5EDD6 !important;
}
html body.kvl-design-v2 #kv-pms :is(.kv-filter, .kv-view-btn).active {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border-color: #0F3D24 !important;
}
html body.kvl-design-v2 #kv-pms .kv-view-toggle {
    background: transparent !important;
    gap: 6px;
}
html body.kvl-design-v2 #kv-pms .kv-table-wrap {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .4) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #kv-pms .kv-table thead th,
html body.kvl-design-v2 #kv-pms .kv-table thead th.kv-sticky {
    background: #0F3D24 !important;
    color: #F5EDD6 !important;
    border-color: rgba(201, 162, 39, .25) !important;
    letter-spacing: .06em;
}
html body.kvl-design-v2 #kv-pms .kv-table thead th.is-sorted {
    color: #E9C766 !important;
    box-shadow: inset 0 -3px 0 #C9A227 !important;
}
html body.kvl-design-v2 #kv-pms .kv-table tbody tr td,
html body.kvl-design-v2 #kv-pms .kv-table tbody tr td.kv-sticky {
    background: #FFFAEB !important;
    border-color: rgba(201, 162, 39, .2) !important;
    color: #1f2a24 !important;
}
html body.kvl-design-v2 #kv-pms .kv-table tbody tr:nth-child(even) td,
html body.kvl-design-v2 #kv-pms .kv-table tbody tr:nth-child(even) td.kv-sticky {
    background: #F8F2E2 !important;
}
html body.kvl-design-v2 #kv-pms .kv-table tbody tr:hover td,
html body.kvl-design-v2 #kv-pms .kv-table tbody tr:hover td.kv-sticky {
    background: #F5EDD6 !important;
}
html body.kvl-design-v2 #kv-pms .kv-name { color: #0F3D24 !important; }
html body.kvl-design-v2 #kv-pms .kv-pos { color: #1F6B3A !important; }
html body.kvl-design-v2 #kv-pms .kv-neg { color: #A3341F !important; }
html body.kvl-design-v2 #kv-pms .kv-muted { color: #7A857F !important; }
html body.kvl-design-v2 #kv-pms :is(.kv-type, .kv-card-type) {
    background: transparent !important;
    color: #185A32 !important;
    border: 1px solid rgba(15, 61, 36, .28) !important;
    border-radius: 999px !important;
}
html body.kvl-design-v2 #kv-pms .kv-doc {
    background: transparent !important;
    color: #0F3D24 !important;
    border: 1px solid rgba(15, 61, 36, .3) !important;
    border-radius: 8px !important;
}
html body.kvl-design-v2 #kv-pms .kv-doc:hover {
    background: #F5EDD6 !important;
    border-color: #C9A227 !important;
}
html body.kvl-design-v2 #kv-pms .kv-card {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .4) !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 #kv-pms .kv-card:hover {
    border-color: rgba(201, 162, 39, .8) !important;
    box-shadow: 0 10px 28px rgba(15, 61, 36, .08) !important;
}
html body.kvl-design-v2 #kv-pms .kv-card-name { color: #0F3D24 !important; }
html body.kvl-design-v2 #kv-pms .kv-returns {
    background: #F8F2E2 !important;
    border: 1px solid rgba(201, 162, 39, .25) !important;
}
html body.kvl-design-v2 #kv-pms .kv-ret-k { color: #5F5A4A !important; }
html body.kvl-design-v2 #kv-pms .kv-meta-row { border-color: rgba(201, 162, 39, .22) !important; }
html body.kvl-design-v2 #kv-pms .kv-cta {
    background: #F5EDD6 !important;
    color: #0F3D24 !important;
    border: 1px solid rgba(201, 162, 39, .55) !important;
    font-weight: 600 !important;
}
html body.kvl-design-v2 #kv-pms .kv-cta:hover {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border-color: #0F3D24 !important;
}

/* 7.13 Site-wide polish (audit, 14 Oct 2026). */

/* Elementor's global typography (Manrope, not loaded) falls back to Arial in widgets such as image
   boxes: map it to the site's UI font. Headings keep the serif via the rules above. */
html body[class*="elementor-kit-"] {
    --e-global-typography-primary-font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
    --e-global-typography-secondary-font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
    --e-global-typography-text-font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
    --e-global-typography-accent-font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
}
html body.kvl-design-v2 #content :is(.elementor-image-box-description, .elementor-icon-box-description, .elementor-image-box-description *, .elementor-icon-box-description *) {
    font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif) !important;
}

/* No glow behind headings (one page carried a 10px text-shadow). */
html body.kvl-design-v2 #content :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) { text-shadow: none !important; }

/* Partner logo carousels: the whole strip multiplies onto the cream, so no logo keeps a white box
   (the slides' own transform no longer isolates the blend). */
html body.kvl-design-v2 #content .elementor-widget-image-carousel .elementor-image-carousel-wrapper {
    mix-blend-mode: multiply;
}
html body.kvl-design-v2 #content .elementor-widget-image-carousel .swiper-slide { background: transparent !important; }
html body.kvl-design-v2 #content .elementor-widget-image-carousel img.swiper-slide-image { mix-blend-mode: normal; }

/* Reading column: in single-column text sections the copy ran ~1,100px wide (150+ characters a
   line). Text, headings, lists and FAQs placed directly in a page section now share a centred
   880px column; two-column layouts, cards and the hero are untouched. */
@media (min-width: 1024.01px) {
    html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] > .e-con:not(:first-child) :is(.elementor-widget-text-editor:not(:has(table)), .elementor-widget-heading, .elementor-widget-icon-list, .elementor-widget-toggle, .elementor-widget-accordion, .elementor-widget-n-accordion):not(.kvl-surface-card *, .kvl-surface-feature .e-con *, .elementor-element-2049870 *) {
        width: min(100%, 880px) !important;
        max-width: 880px !important;
        align-self: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}
/* About: "Our Registrations" as a row of credential cards with a gold seal tick. */
html body.kvl-design-v2 #content .elementor-element.elementor-element-e6e174f ul {
    list-style: none !important;
    margin: 8px auto 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 14px !important;
    max-width: 1000px;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-e6e174f { max-width: 1000px !important; width: 100% !important; }
html body.kvl-design-v2 #content .elementor-element.elementor-element-e6e174f li {
    flex: 0 1 272px;
    box-sizing: border-box;
    position: relative;
    margin: 0 !important;
    padding: 16px 18px 16px 58px !important;
    background: #FFFAEB;
    border: 1px solid rgba(201, 162, 39, .45);
    border-radius: 12px;
    color: #0F3D24 !important;
    font-weight: 600;
    line-height: 1.4;
    display: flex;
    align-items: center;
    min-height: 64px;
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-e6e174f li::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 50%;
    width: 30px;
    height: 30px;
    margin-top: -15px;
    border-radius: 50%;
    background: #F5EDD6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.5 3.5 7.5-8' fill='none' stroke='%230F3D24' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
    box-shadow: 0 0 0 1px rgba(201, 162, 39, .7), 0 0 0 4px #FFFAEB, 0 0 0 5px rgba(201, 162, 39, .35);
}
html body.kvl-design-v2 #content .elementor-element.elementor-element-39ee5fc .elementor-widget-heading { text-align: center !important; }

/* About: breathing room above "The Person Behind Every Recommendation". */
html body.kvl-design-v2 #content .elementor-element.elementor-element-beb1bbd { padding-top: 64px !important; }

/* Contact card: medallion icons for Address / Contact / Open Time, gold-outlined social icons. */
html body.kvl-design-v2 #content :is(.elementor-element-1591d1db, .elementor-element-697ef314, .elementor-element-2fe93264) .elementor-image-box-wrapper {
    position: relative;
    padding-left: 64px !important;
    text-align: left !important;
}
html body.kvl-design-v2 #content :is(.elementor-element-1591d1db, .elementor-element-697ef314, .elementor-element-2fe93264) .elementor-image-box-wrapper::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 48px;
    height: 48px;
    background: no-repeat center / contain;
}
html body.kvl-design-v2 #content .elementor-element-1591d1db .elementor-image-box-wrapper::before { background-image: url("img/icons/kvm-address.svg"); }
html body.kvl-design-v2 #content .elementor-element-697ef314 .elementor-image-box-wrapper::before { background-image: url("img/icons/kvm-phone.svg"); }
html body.kvl-design-v2 #content .elementor-element-2fe93264 .elementor-image-box-wrapper::before { background-image: url("img/icons/kvm-hours.svg"); }
html body.kvl-design-v2 #content .elementor-element-5da49b26 .elementor-social-icon {
    background: transparent !important;
    border: 1px solid rgba(201, 162, 39, .75) !important;
}
html body.kvl-design-v2 #content .elementor-element-5da49b26 .elementor-social-icon :is(i, svg) {
    color: var(--kc-forest) !important;
    fill: var(--kc-forest) !important;
}
html body.kvl-design-v2 #content .elementor-element-5da49b26 .elementor-social-icon:hover { background: #F5EDD6 !important; }

/* Partner: medallions beside the five benefit headings. */
html body.kvl-design-v2 #content :is(.elementor-element-5502035, .elementor-element-8fd5ec0, .elementor-element-acad425, .elementor-element-f9d877b, .elementor-element-e8528b2) .elementor-heading-title {
    display: flex !important;
    align-items: center;
    gap: 14px;
}
html body.kvl-design-v2 #content :is(.elementor-element-5502035, .elementor-element-8fd5ec0, .elementor-element-acad425, .elementor-element-f9d877b, .elementor-element-e8528b2) .elementor-heading-title::before {
    content: "";
    flex: none;
    width: 46px;
    height: 46px;
    background: no-repeat center / contain;
}
html body.kvl-design-v2 #content .elementor-element-5502035 .elementor-heading-title::before { background-image: url("img/icons/kvm-transparency.svg"); }
html body.kvl-design-v2 #content .elementor-element-8fd5ec0 .elementor-heading-title::before { background-image: url("img/icons/kvm-selective.svg"); }
html body.kvl-design-v2 #content .elementor-element-acad425 .elementor-heading-title::before { background-image: url("img/icons/kvm-institutional.svg"); }
html body.kvl-design-v2 #content .elementor-element-f9d877b .elementor-heading-title::before { background-image: url("img/icons/kvm-decades.svg"); }
html body.kvl-design-v2 #content .elementor-element-e8528b2 .elementor-heading-title::before { background-image: url("img/icons/kvm-evaluation.svg"); }

/* Pages without Elementor (Careers, legal pages): the page title becomes a forest band like every
   other page, and sub-headings use the serif. Posts keep their own layout. */
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) .entry-content > h1.wp-block-heading:first-child {
    position: relative;
    margin: 0 0 40px !important;
    padding: 56px 0 52px !important;
    color: #fff !important;
    text-align: center;
    background: #0F3D24;
    box-shadow: 0 0 0 100vmax #0F3D24;
    clip-path: inset(0 -100vmax);
}
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) .entry-content > h1.wp-block-heading:first-child::after {
    content: "";
    position: absolute;
    right: -24vw;
    top: -150px;
    width: 440px;
    height: 440px;
    background: url("img/guilloche-rosette-faint.svg") no-repeat center / contain;
    pointer-events: none;
}
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) #content .site-content > .ast-container,
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) #primary,
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) #primary > article,
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) #primary .ast-article-single { padding-top: 0 !important; margin-top: 0 !important; }
html body.kvl-design-v2:is(.page-template-default, .normal-page-template-default):not(.elementor-page) .entry-content :is(h4, h5, h6) {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
    font-weight: 600 !important;
    color: var(--kc-forest) !important;
    letter-spacing: 0 !important;
}

/* Contact card: "Stay Connected" is a card heading, not a section heading. */
html body.kvl-design-v2 #content .elementor[data-elementor-type="wp-page"] .elementor-element.elementor-element-504c1c19.elementor-element-504c1c19.kvl-heading-brand .elementor-heading-title.elementor-heading-title.elementor-heading-title,
html body.kvl-design-v2 #content .elementor-element.elementor-element-504c1c19 .elementor-heading-title.elementor-heading-title {
    font-size: 22px !important;
    line-height: 1.3 !important;
}

/* PMS directory on phones: the "Showing 57 of 57" counter wraps instead of being cut off. */
@media (max-width: 767px) {
    html body.kvl-design-v2 #kv-pms .kv-toolbar-right {
        flex-wrap: wrap !important;
        width: 100% !important;
        row-gap: 8px !important;
    }
    html body.kvl-design-v2 #kv-pms .kv-counter {
        white-space: normal !important;
        flex: 1 1 100% !important;
    }
}

/* 7.14 Engraved divider between page sections: a gold hairline with a small eye-shaped ornament
   (img/ornament-divider.svg) instead of a bare rule. Not inside cards or forest bands, and not
   on the home "Our Story" band, which has its own engraved-tree background. */
html body.kvl-design-v2 #content .e-con.kvl-surface-band:not(:first-child):not(.kvl-surface-card *, .kvl-surface-feature *):not(.elementor-element-18f5509) {
    border-top: 0 !important;
    background:
        url("img/ornament-divider.svg") no-repeat center top / 96px 20px,
        linear-gradient(rgba(201, 162, 39, .38), rgba(201, 162, 39, .38)) no-repeat center 9.5px / calc(100% - 48px) 1px !important;
    padding-top: calc(var(--padding-top, 10px) + 22px) !important;
}

/* 7.15 Forminator forms (Contact, Partner, Home CTA, popups): readable on every new surface.
   The forms were styled for the old green bands (white text and placeholders), which turned
   invisible on the ivory fields. */
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input) {
    background: #FFFDF6 !important;
    color: #1f2a24 !important;
    border: 1px solid rgba(15, 61, 36, .28) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input)::placeholder {
    color: #6B7A72 !important;
    opacity: 1 !important;
}
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input):focus {
    border-color: #1F6B3A !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .32) !important;
    outline: none !important;
}
html body.kvl-design-v2 .forminator-ui .select2-container .select2-selection,
html body.kvl-design-v2 .forminator-ui select.forminator-select {
    background: #FFFDF6 !important;
    border: 1px solid rgba(15, 61, 36, .28) !important;
    border-radius: 10px !important;
    min-height: 44px;
}
html body.kvl-design-v2 .forminator-ui .select2-container .select2-selection__rendered,
html body.kvl-design-v2 .forminator-ui select.forminator-select {
    color: #1f2a24 !important;
}
html body.kvl-design-v2 .forminator-ui .select2-container .select2-selection__arrow :is(span, svg, i) {
    color: #0F3D24 !important;
    border-color: #0F3D24 transparent transparent !important;
}
html body.kvl-design-v2 .forminator-select-dropdown-container .select2-dropdown,
html body.kvl-design-v2 .forminator-select-dropdown-container .select2-results__options {
    background: #FFFDF6 !important;
    border-color: rgba(15, 61, 36, .25) !important;
}
html body.kvl-design-v2 .forminator-select-dropdown-container .select2-results__option {
    color: #1f2a24 !important;
}
html body.kvl-design-v2 .forminator-select-dropdown-container .select2-results__option--highlighted,
html body.kvl-design-v2 .forminator-select-dropdown-container .select2-results__option[aria-selected="true"] {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
}
html body.kvl-design-v2 .forminator-ui :is(.forminator-label, label.forminator-label) {
    color: #0F3D24 !important;
}
html body.kvl-design-v2 .forminator-ui .forminator-button-submit,
html body.kvl-design-v2 .forminator-ui button.forminator-button[type="submit"] {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    padding: 12px 30px !important;
    font-weight: 600 !important;
}
html body.kvl-design-v2 .forminator-ui .forminator-button-submit:hover,
html body.kvl-design-v2 .forminator-ui .forminator-button-submit:focus-visible {
    background: #164D2B !important;
}
html body.kvl-design-v2 .forminator-ui .forminator-button-submit:focus-visible {
    outline: 2px solid #C9A227 !important;
    outline-offset: 2px !important;
}
/* Error and success messages keep their meaning but in brand tones. */
html body.kvl-design-v2 .forminator-ui .forminator-error-message {
    color: #A3341F !important;
    background: transparent !important;
}
html body.kvl-design-v2 .forminator-ui .forminator-response-message.forminator-success {
    background: #F5EDD6 !important;
    color: #0F3D24 !important;
    border-left: 3px solid #C9A227 !important;
}

/* 7.16 Members' dashboard (/dashboard/): fund tables inside the forest accordions, in the same
   ivory-and-gold language as the PMS directory (they were white with grey-green stripes). */
html body.kvl-design-v2 #content .kvl-dashboard-section {
    border-color: rgba(201, 162, 39, .35) !important;
}
html body.kvl-design-v2 #content .kvl-table-card,
html body.kvl-design-v2 #content table.unlisted-share-table-1 {
    background: #FFFAEB !important;
    border-color: rgba(201, 162, 39, .35) !important;
}
html body.kvl-design-v2 #content table.unlisted-share-table-1 th {
    background: #F5EDD6 !important;
    color: #0F3D24 !important;
    border-color: rgba(201, 162, 39, .3) !important;
    letter-spacing: .05em;
}
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr,
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr td {
    background: #FFFAEB !important;
    border-color: rgba(201, 162, 39, .2) !important;
}
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr:nth-child(even),
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr:nth-child(even) td {
    background: #F8F2E2 !important;
}
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr:hover,
html body.kvl-design-v2 #content table.unlisted-share-table-1 tbody tr:hover td {
    background: #F5EDD6 !important;
}
html body.kvl-design-v2 #content table.unlisted-share-table-1 td { color: #1f2a24 !important; }
html body.kvl-design-v2 #content .kvl-fs-pill {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border-color: #0F3D24 !important;
}
html body.kvl-design-v2 #content a.kvl-fs-pill:hover,
html body.kvl-design-v2 #content a.kvl-fs-pill:focus-visible {
    background: #164D2B !important;
    border-color: #164D2B !important;
}
html body.kvl-design-v2 #content .kvl-fs-pill.kvl-fs-nolink {
    background: transparent !important;
    color: #185A32 !important;
    border: 1px solid rgba(15, 61, 36, .3) !important;
}

/* Elementor breakpoint gap: tablet ends at 1024px and laptop starts at 1025px, so at fractional widths
   (browser zoom) the phone header showed next to the desktop one. */
@media (min-width: 1024.01px) {
    html body #masthead .elementor-hidden-tablet.elementor-hidden-laptop.elementor-hidden-desktop { display: none !important; }
}
/* 7.17 Partner onboarding (/partner-onboarding/, opened by "Apply for Partner Program"): the wizard
   was a white card with grey chips. Page title shown as the forest band; ivory card with a gold
   frame and a partner medallion; gold progress bar; brand chips, fields and buttons; every step
   (OTP, uploads, agreement summary, thank-you) in the same palette. */
html body.kvl-design-v2:has(.kvl-pa-wizard) .entry-header {
    display: block !important;
    margin: 0 0 40px !important;
    padding: 0 !important;
    border: 0 !important;
}
html body.kvl-design-v2:has(.kvl-pa-wizard) .entry-header .entry-title {
    display: block !important;
    position: relative;
    margin: 0 !important;
    padding: 56px 0 52px !important;
    text-align: center;
    color: #fff !important;
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
    font-weight: 400 !important;
    font-size: clamp(34px, 4vw, 52px) !important;
    line-height: 1.15 !important;
    background: #0F3D24;
    box-shadow: 0 0 0 100vmax #0F3D24;
    clip-path: inset(0 -100vmax);
}
html body.kvl-design-v2:has(.kvl-pa-wizard) .entry-header .entry-title::after {
    content: "";
    position: absolute;
    right: -24vw;
    top: -150px;
    width: 440px;
    height: 440px;
    background: url("img/guilloche-rosette-faint.svg") no-repeat center / contain;
    pointer-events: none;
}
html body.kvl-design-v2:has(.kvl-pa-wizard) #primary,
html body.kvl-design-v2:has(.kvl-pa-wizard) #primary > article { padding-top: 0 !important; margin-top: 0 !important; }

html body.kvl-design-v2 .kvl-pa-wizard {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .5) !important;
    border-radius: 16px !important;
    box-shadow: inset 0 0 0 6px #FFFAEB, inset 0 0 0 7px rgba(201, 162, 39, .3), 0 18px 44px rgba(15, 61, 36, .08) !important;
    padding: 30px 30px 26px !important;
    color: #1f2a24 !important;
    font-family: var(--kvs-font-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif) !important;
}
html body.kvl-design-v2 .kvl-pa-wizard::before {
    content: "";
    display: block;
    width: 54px;
    height: 54px;
    margin: 0 auto 16px;
    background: url("img/icons/kvm-manager.svg") no-repeat center / contain;
}
html body.kvl-design-v2 .kvl-pa-progress { background: rgba(201, 162, 39, .22) !important; height: 3px !important; }
html body.kvl-design-v2 .kvl-pa-progress-bar { background: linear-gradient(90deg, #C9A227, #1F6B3A) !important; }
html body.kvl-design-v2 .kvl-pa-step {
    background: transparent !important;
    color: #3C4A42 !important;
    border: 1px solid rgba(15, 61, 36, .18);
    border-radius: 999px !important;
    padding: .3rem .7rem !important;
}
html body.kvl-design-v2 .kvl-pa-step.is-active {
    background: #0F3D24 !important;
    border-color: #0F3D24;
    color: #FFFAEB !important;
}
html body.kvl-design-v2 .kvl-pa-step.is-done {
    background: #F5EDD6 !important;
    border-color: rgba(201, 162, 39, .6);
    color: #0F3D24 !important;
}
html body.kvl-design-v2 .kvl-pa-step.is-done::before { content: "\2713\00a0"; color: #8A6D12; font-weight: 700; }
html body.kvl-design-v2 .kvl-pa-panel h2,
html body.kvl-design-v2 .kvl-pa-summary-sheet h2 {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
    font-weight: 400 !important;
    font-size: 26px !important;
    color: #0F3D24 !important;
}
html body.kvl-design-v2 .kvl-pa-hint { color: #4a5a50 !important; }
html body.kvl-design-v2 .kvl-pa-form label { color: #0F3D24; font-weight: 600 !important; }
html body.kvl-design-v2 .kvl-pa-form .kvl-pa-consent { font-weight: 400 !important; color: #1f2a24; }
html body.kvl-design-v2 .kvl-pa-form .kvl-pa-consent a,
html body.kvl-design-v2 .kvl-pa-summary-contact a { color: #185A32 !important; text-decoration: underline; text-underline-offset: 2px; }
html body.kvl-design-v2 .kvl-pa-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="file"]) {
    background: #FFFDF6 !important;
    border: 1px solid rgba(15, 61, 36, .28) !important;
    border-radius: 10px !important;
    color: #1f2a24 !important;
    min-height: 46px;
}
html body.kvl-design-v2 .kvl-pa-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="file"]):focus {
    outline: none !important;
    border-color: #1F6B3A !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .32) !important;
}
html body.kvl-design-v2 .kvl-pa-form input[type="checkbox"] { accent-color: #1F6B3A; }
html body.kvl-design-v2 .kvl-pa--otp-pending .kvl-pa-otp-input { background: #F5EDD6 !important; }
html body.kvl-design-v2 .kvl-pa-btn--primary { background: #0F3D24 !important; color: #FFFAEB !important; }
html body.kvl-design-v2 .kvl-pa-btn--primary:hover:not(:disabled) { background: #164D2B !important; color: #FFFAEB !important; }
html body.kvl-design-v2 .kvl-pa-btn--ghost { color: #0F3D24 !important; border-color: rgba(15, 61, 36, .45) !important; background: transparent !important; }
html body.kvl-design-v2 .kvl-pa-btn--ghost:hover { background: #F5EDD6 !important; border-color: #C9A227 !important; }
html body.kvl-design-v2 .kvl-pa-btn:focus-visible { outline: 2px solid #C9A227 !important; outline-offset: 2px; }
html body.kvl-design-v2 .kvl-pa-otp-sending,
html body.kvl-design-v2 .kvl-pa-code {
    background: #F5EDD6 !important;
    border: 1px solid rgba(201, 162, 39, .55) !important;
    color: #0F3D24 !important;
}
html body.kvl-design-v2 .kvl-pa-spinner { border-color: rgba(15, 61, 36, .2) !important; border-top-color: #C9A227 !important; }
html body.kvl-design-v2 .kvl-pa-message--error { color: #A3341F !important; }
html body.kvl-design-v2 .kvl-pa-message--ok { color: #185A32 !important; }
html body.kvl-design-v2 .kvl-pa-summary-sheet {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .5) !important;
    border-radius: 12px !important;
}
html body.kvl-design-v2 .kvl-pa-summary-header { border-bottom-color: #C9A227 !important; }
html body.kvl-design-v2 .kvl-pa-summary-brand { color: #8A6D12 !important; }
html body.kvl-design-v2 .kvl-pa-summary-table th { color: #4a5a50 !important; }
html body.kvl-design-v2 .kvl-pa-summary-table td { border-bottom-color: rgba(201, 162, 39, .25) !important; }
html body.kvl-design-v2 .kvl-pa-summary-instructions h3 { color: #0F3D24 !important; font-family: "Source Serif 4", Georgia, serif !important; font-weight: 600 !important; }
@media (max-width: 600px) {
    html body.kvl-design-v2 .kvl-pa-wizard { padding: 22px 16px 20px !important; margin: 0 12px 28px !important; }
    html body.kvl-design-v2:has(.kvl-pa-wizard) .entry-header .entry-title { padding: 40px 18px 36px !important; }
}

/* 7.18 Warm forms and scrollbars (owner feedback 14 Oct: home form looked grey, blog scrollbars
   white). Former green panels (the home "Explore Opportunities" form and similar) become the same
   ivory card with a gold double frame as the partner wizard; field borders turn from grey-green to
   soft gold; the phone dial code (white, left over from the green bands) is readable again. */
html body.kvl-design-v2 #content .e-con.kvl-surface-brand,
html body.kvl-design-v2 #content .elementor-section.kvl-surface-brand {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .5) !important;
    border-radius: 16px !important;
    box-shadow: inset 0 0 0 6px #FFFAEB, inset 0 0 0 7px rgba(201, 162, 39, .3), 0 18px 44px rgba(15, 61, 36, .08) !important;
}
/* Card headings kept a 45px line height from the old band: two-line titles split apart on phones. */
html body.kvl-design-v2 #content .kvl-surface-brand .elementor-heading-title { line-height: 1.25 !important; }
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input),
html body.kvl-design-v2 .forminator-ui .select2-container .select2-selection,
html body.kvl-design-v2 .forminator-ui select.forminator-select {
    border-color: rgba(201, 162, 39, .6) !important;
}
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input):focus,
html body.kvl-design-v2 #content .forminator-ui :is(.forminator-input, .forminator-textarea):focus,
html body .kvl-ia :is(input[type="text"], input[type="email"], input[type="tel"]):focus {
    border-color: #1F6B3A !important;
}
html body.kvl-design-v2 .forminator-ui :is(input.forminator-input, textarea.forminator-textarea, .iti input)::placeholder {
    color: #6F6446 !important; /* warm taupe, 5:1 on the field */
}
html body.kvl-design-v2 .forminator-ui .iti :is(.iti__selected-dial-code, .iti__selected-country, .iti__selected-flag) {
    color: #0F3D24 !important;
    background: transparent !important;
}
html body.kvl-design-v2 .forminator-ui .iti__arrow { border-top-color: #0F3D24 !important; }
html body.kvl-design-v2 .forminator-ui .iti__arrow--up { border-bottom-color: #0F3D24 !important; border-top-color: transparent !important; }
html body.kvl-design-v2 .iti__dropdown-content,
html body.kvl-design-v2 .iti__country-list {
    background: #FFFDF6 !important;
    color: #1f2a24 !important;
    border-color: rgba(201, 162, 39, .5) !important;
}
html body.kvl-design-v2 .iti__country.iti__highlight { background: #F5EDD6 !important; }

/* Scrollbars: the browser default (grey thumb on a white track) on the page and on wide blog
   tables. Parchment track, sage-forest thumb. Standard property first; the ::-webkit rules are
   only for browsers without it (older Safari). */
html {
    scrollbar-color: #6E8B76 #EFE7D2;
}
html body.kvl-design-v2 :is(figure.wp-block-table, .kvl-table-card, .kvl-table-scroll, .entry-content .table-responsive, #kv-pms) {
    scrollbar-width: thin;
    scrollbar-color: #6E8B76 #F3ECDA;
}
@supports not (scrollbar-color: auto) {
    ::-webkit-scrollbar { width: 12px; height: 10px; }
    ::-webkit-scrollbar-track { background: #EFE7D2; }
    ::-webkit-scrollbar-thumb { background: #6E8B76; border-radius: 8px; border: 3px solid #EFE7D2; }
    ::-webkit-scrollbar-thumb:hover { background: #4F6E58; }
}

/* 7.19 Owner feedback, 14 Oct: four leftovers from the old look.
   1. Trust strip: on desktop the dot joining the two groups had 10 px gaps, the others 6 px. */
@media (min-width: 922px) {
    html body.kvl-design-v2 .kvl-trust-strip__dot--row-gap { margin: 0 6px !important; }
}
/* 2. Elementor tabs (Mutual Funds categories and any other tab widget): grey tabs with the old
      #228B22 green became ivory tabs with a gold hairline; the open tab is forest. */
html body.kvl-design-v2 #content .e-n-tabs-heading .e-n-tab-title {
    background: #FFFAEB !important;
    color: #0F3D24 !important;
    border: 1px solid rgba(201, 162, 39, .5) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    transition: background .15s ease, color .15s ease;
}
html body.kvl-design-v2 #content .e-n-tabs-heading .e-n-tab-title :is(.e-n-tab-title-text, .e-n-tab-icon, svg, i) {
    color: inherit !important;
    fill: currentColor !important;
}
html body.kvl-design-v2 #content .e-n-tabs-heading .e-n-tab-title:hover:not([aria-selected="true"]) {
    background: #F5EDD6 !important;
}
html body.kvl-design-v2 #content .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border-color: #0F3D24 !important;
}
html body.kvl-design-v2 #content .e-n-tabs-heading .e-n-tab-title:focus-visible {
    outline: 2px solid #C9A227 !important;
    outline-offset: 2px !important;
}
/* 3. Form dropdown lists (Forminator's select list, opened below the field and appended to the
      page): grey list, grey text and a blue border became ivory with forest text and a gold edge. */
html body.kvl-design-v2 :is(.select2-container, .forminator-select-dropdown-container) :is(.select2-dropdown, .forminator-select-dropdown) {
    background: #FFFDF6 !important;
    border: 1px solid rgba(201, 162, 39, .6) !important;
    border-radius: 10px !important;
    box-shadow: 0 14px 30px rgba(15, 61, 36, .12) !important;
    overflow: hidden !important;
}
html body.kvl-design-v2 :is(.select2-container, .forminator-select-dropdown-container) :is(.select2-results, .select2-results__options) {
    background: #FFFDF6 !important;
}
html body.kvl-design-v2 :is(.select2-container, .forminator-select-dropdown-container) .select2-results__option {
    background: transparent !important;
    color: #1f2a24 !important;
    opacity: 1 !important;
    padding: 10px 14px !important;
}
html body.kvl-design-v2 :is(.select2-container, .forminator-select-dropdown-container) .select2-results__option:is(.select2-results__option--highlighted, :hover) {
    background: #F5EDD6 !important;
    color: #0F3D24 !important;
}
html body.kvl-design-v2 :is(.select2-container, .forminator-select-dropdown-container) .select2-results__option:is([aria-selected="true"], .select2-results__option--selected) {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
}
html body.kvl-design-v2 .forminator-ui .select2-selection--multiple .select2-selection__choice {
    background: #F5EDD6 !important;
    border: 1px solid rgba(201, 162, 39, .6) !important;
    color: #0F3D24 !important;
    border-radius: 6px !important;
}
html body.kvl-design-v2 .forminator-ui .select2-selection--multiple .select2-selection__choice__remove { color: #0F3D24 !important; }
/* 4. End-of-article call to action ("Considering a PMS?"): mint-to-white gradient and old green
      button became the ivory card with a gold frame and a forest button, as on the forms. */
html body.kvl-design-v2 .kvl-growth-cta-band {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .5) !important;
    border-radius: 14px !important;
    box-shadow: inset 0 0 0 5px #FFFAEB, inset 0 0 0 6px rgba(201, 162, 39, .3) !important;
}
html body.kvl-design-v2 .kvl-growth-cta-band .kvl-growth-cta-lead {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
    font-weight: 600 !important;
    color: #0F3D24 !important;
}
html body.kvl-design-v2 .kvl-growth-cta-band .kvl-growth-cta-support { color: #3C4A42 !important; }
html body.kvl-design-v2 .kvl-growth-cta-band .kvl-growth-cta-primary {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
}
html body.kvl-design-v2 .kvl-growth-cta-band .kvl-growth-cta-primary:is(:hover, :focus-visible) {
    background: #164D2B !important;
    color: #FFFAEB !important;
}
html body.kvl-design-v2 .kvl-growth-cta-band .kvl-growth-cta-secondary { color: #185A32 !important; }

/* 7.20 One standard for every form (owner, 14 Oct: "each form needs to be updated").
   Covers the careers application, login / register (email, code, profile), the blog call-back
   pop-up, the password reset and account forms (Ultimate Member) and the partner onboarding
   wizard, matching the Forminator enquiry forms (7.15, 7.18): ivory fields with a soft gold edge,
   a forest edge and gold ring on focus, warm placeholder text, forest buttons with ivory text.
   Sizes and layout are left to each form; only colours, edges and corners change. */
html:root body.kvl-design-v2 :is(.kvl-apply, .kvl-ia, .kvl-blog-lead, .um, .kvl-pa-form) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="url"], input[type="number"], input:not([type]), select, textarea) {
    background: #FFFDF6 !important;
    color: #1f2a24 !important;
    border: 1px solid rgba(201, 162, 39, .6) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply, .kvl-ia, .kvl-blog-lead, .um, .kvl-pa-form) :is(input, textarea)::placeholder {
    color: #6F6446 !important;
    opacity: 1 !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply, .kvl-ia, .kvl-blog-lead, .um, .kvl-pa-form) :is(input, select, textarea):focus {
    border-color: #1F6B3A !important;
    box-shadow: 0 0 0 3px rgba(201, 162, 39, .32) !important;
    outline: none !important;
    background: #FFFDF6 !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply, .kvl-ia, .kvl-blog-lead, .um, .kvl-pa-form) :is(label, .um-field-label label, .kvl-blog-lead__field) {
    color: #0F3D24 !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply, .kvl-ia, .kvl-blog-lead, .um, .kvl-pa-form) :is(input[type="checkbox"], input[type="radio"]) {
    accent-color: #1F6B3A;
}
html:root body.kvl-design-v2 :is(.kvl-apply__submit, .kvl-ia .kvl-ia-submit, .kvl-auth .button-login, .kvl-blog-lead__submit, .um .um-button, .um input[type="submit"]) {
    background: #0F3D24 !important;
    color: #FFFAEB !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply__submit, .kvl-ia .kvl-ia-submit, .kvl-auth .button-login, .kvl-blog-lead__submit, .um .um-button, .um input[type="submit"]):is(:hover, :focus-visible) {
    background: #164D2B !important;
    color: #FFFAEB !important;
}
html:root body.kvl-design-v2 :is(.kvl-apply__submit, .kvl-ia .kvl-ia-submit, .kvl-blog-lead__submit, .um .um-button):focus-visible {
    outline: 2px solid #C9A227 !important;
    outline-offset: 2px !important;
}
/* Ultimate Member secondary links/buttons (e.g. "Cancel", "Forgot password") and its card. */
html:root body.kvl-design-v2 .um :is(.um-alt, .um-button.um-alt) {
    background: transparent !important;
    color: #0F3D24 !important;
    border: 1px solid rgba(15, 61, 36, .45) !important;
}
html:root body.kvl-design-v2 .um a:not(.um-button) { color: #185A32 !important; }
html:root body.kvl-design-v2 .um .um-form { background: transparent !important; }
/* Blog call-back pop-up: the full ivory card with the gold double frame used on every form card. */
html:root body.kvl-design-v2 .kvl-blog-lead__dialog {
    background: #FFFAEB !important;
    border: 1px solid rgba(201, 162, 39, .55) !important;
    border-radius: 16px !important;
    box-shadow: inset 0 0 0 6px #FFFAEB, inset 0 0 0 7px rgba(201, 162, 39, .3), 0 24px 60px rgba(7, 28, 17, .3) !important;
    color: #1f2a24 !important;
}
html:root body.kvl-design-v2 .kvl-blog-lead__accent { background: #C9A227 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__eyebrow { color: #8A6D12 !important; letter-spacing: .14em !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__title {
    font-family: "Source Serif 4", Georgia, "Times New Roman", serif !important;
    font-weight: 600 !important;
    color: #0F3D24 !important;
}
html:root body.kvl-design-v2 .kvl-blog-lead__sub { color: #3C4A42 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__fine { color: #5C6560 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__close {
    color: #0F3D24 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
html:root body.kvl-design-v2 .um :is(.um-field-block, .um-form p, .um-misc-with-img, .um-col-alt-b) { color: #3C4A42 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__close:is(:hover, :focus-visible) { background: #F5EDD6 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__backdrop { background: rgba(7, 28, 17, .55) !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__status.is-ok { color: #185A32 !important; }
html:root body.kvl-design-v2 .kvl-blog-lead__status.is-err { color: #A3341F !important; }

/* 7.22 Footer legal strip (LLP, APMI, AMFI, copyright): one alignment per screen size, owner feedback.
   The APMI text box had a fixed width, so it sat off-centre, ran off the left edge on some widths
   and broke "APRN-06567" across lines; the floating WhatsApp and back-to-top buttons covered the last lines. */
html body .elementor-element.elementor-element-a77b861 .elementor-widget {
    width: 100% !important;
    max-width: 100% !important;
}
html body .elementor-element.elementor-element-a77b861 .elementor-widget :is(.elementor-widget-container, p, .elementor-heading-title) {
    text-wrap: balance;
    overflow-wrap: normal;
}
/* Matches the footer padding rule above (#page ... .elementor-573 > .e-con) so this one wins. */
html body #page .ekit-template-content-footer .elementor-573 > .e-con.elementor-element-e557639 { padding-bottom: 84px !important; }
@media (min-width: 1025px) {
    html body .elementor-element.elementor-element-3745718,
    html body .elementor-element.elementor-element-3745718 .elementor-widget :is(.elementor-widget-container, p, .elementor-heading-title) { text-align: left !important; align-items: flex-start !important; }
    html body .elementor-element.elementor-element-bdaa1ea,
    html body .elementor-element.elementor-element-bdaa1ea .elementor-widget :is(.elementor-widget-container, p, .elementor-heading-title) { text-align: right !important; align-items: flex-end !important; }
}
@media (max-width: 1024px) {
    html body .elementor-element.elementor-element-a77b861,
    html body .elementor-element.elementor-element-a77b861 > .e-con-inner { flex-direction: column !important; align-items: center !important; gap: 4px !important; }
    html body .elementor-element.elementor-element-3745718,
    html body .elementor-element.elementor-element-bdaa1ea {
        width: 100% !important;
        max-width: 640px !important;
        margin: 0 auto !important;
        align-items: center !important;
        text-align: center !important;
    }
    html body .elementor-element.elementor-element-a77b861 .elementor-widget :is(.elementor-widget-container, p, .elementor-heading-title) { text-align: center !important; }
}/* Tablet (601-1024px): the four footer columns (brand, Links, Company, Support) were squeezed into
   one row, so the logo ran over "Links" and the email address was cut off. Two per row instead. */
@media (min-width: 601px) and (max-width: 1024px) {
    html body .elementor-element.elementor-element-4903d4c,
    html body .elementor-element.elementor-element-4903d4c > .e-con-inner { flex-wrap: wrap !important; row-gap: 32px !important; }
    html body .elementor-element.elementor-element-4903d4c :is(.elementor-element-c4c39ec, .elementor-element-0304bea, .elementor-element-7295b51, .elementor-element-1ca2d1e) {
        flex: 0 0 calc(50% - 20px) !important;
        width: calc(50% - 20px) !important;
        max-width: calc(50% - 20px) !important;
    }
}/* Footer logo never wider than its column (it overflowed on 1025-1279px laptops). */
html body #page .ekit-template-content-footer .elementor-573 .elementor-element-e7d1fcd img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 40px !important;
}