@font-face {
    font-family: "Manrope";
    src: url("../fonts/manrope-latin-ext-400-700.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    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";
    src: url("../fonts/manrope-latin-400-700.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    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;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    overflow-x: clip;
    overscroll-behavior-y: auto;
}

section[id] {
    scroll-margin-top: 155px;
}

body {
    margin: 0;
    color: var(--black);
    background: var(--white);
    font-family: var(--ccm-font-sans);
    font-size: var(--ccm-text-body);
    font-weight: var(--ccm-weight-body);
    line-height: var(--ccm-leading-body);
    overflow-x: hidden;
    overscroll-behavior-y: auto;
}

img {
    display: block;
    max-width: 100%;
}

/* Preserve the no-overscroll mobile finish without changing desktop wheel
   behavior. The mobile navigation stylesheet owns the menu scroll lock. */
@media (max-width: 1120px) {
    html,
    body {
        overscroll-behavior-y: none;
    }
}

/* Light counterpart for the photo-free principles hero preview. */
.hero--photo-free-principles-light {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-surface);
}

.hero--photo-free-principles-light::before {
    display: none;
}

.hero--photo-free-principles-light .hero__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    align-items: center;
    gap: clamp(48px, 8vw, 132px);
}

.hero--photo-free-principles-light .hero__copy {
    max-width: 690px;
}

.hero--photo-free-principles-light .hero__eyebrow {
    color: var(--ccm-color-brand-slate) !important;
    text-shadow: none;
}

.hero--photo-free-principles-light h1 {
    color: var(--ccm-color-ink);
    text-shadow: none;
}

.hero--photo-free-principles-light .hero__summary {
    color: rgba(16, 21, 27, 0.72);
    text-shadow: none;
}

.hero--photo-free-principles-light .hero__text-link {
    color: var(--ccm-color-brand-slate);
    border-color: rgba(49, 65, 86, 0.42);
}

.hero--photo-free-principles-light .hero__text-link:hover,
.hero--photo-free-principles-light .hero__text-link:focus-visible {
    color: var(--ccm-color-brand-slate-hover);
    border-color: currentColor;
}

.hero--photo-free-principles-light .hero__principles {
    border-left-color: rgba(49, 65, 86, 0.28);
}

.hero--photo-free-principles-light .hero__principles-kicker {
    color: var(--ccm-color-brand-slate);
}

.hero--photo-free-principles-light .hero__principles li {
    border-color: rgba(49, 65, 86, 0.2);
}

.hero--photo-free-principles-light .hero__principles-number {
    color: var(--ccm-color-brand-slate);
}

.hero--photo-free-principles-light .hero__principles strong {
    color: var(--ccm-color-ink);
}

.hero--photo-free-principles-light .hero__principles small {
    color: rgba(16, 21, 27, 0.68);
}

#who-we-serve.section--after-light-hero {
    background: var(--ccm-color-section-soft);
}

.services-section.services-section--after-light-hero {
    background: var(--ccm-color-surface-review);
}

@media (max-width: 760px) {
    .hero--photo-free-principles-light {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--photo-free-principles-light .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
        padding-top: 140px;
        padding-bottom: 56px;
    }

    .hero--photo-free-principles-light .hero__copy {
        width: 100%;
        max-width: none;
        padding-block: 0;
    }

    .hero--photo-free-principles-light .hero__principles {
        width: 100%;
        max-width: none;
        margin-top: var(--ccm-space-8);
        padding: var(--ccm-space-6) 0 0;
        border-top: 1px solid rgba(49, 65, 86, 0.28);
        border-left: 0;
    }
}

.ccm-image-pack {
    object-position: var(--ccm-image-position, center);
}

a {
    color: inherit;
    text-decoration: none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--ccm-color-gold);
    outline-offset: 3px;
    box-shadow: 0 0 0 1px var(--ccm-color-ink);
}

button,
input,
textarea,
select {
    font: inherit;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote {
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--ccm-font-sans);
}

h1 {
    font-weight: var(--ccm-weight-hero);
}

h2 {
    font-weight: var(--ccm-weight-section);
}

h3,
h4,
h5,
h6 {
    font-weight: var(--ccm-weight-card);
}

.container,
.ccm-container {
    width: var(--ccm-layout-width);
    margin-inline: auto;
}

.ccm-container--narrow {
    width: min(var(--ccm-container-narrow), calc(100% - 40px));
    margin-inline: auto;
}

.ccm-section {
    width: 100%;
    padding-block: var(--ccm-section-space);
}

.ccm-section--surface {
    background: var(--ccm-color-surface);
}

.ccm-section--muted {
    background: var(--ccm-color-surface-muted);
}

.ccm-section--night {
    color: var(--ccm-color-surface);
    background: var(--ccm-color-night);
}

.ccm-icon {
    display: block;
    width: var(--ccm-icon-base);
    height: var(--ccm-icon-base);
    flex: 0 0 var(--ccm-icon-base);
    overflow: visible;
    color: inherit;
    stroke-width: 1px !important;
}

.ccm-icon * {
    vector-effect: non-scaling-stroke;
    stroke-width: 1px !important;
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: 16px;
    left: 16px;
    padding: 10px 14px;
    color: var(--ink);
    background: var(--white);
    transform: translateY(-180%);
}

.skip-link:focus {
    transform: none;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-header {
    position: absolute;
    z-index: 100;
    inset: 0 0 auto;
    color: var(--white);
    transition: background 220ms ease, box-shadow 220ms ease;
}

.site-header.is-scrolled {
    position: fixed;
    background: rgba(10, 14, 19, 0.97);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.22);
}

.topbar {
    height: 50px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.topbar__inner,
.topbar__contact,
.topbar__links,
.topbar a {
    display: flex;
    align-items: center;
}

.topbar__inner {
    height: 50px;
    justify-content: space-between;
}

.topbar__contact {
    gap: 28px;
}

.topbar__links {
    gap: 40px;
}

.topbar a {
    min-height: var(--ccm-control-min);
    gap: 9px;
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-ui);
    line-height: 26px;
    transition: opacity 160ms ease;
}

.topbar a:hover,
.primary-nav > a:hover,
.nav-mega__button:hover {
    opacity: 0.78;
}

.topbar .ccm-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.portal-link .ccm-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.portal-link {
    font-weight: var(--ccm-weight-ui) !important;
}

.nav-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 115px;
}

.brand {
    display: block;
    flex: 0 0 auto;
}

.brand img {
    width: 209.375px;
    height: auto;
    aspect-ratio: 802 / 232;
    object-fit: contain;
}

.primary-nav {
    display: flex;
    align-items: center;
    gap: 20px;
}

.primary-nav > a,
.nav-mega__button {
    min-height: var(--ccm-control-min);
    color: var(--white);
    font-size: var(--ccm-text-sm);
    font-weight: var(--ccm-weight-ui);
    line-height: 26px;
    white-space: nowrap;
    transition: opacity 160ms ease;
}

.primary-nav > a {
    display: inline-flex;
    align-items: center;
}

.nav-mega {
    position: relative;
}

.nav-mega__button {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.nav-mega__button .ccm-icon {
    width: var(--ccm-icon-nav);
    height: var(--ccm-icon-nav);
    flex-basis: var(--ccm-icon-nav);
    transition: transform 180ms ease;
}

.nav-mega.is-active .nav-mega__button .ccm-icon {
    transform: rotate(180deg);
}

.nav-cta {
    display: flex !important;
    min-height: var(--ccm-control-min);
    gap: var(--ccm-space-3);
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    overflow: hidden;
    background: var(--slate);
    font-size: var(--ccm-text-action) !important;
    font-weight: var(--ccm-weight-ui) !important;
    letter-spacing: 0.84px;
    line-height: normal !important;
    text-transform: uppercase;
    transition: background 180ms ease, transform 180ms ease !important;
}

.nav-cta .ccm-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.nav-cta:hover {
    background: var(--ccm-color-brand-slate-hover);
    opacity: 1 !important;
    transform: translateY(-1px);
}

.nav-toggle {
    display: none;
}

.mega-panel {
    position: fixed;
    top: 155px;
    left: 50%;
    display: grid;
    grid-template-columns: 1.05fr 1fr 1fr 0.8fr;
    gap: 26px;
    width: var(--ccm-layout-width);
    padding: 30px;
    color: var(--ink);
    background: var(--white);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.22);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 12px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
}

.site-header.is-scrolled .mega-panel {
    top: 155px;
}

.nav-mega.is-active .mega-panel {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.mega-panel--serve {
    grid-template-columns: 1.1fr 1fr 1fr;
}

.mega-panel--resources {
    grid-template-columns: 1.1fr 1fr 1fr;
}

.mega-panel > div {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mega-panel a {
    display: grid;
    gap: 3px;
    padding: 8px 0;
    font-size: 13px;
    border-bottom: 1px solid var(--line);
}

.mega-panel__link-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.mega-panel__quick a {
    display: flex;
    grid-template-columns: none;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.mega-panel small {
    color: rgba(0, 0, 0, 0.6);
    font-weight: 400;
}

.mega-panel__eyebrow {
    color: var(--slate);
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    text-transform: uppercase;
}

.mega-panel__intro {
    padding: 20px;
    background: var(--soft);
}

.mega-panel__cta {
    width: fit-content;
    color: var(--white);
    padding: 10px 14px !important;
    background: var(--slate);
    border: 0 !important;
    font-weight: var(--ccm-weight-ui);
    text-transform: uppercase;
}

.hero {
    position: relative;
    height: clamp(720px, 100vh, 900px);
    height: clamp(720px, 100svh, 900px);
    min-height: 721px;
    max-height: 900px;
    color: var(--white);
    background: var(--white);
}

.hero::before {
    position: absolute;
    z-index: 1;
    inset: 0 0 59px;
    content: "";
    background-image: linear-gradient(180deg, var(--ccm-color-hero-deep) 0%, rgba(7, 15, 24, 0) 31%), linear-gradient(90deg, rgba(7, 15, 24, 0.8) 0%, rgba(7, 15, 24, 0.38) 48%, rgba(7, 15, 24, 0) 78%);
    background-position: center;
    background-size: cover;
}

.hero__image {
    position: absolute;
    z-index: 0;
    inset: 0 0 59px;
    width: 100%;
    height: calc(100% - 59px);
    object-fit: cover;
    object-position: var(--ccm-image-position, 50% 48%);
}

.hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: calc(100% - 59px);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding-top: 155px;
    padding-bottom: 96px;
}

.eyebrow,
.ccm-eyebrow {
    color: var(--slate);
    font-size: 14px;
    font-weight: var(--ccm-weight-eyebrow);
    line-height: normal;
    letter-spacing: var(--ccm-tracking-eyebrow);
    text-transform: uppercase;
}

.hero__eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
    color: var(--hero-blue);
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.hero h1 {
    max-width: 1000px;
    margin-bottom: var(--ccm-stack-copy);
    font-size: 40px;
    font-weight: var(--ccm-weight-hero);
    line-height: 1.16;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.hero__summary {
    width: 456px;
    max-width: 100%;
    margin-bottom: var(--ccm-stack-action);
    font-size: var(--ccm-text-lead);
    font-weight: var(--ccm-weight-body);
    line-height: 1.5;
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.hero__actions,
.footer-cta__actions {
    display: flex;
    align-items: center;
    gap: var(--ccm-space-4);
}

.button,
.ccm-button {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    justify-content: center;
    gap: var(--ccm-action-gap);
    padding: 10px 24px;
    border: 1px solid transparent;
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    line-height: 1.1;
    letter-spacing: var(--ccm-tracking-button);
    text-transform: uppercase;
    white-space: nowrap;
    transition: color 180ms ease, background 180ms ease, border 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.button .ccm-icon,
.ccm-button .ccm-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.button:hover,
.ccm-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 7px 18px rgba(49, 65, 86, 0.18);
}

.button--slate,
.ccm-button--primary {
    color: var(--white);
    background: var(--slate);
}

.button--slate:hover,
.ccm-button--primary:hover {
    background: var(--ccm-color-brand-slate-hover);
}

.button--outline-light,
.ccm-button--outline-light {
    color: var(--white);
    border-color: var(--white);
    background: transparent;
}

.button--outline-light:hover,
.ccm-button--outline-light:hover {
    color: var(--ink);
    background: var(--white);
}

.ccm-button--gold {
    color: var(--ccm-color-on-gold);
    background: var(--ccm-color-gold);
    border-color: var(--ccm-color-gold);
}

.ccm-button--gold:hover,
.ccm-button--gold:focus-visible {
    color: var(--ccm-color-on-gold);
    background: var(--ccm-color-gold-hover);
    border-color: var(--ccm-color-gold-hover);
}

.button--outline-dark,
.ccm-button--outline-dark {
    color: var(--ccm-color-brand-slate);
    border-color: var(--ccm-color-brand-slate);
    background: transparent;
}

.quick-actions {
    position: relative;
    z-index: 5;
    height: 0;
}

.quick-actions__grid {
    position: absolute;
    top: -132px;
    left: 50%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    min-height: 132px;
    padding: 0 var(--ccm-space-4);
    background: var(--soft);
    border: 1px solid rgba(49, 65, 86, 0.12);
    box-shadow: var(--ccm-shadow-card);
    transform: translateX(-50%);
}

.reveal-ready .quick-actions__grid {
    opacity: 0;
    transform: translate(-50%, 20px);
    transition: opacity var(--ccm-motion-reveal) var(--ccm-ease-standard), transform var(--ccm-motion-reveal) var(--ccm-ease-standard);
}

.reveal-ready .quick-actions__grid.is-quick-actions-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.quick-actions__grid > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--ccm-space-3);
    padding: 20px var(--ccm-space-5);
    transition: background 180ms ease;
}

.quick-actions__grid > a + a::before {
    position: absolute;
    top: 28px;
    bottom: 28px;
    left: 0;
    width: 1px;
    content: "";
    background: rgba(49, 65, 86, 0.22);
}

.quick-actions__grid > a:hover {
    background: rgba(255, 255, 255, 0.65);
}

.quick-actions__icon {
    width: var(--ccm-icon-base);
    height: var(--ccm-icon-base);
    flex: 0 0 var(--ccm-icon-base);
}

.quick-actions__grid a > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-1);
}

.quick-actions strong {
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    line-height: 1.35;
    text-transform: uppercase;
}

.quick-actions small {
    font-size: var(--ccm-text-supporting);
    font-weight: 400;
    line-height: var(--ccm-leading-body);
}

/* On desktop, let the Quick Tools rail bridge the hero with a full-bleed white
   shape, but stop the shape at the normal-flow boundary so it cannot cover the
   first content section below the hero. The rail stays above this layer. */
@media (min-width: 1041px) {
    .quick-actions::before {
        position: absolute;
        z-index: 0;
        top: -66px;
        left: 50%;
        width: 100vw;
        height: 66px;
        content: "";
        background: var(--white);
        pointer-events: none;
        transform: translateX(-50%);
    }

    .quick-actions__grid {
        z-index: 1;
    }
}

.intro-section {
    height: auto;
    padding: var(--ccm-section-space) 0;
    background: var(--white);
}

.intro-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: var(--ccm-split-gap);
    min-height: 0;
}

.intro-section__image {
    width: 100%;
    height: auto;
    aspect-ratio: 504.5 / 412.5;
}

.intro-section__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* The homepage About image is intentionally wider than its editorial frame;
   cover keeps the community legible while cropping the outer edges cleanly. */
.intro-section__image .intro-section__home-image {
    object-position: 50% 52%;
}

.intro-section__asset {
    overflow: hidden;
    background: var(--ccm-color-surface-review);
}

.intro-section__media {
    width: 100%;
    height: 100%;
    margin: 0 auto;
}

.intro-section__asset .intro-section__media img {
    object-position: var(--ccm-image-position, 48% 34%);
}

.intro-section__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding-block: var(--ccm-section-space);
}

.intro-section__copy .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
}

.intro-section__copy h2 {
    margin-bottom: var(--ccm-stack-copy);
}

.intro-section__copy > p:not(.eyebrow) {
    margin-bottom: var(--ccm-stack-action);
}

.intro-section__copy h2,
.section-heading h2,
.trust-strip h2,
.service-area h2,
.reviews-summary h2,
.resources-section h2 {
    font-size: 32px;
    font-weight: var(--ccm-weight-section);
    line-height: 1.2;
}

.intro-section__copy > p:not(.eyebrow),
.service-area__grid > div > p:not(.eyebrow) {
    max-width: 457px;
    font-size: var(--ccm-text-body);
    line-height: 1.55;
}

.section {
    padding: var(--ccm-section-space) 0;
}

.section--soft {
    background: var(--soft);
}

.resources-section {
    background: var(--ccm-color-section-soft);
}

#who-we-serve {
    background: var(--white);
}

.section-heading {
    margin-bottom: var(--ccm-space-6);
}

.section-heading--split {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--ccm-split-gap);
}

.section-heading--split > div {
    display: flex;
    flex-direction: column;
    gap: var(--ccm-stack-eyebrow);
}

.section-heading--split > p {
    width: 457px;
    max-width: 46%;
    font-size: var(--ccm-text-body);
    line-height: 1.55;
}

.serve-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ccm-space-5) var(--ccm-grid-gap);
}

.image-card {
    display: flex;
    min-height: 380px;
    height: auto;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(49, 65, 86, 0.14);
    border-radius: var(--ccm-radius-photo);
    background: var(--white);
    box-shadow: var(--ccm-shadow-card);
    transition: transform 220ms ease, box-shadow 220ms ease;
}

.image-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--ccm-shadow-card-hover);
}

.image-card__photo {
    width: 100%;
    height: 180px;
    object-fit: cover;
    transition: transform 450ms ease;
}

.image-card:hover .image-card__photo {
    transform: scale(1.035);
}

.image-card > span {
    max-width: 240px;
    margin-top: var(--ccm-space-4);
    font-size: var(--ccm-text-card-title);
    font-weight: var(--ccm-weight-card);
    line-height: 1.25;
    text-align: center;
}

.image-card > p {
    max-width: 275px;
    margin-top: var(--ccm-space-2);
    padding-inline: 12px;
    font-size: var(--ccm-text-supporting);
    line-height: var(--ccm-leading-body);
    text-align: center;
}

.image-card > small {
    display: flex;
    align-items: center;
    gap: var(--ccm-action-gap);
    margin: auto 0 var(--ccm-space-5);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    text-transform: uppercase;
}

.card-link__icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
}

.trust-strip {
    background: var(--ccm-color-section-soft);
}

.trust-strip__inner {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ccm-split-gap);
}

.trust-strip__heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.trust-strip__heading .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
}

.trust-strip__heading h2 {
    margin-bottom: var(--ccm-stack-action);
}

.services-section {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-section-soft);
}

.services-section .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
    color: var(--ccm-color-brand-slate);
}

.services-section__header {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.72fr);
    align-items: end;
    gap: clamp(56px, 8vw, 132px);
    margin-bottom: clamp(32px, 4vw, 56px);
}

.services-section__heading {
    min-width: 0;
}

.services-section__heading .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
}

.services-section__header h2 {
    max-width: 24ch;
    margin: 0;
    color: var(--ccm-color-ink);
    font-size: clamp(34px, 3vw, 46px);
    font-weight: var(--ccm-weight-section);
    line-height: 1.1;
}

.services-section__support {
    max-width: 500px;
    justify-self: end;
}

.services-section__lead {
    max-width: 48ch;
    margin: 0;
    color: rgba(16, 21, 27, 0.7);
    font-size: var(--ccm-text-body);
    line-height: 1.6;
}

.services-section__cta {
    display: inline-flex;
    align-items: center;
    gap: var(--ccm-action-gap);
    margin-top: var(--ccm-space-5);
    padding-bottom: 4px;
    border-bottom: 1px solid rgba(49, 65, 86, 0.28);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.4;
    text-transform: uppercase;
    transition: color 180ms ease, border-color 180ms ease;
}

.services-section__cta:hover,
.services-section__cta:focus-visible {
    border-color: currentColor;
    color: var(--ccm-color-brand-slate-hover);
}

.services-section__cta-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    transition: transform 180ms var(--ccm-ease-standard);
}

.services-section__cta:hover .services-section__cta-icon,
.services-section__cta:focus-visible .services-section__cta-icon {
    transform: translateX(4px);
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.2vw, 32px);
    margin-top: 0;
    padding: 0;
    list-style: none;
}

.service-card {
    min-height: var(--ccm-card-min-height);
    overflow: hidden;
    padding: var(--ccm-space-6);
    color: var(--ccm-color-ink);
    border: 1px solid rgba(49, 65, 86, 0.14);
    border-radius: var(--ccm-radius-photo);
    background: var(--ccm-color-surface);
    box-shadow: var(--ccm-shadow-card);
    transition: border-color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}

.service-card:hover,
.service-card:focus-within {
    border-color: rgba(49, 65, 86, 0.3);
    box-shadow: var(--ccm-shadow-card-hover);
    transform: translateY(-3px);
}

.service-card__article {
    display: flex;
    height: 100%;
    flex-direction: column;
}

.service-card:not(.service-card--featured) {
    padding: 0;
}

.service-card__article--link {
    color: inherit;
    text-decoration: none;
}

.service-card:not(.service-card--featured) .service-card__article--link {
    padding: var(--ccm-space-6);
}

.service-card__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
}

.ccm-icon-tile {
    display: grid;
    width: var(--ccm-icon-tile);
    height: var(--ccm-icon-tile);
    flex: 0 0 var(--ccm-icon-tile);
    place-items: center;
    color: var(--ccm-color-brand-slate);
    background: var(--ccm-color-section-soft);
    transition: color 180ms ease, background-color 180ms ease;
}

.service-card__icon-frame {
    margin-bottom: var(--ccm-space-5);
}

.service-card__icon {
    width: var(--ccm-icon-service);
    height: var(--ccm-icon-service);
    flex-basis: var(--ccm-icon-service);
    transition: transform 260ms ease;
}

.service-card:hover .service-card__icon {
    transform: scale(1.08) translateY(-2px);
}

.service-card__kicker {
    margin-bottom: var(--ccm-space-3);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-sm);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    text-transform: uppercase;
}

.service-card__title {
    max-width: none;
    margin-bottom: var(--ccm-space-3);
    color: var(--ccm-color-ink);
    font-size: clamp(20px, 1.55vw, 26px);
    font-weight: var(--ccm-weight-card);
    line-height: 1.25;
    text-align: left;
}

.service-card p {
    max-width: 66ch;
    color: rgba(16, 21, 27, 0.72);
    font-size: var(--ccm-text-supporting);
    line-height: 1.55;
    text-align: left;
}

.service-card__link {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    align-self: flex-start;
    gap: var(--ccm-action-gap);
    margin-top: auto;
    padding-top: var(--ccm-space-5);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    text-transform: uppercase;
}

.service-card__link:hover {
    color: var(--ccm-color-brand-slate-hover);
}

.service-card__article--link:hover .service-card__link {
    color: var(--ccm-color-brand-slate-hover);
}

.service-card__link:focus-visible {
    outline: 3px solid var(--ccm-color-rating);
    outline-offset: 3px;
}

.service-card__article--link:focus-visible {
    outline: 3px solid var(--ccm-color-rating);
    outline-offset: -3px;
}

.service-card__link .card-link__icon {
    transition: transform 180ms var(--ccm-ease-standard);
}

.service-card__link:hover .card-link__icon,
.service-card__link:focus-visible .card-link__icon {
    transform: translateX(4px);
}

.service-card__article--link:hover .card-link__icon,
.service-card__article--link:focus-visible .card-link__icon {
    transform: translateX(4px);
}

