/* =================================================================
   CatCareMY — Blocksy child theme styles
   Palette taken from the logo: plum wordmark, lilac fur,
   hibiscus, sage leaves and the gold arch.
   ================================================================= */

html:root {
	--ccm-ink: #3B2236;
	--ccm-ink-soft: #5E4659;
	--ccm-mauve: #8E5A7C;
	--ccm-mist: #F2ECF4;
	--ccm-lilac: #DCCDE3;
	--ccm-sage: #7FA88A;
	--ccm-sage-soft: #E3EEE5;
	--ccm-hibiscus: #D2384A;
	--ccm-gold: #C9A45C;
	--ccm-paper: #FFFFFF;

	--ccm-serif: "Young Serif", "Georgia", "Times New Roman", serif;
	--ccm-sans: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;

	--ccm-radius-arch: 999px 999px 22px 22px;
	--ccm-shadow: 0 1px 2px rgba(59, 34, 54, .06), 0 12px 32px -14px rgba(59, 34, 54, .28);
	--ccm-ease: cubic-bezier(.22, 1, .36, 1);

	/* Feed the palette into Blocksy so header, links and buttons match */
	--theme-palette-color-1: #8E5A7C;
	--theme-palette-color-2: #D2384A;
	--theme-palette-color-3: #5E4659;
	--theme-palette-color-4: #3B2236;
	--theme-palette-color-5: #E6DAEA;
	--theme-palette-color-6: #F2ECF4;
	--theme-palette-color-7: #FAF7FB;
	--theme-palette-color-8: #FFFFFF;
}

/* -----------------------------------------------------------------
   Global typography
   ----------------------------------------------------------------- */
body.ccm {
	--theme-font-family: var(--ccm-sans);
	font-family: var(--ccm-sans);
	color: var(--ccm-ink-soft);
	-webkit-font-smoothing: antialiased;
}

.ccm h1, .ccm h2, .ccm h3,
.ccm .entry-title, .ccm .page-title {
	--theme-font-family: var(--ccm-serif);
	font-family: var(--ccm-serif);
	font-weight: 400;
	color: var(--ccm-ink);
	letter-spacing: -0.01em;
}

.ccm :focus-visible {
	outline: 3px solid var(--ccm-hibiscus);
	outline-offset: 3px;
	border-radius: 6px;
}

/* Header polish (logo is untouched) */
.ccm .ct-header .ct-menu-link {
	font-family: var(--ccm-sans);
	font-weight: 600;
	letter-spacing: 0.01em;
}
.ccm .ct-header [data-id="menu"] .menu > li > .ct-menu-link {
	position: relative;
}
.ccm .ct-header [data-id="menu"] .menu > li.current-menu-item > .ct-menu-link::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0.15em;
	width: 7px;
	height: 7px;
	margin-left: -3.5px;
	border-radius: 50%;
	background: var(--ccm-hibiscus);
}

/* -----------------------------------------------------------------
   Shared building blocks
   ----------------------------------------------------------------- */
.ccm-page {
	overflow-x: clip;
}
.ccm-wrap {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 40px);
}
.ccm-section {
	padding-block: clamp(64px, 9vw, 120px);
}
.ccm-head {
	max-width: 640px;
	margin-bottom: clamp(32px, 4vw, 52px);
}
.ccm-head h2,
.ccm-page h2 {
	font-size: clamp(2rem, 3.4vw, 2.85rem);
	line-height: 1.12;
	margin: 0 0 14px;
}
.ccm-head p {
	font-size: 1.075rem;
	line-height: 1.65;
	margin: 0;
}
.ccm-head--split {
	max-width: none;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}
.ccm-head--split h2 { margin: 0; }

.ccm-page p { margin: 0; }

