/**
Theme Name: CAMBRIA
Author: Extima
Author URI: https://extima.com
Description: Child theme for CAMBRIA
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cambria
Template: astra
*/


/* Self-hosted fonts (Extima 2026-09-24): Fustat + Manrope variable woff2, weights 200-800, replaces the Google Fonts request */
@font-face {
    font-family: 'Fustat';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/fustat-arabic.woff2') format('woff2');
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
    font-family: 'Fustat';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/fustat-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Fustat';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/fustat-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-cyrillic-ext.woff2') format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-cyrillic.woff2') format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-greek.woff2') format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-vietnamese.woff2') format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('fonts/manrope-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/*COLORS*/

:root {
    --color-blue: #3F9AE0;
    --color-navy: #022A53;
    --color-white: #FFFFFF;
    --color-text: #58585A;
    --color-blue-light: #33B1E729;
    --color-white-transparent: #FFFFFF14;

    --ff-fustat: 'Fustat', sans-serif;
    --ff-manrope: 'Manrope', sans-serif;
}


span.blue-light {
    color: var(--color-blue);
}

.ff-fustat a, 
.ff-fustat {
    font-family: var(--ff-fustat);
}

.elementor-element.elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}

/*Header*/
header:not(.ast-theme-transparent-header *) {
    background-color: #e8ebee;
}

.ast-primary-header-bar:not(.ast-theme-transparent-header *) {
    background: url('/wp-content/uploads/2026/09/form-bg.jpg'), linear-gradient(180deg, #022A53 0%, #045EB9 100%);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

#ast-desktop-header:not(.ast-theme-transparent-header *) {
    clip-path: polygon(0 91%, 10% 86%, 20% 84%, 30% 87%, 40% 93%, 50% 98%, 60% 100%, 70% 98%, 80% 93%, 90% 88%, 100% 84%, 100% 0, 0 0);
    height: 158px;
    background: url('/wp-content/uploads/2026/09/form-bg.jpg'), linear-gradient(180deg, #022A53 0%, #045EB9 100%);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.ast-builder-menu-1 .menu-link__btn a:after {
    content: '';
    background-image: url('/wp-content/uploads/2026/09/arrow.svg');
    width: 23px;
    height: 23px;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 10px;
}

.ast-builder-menu-1 .menu-link__btn a {
    border-bottom: 1px solid #3F9AE0;
    padding: unset !important;
    margin-left: 16px;
    margin-right: 16px;
    line-height: 40px !important;
}

.ast-builder-menu-1 {
    position: relative;
    isolation: isolate;
    border-radius: 16px;
    overflow: hidden;
    padding: 16px 16px !important;
    background: rgba(255, 255, 255, 0.01);
    backdrop-filter: blur(12px);
}

.ast-builder-menu-1::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;


    background: linear-gradient(
            135deg,
            #112c5e 0%,
            #5c73a1 50%,
            #112c5e 100%
    );

    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: 2;
}

.ast-builder-menu-1 .main-header-bar-navigation,
.ast-builder-menu-1 .customize-partial-edit-shortcut {
    position: relative;
    z-index: 3;
}

.arrow-btn.ice-blue:after {
    background-image: url('/wp-content/uploads/2026/09/ice-blue-arrow.svg');

}

.arrow-btn:after {
    content: '';
    background-image: url('/wp-content/uploads/2026/09/black-arrow.svg');
    width: 17px;
    height: 10px;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 10px;
    display: inline-block;

}

.arrow-btn {
    display: flex;
    align-items: center;
}

/*Footer*/


/* CTA band leader dot (E11, Eric 2026-09-25: keep the pulse). 15px sky dot centred on the
   dotted leader's start (the leader image sits under it in the same absolute container); the
   ring pulses outward. prefers-reduced-motion stops the loop (bottom of this file). */
.cambria-pulse-dot {
    display: block;
    position: relative;
    z-index: 2;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #33B1E7;
}

.cambria-pulse-dot::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background-color: #33B1E7;
    opacity: 0.5;
    animation: cambria-dot-pulse 2.6s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}

@keyframes cambria-dot-pulse {
    from { transform: scale(1); opacity: 0.5; }
    to   { transform: scale(2.2); opacity: 0; }
}

.position-relative {
    position: relative;
}

.glass-effect {
    position: relative;
    isolation: isolate;
    border-radius: 20px;
    overflow: hidden;

    background: rgba(255, 255, 255, 0.06) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
}

.glass-effect::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;

    background: linear-gradient(135deg, #4d6ca6 0%, #5c73a1 50%, #4d6ca6 100%);

    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: 2;
}

.glass-effect > * {
    position: relative;
    z-index: 3;
}

.footer__row p,
.footer__row a {
    color: white;
}

.footer__row--top {
    margin-bottom: 20px;
}

.footer__row .footer__cta:hover {
    color: #FFFFFF;
    background-color: rgba(120, 185, 235, 0.16);
}

.footer__row .footer__cta {
    background: #33B1E729;
    padding: 10px 32px;
    border-radius: 12px;
    border: 1px solid #3F9AE0;
    color: #66B0E7; /* D20: AA lift of the sky label on this fill (4.6:1), certified HTML value */
    transition: background-color 180ms ease, color 180ms ease;
    font-family: 'Fustat', sans-serif;
    font-weight: 700;
    line-height: 1.3;
}

.footer__link--underline {
    text-decoration: underline;
}

.footer__row .footer__nav,
.footer__row .footer__contacts {
    display: flex;
    gap: 10px;
    align-items: center;
}

.footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-block: -5px;
    color: #33B1E7;
}

.footer__social-link:hover {
    color: #FFFFFF;
}

[data-section="section-above-footer-builder"] .site-above-footer-inner-wrap {
    display: flex;
    justify-content: space-between;
}


@media (max-width: 976px) {
    [data-section="section-above-footer-builder"] .site-above-footer-inner-wrap {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .footer__row .footer__nav,
    .footer__row .footer__contacts {
        display: flex;
        gap: 10px;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
    }

}


/*Gravity forms*/

.subscribe-form {
    display: flex;

    justify-content: center;
}

.subscribe-form .elementor-shortcode,
.subscribe-form .gform_wrapper {
    width: 100%;
    display: flex;

    justify-content: center;
}

.subscribe-form .gform-body {
    width: 100%;
}

.subscribe-form .gform_wrapper #gform_1,
.gform_wrapper #gform_3 {
    display: flex;
    align-items: center;
}

.subscribe-form.firm .gform_wrapper #gform_1,
.gform_wrapper #gform_3 {
    width: fit-content;
}

.subscribe-form .gform_wrapper #gform_1,
.gform_wrapper #gform_3 {
    border: 1px solid #FFF6;
    padding-right: 10px;
    border-radius: 20px;
    max-width: 564px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    background: #FFFFFF14;
}

.subscribe-form .gform_wrapper #gform_1 .ginput_container_email input,
.gform_wrapper #gform_3 .ginput_container_email input {
    background: unset;
    border: unset;
    padding: 23px 28px;
    height: 72px;
}

.subscribe-form .gform_wrapper #gform_1 #gform_submit_button_1:hover,
.gform_wrapper #gform_3 #gform_submit_button_3:hover {
    color: #FFFFFF;
    background-color: rgba(120, 185, 235, 0.16);
}

