
:root {
	--cc-paper: #f6f1e8;
	--cc-paper-light: #fffcf7;
	--cc-ink: #123b63;
	--cc-rust: #c45a2d;
	--cc-green: #5f7c61;
	--cc-gold: #b88a44;
	--cc-stone: #827a70;
	--cc-border: #e5ddd1;
	--cc-radius-sm: 10px;
	--cc-radius-md: 16px;
	--cc-radius-lg: 22px;
	--cc-shadow-soft: 0 8px 28px rgba(46, 37, 24, 0.06);
	--cc-shell-max: 1440px;
	--cc-rail: clamp(240px, 20vw, 300px);
}

body {
	background: var(--cc-paper);
	color: var(--cc-ink);
}

.cc-page-wrap {
	max-width: var(--cc-shell-max);
	margin-inline: auto;
	padding: clamp(1.25rem, 3vw, 3rem);
}

.cc-explorer-shell {
	display: grid;
	grid-template-columns: var(--cc-rail) minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 3.25rem);
	align-items: start;
}

.cc-explorer-rail {
	display: grid;
	gap: 1.25rem;
	position: relative;
}

.cc-explorer-main {
	min-width: 0;
	display: grid;
	gap: 1.5rem;
}

.cc-explorer-intro h1 {
	margin: 0;
	font-size: clamp(3rem, 5vw, 5.6rem);
	letter-spacing: -0.035em;
}

.cc-explorer-intro p {
	max-width: 27ch;
	color: #4f6478;
	font-size: 1rem;
}

.wp-block-group.is-style-cc-surface {
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	box-shadow: var(--cc-shadow-soft);
	padding: clamp(1rem, 2vw, 1.5rem);
}

.wp-block-group.is-style-cc-surface-accent {
	background: var(--cc-paper-light);
	border: 1px solid rgba(196, 90, 45, 0.4);
	border-radius: var(--cc-radius-md);
	box-shadow: var(--cc-shadow-soft);
	padding: clamp(1rem, 2vw, 1.5rem);
}

.wp-block-paragraph.is-style-cc-section-label,
p.is-style-cc-section-label {
	margin: 0 0 0.65rem;
	font-family: var(--wp--preset--font-family--cc-editorial);
	font-size: 1.15rem;
	color: var(--cc-ink);
}

.wp-block-paragraph.is-style-cc-flourish,
p.is-style-cc-flourish {
	width: 2.7rem;
	height: 0.7rem;
	margin: 1rem 0 0;
	overflow: hidden;
	color: transparent;
	position: relative;
}
.wp-block-paragraph.is-style-cc-flourish::before,
p.is-style-cc-flourish::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15rem;
	width: 2.5rem;
	height: 0.55rem;
	border-top: 2px solid var(--cc-rust);
	border-radius: 50%;
	transform: rotate(-2deg);
}

.cc-step-list {
	display: grid;
	gap: 0;
	margin: 0;
}
.cc-step-row {
	display: grid;
	grid-template-columns: 2rem 2rem 1fr;
	gap: 0.65rem;
	align-items: center;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--cc-border);
}
.cc-step-row:last-child {
	border-bottom: 0;
}
.cc-step-number {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	color: white;
	font-weight: 700;
	font-size: 0.8rem;
	background: var(--cc-ink);
}
.cc-step-row:nth-child(2) .cc-step-number { background: var(--cc-green); }
.cc-step-row:nth-child(3) .cc-step-number { background: var(--cc-rust); }
.cc-step-icon {
	font-size: 1.1rem;
	text-align: center;
}
.cc-step-text {
	font-family: var(--wp--preset--font-family--cc-editorial);
	line-height: 1.1;
}

.cc-path-list {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cc-path-list li {
	padding: 0.72rem 0;
	border-bottom: 1px solid var(--cc-border);
	font-size: 0.9rem;
	line-height: 1.35;
}
.cc-path-list li:last-child {
	border-bottom: 0;
}

.cc-choice-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.75rem;
}

.wp-block-group.is-style-cc-choice-tile,
.wp-block-group.is-style-cc-choice-tile-selected {
	min-height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.75rem 1rem;
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-sm);
	box-shadow: 0 4px 16px rgba(46, 37, 24, 0.04);
	text-align: center;
}