.ccm-page a.ccm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border-radius: 999px;
	font-family: var(--ccm-sans);
	font-weight: 700;
	font-size: 1rem;
	text-decoration: none;
	transition: transform .25s var(--ccm-ease), background-color .25s, color .25s, box-shadow .25s;
}
.ccm-page a.ccm-btn--primary {
	background: var(--ccm-ink);
	color: #fff;
	box-shadow: 0 10px 24px -12px rgba(59, 34, 54, .8);
}
.ccm-page a.ccm-btn--primary:hover {
	background: var(--ccm-hibiscus);
	color: #fff;
	transform: translateY(-2px);
}
.ccm-page a.ccm-btn--ghost {
	color: var(--ccm-ink);
	box-shadow: inset 0 0 0 2px var(--ccm-ink);
}
.ccm-page a.ccm-btn--ghost:hover {
	background: var(--ccm-ink);
	color: #fff;
}
.ccm-page a.ccm-btn--sm {
	min-height: 44px;
	padding: 0 22px;
	font-size: .95rem;
}
.ccm-page a.ccm-link {
	color: var(--ccm-mauve);
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.ccm-page a.ccm-link:hover { color: var(--ccm-hibiscus); }

.ccm-tag {
	display: inline-block;
	font-size: .8rem;
	font-weight: 700;
	color: var(--ccm-sage);
	color: #4F7A5C;
	margin-bottom: 8px;
}

/* =================================================================
   HERO — the interactive cat under the hibiscus arch
   ================================================================= */
.ccm-hero {
	position: relative;
	background:
		radial-gradient(60% 70% at 78% 55%, #FFFFFF 0%, rgba(255, 255, 255, 0) 70%),
		var(--ccm-mist);
	isolation: isolate;
}
.ccm-hero::before {
	/* faint scalloped tile, like the lace of a kebaya */
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: .5;
	background-image: radial-gradient(circle at 50% 0, transparent 13px, rgba(142, 90, 124, .08) 14px, transparent 15px);
	background-size: 30px 18px;
	mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
}
.ccm-hero__inner {
	max-width: 1280px;
	margin-inline: auto;
	padding: clamp(36px, 5vw, 64px) clamp(20px, 4vw, 48px) clamp(40px, 5vw, 72px);
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(24px, 4vw, 64px);
	min-height: min(860px, calc(100svh - 90px));
}
.ccm-hero__title {
	font-size: clamp(2.7rem, 5.6vw, 5rem);
	line-height: 1.02;
	margin: 0 0 26px;
	letter-spacing: -0.025em;
}
.ccm-line {
	display: block;
	overflow: hidden;
	padding-bottom: .08em;
}
.ccm-line > span {
	display: inline-block;
	animation: ccm-rise 1s var(--ccm-ease) both;
}
.ccm-line:nth-child(2) > span { animation-delay: .1s; }
.ccm-line:nth-child(3) > span { animation-delay: .2s; }
.ccm-hero__lede {
	font-size: clamp(1.05rem, 1.4vw, 1.2rem);
	line-height: 1.65;
	max-width: 34em;
	margin-bottom: 34px !important;
	animation: ccm-fade .8s .45s both;
}
.ccm-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	animation: ccm-fade .8s .6s both;
}

@keyframes ccm-rise { from { transform: translateY(105%); } to { transform: none; } }
@keyframes ccm-fade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Stage */
.ccm-hero__stage {
	position: relative;
	width: 100%;
	max-width: 540px;
	justify-self: center;
}
.ccm-cat {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
	touch-action: pan-y;
	-webkit-tap-highlight-color: transparent;
}
.ccm-cat__hit { cursor: grab; }
.ccm-hero__stage.is-stroking .ccm-cat__hit { cursor: grabbing; }

.ccm-petals {
	position: absolute;
	inset: -10% -10% 0;
	width: 120%;
	height: 110%;
	pointer-events: none;
	z-index: 3;
}
.ccm-hearts {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
}
.ccm-heart {
	position: absolute;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	color: var(--ccm-hibiscus);
	animation: ccm-heart 1.2s var(--ccm-ease) forwards;
}
.ccm-heart svg { width: 100%; height: 100%; display: block; }
@keyframes ccm-heart {
	0%   { opacity: 0; transform: translate(0, 0) scale(.4) rotate(var(--r, 0deg)); }
	20%  { opacity: 1; }
	100% { opacity: 0; transform: translate(var(--x, 0), -70px) scale(1.1) rotate(var(--r, 0deg)); }
}

/* Load sequence: arch draws, blooms open, cat settles in */
.ccm-arch__line {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: ccm-draw 1.6s .15s var(--ccm-ease) forwards;
}
@keyframes ccm-draw { to { stroke-dashoffset: 0; } }
.ccm-arch__fill { animation: ccm-fade-plain 1s both; }
@keyframes ccm-fade-plain { from { opacity: 0; } }

.ccm-bloom {
	transform-box: fill-box;
	transform-origin: center;
	animation: ccm-bloom .9s calc(.9s + var(--d) * .12s) var(--ccm-ease) both;
}
@keyframes ccm-bloom { from { transform: scale(0) rotate(-90deg); opacity: 0; } }
.ccm-vine use[href="#ccmLeaf"] { animation: ccm-fade-plain .8s .8s both; }

.ccm-cat__body-group {
	transform-box: fill-box;
	transform-origin: 50% 100%;
	animation: ccm-settle 1.1s .5s var(--ccm-ease) both;
}
@keyframes ccm-settle {
	from { opacity: 0; transform: translateY(40px) scale(.96); }
}

/* Cat parts */
.ccm-cat__tail-wrap {
	transform-box: view-box;
	transform-origin: 402px 478px;
	animation: ccm-tail 4.5s ease-in-out infinite;
}
@keyframes ccm-tail {
	0%, 100% { transform: rotate(0deg); }
	50% { transform: rotate(-7deg); }
}
.ccm-ear {
	transform-box: view-box;
	transition: transform .35s var(--ccm-ease);
}
.ccm-ear--l { transform-origin: 205px 250px; }
.ccm-ear--r { transform-origin: 315px 250px; }

.ccm-eye__lid {
	transform-box: fill-box;
	transform-origin: 50% 0;
	transform: scaleY(0);
	transition: transform .12s ease-in;
}
.ccm-hero__stage.is-blinking .ccm-eye__lid { transform: scaleY(1); }
.ccm-eye__pupil {
	transform-box: fill-box;
	transform-origin: center;
	transition: transform .4s var(--ccm-ease);
}
.ccm-hero__stage.is-curious .ccm-eye__pupil { transform: scale(1.35); }

.ccm-eyes-happy { opacity: 0; transition: opacity .25s; }
.ccm-eyes-open { transition: opacity .25s; }
.ccm-cat__blush { opacity: .35; transition: opacity .4s; }
.ccm-cat__whiskers path {
	transform-box: fill-box;
	transition: transform .4s var(--ccm-ease);
}

/* Purring */
.ccm-hero__stage.is-purring .ccm-cat__blush { opacity: .85; }
.ccm-hero__stage.is-purring .ccm-cat__body-group {
	animation: ccm-purr .11s linear infinite;
}
@keyframes ccm-purr {
	0%, 100% { transform: translate(0, 0); }
	25% { transform: translate(.5px, -.4px); }
	75% { transform: translate(-.5px, .4px); }
}
.ccm-hero__stage.is-blissful .ccm-eyes-open { opacity: 0; }
.ccm-hero__stage.is-blissful .ccm-eyes-happy { opacity: 1; }
.ccm-hero__stage.is-blissful .ccm-ear--l { transform: rotate(-6deg); }
.ccm-hero__stage.is-blissful .ccm-ear--r { transform: rotate(6deg); }
.ccm-hero__stage.is-blissful .ccm-cat__tail-wrap { animation-duration: 7s; }

/* Annoyed by rough strokes */
.ccm-hero__stage.is-annoyed .ccm-ear--l { transform: rotate(-22deg) translate(-6px, 6px); }
.ccm-hero__stage.is-annoyed .ccm-ear--r { transform: rotate(22deg) translate(6px, 6px); }
.ccm-hero__stage.is-annoyed .ccm-cat__tail-wrap { animation: ccm-tail-fast .35s ease-in-out infinite; }
.ccm-hero__stage.is-annoyed .ccm-eye__lid { transform: scaleY(.38); }
.ccm-hero__stage.is-annoyed .ccm-eye__pupil { transform: scaleX(.45); }
@keyframes ccm-tail-fast {
	0%, 100% { transform: rotate(4deg); }
	50% { transform: rotate(-14deg); }
}

/* Purr panel */
.ccm-purr {
	margin: -6px auto 0;
	width: min(100%, 380px);
	position: relative;
	z-index: 4;
}
.ccm-purr__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}
.ccm-purr__msg {
	font-size: .95rem;
	font-weight: 600;
	color: var(--ccm-ink);
	min-height: 1.5em;
}
.ccm-page button.ccm-sound {
	all: unset;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
	padding: 6px 12px;
	border-radius: 999px;
	font: 600 .8rem/1 var(--ccm-sans);
	color: var(--ccm-mauve);
	background: rgba(255, 255, 255, .7);
	box-shadow: inset 0 0 0 1.5px var(--ccm-lilac);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.ccm-page button.ccm-sound:hover { background: #fff; }
.ccm-page button.ccm-sound:focus-visible { outline: 3px solid var(--ccm-hibiscus); outline-offset: 2px; }
.ccm-sound svg { width: 16px; height: 16px; }
.ccm-sound__wave { opacity: .3; }
.ccm-page button.ccm-sound[aria-pressed="true"] { color: #fff; background: var(--ccm-mauve); box-shadow: none; }
.ccm-sound[aria-pressed="true"] .ccm-sound__wave { opacity: 1; }

.ccm-purr__meter {
	position: relative;
	height: 12px;
	border-radius: 999px;
	background: rgba(142, 90, 124, .14);
	overflow: hidden;
}
.ccm-purr__fill {
	position: absolute;
	inset: 0 auto 0 0;
	width: calc(var(--purr, 0) * 100%);
	border-radius: inherit;
	background: linear-gradient(90deg, var(--ccm-sage), var(--ccm-gold) 55%, var(--ccm-hibiscus));
	background-size: 380px 100%;
}

/* Tip */
.ccm-tip {
	position: absolute;
	z-index: 5;
	left: 50%;
	top: 6%;
	width: min(88%, 330px);
	padding: 18px 20px 20px;
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--ccm-shadow);
	transform: translateX(-50%);
	animation: ccm-pop .55s var(--ccm-ease) both;
}
.ccm-tip[hidden] { display: none; }
.ccm-tip::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -8px;
	width: 16px;
	height: 16px;
	background: #fff;
	transform: translateX(-50%) rotate(45deg);
	border-radius: 0 0 4px 0;
}
.ccm-tip__title {
	font-family: var(--ccm-serif);
	font-size: 1.15rem;
	color: var(--ccm-hibiscus);
	margin-bottom: 6px !important;
}
.ccm-tip__text {
	font-size: .95rem;
	line-height: 1.55;
	color: var(--ccm-ink);
}
@keyframes ccm-pop {
	from { opacity: 0; transform: translate(-50%, 12px) scale(.9); }
}

/* =================================================================
   TOPICS — arch-shaped doors
   ================================================================= */
.ccm-topics { background: #fff; }
.ccm-doors {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(14px, 2vw, 24px);
}
.ccm-page a.ccm-door {
	display: flex;
	flex-direction: column;
	padding: 34px 24px 26px;
	border-radius: var(--ccm-radius-arch);
	background: var(--ccm-mist);
	color: var(--ccm-ink-soft);
	text-decoration: none;
	text-align: center;
	align-items: center;
	transition: background-color .3s, transform .35s var(--ccm-ease);
}
.ccm-page a.ccm-door:hover { transform: translateY(-6px); }
.ccm-door--health   { --door: #F6DDE1; --door-ink: #B22A3C; }
.ccm-door--behavior { --door: #E9E1F1; --door-ink: #7A4E8F; }
.ccm-door--food     { --door: #F4EAD4; --door-ink: #94702A; }
.ccm-door--home     { --door: #E1EEE4; --door-ink: #4F7A5C; }
.ccm-page a.ccm-door { background: var(--door); }
.ccm-door__arch {
	display: grid;
	place-items: center;
	width: 92px;
	height: 108px;
	margin-bottom: 22px;
	border-radius: 999px 999px 14px 14px;
	background: #fff;
	color: var(--door-ink);
	transition: transform .4s var(--ccm-ease);
}
.ccm-page a.ccm-door:hover .ccm-door__arch { transform: rotate(-4deg) scale(1.05); }
.ccm-icon { width: 46px; height: 46px; }
.ccm-door__title {
	font-family: var(--ccm-serif);
	font-size: 1.35rem;
	line-height: 1.2;
	color: var(--ccm-ink);
	margin-bottom: 10px;
}
.ccm-door__text {
	font-size: .95rem;
	line-height: 1.6;
	margin-bottom: 18px;
	flex: 1;
}
.ccm-door__more {
	font-weight: 700;
	font-size: .9rem;
	color: var(--door-ink);
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-thickness: 2px;
}

/* =================================================================
   LATEST — one feature + a list
   ================================================================= */
.ccm-latest { background: var(--ccm-mist); }
.ccm-latest__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(24px, 3.5vw, 48px);
	align-items: start;
}
.ccm-feature {
	background: #fff;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: var(--ccm-shadow);
}
.ccm-feature__media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--ccm-lilac);
}
.ccm-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s var(--ccm-ease);
}
.ccm-feature:hover .ccm-feature__media img { transform: scale(1.04); }
.ccm-feature__body { padding: clamp(22px, 3vw, 36px); }
.ccm-feature h3 {
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	line-height: 1.18;
	margin: 0 0 12px;
}
.ccm-feature h3 a { color: var(--ccm-ink); text-decoration: none; }
.ccm-feature h3 a:hover { color: var(--ccm-hibiscus); }
.ccm-feature__body > p:not(.ccm-tag) {
	line-height: 1.65;
	margin-bottom: 22px;
}

.ccm-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 6px;
}
.ccm-list__item a {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
	padding: 12px;
	border-radius: 20px;
	text-decoration: none;
	transition: background-color .25s;
}
.ccm-list__item a:hover { background: #fff; }
.ccm-list__thumb {
	width: 88px;
	height: 88px;
	border-radius: 999px 999px 12px 12px;
	overflow: hidden;
	background: var(--ccm-lilac);
}
.ccm-list__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ccm-list__text { display: flex; flex-direction: column; }
.ccm-list__text .ccm-tag { margin-bottom: 4px; font-size: .75rem; }
.ccm-list__title {
	font-family: var(--ccm-serif);
	font-size: 1.08rem;
	line-height: 1.3;
	color: var(--ccm-ink);
}
.ccm-list__item a:hover .ccm-list__title { color: var(--ccm-hibiscus); }
.ccm-list__date { font-size: .8rem; margin-top: 6px; color: #8A7A87; }

/* =================================================================
   LOCAL
   ================================================================= */
.ccm-local {
	background: var(--ccm-ink);
	color: #E9DDEA;
	position: relative;
}
.ccm-local__inner {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 2fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}
.ccm-page .ccm-local h2 { color: #fff; }
.ccm-local__points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 40px);
}
.ccm-point {
	padding-top: 22px;
	border-top: 2px solid rgba(201, 164, 92, .55);
}
.ccm-page .ccm-point h3 {
	color: #fff;
	font-size: 1.35rem;
	margin: 0 0 10px;
}
.ccm-point p { line-height: 1.65; }

/* =================================================================
   FAQ
   ================================================================= */
.ccm-faq { background: #fff; }
.ccm-faq__inner {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.6fr);
	gap: clamp(28px, 5vw, 80px);
	align-items: start;
}
.ccm-faq__head { position: sticky; top: 120px; }
.ccm-faq__head p { line-height: 1.65; margin-bottom: 26px; }
.ccm-qa {
	border-bottom: 1.5px solid var(--ccm-lilac);
}
.ccm-qa summary {
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 22px 0;
	cursor: pointer;
	font-family: var(--ccm-serif);
	font-size: clamp(1.08rem, 1.6vw, 1.25rem);
	line-height: 1.35;
	color: var(--ccm-ink);
}
.ccm-qa summary::-webkit-details-marker { display: none; }
.ccm-qa summary:hover { color: var(--ccm-mauve); }
.ccm-qa summary i {
	position: relative;
	flex: none;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--ccm-mist);
	transition: background-color .25s, transform .35s var(--ccm-ease);
}
.ccm-qa summary i::before,
.ccm-qa summary i::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 2px;
	margin: -1px 0 0 -6px;
	background: var(--ccm-ink);
	border-radius: 2px;
}
.ccm-qa summary i::after { transform: rotate(90deg); transition: transform .35s var(--ccm-ease); }
.ccm-qa[open] summary i { background: var(--ccm-hibiscus); }
.ccm-qa[open] summary i::before,
.ccm-qa[open] summary i::after { background: #fff; }
.ccm-qa[open] summary i::after { transform: rotate(0deg); }
.ccm-qa__a {
	padding: 0 56px 24px 0;
	line-height: 1.7;
	animation: ccm-fade .35s both;
}

/* =================================================================
   ABOUT
   ================================================================= */
.ccm-about-hero {
	background: var(--ccm-mist);
	padding-block: clamp(48px, 7vw, 96px);
}
.ccm-about-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: center;
}
.ccm-page .ccm-about-hero h1 {
	font-size: clamp(2.4rem, 5vw, 4.2rem);
	line-height: 1.05;
	margin: 0 0 24px;
	letter-spacing: -0.02em;
}
.ccm-lede {
	font-size: clamp(1.05rem, 1.3vw, 1.18rem);
	line-height: 1.7;
	max-width: 36em;
}
.ccm-about-hero__media {
	margin: 0;
	aspect-ratio: 4 / 5;
	border-radius: var(--ccm-radius-arch);
	overflow: hidden;
	background: #fff;
	box-shadow: 0 0 0 10px #fff, 0 0 0 12px var(--ccm-gold), var(--ccm-shadow);
}
.ccm-about-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ccm-about-hero__fallback { height: 100%; display: grid; place-items: end center; }
.ccm-about-hero__fallback .ccm-cat { width: 100%; }

