: root {
    --color-ink: #233244;
    --color-deep: #004682;
    --color-blue: #1687bb;
    --color-purple: #9f5ab8;
    --color-mist: #eafafd;
    --color-soft: #f7fafc;
    --color-warm: #fff8f1;
    --color-white: #fff;
    --shadow-soft: 0 20px 60px rgba(0, 70, 130, .12);
    --radius-lg: 24px;
    --shell: min(1140px, calc(100vw - 40px));
    --font-main: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
}
* {
    box-sizing: border-box
}
html {
    scroll-behavior: smooth
}
body {
    margin: 0;
    color: var(--color-ink);
    font-family: var(--font-main);
    line-height: 1.65;
    background: #fff
}
a {
    color: var(--color-blue);
    text-decoration-thickness: .08em;
    text-underline-offset: .2em
}
img {
    max-width: 100%;
    height: auto
}
.site-shell {
    width: var(--shell);
    margin-inline: auto
}
.skip-link {
    position: absolute;
    left: -999px;
    top: 1rem;
    z-index: 999;
    padding: .75rem 1rem;
    background: var(--color-deep);
    color: #fff;
    border-radius: 999px
}
.skip-link: focus {
    left: 1rem
}
.site-header {
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 1px 0 rgba(0, 0, 0, .08)
}
.utility-bar {
    background: var(--color-deep);
    color: #fff;
    font-size: .78rem;
    font-weight: 700
}
.utility-inner {
    min-height: 28px;
    display: flex;
    align-items: center;
    justify-content: flex-end
}
.utility-menu, .header-menu, .footer-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0
}
.utility-menu a {
    color: #fff;
    text-decoration: none
}
.nav-row {
    min-height: 84px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem
}
.brand-text {
    color: var(--color-ink);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 900;
    letter-spacing: -.05em;
    text-decoration: none
}

.primary-nav {
    display: flex;
    align-items: center;
    gap: 1.25rem
}
.header-menu a {
    color: var(--color-ink);
    font-size: .93rem;
    font-weight: 750;
    text-decoration: none
}
.header-menu a: hover {
    color: var(--color-blue)
}
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .78rem 1.45rem;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--color-blue);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease
}
.button: hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(24, 132, 182, .26)
}
.button-secondary {
    background: var(--color-purple)
}
.button-small {
    min-height: 36px;
    padding: .55rem 1.1rem;
    font-size: .72rem
}
.menu-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: var(--color-mist)
}
.menu-toggle span: not(.screen-reader-text) {
    display: block;
    width: 20px;
    height: 2px;
    margin: 4px auto;
    background: var(--color-deep);
    transition: transform .2s ease, opacity .2s ease
}
.home-hero {
    position: relative;
    min-height: clamp(520px, 58vw, 720px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: radial-gradient(circle at 80% 20%, rgba(170, 89, 180, .55), transparent 28%), linear-gradient(120deg, #173f63, #816b75 58%, #d7b391)
}
.hero-overlay {
    position: absolute;
    inset: 0
}
.hero-content {
    position: relative;
    padding-block: 7rem;
    color: #fff
}
.hero-content h1 {
    max-width: 75%;
    margin: 0 0 1.2rem;
    font-size: clamp(3.1rem, 8vw, 6.7rem);
    line-height: 1.15em;
    letter-spacing: -.04em
}
.hero-lead {
    max-width: 768px;
    font-size: clamp(1.05rem, 2vw, 1.3rem)
}
.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem
}
.page-hero {
    padding: clamp(6rem, 13vw, 10rem) 0 clamp(3rem, 7vw, 5rem)
}
.page-hero.soft-hero:not(.has-hero-background) {
    background: radial-gradient(circle at 80% 20%, rgba(170, 89, 180, .16), transparent 30%), var(--color-mist)
}
.page-hero h1, .intro-section h2, .split-section h2, .section-heading h2 {
    margin: 0 0 1rem;
    font-size: clamp(2.4rem, 5vw, 4.75rem);
    line-height: 1;
    letter-spacing: -.055em
}
.eyebrow {
    margin: 0 0 .75rem;
    color: var(--color-blue);
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase
}
.page-hero p.eyebrow, .section-heading p.eyebrow {
    font-size: var(--calcopa-eyebrow-font-size) !important;
}
.eyebrow.light {
    color: #fff
}
.lead-text, .page-hero .lead-text, .section-heading .lead-text {
    font-size: 1.1rem
}
.intro-section, .content-section {
    padding: clamp(4rem, 9vw, 7rem) 0
}
.intro-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: clamp(2rem, 7vw, 6rem);
    align-items: center
}
.feature-grid, .card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem
}
.card-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}
.card-grid.four {
    grid-template-columns: repeat(4, minmax(0, 1fr))
}
.feature-card, .card {
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid rgba(0, 70, 130, .12);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-soft)
}
a.feature-card, a.link-card {
    text-decoration: none;
    color: var(--color-ink)
}
.feature-card span {
    display: inline-grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: .75rem;
    border-radius: 50%;
    background: var(--color-mist);
    color: var(--color-blue);
    font-size: 2rem;
    font-weight: 900
}
.feature-card h3, .card h2, .card h3 {
    margin-top: 0;
    color: var(--color-deep);
    line-height: 1.2
}
.tinted {
    background: var(--color-soft)
}
.cta-band {
    background-color: var(--color-deep);
    background-image: linear-gradient(135deg, var(--color-deep), #3077a3);
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff
}
.cta-band .eyebrow, .cta-band h2, .cta-band p {
    color: #fff
}
.split-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center
}
.image-card {
    min-height: 420px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(0, 70, 130, .14), rgba(170, 89, 180, .18)), var(--color-mist);
    box-shadow: var(--shadow-soft)
}
.content-narrow {
    max-width: 840px
}
.entry-content>*+* {
    margin-top: 1.25rem
}
.entry-content h2, .entry-content h3 {
    line-height: 1.12;
    letter-spacing: -.035em
}
.section-heading {
    max-width: 780px;
    margin-bottom: 2rem
}
.schedule-list {
    display: grid;
    gap: 1rem
}
.schedule-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    padding: 1.25rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(0, 70, 130, .12);
    box-shadow: var(--shadow-soft)
}
.faq-list {
    display: grid;
    gap: 1rem
}
.faq-item {
    border: 1px solid rgba(0, 70, 130, .13);
    border-radius: 20px;
    background: #fff;
    overflow: hidden
}
.faq-item button {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.4rem;
    border: 0;
    background: #fff;
    color: var(--color-deep);
    font-weight: 900;
    text-align: left;
    font-size: 1rem
}
.faq-panel {
    padding: 0 1.4rem 1.3rem
}
.testimonial-card cite {
    display: block;
    margin-top: 1rem;
    color: var(--color-deep);
    font-weight: 900
}
.post-card h2 a {
    color: var(--color-deep);
    text-decoration: none
}
.search-form {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap
}
.search-field {
    min-height: 44px;
    padding: .7rem 1rem;
    border: 1px solid rgba(0, 70, 130, .2);
    border-radius: 999px
}
.search-submit {
    min-height: 44px;
    padding: .7rem 1.2rem;
    border: 0;
    border-radius: 999px;
    background: var(--color-blue);
    color: #fff;
    font-weight: 900
}
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease
}
.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0)
}
.animated-title {
    opacity: 0;
    perspective: 800px
}
.animated-title.is-ready {
    opacity: 1
}
.drop-word {
    display: inline-block;
    transform-origin: 50% 0%;
    animation: textDrop .72s cubic-bezier(.2, .8, .2, 1) both;
    animation-delay: calc(var(--i) * 58ms + 180ms)
}
.drop-space {
    display: inline-block;
    width: .28em
}
@keyframes textDrop {
    from {
        opacity: 0;
        transform: translateY(-.9em) rotateX(-82deg);
        filter: blur(6px)
    }
    to {
        opacity: 1;
        transform: translateY(0) rotateX(0deg);
        filter: blur(0)
    }
}
.site-footer {
    padding: 4rem 0 1.5rem;
    background: var(--color-ink);
    color: #fff
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 2rem
}
.footer-title {
    margin-top: 0;
    color: #fff
}
.footer-menu {
    display: grid;
    gap: .4rem
}
.footer-menu a, .site-footer a {
    color: #fff
}
.footer-bottom {
    margin-top: 3rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
    font-size: .9rem;
    opacity: .8
}
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto
    }
    *, *:: before, *:: after {
        animation-duration: .001ms!important;
        transition-duration: .001ms!important
    }
    .animated-title, .reveal-on-scroll {
        opacity: 1;
        transform: none
    }
}
@media (max-width: 980px) {
    .menu-toggle {
        display: block
    }
    .primary-nav {
        position: fixed;
        inset: 112px 20px auto 20px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        padding: 1rem;
        border-radius: 22px;
        background: #fff;
        box-shadow: var(--shadow-soft)
    }
    .primary-nav.is-open {
        display: flex
    }
    .header-menu {
        display: grid;
        gap: .75rem
    }
    .intro-grid, .split-section, .footer-grid {
        grid-template-columns: 1fr
    }
    .card-grid.three, .card-grid.four {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}
@media (max-width: 768px) {
    .site-shell {
        width: min(100% - 28px, 1140px)
    }
    .feature-grid, .card-grid, .card-grid.three, .card-grid.four {
        grid-template-columns: 1fr
    }
    .schedule-item {
        display: grid
    }
    .hero-content h1 {
        font-size: 3.1rem
    }
}
/* Legacy content compatibility */
.stacked-content {
    display: grid;
    gap: clamp(1rem, 2vw, 1.75rem);
}
.align-start {
    align-items: start;
}
.responsive-table {
    overflow-x: auto;
}
.responsive-table table {
    width: 100%;
    border-collapse: collapse;
}
.responsive-table th, .responsive-table td {
    padding: .85rem 1rem;
    border-bottom: 1px solid rgba(22, 34, 51, .12);
    text-align: left;
}
.responsive-embed {
    position: relative;
    width: 100%;
    min-height: 460px;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: rgba(22, 34, 51, .06);
}
.responsive-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.card-image, .profile-image {
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    margin-bottom: 1rem;
}
.form-card .gform_wrapper, .form-card form {
    margin-top: 0;
}
.utility-inner {
    gap: 1rem;
}
.utility-phone {
    color: inherit;
    text-decoration: none;
    font-weight: 700;
}
.footer-address p {
    margin: .25rem 0;
}
.legacy-content-block >: first-child {
    margin-top: 0;
}
.legacy-content-block >: last-child {
    margin-bottom: 0;
}
/* Featured image support */
.home-hero.has-home-featured-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.page-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: center;
}
.page-hero.has-featured-media .page-hero-grid {
    grid-template-columns: minmax(0, .95fr) minmax(280px, .75fr);
}
.page-hero-copy {
    max-width: 840px;
}
.page-hero-media {
    margin: 0;
}
.featured-image {
    display: block;
    width: 100%;
    height: auto;
}
.featured-image-hero {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft);
}
.featured-image-card {
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: calc(var(--radius-lg) - 8px);
    margin: -0.35rem 0 1rem;
}
.featured-image-link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.post-card .featured-image-link: first-child {
    margin-bottom: .25rem;
}
@media (max-width: 980px) {
    .page-hero.has-featured-media .page-hero-grid {
        grid-template-columns: 1fr;
    }
    .page-hero-media {
        max-width: 680px;
    }
}
/* 2026 refinements: logo, simplified navigation locations, footer columns, and page hero backgrounds. */
.custom-logo {
    max-height: 80px;
    width: auto
}

