/*
 * The Can Man: "Stars & Stripes" redesign templates (2026).
 * Loaded only on the redesign page templates; Divi's CSS is not loaded there.
 * Brand: the logo's electric blue and red, navy for depth, italic condensed
 * type that echoes the slanted wordmark.
 */

:root {
	--cm-blue: #1419e6;
	--cm-blue-dark: #0f12b8;
	--cm-navy: #0b1742;
	--cm-red: #d3182a;
	--cm-red-dark: #b01222;
	--cm-gold: #ffd400;
	--cm-ink: #101634;
	--cm-muted: #4a5376;
	--cm-line: #e0e4f5;
	--cm-soft: #f3f5ff;
	--cm-paper: #fff;
	--cm-display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
	--cm-body: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cm-gutter: clamp(16px, 4vw, 40px);
}

/* ---------- base (the templates don't load Divi, so reset lightly) ---------- */
.cm *, .cm *::before, .cm *::after { box-sizing: border-box; }
body.cm { margin: 0; background: var(--cm-paper); color: var(--cm-ink); font: 400 17px/1.6 var(--cm-body); -webkit-font-smoothing: antialiased; }
.cm img { max-width: 100%; height: auto; display: block; }
.cm a { color: var(--cm-blue); }
.cm h1, .cm h2, .cm h3 { margin: 0; text-wrap: balance; }
.cm p { margin: 0; }
.cm-in { max-width: 1160px; margin: 0 auto; padding-inline: var(--cm-gutter); }
.cm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cm-skip { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--cm-gold); color: var(--cm-navy); padding: 10px 14px; font-weight: 700; }
.cm-skip:focus { top: 8px; }
.cm :focus-visible { outline: 3px solid var(--cm-gold); outline-offset: 2px; }

.cm-h1, .cm-h2 { font-family: var(--cm-display); font-style: italic; font-weight: 800; text-transform: uppercase; line-height: .98; letter-spacing: -.005em; color: var(--cm-navy); }
.cm-h1 { font-size: clamp(40px, 6vw, 64px); }
.cm-h2 { font-size: clamp(32px, 4.4vw, 48px); }
.cm-kicker { font: 700 13px/1.2 var(--cm-body); letter-spacing: .16em; text-transform: uppercase; color: var(--cm-red); }