.service-card--featured {
    min-height: clamp(460px, 38vw, 540px);
    grid-column: 1 / -1;
    padding: 0;
    color: var(--ccm-color-surface);
    border-color: rgba(255, 255, 255, 0.14);
    background: var(--ccm-color-night-panel);
    box-shadow: 0 10px 26px rgba(10, 14, 19, 0.14);
}

.service-card--featured:hover,
.service-card--featured:focus-within {
    border-color: rgba(189, 208, 224, 0.34);
    box-shadow: 0 16px 34px rgba(10, 14, 19, 0.2);
}

.service-card--featured .service-card__article {
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(320px, 1.06fr);
}

.service-card--featured .service-card__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(32px, 3vw, 48px);
}

.service-card--featured .service-card__body {
    max-width: 460px;
}

.service-card--featured .service-card__kicker {
    color: var(--ccm-color-hero-accent);
}

.service-card--featured .service-card__title {
    color: var(--ccm-color-surface);
    font-size: clamp(26px, 2.25vw, 36px);
}

.service-card--featured p {
    color: rgba(255, 255, 255, 0.78);
}

.service-card__highlights {
    display: grid;
    gap: var(--ccm-space-3);
    margin: var(--ccm-space-5) 0 0;
    padding: 0;
    list-style: none;
}

.service-card__highlights li {
    display: flex;
    align-items: center;
    gap: var(--ccm-space-2);
    color: rgba(16, 21, 27, 0.8);
    font-size: var(--ccm-text-supporting);
    line-height: var(--ccm-leading-body);
}

.service-card__check {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    color: var(--ccm-color-rating);
}

.service-card--featured .service-card__highlights li {
    color: rgba(255, 255, 255, 0.84);
}

.service-card--featured .service-card__check {
    color: var(--ccm-color-hero-accent);
}

.service-card--featured .service-card__link {
    align-self: start;
    margin-top: var(--ccm-space-6);
    padding: 11px 16px;
    color: var(--ccm-color-surface);
    border: 1px solid rgba(255, 255, 255, 0.38);
}

.service-card--featured .service-card__link:hover {
    color: var(--ccm-color-surface);
    border-color: rgba(255, 255, 255, 0.62);
    background: rgba(255, 255, 255, 0.08);
}

.service-card--featured .service-card__link:focus-visible {
    outline-color: var(--ccm-color-hero-accent);
}

.service-card--featured .service-card__article--link:focus-visible {
    outline-color: var(--ccm-color-hero-accent);
}

.service-card__photo {
    position: relative;
    min-width: 0;
    min-height: 100%;
    margin: 0;
    overflow: hidden;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    background: var(--ccm-color-surface);
}

.service-card__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: var(--ccm-image-position, 50% 45%);
}

.service-area__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: var(--ccm-split-gap);
}

.service-area__grid > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
}

.service-area__grid .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
}

.service-area__grid h2 {
    margin-bottom: var(--ccm-stack-copy);
}

.service-area__grid > div > p:not(.eyebrow) {
    margin-bottom: var(--ccm-stack-action);
}

.check-list {
    display: flex;
    flex-direction: column;
    gap: var(--ccm-space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.check-list li {
    display: flex;
    align-items: center;
    gap: var(--ccm-space-2);
}

.check-list__icon {
    width: var(--ccm-icon-check);
    height: var(--ccm-icon-check);
    flex-basis: var(--ccm-icon-check);
}

.reviews-section {
    min-height: 393px;
    height: auto;
    background: var(--ccm-color-surface);
}

.reviews-shell {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 48px;
}

.reviews-summary {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.reviews-summary .eyebrow {
    margin-bottom: var(--ccm-space-2);
}

.reviews-summary h2 {
    color: var(--ccm-color-rating-ink);
    font-size: 20px;
    margin-bottom: var(--ccm-space-3);
}

.rating {
    display: flex;
    align-items: center;
    gap: 13px;
    color: var(--ccm-color-rating-ink);
    margin-bottom: var(--ccm-space-2);
}

.rating strong {
    font-family: var(--ccm-font-rating);
    font-weight: var(--ccm-weight-card);
    font-size: 36px;
    line-height: 1;
}

.ccm-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--ccm-color-rating);
}

.ccm-rating__star {
    width: var(--ccm-icon-rating);
    height: var(--ccm-icon-rating);
    flex-basis: var(--ccm-icon-rating);
    fill: currentColor;
}

.reviews-summary > p:not(.eyebrow) {
    margin-bottom: var(--ccm-space-2);
    font-size: var(--ccm-text-supporting);
}

.reviews-summary .button {
    margin-top: 0;
    padding-inline: 24px;
    font-size: var(--ccm-text-action);
}

.review-carousel {
    position: relative;
    min-width: 0;
    padding: 0 var(--ccm-space-5);
}

.reviews-track {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--ccm-space-4);
}

.reviews-track blockquote {
    display: flex;
    min-height: 237px;
    flex-direction: column;
    gap: var(--ccm-space-4);
    padding: var(--ccm-space-5);
    background: var(--white);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.reviews-track .ccm-rating {
    gap: 3px;
}

.reviews-track .ccm-rating__star {
    width: var(--ccm-icon-rating-card);
    height: var(--ccm-icon-rating-card);
    flex-basis: var(--ccm-icon-rating-card);
}

.reviews-track blockquote p {
    font-family: var(--ccm-font-rating);
    font-size: var(--ccm-text-supporting);
    line-height: 1.5;
}

.reviews-track cite {
    margin-top: auto;
    font-size: var(--ccm-text-xs);
    font-style: normal;
    font-weight: var(--ccm-weight-card);
}

.review-arrow {
    position: absolute;
    z-index: 2;
    top: 96px;
    display: grid;
    width: var(--ccm-icon-control);
    height: var(--ccm-icon-control);
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: transform 180ms ease;
}

.review-arrow:hover {
    transform: scale(1.18);
}

.review-arrow--prev {
    left: -10px;
}

.review-arrow--next {
    right: -10px;
}

.review-arrow__icon {
    width: var(--ccm-icon-rating);
    height: var(--ccm-icon-rating);
    flex-basis: var(--ccm-icon-rating);
}

.review-dots {
    position: absolute;
    bottom: -18px;
    left: 50%;
    display: flex;
    gap: 0;
    transform: translateX(-50%);
}

.review-dots button {
    display: grid;
    width: var(--ccm-icon-control);
    height: var(--ccm-icon-control);
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.review-dots button::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(49, 65, 86, 0.3);
    content: "";
}

.review-dots button.is-active::before {
    background: var(--slate);
}

.resources-section {
    padding: var(--ccm-section-space) 0;
}

.resource-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 0;
    overflow: hidden;
    margin: 0 auto;
    padding: 0;
    border: 1px solid var(--ccm-color-line);
    border-radius: var(--ccm-radius-card);
    background: var(--ccm-color-surface);
    list-style: none;
}

.resource-grid > li {
    display: flex;
    min-width: 0;
}

.resource-grid > li + li {
    border-left: 1px solid var(--ccm-color-line);
}

.resource-card {
    display: flex;
    width: 100%;
    min-height: 0;
    height: 100%;
    flex-direction: column;
    color: var(--ccm-color-ink);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transition: background-color var(--ccm-motion-fast) ease;
}

.resource-card:hover,
.resource-card:focus-visible {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-surface-review);
}

.resource-card:focus-visible {
    position: relative;
    z-index: 1;
    outline: 3px solid var(--ccm-color-rating);
    outline-offset: -4px;
}

.resource-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: var(--ccm-space-6);
}

.resource-card__icon {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    color: var(--ccm-color-brand-slate);
}

.resource-card__icon-frame {
    margin-bottom: var(--ccm-space-5);
}

.resource-card__content h3 {
    margin: 0 0 var(--ccm-space-3);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-card-title);
    font-weight: var(--ccm-weight-card);
    line-height: 1.25;
    transition: color var(--ccm-motion-fast) ease;
}

.resource-card:hover .resource-card__content h3,
.resource-card:focus-visible .resource-card__content h3 {
    color: var(--ccm-color-ink);
}

.resource-card__content p {
    margin: 0;
    color: rgba(16, 21, 27, 0.7);
    font-size: var(--ccm-text-body);
    line-height: 1.5;
}

.resource-card__action {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    gap: var(--ccm-action-gap);
    margin-top: auto;
    padding-top: var(--ccm-space-5);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    text-transform: uppercase;
    white-space: nowrap;
}

.resource-card__action .card-link__icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex-basis: var(--ccm-icon-inline);
    transition: transform var(--ccm-motion-fast) var(--ccm-ease-standard);
}

.resource-card:hover .resource-card__action .card-link__icon,
.resource-card:focus-visible .resource-card__action .card-link__icon {
    transform: translateX(4px);
}

.site-footer {
    color: var(--white);
    padding-top: var(--ccm-space-8);
    background: var(--night);
}

.footer-cta {
    display: flex;
    min-height: 120px;
    align-items: center;
    justify-content: space-between;
    gap: var(--ccm-space-6);
    padding: var(--ccm-space-6) var(--ccm-space-6);
    background: var(--night-panel);
}

.footer-cta h2 {
    font-size: clamp(22px, 1.6vw, 26px);
    font-weight: var(--ccm-weight-section);
    line-height: normal;
}

.footer-cta p {
    margin-top: 6px;
    font-size: var(--ccm-text-body);
    line-height: var(--ccm-leading-body);
}

.footer-main {
    display: grid;
    grid-template-columns: 1.35fr 0.75fr 1.2fr 1fr 1.25fr;
    gap: var(--ccm-space-6);
    padding: var(--ccm-space-8) 0 72px;
}

.brand--footer img {
    width: 180px;
    height: auto;
}

.footer-brand > p {
    max-width: 240px;
    margin-top: 20px;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--ccm-text-supporting);
    line-height: var(--ccm-leading-body);
}

.footer-socials {
    display: flex;
    gap: 0;
    margin-left: -13px;
    margin-top: 24px;
}

.footer-socials a {
    display: flex;
    width: var(--ccm-icon-control);
    height: var(--ccm-icon-control);
    align-items: center;
    justify-content: center;
}

.footer-socials__icon {
    width: var(--ccm-icon-check);
    height: var(--ccm-icon-check);
    flex-basis: var(--ccm-icon-check);
}

.footer-main h3 {
    margin-bottom: var(--ccm-space-4);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
}

.footer-links,
.footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.footer-links a,
.footer-contact a,
.footer-contact p {
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--ccm-text-supporting);
    line-height: var(--ccm-leading-body);
    transition: color 160ms ease;
}

.footer-links a,
.footer-contact a {
    min-height: var(--ccm-space-6);
    align-items: center;
}

.footer-links a {
    font-weight: var(--ccm-weight-ui);
}

.footer-contact p {
    min-height: var(--ccm-space-6);
}

.footer-links a:hover,
.footer-contact a:hover,
.footer-bottom a:hover {
    color: var(--white);
}

.footer-contact a,
.footer-contact p {
    display: flex;
    align-items: flex-start;
    gap: 9px;
}

.footer-contact__icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
}

.footer-bottom {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: var(--ccm-space-4);
    border-top: 1px solid rgba(229, 231, 235, 0.35);
    color: rgba(255, 255, 255, 0.62);
    font-size: var(--ccm-text-sm);
    line-height: var(--ccm-leading-body);
}

.footer-bottom p:last-child {
    display: flex;
    gap: 9px;
}

.reveal-ready [data-reveal] {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity var(--ccm-motion-reveal) var(--ccm-ease-standard), transform var(--ccm-motion-reveal) var(--ccm-ease-standard);
    transition-delay: var(--reveal-delay, 0ms);
}

.reveal-ready [data-reveal="left"] {
    transform: translateX(-18px);
}

.reveal-ready [data-reveal="right"] {
    transform: translateX(18px);
}

.reveal-ready [data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

@media (min-width: 1195px) {
    .hero h1 {
        font-size: clamp(40px, 3vw, 48px);
    }

    .hero__summary {
        width: 520px;
    }

    .intro-section__copy h2,
    .section-heading h2,
    .trust-strip h2,
    .service-area h2,
    .resources-section h2 {
        font-size: clamp(32px, 2.35vw, 36px);
    }

    .intro-section {
        height: auto;
    }

    .intro-grid {
        min-height: 0;
        align-items: center;
    }

    .intro-section__image {
        height: auto;
        aspect-ratio: 504.5 / 412.5;
    }

    .image-card {
        height: auto;
        min-height: 380px;
    }

    .image-card__photo {
        height: auto;
        aspect-ratio: 1.833 / 1;
    }

    .services-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-template-areas:
            "featured featured featured featured featured featured featured featured financial financial financial financial"
            "featured featured featured featured featured featured featured featured maintenance maintenance maintenance maintenance"
            "vendor vendor vendor vendor compliance compliance compliance compliance communication communication communication communication";
        align-items: stretch;
    }

    .service-card--featured {
        grid-area: featured;
    }

    .service-card--financial {
        grid-area: financial;
    }

    .service-card--maintenance {
        grid-area: maintenance;
    }

    .service-card--vendor {
        grid-area: vendor;
    }

    .service-card--compliance {
        grid-area: compliance;
    }

    .service-card--communication {
        grid-area: communication;
    }

}

@media (min-width: 761px) and (max-width: 1279px) {
    .reviews-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        overflow: hidden;
    }

    .reviews-track blockquote:nth-child(3) {
        display: none;
    }
}

@media (min-width: 761px) and (max-width: 1194px) {
    .service-card--communication {
        grid-column: 1 / -1;
    }
}

@media (max-width: 1120px) {
    .primary-nav {
        gap: 14px;
    }

    .primary-nav > a,
    .nav-mega__button {
        font-size: var(--ccm-text-action);
    }

    .nav-cta {
        gap: 10px;
        padding-inline: 14px;
        letter-spacing: 0.3px;
    }

    .brand img {
        width: 185px;
        height: auto;
    }
}

@media (max-width: 1040px) {
    .site-header,
    .site-header.is-scrolled {
        position: absolute;
    }

    .nav-toggle {
        position: relative;
        z-index: 110;
        display: flex;
        width: var(--ccm-icon-control);
        height: var(--ccm-icon-control);
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.45);
        background: transparent;
    }

    .nav-toggle__icon {
        position: absolute;
        width: var(--ccm-icon-base);
        height: var(--ccm-icon-base);
        flex-basis: var(--ccm-icon-base);
        color: var(--white);
        transition: transform var(--ccm-motion-fast) var(--ccm-ease-standard), opacity var(--ccm-motion-fast) ease;
    }

    .nav-toggle__icon--close {
        opacity: 0;
        transform: rotate(-90deg) scale(0.8);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__icon--open {
        opacity: 0;
        transform: rotate(90deg) scale(0.8);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__icon--close {
        opacity: 1;
        transform: rotate(0) scale(1);
    }

    .primary-nav {
        position: fixed;
        inset: 0;
        z-index: 105;
        display: flex;
        overflow-y: auto;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 120px max(24px, calc((100vw - 720px) / 2)) 40px;
        background: rgba(10, 14, 19, 0.99);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-14px);
        transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
    }

    .primary-nav.is-open {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .primary-nav > a,
    .nav-mega__button {
        width: 100%;
        justify-content: space-between;
        padding: 15px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.13);
        font-size: 16px;
    }

    .nav-cta {
        width: fit-content !important;
        margin-top: 20px;
        padding-inline: 20px !important;
        font-size: var(--ccm-text-action) !important;
    }

    .mega-panel,
    .site-header.is-scrolled .mega-panel {
        position: static;
        display: none;
        width: 100%;
        grid-template-columns: 1fr 1fr;
        padding: 22px;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .nav-mega.is-active .mega-panel {
        display: grid;
        transform: none;
    }

    .quick-actions__grid {
        grid-template-columns: repeat(2, 1fr);
        min-height: 180px;
    }

    .quick-actions__grid > a + a::before {
        display: none;
    }

    .quick-actions__grid > a:nth-child(even)::before {
        display: block;
        top: 20px;
        bottom: 20px;
        left: 0;
        width: 1px;
        height: auto;
    }

    .quick-actions__grid > a:nth-child(n + 3)::after {
        position: absolute;
        top: 0;
        right: 20px;
        left: 20px;
        height: 1px;
        content: "";
        background: rgba(49, 65, 86, 0.22);
    }

    .quick-actions {
        height: 68px;
    }

    .intro-section {
        height: auto;
        padding: var(--ccm-section-space) 0;
    }

    .reviews-shell {
        grid-template-columns: minmax(0, 1fr);
    }

    .reviews-summary {
        display: grid;
        grid-template-columns: 1fr auto;
    }

    .reviews-summary .eyebrow,
    .reviews-summary h2 {
        grid-column: 1;
    }

    .rating,
    .reviews-summary > p:not(.eyebrow),
    .reviews-summary .button {
        grid-column: 2;
    }

    .footer-main {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 840px) {
    .intro-section {
        height: auto;
        padding: var(--ccm-section-space) 0;
    }

    .intro-grid {
        grid-template-columns: 1fr;
        gap: var(--ccm-space-6);
    }

    .serve-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .intro-section__image {
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .intro-section__image img {
        object-position: center 42%;
    }

    .intro-section__copy {
        padding: 0;
    }
}

@media (max-width: 760px) {
    .ccm-image-pack {
        object-position: var(--ccm-image-position-mobile, var(--ccm-image-position, center));
    }

    .intro-section__asset .intro-section__media img,
    .service-card__photo img {
        object-position: var(--ccm-image-position-mobile, var(--ccm-image-position, center));
    }

    .reveal-ready [data-reveal="left"],
    .reveal-ready [data-reveal="right"] {
        transform: translateY(20px);
    }

    .container,
    .ccm-container {
        width: var(--ccm-layout-width);
    }

    .topbar__contact,
    .topbar__links {
        gap: var(--ccm-space-4);
    }

    .brand img {
        width: 176px;
    }

    .nav-shell {
        height: 90px;
    }

    .hero {
        height: max(700px, 100vh);
        height: max(700px, 100svh);
        min-height: 700px;
        max-height: 820px;
        background-position: 62% center;
    }

    .hero__content {
        gap: 0;
        min-height: calc(100% - 59px);
        justify-content: center;
        padding-top: 140px;
        padding-bottom: 100px;
    }

    .hero h1 {
        font-size: clamp(32px, 7vw, 40px);
        line-height: 1.12;
    }

    .hero__summary {
        font-size: 15px;
    }

    .hero__actions,
    .footer-cta__actions {
        flex-wrap: wrap;
        gap: var(--ccm-space-3);
    }

    .quick-actions {
        height: auto;
    }

    .quick-actions__grid {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        grid-template-columns: 1fr;
        width: calc(100% - 32px);
        max-width: calc(100% - 32px);
        margin: -224px auto 0;
        padding-block: var(--ccm-space-1);
        box-sizing: border-box;
        transform: none;
    }

    .reveal-ready .quick-actions__grid {
        transform: translateY(20px);
    }

    .reveal-ready .quick-actions__grid.is-quick-actions-visible {
        transform: translateY(0);
    }

    .quick-actions__grid > a {
        padding: var(--ccm-space-4) var(--ccm-space-3);
    }

    .quick-actions__grid > a:nth-child(n + 2)::before {
        display: block;
        inset: 0 var(--ccm-space-3) auto;
        width: auto;
        height: 1px;
    }

    .quick-actions__grid > a:nth-child(n + 3)::after {
        display: none;
    }

    .intro-section {
        height: auto;
        padding: var(--ccm-section-space) 0;
    }

    .intro-grid,
    .trust-strip__inner,
    .service-area__grid {
        grid-template-columns: 1fr;
    }

    .intro-grid {
        gap: var(--ccm-space-6);
    }

    .intro-section__image {
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .intro-section__copy {
        padding: 0;
    }

    .section {
        padding: var(--ccm-section-space) 0;
    }

    .intro-section__copy h2,
    .section-heading h2,
    .trust-strip h2,
    .service-area h2,
    .reviews-summary h2,
    .resources-section h2 {
        font-size: 28px;
    }

    .section-heading--split {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--ccm-space-5);
    }

    .section-heading--split > p {
        width: 100%;
        max-width: var(--ccm-content-measure);
    }

    .serve-grid {
        grid-template-columns: 1fr;
    }

    .image-card {
        min-height: 380px;
    }

    .image-card__photo {
        height: 215px;
    }

    .services-section__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .services-section__heading {
        width: 100%;
        max-width: none;
        flex: 0 1 auto;
    }

    .services-section__header h2 {
        max-width: 18ch;
    }

    .services-section__cta {
        align-self: flex-start;
    }

    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 0;
        grid-column: auto;
        padding: var(--ccm-space-5);
    }

    .service-card:not(.service-card--featured) {
        padding: 0;
    }

    .service-card:not(.service-card--featured) .service-card__article--link {
        padding: var(--ccm-space-5);
    }

    .service-card--featured {
        padding: 0;
    }

    .service-card--featured .service-card__article {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .service-card--featured .service-card__content {
        padding: var(--ccm-space-5);
    }

    .service-card--featured .service-card__link {
        align-self: flex-start;
        margin-top: var(--ccm-space-5);
    }

    .service-card__photo {
        order: -1;
        width: 100%;
        min-height: 0;
        aspect-ratio: 16 / 9;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        border-left: 0;
    }

    .reviews-summary {
        display: flex;
    }

    .review-carousel {
        padding-inline: var(--ccm-space-5);
    }

    .reviews-track {
        display: flex;
        overflow: hidden;
    }

    .reviews-track blockquote {
        min-width: 0;
        flex: 0 0 100%;
    }

    .site-footer {
        padding-top: var(--ccm-section-space);
    }

    .footer-cta {
        align-items: flex-start;
        flex-direction: column;
        padding: var(--ccm-space-5);
    }

    .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: var(--ccm-space-6);
        padding: var(--ccm-section-space) 0;
    }

    .footer-brand,
    .footer-contact {
        grid-column: 1 / -1;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        padding: var(--ccm-space-4) 0;
    }

    .footer-links a,
    .footer-contact a {
        min-height: var(--ccm-control-min);
    }
}

@media (max-width: 480px) {
    .topbar__links {
        display: none;
    }

    .hero h1 {
        font-size: 32px;
    }

    .eyebrow {
        font-size: var(--ccm-text-sm);
    }

    .mega-panel,
    .mega-panel--serve {
        grid-template-columns: 1fr;
    }

    .footer-main {
        grid-template-columns: 1fr;
    }

    .footer-brand,
    .footer-contact {
        grid-column: auto;
    }

    .footer-bottom p:last-child {
        flex-wrap: wrap;
    }
}

@media (max-width: 1279px) {
    .resource-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .resource-grid > li + li {
        border-left: 0;
    }

    .resource-grid > li:nth-child(even) {
        border-left: 1px solid var(--ccm-color-line);
    }

    .resource-grid > li:nth-child(n + 3) {
        border-top: 1px solid var(--ccm-color-line);
    }
}

@media (max-width: 640px) {
    .resources-section > .container {
        width: min(
            var(--ccm-container-fidelity),
            calc(100% - var(--ccm-space-5) - var(--ccm-space-5))
        );
    }

    .resource-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 1fr;
    }

    .resource-grid > li:nth-child(even) {
        border-left: 0;
    }

    .resource-grid > li:nth-child(n + 2) {
        border-top: 1px solid var(--ccm-color-line);
    }

    .resource-card {
        min-height: 0;
    }

    .resource-card__content {
        padding: var(--ccm-space-5);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .reveal-ready [data-reveal] {
        opacity: 1;
        transform: none;
    }

    .reveal-ready .quick-actions__grid,
    .reveal-ready .quick-actions__grid.is-quick-actions-visible {
        opacity: 1;
        transform: translateX(-50%);
        transition: none;
    }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
    .reveal-ready .quick-actions__grid,
    .reveal-ready .quick-actions__grid.is-quick-actions-visible {
        transform: none;
    }
}

/* 2026 homepage refinement layer
 * These components intentionally share the global spacing, color, icon, and
 * motion tokens while giving the proof, service-area, and review sections a
 * stronger information hierarchy than the original flat Figma export.
 */

.trust-strip {
    position: relative;
    overflow: hidden;
    background: var(--ccm-color-section-soft);
}

.trust-strip--bridge {
    padding-block: clamp(48px, 5vw, 64px);
    border-block: 1px solid rgba(49, 65, 86, 0.1);
    background: var(--ccm-color-section-soft);
}

.trust-strip--bridge .trust-strip__frame {
    padding: 0;
    overflow: visible;
    background: transparent;
}

.trust-strip--bridge .trust-strip__frame::before {
    display: none;
}

.trust-strip--bridge .trust-strip__inner {
    grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
    align-items: center;
    gap: clamp(48px, 6vw, 88px);
}

.trust-strip--bridge .trust-strip__heading {
    max-width: 480px;
}

.trust-strip--bridge .trust-strip__heading h2 {
    max-width: 14ch;
    margin-bottom: var(--ccm-space-4);
    font-size: clamp(32px, 3vw, 44px);
    line-height: 1.08;
}

.trust-strip--bridge .trust-strip__lead {
    max-width: 44ch;
    margin-bottom: 0;
    font-size: var(--ccm-text-body);
    line-height: 1.6;
}

.trust-strip--bridge .trust-strip__proof {
    padding: 0;
}

.trust-strip--bridge .trust-points {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 3vw, 42px) clamp(28px, 4vw, 64px);
    border: 0;
}

.trust-strip--bridge .trust-point {
    display: grid;
    padding: 0;
    border: 0;
    gap: var(--ccm-space-3);
}

.trust-strip--bridge .trust-point:nth-child(even),
.trust-strip--bridge .trust-point:nth-child(n + 3) {
    border: 0;
}

.trust-strip--bridge .trust-point__copy {
    gap: var(--ccm-space-2);
}

.trust-strip--bridge .trust-point__title {
    font-size: clamp(18px, 1.55vw, 22px);
}

.trust-strip--bridge .trust-point__detail {
    max-width: 32ch;
    font-size: var(--ccm-text-supporting);
    line-height: 1.5;
}

.trust-credential {
    margin-top: clamp(24px, 3vw, 36px);
    padding-top: var(--ccm-space-4);
    border-top: 1px solid rgba(49, 65, 86, 0.16);
}

.trust-credential__link {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--ccm-space-2) var(--ccm-space-3);
    color: var(--ccm-color-brand-slate);
}

