.cpmp-home {
    --cpmp-home-red: #980000;
    --cpmp-home-deep: #560d17;
    --cpmp-home-ink: #232023;
    --cpmp-home-muted: #5e5557;
    --cpmp-home-paper: #faf7f3;
    --cpmp-home-line: #e6ded9;
    --cpmp-home-space: clamp(2rem, 5vw, 3.75rem);
    background: #fff;
    color: var(--cpmp-home-ink);
    font: 16px/1.6 system-ui, sans-serif;
}
.cpmp-home.palette-neutral { --cpmp-home-paper: #f6f6f6; --cpmp-home-line: #dfdfdf; }
.cpmp-home.spacing-compact { --cpmp-home-space: clamp(1.5rem, 3.5vw, 2.5rem); }
.cpmp-home *, .cpmp-home *::before, .cpmp-home *::after { box-sizing: border-box; }
.cpmp-home :is(a, input, button):focus-visible { outline: 3px solid #365a90; outline-offset: 3px; }
.cpmp-home [id] { scroll-margin-top: 7rem; }
.cpmp-home h1, .cpmp-home h2 {
    color: var(--cpmp-home-ink);
    font-family: Georgia, serif;
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: 1.08;
    margin: 0;
}
.cpmp-home h1 { font-size: clamp(2.45rem, 5.25vw, 4.8rem); }
.cpmp-home h2 { font-size: clamp(1.95rem, 3.7vw, 3.35rem); }
.cpmp-home h3 { color: var(--cpmp-home-ink); font: 700 1.22rem/1.28 system-ui, sans-serif; margin: 0; }
.cpmp-home p { color: var(--cpmp-home-muted); margin: .7rem 0 0; }
.cpmp-home a { color: var(--cpmp-home-red); text-underline-offset: .2em; }
.cpmp-home-wrap { width: min(1160px, calc(100% - 64px)); margin-inline: auto; }
.cpmp-home-hero, .cpmp-home-section { padding-block: var(--cpmp-home-space); }
.cpmp-home-hero, .cpmp-home-section-training { background: var(--cpmp-home-paper); }
.cpmp-home-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.cpmp-home .cpmp-home-eyebrow { color: var(--cpmp-home-red); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 1rem; }
.cpmp-home .cpmp-home-intro { max-width: 53ch; margin-top: 1.15rem; }
.cpmp-home-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.45rem; }
.cpmp-home .cpmp-home-button, .cpmp-home .cpmp-verify .cpmp-button {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 45px; padding: .65rem 1rem;
    border: 1px solid var(--cpmp-home-red); border-radius: 5px;
    background: var(--cpmp-home-red); color: #fff;
    font: 700 .9rem/1.35 system-ui, sans-serif; text-decoration: none;
}
.cpmp-home .cpmp-home-button:hover, .cpmp-home .cpmp-verify .cpmp-button:hover { background: var(--cpmp-home-deep); color: #fff; }
.cpmp-home .cpmp-home-button.is-secondary { border-color: #bd9b9a; background: transparent; color: var(--cpmp-home-deep); }
.cpmp-home .cpmp-home-button.is-secondary:hover { background: #f2e5df; }
.cpmp-home .cpmp-home-photo, .cpmp-home-art { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 8px; }
.cpmp-home .crop-top { object-position: center top; }
.cpmp-home .crop-bottom { object-position: center bottom; }
.cpmp-home .crop-left { object-position: left center; }
.cpmp-home .crop-right { object-position: right center; }
.cpmp-home-art {
    display: grid; align-items: end; padding: clamp(1.25rem, 4vw, 2.25rem);
    background: repeating-radial-gradient(circle at 90% 12%, transparent 0 24px, #e7b9aa26 25px 26px, transparent 27px 45px), linear-gradient(145deg,#863c45,#351117);
    color: #fff; font: 500 clamp(2.5rem, 5vw, 5rem)/1 Georgia, serif; letter-spacing: -.06em;
}
.cpmp-home-verification { border-bottom: 1px solid var(--cpmp-home-line); }
.cpmp-home .cpmp-verify {
    max-width: none; margin: 0; padding: clamp(1rem, 4vw, 2rem);
    border: 1px solid var(--cpmp-home-line); border-radius: 8px;
    background: var(--cpmp-home-paper); box-shadow: none;
}
.cpmp-home .cpmp-verify .cpmp-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin-block: 1rem; }
.cpmp-home .cpmp-verify label { display: block; flex: 1 1 230px; max-width: 36rem; margin: 0; font-weight: 700; }
.cpmp-home .cpmp-verify input:not([type=hidden]) { display: block; width: 100%; margin: .3rem 0 0; min-height: 45px; border: 1px solid #a79b99; border-radius: 5px; background: #fff; color: var(--cpmp-home-ink); }
.cpmp-home .cpmp-verify [role=alert] { font-weight: 700; }
.cpmp-home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.cpmp-home-card { padding: clamp(1rem, 3vw, 1.5rem); border: 1px solid var(--cpmp-home-line); border-radius: 8px; background: #fff; overflow-wrap: anywhere; }
.cpmp-home-card a { display: inline-block; margin-top: .7rem; font-weight: 700; }
@media (max-width: 680px) {
    .cpmp-home-wrap { width: calc(100% - 36px); }
    .cpmp-home-hero-grid, .cpmp-home-grid { grid-template-columns: 1fr; }
    .cpmp-home .cpmp-home-photo, .cpmp-home-art { aspect-ratio: 16 / 9; }
}

/* Let the resource titles lead. Group headings remain available to assistive technology. */
.cpmp-home-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.cpmp-home :is(.cpmp-home-section-pathways, .cpmp-home-section-training, .cpmp-home-section-resources, .cpmp-home-section-standards) {
    padding-block: calc(var(--cpmp-home-space) * .6);
}
.cpmp-home h2.cpmp-home-group-label {
    color: var(--cpmp-home-muted);
    font: 700 .78rem/1.4 system-ui, sans-serif;
    letter-spacing: .09em;
    text-transform: uppercase;
    margin-bottom: .85rem;
}
.cpmp-home-grid { margin-top: 0; }
.cpmp-home-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .65rem;
    padding: clamp(1.2rem, 3vw, 2rem);
    border-radius: 14px;
    box-shadow: 0 4px 16px #2e191309;
}
.cpmp-home-card h3 { font: 600 clamp(1.27rem, 2vw, 1.65rem)/1.18 system-ui, sans-serif; letter-spacing: -.025em; }
.cpmp-home .cpmp-home-card p { margin: 0; max-width: 58ch; }
.cpmp-home .cpmp-home-card > a {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 44px;
    margin-top: auto;
    padding-top: .25rem;
    text-decoration: none;
}
.cpmp-home .cpmp-home-card > a:hover { text-decoration: underline; }
.cpmp-home .cpmp-home-card-workshop time { font-weight: 700; color: var(--cpmp-home-deep); }
.cpmp-home .cpmp-home-workshop-meta { font-size: .88rem; }
.cpmp-home-feature {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(1.75rem, 5vw, 4.5rem);
    align-items: center;
}
.cpmp-home-diagnostic {
    margin-top: clamp(2.25rem, 6vw, 4.5rem);
    padding-top: clamp(2rem, 5vw, 3.75rem);
    border-top: 1px solid var(--cpmp-home-line);
}
.cpmp-home-feature-media {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}
.cpmp-home .cpmp-home-feature-photo {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 5 / 4;
    object-fit: cover;
}
.cpmp-home-pathways-art {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 5 / 4;
    overflow: hidden;
    background: radial-gradient(ellipse at 75% 5%, #e4c1b4, transparent 65%), #f2e6df;
}
.cpmp-home-pathways-art span {
    position: absolute;
    width: 39%;
    aspect-ratio: 4 / 5;
    border: 1px solid #bc8d7d;
    border-radius: 48% 48% 5px 5px;
    background: repeating-linear-gradient(to bottom, transparent 0 17px, #a56f622a 18px 19px);
    transform: translateX(-32%) rotate(-10deg);
}
.cpmp-home-pathways-art span + span {
    border-color: #7b3c42;
    background: repeating-linear-gradient(to bottom, #6b2832 0 17px, #a06569 18px 19px);
    transform: translateX(32%) rotate(10deg);
}
.cpmp-home-diagnostic-art {
    display: grid;
    place-items: center;
    min-height: 235px;
    padding: 2rem;
    background: radial-gradient(ellipse at 80% 10%, #954b52, transparent 70%), linear-gradient(145deg, #661e2a, #301116);
}
.cpmp-home-diagnostic-bars {
    display: flex;
    align-items: flex-end;
    gap: clamp(.4rem, 2vw, 1rem);
    width: min(100%, 260px);
    height: 150px;
    padding: .7rem;
    border-bottom: 1px solid #f8d6ca75;
    background: repeating-linear-gradient(to top, transparent 0 36px, #f8d6ca25 36px 37px);
}
.cpmp-home-diagnostic-bars span {
    flex: 1;
    height: 30%;
    border: 1px solid #f9e0d4a0;
    border-radius: 5px 5px 0 0;
    background: #f6d4c76e;
}
.cpmp-home-diagnostic-bars span:nth-child(2) { height: 48%; }
.cpmp-home-diagnostic-bars span:nth-child(3) { height: 68%; background: #f6d4c7a0; }
.cpmp-home-diagnostic-bars span:nth-child(4) { height: 94%; background: #f6d4c7; }
.cpmp-home-feature-copy h3 {
    font-size: clamp(1.55rem, 3vw, 2.5rem);
    letter-spacing: -.035em;
}
.cpmp-home-feature-copy p { max-width: 48ch; }
.cpmp-home-pathway + .cpmp-home-pathway {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--cpmp-home-line);
}
.cpmp-home-pathway .cpmp-home-button { margin-top: .9rem; }

@media (max-width: 680px) {
    .cpmp-home-feature { grid-template-columns: minmax(0, 1fr); gap: 1.35rem; }
    .cpmp-home .cpmp-home-feature-photo, .cpmp-home-pathways-art { aspect-ratio: 16 / 9; }
    .cpmp-home-diagnostic-art { min-height: 0; padding: 1.1rem; }
    .cpmp-home-diagnostic-bars { height: 95px; }
}
@media (prefers-reduced-motion: no-preference) {
    .cpmp-home.motion-subtle .cpmp-home-button { transition: background-color 160ms ease, border-color 160ms ease; }
    .cpmp-home.motion-subtle .cpmp-home-card { transition: border-color 180ms ease, box-shadow 180ms ease; }
    .cpmp-home.motion-subtle .cpmp-home-card:focus-within { border-color: #bd9b9a; box-shadow: 0 7px 22px #2e191316; }
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
    .cpmp-home.motion-subtle .cpmp-home-card:hover { border-color: #bd9b9a; box-shadow: 0 7px 22px #2e191316; }
}

/* Section overrides inherit through the feature and card content. */
.cpmp-home > :is(.cpmp-home-section, .cpmp-home-hero) {
    background-color: var(--cpmp-home-surface, transparent);
}
.cpmp-home > :is(.cpmp-home-hero, .cpmp-home-section-training) {
    background-color: var(--cpmp-home-surface, var(--cpmp-home-paper));
}
.cpmp-home .cpmp-home-card,
.cpmp-home .cpmp-verify {
    background-color: var(--cpmp-home-surface, #fff);
}
.cpmp-home .cpmp-verify {
    background-color: var(--cpmp-home-surface, var(--cpmp-home-paper));
}
.cpmp-home .cpmp-home-button:not(.is-secondary),
.cpmp-home .cpmp-verify .cpmp-button {
    color: var(--cpmp-home-button-text, #fff);
}
.cpmp-home .cpmp-home-button:not(.is-secondary):hover,
.cpmp-home .cpmp-verify .cpmp-button:hover {
    background: var(--cpmp-home-red);
    filter: brightness(.94);
}
.cpmp-home .cpmp-home-button.is-secondary:hover { background: transparent; text-decoration: underline; }
.cpmp-home .cpmp-home-card-workshop time { color: var(--cpmp-home-ink); }
.cpmp-home-custom p { max-width: 65ch; }
@media (min-width: 681px) {
    .cpmp-home-feature.image-right { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); }
    .cpmp-home-feature.image-right .cpmp-home-feature-media { grid-column: 2; grid-row: 1; }
    .cpmp-home-feature.image-right .cpmp-home-feature-copy { grid-column: 1; grid-row: 1; }
}
.cpmp-home .cpmp-verify h2 { color: var(--cpmp-home-ink); }
.cpmp-home .cpmp-verify label { color: var(--cpmp-home-ink); }
