:root {
	/* Colors */
	--ck-primary-blue: #00a7e1;
	--ck-dark-navy: #002b49;
	--ck-tour-blue: #54c0e8;
	--ck-light-blue: #96daea;
	--ck-not-quite-black: #242424;
	--ck-white: #ffffff;

	/* Gradients */
	--ck-gradient-light-blue: linear-gradient(
		180deg,
		rgba(150, 218, 234, 0.25) 0%,
		rgba(255, 255, 255, 0.25) 100%
	);
	--ck-gradient-dark-overlay: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.55) 0%,
		rgba(102, 102, 102, 0) 100%
	);

	/* Typography */
	--ck-font-heading: 'proxima-nova', sans-serif;
	--ck-font-body: 'proxima-nova', sans-serif;

	/* Spacing */
	--ck-section-padding-y: 80px;
	--ck-content-max-width: 1426px;
	--ck-content-padding-x: 40px;

	/* Grey */
	--ck-grey: #f0f0f0;

	/* Button */
	--ck-button-border-width: 4px;
	--ck-button-border-radius: 100px;
}

/* Typography - Figma Style Guide */
[class*="wp-block-ck-"] h1,
.ck-h1, .h1-copy h1 {
	font-family: var(--ck-font-body);
	font-weight: 900;
	font-size: 64px;
	line-height: 66px;
	color: var(--ck-dark-navy);
	text-transform: uppercase;
}

[class*="wp-block-ck-"] h2,
.ck-h2 {
	font-family: var(--ck-font-body);
	font-weight: 700;
	font-size: 36px;
	line-height: 46px;
	color: var(--ck-dark-navy);
}

[class*="wp-block-ck-"] h3,
.ck-h3 {
	font-family: var(--ck-font-body);
	font-weight: 700;
	font-size: 26px;
	line-height: 36px;
	color: var(--ck-dark-navy);
}

[class*="wp-block-ck-"] h4,
.ck-h4 {
	font-family: var(--ck-font-body);
	font-weight: 700;
	font-size: 20px;
	line-height: 28px;
	/* color: #000; */
	text-transform: uppercase;
	letter-spacing: 2px;
}

[class*="wp-block-ck-"] h5,
.ck-h5 {
	font-family: var(--ck-font-body);
	font-weight: 400;
	font-size: 20px;
	line-height: 28px;
	color: var(--ck-dark-navy);
}

[class*="wp-block-ck-"] p,
.ck-body {
	font-family: var(--ck-font-body);
	font-weight: 500;
	font-size: 18px;
	line-height: 28px;
	/* color: #000; */
}

.ck-lead,
p.is-style-ck-lead,
p.wp-block-ck-mission-statement__lead {
	font-family: var(--ck-font-body);
	font-weight: 400;
	font-size: 32px;
	line-height: 48px;
	/* color: #000; */
	letter-spacing: 0.32px;
}

.ck-section-title {
	font-family: var(--ck-font-body);
	font-weight: 900;
	font-size: 21px;
	line-height: 42px;
	color: var(--ck-dark-navy);
	text-transform: uppercase;
	letter-spacing: 2.1px;
}

/* "Display as H1" toggle — applies h1 visual styling to h2 tags.
   Family/weight/color apply universally; sizing is opt-out for the
   CK 50/50 (what-to-expect) block, which keeps the underlying
   element's natural cascade. */
[class*="wp-block-ck-"] .ck-heading--h1,
.ck-heading--h1 {
	font-family: var(--ck-font-body);
	font-weight: 900;
	color: var(--ck-dark-navy);
}

[class*="wp-block-ck-"]:not([class*="wp-block-ck-what-to-expect"]) .ck-heading--h1 {
	font-size: 64px;
	line-height: 66px;
}

/* Wrapper variant: all h2 inside become h1-styled */
.ck-headings-as-h1 h2 {
	font-family: var(--ck-font-body);
	font-weight: 900;
	font-size: 64px;
	line-height: 66px;
	color: var(--ck-dark-navy);
}