.trust-credential__title {
    font-size: var(--ccm-text-supporting);
    text-decoration: underline;
    text-decoration-color: rgba(49, 65, 86, 0.42);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.trust-credential__detail {
    color: rgba(16, 21, 27, 0.68);
    font-size: var(--ccm-text-supporting);
}

.trust-credential__icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
}

.trust-credential__link:hover .trust-credential__title,
.trust-credential__link:focus-visible .trust-credential__title {
    color: var(--ccm-color-ink);
    text-decoration-color: currentColor;
}

.trust-credential__link:focus-visible {
    border-radius: 2px;
    outline: 3px solid rgba(60, 111, 173, 0.38);
    outline-offset: 4px;
}

@media (max-width: 1120px) {
    .trust-strip--bridge .trust-strip__inner {
        grid-template-columns: 1fr;
        gap: var(--ccm-space-7);
    }

    .trust-strip--bridge .trust-strip__heading {
        max-width: 680px;
    }
}

.trust-strip__frame {
    position: relative;
    padding: clamp(34px, 3.8vw, 56px) clamp(40px, 4.5vw, 64px);
    overflow: hidden;
    background: linear-gradient(135deg, #f2f6f9 0%, #ffffff 62%);
}

.trust-strip__frame::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: var(--ccm-color-brand-slate);
    content: "";
}

.trust-strip__inner {
    position: relative;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: stretch;
    gap: clamp(40px, 5vw, 72px);
}

.trust-strip__heading {
    justify-content: center;
}

.trust-strip__heading h2 {
    margin-bottom: var(--ccm-space-4);
    font-size: clamp(34px, 3vw, 46px);
    line-height: 1.08;
}

.trust-strip__lead {
    max-width: 52ch;
    margin-bottom: var(--ccm-space-5);
    color: rgba(16, 21, 27, 0.72);
    font-size: var(--ccm-text-lead);
    line-height: 1.62;
}

.trust-strip__heading .button {
    margin-top: var(--ccm-space-5);
}

.trust-strip__assurance {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--ccm-space-4);
}

.trust-strip__bbb-link {
    display: inline-flex;
    line-height: 0;
    transition: opacity 180ms ease, transform 180ms ease;
}

.trust-strip__bbb-link:hover {
    opacity: 0.82;
    transform: translateY(-2px);
}

.trust-strip__bbb-link:focus-visible {
    outline: 3px solid rgba(60, 111, 173, 0.38);
    outline-offset: 5px;
}

.trust-strip__bbb-mark {
    width: clamp(125px, 11vw, 160px);
    height: auto;
    aspect-ratio: 5 / 2;
}

.trust-strip__proof {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0;
    color: var(--ccm-color-ink);
    background: transparent;
}

.trust-stats {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
}

.trust-stat {
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: var(--ccm-space-2);
    padding: 0 clamp(14px, 1.6vw, 26px);
}

.trust-stat + .trust-stat {
    border-left: 1px solid rgba(49, 65, 86, 0.18);
}

.trust-stat:first-child {
    padding-left: 0;
}

.trust-stat:last-child {
    padding-right: 0;
}

.trust-stat__headline {
    color: var(--ccm-color-ink);
    font-size: clamp(36px, 3vw, 48px);
    font-weight: var(--ccm-weight-hero);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.trust-stat__detail {
    color: rgba(16, 21, 27, 0.7);
    font-size: var(--ccm-text-body);
    line-height: 1.4;
}

.trust-points {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border: 1px solid rgba(49, 65, 86, 0.18);
    list-style: none;
}

.trust-point {
    display: block;
    min-width: 0;
    padding: clamp(22px, 2.4vw, 30px);
}

.trust-point:nth-child(even) {
    border-left: 1px solid rgba(49, 65, 86, 0.18);
}

.trust-point:nth-child(n + 3) {
    border-top: 1px solid rgba(49, 65, 86, 0.18);
}

.trust-point--featured {
    background: rgba(189, 208, 224, 0.2);
}

.trust-point__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--ccm-space-2);
}

.trust-point__title {
    color: var(--ccm-color-ink);
    font-size: clamp(18px, 1.5vw, 22px);
    font-weight: var(--ccm-weight-card);
    letter-spacing: -0.015em;
    line-height: 1.25;
}

.trust-point__link {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgba(49, 65, 86, 0.38);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
    transition: color 180ms ease, text-decoration-color 180ms ease;
}

.trust-point__link:hover,
.trust-point__link:focus-visible {
    color: var(--ccm-color-brand-slate);
    text-decoration-color: currentColor;
}

.trust-point__link:focus-visible {
    border-radius: 2px;
    outline: 3px solid rgba(60, 111, 173, 0.38);
    outline-offset: 3px;
}

.trust-point__detail {
    color: rgba(16, 21, 27, 0.68);
    font-size: var(--ccm-text-supporting);
    line-height: 1.5;
}

.service-area {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 0;
    background: var(--white);
}

.service-area__shell {
    position: relative;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.service-area__grid {
    display: grid;
    height: clamp(640px, 48vw, 700px);
    min-height: 0;
    grid-template-columns: minmax(340px, 42%) minmax(0, 58%);
    align-items: stretch;
    gap: 0;
}

.service-area__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 0;
    padding: clamp(var(--ccm-space-8), 5vw, var(--ccm-space-9)) clamp(var(--ccm-space-5), 3vw, var(--ccm-space-7)) clamp(var(--ccm-space-8), 5vw, var(--ccm-space-9)) 0;
    color: var(--ccm-color-ink);
    border: 0;
    background: transparent;
}

.service-area__content .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
    color: var(--ccm-color-brand-slate);
}

.service-area__content h2 {
    max-width: 100%;
    margin-bottom: var(--ccm-space-5);
    color: var(--ccm-color-ink);
    font-size: clamp(36px, 3vw, 44px);
    line-height: 1.1;
}

.service-area__grid > .service-area__content > .service-area__lead {
    max-width: 50ch;
    margin-bottom: var(--ccm-space-5);
    color: rgba(16, 21, 27, 0.72);
    font-size: var(--ccm-text-body);
    line-height: 1.65;
}

.service-area__link {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    gap: var(--ccm-action-gap);
    padding-block: 10px;
    color: var(--ccm-color-brand-slate);
    border-bottom: 1px solid rgba(49, 65, 86, 0.28);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.4;
    text-transform: uppercase;
    transition: color var(--ccm-motion-fast) ease, border-color var(--ccm-motion-fast) ease;
}

.service-area__link:hover {
    color: var(--ccm-color-brand-slate-hover);
    border-color: currentColor;
}

.service-area__link:focus-visible {
    outline-color: var(--ccm-color-brand-slate);
}

.service-area__link-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
}

.service-area-photo {
    position: relative;
    height: clamp(420px, 32vw, 500px);
    min-width: 0;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(49, 65, 86, 0.14);
    border-radius: var(--ccm-radius-photo);
    background: var(--ccm-color-surface-muted);
}

.service-area-photo__image,
.service-area-photo__placeholder {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
}

.service-area-photo__image {
    object-fit: cover;
    object-position: center 52%;
}

.service-area-photo__placeholder {
    display: grid;
    place-items: center;
    padding: var(--ccm-space-5);
    color: var(--ccm-color-brand-slate);
    background: var(--ccm-color-hero-accent);
    text-align: center;
}

.service-area-photo__placeholder span {
    max-width: 24ch;
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    line-height: 1.5;
    text-transform: uppercase;
}

.service-area__visual {
    position: relative;
    z-index: 1;
    width: calc(100% + var(--ccm-page-gutter));
    height: 100%;
    align-self: stretch;
    justify-self: stretch;
    min-height: 0;
    margin: 0 calc(0px - var(--ccm-page-gutter)) 0 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.service-area__map {
    position: absolute;
    top: calc(50% - 4px);
    left: 0;
    display: block;
    width: 110%;
    height: 108%;
    min-height: 0;
    max-width: none;
    overflow: hidden;
    filter: none;
    transform: translate(5%, -50%);
    shape-rendering: geometricPrecision;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.42) 3%, rgba(0, 0, 0, 0.82) 7%, #000 10%, #000 100%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.42) 3%, rgba(0, 0, 0, 0.82) 7%, #000 10%, #000 100%);
}

.service-area__map--florida {
    object-fit: contain;
    object-position: center;
    mix-blend-mode: normal;
    opacity: 1;
    transform: translate(5%, -50%) scale(1.08);
    transform-origin: 60% 50%;
}

.service-area-map__context path {
    fill: var(--ccm-color-surface-review);
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 0.22px;
    stroke-opacity: 0.26;
    vector-effect: non-scaling-stroke;
}

.service-area-map__outline {
    fill: var(--ccm-color-brand-slate);
    stroke: none;
}

.service-area-map__outline-color {
    flood-color: var(--ccm-color-brand-slate);
}

.service-area-map__counties use {
    fill: var(--ccm-color-hero-accent);
    fill: color-mix(in srgb, var(--ccm-color-hero-accent) 75%, var(--ccm-color-rating));
    stroke: var(--ccm-color-surface);
    stroke-width: 0.12px;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.service-area-map__label {
    fill: var(--ccm-color-brand-slate);
    font-family: var(--ccm-font-sans);
    font-size: 0.92px;
    font-weight: var(--ccm-weight-ui);
    letter-spacing: 0;
}

@media (min-width: 1001px) and (max-width: 1200px) {
    .service-area-map__label {
        font-size: 0.95px;
    }
}

.service-area-map__label--external {
    fill: var(--ccm-color-brand-slate);
    opacity: 1;
}

@media (min-width: 761px) and (max-width: 1000px) {
    .service-area-map__label {
        font-size: 1.08px;
    }
}

@media (min-width: 421px) and (max-width: 760px) {
    .service-area-map__label {
        font-size: 1.1px;
    }
}

@media (min-width: 361px) and (max-width: 420px) {
    .service-area-map__label {
        font-size: 1.25px;
    }
}

@media (max-width: 360px) {
    .service-area-map__label {
        font-size: 1.45px;
    }
}

.service-area-map__leader {
    fill: none;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.25px;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.service-area__map-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 320px;
    place-items: center;
    padding: var(--ccm-space-5);
    color: var(--ccm-color-brand-slate);
    background: rgba(189, 208, 224, 0.35);
    text-align: center;
}

.service-area__map-fallback span {
    max-width: 24ch;
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    line-height: 1.5;
    text-transform: uppercase;
}

.service-area-photo__overlay {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    min-height: 88px;
    flex-direction: column;
    justify-content: center;
    gap: var(--ccm-space-2);
    padding: var(--ccm-space-4) var(--ccm-space-5);
    color: var(--ccm-color-surface);
    background: rgba(20, 30, 41, 0.92);
}

.service-area-photo__label {
    color: var(--ccm-color-hero-accent);
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    line-height: 1.25;
    text-transform: uppercase;
}

.service-area-photo__counties {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-area-photo__counties li {
    display: inline-flex;
    align-items: center;
    font-size: var(--ccm-text-body);
    font-weight: var(--ccm-weight-ui);
    line-height: 1.4;
    white-space: nowrap;
}

.service-area-photo__counties li:not(:last-child)::after {
    margin-inline: 10px;
    color: var(--ccm-color-hero-accent);
    content: "\00b7";
}

.service-area__counties {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: var(--ccm-space-6) 0;
    list-style: none;
}

.service-area__counties::before {
    position: absolute;
    z-index: -1;
    inset-block: 0;
    left: 50%;
    width: 100vw;
    background: var(--ccm-color-surface);
    content: "";
    transform: translateX(-50%);
}

.service-area__counties li {
    display: flex;
    min-height: var(--ccm-control-min);
    min-width: 0;
    align-items: center;
    justify-content: center;
    padding: 0 clamp(var(--ccm-space-5), 3vw, var(--ccm-space-7));
    text-align: center;
}

.service-area__counties li:first-child {
    padding-left: 0;
}

.service-area__counties li:last-child {
    padding-right: 0;
}

.service-area__counties li + li {
    border-left: 1px solid rgba(49, 65, 86, 0.14);
}

.service-area__counties strong {
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-card);
    line-height: 1.35;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.reviews-section {
    min-height: 0;
    height: auto;
    background: var(--ccm-color-surface);
}

.reviews-shell {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(56px, 5vw, 80px);
}

.reviews-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.72fr);
    align-items: end;
    gap: clamp(56px, 8vw, 132px);
}

.reviews-heading__title,
.reviews-heading__support {
    min-width: 0;
}

.reviews-heading .eyebrow {
    margin-bottom: var(--ccm-stack-eyebrow);
}

.reviews-heading h2 {
    max-width: 24ch;
    margin: 0;
    color: var(--ccm-color-ink);
    font-size: clamp(34px, 3vw, 46px);
    font-weight: var(--ccm-weight-section);
    line-height: 1.1;
}

.reviews-heading__support {
    max-width: 500px;
    justify-self: end;
}

.reviews-heading__lead {
    max-width: 48ch;
    margin: 0;
    color: rgba(16, 21, 27, 0.7);
    font-size: var(--ccm-text-body);
    line-height: 1.6;
}

.reviews-heading__link {
    display: inline-flex;
    align-items: center;
    gap: var(--ccm-action-gap);
    margin-top: var(--ccm-space-5);
    padding-bottom: 4px;
    color: var(--ccm-color-brand-slate);
    border-bottom: 1px solid rgba(49, 65, 86, 0.28);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.4;
    text-transform: uppercase;
    transition: color 180ms ease, border-color 180ms ease;
}

.reviews-heading__link:hover {
    color: var(--ccm-color-brand-slate-hover);
    border-color: currentColor;
}

.reviews-heading__link:focus-visible {
    outline-color: var(--ccm-color-brand-slate);
}

.reviews-heading__link-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.review-carousel--editorial {
    position: relative;
    display: block;
    min-width: 0;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.review-carousel--editorial .reviews-track {
    display: block;
    min-width: 0;
    overflow: hidden;
    grid-template-columns: none;
    gap: 0;
}

.review-carousel--editorial .review-slide {
    display: grid;
    min-height: clamp(300px, 24vw, 360px);
    grid-template-columns: minmax(0, 2.2fr) minmax(220px, 0.8fr);
    align-items: center;
    gap: clamp(48px, 7vw, 112px);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.review-carousel--editorial:not(.is-enhanced) .review-slide + .review-slide {
    margin-top: clamp(56px, 6vw, 88px);
}

.review-carousel--editorial .review-slide[hidden] {
    display: none;
}

.review-carousel--editorial .review-slide.is-active {
    display: grid;
}

.review-slide__quote-column {
    position: relative;
    display: flex;
    min-height: 0;
    align-items: center;
    padding-left: clamp(76px, 7vw, 112px);
}

.review-slide__mark {
    position: absolute;
    top: 50%;
    left: 0;
    color: rgba(49, 65, 86, 0.15);
    font-family: var(--ccm-font-sans);
    font-size: clamp(116px, 11vw, 176px);
    font-weight: var(--ccm-weight-body);
    line-height: 0.72;
    transform: translateY(-51%);
    user-select: none;
}

.review-carousel--editorial .review-slide__quote {
    display: block;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.review-carousel--editorial .review-slide__quote p {
    max-width: 28ch;
    margin: 0;
    color: var(--ccm-color-brand-slate);
    font-family: var(--ccm-font-sans);
    font-size: clamp(30px, 2.4vw, 38px);
    font-weight: var(--ccm-weight-section);
    line-height: 1.34;
    letter-spacing: -0.025em;
}

.review-slide__author {
    position: relative;
    display: flex;
    min-width: 0;
    align-items: center;
    gap: var(--ccm-space-4);
    padding-left: clamp(28px, 3vw, 48px);
}

.review-slide__author::before {
    position: absolute;
    top: 50%;
    left: 0;
    width: 2px;
    height: 64px;
    background: var(--ccm-color-hero-accent);
    content: "";
    transform: translateY(-50%);
}

.review-slide__avatar {
    display: grid;
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    place-items: center;
    color: var(--ccm-color-brand-slate);
    border-radius: var(--ccm-radius-round);
    background: rgba(189, 208, 224, 0.42);
    font-size: var(--ccm-text-sm);
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: 0.08em;
}

.review-slide__attribution {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-1);
}

.review-slide__attribution strong {
    color: var(--ccm-color-ink);
    font-size: var(--ccm-text-body);
    font-weight: var(--ccm-weight-hero);
    line-height: 1.4;
}

.review-slide__attribution > span {
    color: rgba(16, 21, 27, 0.66);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-ui);
    line-height: var(--ccm-leading-body);
}

.review-carousel__navigation {
    display: none;
    align-items: center;
    gap: var(--ccm-space-4);
    width: min(680px, calc(100% - clamp(76px, 7vw, 112px)));
    margin-top: var(--ccm-space-6);
    margin-left: clamp(76px, 7vw, 112px);
}

.review-carousel--editorial.is-enhanced .review-carousel__navigation {
    display: flex;
}

.review-carousel__counter {
    flex: 0 0 auto;
    color: rgba(16, 21, 27, 0.68);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.4;
    text-transform: uppercase;
    font-variant-numeric: tabular-nums;
}

.review-carousel__progress {
    position: relative;
    display: block;
    height: 1px;
    min-width: 80px;
    flex: 1 1 220px;
    overflow: hidden;
    background: rgba(49, 65, 86, 0.2);
}

.review-carousel__progress > span {
    position: absolute;
    inset: -1px 0 auto;
    width: 100%;
    height: 3px;
    background: var(--ccm-color-brand-slate);
    transform: scaleX(var(--review-progress, 0.3333));
    transform-origin: left center;
    transition: transform 260ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.review-carousel__controls {
    display: flex;
    gap: var(--ccm-space-2);
}

.review-carousel--editorial .review-arrow {
    position: static;
    top: auto;
    right: auto;
    left: auto;
    display: grid;
    width: var(--ccm-icon-control);
    height: var(--ccm-icon-control);
    place-items: center;
    padding: 0;
    color: var(--ccm-color-brand-slate);
    border: 1px solid rgba(49, 65, 86, 0.22);
    border-radius: var(--ccm-radius-round);
    background: transparent;
    cursor: pointer;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.review-carousel--editorial .review-arrow[hidden] {
    display: none;
}

.review-carousel--editorial .review-arrow:hover,
.review-carousel--editorial .review-arrow:focus-visible {
    color: var(--ccm-color-brand-slate);
    border-color: rgba(49, 65, 86, 0.42);
    background: rgba(189, 208, 224, 0.4);
    transform: translateY(-1px);
}

.review-carousel--editorial .review-arrow:focus-visible {
    outline-color: var(--ccm-color-brand-slate);
}

.review-carousel--editorial .review-arrow__icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

@media (max-width: 1120px) {
    .trust-strip__inner,
    .reviews-shell {
        grid-template-columns: 1fr;
    }

    .trust-strip__inner {
        gap: var(--ccm-space-6);
    }

    .trust-strip__heading h2,
    .reviews-summary h2 {
        max-width: 20ch;
    }

    .reviews-summary {
        display: flex;
    }

    .reviews-summary__proof {
        max-width: 520px;
    }

}

@media (max-width: 1024px) {
    .reviews-heading {
        grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
        gap: 48px;
    }

    .review-carousel--editorial .review-slide {
        grid-template-columns: minmax(0, 2fr) minmax(210px, 0.85fr);
        gap: 48px;
    }

    .review-slide__quote-column {
        padding-left: 72px;
    }

    .review-slide__author {
        padding-left: 24px;
    }

    .review-carousel__navigation {
        width: min(600px, calc(100% - 72px));
        margin-left: 72px;
    }
}

@media (max-width: 960px) {
    .reviews-heading {
        grid-template-columns: 1fr;
        align-items: start;
        gap: var(--ccm-space-5);
    }

    .reviews-heading h2 {
        font-size: 32px;
    }

    .reviews-heading h2 br {
        display: none;
    }

    .reviews-heading__support {
        max-width: 560px;
        justify-self: start;
    }

    .review-carousel--editorial .review-slide,
    .review-carousel--editorial .review-slide.is-active {
        min-height: 0;
        grid-template-columns: 1fr;
        align-items: start;
        gap: 28px;
        padding: 0;
    }

    .review-slide__quote-column {
        display: block;
        padding-left: 0;
    }

    .review-slide__mark {
        position: static;
        display: block;
        height: 48px;
        margin: 0 0 var(--ccm-space-3) -4px;
        font-size: 92px;
        line-height: 0.78;
        transform: none;
    }

    .review-carousel--editorial .review-slide__quote p {
        max-width: 100%;
        font-size: clamp(26px, 7vw, 30px);
        line-height: 1.4;
    }

    .review-slide__author {
        gap: var(--ccm-space-3);
        padding-top: var(--ccm-space-5);
        padding-left: 0;
    }

    .review-slide__author::before {
        top: 0;
        width: 48px;
        height: 2px;
        transform: none;
    }

    .review-slide__avatar {
        width: 52px;
        height: 52px;
        flex-basis: 52px;
    }

    .review-carousel__navigation {
        width: 100%;
        margin-top: var(--ccm-space-6);
        margin-left: 0;
        gap: var(--ccm-space-3);
    }
}

@media (min-width: 841px) and (max-width: 1000px) {
    .service-area__grid {
        height: 620px;
        grid-template-columns: minmax(300px, 44%) minmax(0, 56%);
    }

    .service-area__content {
        padding-right: var(--ccm-space-5);
    }

    .service-area__content h2 {
        font-size: clamp(36px, 4.4vw, 42px);
    }
}

@media (max-width: 840px) {
    .trust-strip__frame {
        padding: var(--ccm-space-6);
    }

    .service-area__grid {
        height: auto;
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 0;
    }

    .service-area__content {
        max-width: 630px;
        padding: var(--ccm-space-8) 0 var(--ccm-space-6);
    }

    .service-area__content h2 {
        font-size: 32px;
    }

    .service-area__visual {
        width: 100vw;
        height: clamp(460px, 141vw, 600px);
        min-height: 0;
        margin: 0 0 0 calc(50% - 50vw);
    }

    .service-area__map {
        position: static;
        width: 100%;
        height: 100%;
        min-height: 0;
        transform: none;
        -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.65) 7%, #000 14%, #000 100%);
        mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.65) 7%, #000 14%, #000 100%);
    }

    .service-area__map--florida {
        transform: scale(1.08);
        transform-origin: 60% 50%;
    }
}

.service-area--home-florida-map .service-area__map--florida {
    top: 50%;
    left: 7%;
    width: 125%;
    height: auto;
    transform: translateY(-50%);
}

@media (max-width: 840px) {
    .service-area--home-florida-map .service-area__visual {
        overflow: hidden;
    }

    .service-area--home-florida-map .service-area__map--florida {
        position: absolute;
        top: 50%;
        left: -11%;
        width: 180%;
        height: auto;
        transform: translateY(-50%);
        -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.65) 7%, #000 15%, #000 85%, rgba(0, 0, 0, 0.65) 93%, transparent 100%);
        mask-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.65) 7%, #000 15%, #000 85%, rgba(0, 0, 0, 0.65) 93%, transparent 100%);
    }

    .service-area--home-florida-map .service-area__visual::before,
    .service-area--home-florida-map .service-area__visual::after {
        position: absolute;
        z-index: 2;
        right: 0;
        left: 0;
        height: clamp(52px, 10vw, 80px);
        pointer-events: none;
        content: "";
    }

    .service-area--home-florida-map .service-area__visual::before {
        top: 0;
        background: linear-gradient(to bottom, var(--white) 0%, rgba(255, 255, 255, 0.92) 28%, rgba(255, 255, 255, 0) 100%);
    }

    .service-area--home-florida-map .service-area__visual::after {
        bottom: 0;
        background: linear-gradient(to top, var(--white) 0%, rgba(255, 255, 255, 0.92) 28%, rgba(255, 255, 255, 0) 100%);
    }
}