.ccm-story__inner { max-width: 980px; }
.ccm-story__big {
	font-family: var(--ccm-serif);
	font-size: clamp(1.4rem, 2.4vw, 1.9rem);
	line-height: 1.4;
	color: var(--ccm-ink);
	margin-bottom: clamp(36px, 5vw, 60px) !important;
}
.ccm-story__cols {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 5vw, 64px);
}
.ccm-page .ccm-story__cols h3 {
	font-size: 1.4rem;
	margin: 0 0 12px;
}
.ccm-story__cols p { line-height: 1.75; margin-bottom: 14px; }
.ccm-finds { margin: 18px 0 0; }
.ccm-finds > div {
	padding: 14px 0 14px 34px;
	border-top: 1px solid var(--ccm-lilac);
	position: relative;
	line-height: 1.6;
}
.ccm-finds > div::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 21px;
	width: 14px;
	height: 14px;
	border-radius: 50% 50% 50% 0;
	background: var(--ccm-hibiscus);
	transform: rotate(-45deg);
}
.ccm-finds dt { display: inline; font-weight: 700; color: var(--ccm-ink); }
.ccm-finds dd { display: inline; margin: 0 0 0 .3em; }

.ccm-promise {
	margin: clamp(40px, 6vw, 72px) 0 0;
	padding: clamp(28px, 4vw, 44px);
	border: 0;
	border-radius: 28px;
	background: var(--ccm-sage-soft);
}
.ccm-promise p {
	font-family: var(--ccm-serif);
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	line-height: 1.5;
	color: var(--ccm-ink);
	font-style: normal;
}