.top-bar-phone {
    white-space: nowrap
}
.utility-bar {
    display: none
}
.page-hero.has-hero-background {
    position: relative;
    min-height: clamp(420px, 48vw, 768px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff
}
.page-hero.has-hero-background .hero-overlay {
    position: absolute;
    inset: 0
}
.page-hero-content {
    position: relative;
    z-index: 1;
    max-width: 840px
}
.page-hero.has-hero-background h1, .page-hero.has-hero-background p, .page-hero.has-hero-background .lead-text {
    color: #fff
}
.page-hero.has-hero-background .button {
    box-shadow: 0 14px 30px rgba(0, 0, 0, .18)
}
.page-hero-grid {
    display: block
}
.page-hero-media {
    display: none
}
.site-footer {
    padding: 4rem 0 0;
    background: var(--color-ink);
    color: #fff
}
.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start
}
.footer-column {
    min-width: 0
}
.footer-title {
    margin: 0 0 1rem;
    color: #fff;
    font-size: 1rem;
    letter-spacing: .12em;
    text-transform: uppercase
}
.footer-menu, .bottom-menu {
    list-style: none;
    margin: 0;
    padding: 0
}
.footer-menu {
    display: grid;
    gap: .55rem
}
.footer-menu a, .site-footer a {
    color: #fff;
    text-decoration: none
}
.footer-menu a: hover, .bottom-menu a: hover {
    text-decoration: underline
}
.footer-contact-details, .footer-contact-fallback, .footer-widget {
    margin: 0;
    font-size: .95rem;
    font-style: normal;
    opacity: .88
}
.footer-contact-details p {
    margin: .35rem 0 .85rem
}
.footer-address {
    line-height: 1.55
}
.footer-map-link {
    font-weight: 900;
    text-decoration: underline;
    text-underline-offset: .2em
}
.footer-bottom-bar {
    margin-top: 3rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
    background: rgba(0, 0, 0, .16)
}
.footer-bottom-inner {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    font-size: .9rem
}
.bottom-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem
}
.bottom-menu a {
    color: #fff;
    text-decoration: none
}
.copyright {
    margin: 0;
    opacity: .82
}
.footer-bottom {
    display: none
}

@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: minmax(0, 1fr)
    }
}


/* Compatibility fixes: Everest/SCF form sections and People leadership cards. */
.form-section-grid {
    display: grid;
    grid-template-columns: minmax(220px, .55fr) minmax(0, .9fr) minmax(280px, 1fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: start
}
.form-section-grid.no-form-image {
    grid-template-columns: minmax(0, .9fr) minmax(280px, 1fr)
}
.form-card form, .form-card .everest-forms, .form-card .evf-container {
    margin: 0
}
.form-card input: not([type=checkbox]): not([type=radio]): not([type=submit]), .form-card textarea, .form-card select {
    max-width: 100%
}
.people-grid {
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem
}
.person-card {
    margin: 0
}
.person-card a {
    display: block;
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(0, 70, 130, .12);
    border-radius: var(--radius-lg);
    background: #fff;
    color: var(--color-ink);
    text-decoration: none;
    box-shadow: var(--shadow-soft);
    transition: transform .2s ease, box-shadow .2s ease
}
.person-card a: hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(22, 34, 51, .14)
}
.person-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    background: var(--color-mist)
}
.person-card-placeholder {
    background: linear-gradient(135deg, rgba(0, 70, 130, .12), rgba(170, 89, 180, .16))
}
.person-card-info {
    display: grid;
    gap: .35rem;
    padding: 1rem
}
.person-card-info strong {
    color: var(--color-deep);
    font-size: 1.08rem
}
.person-card-info span {
    font-weight: 700;
    color: var(--color-blue)
}
.person-card-info small {
    color: var(--color-muted)
}
@media(max-width: 980px) {
    .form-section-grid {
        grid-template-columns: 1fr 1fr
    }
    .form-section-image {
        grid-column: 1/-1
    }
    .people-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}