@media (min-width: 601px) and (max-width: 840px) {
    .service-area--home-florida-map .service-area__map--florida {
        left: 9%;
        width: 120%;
    }
}

@media (max-width: 760px) {
    .trust-strip__frame {
        padding: var(--ccm-space-5);
    }

    .trust-strip__heading h2 {
        font-size: 32px;
    }

    .service-area-photo {
        height: clamp(340px, 60vw, 440px);
        min-height: 0;
    }
}

@media (max-width: 600px) {
    .service-area__grid {
        gap: 0;
    }

    .service-area__counties {
        grid-template-columns: 1fr;
        margin-top: 0;
        padding-block: var(--ccm-space-5);
    }

    .service-area__counties li {
        padding-inline: 0;
    }

    .service-area__counties li + li {
        margin-top: var(--ccm-space-5);
        padding-top: var(--ccm-space-5);
        border-top: 1px solid rgba(49, 65, 86, 0.14);
        border-left: 0;
    }

    .trust-stats {
        grid-template-columns: 1fr;
    }

    .trust-stat {
        min-height: 0;
        padding: var(--ccm-space-4) 0;
        border-left: 0;
    }

    .trust-stat + .trust-stat {
        border-top: 1px solid rgba(49, 65, 86, 0.18);
        border-left: 0;
    }

    .trust-stat:first-child {
        padding-top: 0;
    }

    .trust-stat:last-child {
        padding-bottom: 0;
    }
}

@media (max-width: 480px) {
    .service-card {
        padding: var(--ccm-space-4);
    }

    .service-card:not(.service-card--featured) {
        padding: 0;
    }

    .service-card:not(.service-card--featured) .service-card__article--link {
        padding: var(--ccm-space-4);
    }

    .service-card--featured {
        padding: 0;
    }

    .service-card--featured .service-card__content {
        padding: var(--ccm-space-4);
    }

    .service-card__photo {
        aspect-ratio: 5 / 4;
    }

    .trust-strip__frame {
        padding: var(--ccm-space-4);
    }

    .reviews-shell {
        gap: 44px;
    }

    .reviews-heading h2 {
        font-size: 30px;
    }

    .review-carousel--editorial .review-slide__quote p {
        font-size: clamp(26px, 7.2vw, 28px);
    }

    .review-carousel__navigation {
        gap: 10px;
    }

    .review-carousel__progress {
        min-width: 24px;
    }

    .review-carousel__controls {
        gap: 6px;
    }

    .service-area-photo {
        height: auto;
        min-height: 0;
        aspect-ratio: 5 / 4;
    }

    .service-area__visual,
    .service-area__map {
        min-height: 320px;
    }

    .service-area-photo__overlay {
        min-height: 88px;
        gap: 6px;
        padding: var(--ccm-space-3) var(--ccm-space-4);
    }

    .service-area-photo__counties li {
        font-size: var(--ccm-text-sm);
        line-height: 1.5;
    }

    .service-area-photo__counties li:not(:last-child)::after {
        margin-inline: var(--ccm-space-2);
    }
}

@media (max-width: 360px) {
    .service-area-photo {
        aspect-ratio: 1 / 1;
    }
}

/* 2026 homepage alignment pass
 * Brings the opening brand story and proof modules into the editorial visual
 * language established on the interior pages while preserving page order and
 * the approved service, service-area, testimonial, resource, and footer work.
 */
.hero::before {
    background-image: linear-gradient(180deg, rgba(7, 15, 24, 0.88) 0%, rgba(7, 15, 24, 0) 31%), linear-gradient(90deg, rgba(7, 15, 24, 0.68) 0%, rgba(7, 15, 24, 0.28) 48%, rgba(7, 15, 24, 0) 78%);
    background-position: center 42%;
}

.hero__text-link {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    gap: var(--ccm-action-gap);
    padding: 4px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.46);
    color: rgba(255, 255, 255, 0.92);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.3;
    text-transform: uppercase;
    transition: color 180ms ease, border-color 180ms ease;
}

.hero__text-link:hover,
.hero__text-link:focus-visible {
    border-color: var(--ccm-color-surface);
    color: var(--ccm-color-surface);
}

.hero__text-link-icon,
.intro-section__link-icon,
.image-card__arrow {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
    transition: transform 180ms var(--ccm-ease-standard);
}

.hero__text-link:hover .hero__text-link-icon,
.hero__text-link:focus-visible .hero__text-link-icon,
.intro-section__link:hover .intro-section__link-icon,
.intro-section__link:focus-visible .intro-section__link-icon,
.image-card:hover .image-card__arrow,
.image-card:focus-visible .image-card__arrow {
    transform: translateX(4px);
}

.intro-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ccm-split-gap);
}

.intro-grid--centered {
    display: flex;
    justify-content: center;
}

.intro-grid--centered .intro-section__copy {
    max-width: 820px;
    align-items: center;
    padding-block: clamp(18px, 3vw, 34px);
    text-align: center;
}

.intro-grid--centered .intro-section__copy h2 {
    max-width: none;
}

.intro-grid--centered .intro-section__copy > p:not(.eyebrow) {
    max-width: 660px;
}

.intro-grid--centered .intro-principles {
    justify-content: center;
}

.intro-section__image {
    aspect-ratio: 3 / 2;
}

.intro-section__copy {
    max-width: 720px;
    padding-block: clamp(28px, 4vw, 58px);
}

@media (min-width: 961px) {
    .intro-section__illustration {
        max-width: 640px;
        justify-self: end;
    }
}

.intro-section__copy h2 {
    max-width: 12ch;
    font-size: clamp(40px, 3.6vw, 52px);
    line-height: 1.08;
}

.intro-section__copy > p:not(.eyebrow) {
    max-width: 48ch;
    margin-bottom: var(--ccm-space-5);
    font-size: var(--ccm-text-lead);
    line-height: 1.58;
}

.intro-principles {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 0;
    margin: 0 0 var(--ccm-space-5);
    padding: 0;
    color: var(--ccm-color-ink);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    letter-spacing: 0.02em;
    line-height: 1.4;
    list-style: none;
}

.intro-principles li {
    display: inline-flex;
    align-items: center;
}

.intro-principles li + li::before {
    width: 4px;
    height: 4px;
    margin-inline: 13px;
    border-radius: 50%;
    background: var(--ccm-color-brand-slate);
    content: "";
}

.intro-section__link {
    display: inline-flex;
    min-height: var(--ccm-control-min);
    align-items: center;
    gap: var(--ccm-action-gap);
    padding: 4px 0;
    border-bottom: 1px solid rgba(49, 65, 86, 0.3);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.3;
    text-transform: uppercase;
}

.intro-section__link:hover,
.intro-section__link:focus-visible {
    border-color: currentColor;
}

.serve-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid rgba(49, 65, 86, 0.16);
    background: rgba(49, 65, 86, 0.16);
}

.serve-card {
    position: relative;
    display: flex;
    min-height: var(--ccm-card-min-height);
    align-items: stretch;
    overflow: hidden;
    color: var(--ccm-color-ink);
    isolation: isolate;
    background: rgba(255, 255, 255, 0.9);
    transition: color 180ms ease, background-color 180ms ease;
}

.serve-card::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: rgba(255, 255, 255, 0.78);
    content: '';
    pointer-events: none;
    transition: background-color 180ms ease;
}

.serve-card__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    overflow: hidden;
    opacity: 0.2;
    pointer-events: none;
    transition: opacity 260ms var(--ccm-ease-standard), transform 520ms var(--ccm-ease-standard);
}

.serve-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.02);
    transition: transform 520ms var(--ccm-ease-standard);
}

.serve-card::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: var(--ccm-color-brand-slate);
    content: '';
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 220ms var(--ccm-ease-standard);
}

.serve-card:hover,
.serve-card:focus-visible {
    background: rgba(239, 244, 248, 0.88);
}

.serve-card:hover::before,
.serve-card:focus-visible::before {
    background: rgba(255, 255, 255, 0.66);
}

.serve-card:hover .serve-card__media,
.serve-card:focus-visible .serve-card__media {
    opacity: 0.34;
}

.serve-card:hover .serve-card__media img,
.serve-card:focus-visible .serve-card__media img {
    transform: scale(1.06);
}

.serve-card:hover::after,
.serve-card:focus-visible::after {
    transform: scaleX(1);
}

.serve-card__body {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--ccm-space-6);
    padding: var(--ccm-space-6);
}

.serve-card__icon {
    width: 27px;
    height: 27px;
}

.serve-card:hover .serve-card__icon-frame,
.serve-card:focus-visible .serve-card__icon-frame {
    color: var(--ccm-color-brand-slate);
    background: var(--white);
}

.serve-card:focus-visible {
    outline-color: var(--ccm-color-rating);
    outline-offset: 3px;
}

.serve-card__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ccm-space-4);
}

.serve-card__title {
    max-width: 360px;
    font-size: clamp(20px, 1.7vw, 25px);
    font-weight: var(--ccm-weight-card);
    letter-spacing: -0.015em;
    line-height: 1.2;
}

.serve-card__arrow {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
    margin-top: 4px;
    color: var(--ccm-color-brand-slate);
    transition: transform 180ms var(--ccm-ease-standard);
}

.serve-card:hover .serve-card__arrow,
.serve-card:focus-visible .serve-card__arrow {
    transform: translateX(4px);
}

.serve-card__description {
    max-width: 430px;
    color: rgba(16, 21, 27, 0.68);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-body);
    line-height: 1.5;
}

/* Keep the icon-only cards generous on larger screens while preserving the two-column tablet layout. */
@media (min-width: 1181px) {
    .serve-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 840px) {
    .service-card:not(.service-card--featured),
    .serve-card {
        min-height: 228px;
    }
}

@media (max-width: 760px) {
    .serve-grid {
        gap: 1px;
    }

    .serve-card__body {
        min-height: 220px;
        padding: 24px;
    }

    .serve-card {
        min-height: 0;
    }
}

/* Legacy image-card properties remain scoped to older modules; the homepage uses .serve-card above. */
.image-card > .image-card__body {
    flex-direction: column;
}

.trust-strip__inner {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}

.trust-strip__lead {
    margin-bottom: 0;
}

.trust-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trust-stat {
    min-height: 142px;
    justify-content: center;
    padding: clamp(22px, 2.5vw, 34px);
    border: 0;
}

.trust-stat + .trust-stat {
    border-left: 1px solid rgba(49, 65, 86, 0.18);
}

.trust-stat:nth-child(n + 3) {
    border-top: 1px solid rgba(49, 65, 86, 0.18);
}

.trust-stat:nth-child(3) {
    border-left: 0;
}

.trust-stat:first-child,
.trust-stat:last-child {
    padding: clamp(22px, 2.5vw, 34px);
}

.trust-stat__headline {
    font-size: clamp(30px, 2.6vw, 42px);
}

.trust-stat--bbb .trust-strip__bbb-link {
    display: flex;
    width: 100%;
    align-items: center;
    gap: clamp(14px, 1.6vw, 22px);
    color: var(--ccm-color-ink);
    line-height: 1.2;
}

.trust-stat--bbb .trust-strip__bbb-mark {
    width: clamp(90px, 8vw, 112px);
    flex: 0 0 auto;
}

.trust-stat--bbb .trust-strip__bbb-link > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-2);
}

.trust-stat--bbb .trust-stat__headline {
    font-size: clamp(18px, 1.55vw, 22px);
    line-height: 1.15;
}

@media (min-width: 1121px) {
    .hero h1 {
        max-width: 17.5ch;
        font-size: clamp(52px, 4vw, 58px);
        line-height: 1.08;
    }
}

@media (max-width: 960px) {
    .intro-grid,
    .trust-strip__inner {
        grid-template-columns: 1fr;
    }

    .intro-grid {
        gap: var(--ccm-space-7);
    }

    .intro-section__copy {
        max-width: 680px;
        padding-block: 0;
    }

    .trust-strip__inner {
        gap: var(--ccm-space-7);
    }
}

@media (max-width: 760px) {
    .hero h1 {
        max-width: 18ch;
        font-size: clamp(36px, 10vw, 44px);
        line-height: 1.1;
    }

    .hero__actions {
        align-items: flex-start;
    }

    .intro-section__copy h2 {
        font-size: clamp(36px, 10vw, 44px);
    }

    .serve-grid {
        grid-template-columns: 1fr;
    }

    .image-card__photo {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 600px) {
    .intro-principles {
        display: grid;
        gap: var(--ccm-space-2);
    }

    .intro-principles li + li::before {
        width: 16px;
        height: 1px;
        margin: 0 var(--ccm-space-3) 0 0;
        border-radius: 0;
    }

    .trust-stats {
        grid-template-columns: 1fr;
    }

    .trust-points {
        grid-template-columns: 1fr;
    }

    .trust-strip--bridge .trust-points {
        grid-template-columns: 1fr;
    }

    .trust-point:nth-child(even) {
        border-left: 0;
    }

    .trust-point + .trust-point {
        border-top: 1px solid rgba(49, 65, 86, 0.18);
    }

    .trust-stat,
    .trust-stat:first-child,
    .trust-stat:last-child {
        min-height: 0;
        padding: var(--ccm-space-5) 0;
        border: 0;
    }

    .trust-stat + .trust-stat,
    .trust-stat:nth-child(n + 3) {
        border-top: 1px solid rgba(49, 65, 86, 0.18);
        border-left: 0;
    }

    .trust-stat--bbb .trust-strip__bbb-link {
        justify-content: flex-start;
    }
}

/* 2026 final homepage hierarchy pass: aerial community hero, typographic trust proof,
 * and a four-layer global footer system.
 */
.hero {
    cursor: default;
}

.hero::before {
    background-image: linear-gradient(180deg, rgba(6, 13, 21, 0.76) 0%, rgba(6, 13, 21, 0.18) 27%, rgba(6, 13, 21, 0) 46%), linear-gradient(90deg, rgba(6, 14, 23, 0.96) 0%, rgba(6, 14, 23, 0.92) 23%, rgba(6, 14, 23, 0.78) 40%, rgba(6, 14, 23, 0.42) 57%, rgba(6, 14, 23, 0.22) 72%, rgba(6, 14, 23, 0.18) 100%);
    background-position: center;
}

.hero h1 > span {
    display: block;
}

.trust-stat.trust-stat--bbb {
    padding: 0;
}

.trust-stat--bbb .trust-strip__bbb-link {
    display: flex;
    width: 100%;
    min-height: 142px;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: var(--ccm-space-2);
    padding: clamp(22px, 2.5vw, 34px);
    color: var(--ccm-color-ink);
    background: transparent;
    line-height: 1.2;
    transition: color 180ms ease, background 180ms ease;
}

.trust-stat--bbb .trust-strip__bbb-link:hover,
.trust-stat--bbb .trust-strip__bbb-link:focus-visible {
    color: var(--ccm-color-brand-slate);
    background: rgba(187, 220, 241, 0.2);
    opacity: 1;
    transform: none;
}

.trust-stat--bbb .trust-strip__bbb-link:hover .trust-stat__headline,
.trust-stat--bbb .trust-strip__bbb-link:focus-visible .trust-stat__headline,
.trust-stat--bbb .trust-strip__bbb-link:hover .trust-stat__detail,
.trust-stat--bbb .trust-strip__bbb-link:focus-visible .trust-stat__detail,
.trust-stat--bbb .trust-strip__bbb-link:hover .trust-stat__meta,
.trust-stat--bbb .trust-strip__bbb-link:focus-visible .trust-stat__meta {
    color: var(--ccm-color-brand-slate);
}

.trust-stat--bbb .trust-stat__headline {
    font-size: clamp(30px, 2.6vw, 42px);
    line-height: 1;
    transition: color 180ms ease;
}

.trust-stat--bbb .trust-stat__copy {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.trust-stat__meta {
    color: rgba(16, 21, 27, 0.58);
    font-size: var(--ccm-text-supporting);
    line-height: 1.35;
    transition: color 180ms ease;
}

.site-footer {
    padding-top: 0;
    overflow: hidden;
    color: var(--ccm-color-ink);
    background: var(--ccm-color-surface);
}

.site-footer .ccm-icon,
.site-footer .ccm-icon * {
    stroke-width: 1px !important;
}

.footer-conversion {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-top: 1px solid var(--ccm-color-line);
    background: linear-gradient(112deg, var(--ccm-color-section-soft) 0%, var(--ccm-color-surface) 100%);
}

.footer-conversion::after {
    position: absolute;
    z-index: -1;
    top: 50%;
    right: clamp(-86px, -4vw, -42px);
    width: min(330px, 27vw);
    aspect-ratio: 54.6 / 66;
    content: "";
    background: url("../img/cadence-logo-icon-color.svg") center / contain no-repeat;
    opacity: 0.1;
    pointer-events: none;
    transform: translateY(-50%);
}

.footer-cta {
    position: relative;
    display: grid;
    min-height: clamp(250px, 22vw, 316px);
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(40px, 7vw, 104px);
    padding: clamp(58px, 7vw, 92px) 0;
    background: transparent;
}

.footer-cta__copy {
    max-width: 850px;
}

.footer-cta h2 {
    max-width: 19ch;
    font-size: clamp(38px, 4vw, 54px);
    font-weight: var(--ccm-weight-hero);
    letter-spacing: -0.035em;
    line-height: 1.04;
}

.footer-cta p {
    max-width: 60ch;
    margin-top: var(--ccm-space-4);
    color: var(--ccm-color-text-muted);
    font-size: var(--ccm-text-lead);
    line-height: 1.55;
}

.footer-cta__actions {
    position: relative;
    z-index: 1;
}

/* Footer conversion hero: reuse the centered callout treatment used by the Why Choose Us page. */
.footer-conversion {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-top: 0;
    color: var(--ccm-color-surface);
    background: var(--ccm-color-night-panel);
}

.footer-conversion::after {
    display: none;
}

.footer-conversion__content {
    position: relative;
    z-index: 1;
    display: flex;
    box-sizing: border-box;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: clamp(112px, 12vw, 168px) 0 0;
    text-align: center;
}

.footer-conversion__content > div {
    max-width: 900px;
}

.footer-conversion .ccm-eyebrow {
    margin-bottom: 16px;
    color: var(--ccm-color-hero-accent);
}

.footer-conversion h2 {
    max-width: 20ch;
    margin: 0;
    color: var(--ccm-color-surface);
    font-size: clamp(42px, 4.2vw, 60px);
    line-height: 1.04;
}

.footer-conversion__summary {
    max-width: 58ch;
    margin: 22px auto 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: var(--ccm-text-lead);
    line-height: 1.55;
}

.footer-conversion .ccm-button {
    margin-top: 30px;
}

.footer-conversion__art {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
}

/* Homepage closing CTA: a compact, high-contrast closing beat rather than a
   second full-height hero. */
.footer-conversion--home {
    background: var(--ccm-color-night-panel);
}

.footer-conversion--home .footer-conversion__content {
    padding-top: clamp(64px, 6vw, 88px);
}

.footer-conversion--home .ccm-eyebrow {
    margin-bottom: 12px;
    color: var(--ccm-color-gold);
}

.footer-conversion--home h2 {
    max-width: 18ch;
    font-size: clamp(38px, 3.5vw, 52px);
    line-height: 1.06;
}

.footer-conversion--home h2 > span {
    display: block;
}

.footer-conversion--home .footer-conversion__summary {
    max-width: 52ch;
    margin-top: 16px;
    color: rgba(255, 255, 255, 0.8);
}

.footer-conversion--home .ccm-button {
    margin-top: 24px;
}

.footer-conversion--home .footer-conversion__art {
    margin-top: 8px;
}

/* Homepage section rhythm uses neutral Cloud and one focused dark proof band;
   blue remains an accent rather than a large surface. */
#who-we-serve,
.resources-section {
    background: var(--ccm-color-surface-review);
}

.services-section {
    background: var(--ccm-color-surface);
}

.trust-strip--bridge {
    color: var(--ccm-color-surface);
    border-block-color: rgba(255, 255, 255, 0.12);
    background: var(--ccm-color-night-panel);
}

.trust-strip--bridge .eyebrow {
    color: var(--ccm-color-gold);
}

.trust-strip--bridge .trust-strip__heading h2,
.trust-strip--bridge .trust-point__title {
    color: var(--ccm-color-surface);
}

.trust-strip--bridge .trust-strip__lead,
.trust-strip--bridge .trust-point__detail,
.trust-strip--bridge .trust-credential__detail {
    color: rgba(255, 255, 255, 0.76);
}

.trust-strip--bridge .trust-credential {
    border-top-color: rgba(255, 255, 255, 0.2);
}

.trust-strip--bridge .trust-credential__link,
.trust-strip--bridge .trust-credential__title {
    color: var(--ccm-color-gold);
    text-decoration-color: currentColor;
}

.trust-strip--bridge .trust-credential__link:hover .trust-credential__title,
.trust-strip--bridge .trust-credential__link:focus-visible .trust-credential__title {
    color: var(--ccm-color-surface);
}

@media (max-width: 1120px) {
    .footer-conversion__art {
        width: 118%;
        margin-top: 28px;
        margin-left: -9%;
    }
}

@media (max-width: 840px) {
    .footer-conversion__content {
        padding-top: clamp(96px, 18vw, 132px);
    }

    /* Crop the wide illustration on smaller screens so the houses stay
       optically substantial without adding space below the section. */
    .footer-conversion__art {
        width: 122%;
        max-width: none;
        margin-top: clamp(24px, 3vw, 36px);
        margin-left: -11%;
    }
}

@media (max-width: 480px) {
    .footer-conversion__content {
        width: calc(100% - 32px);
        max-width: calc(100% - 32px);
        padding-bottom: 0;
    }

    .footer-conversion h2 {
        font-size: 36px;
        line-height: 1.08;
    }

    .footer-conversion__summary {
        font-size: var(--ccm-text-body);
    }

    .footer-conversion__art {
        width: 170%;
        margin-top: 32px;
        margin-left: -35%;
    }

    .footer-conversion--home .footer-conversion__content {
        padding-top: 56px;
    }

    .footer-conversion--home h2 {
        font-size: 34px;
    }

    .footer-conversion--home .footer-conversion__art {
        margin-top: 12px;
    }
}

.footer-utility {
    border-top: 1px solid var(--ccm-color-line);
    border-bottom: 1px solid var(--ccm-color-line);
    background: var(--ccm-color-surface);
}

.footer-utility__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.footer-utility__list li {
    min-width: 0;
}

.footer-utility__list li + li {
    border-left: 1px solid var(--ccm-color-line);
}

.footer-utility__list a {
    display: grid;
    min-height: 92px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ccm-space-3);
    padding: 20px clamp(18px, 2vw, 30px);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    line-height: 1.35;
    transition: color 180ms ease, background 180ms ease;
}

.footer-utility__list a:hover,
.footer-utility__list a:focus-visible {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-section-soft);
}