/* Ensure .container centers content in the block editor */
[class*="wp-block-ck-"] .container {
	max-width: var(--ck-content-max-width);
	margin-left: auto;
	margin-right: auto;
}

/* Full-width block breakout for any theme */
.alignfull[class*="wp-block-ck-"] {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

/* Color Band stacking: CK block roots sit above color bands.
   Target only root wrappers (no __ in class) to avoid breaking internal z-index. */
.wp-block-ck-feature-cards,
.wp-block-ck-hero-banner,
.wp-block-ck-header-hero,
.wp-block-ck-mission-statement,
.wp-block-ck-what-to-expect,
.wp-block-ck-testimonial,
.wp-block-ck-latest-news,
.wp-block-ck-awards-recognition,
.wp-block-ck-callout,
.wp-block-ck-callout-cards,
.wp-block-ck-accordion,
.wp-block-ck-tabs,
.wp-block-ck-table,
.wp-block-ck-photo-gallery,
.wp-block-ck-facility-tour,
.wp-block-ck-breadcrumb {
	position: relative;
	z-index: 1;
	top: -1px;
}

/* ── Responsive tokens ── */
@media (max-width: 768px) {
	:root {
		--ck-section-padding-y: 48px;
		--ck-content-padding-x: 24px;
	}

	[class*="wp-block-ck-"] h1,
	.ck-h1 { font-size: 40px; line-height: 48px; }
	[class*="wp-block-ck-"] h2,
	.ck-h2 { font-size: 28px; line-height: 36px; }
	[class*="wp-block-ck-"] h3,
	.ck-h3 { font-size: 22px; line-height: 30px; }
	.ck-lead,
	p.is-style-ck-lead,
	p.wp-block-ck-mission-statement__lead { font-size: 24px; line-height: 36px; }

	[class*="wp-block-ck-"]:not([class*="wp-block-ck-what-to-expect"]) .ck-heading--h1,
	.ck-headings-as-h1 h2 { font-size: 40px; line-height: 48px; }
}

@media (max-width: 480px) {
	:root {
		--ck-section-padding-y: 32px;
		--ck-content-padding-x: 16px;
	}

	/* [class*="wp-block-ck-"] h1,
	.ck-h1 { font-size: 32px; line-height: 40px; }
	[class*="wp-block-ck-"] h2,
	.ck-h2 { font-size: 24px; line-height: 32px; }
	.ck-lead,
	p.is-style-ck-lead { font-size: 20px; line-height: 30px; } */

	[class*="wp-block-ck-"]:not([class*="wp-block-ck-what-to-expect"]) .ck-heading--h1,
	.ck-headings-as-h1 h2 { font-size: 32px; line-height: 40px; }
}

/* ── Single Post Template ──────────────────────────── */

.ck-single__hero {
	width: 100%;
	max-height: 560px;
	overflow: hidden;
}
.ck-single__hero-image {
	display: block;
	width: 100%;
	height: 560px;
	object-fit: cover;
}
.ck-single {
	background: linear-gradient(180deg, rgba(150, 218, 234, 0.25) 0%, rgba(255, 255, 255, 0.25) 100%);
}
.ck-single article,
article.ck-single {
	margin-top: 0 !important;
	max-width: 100% !important;
}
.ck-single__content {
	max-width: var(--ck-content-max-width, 1426px);
	margin: 0 auto;
	padding: 60px var(--ck-content-padding-x, 40px) 0;
}
.ck-single__title {
	font-family: var(--ck-font-body);
	font-weight: 900;
	font-size: 48px;
	line-height: 54px;
	color: var(--ck-dark-navy);
	text-transform: uppercase;
	margin: 0 0 8px;
	opacity: 1;
	width: 100% !important;
	transform: translate(0, 0);
}
.ck-single__date {
	display: block;
	font-family: var(--ck-font-body);
	font-size: 16px;
	font-weight: 400;
	color: #888;
	margin-bottom: 40px;
	margin-top: 20px;
}
.ck-single__body {
	font-family: var(--ck-font-body);
	color: var(--ck-not-quite-black);
}
.ck-single__body h2,
.ck-single__body h3,
.ck-single__body h4 {
	font-family: var(--ck-font-body);
	font-weight: 700;
	color: var(--ck-dark-navy);
	margin: 32px 0 12px;
}
.ck-single__body h2 { font-size: 26px; line-height: 34px; }
.ck-single__body h3 { font-size: 22px; line-height: 30px; }
.ck-single__body h4 { font-size: 18px; line-height: 26px; }
.ck-single__body p {
	font-family: var(--ck-font-body);
	font-size: 18px;
	font-weight: 400;
	line-height: 28px;
	margin: 0 0 24px;
}
.ck-single__body ul,
.ck-single__body ol {
	font-family: var(--ck-font-body);
	font-size: 18px;
	line-height: 28px;
	margin: 0 0 24px;
	padding-left: 24px;
}
.ck-single__body li {
	margin-bottom: 8px;
}
.single-post .ck-single__body li {
	margin-bottom: 8px;
	list-style: disc;
}
.ck-single__body a {
	color: var(--ck-dark-navy);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ck-single__body a:hover {
	color: var(--ck-dark-navy);
	text-decoration: none;
}
.ck-single__body img {
	max-width: 100%;
	height: auto;
}

/* Related posts */
.ck-single__related {
	padding: 60px 0 80px;
	background: #f5f5f5;
}
.ck-single__related-heading {
	font-family: var(--ck-font-body);
	font-size: 48px;
	font-weight: 900;
	line-height: 54px;
	color: var(--ck-dark-navy);
	text-align: center;
	text-transform: uppercase;
	margin: 0 0 40px;
}
.ck-single__related .ck-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: var(--ck-content-max-width, 1426px);
	margin: 0 auto;
	padding: 0 var(--ck-content-padding-x, 40px);
}
.ck-single__related .ck-related__card {
	display: flex;
	flex-direction: column;
	max-width: none !important;
	margin: 0 !important;
}
.ck-single__related .ck-related__image-wrap {
	aspect-ratio: 411 / 379;
	background: #e0e0e0;
	display: block;
	margin-bottom: 24px;
	overflow: hidden;
	width: 100%;
}
.ck-single__related .ck-related__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.ck-single__related .ck-related__image-wrap:hover .ck-related__image {
	transform: scale(1.05);
}
.ck-single__related .ck-related__title-link {
	color: inherit;
	text-decoration: none;
}
.ck-single__related .ck-related__title {
	font-family: var(--ck-font-body);
	font-size: 36px;
	font-weight: 700;
	line-height: 40px;
	color: var(--ck-dark-navy);
	margin: 0 0 12px;
}
.ck-single__related .ck-related__excerpt {
	font-family: var(--ck-font-body);
	font-size: 16px;
	font-weight: 400;
	line-height: 25px;
	color: var(--ck-not-quite-black);
	flex-grow: 1;
	margin: 0 0 20px;
}
.ck-single__related .ck-button {
	align-self: flex-start;
}

@media (max-width: 768px) {
	.ck-single__hero-image { height: 360px; }
	.ck-single__content { padding: 40px 24px 60px; }
	.ck-single__title { font-size: 36px; line-height: 42px; }
	.ck-single__related { padding: 40px 0 60px; }
	.ck-single__related-heading { font-size: 36px; line-height: 42px; margin-bottom: 32px; }
	.ck-single__related .ck-related__grid { grid-template-columns: 1fr; gap: 24px; padding: 0 24px; }
	.ck-single__related .ck-related__title { font-size: 30px; line-height: 34px; }
}
@media (max-width: 480px) {
	.ck-single__hero-image { height: 240px; }
	.ck-single__content { padding: 32px 16px 48px; }
	.ck-single__title { font-size: 28px; line-height: 34px; }
	.ck-single__body p { font-size: 16px; line-height: 25px; }
	.ck-single__related { padding: 32px 0 48px; }
	.ck-single__related-heading { font-size: 28px; line-height: 34px; }
	.ck-single__related .ck-related__grid { padding: 0 16px; }
}

.single-post [class*="wp-block-ck-"] .container {
	padding: 0 !important;
}

/* Tel links inside a CK block with dark-navy background → white.
   Matches the inline ckBackground value (case-insensitive, with or without
   space after the colon) and the legacy 50-50 .is-color-blue dark variant.
   No hover change — base theme rule keeps text-decoration toggle intact. */
[class*="wp-block-ck-"][style*="background:#002b49" i] a[href^="tel:"],
[class*="wp-block-ck-"][style*="background: #002b49" i] a[href^="tel:"],
.wp-block-ck-what-to-expect.is-color-blue a[href^="tel:"] {
	color: #fff;
}

/* Text-content block inside single-post: kill horizontal padding and force full width
   below 768px so it sits flush with the surrounding single-post container. */
@media (max-width: 767px) {
	.single-post .wp-block-ck-text-content {
		padding-bottom: var(--ck-pb-mobile, var(--ck-pb-tablet, var(--ck-pb, 0)));
		padding-left: 0;
		padding-right: 0;
		padding-top: var(--ck-pt-mobile, var(--ck-pt-tablet, var(--ck-pt, 0)));
		width: 100% !important;
	}
}

/* ── Block styles for core blocks inside CK Text Content ──────────────────
   "CK Services Heading" (core/heading) + "CK Services List" (core/list):
   blue uppercase subheading and a list of bold underlined service names
   with an italic tagline. Registered in CK_Blocks::register_block_styles(). */
.wp-block-ck-text-content__inner .is-style-ck-services-heading,
.is-style-ck-services-heading {
	color: var(--ck-primary-blue);
	font-family: var(--ck-font-body);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.231;
	margin: 72px 0 41px !important; /* clear gap above the services list (mockup ~90px) */
	text-transform: uppercase;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services,
ul.is-style-ck-services {
	list-style: none;
	margin: 0;
	padding: 0;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services li,
ul.is-style-ck-services li {
	margin: 0 0 38px;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services li:last-child,
ul.is-style-ck-services li:last-child {
	margin-bottom: 0;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services li a,
.wp-block-ck-text-content__inner ul.is-style-ck-services li strong,
ul.is-style-ck-services li a,
ul.is-style-ck-services li strong {
	color: #3c3c3c;
	font-family: var(--ck-font-body);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2085;
	text-decoration: underline;
	text-underline-offset: 2px;
	transition: color 0.3s ease;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services li a:hover,
ul.is-style-ck-services li a:hover {
	color: var(--ck-primary-blue);
	text-decoration: underline;
}

.wp-block-ck-text-content__inner ul.is-style-ck-services li em,
ul.is-style-ck-services li em {
	color: #3c3c3c;
	display: block;
	font-family: var(--ck-font-body);
	font-size: 20px;
	font-style: italic;
	font-weight: 400;
	line-height: 1.45;
	margin-top: 2px;
}

@media (max-width: 768px) {
	.wp-block-ck-text-content__inner .is-style-ck-services-heading,
	.is-style-ck-services-heading {
		font-size: 22px;
		margin: 40px 0 28px !important;
	}

	.wp-block-ck-text-content__inner ul.is-style-ck-services li a,
	.wp-block-ck-text-content__inner ul.is-style-ck-services li strong,
	ul.is-style-ck-services li a,
	ul.is-style-ck-services li strong {
		font-size: 20px;
	}

	.wp-block-ck-text-content__inner ul.is-style-ck-services li em,
	ul.is-style-ck-services li em {
		font-size: 17px;
	}
}