@media(max-width: 768px) {
    .form-section-grid, .form-section-grid.no-form-image, .people-grid {
        grid-template-columns: 1fr
    }
}
/* Header responsiveness patch: keep desktop navigation compact and convert submenu-heavy menus into usable dropdowns. */
.site-header {
    overflow: visible;
}
.nav-row {
    position: relative;
}
.site-branding {
    flex: 0 0 auto;
    min-width: 0;
}
.custom-logo-link {
    display: inline-flex;
    align-items: center;
}
.custom-logo {
    display: block;
    max-height: 80px;
    width: auto;
	margin: 10px 0 10px 0;
}
.primary-nav {
    min-width: 0;
}
.header-menu {
    align-items: center;
}
.header-menu li {
    position: relative;
}
.header-menu > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
.header-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: .65rem;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 40;
    min-width: 240px;
    display: none;
    background: #fff;
    border: 1px solid rgba(0, 70, 130, .12);
    border-radius: 18px;
    box-shadow: var(--shadow-soft);
}
.header-menu li: hover > .sub-menu, .header-menu li: focus-within > .sub-menu {
    display: grid;
    gap: .2rem;
}
.header-menu .sub-menu a {
    display: block;
    padding: .55rem .75rem;
    border-radius: 12px;
    line-height: 1.25;
}
.header-menu .sub-menu a: hover, .header-menu .sub-menu a: focus {
    background: var(--color-mist);
    color: var(--color-deep);
}
@media (max-width: 1120px) {
    .nav-row {
        min-height: 76px;
        gap: 1rem;
    }
    .menu-toggle {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
    }
    .primary-nav {
        position: absolute;
        top: calc(100% + .65rem);
        left: 0;
        right: 0;
        inset: auto 0 auto 0;
        z-index: 50;
        display: none;
        flex-direction: column;
        align-items: stretch;
        max-height: calc(100vh - 150px);
        overflow: auto;
        padding: 1rem;
        border-radius: 22px;
        background: #fff;
        box-shadow: var(--shadow-soft);
    }
    .primary-nav.is-open {
        display: flex;
    }
    .header-menu {
        display: grid;
        gap: .2rem;
        width: 100%;
    }
    .header-menu > li > a {
        display: flex;
        justify-content: space-between;
        min-height: 42px;
        padding: .55rem .7rem;
        border-radius: 12px;
    }
    .header-menu > li > a: hover, .header-menu > li > a: focus {
        background: var(--color-mist);
    }
    .header-menu .sub-menu {
        position: static;
        display: grid;
        min-width: 0;
        padding: .15rem 0 .55rem .9rem;
        border: 0;
        border-left: 2px solid rgba(0, 70, 130, .12);
        border-radius: 0;
        box-shadow: none;
        background: transparent;
    }
    .header-menu .sub-menu a {
        padding: .42rem .7rem;
        font-size: .9rem;
    }
    .primary-nav .button {
        margin-top: .75rem;
        width: 100%;
    }
    body.menu-open {
        overflow: hidden;
    }
}