.footer-utility__icon {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    color: var(--ccm-color-brand-slate);
}

.footer-utility__arrow,
.footer-contact__arrow {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
    transition: transform 180ms var(--ccm-ease-standard);
}

.footer-utility__list a:hover .footer-utility__arrow,
.footer-utility__list a:focus-visible .footer-utility__arrow,
.footer-contact__link:hover .footer-contact__arrow,
.footer-contact__link:focus-visible .footer-contact__arrow {
    transform: translateX(4px);
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(230px, 1.15fr) minmax(0, 3.8fr) minmax(210px, 0.95fr);
    grid-template-areas: "brand navigation contact";
    align-items: start;
    gap: clamp(38px, 4.5vw, 70px);
    padding: clamp(70px, 7vw, 104px) 0 clamp(62px, 6vw, 88px);
}

.footer-brand {
    grid-area: brand;
}

.brand--footer img {
    width: clamp(218px, 17vw, 252px);
    height: auto;
}

.footer-brand > p {
    max-width: 300px;
}

.footer-brand__eyebrow {
    margin-top: var(--ccm-space-5);
    color: var(--ccm-color-brand-slate) !important;
    font-size: var(--ccm-text-sm) !important;
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    line-height: 1.4 !important;
    text-transform: uppercase;
}

.footer-brand__statement {
    margin-top: var(--ccm-space-3) !important;
    color: var(--ccm-color-text-muted) !important;
    font-size: var(--ccm-text-body) !important;
    line-height: 1.62 !important;
}

.footer-navigation {
    display: grid;
    grid-area: navigation;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(22px, 2.4vw, 38px);
}

.footer-nav-group {
    min-width: 0;
}

.footer-nav-group h3,
.footer-contact h3 {
    margin: 0 0 var(--ccm-space-4);
}

.footer-nav__label {
    display: block;
    color: var(--ccm-color-ink);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    line-height: 1.4;
}

.footer-nav__toggle {
    display: none;
    width: 100%;
    min-height: 24px;
    align-items: center;
    justify-content: space-between;
    gap: var(--ccm-space-3);
    padding: 0;
    border: 0;
    color: var(--ccm-color-ink);
    background: transparent;
    font: inherit;
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    line-height: 1.4;
    text-align: left;
    pointer-events: none;
}

.footer-nav__chevron {
    display: none;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    transition: transform 180ms var(--ccm-ease-standard);
}

.footer-nav__panel ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-nav__panel a {
    display: inline-flex;
    min-height: 31px;
    align-items: center;
    color: var(--ccm-color-text-muted);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-ui);
    line-height: 1.45;
    transition: color 160ms ease;
}

.footer-nav__panel a:hover,
.footer-nav__panel a:focus-visible {
    color: var(--ccm-color-ink);
}

.footer-contact {
    grid-area: contact;
}

.footer-contact a,
.footer-contact p {
    min-height: 34px;
    margin: 0;
    color: var(--ccm-color-text-muted);
    font-size: var(--ccm-text-supporting);
    line-height: 1.55;
}

.footer-contact p {
    margin-top: var(--ccm-space-2);
}

.footer-contact__link {
    display: inline-flex !important;
    width: fit-content;
    align-items: center !important;
    gap: var(--ccm-action-gap) !important;
    margin-top: var(--ccm-space-4) !important;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(49, 65, 86, 0.28);
    color: var(--ccm-color-brand-slate) !important;
    font-size: var(--ccm-text-action) !important;
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    text-transform: uppercase;
}

.footer-legal {
    border-top: 1px solid var(--ccm-color-line);
}

.footer-bottom {
    min-height: 66px;
    border-top: 0;
    color: var(--ccm-color-text-muted);
}

.footer-bottom a {
    color: var(--ccm-color-brand-slate);
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible {
    color: var(--ccm-color-ink);
}

.footer-bottom__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 0;
}

.footer-bottom__links a {
    display: inline-flex;
    align-items: center;
}

.footer-bottom__links a + a {
    margin-left: 14px;
    padding-left: 14px;
    border-left: 1px solid rgba(49, 65, 86, 0.28);
}

.footer-contact__icon,
.footer-contact__arrow,
.footer-utility__arrow {
    color: var(--ccm-color-brand-slate);
}

.site-footer a:focus-visible,
.footer-nav__toggle:focus-visible {
    outline: 2px solid var(--ccm-color-brand-slate);
    outline-offset: 3px;
}

.footer-conversion a:focus-visible {
    outline-color: var(--ccm-color-gold);
    box-shadow: 0 0 0 1px var(--ccm-color-surface);
}

@media (min-width: 1121px) {
    .hero__content {
        padding-left: clamp(60px, 5.4vw, 80px);
    }

    .hero h1 {
        max-width: none;
        font-size: clamp(52px, 4vw, 58px);
        line-height: 1.05;
    }
}

@media (max-width: 1279px) {
    .footer-main {
        grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
        grid-template-areas:
            "brand contact"
            "navigation navigation";
        gap: var(--ccm-space-8) clamp(44px, 7vw, 80px);
    }

    .footer-navigation {
        gap: clamp(24px, 4vw, 46px);
    }
}

@media (max-width: 1120px) {
    .footer-utility__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-utility__list li:nth-child(3) {
        border-left: 0;
    }

    .footer-utility__list li:nth-child(n + 3) {
        border-top: 1px solid var(--ccm-color-line);
    }
}

@media (max-width: 960px) {
    .footer-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: var(--ccm-space-7);
    }
}

@media (max-width: 760px) {
    .hero::before {
        background-image: linear-gradient(180deg, rgba(6, 13, 21, 0.78) 0%, rgba(6, 13, 21, 0.2) 24%, rgba(6, 13, 21, 0) 44%), linear-gradient(90deg, rgba(6, 14, 23, 0.94) 0%, rgba(6, 14, 23, 0.88) 48%, rgba(6, 14, 23, 0.7) 76%, rgba(6, 14, 23, 0.5) 100%);
        background-position: 73% center;
    }

    .hero__image {
        object-position: var(--ccm-image-position-mobile, var(--ccm-image-position, 58% 50%));
    }

    .hero h1 > span {
        display: inline;
    }

    .hero h1 > span:not(:last-child)::after {
        content: " ";
    }

    .footer-conversion::after {
        right: -70px;
        width: 250px;
        opacity: 0.09;
    }

    .footer-cta {
        min-height: 0;
        grid-template-columns: 1fr;
        align-items: start;
        gap: var(--ccm-space-6);
        padding: var(--ccm-space-9) 0;
    }

    .footer-cta h2 {
        font-size: clamp(34px, 9vw, 44px);
    }

    .footer-cta p {
        font-size: var(--ccm-text-body);
    }

    .footer-main {
        grid-template-columns: 1fr;
        grid-template-areas:
            "brand"
            "contact"
            "navigation";
        gap: var(--ccm-space-8);
        padding: var(--ccm-space-9) 0 var(--ccm-space-8);
    }

    .footer-navigation {
        grid-template-columns: 1fr;
        gap: 0;
        border-top: 1px solid var(--ccm-color-line);
    }

    .footer-nav-group {
        border-bottom: 1px solid var(--ccm-color-line);
    }

    .footer-nav-group h3 {
        margin: 0;
    }

    .footer-nav__label {
        display: none;
    }

    .footer-nav__toggle {
        display: flex;
        min-height: 54px;
        padding: 14px 0;
        cursor: pointer;
        pointer-events: auto;
    }

    .footer-nav__chevron {
        display: block;
    }

    .footer-nav__toggle[aria-expanded="true"] .footer-nav__chevron {
        transform: rotate(180deg);
    }

    .footer-nav__panel {
        padding: 0 0 var(--ccm-space-4);
    }

    .footer-nav__panel[hidden] {
        display: none;
    }

    .footer-nav__panel a {
        display: flex;
        min-height: 48px;
        padding: 10px var(--ccm-space-3);
        border-top: 1px solid var(--ccm-color-line);
    }

    .footer-contact a {
        min-height: 44px;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        padding: var(--ccm-space-4) 0;
    }
}

/* Homepage hero media and editorial layout. */
.hero__media {
    position: absolute;
    z-index: 0;
    inset: 0 0 59px;
    overflow: hidden;
}

.hero__media .hero__image {
    position: static;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: var(--ccm-image-position, 50% 48%);
}

.hero__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.hero__mobile-break {
    display: none;
}

.hero--split,
.hero--inset,
.hero--photo-free {
    background: var(--ccm-color-hero-surface);
}

.hero--split::before,
.hero--inset::before,
.hero--photo-free::before {
    display: none;
}

.hero--split .hero__content {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
}

.hero--split .hero__copy {
    width: min(47%, 650px);
    justify-content: center;
    padding-block: clamp(32px, 4vw, 64px);
}

.hero--split .hero__media {
    top: 0;
    right: 0;
    bottom: 59px;
    left: 50%;
    border-left: 1px solid rgba(255, 255, 255, 0.14);
}

.hero--split .hero__media .hero__image {
    object-position: 50% 48%;
}

.hero--inset .hero__content {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
}

.hero--inset .hero__copy {
    width: min(50%, 650px);
    justify-content: center;
    padding-block: clamp(32px, 4vw, 64px);
}

.hero--inset .hero__media {
    top: clamp(168px, 13vw, 202px);
    right: clamp(24px, 5vw, 80px);
    bottom: clamp(86px, 7vw, 112px);
    left: auto;
    width: min(39vw, 560px);
    border: 1px solid rgba(189, 208, 224, 0.4);
    background: var(--ccm-color-night-panel);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22);
}

.hero--inset .hero__media::after {
    position: absolute;
    right: 20px;
    bottom: 20px;
    left: 20px;
    height: 1px;
    content: "";
    background: rgba(255, 255, 255, 0.58);
}

.hero--inset .hero__media .hero__image {
    object-position: 50% 48%;
}

.hero--photo-free .hero__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
    align-items: center;
    gap: clamp(48px, 8vw, 132px);
}

.hero--photo-free .hero__copy {
    max-width: 690px;
}

@media (max-width: 960px) {
    .hero--split .hero__copy,
    .hero--inset .hero__copy {
        width: min(50%, 620px);
    }

    .hero--inset .hero__media {
        right: 32px;
        width: min(35vw, 420px);
    }

    .hero--photo-free .hero__content {
        gap: var(--ccm-space-7);
    }
}

@media (max-width: 760px) {
    .hero--split,
    .hero--inset,
    .hero--photo-free {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--split .hero__content,
    .hero--inset .hero__content,
    .hero--photo-free .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
        padding-top: 140px;
        padding-bottom: 56px;
    }

    .hero--split .hero__copy,
    .hero--inset .hero__copy,
    .hero--photo-free .hero__copy {
        width: 100%;
        max-width: none;
        padding-block: 0;
    }

    .hero--split .hero__media,
    .hero--inset .hero__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        border: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.16);
        box-shadow: none;
    }

    .hero--split .hero__media .hero__image,
    .hero--inset .hero__media .hero__image {
        object-position: 54% 50%;
    }

    .hero--inset .hero__media::after {
        right: 16px;
        bottom: 16px;
        left: 16px;
    }

    .hero__eyebrow {
        max-width: 28ch;
        line-height: 1.35;
    }

    .hero h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(32px, 8.7vw, 38px);
        letter-spacing: -0.03em;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero h1 > span {
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero__mobile-break {
        display: inline;
    }

    .hero__eyebrow,
    .hero__summary {
        width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero h1 > span {
        display: block;
    }

    .hero h1 > span:not(:last-child)::after {
        content: none;
    }

    .hero__actions {
        width: 100%;
        align-items: flex-start;
        flex-direction: column;
    }

    .hero__text-link {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 600px) {
    .trust-stat.trust-stat--bbb {
        padding: 0;
    }

    .trust-stat--bbb .trust-strip__bbb-link {
        min-height: 0;
        padding: var(--ccm-space-5) 0;
    }

    .footer-utility__list {
        grid-template-columns: 1fr;
    }

    .footer-utility__list li + li,
    .footer-utility__list li:nth-child(3) {
        border-top: 1px solid var(--ccm-color-line);
        border-left: 0;
    }

    .footer-utility__list a {
        min-height: 72px;
        padding: 16px 0;
    }

    .brand--footer img {
        width: 220px;
    }
}

/* Portrait iPad cards: three destinations should share one balanced row
   instead of leaving the third item stranded in an empty half-width row. */
@media (min-width: 761px) and (max-width: 1120px) and (orientation: portrait) {
    .resource-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-auto-rows: 1fr;
    }

    .resource-grid > li + li,
    .resource-grid > li:nth-child(even) {
        border-left: 1px solid var(--ccm-color-line);
    }

    .resource-grid > li:nth-child(n + 3) {
        border-top: 0;
    }

    .resource-card__content {
        padding: clamp(20px, 2.8vw, 28px);
    }

    .resource-card__action {
        white-space: normal;
    }

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

    .footer-utility__list li + li,
    .footer-utility__list li:nth-child(3) {
        border-left: 1px solid var(--ccm-color-line);
    }

    .footer-utility__list li:nth-child(n + 3) {
        border-top: 0;
    }

    .footer-utility__list a {
        min-height: 92px;
        gap: var(--ccm-space-2);
        padding: 18px clamp(16px, 2vw, 24px);
    }
}

/* Cadence architectural illustration system */
.ccm-architecture {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--ccm-color-surface-review);
}

.ccm-architecture * {
    vector-effect: non-scaling-stroke;
}

.ccm-architecture__background {
    fill: var(--ccm-color-surface-review);
}

.ccm-architecture__water,
.ccm-architecture__pool {
    fill: #dce8f1;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.5;
}

.ccm-architecture__green {
    fill: #dfe6df;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.25;
}

.ccm-architecture__land-line,
.ccm-architecture__shore,
.ccm-architecture__path {
    fill: none;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.5;
}

.ccm-architecture__land-line {
    opacity: 0.34;
}

.ccm-architecture__road-edge {
    fill: none;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 37;
}

.ccm-architecture__road {
    fill: none;
    stroke: var(--ccm-color-surface);
    stroke-width: 33;
}

.ccm-architecture__homes,
.ccm-architecture__clubhouse,
.ccm-architecture__tower,
.ccm-architecture__building-section,
.ccm-architecture__office {
    fill: #8ea4bb;
    stroke: var(--ccm-color-brand-slate);
    stroke-linejoin: round;
    stroke-width: 2;
}

.ccm-architecture__roof {
    fill: var(--ccm-color-surface);
    stroke: var(--ccm-color-brand-slate);
    stroke-linecap: square;
    stroke-linejoin: round;
    stroke-width: 2;
}

.ccm-architecture__side {
    fill: #aebdca;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 2;
}

.ccm-architecture__detail,
.ccm-architecture__systems {
    fill: none;
    stroke: var(--ccm-color-surface);
    stroke-width: 1.6;
}

.ccm-architecture__palms {
    fill: none;
    stroke: var(--ccm-color-brand-slate);
    stroke-linecap: square;
    stroke-width: 2;
}

.ccm-architecture__network,
.ccm-architecture__service-route {
    fill: var(--ccm-color-surface);
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.8;
}

.ccm-architecture__ledger > path:first-child,
.ccm-architecture__documents > path:first-child,
.ccm-architecture__community-grid > path:first-child,
.ccm-architecture__court {
    fill: var(--ccm-color-surface);
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 2;
}

.ccm-architecture__ledger > path:not(:first-child),
.ccm-architecture__documents > path:not(:first-child),
.ccm-architecture__community-grid > path:not(:first-child),
.ccm-architecture__court path {
    fill: none;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 1.5;
}

.ccm-architecture__paper-back {
    fill: #dce8f1 !important;
}

.ccm-architecture__accent-line {
    fill: none !important;
    stroke: var(--ccm-color-rating) !important;
    stroke-width: 3 !important;
}

.ccm-architecture__resource-node {
    fill: #8ea4bb;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 2;
}

.intro-section__illustration {
    position: relative;
    display: flex;
    max-width: 1448px;
    width: 100%;
    align-items: center;
    justify-content: center;
    isolation: isolate;
    overflow: visible;
    margin: 0 auto;
    padding: 0;
}

.ccm-journey {
    display: block;
    width: 100%;
    height: auto;
}

.ccm-journey-editor-active .ccm-journey__orbit {
    cursor: grab;
    animation: none !important;
    pointer-events: visiblePainted;
    stroke-dashoffset: 0;
}

.ccm-journey-editor-active .ccm-journey__orbit.is-editor-dragging {
    cursor: grabbing;
    opacity: 1;
}

.ccm-journey-editor-active .ccm-journey__orbit:hover {
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 2.5;
}

.ccm-journey-editor__orbit-rotate-handle {
    pointer-events: none;
}

.ccm-journey-editor__orbit-rotate-handle line {
    pointer-events: none;
    stroke: var(--ccm-color-gold);
    stroke-width: 2;
    stroke-dasharray: 4 4;
}

.ccm-journey-editor__orbit-rotate-handle circle {
    pointer-events: all;
    cursor: grab;
    fill: var(--ccm-color-gold);
    stroke: var(--ccm-color-ink);
    stroke-width: 2;
}

.ccm-journey-editor__orbit-rotate-handle circle:hover,
.ccm-journey-editor__orbit-rotate-handle circle:active {
    fill: var(--ccm-color-brand-slate);
}

.ccm-journey-editor__orbit-resize-handle {
    pointer-events: none;
}

.ccm-journey-editor__orbit-resize-handle line {
    pointer-events: none;
    stroke: var(--ccm-color-surface-muted);
    stroke-width: 2;
    stroke-dasharray: 4 4;
}

.ccm-journey-editor__orbit-resize-handle circle {
    pointer-events: all;
    cursor: nwse-resize;
    fill: var(--ccm-color-surface-muted);
    stroke: var(--ccm-color-ink);
    stroke-width: 2;
}

.ccm-journey-editor__orbit-resize-handle circle:hover,
.ccm-journey-editor__orbit-resize-handle circle:active {
    fill: var(--ccm-color-brand-slate);
}

.ccm-journey-editor-active .ccm-journey__stage {
    cursor: grab;
    opacity: 0.9;
    animation: none !important;
}

.ccm-journey-editor-active .ccm-journey__stage.is-editor-dragging {
    cursor: grabbing;
    opacity: 1;
}

.ccm-journey-editor {
    position: fixed;
    z-index: 1000;
    right: 16px;
    bottom: 16px;
    width: min(360px, calc(100vw - 32px));
    padding: 16px;
    border: 1px solid var(--ccm-color-line);
    border-radius: 4px;
    color: var(--ccm-color-ink);
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 16px 40px rgba(15, 15, 15, 0.18);
    font-size: 13px;
}

.ccm-journey-editor strong {
    display: block;
    font-size: 15px;
}

.ccm-journey-editor p {
    margin: 7px 0 12px;
    line-height: 1.45;
}

.ccm-journey-editor__actions {
    display: flex;
    gap: 8px;
}

.ccm-journey-editor button {
    padding: 7px 10px;
    border: 1px solid var(--ccm-color-brand-slate);
    color: var(--ccm-color-ink);
    background: var(--ccm-color-brand-slate);
    font: inherit;
    cursor: pointer;
}

.ccm-journey-editor button:last-child {
    color: var(--ccm-color-ink);
    background: transparent;
}

.ccm-journey-editor pre {
    max-height: 220px;
    overflow: auto;
    margin: 12px 0 0;
    padding: 10px;
    color: var(--ccm-color-ink);
    background: var(--ccm-color-section-soft);
    font-size: 10px;
    line-height: 1.35;
    white-space: pre-wrap;
}

.ccm-journey-editor__status {
    display: block;
    min-height: 1.3em;
    margin-top: 8px;
    color: var(--ccm-color-brand-slate);
    font-size: 11px;
}

.ccm-journey__title {
    letter-spacing: -0.02em;
}

.ccm-journey__orbit {
    stroke: rgba(49, 65, 86, 0.22);
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: opacity 260ms ease, stroke 260ms ease, stroke-width 260ms ease;
}

.intro-section__illustration.is-visible .ccm-journey__orbit {
    animation: ccm-journey-draw 1500ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}

.intro-section__illustration.is-visible .ccm-journey__orbit:nth-child(2) {
    animation-delay: 120ms;
}

.intro-section__illustration.is-visible .ccm-journey__orbit:nth-child(3) {
    animation-delay: 240ms;
}

.intro-section__illustration.is-visible .ccm-journey__orbit:nth-child(4) {
    animation-delay: 360ms;
}

.intro-section__illustration.is-visible .ccm-journey__orbit:nth-child(5) {
    animation-delay: 480ms;
}

.ccm-journey__stage {
    cursor: pointer;
    opacity: 0;
    outline: none;
    transition: opacity 220ms ease;
}

.intro-section__illustration.is-visible .ccm-journey__stage {
    animation: ccm-journey-stage-in 520ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
    animation-delay: var(--journey-stage-delay, 0ms);
}

.ccm-journey__stage:hover,
.ccm-journey__stage:focus-visible,
.ccm-journey__stage.is-active {
    opacity: 1;
}

.ccm-journey.has-active-stage .ccm-journey__stage:not(.is-active) {
    opacity: 0.84;
}

.ccm-journey__node,
.ccm-journey__node-halo {
    transition: fill 220ms ease, stroke 220ms ease, stroke-width 220ms ease, opacity 220ms ease, transform 220ms ease;
}

.ccm-journey__node-halo {
    opacity: 0.78;
    transform-box: fill-box;
    transform-origin: center;
}