.subscribe-form .gform_wrapper #gform_1 #gform_submit_button_1,
.gform_wrapper #gform_3 #gform_submit_button_3 {
    background: #33B1E729;
    padding: 16px 32px;
    border-radius: 12px;
    border: 1px solid #3F9AE0;
    color: #3F9AE0;
    transition: background-color 180ms ease, color 180ms ease;
    font-family: 'Fustat', sans-serif;
    font-weight: bold;
    font-size: 20px;

}

@media (max-width: 768px) {
    .subscribe-form .gform_wrapper #gform_1 #gform_submit_button_1,
    .gform_wrapper #gform_3 #gform_submit_button_3 {
        background: #33B1E729;
        padding: 12px 16px;
        border-radius: 12px;
        border: 1px solid #3F9AE0;
        color: #3F9AE0;
        transition: background-color 180ms ease, color 180ms ease;
        font-family: 'Fustat', sans-serif;
        font-weight: bold;
        font-size: 16px;

    }
}

.subscribe-form .gform_wrapper #gform_1 .ginput_container_email input,
.gform_wrapper #gform_3 .ginput_container_email input,
.subscribe-form .gform_wrapper #gform_1 .ginput_container_email input::placeholder,
.gform_wrapper #gform_3 .ginput_container_email input::placeholder {
    color: #FFFFFFCC;
    font-size: 20px;
    line-height: 130%;
    font-weight: 400;
}

.subscribe-form .gform_wrapper #gform_1 .gform-footer,
.gform_wrapper #gform_3 .gform-footer {
    margin: unset;
}


/*Home Table*/

.matrix {
    width: 100%;
    min-width: 1000px;
    table-layout: fixed;
    border-collapse: collapse;
    background: transparent; /* the section ground shows through; zebra rows below (design: Brand Blue 4%) */
    margin-bottom: unset;
    border-bottom: 1px solid #022A5329;
    border-left: unset;
    border-right: unset;
}

.matrix-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.matrix thead th,
.matrix__row td {
    border: 1px solid #022A5329;
}

.matrix thead th {
    border-top: none;
    border-bottom: none;
}

.matrix thead th:first-child,
.matrix__row td:first-child {
    border-left: none;
}

.matrix thead th:last-child,
.matrix__row td:last-child {
    border-right: none;
}

.matrix tbody tr:last-child td {
    border-bottom: none;
}

.matrix thead th {
    padding: 20px 12px;
    border: unset;
    background: #e3e8ee;
}

.matrix__col-title {
    display: block;
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: 14.5px;
    line-height: 18px;
    text-align: center;
    color: #022A53;
}

.matrix__row-title {
    display: block;
    width: 127px;
    height: 23px;
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 600;
    font-size: 15px;
    line-height: 22px;
    color: #022A53;
    white-space: nowrap;
    flex: none;
    order: 0;
    flex-grow: 0;
}

.matrix__row td {
    padding: 18px 12px;
    text-align: center;
}

.matrix__row td:first-child {
    text-align: left;
    padding-left: 20px;
}

.matrix__row:nth-child(odd) {
    background: transparent;
}

.matrix__row:nth-child(even) {
    background: rgba(2, 42, 83, 0.04);
}


.matrix__row:hover {
    background: #dfe4e8;
}

.matrix__dot {
    position: relative;
    display: inline-block;
    width: 10px;
    height: 10px;
    background: #3F9AE0;
    border-radius: 5px;
    flex: none;
    order: 0;
    flex-grow: 0;
}

.matrix__dot::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    background: #3F9AE0;
    opacity: 0;
    border-radius: 50%;
    pointer-events: none;
}

.matrix__row:hover .matrix__dot::after {
    opacity: 0.5;
}


/*351 ETF Exchange*/

.how-it-works__video iframe.elementor-video {
    border-radius: 16px;
}

/*Contact page*/

.contact-form #gform_wrapper_2 {
    --cf-text: #022A53;
    --cf-placeholder: rgba(2, 42, 83, 0.4);
    --cf-accent: #3F9AE0;
    --cf-field-height: 54px;
    --cf-radius: 12px;

    --gf-form-gap-y: 20px;
    --gf-form-gap-x: 24px;
    font-family: 'Manrope', sans-serif;
}

.contact-form #gform_wrapper_2 #gform_fields_2 {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    row-gap: 20px;
    column-gap: 24px;
}

.contact-form #gform_wrapper_2 #gform_fields_2 .gfield {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
}

.contact-form #gform_wrapper_2 #input_2_1 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
}

.contact-form #gform_wrapper_2 #input_2_1 .gform-grid-col {
    flex: 1 1 0;
    min-width: 200px;
    padding: 0;
}

.contact-form #gform_wrapper_2 .gfield > label.gform-field-label,
.contact-form #gform_wrapper_2 .gfield > legend.gform-field-label {
    display: block;
    width: auto;
    height: auto;
    margin: 0 0 12px;
    padding: 0;
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 18px;
    line-height: 130%;
    text-align: left;
    color: var(--cf-text);
}

.contact-form #gform_wrapper_2 .gfield_required {
    display: none;
}

.contact-form #gform_wrapper_2 #field_2_6 > legend {
    display: none;
}

.contact-form #gform_wrapper_2 #input_2_1_3,
.contact-form #gform_wrapper_2 #input_2_1_6,
.contact-form #gform_wrapper_2 #input_2_2,
.contact-form #gform_wrapper_2 #input_2_4,
.contact-form #gform_wrapper_2 #input_2_5 {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 100%;
    height: var(--cf-field-height);
    min-height: var(--cf-field-height);
    margin: 0;
    padding: 16px 24px;
    background: #FFFFFF;
    border: 0;
    border-radius: var(--cf-radius);
    box-shadow: none;
    outline: none;
    color: var(--cf-text);
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 16px;
    line-height: 140%;
}

.contact-form #gform_wrapper_2 #input_2_1_3::placeholder,
.contact-form #gform_wrapper_2 #input_2_1_6::placeholder,
.contact-form #gform_wrapper_2 #input_2_2::placeholder,
.contact-form #gform_wrapper_2 #input_2_4::placeholder {
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 16px;
    line-height: 140%;
    color: var(--cf-placeholder);
    opacity: 1;
}

.contact-form #gform_wrapper_2 #input_2_1_3:focus,
.contact-form #gform_wrapper_2 #input_2_1_6:focus,
.contact-form #gform_wrapper_2 #input_2_2:focus,
.contact-form #gform_wrapper_2 #input_2_4:focus,
.contact-form #gform_wrapper_2 #input_2_5:focus {
    outline: none;
    box-shadow: 0 0 0 2px var(--cf-accent);
}

.contact-form #gform_wrapper_2 #input_2_5 {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 56px;
    cursor: pointer;
    background-color: #FFFFFF;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23022A53' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 24px center;
    background-size: 12px 8px;
}

.contact-form #gform_wrapper_2 #input_2_5:has(option.gf_placeholder:checked) {
    color: var(--cf-placeholder);
}

.contact-form #gform_wrapper_2 #input_2_5 option {
    color: var(--cf-text);
}

.contact-form #gform_wrapper_2 .ginput_container_consent {
    display: flex;
    align-items: center;
    gap: 12px;
}

.contact-form #gform_wrapper_2 #input_2_6_1 {
    appearance: none;
    -webkit-appearance: none;
    flex: none;
    box-sizing: border-box;
    width: 23px;
    height: 23px;
    min-width: 23px;
    margin: 0;
    padding: 0;
    background-color: #FFFFFF;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 10px;
    border: 0;
    border-radius: 4px;
    box-shadow: none;
    cursor: pointer;
}

