/* CartolaNews Mar Aberto — all rules scoped under .cnma-wrap (section 40).
 * Theme-aware: LIGHT is the default look; DARK only applies when the site's
 * own dark-mode toggle is on (Foxiz stamps body[data-theme="dark"], no page
 * reload) — house pattern shared with cn-f1/cn-nfl. */

.cnma-wrap {
	--cnma-bg: #f4f8fa;
	--cnma-surface: #ffffff;
	--cnma-surface-2: #eef3f7;
	--cnma-text: #1c2430;
	--cnma-text-muted: #5b6b82;
	--cnma-text-faint: #8592a6;
	--cnma-border: rgba(16,24,40,.10);
	--cnma-border-strong: rgba(16,24,40,.18);
	--cnma-shadow: 0 8px 24px rgba(15,23,42,.08);
	--cnma-blue: #144b9b;
	--cnma-blue-light: #7494c4;
	--cnma-blue-lighter: #849cc4;
	--cnma-ocean-deep: #063b5c;
	--cnma-ocean: #087ea4;
	--cnma-cyan: #18bbd1;
	--cnma-green: #07945a;
	--cnma-red: #ef3340;
	--cnma-yellow: #f6a800;
	--cnma-radius: 14px;
	--cnma-radius-sm: 10px;

	display: block;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 20px 56px;
	font-family: "Inter", -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
	color: var(--cnma-text);
	background: var(--cnma-bg);
	/* Hard safety net (section 32/67: nothing may ever cause horizontal scroll) —
	   flex/grid children default to min-width:auto, which lets their own content's
	   intrinsic width force them (and their ancestors) wider than the viewport;
	   this catches any case the explicit min-width:0 resets below miss. */
	overflow-x: hidden;
}
body[data-theme="dark"] .cnma-wrap {
	--cnma-bg: #07172e;
	--cnma-surface: #0b2038;
	--cnma-surface-2: #102943;
	--cnma-text: #ffffff;
	--cnma-text-muted: #9db0c5;
	--cnma-text-faint: #7f93ab;
	--cnma-border: rgba(255,255,255,.10);
	--cnma-border-strong: rgba(255,255,255,.20);
	--cnma-shadow: none;
	--cnma-blue-light: #9db4dd;
}

.cnma-wrap * { box-sizing: border-box; }
.cnma-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.cnma-muted { color: var(--cnma-text-muted); }
.cnma-tag { display: inline-block; padding: 1px 7px; border-radius: 999px; background: var(--cnma-surface-2); color: var(--cnma-text-muted); font-size: 11px; font-weight: 700; margin: 0 6px; }

.cnma-wrap a { color: inherit; text-decoration: none; }
.cnma-wrap :focus-visible { outline: 2px solid var(--cnma-cyan); outline-offset: 2px; }