.ccm-journey__stage:hover .ccm-journey__node-halo,
.ccm-journey__stage:focus-visible .ccm-journey__node-halo,
.ccm-journey__stage.is-active .ccm-journey__node-halo {
    opacity: 0.9;
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 2;
    transform: none;
}

.ccm-journey__stage:hover .ccm-journey__node,
.ccm-journey__stage:focus-visible .ccm-journey__node,
.ccm-journey__stage.is-active .ccm-journey__node {
    fill: var(--ccm-color-gold);
}

.ccm-journey.has-active-stage .ccm-journey__orbit {
    opacity: 0.76;
}

.ccm-journey.is-orbit-outer .ccm-journey__orbit[data-orbit="outer"],
.ccm-journey.is-orbit-second .ccm-journey__orbit[data-orbit="second"],
.ccm-journey.is-orbit-middle .ccm-journey__orbit[data-orbit="middle"],
.ccm-journey.is-orbit-inner-middle .ccm-journey__orbit[data-orbit="inner-middle"],
.ccm-journey.is-orbit-inner .ccm-journey__orbit[data-orbit="inner"] {
    opacity: 0.9;
    stroke: rgba(49, 65, 86, 0.54);
    stroke-width: 1.7;
}

.ccm-journey__mobile-stage {
    display: none;
}

.ccm-journey-mobile {
    display: none;
}

@keyframes ccm-journey-draw {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes ccm-journey-stage-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 0.82;
    }
}

@media (max-width: 1120px) and (min-width: 761px) {
    .ccm-journey {
        max-width: 640px;
    }
}

@media (max-width: 760px) {
    .intro-section__illustration {
        display: block;
        width: 100%;
    }

    .ccm-journey {
        display: none;
    }

    .ccm-journey-mobile {
        position: relative;
        display: grid;
        gap: 0;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .ccm-journey-mobile::before {
        position: absolute;
        top: 18px;
        bottom: 18px;
        left: 17px;
        width: 1px;
        background: var(--ccm-color-hero-accent);
        content: "";
    }

    .ccm-journey-mobile li {
        position: relative;
    }

    .ccm-journey-mobile button {
        position: relative;
        display: grid;
        width: 100%;
        grid-template-columns: 36px minmax(0, 1fr);
        align-items: center;
        gap: var(--ccm-space-3);
        padding: 12px 0;
        border: 0;
        color: var(--ccm-color-ink);
        background: transparent;
        text-align: left;
        cursor: pointer;
    }

    .ccm-journey-mobile__number {
        display: grid;
        width: 35px;
        height: 35px;
        place-items: center;
        border: 1px solid var(--ccm-color-hero-accent);
        border-radius: 50%;
        color: var(--ccm-color-brand-slate);
        background: var(--white);
        font-size: var(--ccm-text-xs);
        font-weight: var(--ccm-weight-ui);
    }

    .ccm-journey-mobile button:hover .ccm-journey-mobile__number,
    .ccm-journey-mobile button:focus-visible .ccm-journey-mobile__number,
    .ccm-journey-mobile button[aria-pressed="true"] .ccm-journey-mobile__number {
        border-color: var(--ccm-color-gold);
        color: var(--ccm-color-brand-slate);
        box-shadow: 0 0 0 5px rgba(200, 164, 90, 0.12);
    }

    .ccm-journey-mobile__label {
        font-size: var(--ccm-text-supporting);
        font-weight: var(--ccm-weight-card);
        line-height: 1.35;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ccm-journey,
    .ccm-journey__orbit,
    .ccm-journey__stage,
    .ccm-journey__node,
    .ccm-journey__node-halo,
    .intro-section__illustration {
        animation: none;
        transition: none;
    }

    .intro-section__illustration .ccm-journey__orbit {
        stroke-dashoffset: 0;
    }

    .intro-section__illustration .ccm-journey__stage {
        opacity: 0.82;
        transform: none;
    }
}

/* Keep every site eyebrow and kicker aligned with the Cadence dark blue. */
[class*="eyebrow"],
.service-card__kicker {
    color: var(--ccm-color-brand-slate);
}

/* Use the lighter hero accent when an eyebrow sits on a hard dark surface. */
.hero__eyebrow,
.service-card--featured .service-card__kicker {
    color: var(--ccm-color-hero-accent) !important;
}

.site-footer .footer-brand__eyebrow {
    color: var(--ccm-color-brand-slate) !important;
}

/* Temporary placement controls for the service-area map label editor. */
.ccm-map-editor-active .ccm-map-editor__svg {
    display: block;
    touch-action: none;
}

.ccm-map-editor-active .ccm-map-editor__svg [data-label-editable] {
    cursor: grab;
    user-select: none;
    pointer-events: all;
}

.ccm-map-editor-active .ccm-map-editor__svg [data-label-editable]:hover,
.ccm-map-editor-active .ccm-map-editor__svg [data-label-editable].is-map-editor-dragging {
    paint-order: stroke;
    stroke: rgba(200, 164, 90, 0.5);
    stroke-width: 0.55px;
}

.ccm-map-editor-active .ccm-map-editor__svg [data-label-editable].is-map-editor-dragging {
    cursor: grabbing;
}

.ccm-map-editor__line-hit-area {
    fill: none;
    stroke: transparent;
    stroke-width: 3;
    pointer-events: stroke;
    cursor: move;
}

.ccm-map-editor__handle-layer {
    overflow: visible;
    pointer-events: none;
}

.ccm-map-editor__line-guide {
    fill: none;
    stroke: var(--ccm-color-gold);
    stroke-width: 0.45;
    stroke-dasharray: 1.5 1.5;
    pointer-events: none;
}

.ccm-map-editor__endpoint {
    fill: var(--white);
    stroke: var(--ccm-color-brand-slate);
    stroke-width: 0.65;
    cursor: ew-resize;
    pointer-events: all;
}

.ccm-map-editor__endpoint--start {
    cursor: nwse-resize;
}

.ccm-map-editor__endpoint--end {
    cursor: nesw-resize;
}

.ccm-map-editor__endpoint:hover,
.ccm-map-editor__endpoint:focus {
    fill: var(--ccm-color-gold);
    outline: none;
}

.ccm-map-editor__endpoint.is-map-editor-dragging {
    cursor: grabbing;
}

.ccm-map-editor {
    position: fixed;
    z-index: 10020;
    right: 16px;
    bottom: 16px;
    width: min(390px, calc(100vw - 32px));
    padding: 16px;
    border: 1px solid var(--ccm-color-line);
    border-radius: 4px;
    color: var(--ccm-color-ink);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 16px 40px rgba(15, 15, 15, 0.2);
    font-size: 13px;
}

.ccm-map-editor strong {
    display: block;
    font-size: 15px;
}

.ccm-map-editor p {
    margin: 7px 0 10px;
    line-height: 1.45;
}

.ccm-map-editor__legend {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 12px;
    color: var(--ccm-color-brand-slate);
    font-size: 11px;
}

.ccm-map-editor__legend-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-left: 4px;
    border-radius: 50%;
    background: var(--ccm-color-gold);
}

.ccm-map-editor__legend-dot--line {
    margin-left: 8px;
    background: var(--ccm-color-brand-slate);
}

.ccm-map-editor__actions {
    display: flex;
    gap: 8px;
}

.ccm-map-editor button {
    padding: 7px 10px;
    border: 1px solid var(--ccm-color-brand-slate);
    color: var(--ccm-color-surface);
    background: var(--ccm-color-brand-slate);
    font: inherit;
    cursor: pointer;
}

.ccm-map-editor button:last-child {
    color: var(--ccm-color-ink);
    background: transparent;
}

.ccm-map-editor button:focus-visible,
.ccm-map-editor button:hover {
    border-color: var(--ccm-color-ink);
}

.ccm-map-editor pre {
    max-height: 220px;
    overflow: auto;
    margin: 12px 0 0;
    padding: 10px;
    color: var(--ccm-color-ink);
    background: var(--ccm-color-section-soft);
    font-size: 10px;
    line-height: 1.35;
    white-space: pre-wrap;
}

.ccm-map-editor__status {
    display: block;
    min-height: 1.3em;
    margin-top: 8px;
    color: var(--ccm-color-brand-slate);
    font-size: 11px;
}

@media (max-width: 640px) {
    .ccm-map-editor {
        right: 8px;
        bottom: 8px;
        width: calc(100vw - 16px);
    }
}

/* Additional hero comparison directions. These keep the approved message and
   stock photograph intact while testing different reading paths and proof
   structures for local review. */
.hero--split-reverse,
.hero--split-rail,
.hero--split-window,
.hero--split-band,
.hero--photo-free-centered,
.hero--photo-free-principles,
.hero--photo-free-process,
.hero--photo-free-structure {
    background: var(--ccm-color-hero-surface);
}

.hero--split-reverse::before,
.hero--split-rail::before,
.hero--split-window::before,
.hero--split-band::before,
.hero--photo-free-centered::before,
.hero--photo-free-principles::before,
.hero--photo-free-process::before,
.hero--photo-free-structure::before {
    display: none;
}

.hero--split-reverse .hero__content,
.hero--split-rail .hero__content,
.hero--split-window .hero__content,
.hero--split-band .hero__content {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
}

.hero--split-reverse .hero__copy,
.hero--split-rail .hero__copy,
.hero--split-window .hero__copy,
.hero--split-band .hero__copy {
    justify-content: center;
    padding-block: clamp(32px, 4vw, 64px);
}

/* Split / reverse: put the community image first and let the copy finish the
   reading path on the right. */
.hero--split-reverse .hero__copy {
    width: min(47%, 650px);
    margin-left: auto;
}

.hero--split-reverse .hero__media {
    top: 0;
    right: 50%;
    bottom: 59px;
    left: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
}

.hero--split-reverse .hero__media .hero__image {
    object-position: 50% 48%;
}

/* Split / rail: a narrower editorial copy rail creates a stronger sense of
   structure while giving the photograph more room to establish context. */
.hero--split-rail .hero__copy {
    width: min(47%, 650px);
    padding-right: clamp(28px, 3vw, 40px);
    border-right: 1px solid rgba(189, 208, 224, 0.34);
}

.hero--split-rail h1 {
    font-size: clamp(48px, 3.5vw, 54px);
}

.hero--split-rail .hero__media {
    top: 0;
    right: 0;
    bottom: 59px;
    left: 47%;
    border-left: 0;
}

.hero--split-rail .hero__media .hero__image {
    object-position: 48% 48%;
}

/* Split / window: use the photograph as a large architectural window inside
   a calm navy field instead of letting it run edge to edge. */
.hero--split-window .hero__copy {
    width: min(46%, 640px);
}

.hero--split-window .hero__media {
    top: clamp(150px, 12vw, 188px);
    right: clamp(20px, 2.5vw, 36px);
    bottom: clamp(102px, 8vw, 132px);
    left: auto;
    width: min(46vw, 660px);
    border: 1px solid rgba(189, 208, 224, 0.42);
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.035), 0 22px 48px rgba(0, 0, 0, 0.24);
}

.hero--split-window .hero__media::after {
    position: absolute;
    right: 24px;
    bottom: 24px;
    left: 24px;
    height: 1px;
    content: "";
    background: rgba(255, 255, 255, 0.62);
}

.hero--split-window .hero__media .hero__image {
    object-position: 50% 48%;
}

/* Split / band: keep the promise in an upper field and let the image form a
   lower visual horizon, creating a quieter editorial reveal. */
.hero--split-band .hero__copy {
    position: relative;
    z-index: 3;
    width: min(47%, 660px);
}

.hero--split-band .hero__media {
    top: clamp(320px, 38vh, 420px);
    right: 0;
    bottom: 59px;
    left: 50%;
    border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.hero--split-band .hero__media .hero__image {
    object-position: 50% 56%;
}

/* Photo-free / centered: make the promise the sole focal point, then support
   it with a restrained three-column explanation. */
.hero--photo-free-centered .hero__content {
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero--photo-free-centered .hero__copy {
    width: min(780px, 100%);
    max-width: none;
    align-items: center;
    text-align: center;
}

.hero--photo-free-centered .hero__summary {
    width: min(560px, 100%);
}

.hero--photo-free-centered .hero__actions {
    justify-content: center;
}

.hero__center-proof {
    width: min(980px, 100%);
    margin-top: clamp(40px, 5vw, 72px);
}

.hero__center-proof-kicker,
.hero__principles-kicker,
.hero__process-kicker,
.hero__structure-kicker {
    color: var(--ccm-color-hero-accent);
    font-size: 14px;
    font-weight: var(--ccm-weight-eyebrow);
    letter-spacing: var(--ccm-tracking-eyebrow);
    text-transform: uppercase;
}

.hero__center-proof-kicker {
    margin-bottom: var(--ccm-space-4);
    text-align: center;
}

.hero__center-proof-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(189, 208, 224, 0.36);
    border-bottom: 1px solid rgba(189, 208, 224, 0.36);
}

.hero__center-proof-grid > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-2);
    padding: var(--ccm-space-5) clamp(18px, 2.5vw, 36px);
}

.hero__center-proof-grid > span + span {
    border-left: 1px solid rgba(189, 208, 224, 0.36);
}

.hero__center-proof-grid strong,
.hero__principles strong {
    color: var(--ccm-color-surface);
    font-size: var(--ccm-text-supporting);
    font-weight: var(--ccm-weight-card);
    line-height: 1.3;
}

.hero__center-proof-grid small,
.hero__principles small {
    color: rgba(255, 255, 255, 0.7);
    font-size: var(--ccm-text-supporting);
    line-height: 1.45;
}

/* Photo-free / principles: make three expectations the visual counterweight
   to the headline without turning them into dashboard cards. */
.hero--photo-free-principles .hero__content,
.hero--photo-free-process .hero__content,
.hero--photo-free-structure .hero__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    align-items: center;
    gap: clamp(48px, 8vw, 132px);
}

.hero--photo-free-principles .hero__copy,
.hero--photo-free-process .hero__copy,
.hero--photo-free-structure .hero__copy {
    max-width: 690px;
}

.hero__principles,
.hero__process,
.hero__structure {
    max-width: 450px;
    justify-self: end;
    padding-left: clamp(28px, 4vw, 56px);
    border-left: 1px solid rgba(189, 208, 224, 0.42);
}

.hero__principles-kicker,
.hero__process-kicker,
.hero__structure-kicker {
    margin-bottom: var(--ccm-space-5);
}

.hero__principles ul,
.hero__process ol {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hero__principles li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: var(--ccm-space-4);
    padding: var(--ccm-space-5) 0;
    border-top: 1px solid rgba(189, 208, 224, 0.3);
}

.hero__principles li:last-child {
    border-bottom: 1px solid rgba(189, 208, 224, 0.3);
}

.hero__principles-number,
.hero__process li > span {
    color: var(--ccm-color-hero-accent);
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: 0.08em;
}

.hero__principles li > span:last-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-2);
}

/* Photo-free / process: use the brand message formula as a visible sequence. */
.hero__process ol {
    position: relative;
}

.hero__process ol::before {
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 10px;
    width: 1px;
    content: "";
    background: rgba(189, 208, 224, 0.42);
}

.hero__process li {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: var(--ccm-space-4);
    min-height: 68px;
}

.hero__process li > span {
    position: relative;
    z-index: 1;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 1px solid var(--ccm-color-hero-accent);
    background: var(--ccm-color-night);
    font-size: 10px;
}

.hero__process li strong {
    color: var(--ccm-color-surface);
    font-size: clamp(18px, 1.55vw, 22px);
    font-weight: var(--ccm-weight-card);
    line-height: 1.25;
}

/* Photo-free / structure: use a simple architectural alignment diagram to
   carry the visual interest without introducing an unrelated illustration. */
.hero__structure-visual {
    display: grid;
    gap: 12px;
    margin: var(--ccm-space-7) 0 var(--ccm-space-6);
}

.hero__structure-visual span {
    display: block;
    height: 10px;
    border: 1px solid rgba(189, 208, 224, 0.62);
    background: rgba(189, 208, 224, 0.14);
}

.hero__structure-visual span:nth-child(1) {
    width: 100%;
}

.hero__structure-visual span:nth-child(2) {
    width: 78%;
}

.hero__structure-visual span:nth-child(3) {
    width: 54%;
    border-color: var(--ccm-color-hero-accent);
    background: rgba(189, 208, 224, 0.24);
}

.hero__structure-title {
    color: var(--ccm-color-surface);
    font-size: clamp(24px, 2.3vw, 34px);
    font-weight: var(--ccm-weight-section);
    letter-spacing: -0.025em;
    line-height: 1.15;
}

.hero__structure-detail {
    margin-top: var(--ccm-space-5);
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--ccm-text-supporting);
    line-height: 1.65;
}

@media (max-width: 960px) {
    .hero--split-reverse .hero__copy,
    .hero--split-rail .hero__copy,
    .hero--split-window .hero__copy,
    .hero--split-band .hero__copy {
        width: min(50%, 620px);
    }

    .hero--split-window .hero__media {
        right: 32px;
        width: min(43vw, 460px);
    }

    .hero--photo-free-principles .hero__content,
    .hero--photo-free-process .hero__content,
    .hero--photo-free-structure .hero__content {
        gap: var(--ccm-space-7);
    }
}

@media (max-width: 760px) {
    .hero--split-reverse,
    .hero--split-rail,
    .hero--split-window,
    .hero--split-band,
    .hero--photo-free-centered,
    .hero--photo-free-principles,
    .hero--photo-free-process,
    .hero--photo-free-structure {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--split-reverse .hero__content,
    .hero--split-rail .hero__content,
    .hero--split-window .hero__content,
    .hero--split-band .hero__content,
    .hero--photo-free-centered .hero__content,
    .hero--photo-free-principles .hero__content,
    .hero--photo-free-process .hero__content,
    .hero--photo-free-structure .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
        padding-top: 140px;
        padding-bottom: 56px;
    }

    .hero--split-reverse .hero__copy,
    .hero--split-rail .hero__copy,
    .hero--split-window .hero__copy,
    .hero--split-band .hero__copy,
    .hero--photo-free-principles .hero__copy,
    .hero--photo-free-process .hero__copy,
    .hero--photo-free-structure .hero__copy {
        width: 100%;
        max-width: none;
        margin-left: 0;
        padding-block: 0;
        padding-right: 0;
        border-right: 0;
    }

    .hero--split-rail h1 {
        font-size: clamp(32px, 8.7vw, 38px);
    }

    .hero--split-reverse .hero__media,
    .hero--split-rail .hero__media,
    .hero--split-window .hero__media,
    .hero--split-band .hero__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        border: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.16);
        box-shadow: none;
    }

    .hero--split-window .hero__media::after {
        right: 16px;
        bottom: 16px;
        left: 16px;
    }

    .hero--photo-free-centered .hero__copy {
        width: 100%;
        align-items: center;
        text-align: center;
    }

    .hero--photo-free-centered h1 {
        align-self: stretch;
        font-size: clamp(30px, 8vw, 34px);
    }

    .hero--photo-free-centered h1 > span:last-child {
        max-width: 14ch;
        margin-inline: auto;
    }

    .hero--photo-free-centered .hero__summary {
        align-self: stretch;
        width: 32ch;
        max-width: 100%;
        font-size: 15px;
    }

    .hero--photo-free-centered .hero__actions {
        align-items: center;
    }

    .hero__center-proof,
    .hero__principles,
    .hero__process,
    .hero__structure {
        width: 100%;
        max-width: none;
        margin-top: var(--ccm-space-8);
        padding: var(--ccm-space-6) 0 0;
        border-top: 1px solid rgba(189, 208, 224, 0.42);
        border-left: 0;
    }

    .hero__center-proof-kicker {
        text-align: left;
    }

    .hero__center-proof-grid {
        grid-template-columns: 1fr;
    }

    .hero__center-proof-grid > span {
        padding-inline: 0;
    }

    .hero__center-proof-grid > span + span {
        border-top: 1px solid rgba(189, 208, 224, 0.3);
        border-left: 0;
    }

    .hero__principles li {
        padding-block: var(--ccm-space-4);
    }

    .hero__principles li > span:last-child {
        width: 100%;
    }

    .hero__principles small {
        max-width: 260px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero__structure-visual {
        margin-top: var(--ccm-space-6);
    }
}

/* Tablet safeguard: preserve the content-first reading path before the
   two-column compositions become too narrow for an iPad-sized viewport. */