.ccm-cta { background: var(--ccm-mist); text-align: center; }
.ccm-cta__inner { max-width: 640px; }
.ccm-cta__inner p { font-size: 1.1rem; margin-bottom: 28px; }
.ccm-cta .ccm-hero__actions { justify-content: center; animation: none; }

/* =================================================================
   BLOG ARCHIVE (Blocksy markup)
   ================================================================= */
html body.ccm.blog,
html body.ccm.archive,
html body.ccm.search {
	background-color: var(--ccm-mist);
	background-image: none;
}

.ccm .hero-section[data-type="type-2"] {
	position: relative;
	isolation: isolate;
}
.ccm .hero-section[data-type="type-2"]::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(90deg, rgba(59, 34, 54, .82) 0%, rgba(59, 34, 54, .35) 55%, rgba(59, 34, 54, 0) 100%);
	pointer-events: none;
}
.ccm .hero-section[data-type="type-2"] > .entry-header,
.ccm .hero-section[data-type="type-2"] .entry-header {
	position: relative;
	z-index: 1;
}
.ccm .hero-section[data-type="type-2"] .page-title {
	color: #fff;
	font-size: clamp(2.6rem, 5vw, 4.4rem);
	line-height: 1.05;
}
.ccm .hero-section[data-type="type-2"] .page-description,
.ccm .hero-section[data-type="type-2"] .page-description p { color: #F2E8F1; }

.ccm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 36px;
	grid-column: 1 / -1;
}
.ccm a.ccm-chip {
	padding: 9px 18px;
	border-radius: 999px;
	background: #fff;
	color: var(--ccm-ink);
	font-weight: 600;
	font-size: .92rem;
	text-decoration: none;
	box-shadow: inset 0 0 0 1.5px var(--ccm-lilac);
	transition: background-color .2s, color .2s;
}
.ccm a.ccm-chip:hover { box-shadow: inset 0 0 0 1.5px var(--ccm-mauve); }
.ccm a.ccm-chip.is-current { background: var(--ccm-ink); color: #fff; box-shadow: none; }

.ccm .entries .entry-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 0;
	border-radius: 26px;
	box-shadow: var(--ccm-shadow);
	overflow: hidden;
	transition: transform .4s var(--ccm-ease), box-shadow .4s;
}
.ccm .entries .entry-card:hover { transform: translateY(-6px); }
.ccm .entries .entry-card > .ct-media-container,
.ccm .entries .entry-card > .ct-image-container,
.ccm .entries .entry-card > .boundless-image {
	order: -1;
	margin: 0 0 4px !important;
	border-radius: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.ccm .entries .entry-card > .ct-media-container img,
.ccm .entries .entry-card > .ct-image-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	transition: transform .8s var(--ccm-ease);
}
.ccm .entries .entry-card:hover img { transform: scale(1.04); }
.ccm .entries .entry-card .entry-title {
	font-size: 1.3rem;
	line-height: 1.25;
}
.ccm .entries .entry-card .entry-title a { color: var(--ccm-ink); }
.ccm .entries .entry-card .entry-title a:hover { color: var(--ccm-hibiscus); }
.ccm .entries .entry-card .entry-excerpt { font-size: .95rem; line-height: 1.6; }
.ccm .entries .entry-card .entry-meta { font-size: .78rem; }
.ccm .entries .entry-card .entry-meta .meta-categories a,
.ccm .entries .entry-card .entry-meta [data-type="pill"] a {
	color: #4F7A5C;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}
.ccm .entries .entry-card .entry-button {
	align-self: flex-start;
	border-radius: 999px;
	background: var(--ccm-ink);
	color: #fff;
	font-weight: 700;
}
.ccm .entries .entry-card .entry-button:hover { background: var(--ccm-hibiscus); }

.ccm .ct-pagination a,
.ccm .ct-pagination .page-numbers { border-radius: 999px; }
.ccm .ct-pagination .current { background: var(--ccm-ink); color: #fff; }

/* =================================================================
   SINGLE POST
   ================================================================= */
.ccm-progress {
	position: fixed;
	inset: 0 0 auto 0;
	height: 4px;
	z-index: 9999;
	pointer-events: none;
}
.ccm-progress span {
	display: block;
	height: 100%;
	width: 100%;
	transform-origin: 0 50%;
	transform: scaleX(var(--p, 0));
	background: linear-gradient(90deg, var(--ccm-sage), var(--ccm-gold), var(--ccm-hibiscus));
}
.ccm.single .hero-section .page-title,
.ccm.single .entry-header .page-title {
	font-size: clamp(2.1rem, 4.2vw, 3.4rem);
	line-height: 1.1;
}
.ccm.single .entry-content {
	font-size: 1.08rem;
	line-height: 1.8;
}
.ccm.single .entry-content h2 {
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	line-height: 1.2;
	margin-top: 2.2em;
}
.ccm.single .entry-content h3 {
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	margin-top: 1.8em;
}
.ccm.single .entry-content a {
	color: var(--ccm-mauve);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ccm.single .entry-content img { border-radius: 20px; }
.ccm.single .entry-content blockquote {
	border: 0;
	padding: 24px 28px;
	border-radius: 20px;
	background: var(--ccm-sage-soft);
	color: var(--ccm-ink);
}
.ccm.single .entry-content li::marker { color: var(--ccm-hibiscus); }

/* Footer — soft lilac, keeps your Blocksy widgets */
.ccm .ct-footer,
.ccm .ct-footer [data-row] {
	background-color: var(--ccm-mist);
}
.ccm .ct-footer a:hover { color: var(--ccm-hibiscus); }

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media (max-width: 1024px) {
	.ccm-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ccm-local__inner { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
	.ccm-hero__inner {
		grid-template-columns: 1fr;
		min-height: 0;
		text-align: center;
	}
	.ccm-hero__lede { margin-inline: auto; }
	.ccm-hero__actions { justify-content: center; }
	.ccm-hero__stage { max-width: 420px; }
	.ccm-latest__grid,
	.ccm-faq__inner,
	.ccm-about-hero__inner,
	.ccm-story__cols { grid-template-columns: 1fr; }
	.ccm-faq__head { position: static; }
	.ccm-about-hero__media { max-width: 420px; justify-self: center; width: 100%; }
	.ccm-local__points { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
	.ccm-doors { grid-template-columns: 1fr; }
	.ccm-page a.ccm-door {
		display: grid;
		grid-template-columns: 64px minmax(0, 1fr);
		column-gap: 18px;
		align-items: start;
		text-align: left;
		padding: 20px;
		border-radius: 22px;
	}
	.ccm-door__arch { grid-row: span 3; width: 64px; height: 76px; margin: 0; }
	.ccm-door__arch .ccm-icon { width: 34px; height: 34px; }
	.ccm-door__title { font-size: 1.2rem; margin-bottom: 6px; }
	.ccm-door__text { margin-bottom: 10px; }
	.ccm-qa__a { padding-right: 0; }
	.ccm-list__item a { grid-template-columns: 72px minmax(0, 1fr); gap: 14px; }
	.ccm-list__thumb { width: 72px; height: 72px; }
}

@media (prefers-reduced-motion: reduce) {
	.ccm *,
	.ccm *::before,
	.ccm *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
	.ccm-arch__line { stroke-dashoffset: 0; }
}