/* ---------- Buttons ---------- */
.cnma-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 22px; border-radius: 999px; font-weight: 700; font-size: 14.5px; border: 2px solid transparent; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.cnma-btn:hover { transform: translateY(-1px); }
.cnma-btn--primary { background: var(--cnma-cyan); color: #04222f; }
.cnma-btn--primary:hover { background: #33cbdf; }
.cnma-btn--ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.55); backdrop-filter: blur(2px); }
.cnma-btn--ghost:hover { background: rgba(255,255,255,.2); }
.cnma-btn--outline { background: transparent; color: var(--cnma-blue); border-color: var(--cnma-blue-lighter); }
body[data-theme="dark"] .cnma-btn--outline { color: #fff; border-color: var(--cnma-border-strong); }

/* ---------- Section scaffolding ---------- */
.cnma-section { margin-top: 44px; }
.cnma-section-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.cnma-section-head h2 { font-size: 22px; font-weight: 800; color: var(--cnma-blue); margin: 0; }
body[data-theme="dark"] .cnma-section-head h2 { color: #fff; }
.cnma-section-desc { color: var(--cnma-text-muted); margin: 2px 0 0; font-size: 14px; }
.cnma-subheading { font-size: 15px; font-weight: 700; margin: 18px 0 8px; }
.cnma-link-more { color: var(--cnma-blue); font-weight: 700; font-size: 13.5px; white-space: nowrap; }
body[data-theme="dark"] .cnma-link-more { color: var(--cnma-cyan); }

.cnma-empty-state { background: var(--cnma-surface); border: 1px dashed var(--cnma-border-strong); border-radius: var(--cnma-radius); padding: 28px; text-align: center; color: var(--cnma-text-muted); }
.cnma-empty-state p { margin: 0 0 12px; }
.cnma-empty-inline { color: var(--cnma-text-muted); font-size: 14px; margin: 6px 0; }

.cnma-two-col { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: start; }
.cnma-three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: start; }
.cnma-col { min-width: 0; }

/* ---------- Hero (section 8/9) ---------- */
.cnma-hero { position: relative; margin-top: 20px; min-height: 460px; border-radius: 20px; overflow: hidden; display: flex; align-items: flex-end; background: linear-gradient(135deg, var(--cnma-ocean-deep), var(--cnma-ocean) 55%, var(--cnma-cyan)); isolation: isolate; }
.cnma-hero.no-image::before { content: ""; position: absolute; inset: 0; background-image: repeating-linear-gradient(180deg, rgba(255,255,255,.06) 0 2px, transparent 2px 40px); opacity: .5; }
.cnma-hero-media { position: absolute; inset: 0; z-index: 0; }
.cnma-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.cnma-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,26,45,.35) 0%, rgba(4,26,45,.55) 60%, rgba(4,26,45,.85) 100%); z-index: 1; }
.cnma-hero-inner { position: relative; z-index: 2; width: 100%; padding: 40px; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; min-width: 0; }
.cnma-hero-copy { max-width: 640px; min-width: 0; color: #fff; }
.cnma-hero-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; font-weight: 700; opacity: .85; margin: 0 0 6px; }
.cnma-hero-title { font-size: clamp(40px, 6vw, 68px); font-weight: 900; line-height: .95; letter-spacing: -.01em; margin: 0; }
.cnma-hero-subtitle { font-size: clamp(17px, 2vw, 22px); font-weight: 600; margin: 10px 0 6px; }
.cnma-hero-desc { font-size: 15px; max-width: 480px; opacity: .92; margin: 0 0 22px; }
.cnma-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.cnma-conditions-card { position: relative; z-index: 2; flex: 0 0 260px; max-width: 100%; min-width: 0; background: rgba(6,24,41,.72); border: 1px solid rgba(255,255,255,.18); border-radius: var(--cnma-radius); padding: 18px 20px; color: #fff; backdrop-filter: blur(6px); }
.cnma-conditions-card__location { font-weight: 800; font-size: 16px; margin: 0; }
.cnma-conditions-card__freshness { font-size: 12px; opacity: .75; margin: 2px 0 14px; }
.cnma-conditions-card__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; margin: 0; }
.cnma-conditions-card__grid dt { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; opacity: .7; margin: 0; }
.cnma-conditions-card__grid dd { font-size: 17px; font-weight: 800; margin: 2px 0 0; }
.cnma-conditions-card__link { display: inline-block; margin-top: 16px; font-size: 12.5px; font-weight: 700; color: var(--cnma-cyan); }

/* ---------- Live / Agora no Mar ---------- */
.cnma-live-indicator { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 700; color: var(--cnma-green); }
.cnma-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cnma-red); animation: cnma-pulse 1.6s ease-in-out infinite; }
@keyframes cnma-pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }

.cnma-scroller { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.cnma-scroller::-webkit-scrollbar { height: 6px; }
.cnma-scroller::-webkit-scrollbar-thumb { background: var(--cnma-border-strong); border-radius: 6px; }

.cnma-event-card { scroll-snap-align: start; flex: 0 0 260px; background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius); box-shadow: var(--cnma-shadow); padding: 16px; transition: transform .15s ease; }
.cnma-event-card:hover { transform: translateY(-2px); }
.cnma-event-card__sport { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--cnma-blue-light); margin: 10px 0 4px; }
.cnma-event-card__title { font-size: 16px; font-weight: 800; margin: 0 0 4px; }
.cnma-event-card__subtitle, .cnma-event-card__detail { font-size: 13px; color: var(--cnma-text-muted); margin: 0 0 2px; }
.cnma-event-card__time { font-size: 13px; font-weight: 700; margin: 8px 0 0; }