.contact-form #gform_wrapper_2 #input_2_6_1::before,
.contact-form #gform_wrapper_2 #input_2_6_1::after {
    display: none;
    content: none;
}

.contact-form #gform_wrapper_2 #input_2_6_1:checked {
    background-image: url("data:image/svg+xml,%3Csvg width='13' height='10' viewBox='0 0 13 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5L4.6 8.6L12 1' stroke='%23022A53' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.contact-form #gform_wrapper_2 #input_2_6_1:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--cf-accent);
}

.contact-form #gform_wrapper_2 .gfield_consent_label {
    margin: 0;
    padding: 0;
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 18px;
    line-height: 130%;
    text-align: left;
    color: var(--cf-text);
    cursor: pointer;
}

.contact-form #gform_wrapper_2 .gform_footer {
    margin: 20px 0 0;
    padding: 0;
}

.contact-form #gform_wrapper_2 #gform_submit_button_2 {
    box-sizing: border-box;
    margin-top: 20px;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 8px;
    flex: none;
    order: 1;
    flex-grow: 0;
    width: 132px;
    height: 58px;
    min-height: 58px;
    margin: 0;
    padding: 16px 32px;
    background: #3F9AE0;
    border: 0;
    border-radius: 12px;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 180ms ease;
    font-family: 'Fustat', sans-serif; /* D17: button token = Fustat Bold 20 (GF markup, no Elementor control) */
    font-weight: 700;
    font-size: 20px;
    line-height: 130%;
    color: #022A53;
}

.contact-form #gform_wrapper_2 #gform_submit_button_2:hover {
    background: #2f88cc;
}

.contact-form #gform_wrapper_2 #gform_submit_button_2:focus-visible {
    outline: 2px solid var(--cf-text);
    outline-offset: 2px;
}

/*Firm page map*/

.rr-widget {
    --font-display: 'Fustat', sans-serif;
    --font-body: 'Manrope', sans-serif;
    --color-ink: #0f2540;
    --color-ink-soft: #4a5f7a;
    --color-hairline: #d9e2ee;

    font-family: var(--font-body);
    color: var(--color-ink);
}

.rr-widget *,
.rr-widget *::before,
.rr-widget *::after {
    box-sizing: border-box;
}

@keyframes rr-fade {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.rr-selector {
    margin-top: 27px;
    display: flex;
    /*grid-template-columns: repeat(2, 1fr);*/
    gap: 9px;
    flex-wrap: wrap;
}

/*@media (min-width: 640px) {*/
/*    .rr-selector {*/
/*        grid-template-columns: repeat(3, 1fr);*/
/*    }*/
/*}*/

.rr-btn {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 45px;
    padding: 9px 14px;
    border-radius: 9px;
    border: 1px solid var(--color-hairline);
    background: #fff;
    text-align: left;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: all 0.3s ease;
}

.rr-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--color-ink), 0 0 0 4px #fff;
}

.rr-btn__dot {
    width: 11px;
    height: 11px;
    border-radius: 5px;
    flex-shrink: 0;
    background: var(--rr-accent);
    transition: transform 0.3s ease;
}

.rr-btn__label {
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    color: var(--color-ink-soft);
}

.rr-btn.is-active {
    border-color: var(--rr-accent);
    background: color-mix(in oklab, var(--rr-accent) 7%, transparent);
}

.rr-btn.is-active .rr-btn__label {
    color: var(--color-ink);
}

.rr-btn.is-active .rr-btn__dot {
    transform: scale(1.25);
}

.rr-btn--tx {
    --rr-accent: #33b4e3;
}

.rr-btn--west {
    --rr-accent: #2f7d3f;
}

.rr-btn--central {
    --rr-accent: #2c5b9c;
}

.rr-btn--northeast {
    --rr-accent: #6cbe63;
}

.rr-btn--southeast {
    --rr-accent: #5b3f8f;
}

.rr-card {
    position: sticky;
    top: 36px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--color-hairline);
    box-shadow: 0 18px 40px -28px rgba(15, 37, 64, 0.4);
    animation: rr-fade 0.25s ease-out;
}

.rr-card__header {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 27px;
    background: var(--rr-accent);
}

.rr-card__eyebrow {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--rr-on-soft);
}

.rr-card__title {
    font-family: var(--font-display);
    font-size: 27px;
    font-weight: 800;
    margin-bottom: unset;
    line-height: 1.25;
    color: var(--rr-on-title);
}

.map-svg svg {
    cursor: pointer;
}

.rr-card__meta {
    font-size: 14px;
    color: var(--rr-on-meta);
}

.rr-card__body {
    background: #fff;
}

.rr-consultant {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 120px;
    gap: 24px;
    padding: 26px;
}

.rr-consultant__content {
    min-width: 0;
}

.rr-consultant__media {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rr-consultant__headshot {
    display: block;
    width: 132px;
    height: 132px;
    object-fit: cover;
    border-radius: 4px;
}

.rr-consultant__linkedin {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #fff;
    background: #022a53;
    border-radius: 2px;
    transition: opacity 0.2s ease;
}

.rr-consultant__linkedin:hover {
    opacity: 0.8;
}

.rr-consultant__linkedin svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

@media (max-width: 600px) {
    .rr-consultant {
        grid-template-columns: minmax(0, 1fr) 100px;
        gap: 16px;
        padding: 20px;
    }

    .rr-consultant__headshot {
        width: 100px;
        height: 100px;
    }
}

.rr-consultant + .rr-consultant {
    border-top: 1px solid var(--color-hairline);
}

.rr-consultant__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
}

.rr-consultant__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--color-ink);
    line-height: 28px;
    margin-bottom: 4px;
}

.rr-consultant__badge {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 5px 9px;
    border-radius: 9999px;
    background: color-mix(in oklab, var(--rr-hl) 9%, transparent);
    color: var(--rr-hl);
}

.rr-consultant__role {
    font-size: 13px;
    color: var(--color-ink-soft);
}

.rr-consultant__disclaimer {
    font-size: 12px;
    font-style: italic;
    color: color-mix(in oklab, var(--color-ink-soft) 80%, transparent);
}