@media (max-width: 900px) {
    .hero--split,
    .hero--inset,
    .hero--split-reverse,
    .hero--split-rail,
    .hero--split-window,
    .hero--split-band,
    .hero--photo-free,
    .hero--photo-free-centered,
    .hero--photo-free-principles,
    .hero--photo-free-process,
    .hero--photo-free-structure {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--split .hero__content,
    .hero--inset .hero__content,
    .hero--split-reverse .hero__content,
    .hero--split-rail .hero__content,
    .hero--split-window .hero__content,
    .hero--split-band .hero__content,
    .hero--photo-free .hero__content,
    .hero--photo-free-centered .hero__content,
    .hero--photo-free-principles .hero__content,
    .hero--photo-free-process .hero__content,
    .hero--photo-free-structure .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
        padding-top: 140px;
        padding-bottom: 56px;
    }

    .hero--split .hero__copy,
    .hero--inset .hero__copy,
    .hero--split-reverse .hero__copy,
    .hero--split-rail .hero__copy,
    .hero--split-window .hero__copy,
    .hero--split-band .hero__copy,
    .hero--photo-free .hero__copy,
    .hero--photo-free-centered .hero__copy,
    .hero--photo-free-principles .hero__copy,
    .hero--photo-free-process .hero__copy,
    .hero--photo-free-structure .hero__copy {
        width: 100%;
        max-width: none;
        margin-left: 0;
        padding-block: 0;
        padding-right: 0;
        border-right: 0;
    }

    .hero--split .hero__media,
    .hero--inset .hero__media,
    .hero--split-reverse .hero__media,
    .hero--split-rail .hero__media,
    .hero--split-window .hero__media,
    .hero--split-band .hero__media {
        position: relative;
        inset: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 16 / 10;
        border: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.16);
        box-shadow: none;
    }

    .hero--inset .hero__media::after,
    .hero--split-window .hero__media::after {
        right: 16px;
        bottom: 16px;
        left: 16px;
    }

    .hero--photo-free-centered .hero__copy {
        align-items: center;
        text-align: center;
    }

    .hero--photo-free-centered h1 {
        align-self: stretch;
        font-size: clamp(32px, 5vw, 42px);
    }

    .hero--photo-free-centered h1 > span:last-child {
        max-width: 14ch;
        margin-inline: auto;
    }

    .hero--photo-free-centered .hero__summary {
        align-self: stretch;
        width: 32ch;
        max-width: 100%;
        font-size: 15px;
    }

    .hero--photo-free-centered .hero__actions {
        align-items: center;
    }

    .hero__center-proof,
    .hero__principles,
    .hero__process,
    .hero__structure {
        width: 100%;
        max-width: none;
        margin-top: var(--ccm-space-8);
        padding: var(--ccm-space-6) 0 0;
        border-top: 1px solid rgba(189, 208, 224, 0.42);
        border-left: 0;
    }

    .hero__center-proof-grid {
        grid-template-columns: 1fr;
    }

    .hero__center-proof-kicker {
        text-align: left;
    }

    .hero__center-proof-grid > span {
        padding-inline: 0;
    }

    .hero__center-proof-grid > span + span {
        border-top: 1px solid rgba(189, 208, 224, 0.3);
        border-left: 0;
    }

    .hero__principles li > span:last-child {
        width: 100%;
    }

    .hero__principles small {
        max-width: 260px;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero__structure-visual {
        margin-top: var(--ccm-space-6);
    }

    .hero--split h1,
    .hero--inset h1,
    .hero--split-reverse h1,
    .hero--split-rail h1,
    .hero--split-window h1,
    .hero--split-band h1,
    .hero--photo-free h1,
    .hero--photo-free-principles h1,
    .hero--photo-free-process h1,
    .hero--photo-free-structure h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(32px, 5vw, 42px);
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero--split h1 > span,
    .hero--inset h1 > span,
    .hero--split-reverse h1 > span,
    .hero--split-rail h1 > span,
    .hero--split-window h1 > span,
    .hero--split-band h1 > span,
    .hero--photo-free h1 > span,
    .hero--photo-free-principles h1 > span,
    .hero--photo-free-process h1 > span,
    .hero--photo-free-structure h1 > span {
        display: block;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero--split .hero__mobile-break,
    .hero--inset .hero__mobile-break,
    .hero--split-reverse .hero__mobile-break,
    .hero--split-rail .hero__mobile-break,
    .hero--split-window .hero__mobile-break,
    .hero--split-band .hero__mobile-break,
    .hero--photo-free .hero__mobile-break,
    .hero--photo-free-centered .hero__mobile-break,
    .hero--photo-free-principles .hero__mobile-break,
    .hero--photo-free-process .hero__mobile-break,
    .hero--photo-free-structure .hero__mobile-break {
        display: inline;
    }

    .hero--split .hero__eyebrow,
    .hero--inset .hero__eyebrow,
    .hero--split-reverse .hero__eyebrow,
    .hero--split-rail .hero__eyebrow,
    .hero--split-window .hero__eyebrow,
    .hero--split-band .hero__eyebrow,
    .hero--photo-free .hero__eyebrow,
    .hero--photo-free-centered .hero__eyebrow,
    .hero--photo-free-principles .hero__eyebrow,
    .hero--photo-free-process .hero__eyebrow,
    .hero--photo-free-structure .hero__eyebrow,
    .hero--split .hero__summary,
    .hero--inset .hero__summary,
    .hero--split-reverse .hero__summary,
    .hero--split-rail .hero__summary,
    .hero--split-window .hero__summary,
    .hero--split-band .hero__summary,
    .hero--photo-free .hero__summary,
    .hero--photo-free-centered .hero__summary,
    .hero--photo-free-principles .hero__summary,
    .hero--photo-free-process .hero__summary,
    .hero--photo-free-structure .hero__summary {
        width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero--split .hero__actions,
    .hero--inset .hero__actions,
    .hero--split-reverse .hero__actions,
    .hero--split-rail .hero__actions,
    .hero--split-window .hero__actions,
    .hero--split-band .hero__actions,
    .hero--photo-free .hero__actions,
    .hero--photo-free-centered .hero__actions,
    .hero--photo-free-principles .hero__actions,
    .hero--photo-free-process .hero__actions,
    .hero--photo-free-structure .hero__actions {
        width: 100%;
        align-items: flex-start;
        flex-direction: column;
    }

    .hero--split .hero__text-link,
    .hero--inset .hero__text-link,
    .hero--split-reverse .hero__text-link,
    .hero--split-rail .hero__text-link,
    .hero--split-window .hero__text-link,
    .hero--split-band .hero__text-link,
    .hero--photo-free .hero__text-link,
    .hero--photo-free-centered .hero__text-link,
    .hero--photo-free-principles .hero__text-link,
    .hero--photo-free-process .hero__text-link,
    .hero--photo-free-structure .hero__text-link {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero--photo-free-centered .hero__actions {
        align-items: center;
    }
}

/* Photo-free centered follow-up: keep the hero focused, then explain the
   operating principles in a separate, scannable section. */
.approach-section {
    background: var(--ccm-color-section-soft);
}

.approach-section__heading {
    margin-bottom: clamp(40px, 5vw, 64px);
}

.approach-section__heading h2 {
    max-width: 17ch;
}

.approach-section__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(28px, 4vw, 64px);
    margin: 0 auto;
    padding: var(--ccm-space-6) 0 0;
    border-top: 1px solid rgba(49, 65, 86, 0.2);
    list-style: none;
}

.approach-section__list li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: var(--ccm-space-4);
    align-items: start;
}

.approach-section__number {
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-xs);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: 0.08em;
    line-height: 1.35;
}

.approach-section__list li > span:last-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: var(--ccm-space-2);
}

.approach-section__list strong {
    color: var(--ccm-color-ink);
    font-size: var(--ccm-text-card-title);
    font-weight: var(--ccm-weight-card);
    line-height: 1.3;
}

.approach-section__list small {
    max-width: 30ch;
    color: var(--ccm-color-text-muted);
    font-size: var(--ccm-text-body);
    line-height: 1.55;
}

@media (max-width: 760px) {
    .approach-section__heading {
        margin-bottom: var(--ccm-space-7);
    }

    .approach-section__list {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .approach-section__list li {
        padding-block: var(--ccm-space-5);
        border-bottom: 1px solid rgba(49, 65, 86, 0.16);
    }

    .approach-section__list li:first-child {
        padding-top: 0;
    }

    .approach-section__list li:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }
}

/* Dark two-column direction: the hero message stays primary while the
   supporting summary and actions share the same vertical frame. */
.hero--split-proof {
    background: var(--ccm-color-hero-surface);
}

.hero--split-proof::before {
    display: none;
}

.hero--split-proof .hero__content {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.68fr);
    grid-template-rows: minmax(0, 1fr);
    align-items: stretch;
    column-gap: clamp(48px, 8vw, 132px);
    padding-bottom: clamp(132px, 10vw, 160px);
}

.hero--split-proof .hero__copy {
    display: grid;
    width: 100%;
    max-width: none;
    grid-column: 1 / -1;
    grid-row: 1;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.68fr);
    grid-template-rows: auto auto auto;
    align-content: start;
    grid-template-areas:
        "eyebrow ."
        "title summary"
        "title actions";
    align-items: center;
    column-gap: clamp(48px, 8vw, 132px);
    padding-block: clamp(32px, 4vw, 64px);
}

.hero--split-proof .hero__eyebrow {
    grid-area: eyebrow;
    align-self: end;
    margin-bottom: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.hero--split-proof h1 {
    grid-area: title;
    align-self: end;
    margin-bottom: 0;
}

.hero--split-proof .hero__summary {
    grid-area: summary;
    align-self: end;
    width: 100%;
    margin-bottom: var(--ccm-space-5);
}

.hero--split-proof .hero__actions {
    grid-area: actions;
    align-self: end;
    align-items: flex-start;
    flex-direction: column;
    gap: var(--ccm-space-4);
}

@media (max-width: 900px) {
    .hero--split-proof {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--split-proof .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 0;
        padding-top: 140px;
        padding-bottom: 72px;
    }

    .hero--split-proof .hero__copy {
        display: flex;
        width: 100%;
        max-width: none;
        grid-column: auto;
        grid-row: auto;
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        padding-block: 0;
    }

    .hero--split-proof .hero__eyebrow,
    .hero--split-proof h1,
    .hero--split-proof .hero__summary,
    .hero--split-proof .hero__actions {
        width: 100%;
        max-width: 100%;
        grid-area: auto;
        align-self: flex-start;
    }

    .hero--split-proof h1 {
        font-size: clamp(32px, 5vw, 42px);
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero--split-proof h1 > span {
        display: block;
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero--split-proof .hero__mobile-break {
        display: inline;
    }

    .hero--split-proof .hero__summary {
        margin-bottom: var(--ccm-stack-action);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero--split-proof .hero__eyebrow {
        max-width: 28ch;
        align-self: flex-start;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .hero--split-proof .hero__actions {
        align-items: flex-start;
        flex-direction: column;
    }

}

/* Photo-free principles hero: keep the copy and expectations in a flush two-column composition. */
.hero--photo-free-principles .hero__content,
.hero--photo-free-principles-light .hero__content {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
    gap: clamp(48px, 8vw, 132px);
    padding-left: 0;
}

.hero--photo-free-principles h1,
.hero--photo-free-principles-light h1 {
    text-shadow: none;
}

.hero--photo-free-principles .button--slate,
.hero--photo-free-principles-light .button--slate,
.hero--photo-free-logo .button--slate,
.hero--photo-free-logo-light .button--slate {
    color: var(--ccm-color-on-gold);
    background: var(--ccm-color-gold);
    border-color: var(--ccm-color-gold);
}

.hero--photo-free-principles .button--slate:hover,
.hero--photo-free-principles .button--slate:focus-visible,
.hero--photo-free-principles-light .button--slate:hover,
.hero--photo-free-principles-light .button--slate:focus-visible,
.hero--photo-free-logo .button--slate:hover,
.hero--photo-free-logo .button--slate:focus-visible,
.hero--photo-free-logo-light .button--slate:hover,
.hero--photo-free-logo-light .button--slate:focus-visible {
    color: var(--ccm-color-on-gold);
    background: var(--ccm-color-gold-hover);
    border-color: var(--ccm-color-gold-hover);
}

/* Photo-free logo hero: replace the proof panel with a large, restrained
   standalone Cadence mark while keeping the copy as the primary reading path. */
.hero--photo-free-logo,
.hero--photo-free-logo-light {
    height: 100vh;
    height: 100svh;
    min-height: 0;
    max-height: none;
}

/* Keep the logo-led homepage hero viewport-height on normal desktop screens,
   but prevent unusually tall displays from creating an oversized opening. */
@media (min-width: 1121px) and (min-height: 901px) {
    .hero--photo-free-logo,
    .hero--photo-free-logo-light {
        height: 900px;
        min-height: 900px;
        max-height: 900px;
    }

    /* The quick-actions rail overlaps the bottom 132px of the hero. Lift the
       mark by half that overlap so it stays centered in the visible stage. */
    .hero--photo-free-logo .hero__logo-visual,
    .hero--photo-free-logo-light .hero__logo-visual {
        transform: translateY(-66px);
    }
}

.hero--photo-free-logo,
.hero--photo-free-logo-light {
    --hero-background-start: var(--ccm-color-hero-surface);
    --hero-background-end: var(--ccm-color-hero-surface);
    --hero-logo-fill-start: #0a1524;
    --hero-logo-fill-end: #1e2c3e;
    --hero-logo-fill-transition: 62%;
}

.hero--photo-free-logo {
    /* Local preview controls: adjust these values to place and size the mark. */
    --hero-logo-overflow: clamp(48px, 5vw, 96px);
    --hero-logo-width: 1120px;
    --hero-logo-x: 88px;
    --hero-logo-y: -207px;
    --hero-logo-scale: 0.88;
    --hero-noise-opacity: 0.1;
    --hero-noise-blend: screen;
    overflow: hidden;
    color: var(--white);
    background: var(--ccm-color-hero-surface);
}

.hero--photo-free-logo::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.34'/%3E%3C/svg%3E");
    background-size: 160px 160px;
    mix-blend-mode: var(--hero-noise-blend, screen);
    opacity: var(--hero-noise-opacity, 0.075);
    pointer-events: none;
}

.hero--photo-free-logo-light {
    color: var(--ccm-color-ink);
    background-color: var(--ccm-color-surface);
    background-image:
        radial-gradient(circle at 78% 42%, rgba(189, 208, 224, 0.52) 0%, rgba(237, 243, 249, 0.58) 36%, rgba(255, 255, 255, 0) 72%),
        linear-gradient(135deg, var(--ccm-color-surface) 0%, var(--ccm-color-section-soft) 62%, rgba(189, 208, 224, 0.42) 100%);
}

.hero--photo-free-logo::before,
.hero--photo-free-logo-light::before {
    display: none;
}

.hero--photo-free-logo .hero__content,
.hero--photo-free-logo-light .hero__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
    align-items: center;
    gap: clamp(48px, 8vw, 112px);
    padding-left: 0;
}

.hero--photo-free-logo .hero__content {
    grid-template-columns: minmax(560px, 0.72fr) minmax(0, 1.28fr);
    gap: 0;
}

.hero--photo-free-logo .hero__copy,
.hero--photo-free-logo-light .hero__copy {
    max-width: 690px;
}

.hero--photo-free-logo-light .hero__eyebrow {
    color: var(--ccm-color-brand-slate) !important;
    text-shadow: none;
}

.hero--photo-free-logo-light h1 {
    color: var(--ccm-color-ink);
    text-shadow: none;
}

.hero--photo-free-logo-light .hero__summary {
    color: rgba(16, 21, 27, 0.72);
    text-shadow: none;
}

.hero--photo-free-logo-light .hero__text-link {
    color: var(--ccm-color-brand-slate);
    border-color: rgba(49, 65, 86, 0.42);
}

.hero--photo-free-logo-light .hero__text-link:hover,
.hero--photo-free-logo-light .hero__text-link:focus-visible {
    color: var(--ccm-color-brand-slate-hover);
    border-color: currentColor;
}

.hero--photo-free-logo h1,
.hero--photo-free-logo-light h1 {
    text-shadow: none;
}

.hero--photo-free-logo .hero__logo-visual,
.hero--photo-free-logo-light .hero__logo-visual {
    display: grid;
    min-width: 0;
    min-height: clamp(420px, 44vw, 600px);
    align-self: stretch;
    place-items: center;
    overflow: hidden;
}

.hero--photo-free-logo .hero__logo-icon,
.hero--photo-free-logo-light .hero__logo-icon {
    position: relative;
    display: block;
    width: min(100%, 500px);
    height: auto;
    aspect-ratio: 54.6 / 66;
}

.hero--photo-free-logo .hero__logo-fill,
.hero--photo-free-logo .hero__logo-outline,
.hero--photo-free-logo .hero__logo-trace,
.hero--photo-free-logo-light .hero__logo-fill,
.hero--photo-free-logo-light .hero__logo-outline,
.hero--photo-free-logo-light .hero__logo-trace {
    position: absolute;
    inset: 0;
    display: block;
    pointer-events: none;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
}

.hero--photo-free-logo .hero__logo-fill,
.hero--photo-free-logo-light .hero__logo-fill {
    /* One continuous diagonal: top-right -> bottom-left. */
    background: linear-gradient(
        to bottom left,
        var(--hero-logo-fill-end) 0%,
        var(--hero-logo-fill-start) var(--hero-logo-fill-transition),
        var(--hero-logo-fill-start) 100%
    );
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -webkit-mask-image: var(--hero-logo-fill-url);
    mask-image: var(--hero-logo-fill-url);
    opacity: 1;
}

.hero--photo-free-logo .hero__logo-outline,
.hero--photo-free-logo-light .hero__logo-outline {
    z-index: 2;
    background: #ffffff;
    filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.98));
    -webkit-mask-image: var(--hero-logo-outline-url);
    mask-image: var(--hero-logo-outline-url);
    animation:
        ccm-hero-logo-outline-reveal 1500ms cubic-bezier(0.2, 0.7, 0.2, 1) 120ms both;
    opacity: 1;
    will-change: clip-path, opacity;
}

.hero--photo-free-logo .hero__logo-trace,
.hero--photo-free-logo-light .hero__logo-trace {
    overflow: hidden;
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 1)) drop-shadow(0 0 15px rgba(255, 255, 255, 0.82));
    mix-blend-mode: screen;
    -webkit-mask-image: var(--hero-logo-outline-url);
    mask-image: var(--hero-logo-outline-url);
}

.hero--photo-free-logo .hero__logo-trace::before,
.hero--photo-free-logo-light .hero__logo-trace::before {
    position: absolute;
    inset: -45%;
    content: "";
    background: conic-gradient(
        from 0deg at 50% 50%,
        transparent 0deg 322deg,
        rgba(255, 255, 255, 0.24) 328deg,
        rgba(255, 255, 255, 0.78) 337deg,
        #ffffff 344deg 351deg,
        rgba(255, 255, 255, 0.92) 357deg,
        transparent 360deg
    );
    animation: ccm-hero-logo-outline-trace 6800ms linear 1700ms infinite;
    transform-origin: center;
    will-change: transform;
}

@keyframes ccm-hero-logo-outline-reveal {
    0% {
        clip-path: inset(100% 100% 0 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0);
        opacity: 1;
    }
}

@keyframes ccm-hero-logo-outline-trace {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero--photo-free-logo .hero__logo-outline,
    .hero--photo-free-logo-light .hero__logo-outline {
        animation: none;
        clip-path: none;
        opacity: 1;
        will-change: auto;
    }

    .hero--photo-free-logo .hero__logo-trace::before,
    .hero--photo-free-logo-light .hero__logo-trace::before {
        animation: none;
        opacity: 0;
        will-change: auto;
    }
}

.hero--photo-free-logo .hero__logo-icon {
    position: absolute;
    top: var(--hero-logo-y);
    left: var(--hero-logo-x);
    width: var(--hero-logo-width);
    max-width: none;
    transform: scale(var(--hero-logo-scale));
    transform-origin: left top;
    cursor: default;
    pointer-events: none;
}

.hero--photo-free-logo-light .hero__logo-icon {
    opacity: 0.18;
}

.hero--photo-free-logo .hero__logo-visual {
    position: relative;
    display: block;
    width: calc(100% + var(--hero-logo-overflow));
    min-height: clamp(420px, 44vw, 600px);
    align-self: stretch;
    justify-self: start;
    overflow: visible;
}

.hero--photo-free-logo .hero__copy,
.hero--photo-free-logo-light .hero__copy {
    position: relative;
    z-index: 3;
}

.hero--photo-free-logo .hero__logo-visual,
.hero--photo-free-logo-light .hero__logo-visual {
    z-index: 1;
}

@media (max-width: 900px) {
    .hero--photo-free-logo,
    .hero--photo-free-logo-light {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--photo-free-logo .hero__content,
    .hero--photo-free-logo-light .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .hero--photo-free-logo h1,
    .hero--photo-free-logo-light h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(32px, 5vw, 42px);
        white-space: normal !important;
        overflow-wrap: anywhere;
    }

    .hero--photo-free-logo .hero__logo-visual,
    .hero--photo-free-logo-light .hero__logo-visual {
        width: 100%;
        min-height: 300px;
        margin-top: var(--ccm-space-4);
    }

    .hero--photo-free-logo .hero__logo-icon,
    .hero--photo-free-logo-light .hero__logo-icon {
        width: min(100%, 250px);
        transform: none;
    }
}

@media (max-width: 900px) {
    .hero--photo-free-logo {
        --hero-logo-width: min(360px, calc(100% + 16px));
        --hero-logo-x: 50%;
        --hero-logo-y: -120px;
        --hero-logo-scale: 1;
    }

    .hero--photo-free-logo .hero__logo-visual {
        width: 100%;
        min-height: 340px;
        margin-top: var(--ccm-space-4);
    }

    .hero--photo-free-logo .hero__logo-icon {
        left: var(--hero-logo-x);
        width: var(--hero-logo-width);
        transform: translateX(-50%) scale(var(--hero-logo-scale));
        transform-origin: center top;
    }
}

/* iPad portrait: keep the logo-led hero intentional without inheriting the
   taller desktop stage. The copy stays first, the mark remains in the back,
   and the two-column quick actions stay within the first viewport. */
@media (min-width: 761px) and (max-width: 900px) and (orientation: portrait) {
    .hero--photo-free-logo,
    .hero--photo-free-logo-light {
        height: clamp(700px, calc(100svh - 160px), 760px);
        min-height: 700px;
        max-height: 760px;
    }

    .hero--photo-free-logo,
    .hero--photo-free-logo-light {
        --hero-logo-width: 680px;
        --hero-logo-x: 90%;
        --hero-logo-y: -304px;
        --hero-logo-scale: 1;
    }

    .hero--photo-free-logo .hero__content,
    .hero--photo-free-logo-light .hero__content {
        padding-top: 138px;
        padding-bottom: 48px;
    }

    .hero--photo-free-logo .hero__logo-visual,
    .hero--photo-free-logo-light .hero__logo-visual {
        min-height: 280px;
        margin-top: 0;
    }

    .hero--photo-free-logo .hero__logo-icon,
    .hero--photo-free-logo-light .hero__logo-icon {
        left: var(--hero-logo-x);
        width: var(--hero-logo-width);
        transform: translateX(-50%) scale(var(--hero-logo-scale));
        transform-origin: center top;
    }

    .quick-actions__grid {
        min-height: 160px;
    }

    .quick-actions__grid > a {
        gap: var(--ccm-space-2);
        padding: 14px var(--ccm-space-4);
    }
}

/* Larger iPad portrait profiles (including 1024px iPad Pro widths) need the
   same compact reading path. Without this rule the logo hero's full svh
   height leaves the copy vertically centered far below the header. */
@media (min-width: 901px) and (max-width: 1120px) and (orientation: portrait) {
    .hero--photo-free-logo,
    .hero--photo-free-logo-light {
        height: clamp(720px, calc(100svh - 560px), 800px);
        min-height: 720px;
        max-height: 800px;
        --hero-logo-width: 680px;
        --hero-logo-x: 90%;
        --hero-logo-y: -360px;
        --hero-logo-scale: 1;
    }

    .hero--photo-free-logo .hero__content,
    .hero--photo-free-logo-light .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding-top: 144px;
        padding-bottom: 48px;
    }

    .hero--photo-free-logo .hero__copy,
    .hero--photo-free-logo-light .hero__copy {
        width: 100%;
        max-width: 740px;
    }

    .hero--photo-free-logo .hero__logo-visual,
    .hero--photo-free-logo-light .hero__logo-visual {
        width: 100%;
        min-height: 330px;
        margin-top: 0;
    }

    .hero--photo-free-logo .hero__logo-icon,
    .hero--photo-free-logo-light .hero__logo-icon {
        left: var(--hero-logo-x);
        width: var(--hero-logo-width);
        transform: translateX(-50%) scale(var(--hero-logo-scale));
        transform-origin: center top;
    }

    .quick-actions__grid {
        min-height: 160px;
    }

    .quick-actions__grid > a {
        gap: var(--ccm-space-2);
        padding: 14px var(--ccm-space-4);
    }
}

/* Give the portrait-iPad copy a little more breathing room below the header
   without moving the fixed-size logo or the quick-action rail. */
@media (min-width: 761px) and (max-width: 1120px) and (orientation: portrait) {
    .hero--photo-free-logo .hero__copy,
    .hero--photo-free-logo-light .hero__copy {
        top: 64px;
    }
}

@media (max-width: 360px) {
    .quick-actions__grid {
        margin-top: -64px;
    }
}

/* Final hero-mark scale and motion: preserve the approved logo geometry while
   keeping it subordinate to the headline at every breakpoint. */
.hero--photo-free-logo {
    --hero-logo-width: clamp(370px, 34vw, 520px);
    --hero-logo-x: 50%;
    --hero-logo-y: 50%;
    --hero-logo-scale: 1;
}

.hero--photo-free-logo .hero__content {
    grid-template-columns: minmax(520px, 1fr) minmax(320px, 0.72fr);
    gap: clamp(44px, 6vw, 96px);
}

.hero--photo-free-logo .hero__logo-visual {
    display: grid;
    width: 100%;
    min-height: max(clamp(360px, 40vw, 520px), calc(var(--hero-logo-width) * 1.21));
    align-self: center;
    justify-self: stretch;
    overflow: hidden;
    place-items: center;
}

.hero--photo-free-logo-light .hero__logo-visual {
    align-self: center;
}

.hero--photo-free-logo .hero__logo-icon {
    position: relative;
    top: auto;
    left: auto;
    width: var(--hero-logo-width);
    max-width: 100%;
    margin: 0 auto;
    transform: none;
}

.hero--photo-free-logo .hero__logo-fill {
    background: var(--ccm-color-brand-slate);
    opacity: 0.22;
}