.cnma-status-pill { display: inline-block; padding: 3px 9px; border-radius: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: .03em; }
.cnma-status-pill--live { background: var(--cnma-red); color: #fff; }
.cnma-status-pill--today { background: #e6f4ea; color: var(--cnma-green); }
.cnma-status-pill--tomorrow { background: #fff3de; color: #a15c00; }
.cnma-status-pill--upcoming, .cnma-status-pill--scheduled { background: var(--cnma-surface-2); color: var(--cnma-text-muted); }
.cnma-status-pill--finished { background: var(--cnma-surface-2); color: var(--cnma-text-faint); }
body[data-theme="dark"] .cnma-status-pill--today { background: rgba(7,148,90,.2); color: #4fd394; }
body[data-theme="dark"] .cnma-status-pill--tomorrow { background: rgba(246,168,0,.18); color: var(--cnma-yellow); }

/* ---------- Explore por esporte ---------- */
.cnma-sports-grid { display: grid; grid-template-columns: repeat(8, 1fr); gap: 12px; }
/* min-width:0 overrides the grid item's "automatic minimum size" (which defaults to
   the item's max-content/unwrapped-text width per the CSS Grid spec) — without it,
   multi-word labels like "Canoagem Oceânica" force their 1fr track wider than the
   viewport even though the text visually appears to wrap (section 32/67). */
.cnma-sport-chip { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius-sm); padding: 16px 8px; font-size: 12.5px; font-weight: 700; color: var(--cnma-text); transition: border-color .15s ease, transform .15s ease; min-width: 0; }
.cnma-sport-chip:hover { transform: translateY(-2px); border-color: var(--cnma-blue-lighter); }
.cnma-sport-chip.is-active { border-color: var(--cnma-blue); background: color-mix(in srgb, var(--cnma-blue) 8%, var(--cnma-surface)); }
.cnma-sport-chip__icon { width: 26px; height: 26px; color: var(--cnma-ocean); }
.cnma-sport-chip__icon svg { width: 100%; height: 100%; }

/* ---------- Favorites drawer (section 14) ---------- */
.cnma-favorites-drawer[hidden] { display: none; }
.cnma-favorites-drawer { position: fixed; inset: 0; z-index: 9999; }
.cnma-favorites-drawer__backdrop { position: absolute; inset: 0; background: rgba(6,20,34,.55); }
.cnma-favorites-drawer__panel { position: absolute; top: 0; right: 0; height: 100%; width: min(360px, 92vw); background: var(--cnma-surface); color: var(--cnma-text); padding: 24px; overflow-y: auto; box-shadow: -10px 0 30px rgba(0,0,0,.2); }
.cnma-favorites-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.cnma-favorites-drawer__head h2 { margin: 0; font-size: 18px; }
.cnma-icon-btn { background: none; border: none; font-size: 22px; line-height: 1; cursor: pointer; color: var(--cnma-text-muted); }
.cnma-favorites-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cnma-favorite-toggle { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 10px 12px; border-radius: var(--cnma-radius-sm); border: 1px solid var(--cnma-border); background: var(--cnma-surface); cursor: pointer; font-size: 14px; color: var(--cnma-text); }
.cnma-favorite-toggle__star { color: var(--cnma-yellow); font-size: 16px; }
.cnma-favorite-toggle[aria-pressed="true"] { border-color: var(--cnma-yellow); background: color-mix(in srgb, var(--cnma-yellow) 10%, var(--cnma-surface)); }

/* ---------- Hoje no Mar / Brasil no Mar ---------- */
.cnma-today-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.cnma-today-card { background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius); box-shadow: var(--cnma-shadow); padding: 16px; min-height: 0; min-width: 0; }
.cnma-today-card h3 { margin: 0 0 8px; font-size: 14.5px; }
.cnma-today-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.cnma-today-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px; }

.cnma-athlete-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 4px; }
.cnma-athlete-card { background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius-sm); padding: 12px; text-align: center; min-width: 0; }
.cnma-athlete-card__avatar { font-size: 26px; margin-bottom: 6px; }
.cnma-athlete-card__name { font-weight: 700; font-size: 13px; margin: 0; }
.cnma-athlete-card__modality { font-size: 11.5px; color: var(--cnma-text-muted); margin: 2px 0 0; }
.cnma-athlete-card__rank { font-size: 11px; color: var(--cnma-blue); font-weight: 700; margin: 4px 0 0; }