.rr-consultant__contacts {
    margin-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.rr-contact {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    color: var(--color-ink-soft);
    text-decoration: none;
    transition: color 0.15s ease;
}

.rr-contact--email {
    color: var(--color-ink);
}

.rr-contact--email:hover {
    color: var(--rr-hl);
}

.rr-contact--phone {
    font-variant-numeric: tabular-nums;
}

.rr-contact--phone:hover {
    color: var(--color-ink);
}

.rr-contact__dot {
    width: 7px;
    height: 7px;
    border-radius: 9999px;
    flex-shrink: 0;
    background: var(--rr-accent);
}

.rr-contact__text {
    text-decoration: underline;
    text-decoration-color: var(--color-hairline);
    text-underline-offset: 2px;
}

.rr-contact--email:hover .rr-contact__text {
    text-decoration-color: currentColor;
}

.rr-card--tx {
    --rr-accent: #33b4e3;
    --rr-hl: #1a6f94;
    --rr-on-soft: rgba(15, 37, 64, 0.7);
    --rr-on-title: #0f2540;
    --rr-on-meta: rgba(15, 37, 64, 0.85);
}

.rr-card--west {
    --rr-accent: #2f7d3f;
    --rr-hl: #2f7d3f;
    --rr-on-soft: rgba(255, 255, 255, 0.75);
    --rr-on-title: #fff;
    --rr-on-meta: rgba(255, 255, 255, 0.85);
}

.rr-card--central {
    --rr-accent: #2c5b9c;
    --rr-hl: #2c5b9c;
    --rr-on-soft: rgba(255, 255, 255, 0.75);
    --rr-on-title: #fff;
    --rr-on-meta: rgba(255, 255, 255, 0.85);
}

.rr-card--northeast {
    --rr-accent: #6cbe63;
    --rr-hl: #2f7d3f;
    --rr-on-soft: rgba(15, 37, 64, 0.7);
    --rr-on-title: #0f2540;
    --rr-on-meta: rgba(15, 37, 64, 0.85);
}

.rr-card--southeast {
    --rr-accent: #5b3f8f;
    --rr-hl: #5b3f8f;
    --rr-on-soft: rgba(255, 255, 255, 0.75);
    --rr-on-title: #fff;
    --rr-on-meta: rgba(255, 255, 255, 0.85);
}

[data-region-info="tx-rockies-pacific-nw"] .rr-consultant__linkedin {
    background-color: var(--rr-accent);
}

[data-region-info="west"] .rr-consultant__linkedin {
    background-color: var(--rr-accent);
}

[data-region-info="central"] .rr-consultant__linkedin {
    background-color: var(--rr-accent);
}

[data-region-info="northeast"] .rr-consultant__linkedin {
    background-color: var(--rr-accent);
}

[data-region-info="southeast"] .rr-consultant__linkedin {
    background-color: var(--rr-accent);
}

.pinned-clear {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 12px;
    background-color: #f4f7fb;
    padding: 8px 14px;
    color: #0f2540;
    border: #d9e2ee 1px solid;
    border-radius: 17px;
    text-transform: uppercase;

}

.investment-insights .e-loop-item {
    border-bottom: 1px solid #0A162833;
}

.investment-insights .e-loop-item:last-child {
    border: unset;
}


/*Research page*/


.rf-cats {
    display: flex;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .rf-cats {
        display: flex;
        align-items: center;
        gap: 20px 40px;
        flex-wrap: wrap;
    }
}

.rf-cat {
    position: relative;
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 130%;
    color: #022A53;
    cursor: pointer;
    border-bottom: 1.5px solid transparent;
}

.rf-cat:not(:last-child)::after {
    content: '';
    position: absolute;
    right: -20px;
    top: 50%;
    width: 1px;
    height: 15px;
    background: #022A53;
    transform: translateY(-50%);
}

.rf-cat--active {
    border-bottom: 1.5px solid #022A53;
}

.rf-controls {
    display: grid;
    grid-template-columns: 1fr 400px;
    align-items: center;
    gap: 24px;
    margin-top: 40px;
    margin-bottom: 40px;
}

@media (max-width: 640px) {
    .rf-controls {
        grid-template-columns: 1fr;
    }
}


.rf-search {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 16px 4px;
    width: 100%;
    max-width: 820px;
    height: 64px;
    background: #FFFFFF;
    border-radius: 16px;
    box-sizing: border-box;
}

.rf-search input {
    flex: 1;
    border: none;
    outline: none;
    font-family: 'Manrope', sans-serif;
    font-size: 16px;
    color: #022A53;
    box-shadow: unset;
}

.rf-search__icon {
    width: 32px;
    height: 32px;
    margin-left: 12px;
}

.rf-tagselect {
    position: relative;
    width: 100%;
    max-width: 400px;
}

.rf-tagselect__toggle {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    width: 100%;
    height: 64px;
    background: #FFFFFF;
    border-radius: 16px;
    box-sizing: border-box;
    cursor: pointer;
}

.rf-tagselect__icon {
    width: 32px;
    height: 32px;
    margin-right: 12px;
}

.rf-tagselect__toggle span {
    flex: 1;
    font-family: 'Manrope', sans-serif;
    font-size: 16px;
    color: #022A53;
}

.rf-tagselect__arrow {
    width: 14px;
    height: 14px;
}

.rf-tagselect__dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: #FFFFFF;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(2, 42, 83, 0.12);
    max-height: 280px;
    overflow-y: auto;
    z-index: 10;
}

.rf-tagselect__dropdown--open {
    display: block;
}

.rf-tag-option {
    padding: 12px 24px;
    font-family: 'Manrope', sans-serif;
    font-size: 16px;
    color: #022A53;
    cursor: pointer;
}

.rf-tag-option:hover {
    background: #F2F6FA;
}

.rf-results.rf-loading {
    opacity: 0.5;
    pointer-events: none;
}

.rf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 56px;
    margin-top: 32px;
}

.rf-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}


@media (max-width: 768px) {
    .rf-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
        margin-top: 32px;
    }

}

@media (max-width: 540px) {
    .rf-grid {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: 34px;
        margin-top: 32px;
    }

}

.rf-card__thumb {
    max-height: 300px;
    height: 100%;
    margin-bottom: 32px;
}

.rf-card__thumb img {
    width: 240px;
    height: 100%;
    object-fit: contain;
    border-radius: unset;
}

.rf-card__title {

}

.rf-card__btn {
    align-self: flex-start;
    padding: 12px 28px;
    border: 1px solid #022A53;
    border-radius: 8px;
    color: #022A53;
    font-weight: bold;
    font-size: 20px;
    line-height: 130%;
    text-decoration: none;
    font-family: var(--ff-fustat);
}

/*
   .rf-grid--layout-webinars { grid-template-columns: repeat(2, 1fr); }
   .rf-card--layout-webinars .rf-card__thumb { ... }
*/


.rf-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 40px;
}

.rf-page-num,
.rf-page-arrow {
    font-family: 'Manrope', sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: 24px;
    line-height: 120%;
    text-align: center;
    color: #022A53;
    cursor: pointer;
}

.rf-page-num--active,
.rf-page-num:hover,
.rf-page-arrow:hover {
    color: #3F9AE0;
}

.rf-page-arrow.rf-disabled {
    opacity: 0.3;
    pointer-events: none;
    cursor: default;
}

.rf-card__top {
    height: 100%;
}

.rf-card--books h4 {
    margin-bottom: 12px;
}

.rf-card--books img {
    width: 200px;
}

.rf-card--books .rf-card__excerpt {
    margin-bottom: 32px;
    color: #0A1628CC;
    font-size: 18px;
}

.rf-card--books a {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 8px;
    align-items: center;
}

.rf-card--books a:after {
    content: '';
    width: 16px;
    height: 16px;
    display: block;
    background-image: url(/wp-content/uploads/2026/09/research-book-arrow.svg);
}

.page-id-38 .astra-advanced-hook-86 .elementor-element-b50d9c2 {
    background-color: #052d57 !important;
}

.how-it-works ul {
    display: flex;
    flex-direction: column;
    gap: 12px;
}



/* ==========================================================================
   Round 2 A (Extima, 2026-09-25). Formatting + machinery only: colours, fonts and sizes
   the client would change live in Elementor / Astra controls on the kit globals.
   ========================================================================== */

/* Home hero headline: one H1, 864 wide (widget Advanced > Width keeps the two-line break); the
   highlighted phrase is a plain <span> in the Heading widget; its colour is the kit
   Primary global, so changing the global recolours it. */