.hero--photo-free-logo .hero__logo-outline-svg {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    color: var(--ccm-color-gold);
    pointer-events: none;
}

.hero--photo-free-logo .hero__logo-outline-rest-svg {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    /* Keep the complete mark legible without relying on motion. */
    color: var(--ccm-color-hero-accent);
    opacity: 1;
    pointer-events: none;
    animation: none;
}

.hero--photo-free-logo .hero__logo-outline-rest-svg path,
.hero--photo-free-logo .hero__logo-outline-rest-svg polygon {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2px !important;
}

.hero--photo-free-logo .hero__logo-outline-trace-svg {
    position: absolute;
    z-index: 4;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
    color: var(--ccm-color-gold);
    pointer-events: none;
}

.hero--photo-free-logo .hero__logo-outline-trace-svg path,
.hero--photo-free-logo .hero__logo-outline-trace-svg polygon {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.5px !important;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 0.14 0.86;
    stroke-dashoffset: 0;
    opacity: 0;
    animation: ccm-hero-mark-trace 7200ms linear 1700ms infinite both;
}

.hero--photo-free-logo .hero__logo-outline-svg path,
.hero--photo-free-logo .hero__logo-outline-svg polygon {
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.5px !important;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: ccm-hero-mark-draw 1350ms var(--ccm-ease-standard) 120ms forwards;
}

.hero--photo-free-logo .hero__logo-outline-svg polygon {
    animation-delay: 280ms;
}

@keyframes ccm-hero-mark-draw {
    0% {
        opacity: 1;
        stroke-dashoffset: 1;
    }

    82% {
        opacity: 1;
        stroke-dashoffset: 0;
    }

    100% {
        opacity: 1;
        stroke-dashoffset: 0;
    }
}

@keyframes ccm-hero-mark-trace {
    0%,
    8% {
        opacity: 0;
    }

    20%,
    48% {
        opacity: 0.96;
    }

    64%,
    100% {
        opacity: 0;
        stroke-dashoffset: -1;
    }

    to {
        stroke-dashoffset: -1;
    }
}

@media (min-width: 761px) and (max-width: 1120px) and (orientation: portrait) {
    .hero--photo-free-logo {
        height: auto;
        min-height: clamp(680px, 78svh, 760px);
        max-height: none;
        --hero-logo-width: clamp(275px, 36vw, 365px);
    }

    .hero--photo-free-logo .hero__content {
        min-height: inherit;
        gap: var(--ccm-space-5);
        padding-top: clamp(132px, 16vw, 156px);
        padding-bottom: clamp(96px, 12vw, 128px);
    }

    .hero--photo-free-logo .hero__copy {
        top: auto;
    }

    .hero--photo-free-logo .hero__logo-visual {
        min-height: max(clamp(240px, 31vw, 300px), calc(var(--hero-logo-width) * 1.21));
        margin-top: var(--ccm-space-4);
        /* Keep the complete mark above the two-row quick-action rail. */
        transform: translateY(clamp(-100px, -8vw, -64px));
    }

    .hero--photo-free-logo .hero__logo-icon {
        left: auto;
        width: var(--hero-logo-width);
        transform: none;
    }
}

@media (max-width: 760px) {
    .hero--photo-free-logo {
        --hero-logo-width: clamp(170px, 50vw, 230px);
    }

    .hero--photo-free-logo .hero__content {
        gap: var(--ccm-space-5);
    }

    .hero--photo-free-logo .hero__logo-visual {
        min-height: max(clamp(188px, 52vw, 232px), calc(var(--hero-logo-width) * 1.21));
        margin-top: var(--ccm-space-4);
        overflow: hidden;
    }

    .hero--photo-free-logo .hero__logo-icon {
        left: auto;
        width: var(--hero-logo-width);
        transform: none;
    }

    .quick-actions__grid {
        margin-top: -64px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero--photo-free-logo .hero__logo-outline-svg path,
    .hero--photo-free-logo .hero__logo-outline-svg polygon,
    .hero--photo-free-logo-light .hero__logo-outline-svg path,
    .hero--photo-free-logo-light .hero__logo-outline-svg polygon {
        animation: none;
        stroke-dashoffset: 0;
    }

    .hero--photo-free-logo .hero__logo-outline-rest-svg,
    .hero--photo-free-logo-light .hero__logo-outline-rest-svg {
        animation: none;
        opacity: 1;
    }

    .hero--photo-free-logo .hero__logo-outline-svg,
    .hero--photo-free-logo-light .hero__logo-outline-svg {
        animation: none;
        color: var(--ccm-color-gold);
        opacity: 1;
    }

    .hero--photo-free-logo .hero__logo-outline-trace-svg,
    .hero--photo-free-logo-light .hero__logo-outline-trace-svg {
        animation: none;
        opacity: 0;
    }

    .hero--photo-free-logo .hero__logo-outline-trace-svg path,
    .hero--photo-free-logo .hero__logo-outline-trace-svg polygon,
    .hero--photo-free-logo-light .hero__logo-outline-trace-svg path,
    .hero--photo-free-logo-light .hero__logo-outline-trace-svg polygon {
        animation: none;
        stroke-dashoffset: 0;
    }
}

/* Local-only logo placement editor, enabled with ?logo-controls=1. */
.hero-logo-editor {
    position: fixed;
    z-index: 10050;
    right: auto;
    left: 20px;
    bottom: 20px;
    width: min(292px, calc(100vw - 32px));
    padding: 16px;
    color: var(--ccm-color-surface);
    border: 1px solid rgba(189, 208, 224, 0.42);
    background: rgba(10, 14, 19, 0.96);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
    font-size: 12px;
}

.hero-logo-editor__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.hero-logo-editor__title {
    margin: 0;
    color: var(--ccm-color-surface);
    font-size: 13px;
    font-weight: var(--ccm-weight-ui);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-logo-editor__help,
.hero-logo-editor__status {
    margin: 0 0 14px;
    color: rgba(255, 255, 255, 0.68);
    line-height: 1.45;
}

.hero-logo-editor__field {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 12px;
    align-items: center;
    margin-top: 12px;
}

.hero-logo-editor__field label {
    color: var(--ccm-color-brand-slate);
    font-weight: var(--ccm-weight-ui);
}

.hero-logo-editor__field output {
    color: var(--ccm-color-gold);
    font-variant-numeric: tabular-nums;
}

.hero-logo-editor__field input {
    width: 100%;
    grid-column: 1 / -1;
    accent-color: var(--ccm-color-gold);
}

.hero-logo-editor__color {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid rgba(189, 208, 224, 0.2);
}

.hero-logo-editor__color-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.hero-logo-editor__color-heading label {
    color: var(--ccm-color-brand-slate);
    font-weight: var(--ccm-weight-ui);
}

.hero-logo-editor__color-heading output {
    color: var(--ccm-color-gold);
    font-variant-numeric: tabular-nums;
}

.hero-logo-editor__color-inputs {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 8px;
    margin-top: 8px;
}

.hero-logo-editor__color-inputs input[type="color"] {
    width: 42px;
    height: 32px;
    padding: 2px;
    border: 1px solid rgba(189, 208, 224, 0.44);
    background: transparent;
    cursor: pointer;
}

.hero-logo-editor__color-inputs input[type="text"] {
    min-width: 0;
    height: 32px;
    padding: 6px 8px;
    color: var(--ccm-color-surface);
    border: 1px solid rgba(189, 208, 224, 0.44);
    background: rgba(255, 255, 255, 0.06);
    font: inherit;
    font-variant-numeric: tabular-nums;
}

.hero-logo-editor__color-inputs input:focus-visible {
    outline: 2px solid var(--ccm-color-gold);
    outline-offset: 2px;
}

.hero-logo-editor__gradient {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid rgba(189, 208, 224, 0.2);
}

.hero-logo-editor__gradient-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: rgba(255, 255, 255, 0.84);
    font-weight: var(--ccm-weight-ui);
}

.hero-logo-editor__gradient-heading span:last-child {
    color: var(--ccm-color-gold);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hero-logo-editor__gradient-stop {
    margin-top: 12px;
}

.hero-logo-editor__gradient-stop label {
    display: block;
    margin-bottom: 6px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 11px;
}

.hero-logo-editor__tone {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid rgba(189, 208, 224, 0.2);
}

.hero-logo-editor__tone-label {
    display: block;
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.84);
    font-weight: var(--ccm-weight-ui);
}

.hero-logo-editor__tone-options {
    display: flex;
    gap: 8px;
}

.hero-logo-editor__tone-options .hero-logo-editor__button {
    flex: 1 1 0;
}

.hero-logo-editor__tone-options .hero-logo-editor__button.is-active {
    color: var(--ccm-color-ink);
    border-color: var(--ccm-color-gold);
    background: var(--ccm-color-gold);
}

.hero-logo-editor__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.hero-logo-editor__button {
    min-height: 32px;
    padding: 7px 10px;
    color: var(--ccm-color-surface);
    border: 1px solid rgba(189, 208, 224, 0.44);
    background: transparent;
    font-size: 11px;
    font-weight: var(--ccm-weight-ui);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.hero-logo-editor__button:hover,
.hero-logo-editor__button:focus-visible {
    border-color: var(--ccm-color-gold);
    background: rgba(200, 164, 90, 0.16);
}

@media (max-width: 900px) {
    .hero--photo-free-principles,
    .hero--photo-free-principles-light {
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .hero--photo-free-principles .hero__content,
    .hero--photo-free-principles-light .hero__content {
        display: flex;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
}

/* Dark footer system: keep every footer layer on the Cadence navy panel while
   preserving clear hierarchy through quiet borders and light text roles. */
.site-footer {
    color: rgba(255, 255, 255, 0.82);
    background: var(--ccm-color-night-panel);
}

.site-footer .footer-utility,
.site-footer .footer-main,
.site-footer .footer-legal {
    background: var(--ccm-color-night-panel);
}

.site-footer .footer-utility {
    border-top-color: rgba(189, 208, 224, 0.22);
    border-bottom-color: rgba(189, 208, 224, 0.22);
}

.site-footer .footer-legal {
    border-top-color: rgba(189, 208, 224, 0.22);
}

.site-footer .footer-utility__list li + li,
.site-footer .footer-navigation,
.site-footer .footer-nav-group,
.site-footer .footer-bottom__links a + a {
    border-color: rgba(189, 208, 224, 0.22);
}

.site-footer .footer-utility__list a,
.site-footer .footer-nav-group h3,
.site-footer .footer-nav__label,
.site-footer .footer-nav__toggle,
.site-footer .footer-contact h3 {
    color: var(--ccm-color-surface);
}

.site-footer .footer-utility__list a:hover,
.site-footer .footer-utility__list a:focus-visible {
    color: var(--ccm-color-surface);
    background: rgba(255, 255, 255, 0.08);
}

.site-footer .footer-utility__icon,
.site-footer .footer-nav__chevron,
.site-footer .footer-contact__icon {
    color: var(--ccm-color-hero-accent);
}

.site-footer .footer-utility__arrow,
.site-footer .footer-contact__arrow {
    color: var(--ccm-color-gold);
}

/* The resident-services utility stripe is a light-mode panel within the
   otherwise dark footer. Keep its links readable and preserve the card lift
   as a clear white hover state. */
.site-footer .footer-utility {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-section-soft);
    border-top-color: rgba(49, 65, 86, 0.16);
    border-bottom-color: rgba(49, 65, 86, 0.16);
}

.site-footer .footer-utility__list li + li {
    border-color: rgba(49, 65, 86, 0.22);
}

.site-footer .footer-utility__list a {
    color: var(--ccm-color-ink);
}

.site-footer .footer-utility__list a:hover,
.site-footer .footer-utility__list a:focus-visible {
    color: var(--ccm-color-ink);
    background: var(--ccm-color-surface);
}

.site-footer .footer-utility__icon {
    color: var(--ccm-color-brand-slate);
}

.site-footer .footer-utility__arrow {
    color: var(--ccm-color-gold);
}

.site-footer .footer-brand__eyebrow {
    color: var(--ccm-color-hero-accent) !important;
}

.site-footer .footer-brand__statement {
    color: rgba(255, 255, 255, 0.72) !important;
}

.site-footer .footer-nav__panel a,
.site-footer .footer-contact a,
.site-footer .footer-contact p {
    color: rgba(255, 255, 255, 0.72);
}

.site-footer .footer-nav__panel a:hover,
.site-footer .footer-nav__panel a:focus-visible,
.site-footer .footer-contact a:hover,
.site-footer .footer-contact a:focus-visible {
    color: var(--ccm-color-surface);
}

.site-footer .footer-contact__link {
    border-bottom-color: rgba(189, 208, 224, 0.42);
    color: var(--ccm-color-gold) !important;
}

.site-footer .footer-bottom {
    color: rgba(255, 255, 255, 0.62);
}

.site-footer .footer-bottom a {
    color: var(--ccm-color-hero-accent);
}

.site-footer .footer-bottom a:hover,
.site-footer .footer-bottom a:focus-visible {
    color: var(--ccm-color-surface);
}

.site-footer a:focus-visible,
.site-footer .footer-nav__toggle:focus-visible {
    outline-color: var(--ccm-color-gold);
}

/* Let the supplied Who We Serve photography read as a little more than a
   watermark while preserving the calm light-card treatment and text contrast. */
.serve-card::before {
    background: rgba(255, 255, 255, 0.62);
}

.serve-card__media {
    opacity: 0.3;
}

.serve-card:hover::before,
.serve-card:focus-visible::before {
    background: rgba(255, 255, 255, 0.52);
}

.serve-card:hover .serve-card__media,
.serve-card:focus-visible .serve-card__media {
    opacity: 0.42;
}

/* Soften the hard rectangle directly below the homepage banner without
   changing its crop or introducing a decorative frame. */
.intro-section__image {
    overflow: hidden;
    border: 1px solid rgba(49, 65, 86, 0.12);
    border-radius: var(--ccm-radius-photo);
    box-shadow: var(--ccm-shadow-photo);
}

/* Homepage Who We Serve: use an image-led editorial card grid while keeping
   the audience copy and routes supplied by the existing homepage data. */
#who-we-serve .serve-grid--editorial {
    gap: clamp(16px, 1.6vw, 24px);
    border: 0;
    background: transparent;
}

#who-we-serve .serve-card--editorial {
    min-height: 0;
    flex-direction: column;
    border: 0;
    border-radius: var(--ccm-radius-photo);
    background: var(--white);
    box-shadow: var(--ccm-shadow-card);
    color: var(--ccm-color-ink);
    transition: transform 220ms var(--ccm-ease-standard), box-shadow 220ms var(--ccm-ease-standard);
}

#who-we-serve .serve-card--editorial::before,
#who-we-serve .serve-card--editorial::after {
    display: none;
}

#who-we-serve .serve-card--editorial:hover,
#who-we-serve .serve-card--editorial:focus-visible {
    background: var(--white);
    box-shadow: var(--ccm-shadow-card-hover);
    transform: translateY(-3px);
}

#who-we-serve .serve-card--editorial .serve-card__media {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 16 / 7;
    flex: 0 0 auto;
    opacity: 1;
    transform: none;
}

#who-we-serve .serve-card--editorial .serve-card__media img {
    transform: none;
    transition: transform 520ms var(--ccm-ease-standard);
}

#who-we-serve .serve-card--editorial:hover .serve-card__media img,
#who-we-serve .serve-card--editorial:focus-visible .serve-card__media img {
    transform: scale(1.035);
}

#who-we-serve .serve-card--editorial .serve-card__body {
    min-height: 178px;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    padding: 18px 22px 22px;
    background: var(--white);
    text-align: center;
}

#who-we-serve .serve-card--editorial .serve-card__title {
    max-width: none;
    font-size: clamp(17px, 1.15vw, 20px);
    font-weight: var(--ccm-weight-card);
    line-height: 1.25;
}

#who-we-serve .serve-card--editorial .serve-card__description {
    max-width: 34ch;
    color: rgba(16, 21, 27, 0.68);
    font-size: var(--ccm-text-supporting);
    line-height: 1.5;
}

#who-we-serve .serve-card--editorial .serve-card__link {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding: 4px 0;
    border-bottom: 1px solid rgba(49, 65, 86, 0.32);
    color: var(--ccm-color-brand-slate);
    font-size: var(--ccm-text-action);
    font-weight: var(--ccm-weight-ui);
    letter-spacing: var(--ccm-tracking-button);
    line-height: 1.3;
    text-transform: uppercase;
}

#who-we-serve .serve-card--editorial .serve-card__link-icon {
    width: var(--ccm-icon-inline);
    height: var(--ccm-icon-inline);
    flex: 0 0 var(--ccm-icon-inline);
    transition: transform 180ms var(--ccm-ease-standard);
}

#who-we-serve .serve-card--editorial:hover .serve-card__link,
#who-we-serve .serve-card--editorial:focus-visible .serve-card__link {
    border-color: currentColor;
}

#who-we-serve .serve-card--editorial:hover .serve-card__link-icon,
#who-we-serve .serve-card--editorial:focus-visible .serve-card__link-icon {
    transform: translateX(4px);
}

@media (max-width: 1020px) {
    #who-we-serve .serve-grid--editorial {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    #who-we-serve .serve-grid--editorial {
        grid-template-columns: 1fr;
    }

    #who-we-serve .serve-card--editorial .serve-card__media {
        aspect-ratio: 16 / 9;
    }

    #who-we-serve .serve-card--editorial .serve-card__body {
        min-height: 174px;
    }
}

/* Keep the Core Services heading aligned with the homepage editorial heading
   template at tablet and mobile widths. */
@media (max-width: 960px) {
    .services-section__header {
        grid-template-columns: 1fr;
        align-items: start;
        gap: var(--ccm-space-5);
    }

    .services-section__support {
        max-width: 560px;
        justify-self: start;
    }

    .services-section__heading {
        width: 100%;
        max-width: none;
    }

    .services-section__header h2 {
        font-size: 32px;
    }
}

@media (max-width: 600px) {
    .services-section__header h2 {
        font-size: 30px;
    }
}

/* Homepage Who We Serve intro: a slightly longer lift than the global reveal
   gives these image-led cards a clear, calm arrival as the group enters. */
@media (prefers-reduced-motion: no-preference) {
    .reveal-ready #who-we-serve .serve-card--editorial[data-reveal="up"] {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity var(--ccm-motion-reveal) var(--ccm-ease-standard),
            transform var(--ccm-motion-reveal) var(--ccm-ease-standard);
        transition-delay: var(--reveal-delay, 0ms);
    }

    .reveal-ready #who-we-serve .serve-card--editorial[data-reveal="up"].is-visible {
        opacity: 1;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .reveal-ready #who-we-serve .serve-card--editorial[data-reveal="up"] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Homepage Who We Are: make the image part of one composed two-panel card,
   with the current story on the left and the community view on the right. */
.intro-section--who-we-are {
    padding-block: clamp(56px, 7vw, 104px);
    background: var(--ccm-color-surface);
}

.intro-section--who-we-are .intro-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    min-height: clamp(380px, 33vw, 520px);
    align-items: stretch;
    overflow: hidden;
    border: 1px solid rgba(49, 65, 86, 0.12);
    border-radius: var(--ccm-radius-photo);
    background: var(--ccm-color-surface);
    box-shadow: var(--ccm-shadow-photo);
}

.intro-section--who-we-are .intro-section__copy {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    max-width: none;
    min-width: 0;
    justify-content: center;
    padding: clamp(44px, 5.5vw, 84px);
    background: var(--ccm-color-surface);
}

.intro-section--who-we-are .intro-section__copy h2 {
    max-width: 14ch;
    font-size: clamp(36px, 3.2vw, 50px);
}

.intro-section--who-we-are .intro-section__image {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
    aspect-ratio: auto;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--ccm-color-surface-muted);
    box-shadow: none;
}

.intro-section--who-we-are .intro-section__image img,
.intro-section--who-we-are .intro-section__home-image {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: 50% 52%;
}

@media (max-width: 960px) {
    .intro-section--who-we-are .intro-grid {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .intro-section--who-we-are .intro-section__copy {
        grid-column: 1;
        grid-row: 1;
        padding: clamp(40px, 7vw, 64px);
    }

    .intro-section--who-we-are .intro-section__image {
        grid-column: 1;
        grid-row: 2;
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .intro-section--who-we-are .intro-section__image img,
    .intro-section--who-we-are .intro-section__home-image {
        height: auto;
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 560px) {
    .intro-section--who-we-are {
        padding-block: 48px;
    }

    .intro-section--who-we-are .intro-grid {
        border-radius: 12px;
    }

    .intro-section--who-we-are .intro-section__copy {
        padding: 36px 24px 40px;
    }
}

/* Homepage Community Resources: use the darker, individually framed card
   treatment reserved for the site's strongest capability sections. */
.resources-section {
    color: var(--ccm-color-surface);
    background: var(--ccm-color-night-panel);
}

.resources-section .section-heading h2 {
    color: var(--ccm-color-surface);
}

.resources-section .section-heading--split > p {
    color: rgba(255, 255, 255, 0.72);
}

.resources-section .eyebrow {
    color: var(--ccm-color-gold);
}

.resources-section .resource-grid {
    gap: clamp(16px, 2vw, 24px);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.resources-section .resource-grid > li,
.resources-section .resource-grid > li + li,
.resources-section .resource-grid > li:nth-child(even),
.resources-section .resource-grid > li:nth-child(n + 3) {
    border: 0;
}

.resources-section .resource-card {
    min-height: 332px;
    color: var(--ccm-color-surface);
    border: 1px solid rgba(189, 208, 224, 0.28);
    border-top: 3px solid var(--ccm-color-gold);
    border-radius: 0;
    background: rgba(10, 14, 19, 0.34);
    box-shadow: none;
    transition: border-color var(--ccm-motion-fast) var(--ccm-ease-standard),
        background-color var(--ccm-motion-fast) var(--ccm-ease-standard),
        transform var(--ccm-motion-fast) var(--ccm-ease-standard);
}

.resources-section .resource-card:hover,
.resources-section .resource-card:focus-visible {
    color: var(--ccm-color-surface);
    border-color: rgba(189, 208, 224, 0.52);
    border-top-color: var(--ccm-color-gold);
    background: rgba(255, 255, 255, 0.07);
    transform: translateY(-3px);
}

.resources-section .resource-card:focus-visible {
    outline: 3px solid var(--ccm-color-gold);
    outline-offset: 4px;
}

.resources-section .resource-card__content {
    padding: clamp(28px, 3.5vw, 44px);
}

.resources-section .resource-card__icon-frame {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
    margin-bottom: clamp(32px, 3.8vw, 44px);
    color: var(--ccm-color-gold);
    border: 1px solid rgba(200, 164, 90, 0.52);
    background: rgba(200, 164, 90, 0.14);
}

.resources-section .resource-card__icon {
    width: 30px;
    height: 30px;
    color: var(--ccm-color-gold);
}

.resources-section .resource-card__content h3,
.resources-section .resource-card:hover .resource-card__content h3,
.resources-section .resource-card:focus-visible .resource-card__content h3 {
    color: var(--ccm-color-surface);
}

.resources-section .resource-card__content p {
    color: rgba(255, 255, 255, 0.72);
}

.resources-section .resource-card__action {
    padding-bottom: 8px;
    color: var(--ccm-color-gold);
    border-bottom: 1px solid rgba(200, 164, 90, 0.52);
}

@media (prefers-reduced-motion: reduce) {
    .resources-section .resource-card {
        transition: none;
    }

    .resources-section .resource-card:hover,
    .resources-section .resource-card:focus-visible {
        transform: none;
    }
}