/* ---------- Tables ---------- */
.cnma-table-wrap { overflow-x: auto; }
.cnma-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.cnma-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--cnma-text-faint); padding: 8px 10px; border-bottom: 1px solid var(--cnma-border-strong); }
.cnma-table td { padding: 10px; border-bottom: 1px solid var(--cnma-border); vertical-align: middle; }
.cnma-table tr.is-brazilian { background: color-mix(in srgb, var(--cnma-green) 6%, transparent); }

/* ---------- Condições do mar ---------- */
.cnma-coastal-panel { position: relative; height: 200px; border-radius: var(--cnma-radius); margin-bottom: 14px; background: linear-gradient(160deg, var(--cnma-ocean-deep), var(--cnma-ocean)); overflow: hidden; }
.cnma-coastal-dot { position: absolute; width: 9px; height: 9px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--cnma-cyan); box-shadow: 0 0 0 4px rgba(24,187,209,.28); }
.cnma-marine-list { display: grid; gap: 10px; }
.cnma-marine-card { background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius-sm); padding: 12px 14px; min-width: 0; }
.cnma-marine-card__name { font-weight: 700; margin: 0 0 6px; }
.cnma-marine-card__row { display: flex; justify-content: space-between; font-size: 13px; padding: 2px 0; color: var(--cnma-text-muted); }
.cnma-marine-card__row strong { color: var(--cnma-text); }
.cnma-marine-card__updated { font-size: 11px; color: var(--cnma-text-faint); margin: 8px 0 0; }