.cmb-hero-title .elementor-heading-title span { color: var(--e-global-color-primary); }

/* Desktop nav pill (D24): 63 tall, 29px glass blur, 40px link boxes. Contact + the ETF
   link are set in Fustat in the approved file (the other three are Manrope). */
.ast-builder-menu-1 {
    padding: 11px 16px 12px 24px !important; /* Astra writes its own padding on this wrapper */
    backdrop-filter: blur(29px);
    -webkit-backdrop-filter: blur(29px);
}
#ast-hf-menu-1 .menu-item-48 > .menu-link,
#ast-hf-menu-1 .menu-item-21 > .menu-link { font-family: var(--ff-fustat); }

/* Mobile full-screen menu (D1): Astra Full-Screen off-canvas carries the navy ground,
   Fustat 32/26 white links, Escape + X close and focus return. Here: vertical centring,
   the ETF item as the underlined arrow link, and the scroll lock (Astra leaves the page
   scrollable under the overlay). */
.ast-mobile-popup-drawer .ast-mobile-popup-inner { display: flex; flex-direction: column; }
.ast-mobile-popup-drawer .ast-mobile-popup-header { position: absolute; top: 24px; right: 24px; padding: 0; z-index: 2; }
#ast-mobile-popup .ast-mobile-popup-content {
    flex: 1 1 auto;
    display: flex !important; /* Astra's menu JS writes an inline display:block on this node */
    flex-direction: column;
    justify-content: center;
    padding: 96px 32px 48px;
}
#ast-hf-mobile-menu > .menu-item > .menu-link {
    padding: 14px 0;
    border: 0;
    line-height: 1.2;
    letter-spacing: -0.01em;
}
#ast-hf-mobile-menu > .menu-item { border: 0; }
#ast-hf-mobile-menu > .menu-link__btn > .menu-link {
    display: flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    margin-top: 12px;
    padding: 0 0 8px;
    border-bottom: 1px solid #3F9AE0;
}
#ast-hf-mobile-menu > .menu-link__btn > .menu-link::after {
    content: '';
    width: 23px;
    height: 23px;
    background: url('/wp-content/uploads/2026/09/arrow.svg') center / contain no-repeat;
}
.ast-mobile-popup-drawer .menu-toggle-close,
.ast-mobile-popup-drawer.active .menu-toggle-close:focus {
    width: 52px;
    height: 52px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.08);
}
[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal:focus { border-style: solid; }
html:has(.ast-mobile-popup-drawer.active) { overflow: hidden; }

/* Keyboard focus (D27): one 2px solid ring in Bright Blue, 2px offset (replaces Astra's dotted). */
body :focus-visible {
    outline: 2px solid var(--e-global-color-primary, #3F9AE0);
    outline-offset: 2px;
}

/* CTA band (template 86): the address card overhangs into the footer by design, so the
   band stacks above it. */
.cmb-cta-band { z-index: 3; }
.cmb-cta-pin__line img { display: block; width: 56px; height: auto; }

/* Strategies matrix @ phones (A24): right-edge fade says "this table scrolls". */
@media (max-width: 767px) {
    .matrix-wrapper {
        -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent);
        mask-image: linear-gradient(90deg, #000 82%, transparent);
    }
}

/* Newsletter forms @ phones (D18): the Subscribe button drops under the input so the
   placeholder is never truncated. */
@media (max-width: 480px) {
    .subscribe-form .gform_wrapper #gform_1,
    .subscribe-form.firm .gform_wrapper #gform_1,
    .gform_wrapper #gform_3 {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        padding: 10px;
        gap: 8px;
    }
    .subscribe-form .gform_wrapper #gform_1 .ginput_container_email input { height: 56px; padding: 14px; }
    .subscribe-form .gform_wrapper #gform_1 .gform-footer,
    .gform_wrapper #gform_3 .gform-footer { width: 100%; }
    .subscribe-form .gform_wrapper #gform_1 #gform_submit_button_1,
    .gform_wrapper #gform_3 #gform_submit_button_3 { width: 100%; padding: 14px 20px; }
}

/* Footer @ phones (D31): 44px tap targets. */
@media (max-width: 767px) {
    .footer__row .footer__link { display: inline-flex; align-items: center; min-height: 44px; }
    .footer__social-link { width: 44px; height: 44px; }
}

/* Footer legal (D10): Fustat Regular on a 26px pitch (size + 72% colour are the Astra Footer Widget 1
   controls; Astra does not print the family for a self-hosted face, so it is set here). Copyright on 28. */
.footer-widget-area[data-section="sidebar-widgets-footer-widget-1"] p { font-family: var(--ff-fustat); line-height: 26px; }
.ast-footer-copyright p { line-height: 28px; }
@media (max-width: 767px) {
    .footer-widget-area[data-section="sidebar-widgets-footer-widget-1"] p { line-height: 24px; }
    .ast-footer-copyright p { line-height: 22px; }
}

/* Firm consultant card LinkedIn tiles keep a white glyph on hover (Etai 09-25); 24px tile on phones (D31). */
.rr-consultant__linkedin:hover,
.rr-consultant__linkedin:focus { color: #FFFFFF; }
@media (max-width: 767px) {
    .rr-consultant__linkedin { width: 24px; height: 24px; }
    .rr-consultant__linkedin svg { width: 18px; height: 18px; }
}
.rr-card__title { font-size: 27px; }
.rr-consultant__name { font-size: 18px; letter-spacing: 0; }

/* Research CTA seam: Research's last band is navy, so the band's transparent seam corners
   need navy there. Kept until the Research page's own Page Settings > Background carries it
   (builder B's page); the template itself now falls back to Brand Blue (D21). */

/* Motion off for people who ask for it (A15 / E11). */
@media (prefers-reduced-motion: reduce) {
    .cambria-pulse-dot::after { animation: none; opacity: 0; }
    *, *::before, *::after { transition-duration: 0.001ms !important; }
}

/* ==========================================================================
   Round 2 fix loop (Extima, 2026-09-25, after Quincy's r2 pass). Formatting + machinery only.
   ========================================================================== */

/* N1 Firm map: "Pacific NW" stays on one line without a character inside the region key. */
.rr-nowrap { white-space: nowrap; }

/* N5 side gutters, ONE place for the whole site (certified HTML: 64 <=1439, 48 <=1200, 40 <=1024,
   24 <=767, 20 <=400). Every top-level Elementor container carries its own 20/20 padding, which beats the
   kit's container padding, and raising the kit default would also pad every nested container that relies
   on it; so the page-level containers, the Astra header rows and the Astra footer rows read one token here.
   Popups and loop items keep their own padding. At 1440+ the 1240 boxed width is unchanged. */
:root { --cmb-gutter: 20px; }
@media (max-width: 1439px) { :root { --cmb-gutter: 64px; } }
@media (max-width: 1200px) { :root { --cmb-gutter: 48px; } }
@media (max-width: 1024px) { :root { --cmb-gutter: 40px; } }
@media (max-width: 767px)  { :root { --cmb-gutter: 24px; } }
@media (max-width: 400px)  { :root { --cmb-gutter: 20px; } }
@media (max-width: 1439px) {
    html body .elementor:not(.elementor-location-popup):not(.e-loop-item) > .e-con.e-parent {
        --padding-left: var(--cmb-gutter);
        --padding-right: var(--cmb-gutter);
    }
    #ast-desktop-header .site-primary-header-wrap.ast-builder-grid-row-container {
        max-width: calc(1240px + 2 * var(--cmb-gutter));
        padding-left: var(--cmb-gutter);
        padding-right: var(--cmb-gutter);
    }
    .site-footer .site-above-footer-wrap[data-section],
    .site-footer .site-primary-footer-wrap[data-section],
    .site-footer .site-below-footer-wrap[data-section] {
        padding-left: var(--cmb-gutter);
        padding-right: var(--cmb-gutter);
    }
}
#masthead #ast-mobile-header .ast-primary-header-bar {
    padding-left: var(--cmb-gutter);
    padding-right: var(--cmb-gutter);
}