.wp-block-group.is-style-cc-choice-tile-selected {
	border-color: var(--cc-rust);
	color: var(--cc-rust);
}

.cc-tag-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.wp-block-group.is-style-cc-tag-chip {
	display: inline-flex;
	width: auto;
	min-height: 36px;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.45rem 0.85rem;
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: 999px;
	font-size: 0.86rem;
}

.cc-placeholder-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}
.cc-placeholder-card {
	min-height: 220px;
	background:
		linear-gradient(to top, rgba(255,252,247,1) 0%, rgba(255,252,247,0.92) 26%, rgba(255,252,247,0) 58%),
		linear-gradient(135deg, #d9e7ea, #eadfc9 60%, #cfb99d);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	padding: 1rem;
	display: flex;
	align-items: flex-end;
	box-shadow: var(--cc-shadow-soft);
}
.cc-placeholder-card h3 {
	margin: 0;
	font-size: 1.25rem;
}

.cc-component-status {
	display: inline-flex;
	gap: 0.45rem;
	align-items: center;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	background: rgba(95, 124, 97, 0.1);
	color: var(--cc-green);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

@media (max-width: 1050px) {
	.cc-explorer-shell {
		grid-template-columns: 1fr;
	}
	.cc-explorer-rail {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.cc-explorer-intro {
		grid-column: 1 / -1;
	}
	.cc-choice-grid,
	.cc-placeholder-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.cc-page-wrap {
		padding: 1rem;
	}
	.cc-explorer-rail {
		grid-template-columns: 1fr;
	}
	.cc-choice-grid,
	.cc-placeholder-grid {
		grid-template-columns: 1fr;
	}
}

/* v0.3.1 — locked card system */
.cc-category-grid,
.cc-story-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.wp-block-cover.is-style-cc-category-card {
	min-height: 280px;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	box-shadow: var(--cc-shadow-soft);
	background: linear-gradient(135deg, #d9e7ea, #eadfc9 60%, #cfb99d);
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__background {
	background: linear-gradient(to top, rgba(255,252,247,.98) 0%, rgba(255,252,247,.9) 24%, rgba(255,252,247,.12) 62%, transparent 78%) !important;
	opacity: 1 !important;
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__inner-container {
	align-self: flex-end;
	width: 100%;
	padding: 1rem;
}

.wp-block-cover.is-style-cc-category-card h3 {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.05;
}

.wp-block-cover.is-style-cc-category-card p {
	margin: .35rem 0 0;
	font-size: .82rem;
	color: #527087;
}

.wp-block-cover.is-style-cc-category-card.cc-is-selected {
	outline: 2px solid var(--cc-rust);
	outline-offset: -2px;
}

.wp-block-cover.is-style-cc-category-card.cc-is-selected::after {
	content: "✓";
	position: absolute;
	top: .7rem;
	right: .7rem;
	width: 1.8rem;
	height: 1.8rem;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: var(--cc-rust);
	color: white;
	font-weight: 700;
	z-index: 2;
}

.wp-block-group.is-style-cc-story-card {
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	box-shadow: var(--cc-shadow-soft);
}

.wp-block-group.is-style-cc-story-card .wp-block-image {
	margin: 0;
}

.wp-block-group.is-style-cc-story-card .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.wp-block-group.is-style-cc-story-card > .wp-block-group {
	padding: .9rem 1rem 1rem;
}

.wp-block-group.is-style-cc-story-card h3 {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.1;
}

.wp-block-group.is-style-cc-story-card p {
	margin: .35rem 0 0;
	font-size: .8rem;
	color: #5f7283;
}

.cc-featured-rail {
	display: grid;
	grid-template-columns: minmax(220px,.8fr) minmax(0,3fr);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	background: var(--cc-paper-light);
	box-shadow: var(--cc-shadow-soft);
}

.cc-featured-rail__intro {
	padding: 1.4rem;
	border-right: 1px solid var(--cc-border);
}

.cc-featured-rail__cards {
	padding: .9rem;
	min-width: 0;
}

@media (max-width: 1050px) {
	.cc-category-grid,
	.cc-story-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.cc-featured-rail { grid-template-columns: 1fr; }
	.cc-featured-rail__intro { border-right: 0; border-bottom: 1px solid var(--cc-border); }
}

@media (max-width: 680px) {
	.cc-category-grid,
	.cc-story-grid { grid-template-columns: 1fr; }
}


/* v0.3.2 — validated Gutenberg compositions */
.cc-category-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.cc-story-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.9rem;
}

.cc-featured-rail {
	display: grid;
	grid-template-columns: minmax(220px, 0.8fr) minmax(0, 3fr);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	background: var(--cc-paper-light);
	box-shadow: var(--cc-shadow-soft);
}

.cc-featured-rail__intro {
	padding: 1.4rem;
	border-right: 1px solid var(--cc-border);
}

.cc-featured-rail__cards {
	padding: 0.9rem;
	min-width: 0;
}

.cc-featured-rail .wp-block-image {
	margin: 0;
}

.cc-story-placeholder {
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, #d8e5e8, #eadfc9 62%, #cdb89d);
}

@media (max-width: 1050px) {
	.cc-featured-rail {
		grid-template-columns: 1fr;
	}
	.cc-featured-rail__intro {
		border-right: 0;
		border-bottom: 1px solid var(--cc-border);
	}
}

@media (max-width: 680px) {
	.cc-story-grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.35rem;
	}
	.cc-story-grid > .wp-block-group {
		min-width: 78vw;
		scroll-snap-align: start;
	}
}


/* v0.4.0 — Topics visual alignment */
.cc-site-header {
	background: var(--cc-paper-light);
	border-bottom: 1px solid var(--cc-border);
}
.cc-site-header__inner {
	min-height: 88px;
	padding-inline: clamp(1rem, 3vw, 2.5rem);
}
.cc-brand {
	gap: .75rem;
}
.cc-brand-mark {
	width: 44px;
	height: 44px;
	border: 1.5px solid var(--cc-ink);
	border-radius: 999px;
	display: grid;
	place-items: center;
	margin: 0;
	font-size: 1.5rem;
}
.cc-site-header .wp-block-site-title {
	font-family: var(--wp--preset--font-family--cc-editorial);
	font-size: clamp(1.35rem, 2vw, 2rem);
	white-space: nowrap;
}
.cc-primary-nav {
	font-family: var(--wp--preset--font-family--cc-editorial);
}
.cc-primary-nav .wp-block-navigation-item__content {
	padding: 1.8rem .55rem 1.55rem;
	border-bottom: 2px solid transparent;
}
.cc-primary-nav .current-menu-item .wp-block-navigation-item__content {
	border-bottom-color: var(--cc-ink);
}
.cc-header-tools {
	gap: .9rem;
	font-size: 1.25rem;
}
.cc-header-tools p { margin: 0; }

.cc-page-wrap {
	max-width: 1480px;
}

.cc-explorer-shell {
	grid-template-columns: clamp(250px, 21vw, 310px) minmax(0, 1fr);
	gap: clamp(1.6rem, 2.5vw, 2.7rem);
}

.cc-explorer-intro h1 {
	font-size: clamp(3.2rem, 5vw, 5.4rem);
}

.cc-category-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.wp-block-cover.is-style-cc-category-card {
	min-height: 250px;
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__inner-container {
	padding: .9rem 1rem 1rem;
}

.wp-block-cover.is-style-cc-category-card h3 {
	font-size: 1.18rem;
}

.wp-block-cover.is-style-cc-category-card p {
	display: none;
}

.cc-choice-grid {
	grid-template-columns: repeat(7, minmax(0, 1fr));
}

.wp-block-group.is-style-cc-choice-tile,
.wp-block-group.is-style-cc-choice-tile-selected {
	min-height: 58px;
	padding: .65rem .75rem;
}

.cc-tag-row {
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	gap: .65rem;
}

.wp-block-group.is-style-cc-tag-chip {
	width: 100%;
	border-radius: var(--cc-radius-sm);
}

.cc-featured-rail {
	grid-template-columns: minmax(230px, .9fr) minmax(0, 4fr);
}

.cc-featured-rail__cards .cc-story-grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.wp-block-group.is-style-cc-story-card .wp-block-image img,
.cc-story-image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
}

.cc-step-list {
	list-style: none;
	padding: 0;
}
.cc-step-list li {
	display: grid;
	grid-template-columns: 2rem 2rem 1fr;
	align-items: center;
	gap: .7rem;
	padding: .85rem 0;
	border-bottom: 1px solid var(--cc-border);
}
.cc-step-list li:last-child { border-bottom: 0; }

.cc-step-list li::before {
	content: counter(list-item);
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	color: #fff;
	background: var(--cc-ink);
	font-size: .8rem;
	font-weight: 700;
}
.cc-step-list li:nth-child(2)::before { background: var(--cc-green); }
.cc-step-list li:nth-child(3)::before { background: var(--cc-rust); }

.cc-path-list-native {
	list-style: none;
	padding: 0;
	margin: 0;
}
.cc-path-list-native li {
	padding: .72rem 0;
	border-bottom: 1px solid var(--cc-border);
	font-size: .87rem;
	line-height: 1.3;
}

@media (max-width: 1150px) {
	.cc-choice-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cc-tag-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cc-featured-rail__cards .cc-story-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.cc-site-header__inner { flex-wrap: wrap; padding-block: .8rem; }
	.cc-primary-nav { order: 3; width: 100%; }
}

@media (max-width: 680px) {
	.cc-choice-grid,
	.cc-tag-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cc-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cc-featured-rail__cards .cc-story-grid {
		display: flex;
		overflow-x: auto;
	}
}


/* v0.4.1 — correction pass */
.cc-site-header__inner {
	min-height: 96px;
	max-width: 1480px;
}

.cc-brand-mark {
	width: 48px;
	height: 48px;
	font-size: 1.65rem;
}

.cc-site-header .wp-block-site-title {
	font-size: clamp(1.55rem, 2.2vw, 2.2rem);
}

.cc-primary-nav .wp-block-navigation-item__content {
	padding-inline: .75rem;
	font-size: 1rem;
}

.cc-explorer-shell {
	grid-template-columns: clamp(265px, 21vw, 320px) minmax(0, 1fr);
}

.cc-step-panel {
	padding: 0.7rem 1rem;
}

.cc-step-row-native {
	display: grid;
	grid-template-columns: 2rem 2rem minmax(0, 1fr);
	gap: .75rem;
	align-items: center;
	padding: .9rem 0;
	border-bottom: 1px solid var(--cc-border);
}

.cc-step-row-native:last-child {
	border-bottom: 0;
}

.cc-step-number-native {
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: var(--cc-ink);
	color: white;
	font-size: .8rem;
	font-weight: 700;
	line-height: 1;
}

.cc-step-row-native:nth-child(2) .cc-step-number-native {
	background: var(--cc-green);
}

.cc-step-row-native:nth-child(3) .cc-step-number-native {
	background: var(--cc-rust);
}

.cc-step-icon-native {
	display: grid;
	place-items: center;
	font-size: 1.05rem;
	color: var(--cc-ink);
}

.cc-step-label-native {
	margin: 0;
	font-family: var(--wp--preset--font-family--cc-editorial);
	font-size: 1rem;
	line-height: 1.1;
	white-space: nowrap;
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__background {
	background: linear-gradient(
		to top,
		rgba(255,252,247,.94) 0%,
		rgba(255,252,247,.78) 18%,
		rgba(255,252,247,.08) 52%,
		transparent 70%
	) !important;
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__inner-container {
	padding: .8rem 1rem .95rem;
}

.wp-block-cover.is-style-cc-category-card h3 {
	color: var(--cc-ink);
	font-size: 1.22rem;
	text-shadow: none;
}

.cc-featured-rail__intro {
	padding: 1.2rem 1.35rem;
}

.cc-featured-rail__cards {
	padding: .8rem;
}

.cc-featured-rail__cards .cc-story-grid {
	gap: .8rem;
}

.wp-block-group.is-style-cc-story-card .wp-block-image img,
.cc-story-image {
	aspect-ratio: 16 / 9;
}

.wp-block-group.is-style-cc-story-card > .wp-block-group {
	padding: .8rem .9rem .9rem;
}

.wp-block-group.is-style-cc-story-card h3 {
	font-size: 1.22rem;
	line-height: 1.02;
}

.wp-block-group.is-style-cc-story-card p {
	font-size: .78rem;
	line-height: 1.3;
}

@media (max-width: 1150px) {
	.cc-step-label-native {
		white-space: normal;
	}
}


/* v0.5.0 — Learn route */
.cc-learn-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
	gap: 1.25rem;
	align-items: stretch;
}

.cc-learn-banner {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr);
	align-items: center;
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	overflow: hidden;
	box-shadow: var(--cc-shadow-soft);
}

.cc-learn-banner__copy {
	padding: clamp(1.25rem, 2.4vw, 2rem);
}

.cc-learn-banner__copy h2 {
	margin: 0 0 .75rem;
	font-size: clamp(1.7rem, 2.5vw, 2.5rem);
}

.cc-learn-banner__image img {
	width: 100%;
	height: 100%;
	min-height: 180px;
	object-fit: cover;
	display: block;
}

.cc-learning-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.cc-learning-card {
	display: grid;
	grid-template-rows: auto 1fr auto;
	min-height: 295px;
	padding: 1rem;
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	box-shadow: var(--cc-shadow-soft);
	overflow: hidden;
}

.cc-learning-card__icon {
	width: 2.5rem;
	height: 2.5rem;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: var(--cc-ink);
	color: white;
	font-size: 1.15rem;
	margin-bottom: .8rem;
}

.cc-learning-card:nth-child(2n) .cc-learning-card__icon { background: var(--cc-green); }
.cc-learning-card:nth-child(3n) .cc-learning-card__icon { background: var(--cc-gold); }
.cc-learning-card:nth-child(4n) .cc-learning-card__icon { background: var(--cc-rust); }

.cc-learning-card h3 {
	margin: 0 0 .55rem;
	font-size: 1.28rem;
	line-height: 1.05;
}

.cc-learning-card p {
	margin: 0;
	font-size: .9rem;
	color: #526b7d;
}

.cc-learning-card__image {
	margin: 1rem -1rem -1rem;
}

.cc-learning-card__image img {
	width: 100%;
	aspect-ratio: 16 / 8;
	object-fit: cover;
	display: block;
}

.cc-outcomes-panel {
	height: 100%;
	background: var(--cc-paper-light);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-md);
	box-shadow: var(--cc-shadow-soft);
	padding: 1.35rem;
}

.cc-outcomes-list {
	display: grid;
	gap: 0;
	margin-top: 1rem;
}

.cc-outcome-row {
	display: grid;
	grid-template-columns: 2.2rem 1fr;
	gap: .85rem;
	padding: 1rem 0;
	border-bottom: 1px solid var(--cc-border);
}

.cc-outcome-row:last-child {
	border-bottom: 0;
}

.cc-outcome-icon {
	font-size: 1.35rem;
	color: var(--cc-ink);
}

.cc-outcome-row h4 {
	margin: 0 0 .2rem;
	font-family: var(--wp--preset--font-family--cc-editorial);
	font-size: 1.05rem;
}

.cc-outcome-row p {
	margin: 0;
	font-size: .82rem;
	color: #5f7283;
}

@media (max-width: 1150px) {
	.cc-learning-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.cc-learn-layout {
		grid-template-columns: 1fr;
	}
	.cc-learn-banner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 680px) {
	.cc-learning-grid {
		grid-template-columns: 1fr;
	}
}


/* v0.5.1 — universal component polish */

/* Global rhythm */
.cc-explorer-main {
	gap: 1.15rem;
}

.cc-explorer-rail {
	gap: 1rem;
}

.cc-page-wrap {
	padding-top: clamp(2rem, 4vw, 4rem);
	padding-bottom: clamp(3rem, 5vw, 5rem);
}

/* Shared type discipline */
.cc-explorer-intro h1 {
	font-size: clamp(3rem, 4.6vw, 5.1rem);
	line-height: .94;
	letter-spacing: -.035em;
}

.cc-explorer-intro p {
	font-size: .98rem;
	line-height: 1.55;
	max-width: 25ch;
}

.wp-block-paragraph.is-style-cc-section-label,
p.is-style-cc-section-label {
	font-size: 1.08rem;
	line-height: 1.15;
	margin-bottom: .75rem;
}

.cc-step-label-native {
	font-size: .98rem;
	line-height: 1.15;
}

.cc-path-list-native li {
	font-size: .84rem;
	line-height: 1.35;
}

/* Shared panel proportions */
.wp-block-group.is-style-cc-surface,
.wp-block-group.is-style-cc-surface-accent {
	padding: 1rem 1.15rem;
}

.cc-step-panel {
	padding: .45rem 1.05rem !important;
}

.cc-step-row-native {
	min-height: 58px;
	padding: .75rem 0;
}

/* Header refinement */
.cc-site-header__inner {
	min-height: 86px;
}

.cc-site-header .wp-block-site-title {
	font-size: clamp(1.45rem, 2vw, 2rem);
	line-height: 1;
}

.cc-primary-nav .wp-block-navigation-item__content {
	font-size: .95rem;
	padding-top: 1.55rem;
	padding-bottom: 1.35rem;
}

/* Learn banner */
.cc-learn-banner {
	min-height: 180px;
}

.cc-learn-banner__copy {
	padding: 1.55rem 1.7rem;
}

.cc-learn-banner__copy h2 {
	font-size: clamp(1.65rem, 2.2vw, 2.3rem);
	line-height: 1.03;
	max-width: 18ch;
}

.cc-learn-banner__copy p {
	font-size: .98rem;
	line-height: 1.5;
	max-width: 50ch;
}

.cc-learn-banner__image {
	height: 100%;
	margin: 0;
}

.cc-learn-banner__image img {
	min-height: 180px;
	max-height: 210px;
	object-position: center;
}

/* Learn main layout */
.cc-learn-layout {
	grid-template-columns: minmax(0, 1fr) minmax(245px, 270px);
	gap: 1rem;
}

.cc-learning-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .85rem;
	align-items: stretch;
}

/* Locked learning-card anatomy */
.cc-learning-card {
	grid-template-rows: auto auto 1fr auto;
	min-height: 310px;
	padding: .95rem .95rem 0;
}

.cc-learning-card__icon {
	width: 2.35rem;
	height: 2.35rem;
	font-size: 1rem;
	margin-bottom: .65rem;
}

.cc-learning-card h3 {
	font-size: 1.12rem;
	line-height: 1.03;
	min-height: 2.3em;
	margin-bottom: .5rem;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.cc-learning-card p {
	font-size: .8rem;
	line-height: 1.42;
	color: #5f7283;
	margin: 0;
}

.cc-learning-card__image {
	margin: .8rem -.95rem 0;
	align-self: end;
	overflow: hidden;
}

.cc-learning-card__image img {
	aspect-ratio: 16 / 7;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Prevent image fragments/text bleed from affecting card layout */
.cc-learning-card__image {
	max-height: 98px;
}

.cc-learning-card__image img {
	min-height: 98px;
	max-height: 98px;
}

/* Outcomes panel */
.cc-outcomes-panel {
	padding: 1.15rem 1.2rem;
}

.cc-outcomes-panel > .is-style-cc-section-label {
	font-size: 1.15rem;
	margin-bottom: .35rem;
}

.cc-outcomes-list {
	margin-top: .5rem;
}

.cc-outcome-row {
	grid-template-columns: 1.8rem minmax(0, 1fr);
	gap: .7rem;
	padding: .85rem 0;
	align-items: start;
}

.cc-outcome-icon {
	font-size: 1.15rem;
	line-height: 1.1;
	margin: .1rem 0 0;
}

.cc-outcome-row h4 {
	font-size: .98rem;
	line-height: 1.1;
	margin-bottom: .25rem;
}

.cc-outcome-row p {
	font-size: .76rem;
	line-height: 1.4;
}

/* Chips */
.cc-tag-row {
	gap: .55rem;
}

.wp-block-group.is-style-cc-tag-chip {
	min-height: 34px;
	padding: .38rem .65rem;
	font-size: .78rem;
	white-space: nowrap;
}

/* Featured rail */
.cc-featured-rail {
	grid-template-columns: minmax(210px, .82fr) minmax(0, 4fr);
}

.cc-featured-rail__intro {
	padding: 1.05rem 1.2rem;
}

.cc-featured-rail__intro p:not(.is-style-cc-section-label) {
	font-size: .88rem;
	line-height: 1.45;
}

.cc-featured-rail__cards {
	padding: .75rem;
}

.cc-featured-rail__cards .cc-story-grid {
	gap: .7rem;
}

.wp-block-group.is-style-cc-story-card {
	min-width: 0;
}

.wp-block-group.is-style-cc-story-card .wp-block-image img,
.cc-story-image {
	aspect-ratio: 16 / 9;
}

.wp-block-group.is-style-cc-story-card > .wp-block-group {
	padding: .72rem .78rem .82rem;
}

.wp-block-group.is-style-cc-story-card h3 {
	font-size: 1rem;
	line-height: 1.02;
	min-height: 2.05em;
	overflow-wrap: normal;
	word-break: normal;
}

.wp-block-group.is-style-cc-story-card p {
	font-size: .69rem;
	line-height: 1.35;
}

/* Topics: apply same discipline */
.wp-block-cover.is-style-cc-category-card h3 {
	font-size: 1.1rem;
	line-height: 1.05;
}

.wp-block-group.is-style-cc-choice-tile,
.wp-block-group.is-style-cc-choice-tile-selected {
	font-size: .92rem;
	line-height: 1.15;
}

/* Ensure no child overflows its card */
.cc-learning-card *,
.cc-outcome-row *,
.wp-block-group.is-style-cc-story-card * {
	max-width: 100%;
	box-sizing: border-box;
}

@media (max-width: 1250px) {
	.cc-learning-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.cc-learning-card {
		min-height: 285px;
	}
}

@media (max-width: 900px) {
	.cc-learn-layout {
		grid-template-columns: 1fr;
	}
	.cc-outcomes-panel {
		height: auto;
	}
}

@media (max-width: 680px) {
	.cc-learning-grid {
		grid-template-columns: 1fr;
	}
	.cc-learning-card h3 {
		min-height: auto;
	}
	.cc-tag-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}


/* v0.5.2 — equal card sizing across all reusable families */

/* Every grid row uses equal-height tracks. */
.cc-category-grid,
.cc-choice-grid,
.cc-story-grid,
.cc-learning-grid,
.cc-tag-row {
	grid-auto-rows: 1fr;
	align-items: stretch;
}

/* Every direct grid child must occupy its complete cell. */
.cc-category-grid > *,
.cc-choice-grid > *,
.cc-story-grid > *,
.cc-learning-grid > *,
.cc-tag-row > * {
	min-width: 0 !important;
	width: 100% !important;
	max-width: none !important;
	height: 100% !important;
	align-self: stretch !important;
	justify-self: stretch !important;
	box-sizing: border-box;
}

/* WordPress constrained-layout margins must not alter card dimensions. */
.cc-category-grid > .wp-block-cover,
.cc-choice-grid > .wp-block-group,
.cc-story-grid > .wp-block-group,
.cc-learning-grid > .wp-block-group,
.cc-tag-row > .wp-block-group {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Category cards: identical external and internal dimensions. */
.wp-block-cover.is-style-cc-category-card {
	width: 100% !important;
	height: 100% !important;
	min-height: 250px !important;
	box-sizing: border-box;
}

.wp-block-cover.is-style-cc-category-card .wp-block-cover__inner-container {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

/* Choice tiles: equal rows and centered content. */
.wp-block-group.is-style-cc-choice-tile,
.wp-block-group.is-style-cc-choice-tile-selected {
	width: 100% !important;
	height: 100% !important;
	min-height: 58px;
	margin: 0 !important;
	box-sizing: border-box;
}

.wp-block-group.is-style-cc-choice-tile > *,
.wp-block-group.is-style-cc-choice-tile-selected > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Tag chips: identical width within their grid columns. */
.wp-block-group.is-style-cc-tag-chip {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	box-sizing: border-box;
}

/* Story cards: one shared anatomy and one total height. */
.wp-block-group.is-style-cc-story-card {
	display: grid !important;
	grid-template-rows: auto 1fr;
	width: 100% !important;
	height: 100% !important;
	min-height: 0;
	margin: 0 !important;
	box-sizing: border-box;
}

.wp-block-group.is-style-cc-story-card > .wp-block-image,
.wp-block-group.is-style-cc-story-card > figure {
	width: 100%;
	margin: 0 !important;
}

.wp-block-group.is-style-cc-story-card > .wp-block-group {
	display: grid;
	grid-template-rows: minmax(2.05em, auto) auto;
	align-content: start;
	width: 100%;
	min-width: 0;
	margin: 0 !important;
	box-sizing: border-box;
}

.wp-block-group.is-style-cc-story-card h3,
.wp-block-group.is-style-cc-story-card p {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Learning cards: identical external height and internal rows. */
.cc-learning-card {
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	box-sizing: border-box;
}

.cc-learning-card > * {
	min-width: 0;
}

/* Prevent first-item or content-width anomalies from WordPress block support. */
.cc-category-grid .alignwide,
.cc-choice-grid .alignwide,
.cc-story-grid .alignwide,
.cc-learning-grid .alignwide,
.cc-tag-row .alignwide,
.cc-category-grid .alignfull,
.cc-choice-grid .alignfull,
.cc-story-grid .alignfull,
.cc-learning-grid .alignfull,
.cc-tag-row .alignfull {
	width: 100% !important;
	max-width: none !important;
	margin-inline: 0 !important;
}

/* Featured rail story cards must all share one row height. */
.cc-featured-rail__cards,
.cc-featured-rail__cards .cc-story-grid {
	height: 100%;
}

.cc-featured-rail__cards .cc-story-grid > * {
	height: 100% !important;
}


/* v0.5.3 — selector proportions aligned to the approved reference */

/* Reduce vertical gap between selector families. */
.cc-choice-grid {
	gap: 0.7rem;
	margin-bottom: 0.75rem;
}

.cc-tag-row {
	gap: 0.55rem;
	margin-top: 0;
}

/* Subtopic tiles: wider, shallower, denser. */
.wp-block-group.is-style-cc-choice-tile,
.wp-block-group.is-style-cc-choice-tile-selected {
	min-height: 68px !important;
	padding: 0.55rem 0.75rem !important;
	border-radius: 12px;
	font-size: 0.88rem;
	line-height: 1.08;
	gap: 0.55rem;
	box-shadow: 0 4px 14px rgba(46, 37, 24, 0.035);
}

/* Make the icon area visually stronger than a text glyph. */
.wp-block-group.is-style-cc-choice-tile p,
.wp-block-group.is-style-cc-choice-tile-selected p {
	display: grid;
	grid-template-columns: 1.65rem minmax(0, 1fr);
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	margin: 0 !important;
	text-align: left;
}

.wp-block-group.is-style-cc-choice-tile p::first-letter,
.wp-block-group.is-style-cc-choice-tile-selected p::first-letter {
	font-size: 1.25rem;
	line-height: 1;
}

/* Tag chips: compact, shallow, consistent. */
.wp-block-group.is-style-cc-tag-chip {
	min-height: 44px !important;
	padding: 0.4rem 0.7rem !important;
	border-radius: 11px;
	font-size: 0.78rem;
	line-height: 1;
	gap: 0.4rem;
	box-shadow: 0 3px 12px rgba(46, 37, 24, 0.03);
}

.wp-block-group.is-style-cc-tag-chip p {
	display: grid;
	grid-template-columns: 1.35rem minmax(0, 1fr);
	align-items: center;
	gap: 0.35rem;
	width: 100%;
	margin: 0 !important;
	text-align: left;
	white-space: nowrap;
}

/* Keep labels centred in their cells while preserving icon alignment. */
.cc-choice-grid > .wp-block-group,
.cc-tag-row > .wp-block-group {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Responsive tuning. */
@media (max-width: 1150px) {
	.wp-block-group.is-style-cc-choice-tile,
	.wp-block-group.is-style-cc-choice-tile-selected {
		min-height: 64px !important;
	}

	.wp-block-group.is-style-cc-tag-chip {
		min-height: 42px !important;
	}
}

@media (max-width: 680px) {
	.wp-block-group.is-style-cc-choice-tile,
	.wp-block-group.is-style-cc-choice-tile-selected {
		min-height: 60px !important;
	}

	.wp-block-group.is-style-cc-tag-chip p,
	.wp-block-group.is-style-cc-choice-tile p,
	.wp-block-group.is-style-cc-choice-tile-selected p {
		text-align: center;
	}
}