/* ---------- Filters / tabs ---------- */
.cnma-filter-bar { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.cnma-filter-group { display: flex; gap: 6px; flex-wrap: wrap; }
.cnma-filter-btn { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--cnma-border-strong); background: var(--cnma-surface); font-size: 12px; font-weight: 700; color: var(--cnma-text-muted); cursor: pointer; }
.cnma-filter-btn.is-active { background: var(--cnma-blue); border-color: var(--cnma-blue); color: #fff; }

/* ---------- Calendar cards (horizontal strip, section moved above "Explore por esporte") ---------- */
.cnma-calendar-card { scroll-snap-align: start; flex: 0 0 168px; min-width: 0; background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius-sm); box-shadow: var(--cnma-shadow); padding: 10px 12px; }
.cnma-calendar-card__date { font-size: 11px; font-weight: 700; color: var(--cnma-blue); margin: 0 0 5px; }
body[data-theme="dark"] .cnma-calendar-card__date { color: var(--cnma-cyan); }
.cnma-calendar-card__sport { font-size: 8.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; color: var(--cnma-blue-light); margin: 7px 0 3px; }
.cnma-calendar-card__title { font-size: 11px; font-weight: 600; margin: 0 0 4px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cnma-calendar-card__location { font-size: 10px; color: var(--cnma-text-muted); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cnma-calendar-card .cnma-status-pill { font-size: 9px; padding: 2px 7px; }

.cnma-tabs { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--cnma-border-strong); margin-bottom: 14px; }
.cnma-tab { padding: 8px 14px; border: none; background: none; font-size: 13px; font-weight: 700; color: var(--cnma-text-muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.cnma-tab.is-active { color: var(--cnma-blue); border-color: var(--cnma-blue); }
body[data-theme="dark"] .cnma-tab.is-active { color: #fff; border-color: var(--cnma-cyan); }
.cnma-tab-panel { display: none; }
.cnma-tab-panel.is-active { display: block; }

/* ---------- Mar Olímpico ---------- */
.cnma-olympic-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cnma-olympic-card { background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius); box-shadow: var(--cnma-shadow); padding: 20px; min-width: 0; }
.cnma-olympic-card h3 { margin: 0 0 8px; color: var(--cnma-blue); }
body[data-theme="dark"] .cnma-olympic-card h3 { color: #fff; }
.cnma-olympic-card p { font-size: 13.5px; color: var(--cnma-text-muted); margin: 0 0 6px; }
.cnma-olympic-card__detail { font-size: 13px; color: var(--cnma-text-faint); border-top: 1px solid var(--cnma-border); padding-top: 10px; margin-top: 10px !important; }
.cnma-olympic-card__stat { font-weight: 700; color: var(--cnma-text) !important; }

/* ---------- Legends / News ---------- */
.cnma-legend-card { flex: 0 0 160px; scroll-snap-align: start; text-align: center; }
.cnma-legend-card img, .cnma-legend-card__placeholder { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; background: var(--cnma-surface-2); display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 800; color: var(--cnma-blue-light); }
.cnma-legend-card__name { font-weight: 700; font-size: 13.5px; margin: 10px 0 0; }
.cnma-legend-card__meta { font-size: 11.5px; color: var(--cnma-text-muted); margin: 2px 0 6px; }
.cnma-legend-card__credit { font-size: 9px; color: var(--cnma-text-faint); margin: 4px 0 0; }

.cnma-news-list { display: flex; flex-direction: column; gap: 12px; }
.cnma-news-item { display: flex; gap: 12px; background: var(--cnma-surface); border: 1px solid var(--cnma-border); border-radius: var(--cnma-radius-sm); padding: 10px; }
.cnma-news-item img, .cnma-news-item__placeholder { width: 84px; height: 64px; object-fit: cover; border-radius: 8px; flex-shrink: 0; background: var(--cnma-surface-2); }
.cnma-news-item__meta { font-size: 10.5px; font-weight: 700; color: var(--cnma-ocean); text-transform: uppercase; margin: 0 0 3px; }
.cnma-news-item__meta span { color: var(--cnma-text-faint); font-weight: 500; text-transform: none; }
.cnma-news-item__title { font-size: 14px; font-weight: 700; margin: 0 0 3px; line-height: 1.25; }
.cnma-news-item__excerpt { font-size: 12.5px; color: var(--cnma-text-muted); margin: 0; }

/* ---------- CTA ---------- */
.cnma-cta { margin-top: 48px; border-radius: 20px; padding: 40px; text-align: center; color: #fff; background: linear-gradient(120deg, var(--cnma-ocean-deep), var(--cnma-blue)); }
.cnma-cta-inner h2 { margin: 0 0 8px; font-size: 26px; }
.cnma-cta-inner p { margin: 0 0 20px; opacity: .9; }
.cnma-cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- Footer strip ---------- */
.cnma-footer-strip { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--cnma-border); text-align: center; font-size: 12px; color: var(--cnma-text-faint); }
.cnma-footer-strip__sep { margin: 0 6px; }

/* ---------- Responsive (section 32) ---------- */
@media (max-width: 1200px) {
	.cnma-sports-grid { grid-template-columns: repeat(4, 1fr); }
	.cnma-olympic-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}
@media (max-width: 1024px) {
	.cnma-three-col { grid-template-columns: 1fr 1fr; }
	.cnma-three-col > :last-child { grid-column: span 2; }
	.cnma-athlete-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
	.cnma-wrap { padding: 0 14px 40px; }
	.cnma-two-col, .cnma-three-col { grid-template-columns: 1fr; }
	.cnma-three-col > :last-child { grid-column: auto; }
	.cnma-hero { min-height: 520px; }
	.cnma-hero-inner { flex-direction: column; align-items: stretch; padding: 24px; }
	.cnma-conditions-card { flex: none; width: 100%; }
	.cnma-olympic-grid { grid-template-columns: 1fr; }
	.cnma-today-grid { grid-template-columns: 1fr; }
	.cnma-table thead { display: none; }
	.cnma-table--responsive tr { display: block; border-bottom: 1px solid var(--cnma-border-strong); padding: 10px 0; }
	.cnma-table--responsive td { display: flex; justify-content: space-between; gap: 12px; border-bottom: none; padding: 4px 0; }
	.cnma-table--responsive td::before { content: attr(data-label); font-weight: 700; color: var(--cnma-text-faint); font-size: 11px; text-transform: uppercase; }
}
@media (max-width: 480px) {
	.cnma-sports-grid { grid-template-columns: repeat(2, 1fr); }
	.cnma-athlete-grid { grid-template-columns: 1fr 1fr; }
	.cnma-hero-title { font-size: 42px; }
	.cnma-event-card, .cnma-legend-card, .cnma-calendar-card { flex-basis: 76vw; }
}

@media (prefers-reduced-motion: reduce) {
	.cnma-wrap * { animation: none !important; transition: none !important; }
}