/* N2 interior header at <=1060 (Astra mobile header): the HTML's navy band, 136 tall with the traced
   28px wave seam at its foot (the same curve as the desktop band), logo + toggle on a 52px row 20px
   from the top. The seam is painted in the page ground (Slight Blue Gray global) over the band. The
   space under the header puts the H1 at the HTML's y (208 tablet, 192 phone). */
#ast-mobile-header .ast-primary-header-bar {
    box-sizing: border-box;
    min-height: 72px;
    padding-top: 20px;
}
#ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row { min-height: 52px; }
#ast-mobile-header .site-branding { padding-top: 0; padding-bottom: 0; }
body:not(.ast-theme-transparent-header) #ast-mobile-header .ast-primary-header-bar {
    position: relative;
    min-height: 136px;
    padding-bottom: 64px;
}
body:not(.ast-theme-transparent-header) #ast-mobile-header .ast-primary-header-bar::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 28px;
    background-color: var(--e-global-color-79b19cb, #E8EBEE);
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2028'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,12C16.2,10.7%2064.8,5.8%2097,4C129.2,2.2%20161,1.7%20193,1C225,0.3%20257,-0.2%20289,0C321,0.2%20353,1.2%20385,2C417,2.8%20449,3.7%20481,5C513,6.3%20545,8.3%20577,10C609,11.7%20641,13.3%20673,15C705,16.7%20737,18.7%20769,20C801,21.3%20833,22.2%20865,23C897,23.8%20929,24.5%20961,25C993,25.5%201025,26%201057,26C1089,26%201121,25.5%201153,25C1185,24.5%201217,24%201249,23C1281,22%201313.2,20.8%201345,19C1376.8,17.2%201424.2,13.2%201440,12L1440,28L0,28Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2028'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,12C16.2,10.7%2064.8,5.8%2097,4C129.2,2.2%20161,1.7%20193,1C225,0.3%20257,-0.2%20289,0C321,0.2%20353,1.2%20385,2C417,2.8%20449,3.7%20481,5C513,6.3%20545,8.3%20577,10C609,11.7%20641,13.3%20673,15C705,16.7%20737,18.7%20769,20C801,21.3%20833,22.2%20865,23C897,23.8%20929,24.5%20961,25C993,25.5%201025,26%201057,26C1089,26%201121,25.5%201153,25C1185,24.5%201217,24%201249,23C1281,22%201313.2,20.8%201345,19C1376.8,17.2%201424.2,13.2%201440,12L1440,28L0,28Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
    pointer-events: none;
}
@media (max-width: 1060px) {
    body:not(.ast-theme-transparent-header) #masthead { padding-bottom: 27px; }
}
@media (max-width: 767px) {
    body:not(.ast-theme-transparent-header) #masthead { padding-bottom: 16px; }
}

/* N6 mobile menu toggle = the HTML's 52x52 glass pill (fill colour + radius are the Astra toggle
   controls; the size, hairline border and blur are here). */
#ast-mobile-header .menu-toggle.main-header-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.12);
    -webkit-backdrop-filter: blur(29px);
    backdrop-filter: blur(29px);
}
#ast-mobile-header .menu-toggle .ast-mobile-svg { width: 22px; height: 22px; fill: #FFFFFF; }

/* N3 home hero at <=1024: the wave artwork is stretched to the band (instead of cover-cropped) so the
   whole S-curve survives at every width, as the HTML's seam does. */
@media (max-width: 1024px) {
    body .elementor .elementor-element.cmb-hero.e-con:not(.elementor-motion-effects-element-type-background) {
        background-size: 100% 100%;
        background-position: center bottom;
    }
}

/* N4 hero arc texture: the Background Overlay layer (4.7% arcs) sits under the hero content and never
   takes clicks, so the Explore Cambria ETFs button and the form stay reachable. */
.cmb-hero.e-con::before { pointer-events: none; z-index: 0; }
.cmb-hero.e-con > .elementor-element { position: relative; z-index: 1; }

/* N16 CTA band at phones: the HTML's dome (103px tall across the full width). The mask keeps the band
   under the dome line; the seam corners show the page ground behind it, as on desktop. The address
   card is in flow at this width, so nothing overhangs the masked box. */
@media (max-width: 767px) {
    .cmb-cta-band {
        -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%20103'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,101C16.2,96.5%2064.8,82.3%2097,74C129.2,65.7%20161,57.7%20193,51C225,44.3%20257,39.2%20289,34C321,28.8%20353,24%20385,20C417,16%20449,12.8%20481,10C513,7.2%20545,4.7%20577,3C609,1.3%20641,0.5%20673,0C705,-0.5%20737,-0.5%20769,0C801,0.5%20833,1.3%20865,3C897,4.7%20929,7.2%20961,10C993,12.8%201025,16%201057,20C1089,24%201121,28.7%201153,34C1185,39.3%201217,45.3%201249,52C1281,58.7%201313.2,65.8%201345,74C1376.8,82.2%201424.2,96.5%201440,101L1440,103L0,103Z'/%3E%3C/svg%3E") top / 100% 103px no-repeat, linear-gradient(#000, #000) 0 102px / 100% calc(100% - 102px) no-repeat;
        mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%20103'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0,101C16.2,96.5%2064.8,82.3%2097,74C129.2,65.7%20161,57.7%20193,51C225,44.3%20257,39.2%20289,34C321,28.8%20353,24%20385,20C417,16%20449,12.8%20481,10C513,7.2%20545,4.7%20577,3C609,1.3%20641,0.5%20673,0C705,-0.5%20737,-0.5%20769,0C801,0.5%20833,1.3%20865,3C897,4.7%20929,7.2%20961,10C993,12.8%201025,16%201057,20C1089,24%201121,28.7%201153,34C1185,39.3%201217,45.3%201249,52C1281,58.7%201313.2,65.8%201345,74C1376.8,82.2%201424.2,96.5%201440,101L1440,103L0,103Z'/%3E%3C/svg%3E") top / 100% 103px no-repeat, linear-gradient(#000, #000) 0 102px / 100% calc(100% - 102px) no-repeat;
    }
}

/* N7 / N23 popup close: 44px tap target around the 22px glyph (the glyph keeps its place), drawn as the
   HTML's stroke-3 X in the popup's close colour (white). */
.elementor-popup-modal .dialog-close-button {
    box-sizing: content-box;
    width: 22px;
    height: 22px;
    padding: 11px;
    margin: -11px -11px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
}
.elementor-popup-modal .dialog-close-button svg { display: none; }
.elementor-popup-modal .dialog-close-button:focus:not(:focus-visible) { outline: none; }
.elementor-popup-modal .dialog-close-button::before {
    content: "";
    width: 22px;
    height: 22px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'%3E%3Cpath%20d='M6%206l12%2012M18%206L6%2018'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'%3E%3Cpath%20d='M6%206l12%2012M18%206L6%2018'/%3E%3C/svg%3E") center / 22px 22px no-repeat;
}