/* ---------- buttons ---------- */
.cm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 700 16px/1 var(--cm-body); padding: 14px 20px; border-radius: 6px; border: 2px solid transparent; text-decoration: none; cursor: pointer; transition: background-color .15s, transform .15s; }
.cm-btn--lg { padding: 17px 24px; font-size: 17px; }
.cm .cm-btn--red { background: var(--cm-red); color: #fff; }
.cm .cm-btn--red:hover { background: var(--cm-red-dark); }
.cm .cm-btn--navy { background: var(--cm-navy); color: #fff; }
.cm .cm-btn--navy:hover { background: #050c28; }
.cm-nav__actions .cm-btn { padding: 12px 16px; white-space: nowrap; }
.cm .cm-btn--ghost { border-color: currentColor; color: inherit; background: transparent; }
.cm .cm-btn--ghost:hover { background: rgba(255, 255, 255, .12); }
@media (prefers-reduced-motion: no-preference) { .cm-btn:hover { transform: translateY(-1px); } }
.cm-ctas { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- utility bar + header ---------- */
.cm-util { background: var(--cm-navy); color: #fff; font: 600 13px/1.3 var(--cm-body); }
.cm-util .cm-in { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 18px; padding-block: 8px; }
.cm-util b { color: var(--cm-gold); }
.cm .cm-util__phone { color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
.cm .cm-util__phone:hover { text-decoration: underline; }

.cm-header { position: sticky; top: 0; z-index: 50; background: var(--cm-paper); border-bottom: 1px solid var(--cm-line); }
.admin-bar .cm-header { top: 32px; }
.cm-header__row { display: flex; align-items: center; gap: 20px; padding-block: 10px; }
.cm-header__logo { flex: none; }
.cm-header__logo img { width: 200px; }
.cm-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.cm-nav__list { display: flex; gap: 4px 16px; white-space: nowrap; list-style: none; margin: 0; padding: 0; }
.cm-nav__list a { color: var(--cm-ink); text-decoration: none; font: 600 15px/1.2 var(--cm-body); padding-block: 6px; border-bottom: 2px solid transparent; }
.cm-nav__list a:hover, .cm-nav__list .current-menu-item > a { border-bottom-color: var(--cm-red); }
.cm-nav__actions { display: flex; align-items: center; gap: 14px; }
.cm .cm-phone { display: none; color: var(--cm-navy); font: 700 16px/1 var(--cm-body); text-decoration: none; white-space: nowrap; }
.cm-header__toggle { display: none; margin-left: auto; background: none; border: 0; padding: 10px; cursor: pointer; }
.cm-burger, .cm-burger::before, .cm-burger::after { display: block; width: 26px; height: 3px; background: var(--cm-navy); border-radius: 2px; position: relative; }
.cm-burger::before, .cm-burger::after { content: ""; position: absolute; left: 0; }
.cm-burger::before { top: -8px; }
.cm-burger::after { top: 8px; }

@media (max-width: 1260px) {
	.cm .cm-phone { display: inline; }
	.cm-header__toggle { display: block; }
	.cm-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--cm-paper); border-bottom: 1px solid var(--cm-line); padding: 12px var(--cm-gutter) 20px; flex-direction: column; align-items: stretch; box-shadow: 0 18px 30px -20px rgba(11, 23, 66, .4); }
	.cm-nav.is-open { display: flex; }
	.cm-nav__list { flex-direction: column; gap: 0; }
	.cm-nav__list a { display: block; padding: 12px 0; border-bottom: 1px solid var(--cm-line); }
	.cm-nav__actions { justify-content: space-between; padding-top: 8px; }
}
@media (max-width: 782px) { .admin-bar .cm-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .cm-header { top: 0; } .cm-header__logo img { width: 180px; } }

/* ---------- hero ---------- */
.cm-hero { position: relative; overflow: hidden; background: var(--cm-blue); color: #fff; }
.cm-hero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(-12deg, transparent 0 40px, rgba(255, 255, 255, .06) 40px 80px); }
.cm-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; background: repeating-linear-gradient(90deg, var(--cm-red) 0 64px, #fff 64px 128px); }
.cm-hero__grid { position: relative; display: grid; grid-template-columns: 1.25fr .9fr; gap: 32px; align-items: center; padding-block: 56px 76px; }
.cm-hero .cm-kicker { color: var(--cm-gold); }
.cm-hero__title { margin-top: 14px; font: 900 italic clamp(48px, 7.4vw, 92px)/.9 var(--cm-display); text-transform: uppercase; letter-spacing: -.01em; }
.cm-hero__title em { color: var(--cm-gold); }
.cm-hero__lede { margin-top: 18px; max-width: 46ch; font-size: 19px; opacity: .95; }
.cm-hero .cm-ctas { margin-top: 26px; }
.cm-hero__call { margin-top: 16px; font-size: 16px; opacity: .9; }
.cm .cm-hero__call a { color: #fff; font-weight: 700; }
.cm-hero__mascot { justify-self: center; width: 100%; max-width: 380px; aspect-ratio: 1; border-radius: 50%; background: #fff; display: grid; place-items: center; border: 8px solid var(--cm-red); box-shadow: 0 0 0 8px #fff, 0 30px 60px -20px rgba(0, 0, 0, .45); }
/* The badge JPG has a white margin around its circle; scale it up so the badge fills the frame. */
.cm-hero__mascot { overflow: hidden; }
.cm-hero__mascot img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; transform: scale(1.12); }

/* ---------- trust strip ---------- */
.cm-trust { background: #fff; border-bottom: 1px solid var(--cm-line); }
.cm-trust__list { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-block: 20px; }
.cm-trust__list li { display: flex; gap: 12px; align-items: center; }
.cm-trust__list svg { width: 32px; height: 32px; flex: none; }
.cm-trust__list strong { display: block; font: 800 italic 21px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-trust__list small { display: block; font-size: 14px; line-height: 1.3; color: var(--cm-muted); }
.cm-i-red { fill: var(--cm-red); }
.cm-i-blue { fill: var(--cm-blue); }
.cm-i-navy { fill: var(--cm-navy); }
.cm-i-tick { fill: none; stroke: #fff; stroke-width: 2.4; }

/* ---------- services ---------- */
.cm-services { background: var(--cm-soft); }
.cm-services .cm-in { display: grid; gap: 24px; padding-block: 56px; }
.cm-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cm-card { background: #fff; border: 1px solid var(--cm-line); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; }
.cm-card__top { background: var(--cm-navy); color: #fff; padding: 20px; font: 800 italic 28px/1 var(--cm-display); text-transform: uppercase; }
.cm-card__top small { display: block; margin-bottom: 6px; font: 600 13px/1.2 var(--cm-body); font-style: normal; letter-spacing: .08em; color: var(--cm-gold); }
.cm-card__body { display: flex; flex-direction: column; gap: 14px; flex: 1; padding: 18px 20px 20px; }
.cm-card__body ul { margin: 0; padding-left: 18px; color: var(--cm-muted); }
.cm-card__body li + li { margin-top: 4px; }
.cm .cm-card__go { margin-top: auto; color: var(--cm-red); font-weight: 700; text-decoration: none; }
.cm .cm-card__go:hover { text-decoration: underline; }

/* ---------- who we serve ---------- */
.cm-who { background: #fff; }
.cm-who .cm-in { display: grid; gap: 24px; padding-block: 56px; }
.cm-who__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cm-who__grid > div { background: var(--cm-soft); border-radius: 8px; padding: 20px; border: 1px solid var(--cm-line); }
.cm-who__grid h3 { font: 800 italic 24px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-blue); margin-bottom: 8px; }
.cm-who__grid p { color: var(--cm-muted); font-size: 16px; }

/* ---------- mission (red) ---------- */
.cm-mission { background: var(--cm-red); color: #fff; }
.cm-mission__grid { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; padding-block: 52px; }
.cm-mission__crest { width: 170px; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .25)); }
.cm-mission .cm-h2 { color: #fff; }
.cm-mission p { margin-top: 10px; max-width: 60ch; }
.cm-mission__ctas { display: flex; flex-direction: column; gap: 10px; }
.cm .cm-btn--white { background: #fff; color: var(--cm-red); }
.cm .cm-btn--white:hover { background: #ffe9eb; }

/* ---------- closing CTA (white) ---------- */
.cm-close { background: #fff; color: var(--cm-ink); }
.cm-close__grid { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; padding-block: 52px; }
.cm-close p { margin-top: 8px; color: var(--cm-muted); }
.cm .cm-close p a { color: var(--cm-blue); font-weight: 700; }
.cm .cm-close .cm-btn--ghost { color: var(--cm-navy); }
.cm .cm-close .cm-btn--ghost:hover { background: var(--cm-soft); }

/* ---------- sponsors (blue) ---------- */
.cm-sponsors { background: var(--cm-blue); color: #fff; }
.cm-sponsors__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; text-align: center; gap: 20px 28px; padding-block: 32px; }
.cm-sponsors__title { font: 800 italic 26px/1 var(--cm-display); text-transform: uppercase; color: #fff; }
.cm-sponsor-logo { display: inline-flex; border-radius: 8px; transition: transform .15s ease, opacity .15s ease; }
.cm-sponsor-logo:hover { transform: translateY(-2px); opacity: .92; }
.cm-sponsor-logo:focus-visible { outline: 3px solid var(--cm-gold); outline-offset: 3px; }
.cm-sponsors__row img { height: 84px; width: auto; background: #fff; padding: 10px 14px; border-radius: 8px; box-sizing: content-box; }
.cm .cm-sponsors__link { font-weight: 700; color: #fff; text-decoration: none; border-bottom: 2px solid var(--cm-gold); padding-bottom: 2px; }
.cm .cm-sponsors__link:hover { color: var(--cm-gold); }

/* ---------- footer ---------- */
.cm-footer { background: #070f2e; color: #c9cfe8; font-size: 15px; }
.cm-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1fr; gap: 28px; padding-block: 44px 28px; }
.cm-footer__brand img { width: 120px; margin-bottom: 12px; }
.cm-footer__head { font: 800 italic 20px/1 var(--cm-display); text-transform: uppercase; color: #fff; margin-bottom: 10px; }
.cm-footer address { font-style: normal; }
.cm .cm-footer a { color: #fff; }
.cm-hours { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; }
.cm-hours dt { font-weight: 700; color: #fff; }
.cm-hours dd { margin: 0; }
.cm .cm-footer__legal a { color: inherit; text-decoration: none; }
.cm .cm-footer__legal a:hover { color: #fff; text-decoration: underline; }
.cm-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cm-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; padding-block: 18px 28px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }


/* ---------- inner-page hero ---------- */
.cm-pagehero { position: relative; overflow: hidden; background: var(--cm-blue); color: #fff; }
.cm-pagehero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(-12deg, transparent 0 40px, rgba(255, 255, 255, .06) 40px 80px); }
.cm-pagehero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background: repeating-linear-gradient(90deg, var(--cm-red) 0 64px, #fff 64px 128px); }
.cm-pagehero__grid { position: relative; display: grid; grid-template-columns: 1.4fr .8fr; gap: 32px; align-items: center; padding-block: 48px 64px; }
.cm-pagehero .cm-kicker { color: var(--cm-gold); }
.cm-pagehero__title { margin-top: 12px; font: 900 italic clamp(44px, 6.4vw, 78px)/.92 var(--cm-display); text-transform: uppercase; letter-spacing: -.01em; }
.cm-pagehero__title em { color: var(--cm-gold); }
.cm-pagehero__lede { margin-top: 16px; max-width: 52ch; font-size: 19px; opacity: .95; }
.cm-pagehero .cm-ctas { margin-top: 24px; }
.cm-jump { display: grid; gap: 8px; background: rgba(11, 23, 66, .35); border: 1px solid rgba(255, 255, 255, .25); border-radius: 10px; padding: 14px; }
.cm .cm-jump a { color: #fff; text-decoration: none; font-weight: 700; padding: 10px 12px; border-radius: 6px; display: flex; align-items: center; gap: 10px; }
.cm .cm-jump a::before { content: "★"; color: var(--cm-gold); font-size: 15px; line-height: 1; }
.cm .cm-jump a:hover { background: rgba(255, 255, 255, .12); }

/* ---------- services: feature rows ---------- */
.cm-feature { scroll-margin-top: 90px; }
.cm-feature--soft { background: var(--cm-soft); }
.cm-feature__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: center; padding-block: 60px; }
.cm-feature__grid--flip .cm-feature__art { order: 2; }
.cm-feature__art { justify-self: center; width: 100%; max-width: 420px; }
.cm-feature__art--icon svg { width: 100%; height: auto; display: block; }
.cm-feature__copy { display: grid; gap: 14px; justify-items: start; }
.cm-feature__copy > p:not(.cm-kicker) { color: var(--cm-muted); max-width: 60ch; }
.cm-feature__copy > p.cm-note { font-size: 15px; font-weight: 600; color: var(--cm-navy); }
.cm-plans { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
.cm-plans li { border: 1px solid var(--cm-line); border-left: 5px solid var(--cm-blue); border-radius: 8px; padding: 12px 14px; background: #fff; display: grid; gap: 2px; }
.cm-plans strong { font: 800 italic 21px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-plans span { font-size: 15px; color: var(--cm-muted); line-height: 1.4; }
.cm-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cm-checks li { position: relative; padding-left: 30px; font-weight: 600; }
.cm-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--cm-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E") center/100% no-repeat; }
.cm-checks--light li { color: #fff; }
.cm-checks--light li::before { background-color: var(--cm-gold); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230b1742' stroke-width='2.4'/%3E%3C/svg%3E"); }
.cm-i-soft { fill: #dfe4ff; }
.cm-i-white { fill: #fff; opacity: .55; }
.cm-i-gold { fill: var(--cm-gold); }

/* ---------- services: handyman grid ---------- */
.cm-more-svc { scroll-margin-top: 90px; }
.cm-more-svc .cm-in { display: grid; gap: 10px; padding-block: 60px; }
.cm-svc-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cm-svc-grid article { border: 1px solid var(--cm-line); border-top: 5px solid var(--cm-navy); border-radius: 8px; padding: 20px; display: grid; gap: 8px; align-content: start; }
.cm-svc-grid h3 { font: 800 italic 24px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-svc-grid p { color: var(--cm-muted); }
.cm-svc-grid__cta { background: var(--cm-soft); border-top-color: var(--cm-red) !important; }
.cm-svc-grid__cta .cm-btn { justify-self: start; margin-top: 6px; }

/* ---------- services: business band (navy) ---------- */
.cm-business { background: var(--cm-navy); color: #fff; scroll-margin-top: 90px; }
.cm-business__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 48px; align-items: center; padding-block: 56px; }
.cm-business .cm-kicker { color: var(--cm-gold); }
.cm-business .cm-h2 { color: #fff; margin-top: 8px; }
.cm-business p { margin-top: 10px; opacity: .88; max-width: 52ch; }
.cm-business__cta { grid-column: 1 / -1; }

/* ---------- services: senior discount (red) ---------- */
.cm-senior { background: var(--cm-red); color: #fff; }
.cm-senior__row { display: flex; align-items: center; gap: 28px; padding-block: 36px; }
.cm-senior__big { font: 900 italic clamp(64px, 9vw, 110px)/.85 var(--cm-display); color: #fff; }
.cm-senior__title { font: 800 italic clamp(28px, 3.6vw, 40px)/1 var(--cm-display); text-transform: uppercase; }
.cm-senior p:not(.cm-senior__big) { margin-top: 8px; max-width: 60ch; }

@media (max-width: 980px) {
	.cm-svc-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-pagehero__grid, .cm-feature__grid, .cm-business__grid { grid-template-columns: 1fr; }
	.cm-feature__grid { gap: 28px; padding-block: 44px; }
	.cm-feature__grid--flip .cm-feature__art { order: 0; }
	.cm-feature__art { max-width: 240px; }
}
@media (max-width: 600px) {
	.cm-pagehero__grid { padding-block: 32px 52px; }
	.cm-jump { display: none; }
	.cm-plans, .cm-svc-grid { grid-template-columns: 1fr; }
	.cm-feature__art { max-width: 180px; }
	.cm-more-svc .cm-in, .cm-business__grid { padding-block: 40px; }
	.cm-senior__row { gap: 16px; padding-block: 28px; }
	.cm-feature__copy .cm-btn, .cm-business__cta .cm-btn { width: 100%; }
}

/* ---------- inner-page hero art (crest) ---------- */
.cm-pagehero__art { justify-self: center; width: 100%; max-width: 300px; }
.cm-pagehero__art img { width: 100%; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }

/* ---------- why hire us: reasons ---------- */
.cm-reasons .cm-in { display: grid; gap: 24px; padding-block: 56px; }
.cm-reasons__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cm-reasons__grid > div { border: 1px solid var(--cm-line); border-radius: 8px; padding: 20px; display: grid; gap: 8px; align-content: start; }
.cm-reasons__grid svg { width: 34px; height: 34px; }
.cm-i-cal { fill: #fff; }
.cm-reasons__grid h3 { font: 800 italic 24px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-reasons__grid p { color: var(--cm-muted); font-size: 16px; }

/* ---------- why hire us: how we work (a real sequence, so numbered) ---------- */
.cm-how { background: var(--cm-soft); }
.cm-how .cm-in { display: grid; gap: 28px; padding-block: 56px; }
.cm-timeline { counter-reset: cm-step; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cm-timeline li { counter-increment: cm-step; background: #fff; border: 1px solid var(--cm-line); border-radius: 8px; padding: 20px; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; align-content: start; }
.cm-timeline li::before { content: counter(cm-step); grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 50%; background: var(--cm-red); color: #fff; display: grid; place-items: center; font: 900 italic 24px/1 var(--cm-display); }
.cm-timeline h3 { font: 700 19px/1.25 var(--cm-body); color: var(--cm-navy); align-self: center; }
.cm-timeline p { color: var(--cm-muted); font-size: 16px; }

/* ---------- why hire us: guarantee (navy) ---------- */
.cm-guarantee { background: var(--cm-navy); color: #fff; }
.cm-guarantee__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 32px 48px; align-items: center; padding-block: 56px; }
.cm-guarantee .cm-kicker { color: var(--cm-gold); }
.cm-guarantee .cm-h2 { color: #fff; margin-top: 8px; }
.cm-guarantee__grid > div > p:not(.cm-kicker) { margin-top: 12px; opacity: .9; max-width: 56ch; }
.cm-guarantee__card { background: #fff; color: var(--cm-ink); border-radius: 10px; border-top: 6px solid var(--cm-red); padding: 24px; display: grid; gap: 10px; justify-items: start; }
.cm-guarantee__card h3 { font: 800 italic 26px/1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-guarantee__card p { color: var(--cm-muted); }

@media (max-width: 980px) {
	.cm-reasons__grid { grid-template-columns: 1fr 1fr; }
	.cm-timeline { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-guarantee__grid { grid-template-columns: 1fr; }
	.cm-pagehero__art { max-width: 200px; order: -1; }
}
@media (max-width: 600px) {
	.cm-reasons__grid, .cm-timeline { grid-template-columns: 1fr; }
	.cm-reasons .cm-in, .cm-how .cm-in, .cm-guarantee__grid { padding-block: 40px; }
	.cm-pagehero__art { max-width: 150px; }
}

/* ---------- donor: round hero art (badge) ---------- */
.cm-pagehero__art--round { max-width: 280px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff; border: 7px solid var(--cm-red); box-shadow: 0 0 0 7px #fff, 0 24px 48px -20px rgba(0, 0, 0, .45); }
.cm-pagehero__art--round img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); filter: none; }

/* ---------- donor: give today ---------- */
.cm-give { scroll-margin-top: 90px; }
.cm-give__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; padding-block: 56px; }
.cm-give__copy { display: grid; gap: 12px; }
.cm-give__copy > p:not(.cm-kicker) { color: var(--cm-muted); max-width: 52ch; }
.cm-give__mail { margin-top: 8px; border-left: 5px solid var(--cm-blue); background: var(--cm-soft); border-radius: 0 8px 8px 0; padding: 16px 18px; display: grid; gap: 6px; }
.cm-give__mail h3 { font: 700 18px/1.2 var(--cm-body); color: var(--cm-navy); }
.cm-give__mail p { color: var(--cm-muted); font-size: 15px; }
.cm-give__mail address { font-style: normal; font-weight: 600; }
.cm-amounts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.cm .cm-amount { display: grid; place-items: center; min-height: 84px; border: 2px solid var(--cm-navy); border-radius: 10px; color: var(--cm-navy); text-decoration: none; font: 900 italic 34px/1 var(--cm-display); transition: background-color .15s, color .15s; }
.cm .cm-amount:hover, .cm .cm-amount:focus-visible { background: var(--cm-red); border-color: var(--cm-red); color: #fff; }
.cm .cm-amount:last-of-type { font-size: 22px; text-transform: uppercase; }
.cm-amounts__note { grid-column: 1 / -1; font-size: 14px; color: var(--cm-muted); }

/* ---------- donor: what your support does ---------- */
.cm-difference { background: var(--cm-soft); }
.cm-difference .cm-in { display: grid; gap: 24px; padding-block: 56px; }
.cm-difference__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cm-difference__grid > div { background: #fff; border: 1px solid var(--cm-line); border-top: 5px solid var(--cm-red); border-radius: 8px; padding: 20px; display: grid; gap: 8px; align-content: start; }
.cm-difference__grid h3 { font: 800 italic 24px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-difference__grid p { color: var(--cm-muted); }

/* ---------- donor: sponsor tiers (navy) ---------- */
.cm-tiers { background: var(--cm-navy); color: #fff; scroll-margin-top: 90px; }
.cm-tiers .cm-in { display: grid; gap: 10px; padding-block: 56px; }
.cm-tiers .cm-kicker { color: var(--cm-gold); }
.cm-tiers .cm-h2 { color: #fff; }
.cm-tiers__lede { max-width: 70ch; opacity: .9; }
.cm-tiers__grid { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cm-tier { background: #fff; color: var(--cm-ink); border-radius: 10px; padding: 22px 18px; display: grid; gap: 8px; justify-items: center; text-align: center; border-top: 6px solid var(--cm-tier, var(--cm-blue)); }
/* Tier colours: edge, and the star's three gradient stops (highlight, body, shade). */
.cm-tier--platinum { --cm-tier: #5a6fd0; --cm-star-hi: #e3e9ff; --cm-star-mid: #8a9be6; --cm-star-lo: #3a4aa8; }
.cm-tier--gold { --cm-tier: #d4a017; --cm-star-hi: #fff1a8; --cm-star-mid: #f2c230; --cm-star-lo: #b07f0c; }
.cm-tier--silver { --cm-tier: #9aa0aa; --cm-star-hi: #ffffff; --cm-star-mid: #c9cdd4; --cm-star-lo: #7a808b; }
.cm-tier--bronze { --cm-tier: #b0703b; --cm-star-hi: #f6c79a; --cm-star-mid: #cd8a4e; --cm-star-lo: #8a4f22; }
.cm-tier__star { width: 72px; height: 72px; display: block; }
.cm-star__hi { stop-color: var(--cm-star-hi); }
.cm-star__mid { stop-color: var(--cm-star-mid); }
.cm-star__lo { stop-color: var(--cm-star-lo); }
.cm-star__ring { fill: var(--cm-navy); stroke: var(--cm-tier); stroke-width: 3; }
.cm-star__shape { stroke: var(--cm-star-lo); stroke-width: 1.2; stroke-linejoin: round; }
.cm-tier__name { font: 800 italic 24px/1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-tier__amount { font: 900 italic 36px/1 var(--cm-display); color: var(--cm-blue); }
.cm-tier__amount small { font: 600 14px/1 var(--cm-body); font-style: normal; color: var(--cm-muted); }
.cm-tier .cm-btn { margin-top: 6px; padding: 12px 14px; font-size: 15px; }

/* ---------- donor: current sponsors ---------- */
.cm-current .cm-in { display: grid; gap: 22px; padding-block: 52px; text-align: center; }
.cm-current__grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; }
.cm-current__grid figure { margin: 0; border: 1px solid var(--cm-line); border-radius: 10px; padding: 18px 22px; display: grid; gap: 10px; justify-items: center; }
.cm-current__grid img { height: 110px; width: auto; }
.cm-current__star { width: 56px; height: 56px; display: block; }
.cm-current__grid figcaption { font: 700 13px/1 var(--cm-body); letter-spacing: .12em; text-transform: uppercase; color: var(--cm-muted); }

/* ---------- donor: legacy (red) ---------- */
.cm-legacy { background: var(--cm-red); color: #fff; }
.cm-legacy__grid { display: grid; grid-template-columns: 1fr auto; gap: 24px 40px; align-items: center; padding-block: 48px; }
.cm-legacy .cm-h2 { color: #fff; }
.cm-legacy p { margin-top: 10px; max-width: 64ch; }

@media (max-width: 980px) {
	.cm-tiers__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-give__grid, .cm-legacy__grid { grid-template-columns: 1fr; }
	.cm-difference__grid { grid-template-columns: 1fr; }
	.cm-pagehero__art--round { max-width: 200px; }
}
@media (max-width: 600px) {
	.cm-give__grid, .cm-difference .cm-in, .cm-tiers .cm-in, .cm-current .cm-in { padding-block: 40px; }
	.cm-amounts { grid-template-columns: 1fr 1fr; }
	.cm-tiers__grid { grid-template-columns: 1fr; }
	.cm-pagehero__art--round { max-width: 150px; border-width: 5px; box-shadow: 0 0 0 5px #fff; }
	.cm-legacy .cm-btn { width: 100%; }
}

/* ---------- about: mascot on a white disc ---------- */
.cm-pagehero__art--disc { max-width: 300px; aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff; display: grid; place-items: center; border: 7px solid var(--cm-red); box-shadow: 0 0 0 7px #fff, 0 24px 48px -20px rgba(0, 0, 0, .45); }
/* The mascot image is a 5:4 rectangle on white. A 5:4 box fits inside a circle only up to ~78% of
   its width, and the red border takes some of that, so keep it well inside: 64% leaves every corner clear. */
.cm-pagehero__art--disc img { width: 64%; filter: none; }

/* ---------- about: mission statement ---------- */
.cm-statement .cm-in { padding-block: 64px 56px; display: grid; gap: 16px; justify-items: center; text-align: center; }
.cm-statement .cm-kicker { font: 800 italic clamp(24px, 3vw, 34px)/1.1 var(--cm-display); letter-spacing: .1em; }
.cm-statement__quote { margin: 0; width: 100%; position: relative; }
.cm-statement__quote p { font: 800 italic clamp(30px, 4.2vw, 50px)/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); text-wrap: balance; }
.cm-statement__quote::before { content: "★ ★ ★"; display: block; margin-bottom: 14px; color: var(--cm-red); letter-spacing: .4em; font-size: 18px; }
.cm-statement__goal { max-width: none; font-size: 19px; color: var(--cm-muted); }

/* ---------- about: who we are ---------- */
.cm-whoweare { background: var(--cm-soft); }
.cm-whoweare__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; align-items: center; padding-block: 56px; }
.cm-whoweare__grid > div > p { margin-top: 12px; color: var(--cm-muted); max-width: 60ch; }
.cm-facts { margin: 0; display: grid; gap: 10px; }
.cm-facts > div { background: #fff; border: 1px solid var(--cm-line); border-left: 5px solid var(--cm-red); border-radius: 8px; padding: 12px 16px; }
.cm-facts dt { font: 700 12px/1.2 var(--cm-body); letter-spacing: .12em; text-transform: uppercase; color: var(--cm-muted); }
.cm-facts dd { margin: 4px 0 0; font: 800 italic 21px/1.1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }

/* ---------- about: FAQ ---------- */
.cm-faq { scroll-margin-top: 90px; }
.cm-faq .cm-in { display: grid; gap: 22px; padding-block: 56px; }
.cm-faq__list { display: grid; gap: 10px; max-width: 860px; }
.cm-faq__item { border: 1px solid var(--cm-line); border-radius: 8px; background: #fff; }
.cm-faq__item[open] { border-color: var(--cm-blue); box-shadow: 0 10px 24px -18px rgba(11, 23, 66, .5); }
.cm-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 18px; font: 700 18px/1.3 var(--cm-body); color: var(--cm-navy); }
.cm-faq__item summary::-webkit-details-marker { display: none; }
.cm-faq__item summary::after { content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--cm-soft); color: var(--cm-red); font: 800 20px/1 var(--cm-body); }
.cm-faq__item[open] summary::after { content: "–"; background: var(--cm-red); color: #fff; }
.cm-faq__item summary:focus-visible { outline: 3px solid var(--cm-gold); outline-offset: -3px; border-radius: 8px; }
.cm-faq__item p { padding: 0 18px 18px; color: var(--cm-muted); max-width: 70ch; }
.cm-faq__more { color: var(--cm-muted); }
.cm .cm-faq__more a { font-weight: 700; }

/* ---------- about: review prompt (navy) ---------- */
.cm-review { background: var(--cm-navy); color: #fff; }
.cm-review__grid { display: grid; grid-template-columns: 1fr auto; gap: 20px 40px; align-items: center; padding-block: 48px; }
.cm-review__stars { color: var(--cm-gold); font-size: 26px; letter-spacing: .15em; margin-bottom: 6px; }
.cm-review .cm-h2 { color: #fff; }
.cm-review p { margin-top: 8px; opacity: .9; max-width: 56ch; }

@media (max-width: 820px) {
	.cm-whoweare__grid, .cm-review__grid { grid-template-columns: 1fr; }
	.cm-pagehero__art--disc { max-width: 200px; }
}
@media (max-width: 600px) {
	.cm-statement .cm-in { padding-block: 44px 40px; }
	.cm-whoweare__grid, .cm-faq .cm-in { padding-block: 40px; }
	.cm-faq__item summary { font-size: 17px; padding: 14px 16px; }
	.cm-pagehero__art--disc { max-width: 150px; border-width: 5px; box-shadow: 0 0 0 5px #fff; }
	.cm-review .cm-btn { width: 100%; }
}

/* ---------- short page hero (contact) ---------- */
.cm-pagehero--short .cm-in { position: relative; padding-block: 44px 58px; }
.cm-pagehero--short .cm-pagehero__lede { max-width: 60ch; }

/* ---------- contact ---------- */
.cm-contact { background: var(--cm-soft); }
.cm-contact__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; align-items: start; padding-block: 56px 64px; }
.cm-contact__info { display: grid; gap: 14px; }
.cm-contact__block { background: #fff; border: 1px solid var(--cm-line); border-radius: 10px; padding: 18px 20px; }
.cm-contact__block h2, .cm-contact__start h2 { font: 800 italic 22px/1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); margin-bottom: 8px; }
.cm .cm-contact__phone { font: 900 italic 34px/1 var(--cm-display); color: var(--cm-red); text-decoration: none; }
.cm-contact__block address { font-style: normal; color: var(--cm-muted); }
.cm-contact__hours { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; color: var(--cm-muted); }
.cm-contact__hours dt { font-weight: 700; color: var(--cm-navy); }
.cm-contact__hours dd { margin: 0; }
.cm-contact__start { background: var(--cm-navy); color: #fff; border-radius: 10px; padding: 20px; display: grid; gap: 10px; justify-items: start; }
.cm-contact__start h2 { color: #fff; margin: 0; }
.cm-contact__start p { opacity: .9; }
.cm-contact__form { background: #fff; border: 1px solid var(--cm-line); border-top: 6px solid var(--cm-blue); border-radius: 10px; padding: clamp(20px, 3vw, 32px); min-width: 0; display: grid; gap: 14px; }

@media (max-width: 820px) {
	.cm-contact__grid { grid-template-columns: 1fr; }
	.cm-contact__form { order: -1; }
}
@media (max-width: 600px) {
	.cm-contact__grid { padding-block: 32px 44px; }
	.cm-pagehero--short .cm-in { padding-block: 32px 48px; }
}

/* ---------- blog: post cards ---------- */
.cm-posts { background: var(--cm-soft); }
.cm-posts .cm-in { padding-block: 48px 60px; display: grid; gap: 28px; }
.cm-posts__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cm-post { min-width: 0; }
.cm .cm-post__link { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--cm-line); border-radius: 10px; overflow: hidden; text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
.cm .cm-post__link:hover, .cm .cm-post__link:focus-visible { box-shadow: 0 18px 34px -22px rgba(11, 23, 66, .55); }
@media (prefers-reduced-motion: no-preference) { .cm .cm-post__link:hover { transform: translateY(-2px); } }
/* Most featured images are portrait flyers: show them whole, not cropped. */
.cm-post__media { aspect-ratio: 4 / 3; background: #e9ecf8; display: grid; place-items: center; overflow: hidden; border-bottom: 4px solid var(--cm-red); }
.cm-post__media img { width: 100%; height: 100%; object-fit: contain; }
.cm-post__placeholder { width: 100%; height: 100%; background: var(--cm-blue); color: #fff; display: grid; place-content: center; text-align: center; background-image: repeating-linear-gradient(-12deg, transparent 0 30px, rgba(255, 255, 255, .07) 30px 60px); }
.cm-post__month { font: 900 italic 56px/.9 var(--cm-display); text-transform: uppercase; }
.cm-post__year { font: 700 18px/1.2 var(--cm-body); letter-spacing: .2em; color: var(--cm-gold); }
.cm-post__body { padding: 16px 18px 18px; display: grid; gap: 6px; flex: 1; align-content: start; }
.cm-post__date { font: 700 12px/1.2 var(--cm-body); letter-spacing: .12em; text-transform: uppercase; color: var(--cm-red); }
.cm-post__title { font: 800 italic 23px/1.05 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-post__more { margin-top: 4px; font-weight: 700; color: var(--cm-blue); }
.cm-posts__empty { color: var(--cm-muted); }
.cm-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.cm .cm-pager .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; display: inline-grid; place-items: center; border: 2px solid var(--cm-navy); border-radius: 6px; color: var(--cm-navy); font-weight: 700; text-decoration: none; background: #fff; }
.cm .cm-pager .page-numbers.current { background: var(--cm-navy); color: #fff; }
.cm .cm-pager a.page-numbers:hover { background: var(--cm-red); border-color: var(--cm-red); color: #fff; }
.cm .cm-pager .page-numbers.dots { border-color: transparent; background: transparent; }

/* ---------- blog: support band (red) ---------- */
.cm-support { background: var(--cm-red); color: #fff; }
.cm-support__grid { display: grid; grid-template-columns: 1fr auto; gap: 20px 40px; align-items: center; padding-block: 44px; }
.cm-support .cm-h2 { color: #fff; }
.cm-support p { margin-top: 8px; max-width: 60ch; }

@media (max-width: 980px) {
	.cm-posts__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-support__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cm-posts__grid { grid-template-columns: 1fr; }
	.cm-posts .cm-in { padding-block: 32px 44px; }
}

/* ---------- 404: page not found ---------- */
.cm-404__hero { position: relative; overflow: hidden; background: var(--cm-blue); color: #fff; }
.cm-404__hero::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(-12deg, transparent 0 40px, rgba(255, 255, 255, .06) 40px 80px); }
.cm-404__hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; background: repeating-linear-gradient(90deg, var(--cm-red) 0 64px, #fff 64px 128px); }
.cm-404__grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; padding-block: 64px 84px; }
.cm-404 .cm-kicker { color: var(--cm-gold); }
.cm-404__title { margin-top: 14px; font: 900 italic clamp(46px, 7vw, 88px)/.9 var(--cm-display); text-transform: uppercase; letter-spacing: -.01em; }
.cm-404__title em { color: var(--cm-gold); }
.cm-404__lede { margin-top: 18px; max-width: 48ch; font-size: 19px; opacity: .95; }
.cm-404 .cm-ctas { margin-top: 26px; }
/* "4 (mascot) 4": the mascot disc stands in for the zero. */
.cm-404__art { display: flex; align-items: center; justify-content: center; gap: clamp(6px, 1.5vw, 16px); }
.cm-404__num { font: 900 italic clamp(110px, 16vw, 210px)/.8 var(--cm-display); color: #fff; text-shadow: 0 10px 0 rgba(11, 23, 66, .35); }
.cm-404__disc { width: clamp(130px, 18vw, 230px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; background: #fff; display: grid; place-items: center; border: 7px solid var(--cm-red); box-shadow: 0 0 0 7px #fff, 0 24px 48px -20px rgba(0, 0, 0, .45); flex: none; }
/* Same fit rule as the About Us disc: a 5:4 image at 64% keeps its corners inside the ring. */
.cm-404__disc img { width: 64%; }
@media (prefers-reduced-motion: no-preference) {
	.cm-404__disc { animation: cm-roll-in .9s cubic-bezier(.2, .8, .2, 1) both; }
	@keyframes cm-roll-in { from { transform: translateX(-60px) rotate(-200deg); opacity: 0; } to { transform: none; opacity: 1; } }
}
.cm-404__links { background: var(--cm-soft); }
.cm-404__links .cm-in { padding-block: 48px 60px; display: grid; gap: 20px; }
.cm-404__links-title { font: 800 italic 30px/1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-404__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.cm .cm-404__list a { display: grid; gap: 4px; height: 100%; background: #fff; border: 1px solid var(--cm-line); border-top: 5px solid var(--cm-red); border-radius: 8px; padding: 18px; text-decoration: none; transition: box-shadow .15s; }
.cm .cm-404__list a:hover, .cm .cm-404__list a:focus-visible { box-shadow: 0 16px 30px -20px rgba(11, 23, 66, .55); }
.cm-404__list strong { font: 800 italic 24px/1 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-404__list span { color: var(--cm-muted); font-size: 15px; }

@media (max-width: 980px) {
	.cm-404__list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-404__grid { grid-template-columns: 1fr; padding-block: 36px 64px; }
	.cm-404__art { order: -1; }
}
@media (max-width: 520px) {
	.cm-404__list { grid-template-columns: 1fr; }
	.cm-404__disc { border-width: 5px; box-shadow: 0 0 0 5px #fff; }
}

/* ---------- plans (Sign Up) ---------- */
.cm-plans-jump { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px; }
.cm .cm-plans-jump a { display: inline-flex; align-items: baseline; gap: 8px; background: #fff; color: var(--cm-navy); text-decoration: none; font: 800 italic 22px/1 var(--cm-display); text-transform: uppercase; padding: 12px 16px; border-radius: 8px; border-bottom: 4px solid var(--cm-red); }
.cm .cm-plans-jump a small { font: 600 13px/1 var(--cm-body); font-style: normal; text-transform: none; color: var(--cm-muted); }
.cm .cm-plans-jump a:hover { background: var(--cm-gold); }
.cm-plangroup { scroll-margin-top: 90px; }
.cm-plangroup--commercial { background: var(--cm-soft); }
.cm-plangroup .cm-in { padding-block: 52px; display: grid; gap: 14px; }
.cm-plangroup__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; }
.cm-plangroup__cans { font: 700 13px/1 var(--cm-body); letter-spacing: .12em; text-transform: uppercase; color: #fff; background: var(--cm-red); padding: 7px 10px; border-radius: 4px; }
.cm-plangroup__sub { margin-top: 14px; font: 700 13px/1 var(--cm-body); letter-spacing: .14em; text-transform: uppercase; color: var(--cm-muted); }
.cm-plan-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.cm-plan { background: #fff; border: 1px solid var(--cm-line); border-top: 5px solid var(--cm-blue); border-radius: 10px; padding: 18px; display: flex; flex-direction: column; gap: 6px; }
.cm-plan__tier { font: 700 12px/1.2 var(--cm-body); letter-spacing: .12em; text-transform: uppercase; color: var(--cm-red); }
.cm-plan__name { font: 800 italic 24px/1.02 var(--cm-display); text-transform: uppercase; color: var(--cm-navy); }
.cm-plan__visits { font-weight: 700; color: var(--cm-blue); }
.cm-plan__details { margin: 2px 0 0; padding-left: 18px; color: var(--cm-muted); font-size: 15px; display: grid; gap: 3px; }
/* The card is a flex column, so auto top margin pins the button to the bottom and buttons line up across a row. */
.cm .cm-plan__go { margin-top: auto; align-self: stretch; padding: 13px 14px; }
.cm-subscribe { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.cm-subscribe__item { background: var(--cm-navy); color: #fff; border-radius: 10px; padding: 18px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.cm-subscribe__item h4 { font: 800 italic 22px/1.05 var(--cm-display); text-transform: uppercase; max-width: 22ch; }
.cm-subscribe__item .cm-btn--navy { background: #fff; color: var(--cm-navy); }
.cm-subscribe__item .cm-btn--navy:hover { background: var(--cm-gold); }
.cm-paypal-form { margin: 0; }
.cm-plan-senior { margin-top: 10px; background: #fff4f5; border-left: 5px solid var(--cm-red); border-radius: 0 8px 8px 0; padding: 14px 16px; }
.cm-plan-senior strong { color: var(--cm-red); }
.cm-plan-notes { background: var(--cm-navy); color: #fff; }
.cm-plan-notes__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; padding-block: 48px; align-items: start; }
.cm-plan-notes h2 { font: 800 italic 28px/1 var(--cm-display); text-transform: uppercase; margin-bottom: 10px; }
.cm-plan-notes p { opacity: .9; }
.cm-plan-notes p + p { margin-top: 10px; }
.cm .cm-plan-notes a { color: #fff; font-weight: 700; }
.cm-plan-notes__misc { background: #fff; color: var(--cm-ink); border-radius: 10px; padding: 20px; }
.cm-plan-notes__misc h2 { color: var(--cm-navy); }
.cm-plan-notes__misc p { opacity: 1; color: var(--cm-muted); }
.cm-plan-notes__misc form { display: grid; gap: 10px; margin-top: 12px; }
.cm-plan-notes__label { font: 600 15px/1.2 var(--cm-body); color: var(--cm-navy); }
.cm-plan-notes__misc select { font: 400 16px/1.4 var(--cm-body); padding: 12px 14px; border: 2px solid #cfd5ee; border-radius: 6px; background: #fff; color: var(--cm-ink); }
.cm-plan-notes__misc select:focus { border-color: var(--cm-blue); outline: none; }

@media (max-width: 820px) {
	.cm-plan-notes__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cm-plangroup .cm-in { padding-block: 36px; }
	.cm-subscribe__item .cm-paypal-form, .cm-subscribe__item .cm-btn { width: 100%; }
}

/* ---------- Get Started page ---------- */
.cm-start { background: var(--cm-soft); }
.cm-start__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: start; padding-block: 56px 72px; }
.cm-start__intro { display: grid; gap: 14px; }
.cm-start__intro > p { color: var(--cm-muted); font-size: 18px; }
.cm-start__points { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.cm-start__points li { padding-left: 28px; position: relative; font-weight: 600; }
.cm-start__points li::before { content: "★"; position: absolute; left: 0; color: var(--cm-red); }
.cm .cm-start__call a { font-weight: 700; }
.cm-start__form { background: #fff; border: 1px solid var(--cm-line); border-top: 6px solid var(--cm-blue); border-radius: 10px; padding: clamp(20px, 3vw, 32px); min-width: 0; }
.cm-gate__return { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--cm-line); font-size: 15px; color: var(--cm-muted); }

/* Forminator form (its own "none" style), brought into the brand. */
:is(.cm-start__form, .cm-contact__form) .forminator-ui .forminator-label { font: 600 15px/1.3 var(--cm-body); color: var(--cm-navy); margin-bottom: 6px; display: block; }
:is(.cm-start__form, .cm-contact__form) .forminator-ui input[type="text"],
:is(.cm-start__form, .cm-contact__form) .forminator-ui input[type="email"],
:is(.cm-start__form, .cm-contact__form) .forminator-ui input[type="tel"],
:is(.cm-start__form, .cm-contact__form) .forminator-ui select,
:is(.cm-start__form, .cm-contact__form) .forminator-ui textarea { width: 100%; font: 400 16px/1.4 var(--cm-body); padding: 12px 14px; border: 2px solid #cfd5ee; border-radius: 6px; background: #fff; color: var(--cm-ink); }
:is(.cm-start__form, .cm-contact__form) .forminator-ui input:focus, :is(.cm-start__form, .cm-contact__form) .forminator-ui select:focus, :is(.cm-start__form, .cm-contact__form) .forminator-ui textarea:focus { border-color: var(--cm-blue); outline: none; }
:is(.cm-start__form, .cm-contact__form) .forminator-ui .forminator-row { margin-bottom: 16px; }
:is(.cm-start__form, .cm-contact__form) .forminator-ui .forminator-button-submit { background: var(--cm-red); color: #fff; border: 0; border-radius: 6px; font: 700 17px/1 var(--cm-body); padding: 17px 26px; cursor: pointer; }
:is(.cm-start__form, .cm-contact__form) .forminator-ui .forminator-button-submit:hover { background: var(--cm-red-dark); }
:is(.cm-start__form, .cm-contact__form) .forminator-ui .forminator-error-message { color: var(--cm-red); font-size: 14px; }

/* ---------- responsive ---------- */
@media (max-width: 980px) {
	.cm-trust__list, .cm-who__grid { grid-template-columns: 1fr 1fr; }
	.cm-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
	.cm-hero__grid { grid-template-columns: 1fr; padding-block: 40px 64px; }
	.cm-hero__mascot { max-width: 240px; order: -1; }
	.cm-cards { grid-template-columns: 1fr; }
	.cm-mission__grid, .cm-close__grid, .cm-start__grid { grid-template-columns: 1fr; }
	.cm-mission__crest { width: 120px; }
	.cm-mission__ctas { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 520px) {
	.cm-who__grid, .cm-footer__grid { grid-template-columns: 1fr; }
	.cm-ctas .cm-btn { width: 100%; }
}

/* ---------- phones ---------- */
/* Sticky quick-action bar: Call / Donate / Book Now, always in reach. */
.cm-mobilebar { display: none; }
@media (max-width: 760px) {
	body.cm { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
	.cm-mobilebar { display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--cm-line); box-shadow: 0 -10px 24px -16px rgba(11, 23, 66, .45); }
	.cm .cm-mobilebar a { display: flex; align-items: center; justify-content: center; min-height: 48px; border-radius: 6px; font: 700 16px/1 var(--cm-body); text-decoration: none; }
	.cm .cm-mobilebar__call { color: var(--cm-navy); border: 2px solid var(--cm-navy); }
	.cm .cm-mobilebar__donate { background: var(--cm-navy); color: #fff; }
	.cm .cm-mobilebar__book { background: var(--cm-red); color: #fff; }
	/* The bar carries these, so the menu doesn't need to repeat them. */
	.cm-nav__actions { display: none; }
}
@media (max-width: 600px) {
	.cm-util .cm-in > span:first-child { display: none; }
	.cm-util .cm-in { justify-content: center; }
	.cm-hero__grid { gap: 22px; padding-block: 28px 52px; }
	.cm-hero__mascot { max-width: 170px; border-width: 6px; box-shadow: 0 0 0 6px #fff, 0 20px 40px -18px rgba(0, 0, 0, .45); }
	.cm-hero__title { margin-top: 10px; }
	.cm-hero__lede { font-size: 17px; }
	.cm-trust__list { gap: 14px 12px; padding-block: 18px; }
	.cm-trust__list li { align-items: flex-start; gap: 8px; }
	.cm-trust__list svg { width: 24px; height: 24px; }
	.cm-trust__list strong { font-size: 18px; }
	.cm-trust__list small { font-size: 13px; }
	.cm-who .cm-in, .cm-services .cm-in { padding-block: 40px; }
	.cm-mission__grid, .cm-close__grid { padding-block: 40px; }
	.cm-sponsors__row img { height: 64px; }
}