/* Mega menu compatibility patch: the theme should frame the header, not control plugin submenu behavior. */
.primary-nav--mega-menu {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-end;
}
.primary-nav--mega-menu .button {
    flex: 0 0 auto;
    margin-left: 1rem;
}
.primary-nav--mega-menu [id^="mega-menu-wrap-"], .primary-nav--mega-menu .mega-menu-wrap {
    position: relative;
    z-index: 100;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    clear: none;
}
.primary-nav--mega-menu [id^="mega-menu-wrap-"] .mega-menu, .primary-nav--mega-menu .mega-menu-wrap .mega-menu {
    position: static;
}
.primary-nav--mega-menu .mega-menu-toggle {
    margin-left: auto;
}
.primary-nav--mega-menu .mega-sub-menu {
    max-width: min(100vw - 40px, 1140px);
}
@media (max-width: 1180px) {
    .primary-nav--mega-menu {
        position: static;
        display: flex;
        flex-direction: row;
        align-items: center;
        padding: 0;
        max-height: none;
        overflow: visible;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .primary-nav--mega-menu [id^="mega-menu-wrap-"], .primary-nav--mega-menu .mega-menu-wrap {
        width: 100%;
    }
    .primary-nav--mega-menu .button {
        display: none;
    }
}
/* Global Customizer token compatibility and SCF-powered reusable sections. */
.calcopa-testimonials {
    display: grid;
    gap: var(--calcopa-grid-gap, 1.25rem)
}
.calcopa-testimonials--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}
.calcopa-testimonials--featured {
    grid-template-columns: minmax(0, 1fr);
    max-width: var(--calcopa-narrow-width, 840px);
    margin-inline: auto
}
.calcopa-testimonials--strip {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}
.calcopa-testimonials--cta {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}
.testimonial-quote>*: first-child {
    margin-top: 0
}
.testimonial-quote>*: last-child {
    margin-bottom: 0
}
.calcopa-empty-pattern-note {
    padding: 1rem 1.25rem;
    border: 1px dashed var(--calcopa-color-border, #d9e6ee);
    border-radius: 16px;
    background: var(--calcopa-color-card-bg, #fff);
    color: var(--calcopa-color-muted-text, #5e6d7e)
}
.faq-list--two-column, .faq-list--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}
.faq-list--compact .faq-item {
    padding: 1.25rem
}
.schedule-table-card code {
    display: inline-block;
    padding: .2rem .45rem;
    border-radius: 6px;
    background: var(--calcopa-color-section-alt-bg, #f7fafc)
}
.tablepress-wrapper {
    max-width: 100%
}
.wp-block-button__link {
    text-decoration: none
}
.primary-nav--mega-menu .mega-menu-link, .primary-nav--mega-menu .mega-menu a {
    font-family: var(--calcopa-font-menu, inherit)
}
@media(max-width: 980px) {
    .calcopa-testimonials--grid, .calcopa-testimonials--strip, .calcopa-testimonials--cta, .faq-list--two-column, .faq-list--compact {
        grid-template-columns: 1fr 1fr
    }
}
@media(max-width: 768px) {
    .calcopa-testimonials--grid, .calcopa-testimonials--strip, .calcopa-testimonials--cta, .faq-list--two-column, .faq-list--compact {
        grid-template-columns: 1fr
    }
}
/* Hero images live on the section; the nested element is the only overlay layer. */
.home-hero, .page-hero.has-hero-background {
    isolation: isolate;
}
.home-hero .hero-overlay, .page-hero.has-hero-background .hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.home-hero .hero-content, .page-hero.has-hero-background .page-hero-content, .page-hero.has-hero-background .site-shell {
    position: relative;
    z-index: 2;
}
/* Guardrail: preserve source-of-truth card spacing even if older Customizer values were saved empty/zero. */
.feature-card, .card, .testimonial-card, .post-card, .form-card, .schedule-table-card {
    padding: max(var(--calcopa-card-padding, clamp(1.4rem, 3vw, 2rem)), .75rem);
}
.feature-grid, .card-grid, .people-grid, .calcopa-testimonials, .faq-list {
    gap: max(var(--calcopa-grid-gap, 1.25rem), .75rem);
}
/* Compact no-featured-image page hero.
   Blog, Contact, and other pages without a Featured Image should keep the
   same heading typography/color language as image-backed heroes, but should
   be a slim banner so the visitor reaches page content quickly. */
.page-hero.soft-hero:not(.has-hero-background) {
    position: relative;
    min-height: 0;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: #fff;
    padding: clamp(4.25rem, 8vw, 6.25rem) 0 clamp(3.25rem, 6vw, 4.75rem);
    background: linear-gradient(90deg, rgba(18, 28, 38, .76), rgba(18, 28, 38, .50) 55%, rgba(18, 28, 38, .24)), radial-gradient(circle at 80% 20%, rgba(170, 89, 180, .22), transparent 34%), linear-gradient(135deg, var(--color-deep, #004682), #173f63 58%, #121c26);
}
.page-hero.soft-hero:not(.has-hero-background) .page-hero-content, .page-hero.soft-hero:not(.has-hero-background) .site-shell {
    position: relative;
    z-index: 2;
}
.page-hero.soft-hero:not(.has-hero-background) h1 {
    max-width: 840px;
    margin-bottom: 1rem;
}
.page-hero.soft-hero:not(.has-hero-background) p, .page-hero.soft-hero:not(.has-hero-background) .lead-text, .page-hero.soft-hero:not(.has-hero-background) .lead-text p {
    max-width: 720px;
}
.page-hero.soft-hero:not(.has-hero-background) h1, .page-hero.soft-hero:not(.has-hero-background) p, .page-hero.soft-hero:not(.has-hero-background) .lead-text, .page-hero.soft-hero:not(.has-hero-background) .lead-text p, .page-hero.soft-hero:not(.has-hero-background) .eyebrow {
    color: #fff;
}
.page-hero.soft-hero:not(.has-hero-background) .eyebrow {
    opacity: .92;
}
@media (max-width: 980px) {
    .page-hero.soft-hero:not(.has-hero-background) {
        padding: 4.5rem 0 3.75rem;
    }
}
@media (max-width: 768px) {
    .page-hero.soft-hero:not(.has-hero-background) {
        padding: 3.75rem 0 3rem;
    }
}
/* Feature card icons: use uploaded SCF artwork without forcing the old blue badge treatment. */
.feature-card .feature-card-icon, .feature-card span.feature-card-icon, .feature-card span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    margin: 0 0 .9rem;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    box-shadow: none;
}
.feature-card .feature-card-icon--image {
    width: 72px;
    height: 72px;
}
.feature-card .feature-card-uploaded-icon {
    display: block;
    width: 72px;
    height: 72px;
    object-fit: contain;
}
.feature-card .feature-card-icon--symbol {
    color: var(--color-deep);
    font-size: 2rem;
    font-weight: 900;
    line-height: 1;
}
/* Homepage advantages/career section: keep the message first on mobile and let the image support the content. */
.home-advantages-section .advantages-split {
    display: grid;
    grid-template-columns: minmax(280px, .95fr) minmax(0, 1.05fr);
    grid-template-areas: "media heading" "media content";
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
}
.advantages-heading {
    grid-area: heading;
    align-self: end;
}
.advantages-media-card {
    grid-area: media;
    position: relative;
    display: block;
    min-height: 320px;
    height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: var(--calcopa-card-radius, var(--radius-lg, 24px));
    background: linear-gradient(135deg, rgba(0, 70, 130, .14), rgba(170, 89, 180, .18)), var(--color-mist, #eafafd);
    box-shadow: var(--calcopa-card-shadow, var(--shadow-soft));
}
.advantages-media-card.has-image {
    background: var(--color-mist, #eafafd);
}
.advantages-media-card .advantages-image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    object-position: center;
}
.advantages-content {
    grid-area: content;
    align-self: start;
}
.advantages-content .entry-content {
    margin-top: .35rem;
}
.advantages-subtitle {
    margin: -.25rem 0 0;
    color: var(--color-blue, #1687bb);
    font-size: clamp(1.1rem, 2vw, 1.45rem);
    font-weight: 800;
    line-height: 1.25;
}
.advantages__link.button, .advantages-content .button {
    align-self: flex-start;
    margin-top: 1.5rem;
}
@media (max-width: 980px) {
    .home-advantages-section .advantages-split {
        grid-template-columns: 1fr;
        grid-template-areas: "heading" "media" "content";
        gap: 1.25rem;
        align-items: stretch;
    }
    .advantages-media-card, .advantages-media-card .advantages-image {
        min-height: 220px;
        max-height: 240px;
    }
    .advantages-media-card .advantages-image {
        object-position: center 35%;
    }
}
@media (max-width: 768px) {
    .home-advantages-section .advantages-split {
        gap: 1rem;
    }
    .advantages-media-card, .advantages-media-card .advantages-image {
        min-height: 170px;
        max-height: 200px;
    }
    .advantages-media-card {
        border-radius: calc(var(--calcopa-card-radius, var(--radius-lg, 24px)) * .75);
    }
}
/* Testimonial showcase: section-level rating + quote-only cards */
.testimonial-showcase {
    display: grid;
    grid-template-columns: minmax(240px, .36fr) minmax(0, 1fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: stretch;
}
.testimonial-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .75rem;
    background: var(--calcopa-color-card-bg, #fff);
}
.testimonial-summary .eyebrow {
    margin-bottom: .15rem;
}
.testimonial-summary__rating {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .65rem;
    color: var(--calcopa-color-card-heading, var(--color-deep, #004682));
}
.testimonial-summary__rating strong {
    font-size: clamp(3rem, 6vw, 5rem);
    line-height: .9;
    letter-spacing: -.07em;
}
.testimonial-summary__stars {
    font-size: 1.05rem;
    letter-spacing: .08em;
    color: var(--calcopa-color-eyebrow, var(--color-blue, #1687bb));
    white-space: nowrap;
}
.testimonial-summary__count {
    margin: 0;
    color: var(--calcopa-color-card-heading, var(--color-deep, #004682));
    font-size: 1.1rem;
    font-weight: 900;
}
.testimonial-summary__note {
    margin: .25rem 0 0;
    color: var(--calcopa-color-muted-text, #5e6d7e);
}
.testimonial-summary__link {
    margin-top: .5rem;
    align-self: flex-start;
}
.testimonial-carousel {
    position: relative;
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
}
.testimonial-track {
    min-width: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding: .35rem .15rem 1rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.testimonial-track::-webkit-scrollbar {
    display: none;
}
.testimonial-track.is-resetting {
    scroll-behavior: auto !important;
}
.testimonial-track .calcopa-testimonials {
    display: flex;
    gap: var(--calcopa-grid-gap, 1.25rem);
    align-items: stretch;
}
.testimonial-track .testimonial-card {
    flex: 0 0 min(420px, 88vw);
    margin: 0;
    scroll-snap-align: start;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.testimonial-track .testimonial-card:: before {
    content: '“';
    display: block;
    margin-bottom: .35rem;
    color: var(--calcopa-color-eyebrow, var(--color-blue, #1687bb));
    font-size: 3rem;
    font-weight: 900;
    line-height: .75;
}
.testimonial-track .testimonial-quote {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--calcopa-color-card-text, var(--color-ink, #233244));
}
.testimonial-track .testimonial-card cite {
    margin-top: 1.35rem;
    color: var(--calcopa-color-card-heading, var(--color-deep, #004682));
    font-style: normal;
    font-weight: 900;
}
.testimonial-nav {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--calcopa-color-card-border, rgba(0, 70, 130, .12));
    border-radius: 999px;
    background: var(--calcopa-color-card-bg, #fff);
    color: var(--calcopa-color-primary, var(--color-deep, #004682));
    font-size: 1.8rem;
    line-height: 1;
    box-shadow: var(--shadow-soft);
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, color .18s ease;
}
.testimonial-nav: hover {
    transform: translateY(-2px);
    background: var(--calcopa-color-button-bg, var(--color-blue, #1687bb));
    color: #fff;
}
/* Compact testimonial real-estate optimization */
.testimonial-showcase {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(.9rem, 2vw, 1.25rem);
    align-items: start;
}
.testimonial-summary.card {
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    align-items: center;
    gap: .75rem 1rem;
    padding: clamp(.9rem, 2vw, 1.2rem);
    border-radius: calc(var(--calcopa-card-radius, 24px) - 6px);
}
.testimonial-summary .eyebrow {
    margin: 0;
    white-space: nowrap;
}
.testimonial-summary__rating {
    display: flex;
    align-items: center;
    gap: .45rem;
}
.testimonial-summary__rating strong {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: 1;
    letter-spacing: -.055em;
}
.testimonial-summary__stars {
    font-size: .88rem;
    letter-spacing: .06em;
}
.testimonial-summary__count {
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
}
.testimonial-summary__note {
    margin: 0;
    font-size: .95rem;
    line-height: 1.45;
}
.testimonial-summary__link {
    margin: 0;
    white-space: nowrap;
}
.testimonial-carousel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
}
.testimonial-track {
    padding: .15rem .1rem .55rem;
}
.testimonial-track .calcopa-testimonials {
    gap: clamp(.85rem, 2vw, 1.1rem);
}
.testimonial-track .testimonial-card {
    flex: 0 0 min(350px, 86vw);
    min-height: 170px;
    padding: clamp(1.05rem, 2vw, 1.35rem);
}
.testimonial-track .testimonial-card:: before {
    margin-bottom: .15rem;
    font-size: 2.15rem;
    line-height: .7;
}
.testimonial-track .testimonial-quote {
    font-size: .98rem;
    line-height: 1.55;
}
.testimonial-track .testimonial-card cite {
    margin-top: .9rem;
}
.testimonial-nav {
    width: 38px;
    height: 38px;
    font-size: 1.45rem;
}
@media(max-width: 980px) {
    .testimonial-summary.card {
        grid-template-columns: auto 1fr;
    }
    .testimonial-summary__note {
        grid-column: 1/-1;
    }
    .testimonial-summary__link {
        grid-column: 1/-1;
        justify-self: start;
    }
}
@media(max-width: 900px) {
    .testimonial-showcase {
        grid-template-columns: 1fr
    }
    .testimonial-carousel {
        display: block;
        position: relative
    }
    .testimonial-nav {
        display: inline-grid;
        position: absolute;
        top: 50%;
        z-index: 3;
        margin: 0;
        opacity: .68;
        transform: translateY(-50%)
    }
    .testimonial-nav--prev {
        left: .4rem
    }
    .testimonial-nav--next {
        right: .4rem
    }
    .testimonial-nav:hover, .testimonial-nav:focus-visible {
        opacity: 1;
        transform: translateY(-50%)
    }
    .testimonial-track {
        width: 100%;
        max-width: 100%;
        overflow-y: hidden;
        padding-bottom: .75rem;
        transition: height .24s ease
    }
    .testimonial-track .calcopa-testimonials {
        align-items: flex-start
    }
    .testimonial-track .testimonial-card {
        flex-basis: 100%;
        max-width: 100%;
        min-height: 0;
        height: auto;
        padding-inline: max(var(--calcopa-testimonial-card-padding, 1.25rem), 3.25rem);
        justify-content: flex-start
    }
}
/* Keep Max Mega Menu's hidden drawer inside the viewport's scrollable width. */
@media (max-width: 767px) {
    html, body {
        overflow-x: clip;
    }
    #mega-menu-wrap-header_navigation .mega-menu-toggle + #mega-menu-header_navigation {
        right: 0 !important;
        visibility: hidden;
        transform: translateX(100%);
        transition: transform .3s ease, visibility 0s linear .3s !important;
        will-change: transform;
    }
    #mega-menu-wrap-header_navigation .mega-menu-toggle.mega-menu-open + #mega-menu-header_navigation {
        visibility: visible;
        transform: translateX(0);
        transition: transform .3s ease !important;
    }
}

@media(max-width: 768px) {
    .testimonial-summary.card {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }
    .testimonial-summary__note {
        flex-basis: 100%;
    }
    .testimonial-track .testimonial-card {
        flex-basis: 100%;
        max-width: 100%;
        min-height: 0;
        height: auto;
    }
}
/* Page hero copy + no-image color guardrail.
   Eyebrow/lead can be edited with SCF fields; no-image heroes should keep readable light text. */
.page-hero.soft-hero:not(.has-hero-background) h1, .page-hero.soft-hero:not(.has-hero-background) p, .page-hero.soft-hero:not(.has-hero-background) .lead-text, .page-hero.soft-hero:not(.has-hero-background) .lead-text p {
    color: var(--calcopa-color-hero-text, #fff) !important;
}
.page-hero.soft-hero:not(.has-hero-background) .eyebrow {
    color: var(--calcopa-color-hero-eyebrow, #fff) !important;
}
/* Social links */
.social-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    margin-top: 1rem
}
.social-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: inherit;
    text-decoration: none;
    font-weight: 800;
    line-height: 1
}
.social-link-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: inherit
}
.social-link-icon svg {
    width: 18px;
    height: 18px;
    display: block;
    fill: currentColor
}
.social-links--circle .social-link-icon {
    border-radius: 999px;
    border: 1px solid currentColor;
    background: rgba(255, 255, 255, .08)
}
.social-links--rounded .social-link-icon {
    border-radius: 10px;
    border: 1px solid currentColor;
    background: rgba(255, 255, 255, .08)
}
.social-links--plain .social-link-icon {
    width: 24px;
    height: 24px
}
.social-links--icon .social-link-label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0
}
.social-links--top-bar {
    margin-top: 0;
    margin-left: auto;
    gap: .45rem
}
.social-links--top-bar .social-link-icon {
    width: 26px;
    height: 26px
}
.social-links--top-bar .social-link-icon svg {
    width: 14px;
    height: 14px
}
.footer-contact-column .social-links {
    margin-top: 1.1rem
}
.site-footer .social-link: hover, .top-bar .social-link: hover {
    opacity: .82;
    text-decoration: none
}

/* SCF-driven homepage sections and reusable pre-footer CTA */
.home-upcoming-classes-section .section-heading .entry-content {
    max-width: 780px;
    margin-top: 1rem
}
.upcoming-class-schedules {
    display: grid;
    gap: 1.25rem
}
.schedule-content-card {
    overflow: hidden
}
.schedule-content-card table, .schedule-content-card .tablepress {
    width: 100%;
    margin: 0
}
.pre-footer-cta {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center
}
.pre-footer-cta.has-background-image:: before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(18, 28, 38, .18);
    pointer-events: none
}
.pre-footer-cta-inner {
    position: relative;
    z-index: 1
}
.pre-footer-cta--illustration .pre-footer-cta-inner {
    grid-template-columns: 1fr 1fr auto
}
.pre-footer-cta-image {
    margin: 0
}
.pre-footer-cta-image img {
    display: block;
    max-width: 260px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-soft)
}
.pre-footer-widget-area {
    grid-column: 1/-1
}
.pre-footer-widget-area>* {
    margin: 0
}
.pre-footer-widget-area>*+* {
    margin-top: 1rem
}
@media (max-width: 980px) {
    .pre-footer-cta--illustration .pre-footer-cta-inner {
        grid-template-columns: 1fr
    }
    .pre-footer-cta-image img {
        max-width: 100%
    }
}
/* Final SCF/content management polish */
.testimonial-track {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.testimonial-track:: -webkit-scrollbar {
    display: none;
}
.pre-footer-cta.has-background-image {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* Homepage feature cards: SCF icon/title/caption layout. */
.feature-card-title {
    margin: 0 0 .55rem;
    color: var(--calcopa-color-card-heading, var(--color-deep));
    font-size: var(--calcopa-h3-size, 1.5rem);
    line-height: 1.12;
    letter-spacing: -.025em;
}
.feature-card-caption {
    margin: 0;
    color: var(--calcopa-color-card-text, var(--color-ink));
}
/* Homepage feature card icon placement.
   Left/right should behave like a true float so the title and caption sit beside the icon.
   Center keeps the icon as a centered block above the text. */
.feature-grid--icon-align-left .feature-card, .feature-grid--icon-align-right .feature-card {
    display: block;
}
.feature-grid--icon-align-left .feature-card:: after, .feature-grid--icon-align-right .feature-card:: after {
    content: "";
    display: table;
    clear: both;
}
.feature-grid--icon-align-left .feature-card .feature-card-icon, .feature-grid--icon-align-right .feature-card .feature-card-icon {
    display: flex;
    width: 72px;
    height: 72px;
    max-width: 72px;
    margin-bottom: .75rem;
}
.feature-grid--icon-align-left .feature-card .feature-card-icon {
    float: left;
    margin-right: 1rem;
    margin-left: 0;
}
.feature-grid--icon-align-right .feature-card .feature-card-icon {
    float: right;
    margin-left: 1rem;
    margin-right: 0;
}
.feature-grid--icon-align-center .feature-card .feature-card-icon {
    display: flex;
    float: none;
    width: 72px;
    max-width: 72px;
    margin-left: auto;
    margin-right: auto;
}
.feature-grid--icon-align-left .feature-card-title, .feature-grid--icon-align-right .feature-card-title {
    margin-top: 0;
}

/* SCF-managed aid cards: render uploaded aid images consistently. */
.aid-card-media {
    margin: 0 0 1.25rem;
}
.aid-card-image {
    display: block;
    width: 100%;
    max-height: 220px;
    object-fit: contain;
    object-position: left center;
    border-radius: calc(var(--calcopa-card-radius, 24px) - 10px);
}
.legacy-content-link {
    margin-top: 1.5rem;
}
/* FAQ auto-section shown when a page has SCF faqs rows. */
.page-faq-section .section-heading {
    margin-bottom: 1.5rem;
}
/* About page scroll-tracking layout: mirrors the legacy page's left progress navigation without wrapping each story block in heavy cards. */
.about-scroll-section {
    background: linear-gradient(180deg, #fff 0%, var(--color-soft, #f7fafc) 100%);
}
.about-scroll-layout {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
    padding-top: clamp(1.25rem, 3vw, 2rem);
}
.about-scroll-nav {
    position: sticky;
    /* Keep the legacy-style left tracker below the sticky site header. */
    top: var(--calcopa-about-nav-offset, 156px);
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .85rem;
    max-height: calc(100vh - var(--calcopa-about-nav-offset, 156px) - 24px);
    padding: .5rem 0;
}
.admin-bar .about-scroll-nav {
    top: calc(var(--calcopa-about-nav-offset, 156px) + 32px);
    max-height: calc(100vh - var(--calcopa-about-nav-offset, 156px) - 56px);
}
.about-scroll-track {
    position: relative;
    width: 3px;
    min-height: 100%;
    align-self: stretch;
    border-radius: 999px;
    background: rgba(0, 70, 130, .13);
    overflow: hidden;
}
.about-scroll-track span {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--about-scroll-progress, 25%);
    border-radius: inherit;
    background: var(--color-blue, #1687bb);
    transition: height .24s ease;
}
.about-scroll-nav ul {
    display: grid;
    gap: .45rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.about-scroll-link {
    display: block;
    padding: .55rem .75rem;
    border-radius: 999px;
    color: var(--color-ink, #233244);
    font-size: .86rem;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1.1;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .18s ease, background .18s ease, transform .18s ease;
}
.about-scroll-link: hover, .about-scroll-link: focus, .about-scroll-link.is-active {
    color: var(--color-deep, #004682);
    background: rgba(22, 135, 187, .1);
    transform: translateX(2px);
}
.about-scroll-content {
    display: grid;
    gap: clamp(2.5rem, 6vw, 5rem);
}
.about-story-panel {
    scroll-margin-top: 130px;
    padding: clamp(2rem, 4vw, 3.25rem) 0;
    border-top: 1px solid rgba(0, 70, 130, .12);
}
.about-story-panel: first-child {
    padding-top: 0;
    border-top: 0;
}
.about-story-panel > .eyebrow {
    margin-bottom: .65rem;
}
.about-story-panel > h2 {
    max-width: 780px;
    margin: 0 0 1.1rem;
    color: var(--color-deep, #004682);
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1;
    letter-spacing: -.05em;
}
.about-story-panel .entry-content {
    max-width: 820px;
}
.about-story-panel--people .people-grid, .about-leadership-section .people-grid {
    margin-top: 1.75rem;
}
.about-story-panel--people .person-card a, .about-leadership-section .person-card a {
    box-shadow: none;
    border-color: rgba(0, 70, 130, .14);
}
.about-story-panel--people .person-card a: hover, .about-leadership-section .person-card a: hover {
    box-shadow: 0 12px 30px rgba(22, 34, 51, .1);
}
@media (max-width: 980px) {
    .about-scroll-layout {
        grid-template-columns: 1fr;
    }
    .about-scroll-nav {
        position: sticky;
        top: var(--calcopa-about-mobile-nav-offset, 112px);
        z-index: 5;
        grid-template-columns: 1fr;
        max-height: none;
        margin-inline: calc((100vw - min(1140px, calc(100vw - 40px))) / -2);
        padding: .65rem max(20px, calc((100vw - min(1140px, calc(100vw - 40px))) / 2));
        background: rgba(255, 255, 255, .94);
        border-block: 1px solid rgba(0, 70, 130, .1);
        backdrop-filter: blur(12px);
    }
    .about-scroll-track {
        display: none;
    }
    .about-scroll-nav ul {
        display: flex;
        gap: .5rem;
        overflow-x: auto;
        padding-bottom: .1rem;
        scrollbar-width: none;
    }
    .about-scroll-nav ul:: -webkit-scrollbar {
        display: none;
    }
    .about-scroll-link {
        white-space: nowrap;
    }
    .about-story-panel {
        scroll-margin-top: 170px;
    }
}
@media (max-width: 768px) {
    .about-scroll-nav {
        top: var(--calcopa-about-mobile-nav-offset, 90px);
    }
    .about-story-panel {
        padding-block: 2.5rem;
        scroll-margin-top: 140px;
    }
}
/* Programs page scroll-tracking layout uses the same left-side progress navigation as About, but keeps program content lighter than stacked cards. */
.programs-scroll-section {
    background: linear-gradient(180deg, #fff 0%, var(--color-soft, #f7fafc) 100%);
}
.programs-story-panel > h2 {
    max-width: 820px;
    margin: 0 0 1.1rem;
    color: var(--color-deep, #004682);
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1;
    letter-spacing: -.05em;
}
.programs-story-panel .entry-content, .programs-story-panel .responsive-table {
    max-width: 880px;
}
.programs-story-panel .responsive-table {
    margin-top: 1.25rem;
}
/* Shared SCF form section. Visual values come from Global Customizer tokens. */
.home-tour-section {
    padding-block: var(--calcopa-section-spacing);
    background: var(--calcopa-color-section-bg);
    color: var(--calcopa-color-text);
    font-family: var(--calcopa-font-body);
    font-size: var(--calcopa-font-size-body);
    line-height: var(--calcopa-line-height-body);
}
.home-tour-layout {
    display: grid;
    grid-template-columns: minmax(240px, .82fr) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: max(var(--calcopa-grid-gap), 2rem);
    row-gap: var(--calcopa-grid-gap);
    align-items: start;
}
.home-tour-layout.no-form-image {
    grid-template-columns: minmax(0, 1fr);
    max-width: var(--calcopa-narrow-width);
}
.home-tour-heading {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}
.home-tour-layout.no-form-image .home-tour-heading {
    grid-column: 1;
}
.home-tour-heading .eyebrow {
    margin: 0 0 .75rem;
    color: var(--calcopa-color-eyebrow);
    font-family: var(--calcopa-font-body);
    font-size: var(--calcopa-eyebrow-font-size);
    font-weight: var(--calcopa-eyebrow-font-weight);
    letter-spacing: var(--calcopa-eyebrow-letter-spacing);
    text-transform: var(--calcopa-eyebrow-text-transform);
}
.home-tour-heading h2 {
    margin: 0;
    color: var(--calcopa-color-card-heading);
    font-family: var(--calcopa-font-heading);
    font-size: var(--calcopa-h2-size);
    font-weight: var(--calcopa-heading-font-weight);
    line-height: var(--calcopa-heading-line-height);
    letter-spacing: var(--calcopa-heading-letter-spacing);
}
.home-tour-image {
    position: relative;
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: stretch;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-card-border);
    border-radius: var(--calcopa-card-radius);
    background: var(--calcopa-color-card-bg);
    box-shadow: var(--calcopa-card-shadow);
}
.home-tour-photo {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
}
.home-tour-content {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    color: var(--calcopa-color-text);
}
.home-tour-layout.no-form-image .home-tour-content {
    grid-column: 1;
}
.home-tour-layout.no-form-heading .home-tour-content {
    grid-row: 1 / span 2;
}
.home-tour-copy {
    max-width: var(--calcopa-narrow-width);
    font-family: var(--calcopa-font-body);
    font-size: var(--calcopa-font-size-body);
    line-height: var(--calcopa-line-height-body);
}
.home-tour-phone {
    margin: var(--calcopa-paragraph-spacing) 0;
    font-family: var(--calcopa-font-heading);
    font-size: var(--calcopa-h3-size);
    font-weight: var(--calcopa-heading-font-weight);
    line-height: var(--calcopa-heading-line-height);
}
.home-tour-phone a {
    color: var(--calcopa-color-link);
    text-decoration: none;
}
.home-tour-phone a:hover, .home-tour-phone a:focus {
    color: var(--calcopa-color-link-hover);
    text-decoration: underline;
    text-underline-offset: .18em;
}
.home-tour-address {
    color: var(--calcopa-color-text);
}
.home-tour-form.form-card {
    margin-top: var(--calcopa-paragraph-spacing);
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.home-tour-form .everest-forms,
.home-tour-form .evf-container,
.home-tour-form .gform_wrapper,
.home-tour-form form {
    margin: 0;
    color: var(--calcopa-color-text);
    font-family: var(--calcopa-font-body);
    font-size: var(--calcopa-font-size-body);
    line-height: var(--calcopa-line-height-body);
}
.home-tour-form .evf-field-container,
.home-tour-form .evf-field-row,
.home-tour-form .gform_fields {
    gap: var(--calcopa-grid-gap);
}
.home-tour-form label,
.home-tour-form legend {
    color: var(--calcopa-color-text);
    font-family: var(--calcopa-font-body);
    font-weight: normal;
}
.home-tour-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.home-tour-form textarea,
.home-tour-form select {
    width: 100%;
    min-height: 48px;
    padding: var(--calcopa-button-padding-y) var(--calcopa-button-padding-x);
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-input-border);
    border-radius: min(var(--calcopa-card-radius), 14px);
    background: var(--calcopa-color-input-bg);
    color: var(--calcopa-color-input-text);
    font: inherit;
    box-shadow: none;
}
.home-tour-form input:focus,
.home-tour-form textarea:focus,
.home-tour-form select:focus {
    border-color: var(--calcopa-color-input-focus-border);
    outline-color: var(--calcopa-color-input-focus-border);
}

/* Contact page: location and map support the wider admissions form. */
.contact-layout {
    display: grid;
    grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
    grid-template-areas:
        "map form"
        "location form";
    gap: var(--calcopa-grid-gap) max(var(--calcopa-grid-gap), 2rem);
    align-items: start;
}
.contact-map {
    grid-area: map;
    min-width: 0;
    overflow: hidden;
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-card-border);
    border-radius: var(--calcopa-card-radius);
    background-color: var(--calcopa-color-card-bg);
    box-shadow: var(--calcopa-card-shadow);
}
.contact-map .responsive-embed {
    min-height: clamp(300px, 30vw, 420px);
    border-radius: 0;
}
.contact-location {
    grid-area: location;
    min-width: 0;
    padding: var(--calcopa-card-padding);
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-card-border);
    border-radius: var(--calcopa-card-radius);
    background-color: var(--calcopa-color-card-bg);
    color: var(--calcopa-color-card-text);
    box-shadow: var(--calcopa-card-shadow);
}
.contact-location .eyebrow,
.contact-form-panel .eyebrow {
    margin: 0 0 .75rem;
}
.contact-location h2,
.contact-form-panel h2 {
    margin: 0;
    color: var(--calcopa-color-card-heading);
    font-family: var(--calcopa-font-heading);
    font-weight: var(--calcopa-heading-font-weight);
    line-height: var(--calcopa-heading-line-height);
    letter-spacing: var(--calcopa-heading-letter-spacing);
}
.contact-location h2 {
    font-size: var(--calcopa-h3-size);
}
.contact-form-panel h2 {
    font-size: var(--calcopa-h2-size);
}
.contact-address {
    margin-top: var(--calcopa-paragraph-spacing);
    color: var(--calcopa-color-card-text);
    font-style: normal;
}
.contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: var(--calcopa-paragraph-spacing);
}
.contact-form-panel {
    grid-area: form;
    min-width: 0;
    padding: var(--calcopa-card-padding);
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-card-border);
    border-radius: var(--calcopa-card-radius);
    background-color: var(--calcopa-color-card-bg);
    color: var(--calcopa-color-card-text);
    box-shadow: var(--calcopa-card-shadow);
}
.contact-form-intro,
.contact-form {
    margin-top: var(--calcopa-paragraph-spacing);
}
@media (max-width: 768px) {
    .contact-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "location"
            "form"
            "map";
    }
    .contact-map .responsive-embed {
        min-height: 320px;
    }
}
@media (max-width: 768px) {
    .home-tour-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        gap: var(--calcopa-grid-gap);
    }
    .home-tour-layout.has-form-image .home-tour-image,
    .home-tour-layout.has-form-image .home-tour-heading {
        grid-column: 1;
        grid-row: 1;
    }
    .home-tour-layout.has-form-image .home-tour-image {
        width: 100%;
        height: clamp(170px, 52vw, 200px);
        min-height: 170px;
        max-height: 200px;
    }
    .home-tour-layout.has-form-image .home-tour-photo {
        height: 100%;
        min-height: 0;
        object-position: center 35%;
    }
    .home-tour-layout.has-form-image .home-tour-image::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 1;
        background: var(--calcopa-hero-overlay-gradient);
        pointer-events: none;
    }
    .home-tour-layout.has-form-image .home-tour-heading {
        z-index: 2;
        align-self: end;
        padding: max(var(--calcopa-card-padding), var(--calcopa-container-padding));
    }
    .home-tour-layout.has-form-image .home-tour-heading .eyebrow {
        color: var(--calcopa-color-hero-eyebrow);
    }
    .home-tour-layout.has-form-image .home-tour-heading h2 {
        color: var(--calcopa-color-hero-text);
    }
    .home-tour-content,
    .home-tour-layout.no-form-image .home-tour-content {
        grid-column: 1;
        grid-row: 2;
    }
}
/* Form submit buttons: force embedded plugin submit controls to use theme button styling. */
.form-card input[type="submit"], .form-card button[type="submit"], .form-card .button[type="submit"], .form-card .evf-submit, .form-card .everest-forms button[type="submit"], .form-card .everest-forms input[type="submit"], .form-card .everest-forms .evf-submit, .form-card .everest-forms-submit-button, .form-card .wpforms-submit, .form-card .gform_button, .home-tour-form input[type="submit"], .home-tour-form button[type="submit"], .home-tour-form .button[type="submit"], .home-tour-form .evf-submit, .home-tour-form .everest-forms button[type="submit"], .home-tour-form .everest-forms input[type="submit"], .home-tour-form .everest-forms .evf-submit, .home-tour-form .everest-forms-submit-button, .home-tour-form .wpforms-submit, .home-tour-form .gform_button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--calcopa-button-min-height) !important;
    width: auto !important;
    max-width: 100% !important;
    padding: var(--calcopa-button-padding-y) var(--calcopa-button-padding-x) !important;
    border: 0 !important;
    border-radius: var(--calcopa-button-radius) !important;
    background: var(--calcopa-color-form-button-bg) !important;
    color: var(--calcopa-color-form-button-text) !important;
    font-family: var(--calcopa-font-button) !important;
    font-size: var(--calcopa-button-font-size) !important;
    font-weight: var(--calcopa-button-font-weight) !important;
    line-height: 1.1 !important;
    letter-spacing: var(--calcopa-button-letter-spacing) !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: var(--calcopa-button-text-transform) !important;
    box-shadow: none !important;
    cursor: pointer !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
.form-card input[type="submit"]:hover, .form-card button[type="submit"]:hover, .form-card .evf-submit:hover, .form-card .everest-forms-submit-button:hover, .form-card .wpforms-submit:hover, .form-card .gform_button:hover, .home-tour-form input[type="submit"]:hover, .home-tour-form button[type="submit"]:hover, .home-tour-form .evf-submit:hover, .home-tour-form .everest-forms-submit-button:hover, .home-tour-form .wpforms-submit:hover, .home-tour-form .gform_button:hover {
    background: var(--calcopa-color-form-button-hover-bg) !important;
    color: var(--calcopa-color-form-button-text) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--calcopa-card-shadow) !important;
}
/* Reveal-on-scroll disabled: keep content visible immediately and avoid blank-on-load sections. */
.reveal-on-scroll, .reveal-on-scroll.is-visible {
    opacity: 1 !important;
    transform: none !important;
}
/* 2026-06 responsiveness/content polish: scope lead text, prevent desktop menu wrap, and improve mobile scroll trackers. */
.page-hero p: not(.lead-text), .section-heading p: not(.lead-text) {
    font-size: inherit;
}
@media (min-width: 1181px) {
    .nav-row {
        flex-wrap: nowrap;
        gap: clamp(.75rem, 1.8vw, 1.5rem);
    }
    .site-branding, .custom-logo-link {
        flex: 0 1 auto;
        min-width: 0;
    }
    .custom-logo {
        max-height: clamp(58px, 5.5vw, 76px);
    }
    .primary-nav: not(.primary-nav--mega-menu) {
        flex: 1 1 auto;
        justify-content: flex-end;
        min-width: 0;
    }
    .header-menu {
        flex-wrap: nowrap;
        gap: clamp(.65rem, 1.35vw, 1.15rem);
        white-space: nowrap;
    }
    .header-menu > li > a {
        font-size: clamp(.78rem, .82vw, .93rem);
        letter-spacing: clamp(0em, .02vw, .02em);
    }
    .primary-nav .button {
        flex: 0 0 auto;
        padding-inline: clamp(.9rem, 1.35vw, 1.45rem);
        font-size: clamp(.68rem, .72vw, .82rem);
        white-space: nowrap;
    }
}
@media (max-width: 1180px) {
    .nav-row {
        min-height: 76px;
        gap: 1rem;
    }
    .menu-toggle {
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
    }
    .primary-nav: not(.primary-nav--mega-menu) {
        position: absolute;
        top: calc(100% + .65rem);
        left: 0;
        right: 0;
        z-index: 50;
        display: none;
        flex-direction: column;
        align-items: stretch;
        max-height: calc(100vh - 150px);
        overflow: auto;
        padding: 1rem;
        border-radius: 22px;
        background: #fff;
        box-shadow: var(--shadow-soft);
    }
    .primary-nav: not(.primary-nav--mega-menu).is-open {
        display: flex;
    }
}
@media (max-width: 980px) {
    .about-scroll-nav, .programs-scroll-nav {
        top: var(--calcopa-mobile-tracker-offset, 74px);
        z-index: 19;
    }
    .admin-bar .about-scroll-nav, .admin-bar .programs-scroll-nav {
        top: calc(var(--calcopa-mobile-tracker-offset, 74px) + 32px);
    }
    .about-story-panel, .programs-story-panel {
        scroll-margin-top: 132px;
    }
}
.mega-menu-horizontal {
	white-space:nowrap!important;
}

/* Blog infinite loading. */
.blog-infinite-loader {
    display: grid;
    justify-items: center;
    align-items: center;
    min-height: 72px;
    margin-top: var(--calcopa-grid-gap);
    color: var(--calcopa-color-muted-text);
    text-align: center;
}
.blog-infinite-spinner {
    display: none;
    width: 30px;
    height: 30px;
    border: 3px solid var(--calcopa-color-border);
    border-top-color: var(--calcopa-color-link);
    border-radius: 50%;
    animation: calcopa-blog-spin .8s linear infinite;
}
.blog-infinite-loader.is-loading .blog-infinite-spinner {
    display: block;
}
.blog-infinite-status {
    margin: .5rem 0 0;
    font-size: .9rem;
}
.blog-infinite-loader [hidden] {
    display: none !important;
}
.blog-pagination {
    margin-top: var(--calcopa-grid-gap);
}
.blog-pagination ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.blog-pagination a,
.blog-pagination .current {
    display: inline-grid;
    min-width: var(--calcopa-button-min-height);
    min-height: var(--calcopa-button-min-height);
    place-items: center;
    padding: .5rem .75rem;
    border: var(--calcopa-card-border-width) solid var(--calcopa-color-card-border);
    border-radius: var(--calcopa-button-radius);
    background-color: var(--calcopa-color-card-bg);
    color: var(--calcopa-color-link);
    text-decoration: none;
}
.blog-pagination .current {
    background-color: var(--calcopa-color-button-bg);
    color: var(--calcopa-color-button-text);
}
@keyframes calcopa-blog-spin {
    to {
        transform: rotate(360deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    .blog-infinite-spinner {
        animation: none;
    }
}