/* N8 / N17 / N18 footer. Left-aligned at every width like the HTML (the Astra alignment controls are set
   to left for tablet + mobile; these rows are the child theme's own flex layout). Astra prints tablet /
   phone sizes in rem on a 102.6% root, so the px values the HTML uses are pinned here (legal 18/26 tablet,
   16/26 phone; copyright 16/28 with +1.2% tracking). Footer meta links in Fustat like the HTML. */
@media (max-width: 1024px) {
    [data-section="section-above-footer-builder"] .site-above-footer-inner-wrap {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 34px;
    }
    .footer__row .footer__nav,
    .footer__row .footer__contacts {
        flex-wrap: wrap;
        justify-content: flex-start;
        row-gap: 14px;
    }
    .footer__row .footer__nav { column-gap: 24px; row-gap: 16px; }
    .footer__row br { display: none; } /* wpautop line breaks in the footer HTML element: not layout once the row wraps */
}
.footer__row .footer__contacts .footer__link { font-family: var(--ff-fustat); }
.ast-footer-copyright p { letter-spacing: 0.012em; }
@media (max-width: 1060px) {
    .footer-widget-area[data-section="sidebar-widgets-footer-widget-1"] p { font-size: 18px; line-height: 26px; }
    .ast-footer-copyright p { font-size: 16px; line-height: 28px; }
}
@media (max-width: 1060px) {
    .footer__row .footer__link { font-size: 18px; }
}
@media (max-width: 767px) {
    .footer__row .footer__link { font-size: 16px; }
    .footer-widget-area[data-section="sidebar-widgets-footer-widget-1"] p { font-size: 16px; line-height: 26px; }
    .ast-footer-copyright p { font-size: 16px; line-height: 28px; }
}

/* N11 351 Resources: the three links keep their natural width and wrap as whole links. */
.cmb-351-resources > .elementor-element,
.cmb-351-resources > .e-button-base { flex-shrink: 0; white-space: nowrap; }

/* N15 Research promo link: the arrow never breaks off the label. */
.elementor-element-aaa8c85 { white-space: nowrap; }

/* N22 mobile menu: the HTML's radial navy ground, links on a 70px pitch, 22px close glyph. */
#ast-mobile-popup .ast-mobile-popup-inner {
    background: radial-gradient(120% 120% at 60% 40%, #032C6C 0%, #022458 40%, #000F2F 100%), #000F2F;
}
#ast-mobile-popup .ast-mobile-popup-content { gap: 8px; }
#ast-hf-mobile-menu > .menu-item > .menu-link { padding: 18px 0; line-height: 1.3; }
.ast-mobile-popup-drawer .menu-toggle-close .ast-mobile-svg,
.ast-mobile-popup-drawer .menu-toggle-close svg { width: 22px; height: 22px; }

/* N12 entrance motion (the HTML's .reveal groups): a container with the class cambria-reveal-kids fades
   its direct children in, 90ms apart, as they enter the viewport (reveal.js). Fade only, no slide (house
   rule: rises are for cards). The hidden state exists only while html.cmb-motion is set, which the head
   script sets only when motion is allowed; a 3s failsafe (cmb-motion-done) shows everything. */
@media (prefers-reduced-motion: no-preference) {
    html.cmb-motion .cambria-reveal-kids > .e-con-inner > .elementor-element,
    html.cmb-motion .cambria-reveal-kids > .elementor-element {
        opacity: 0;
        transition: opacity 620ms cubic-bezier(0.22, 0.61, 0.36, 1);
    }
    html.cmb-motion .cambria-reveal-kids > .e-con-inner > .elementor-element.is-in,
    html.cmb-motion .cambria-reveal-kids > .elementor-element.is-in,
    html.cmb-motion-done .cambria-reveal-kids > .e-con-inner > .elementor-element,
    html.cmb-motion-done .cambria-reveal-kids > .elementor-element { opacity: 1; }
}

/* ==========================================================================
   Client round 5 (Extima, 2026-10-13, Justin's final comments). Formatting + machinery only.
   ========================================================================== */

/* R5-2 nav labels on one baseline. Contact + the ETF link are Fustat, the other three Manrope; the two
   fonts carry different ascent/descent, so centring each label in its own box left the Fustat labels
   2 to 2.5px high. The menu row now aligns its items on the text baseline (holds at any font size).
   The pill padding keeps the pill at 64 tall and the Manrope labels where they were. */
@media (min-width: 1062px) {
    #ast-hf-menu-1 { align-items: baseline; }
    .ast-builder-menu-1 { padding: 11.5px 16px 9.5px 24px !important; /* Astra writes its own padding on this wrapper */ }
}

/* R5-1 sticky header. The row with the logo and the nav is fixed to the top of the window from the
   start (its parent keeps the header's height, so nothing in the page moves when it sticks). After a
   short scroll <html> gets .cmb-stuck (sticky-header.js) and the row gains the interior header's own
   navy ground (the same form-bg art on the Secondary global) as a compact bar: 88 tall on desktop,
   72 on the mobile header. Only paint and transform change between the two states (no layout shift).
   Breakpoint: Astra shows its mobile header up to 1061px wide and the desktop header from 1062, so the
   rules split there (fix loop 1). The bar sits under the WP admin bar when someone is logged in. Everything here hangs off the body
   class cmb-sticky-header (functions.php), which is not printed in the Elementor editor preview, so
   the header stays in place while a page is being edited. */
:root { --cmb-bar-h: 88px; --cmb-bar-top: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 1061px) { :root { --cmb-bar-h: 72px; } }
html { scroll-padding-top: calc(var(--cmb-bar-top) + var(--cmb-bar-h) + 16px); }

@media (min-width: 1062px) {
    /* The interior band's wave used to be a clip-path on the header itself, which would also clip the
       fixed row. Same art, same shape, now on a layer behind the row. */
    #ast-desktop-header:not(.ast-theme-transparent-header *) {
        position: relative;
        clip-path: none;
        background: none;
    }
    #ast-desktop-header:not(.ast-theme-transparent-header *)::before {
        content: "";
        position: absolute;
        inset: 0;
        clip-path: polygon(0 91%, 10% 86%, 20% 84%, 30% 87%, 40% 93%, 50% 98%, 60% 100%, 70% 98%, 80% 93%, 90% 88%, 100% 84%, 100% 0, 0 0);
        background: url('/wp-content/uploads/2026/09/form-bg.jpg') center / cover no-repeat, linear-gradient(180deg, #022A53 0%, #045EB9 100%);
    }
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar,
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar:not(.ast-theme-transparent-header *) {
        position: fixed;
        top: var(--cmb-bar-top);
        left: 0;
        right: 0;
        background: none;
        pointer-events: none;
    }
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar .site-branding,
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar .ast-builder-menu-1 { pointer-events: auto; }
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar::before {
        content: "";
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;
        right: 0;
        height: var(--cmb-bar-h);
        background: var(--e-global-color-secondary, #022A53) url('/wp-content/uploads/2026/09/form-bg.jpg') center / cover no-repeat;
        box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08), 0 10px 30px rgba(0, 15, 47, 0.18);
        opacity: 0;
        transition: opacity 180ms ease;
    }
    .cmb-sticky-header #ast-desktop-header .site-primary-header-wrap { position: relative; transition: transform 180ms ease; }
    html.cmb-stuck .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar::before { opacity: 1; pointer-events: auto; }
    html.cmb-stuck .cmb-sticky-header #ast-desktop-header .site-primary-header-wrap { transform: translateY(-11px); }
    /* Firm: the consultant card's own sticky offset clears the bar. */
    .cmb-sticky-header .rr-card { top: calc(var(--cmb-bar-top) + var(--cmb-bar-h) + 24px); }
}

@media (max-width: 1061px) {
    /* Mobile header: the logo + toggle row (the band around it keeps its 136 / 72 height). */
    .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row {
        position: fixed;
        top: var(--cmb-bar-top);
        left: 0;
        right: 0;
        z-index: 5;
        box-sizing: border-box;
        height: var(--cmb-bar-h);
        min-height: 0;
        padding: 20px var(--cmb-gutter) 0;
        pointer-events: none;
    }
    .cmb-sticky-header #ast-mobile-header .ast-builder-grid-row .site-branding,
    .cmb-sticky-header #ast-mobile-header .ast-builder-grid-row .menu-toggle { pointer-events: auto; }
    .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row::before {
        content: "";
        position: absolute;
        z-index: -1;
        top: 0;
        left: 0;
        right: 0;
        height: var(--cmb-bar-h);
        background: var(--e-global-color-secondary, #022A53) url('/wp-content/uploads/2026/09/form-bg.jpg') center / cover no-repeat;
        box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08), 0 10px 30px rgba(0, 15, 47, 0.18);
        opacity: 0;
        transition: opacity 180ms ease;
    }
    .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row > .site-header-section { transition: transform 180ms ease; }
    html.cmb-stuck .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row::before { opacity: 1; pointer-events: auto; }
    html.cmb-stuck .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row > .site-header-section { transform: translateY(-10px); }
}
/* Logged in at phone widths the admin bar scrolls away with the page, so the stuck bar goes to the top. */
@media (max-width: 600px) {
    html.cmb-stuck body.admin-bar { --cmb-bar-top: 0px; }
}
@media (prefers-reduced-motion: reduce) {
    .cmb-sticky-header #ast-desktop-header .ast-primary-header-bar::before,
    .cmb-sticky-header #ast-desktop-header .site-primary-header-wrap,
    .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row::before,
    .cmb-sticky-header #ast-mobile-header .ast-primary-header-bar > .ast-builder-grid-row > .site-header-section { transition: none; }
}

/* R5-3 CTA band on wide windows (zoomed-out browsers). The dome art is as wide as the window, so past
   1440 it grows taller than the band: its corners dropped below the band's 30% line (a navy wedge at
   each side, bigger the wider the window) and the band cut the art off in a straight edge above the
   footer. The band's navy now starts under the dome's corner at every width (the corner sits at 7.07%
   of the width), and the foot of the band fades into the footer navy the way the art does at 1440. */
@media (min-width: 1441px) {
    body .elementor .elementor-element.cmb-cta-band.e-con:not(.elementor-motion-effects-element-type-background) {
        background-image: linear-gradient(180deg, transparent calc(7.07vw + 4px), var(--e-global-color-secondary, #022A53) calc(7.07vw + 4px));
    }
}
@media (min-width: 1600px) {
    .cmb-cta-band.e-con::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 62%;
        background: linear-gradient(180deg, rgba(2, 42, 83, 0) 0%, var(--e-global-color-secondary, #022A53) 92%);
        pointer-events: none;
        z-index: 0;
    }
    .cmb-cta-band.e-con > .e-con-inner,
    .cmb-cta-band.e-con > .elementor-element { z-index: 1; }
}

/* R5-7 consultant cards without a headshot (headshots are off for launch). When a card's media column
   holds only the LinkedIn link, the column shrinks to that link, so no empty photo space is left. Put an
   <img class="rr-consultant__headshot"> back in a card and its 120px photo column returns by itself. */
.rr-consultant:not(:has(.rr-consultant__headshot)) { grid-template-columns: minmax(0, 1fr) auto; }

/* Fix loop 1 (2026-10-13, after the QA pass). */
/* S3 nav pill at 1062 to 1099 wide: logo + pill did not fit on one row (the pill wrapped to two rows,
   104 tall). The links sit a little closer in that band so the pill stays one 64px row. */
@media (min-width: 1062px) and (max-width: 1099px) {
    #ast-hf-menu-1 { flex-wrap: nowrap; }
    #ast-hf-menu-1 > .menu-item > .menu-link { padding-left: 12px; padding-right: 12px; }
    .ast-builder-menu-1 .menu-link__btn a { margin-left: 12px; margin-right: 12px; }
    .ast-builder-menu-1 { padding-left: 18px !important; padding-right: 14px !important; }
}
/* L1 Research topic list: tall enough for all eight topics (it stopped at 280px, hiding the last two
   with no scroll cue); on a short window it still scrolls inside the list. */
.rf-wrapper .rf-tagselect__dropdown { max-height: min(480px, calc(100vh - 160px)); }

/* R6 (2026-10-16) Terms of Service page: the legal copy is ONE Text Editor widget (class cmb-legal, h2/h3/p only).
   Content heading scale = the article template's (kit H4 32 / H5 24 steps, research-posts.css); the Text Editor
   has no per-heading-tag control, so the scale lives here. */
.cmb-legal h2,
.cmb-legal h3 {
    margin: 48px 0 16px;
    font-family: 'Fustat', sans-serif;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--e-global-color-secondary);
}
.cmb-legal h2:first-child { margin-top: 12px; }
.cmb-legal h2 + h3 { margin-top: 24px; }
.cmb-legal h2 { font-size: 32px; }
.cmb-legal h3 { font-size: 24px; }
.cmb-legal p { margin: 0 0 1em; }
@media (max-width: 1024px) {
    .cmb-legal h2 { font-size: 28px; }
}
@media (max-width: 767px) {
    .cmb-legal h2 { font-size: 26px; }
    .cmb-legal h3 { font-size: 22px; }
}
/* R6 footer: "Terms of Service" link in the copyright row (Astra Copyright element), styled as the footer links
   (Fustat, white, no underline). Phones: own line, 44px tap target (D31). */
.ast-footer-copyright a {
    margin-left: 24px;
    color: #FFFFFF;
    font-family: var(--ff-fustat);
    text-decoration: none;
    white-space: nowrap;
}
@media (max-width: 767px) {
    .ast-footer-copyright a { display: flex; width: max-content; min-height: 44px; align-items: center; margin: 2px 0 -8px; }
}

/* R6 fix loop M1 (2026-10-16, after Quincy r6): CTA band subtitle at phones. Below 768 it is 20px regular
   (normal text, needs 4.5:1) on the band's light map-dot texture; the kit's "Muted on navy" measured
   2.7 to 2.9:1 there. Below 768 only it takes the kit's White. From 768 up it stays "Muted on navy" (24px =
   large text, passes 3:1). Colour only: Elementor's Text Color control has no per-device value. */
@media (max-width: 767px) {
    body .cmb-cta-band .elementor-element.elementor-element-f5c838b { color: var(--e-global-color-afbed42, #FFFFFF); }
}
