/*
CleanCraft Pros — main stylesheet.
All colors/fonts come from theme.json presets (--wp--preset--*), aliased below.
Selectors are scoped to cc- components so the theme never fights Elementor/Gutenberg.
*/

/* ===== Token aliases ===== */
:root {
	--cc-ink: var(--wp--preset--color--ink, #0B2545);
	--cc-graphite: var(--wp--preset--color--graphite, #0A1A2F);
	--cc-red: var(--wp--preset--color--primary, #E63946);
	--cc-red-dark: var(--wp--preset--color--primary-dark, #C42F3B);
	--cc-mist: var(--wp--preset--color--mist, #EEF4F8);
	--cc-mist-deep: var(--wp--preset--color--mist-deep, #E2EDF3);
	--cc-white: var(--wp--preset--color--white, #FFFFFF);
	--cc-steel: var(--wp--preset--color--steel, #51637A);
	--cc-hairline: var(--wp--preset--color--hairline, #D7E2EA);
	--cc-aqua: var(--wp--preset--color--aqua, #0CC0DF);
	--cc-cloud: var(--wp--preset--color--cloud, #9DB2C9);
	--cc-sans: var(--wp--preset--font-family--sans, 'Inter', system-ui, sans-serif);
	--cc-display: var(--wp--preset--font-family--display, 'Bricolage Grotesque', sans-serif);
	--cc-maxw: 1240px;
	--cc-gut: 24px;
	--cc-radius: 16px;
	--cc-radius-sm: 14px;
	--cc-shadow: 0 12px 32px rgba(11, 37, 69, .08);
	--cc-shadow-lg: 0 24px 60px rgba(11, 37, 69, .14);
	--cc-header-h: 78px;
}

/* ===== Base (kept light; builders untouched) ===== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	font-family: var(--cc-sans);
	color: var(--cc-ink);
	background: var(--cc-white);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
::selection { background: var(--cc-ink); color: #fff; }
:focus-visible { outline: 3px solid var(--cc-aqua); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3, h4 {
	font-family: var(--cc-display);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -.01em;
	margin: 0;
}

.cc-wrap { max-width: var(--cc-maxw); margin: 0 auto; padding-inline: var(--cc-gut); }
.cc-wrap--narrow { max-width: 820px; }
.cc-section { padding-block: 112px; }
.cc-section--top { padding-top: 56px; }
.cc-section--tight { padding-block: 0 112px; }
.cc-lead { font-size: 19px; color: var(--cc-steel); line-height: 1.6; margin: 0; }
.cc-accent { color: var(--cc-red); }

.cc-eyebrow {
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em;
	color: var(--cc-steel); display: inline-flex; align-items: center; gap: 10px; margin: 0 0 4px;
}
.cc-eyebrow::before {
	content: ""; width: 26px; height: 2px; background: var(--cc-red);
	transform: skewX(-24deg); display: inline-block; flex: none;
}
.cc-eyebrow--on-dark { color: var(--cc-cloud); }

/* icons hydrated by JS */
[data-icon] { display: inline-flex; }
[data-icon] svg { width: 18px; height: 18px; }
.cc-ic { display: flex; align-items: center; justify-content: center; }

/* gradient fallback when no featured image is set */
.cc-ph-fallback {
	display: block; width: 100%; height: 100%; min-height: 100%;
	background:
		radial-gradient(120px 120px at 75% 25%, rgba(12, 192, 223, .25), transparent 70%),
		linear-gradient(150deg, var(--cc-mist) 0%, var(--cc-mist-deep) 55%, var(--cc-cloud) 130%);
}

/* ===== Buttons ===== */
.cc-btn {
	display: inline-flex; align-items: center; gap: 10px; border: none;
	border-radius: var(--cc-radius-sm); padding: 15px 26px;
	font-size: 16px; font-weight: 600; font-family: var(--cc-sans);
	text-decoration: none; cursor: pointer; white-space: nowrap;
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease, border-color .15s;
}
.cc-btn [data-icon] svg { width: 18px; height: 18px; }
.cc-btn--red { background: var(--cc-red); color: #fff; box-shadow: 0 8px 22px rgba(230, 57, 70, .28); }
.cc-btn--red:hover { background: var(--cc-red-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(230, 57, 70, .34); }
.cc-btn--ghost { background: transparent; color: var(--cc-ink); border: 1.5px solid var(--cc-hairline); }
.cc-btn--ghost:hover { border-color: var(--cc-ink); transform: translateY(-2px); }
.cc-btn--on-dark { color: #fff; border-color: rgba(255, 255, 255, .28); }
.cc-btn--on-dark:hover { border-color: #fff; background: rgba(255, 255, 255, .06); color: #fff; }
.cc-btn--block { width: 100%; justify-content: center; }

.cc-arrow-link {
	display: inline-flex; align-items: center; gap: 10px; margin-top: 40px;
	font-weight: 600; color: var(--cc-ink); text-decoration: none;
}
.cc-arrow-link [data-icon] svg { transition: transform .2s; }
.cc-arrow-link:hover { color: var(--cc-red); }
.cc-arrow-link:hover [data-icon] svg { transform: translateX(5px); }

/* ===== Skip link ===== */
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100;
	background: var(--cc-ink); color: #fff; padding: 12px 20px; border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; }

/* ===== Header ===== */
.cc-header {
	position: fixed; top: 0; left: 0; right: 0; z-index: 60;
	border-bottom: 1px solid transparent;
	transition: background .3s ease, box-shadow .3s ease, border-color .3s;
}
.cc-header.is-static { position: static; background: #fff; border-color: var(--cc-hairline); }
.cc-header.is-solid {
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	box-shadow: 0 6px 24px rgba(11, 37, 69, .06);
	border-color: var(--cc-hairline);
}
.admin-bar .cc-header { top: 32px; }
.cc-header__in { display: flex; align-items: center; gap: 32px; height: var(--cc-header-h); }

.cc-logo { display: flex; align-items: center; gap: 11px; font-family: var(--cc-display); font-weight: 700; text-decoration: none; color: inherit; }
.cc-logo__lockup { width: auto; height: 52px; flex: none; }
.cc-logo__img { max-height: 52px; width: auto; }
.cc-mmenu .cc-logo__lockup { height: 46px; }
.cc-footer .cc-logo__lockup { height: 60px; }
.cc-logo__name { font-size: 20px; letter-spacing: -.02em; line-height: 1; white-space: nowrap; }
.cc-logo__name b { color: var(--cc-red); }

/* Header Two: taller bar, original stacked logo (text under the mark) */
.cc-header-style-two { --cc-header-h: 124px; }
.cc-logo__stacked { width: auto; height: 108px; flex: none; }
.cc-logo__img--two { max-height: 108px; width: auto; }

.cc-nav .cc-nav__list { display: flex; gap: 4px; margin: 0 0 0 14px; padding: 0; list-style: none; }
.cc-nav .cc-nav__list li { position: relative; }
.cc-nav .cc-nav__list a {
	display: block; font-size: 15.5px; font-weight: 500; color: var(--cc-ink);
	padding: 9px 15px; border-radius: 9px; text-decoration: none; position: relative;
	transition: color .15s, background .15s;
}
.cc-nav .cc-nav__list a:hover { background: var(--cc-mist); }
.cc-nav .cc-nav__list > .current-menu-item > a::after,
.cc-nav .cc-nav__list > .current_page_item > a::after {
	content: ""; position: absolute; left: 15px; right: 15px; bottom: 3px; height: 2px;
	background: var(--cc-red); transform: skewX(-24deg);
}
/* simple dropdown support */
.cc-nav .cc-nav__list ul {
	position: absolute; top: 100%; left: 0; min-width: 220px; padding: 8px; margin: 0;
	list-style: none; background: #fff; border: 1px solid var(--cc-hairline); border-radius: 12px;
	box-shadow: var(--cc-shadow); opacity: 0; visibility: hidden; transform: translateY(6px);
	transition: opacity .15s, transform .15s, visibility .15s; z-index: 5;
}
.cc-nav .cc-nav__list li:hover > ul,
.cc-nav .cc-nav__list li:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }

.cc-header__cta { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.cc-phone-link {
	display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 15.5px;
	color: var(--cc-ink); text-decoration: none;
}
.cc-phone-link [data-icon] svg { color: var(--cc-red); }
.cc-phone-link:hover { color: var(--cc-red); }
.cc-phone-link--light { color: #fff; }
.cc-burger {
	display: none; width: 46px; height: 46px; border: 1.5px solid var(--cc-hairline);
	border-radius: 12px; background: #fff; align-items: center; justify-content: center;
	cursor: pointer; color: var(--cc-ink);
}
.cc-burger [data-icon] svg { width: 22px; height: 22px; }

/* Offset under the fixed header. Designed page/section heads (cc-page-head,
   cc-hero, cc-dt-head, …) already include this offset in their own padding;
   only the bare Full Width template needs it. */
.cc-full-width { padding-top: var(--cc-header-h); }
.cc-header.is-static ~ .site-main .cc-full-width { padding-top: 0; }

/* ===== Mobile menu ===== */
.cc-mmenu {
	position: fixed; inset: 0; z-index: 70; background: var(--cc-graphite); color: #fff;
	display: flex; flex-direction: column; padding: 24px; transform: translateY(-100%);
	transition: transform .4s cubic-bezier(.6, 0, .2, 1); visibility: hidden;
}
.cc-mmenu.is-open { transform: translateY(0); visibility: visible; }
.cc-mmenu__top { display: flex; align-items: center; justify-content: space-between; }
.cc-mmenu .cc-logo__name { color: #fff; }
.cc-mmenu__close {
	width: 46px; height: 46px; border-radius: 12px; border: 1.5px solid rgba(255, 255, 255, .2);
	background: transparent; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.cc-mmenu nav { margin-top: 48px; overflow-y: auto; }
.cc-mmenu__list { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.cc-mmenu__list a {
	display: block; font-family: var(--cc-display); font-weight: 700; font-size: 34px;
	padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, .08);
	color: #fff; text-decoration: none;
}
.cc-mmenu__foot { margin-top: auto; display: flex; flex-direction: column; gap: 14px; padding-top: 24px; }

/* ===== Hero (front page) ===== */
.cc-hero {
	position: relative; padding-top: calc(var(--cc-header-h) + 72px); padding-bottom: 96px; overflow: hidden;
	background: radial-gradient(1100px 540px at 88% -8%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 62%), var(--cc-white);
}
.cc-hero__grid { display: grid; grid-template-columns: 1fr .95fr; gap: 64px; align-items: center; }
.cc-hero h1 { font-size: clamp(40px, 5.4vw, 66px); letter-spacing: -.025em; margin: 22px 0 0; }
.cc-hero__sub { margin: 24px 0 0; font-size: 19px; color: var(--cc-steel); max-width: 30em; }
.cc-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 34px; }
.cc-trust-strip { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--cc-hairline); }
.cc-trust-item { display: inline-flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 500; color: var(--cc-ink); }
.cc-trust-item [data-icon] svg { color: var(--cc-aqua); flex: none; }

/* before/after reveal */
.cc-reveal {
	position: relative; border-radius: var(--cc-radius); overflow: hidden; box-shadow: var(--cc-shadow-lg);
	aspect-ratio: 4 / 5; user-select: none; touch-action: pan-y;
}
.cc-reveal img, .cc-reveal .cc-ph-fallback { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.cc-reveal__clean { z-index: 1; }
.cc-reveal__dirty-wrap { position: absolute; inset: 0; z-index: 2; overflow: hidden; will-change: clip-path; }
.cc-reveal__dirty { filter: blur(2.4px) brightness(.82) saturate(.55) contrast(.92); }
.cc-reveal__fog {
	position: absolute; inset: 0; z-index: 3; pointer-events: none; mix-blend-mode: screen;
	background:
		radial-gradient(60px 60px at 22% 30%, rgba(255, 255, 255, .5), transparent 70%),
		radial-gradient(90px 90px at 70% 60%, rgba(255, 255, 255, .4), transparent 70%),
		radial-gradient(50px 50px at 45% 78%, rgba(255, 255, 255, .45), transparent 70%),
		linear-gradient(160deg, rgba(220, 235, 245, .55), rgba(200, 220, 235, .32));
}
.cc-reveal__divider {
	position: absolute; top: 0; bottom: 0; z-index: 5; width: 3px; left: 52%;
	background: #fff; transform: translateX(-50%); box-shadow: 0 0 0 1px rgba(11, 37, 69, .12);
}
.cc-reveal__handle {
	position: absolute; top: 50%; left: 50%; z-index: 6; transform: translate(-50%, -50%);
	width: 54px; height: 54px; border-radius: 50%; background: #fff;
	box-shadow: 0 8px 24px rgba(11, 37, 69, .28);
	display: flex; align-items: center; justify-content: center; cursor: ew-resize; color: var(--cc-ink);
}
.cc-reveal__handle [data-icon] svg { width: 22px; height: 22px; }
.cc-reveal__tag {
	position: absolute; z-index: 6; bottom: 16px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .1em; padding: 6px 12px; border-radius: 999px;
	background: rgba(11, 37, 69, .7); color: #fff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.cc-reveal__tag--before { left: 16px; }
.cc-reveal__tag--after { right: 16px; background: rgba(12, 192, 223, .92); }
.cc-hero__media { position: relative; }
.cc-reveal-float {
	/* Sits in the lower-right, clear above the "Spotless" tag (which is at bottom:16px)
	   so it never covers it at any viewport width. */
	position: absolute; z-index: 7; right: -18px; bottom: 64px; background: #fff;
	border-radius: var(--cc-radius-sm); box-shadow: var(--cc-shadow); padding: 14px 18px;
	display: flex; align-items: center; gap: 12px; max-width: min(260px, 80%);
}
.cc-reveal-float .cc-ic { width: 40px; height: 40px; border-radius: 10px; background: var(--cc-mist); color: var(--cc-ink); }
.cc-reveal-float b { display: block; font-family: var(--cc-display); font-size: 17px; }
.cc-reveal-float span span { font-size: 12.5px; color: var(--cc-steel); }

/* ===== Why us ===== */
.cc-why { background: var(--cc-mist); }
.cc-why__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; }
.cc-why__head { position: sticky; top: 110px; }
.cc-why__head h2 { font-size: clamp(32px, 3.6vw, 44px); margin-top: 18px; }
.cc-why__head p { margin: 18px 0 0; color: var(--cc-steel); }
.cc-why__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cc-vcard {
	background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 30px 26px; transition: transform .2s ease, box-shadow .2s ease;
	position: relative; overflow: hidden;
}
.cc-vcard:hover { transform: translateY(-4px); box-shadow: var(--cc-shadow); }
.cc-vcard .cc-ic {
	width: 50px; height: 50px; border-radius: 13px; background: var(--cc-mist);
	color: var(--cc-ink); margin-bottom: 20px; transition: .2s;
}
.cc-vcard:hover .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-vcard .cc-ic [data-icon] svg { width: 24px; height: 24px; }
.cc-vcard h3 { font-size: 21px; }
.cc-vcard p { margin: 9px 0 0; font-size: 15.5px; color: var(--cc-steel); }
.cc-vcard::after {
	content: ""; position: absolute; left: 0; right: 40%; bottom: 0; height: 3px;
	background: var(--cc-red); transform: skewX(-24deg) translateX(-101%); transition: transform .3s ease;
}
.cc-vcard:hover::after { transform: skewX(-24deg) translateX(0); }
.cc-vcard__num { font-family: var(--cc-display); font-weight: 700; font-size: 15px; color: var(--cc-hairline); margin: 0; }

/* ===== Split section heads ===== */
.cc-split-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-bottom: 46px; }
.cc-split-head h2 { font-size: clamp(32px, 3.6vw, 44px); margin-top: 16px; max-width: 16ch; }
.cc-split-head .cc-lead { max-width: 36ch; }

/* ===== Services bento ===== */
.cc-bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; gap: 20px; }
.cc-tile {
	position: relative; border-radius: var(--cc-radius); overflow: hidden; color: #fff;
	display: flex; flex-direction: column; justify-content: flex-end; padding: 26px;
	isolation: isolate; text-decoration: none;
}
.cc-tile img, .cc-tile > .cc-ph-fallback {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.cc-tile::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(11, 37, 69, 0) 28%, rgba(10, 26, 47, .86) 100%);
}
.cc-tile:hover img { transform: scale(1.06); }
.cc-tile .cc-ic {
	width: 44px; height: 44px; border-radius: 11px; background: rgba(255, 255, 255, .16);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); margin-bottom: auto; color: #fff;
}
.cc-tile .cc-ic [data-icon] svg { width: 22px; height: 22px; }
.cc-tile h3 { font-size: 22px; margin-top: 14px; color: #fff; }
.cc-tile p { font-size: 14.5px; color: rgba(255, 255, 255, .84); margin: 6px 0 0; max-width: 30ch; }
.cc-swipe {
	position: absolute; left: 0; bottom: 0; right: 0; height: 4px; background: var(--cc-aqua); z-index: 1;
	transform: skewX(-24deg) translateX(-101%); transition: transform .35s ease;
}
.cc-tile:hover .cc-swipe { transform: skewX(-24deg) translateX(0); }
.cc-tile--lg { grid-column: span 2; grid-row: span 2; }
.cc-tile--wide { grid-column: span 2; }
.cc-tile--lg h3 { font-size: 30px; }
.cc-tile--lg p { font-size: 16px; }

/* ===== How it works ===== */
.cc-how { background: var(--cc-ink); color: #fff; position: relative; overflow: hidden; }
.cc-how h2 { font-size: clamp(32px, 3.6vw, 44px); margin-top: 16px; color: #fff; max-width: 16ch; }
.cc-how__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 62px; position: relative; }
.cc-how__line {
	position: absolute; top: 34px; left: 8%; right: 8%; height: 2px; z-index: 0;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .25) 0 8px, transparent 8px 16px);
	transform: skewY(-1.4deg);
}
.cc-step { position: relative; z-index: 1; }
.cc-step__num {
	width: 68px; height: 68px; border-radius: 18px; background: var(--cc-graphite);
	border: 1px solid rgba(255, 255, 255, .12); display: flex; align-items: center; justify-content: center;
	font-family: var(--cc-display); font-weight: 700; font-size: 26px; position: relative;
}
.cc-step__badge {
	position: absolute; top: -8px; right: -8px; width: 30px; height: 30px; border-radius: 9px;
	background: var(--cc-red); display: flex; align-items: center; justify-content: center;
}
.cc-step__badge [data-icon] svg { width: 16px; height: 16px; color: #fff; }
.cc-step h3 { font-size: 23px; margin-top: 26px; color: #fff; }
.cc-step p { margin: 10px 0 0; color: var(--cc-cloud); font-size: 15.5px; max-width: 30ch; }

/* ===== Proof ===== */
.cc-proof { background: var(--cc-mist-deep); }
.cc-proof__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 56px; align-items: center; }
.cc-proof__big { font-family: var(--cc-display); font-weight: 700; font-size: clamp(52px, 7vw, 82px); line-height: 1; letter-spacing: -.03em; }
.cc-proof__plus { color: var(--cc-red); }
.cc-proof__stat p { margin: 14px 0 0; color: var(--cc-steel); max-width: 22ch; }
.cc-quote { background: #fff; border-radius: var(--cc-radius); padding: 42px; box-shadow: var(--cc-shadow); position: relative; margin: 0; }
.cc-quote__mark { font-family: var(--cc-display); font-size: 90px; line-height: .5; color: var(--cc-mist-deep); position: absolute; top: 36px; left: 30px; }
.cc-quote blockquote { margin: 0; font-family: var(--cc-display); font-weight: 600; font-size: clamp(22px, 2.4vw, 28px); line-height: 1.34; position: relative; }
.cc-quote__by { display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.cc-quote__av {
	width: 48px; height: 48px; border-radius: 50%; background: var(--cc-ink); color: #fff;
	display: flex; align-items: center; justify-content: center; font-family: var(--cc-display); font-weight: 700;
}
.cc-quote__av-img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.cc-quote__by b { display: block; font-size: 15.5px; }
.cc-quote__by span span { font-size: 13.5px; color: var(--cc-steel); }

/* ===== Partners strip ===== */
.cc-partners { padding-block: 74px; background: var(--cc-mist); }
.cc-partners .cc-wrap { text-align: center; }
.cc-partners .cc-eyebrow { justify-content: center; }
.cc-partners__title { font-size: clamp(22px, 2.4vw, 28px); margin-top: 14px; letter-spacing: -.01em; }
.cc-partners__sub { margin: 12px auto 0; color: var(--cc-steel); font-size: 15.5px; max-width: 52ch; }
.cc-partner-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px 30px; margin-top: 38px; }
.cc-plogo {
	display: inline-flex; align-items: center; gap: 11px; background: #fff; border: 1px solid var(--cc-hairline);
	border-radius: var(--cc-radius-sm); padding: 16px 24px; min-width: 170px; justify-content: center;
	transition: transform .2s, box-shadow .2s;
}
.cc-plogo:hover { transform: translateY(-3px); box-shadow: var(--cc-shadow); }
.cc-plogo__mark {
	width: 34px; height: 34px; border-radius: 9px; background: var(--cc-ink); color: #fff; flex: none;
	display: flex; align-items: center; justify-content: center; font-family: var(--cc-display); font-weight: 700; font-size: 14px;
}
.cc-plogo__name { font-family: var(--cc-display); font-weight: 700; font-size: 20px; letter-spacing: -.01em; color: var(--cc-ink); line-height: 1; text-align: left; }
.cc-plogo__name small {
	display: block; font-family: var(--cc-sans); font-weight: 600; font-size: 10px; letter-spacing: .12em;
	text-transform: uppercase; color: var(--cc-steel); margin-top: 3px;
}
/* image-logo variant */
.cc-plogo--img { padding: 18px 28px; min-height: 84px; }
.cc-plogo__img { max-height: 48px; width: auto; max-width: 180px; object-fit: contain; display: block; }

/* ===== CTA band ===== */
.cc-cta-band { background: var(--cc-graphite); color: #fff; position: relative; overflow: hidden; }
.cc-cta-band__in { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.cc-cta-band h2 { font-size: clamp(30px, 3.6vw, 42px); max-width: 20ch; color: #fff; }
.cc-cta-band p { margin: 14px 0 0; color: var(--cc-cloud); max-width: 42ch; }
.cc-cta-band__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.cc-cta-band__glow {
	position: absolute; right: -60px; top: -40px; width: 360px; height: 360px; border-radius: 50%;
	background: radial-gradient(circle at center, rgba(12, 192, 223, .16), transparent 68%); pointer-events: none;
}

/* ===== Blog cards ===== */
.cc-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.cc-post-card { border-radius: var(--cc-radius); display: flex; flex-direction: column; }
.cc-post-card__ph { display: block; position: relative; border-radius: var(--cc-radius); overflow: hidden; aspect-ratio: 3 / 2; }
.cc-post-card__ph img, .cc-post-card__ph .cc-ph-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cc-post-card:hover .cc-post-card__ph img { transform: scale(1.05); }
.cc-post-card__meta {
	display: flex; gap: 10px; align-items: center; margin-top: 20px; font-size: 12px;
	font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--cc-steel);
}
.cc-dot { width: 4px; height: 4px; border-radius: 50%; background: var(--cc-red); }
.cc-post-card__title { font-size: 21px; margin-top: 12px; }
.cc-post-card__title a { color: inherit; text-decoration: none; transition: color .15s; }
.cc-post-card__title a:hover { color: var(--cc-red); }
.cc-post-card__more {
	margin-top: 14px; font-size: 14.5px; font-weight: 600; color: var(--cc-ink);
	display: inline-flex; gap: 8px; align-items: center; text-decoration: none;
}
.cc-post-card__more [data-icon] svg { width: 16px; height: 16px; transition: transform .2s; }
.cc-post-card__more:hover { color: var(--cc-red); }
.cc-post-card__more:hover [data-icon] svg { transform: translateX(4px); }

/* ===== Footer ===== */
.cc-footer { background: var(--cc-graphite); color: #fff; padding-top: 84px; }
.cc-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 48px; padding-bottom: 54px; }
.cc-footer .cc-logo__name { color: #fff; }
.cc-footer__tag { margin: 20px 0 0; color: var(--cc-cloud); font-size: 15px; max-width: 26ch; }
.cc-footer .widget-title {
	font-size: 13px; text-transform: uppercase; letter-spacing: .12em; color: #fff;
	margin: 0 0 22px; font-family: var(--cc-sans); font-weight: 700;
}
.cc-footer__list { display: flex; flex-direction: column; gap: 13px; }
.cc-footer__row { color: var(--cc-cloud); font-size: 15px; transition: color .15s; display: flex; gap: 11px; align-items: flex-start; text-decoration: none; }
a.cc-footer__row:hover { color: #fff; }
.cc-footer__row [data-icon] svg { width: 17px; height: 17px; color: var(--cc-aqua); flex: none; margin-top: 3px; }
.cc-footer__quick-list { display: flex; flex-direction: column; gap: 13px; margin: 0; padding: 0; list-style: none; }
.cc-footer__quick-list a { color: var(--cc-cloud); font-size: 15px; transition: color .15s, padding .15s; text-decoration: none; }
.cc-footer__quick-list a:hover { color: #fff; padding-left: 5px; }
.cc-footer .widget ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.cc-footer .widget a { color: var(--cc-cloud); text-decoration: none; }
.cc-footer .widget a:hover { color: #fff; }
.cc-socials { display: flex; gap: 12px; margin-top: 18px; }
.cc-socials a {
	width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .18);
	display: flex; align-items: center; justify-content: center; color: #fff; transition: .15s; text-decoration: none;
}
.cc-socials a:hover { background: #fff; color: var(--cc-graphite); border-color: #fff; }
.cc-footer__hours { margin: 6px 0 0; color: var(--cc-cloud); font-size: 15px; line-height: 1.8; }
.cc-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1); padding-block: 26px;
	display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.cc-footer__bottom p { color: #69829C; font-size: 14px; margin: 0; }
.cc-footer__acn { white-space: nowrap; opacity: .85; padding-left: 10px; }
.cc-footer__row--company { color: #fff; font-weight: 600; letter-spacing: .02em; }
.cc-footer__mini { display: flex; gap: 24px; }
.cc-footer__mini a { color: #69829C; font-size: 14px; text-decoration: none; }
.cc-footer__mini a:hover { color: #fff; }

/* ===== Services intro (archive) ===== */
.cc-svc-intro {
	padding-top: calc(var(--cc-header-h) + 72px); padding-bottom: 48px; overflow: hidden;
	background: radial-gradient(1000px 520px at 92% -10%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 60%), var(--cc-white);
}
.cc-svc-intro h1 { font-size: clamp(40px, 5vw, 62px); letter-spacing: -.025em; margin: 22px 0 0; }
.cc-svc-intro__sub { margin: 22px 0 0; font-size: 19px; color: var(--cc-steel); max-width: 34em; }
.cc-svc-intro__ctas { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-top: 32px; }
.cc-svc-intro__stats { display: flex; gap: 34px; margin-top: 42px; padding-top: 30px; border-top: 1px solid var(--cc-hairline); max-width: 560px; }
.cc-stat b { font-family: var(--cc-display); font-size: 30px; display: block; line-height: 1; }
.cc-stat span { font-size: 14px; color: var(--cc-steel); }

/* catalog header + chips */
.cc-cat-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; flex-wrap: wrap; margin-bottom: 38px; }
.cc-cat-head h2 { font-size: clamp(30px, 3.4vw, 42px); margin-top: 14px; max-width: 18ch; }
.cc-cat-filter { display: flex; gap: 10px; flex-wrap: wrap; }
.cc-chip {
	border: 1.5px solid var(--cc-hairline); background: #fff; color: var(--cc-ink); border-radius: 999px;
	padding: 11px 20px; font-size: 14.5px; font-weight: 600; transition: .15s; cursor: pointer;
	display: inline-flex; align-items: center; gap: 8px; font-family: var(--cc-sans);
}
.cc-chip__n { font-size: 12px; color: var(--cc-steel); font-weight: 600; }
.cc-chip:hover { border-color: var(--cc-ink); }
.cc-chip.is-active { background: var(--cc-ink); color: #fff; border-color: var(--cc-ink); }
.cc-chip.is-active .cc-chip__n { color: rgba(255, 255, 255, .6); }
.cc-cat-empty { text-align: center; color: var(--cc-steel); padding: 40px 0; font-size: 16px; }

/* catalog split cards */
.cc-catalog { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.cc-scard {
	display: flex; background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	overflow: hidden; position: relative; min-height: 212px; text-decoration: none; color: inherit;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s;
}
.cc-scard:hover { transform: translateY(-5px); box-shadow: var(--cc-shadow); border-color: transparent; }
.cc-scard__media { position: relative; width: 42%; flex: none; overflow: hidden; background: var(--cc-mist); }
.cc-scard__media img, .cc-scard__media .cc-ph-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.cc-scard:hover .cc-scard__media img { transform: scale(1.07); }
.cc-scard__media::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(11, 37, 69, .12), transparent 32%, transparent 70%, rgba(11, 37, 69, .16));
}
.cc-scard__cat {
	position: absolute; top: 13px; left: 13px; z-index: 2; font-size: 10.5px; font-weight: 700;
	letter-spacing: .07em; text-transform: uppercase; color: var(--cc-ink);
	background: rgba(255, 255, 255, .93); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	padding: 6px 11px; border-radius: 999px;
}
.cc-scard__sheen {
	position: absolute; top: -10%; bottom: -10%; width: 48%; left: -65%; z-index: 2; pointer-events: none;
	background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .55), transparent);
	transform: skewX(-16deg); transition: left .6s ease;
}
.cc-scard:hover .cc-scard__sheen { left: 150%; }
.cc-scard__body { flex: 1; padding: 24px 26px 22px; display: flex; flex-direction: column; min-width: 0; }
.cc-scard__body .cc-ic {
	width: 42px; height: 42px; border-radius: 11px; background: var(--cc-mist); color: var(--cc-ink);
	transition: .2s; margin-bottom: 14px; flex: none;
}
.cc-scard:hover .cc-scard__body .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-scard__body .cc-ic [data-icon] svg { width: 21px; height: 21px; }
.cc-scard h3 { font-size: 20px; letter-spacing: -.01em; }
.cc-scard p { margin: 8px 0 0; font-size: 14.5px; color: var(--cc-steel); flex: 1; line-height: 1.55; }
.cc-scard__learn { margin-top: 16px; display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: var(--cc-ink); }
.cc-scard__learn [data-icon] svg { width: 16px; height: 16px; transition: transform .2s; }
.cc-scard:hover .cc-scard__learn { color: var(--cc-red); }
.cc-scard:hover .cc-scard__learn [data-icon] svg { transform: translateX(5px); }
.cc-scard .cc-swipe { left: 42%; background: var(--cc-red); z-index: 3; }
.cc-scard:hover .cc-swipe { transform: skewX(-24deg) translateX(0); }
.cc-scard.is-hidden { display: none; }

/* overlay tile variant (Services B) — add .cc-catalog--overlay to the grid */
.cc-catalog--overlay { grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cc-catalog--overlay .cc-scard { display: block; min-height: 310px; color: #fff; border: none; isolation: isolate; }
.cc-catalog--overlay .cc-scard__media { position: absolute; inset: 0; width: 100%; z-index: -2; }
.cc-catalog--overlay .cc-scard__media::after {
	background: linear-gradient(180deg, rgba(11, 37, 69, .10) 0%, rgba(10, 26, 47, .18) 38%, rgba(10, 26, 47, .9) 100%);
}
.cc-catalog--overlay .cc-scard__body { position: relative; z-index: 3; height: 100%; min-height: 310px; justify-content: flex-end; padding: 24px; }
.cc-catalog--overlay .cc-scard__body .cc-ic { background: rgba(255, 255, 255, .16); color: #fff; margin: 0 0 auto; border: 1px solid rgba(255, 255, 255, .22); }
.cc-catalog--overlay .cc-scard h3, .cc-catalog--overlay .cc-scard__learn { color: #fff; }
.cc-catalog--overlay .cc-scard p { color: rgba(255, 255, 255, .84); }
.cc-catalog--overlay .cc-swipe { left: 0; background: var(--cc-aqua); }

/* why choose (archive) */
.cc-choose { background: var(--cc-mist); }
.cc-choose__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: start; }
.cc-choose__head { position: sticky; top: 110px; }
.cc-choose__head h2 { font-size: clamp(30px, 3.4vw, 42px); margin-top: 16px; max-width: 14ch; }
.cc-choose__head p { margin: 18px 0 0; color: var(--cc-steel); max-width: 36ch; }
.cc-choose__list { display: flex; flex-direction: column; gap: 18px; }
.cc-cpoint {
	display: flex; gap: 22px; background: #fff; border: 1px solid var(--cc-hairline);
	border-radius: var(--cc-radius); padding: 28px 30px; transition: transform .2s, box-shadow .2s;
}
.cc-cpoint:hover { transform: translateX(6px); box-shadow: var(--cc-shadow); }
.cc-cpoint .cc-ic { width: 56px; height: 56px; border-radius: var(--cc-radius-sm); background: var(--cc-ink); color: #fff; flex: none; }
.cc-cpoint .cc-ic [data-icon] svg { width: 26px; height: 26px; }
.cc-cpoint h3 { font-size: 21px; }
.cc-cpoint p { margin: 7px 0 0; color: var(--cc-steel); font-size: 15.5px; }

/* ===== Service detail ===== */
.cc-dt-head {
	padding-top: calc(var(--cc-header-h) + 50px); padding-bottom: 40px;
	background: radial-gradient(900px 460px at 90% -20%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 62%), var(--cc-white);
}
.cc-crumbs { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--cc-steel); font-weight: 500; flex-wrap: wrap; }
.cc-crumbs a { color: var(--cc-steel); text-decoration: none; }
.cc-crumbs a:hover { color: var(--cc-red); }
.cc-crumbs [data-icon] svg { width: 14px; height: 14px; color: var(--cc-hairline); }
.cc-crumbs__here { color: var(--cc-ink); font-weight: 600; }
.cc-dt-head__grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: 48px; align-items: end; margin-top: 30px; }
.cc-dt-title { display: flex; gap: 20px; align-items: flex-start; }
.cc-dt-title__badge {
	width: 64px; height: 64px; border-radius: var(--cc-radius); background: var(--cc-ink); color: #fff;
	flex: none; display: flex; align-items: center; justify-content: center;
}
.cc-dt-title__badge [data-icon] svg { width: 30px; height: 30px; }
.cc-dt-title .cc-eyebrow { margin-bottom: 12px; }
.cc-dt-title h1 { font-size: clamp(38px, 4.6vw, 56px); letter-spacing: -.025em; }
.cc-dt-lead { margin: 22px 0 0; font-size: 18.5px; color: var(--cc-steel); max-width: 60ch; line-height: 1.6; }
.cc-dt-quote-card {
	background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 26px; box-shadow: var(--cc-shadow);
}
.cc-dt-quote-card h3 { font-size: 19px; }
.cc-dt-quote-card p { margin: 7px 0 0; font-size: 14px; color: var(--cc-steel); }
.cc-dt-quote-card .cc-btn { margin-top: 18px; }
.cc-dt-quote-card__phone {
	display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 12px;
	font-weight: 600; color: var(--cc-ink); font-size: 15px; text-decoration: none;
}
.cc-dt-quote-card__phone [data-icon] svg { width: 17px; height: 17px; color: var(--cc-red); }
.cc-dt-quote-card__phone:hover { color: var(--cc-red); }

.cc-frame { border-radius: var(--cc-radius); overflow: hidden; box-shadow: var(--cc-shadow-lg); }
.cc-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cc-frame--banner { aspect-ratio: 21 / 9; }
.cc-dt-hero { position: relative; margin-top: 14px; }
.cc-dt-hero__frame { position: relative; }
.cc-dt-hero__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(11, 37, 69, .28), transparent 52%); }
.cc-dt-hero__accent {
	position: absolute; left: 34px; bottom: -1px; height: 6px; width: 120px;
	background: var(--cc-red); transform: skewX(-24deg); border-radius: 3px;
}

.cc-dt-service__grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 56px; align-items: start; }
.cc-dt-prose h2 { font-size: clamp(28px, 3.2vw, 38px); letter-spacing: -.02em; margin-top: 14px; }
.cc-dt-prose p { margin: 18px 0 0; color: var(--cc-steel); font-size: 17px; line-height: 1.7; }
.cc-checklist {
	background: var(--cc-ink); color: #fff; border-radius: var(--cc-radius);
	padding: 34px 32px; position: sticky; top: 104px;
}
.cc-checklist h3 { font-size: 21px; color: #fff; }
.cc-checklist p { margin: 6px 0 0; color: var(--cc-cloud); font-size: 14px; }
.cc-checklist ul { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; gap: 15px; }
.cc-checklist li { display: flex; gap: 13px; align-items: flex-start; font-size: 15.5px; line-height: 1.4; }
.cc-checklist li [data-icon] svg { width: 21px; height: 21px; color: var(--cc-aqua); flex: none; margin-top: 1px; }

.cc-dt-why { background: var(--cc-mist); }
.cc-dt-why__head { max-width: 28ch; }
.cc-dt-why__head h2 { font-size: clamp(28px, 3.2vw, 38px); margin-top: 14px; letter-spacing: -.02em; }
.cc-dt-why__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin-top: 44px; }
.cc-wcard {
	background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 26px 22px; transition: transform .2s, box-shadow .2s;
}
.cc-wcard:hover { transform: translateY(-5px); box-shadow: var(--cc-shadow); }
.cc-wcard .cc-ic { width: 46px; height: 46px; border-radius: 12px; background: var(--cc-mist); color: var(--cc-ink); margin-bottom: 18px; transition: .2s; }
.cc-wcard:hover .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-wcard .cc-ic [data-icon] svg { width: 23px; height: 23px; }
.cc-wcard h4 { font-size: 16px; line-height: 1.25; }
.cc-wcard p { margin: 8px 0 0; font-size: 13.5px; color: var(--cc-steel); line-height: 1.5; }

.cc-dt-rc { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cc-rc { position: relative; border-radius: var(--cc-radius); padding: 38px; overflow: hidden; border: 1px solid var(--cc-hairline); }
.cc-rc .cc-ic { width: 52px; height: 52px; border-radius: 13px; margin-bottom: 20px; }
.cc-rc .cc-ic [data-icon] svg { width: 25px; height: 25px; }
.cc-rc h3 { font-size: 23px; }
.cc-rc p { margin: 11px 0 0; color: var(--cc-steel); font-size: 16px; line-height: 1.6; max-width: 42ch; }
.cc-rc--home { background: var(--cc-mist); }
.cc-rc--home .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-rc--biz { background: var(--cc-mist-deep); }
.cc-rc--biz .cc-ic { background: var(--cc-red); color: #fff; }

.cc-dt-related h2 { font-size: clamp(28px, 3.2vw, 38px); letter-spacing: -.02em; margin-top: 14px; }
.cc-rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 38px; }
.cc-rel {
	display: block; border-radius: var(--cc-radius); overflow: hidden; border: 1px solid var(--cc-hairline);
	background: #fff; text-decoration: none; color: inherit;
	transition: transform .22s, box-shadow .22s, border-color .22s;
}
.cc-rel:hover { transform: translateY(-5px); box-shadow: var(--cc-shadow); border-color: transparent; }
.cc-rel__ph { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.cc-rel__ph img, .cc-rel__ph .cc-ph-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2, .7, .2, 1); }
.cc-rel:hover .cc-rel__ph img { transform: scale(1.07); }
.cc-rel__ph .cc-ic {
	position: absolute; left: 16px; bottom: 16px; width: 42px; height: 42px; border-radius: 11px;
	background: rgba(11, 37, 69, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	color: #fff; border: 1px solid rgba(255, 255, 255, .2);
}
.cc-rel__ph .cc-ic [data-icon] svg { width: 21px; height: 21px; }
.cc-rel__body { padding: 22px 24px 24px; }
.cc-rel h3 { font-size: 19px; }
.cc-rel p { margin: 7px 0 0; font-size: 14px; color: var(--cc-steel); }
.cc-rel:hover .cc-scard__learn { color: var(--cc-red); }

/* enquiry */
.cc-dt-enquiry { background: var(--cc-mist); }
.cc-enq-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
.cc-enq-intro h2 { font-size: clamp(28px, 3.2vw, 38px); margin-top: 14px; letter-spacing: -.02em; }
.cc-enq-intro p { margin: 18px 0 0; color: var(--cc-steel); font-size: 17px; line-height: 1.65; max-width: 38ch; }
.cc-enq-contacts { margin-top: 28px; display: flex; flex-direction: column; gap: 14px; }
.cc-enq-contacts a, .cc-enq-contacts span { display: flex; align-items: center; gap: 13px; color: var(--cc-ink); font-weight: 500; font-size: 15.5px; text-decoration: none; }
.cc-enq-contacts [data-icon] svg { width: 19px; height: 19px; color: var(--cc-aqua); flex: none; }
.cc-enq-contacts a:hover { color: var(--cc-red); }
.cc-enq-card { background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius); padding: 34px; box-shadow: var(--cc-shadow); }
.cc-enq-card__placeholder { color: var(--cc-steel); font-size: 15.5px; margin: 0; }

/* assurances strip */
.cc-dt-assure {
	display: flex; flex-wrap: wrap; gap: 14px 32px; margin-top: 28px; padding: 22px 26px;
	background: var(--cc-mist); border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
}
.cc-dt-assure__item { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--cc-ink); }
.cc-dt-assure__item [data-icon] svg { width: 19px; height: 19px; color: var(--cc-aqua); flex: none; }

/* process steps */
.cc-dt-process__head { max-width: 30ch; }
.cc-dt-process__head h2 { font-size: clamp(28px, 3.2vw, 38px); margin-top: 14px; letter-spacing: -.02em; }
.cc-dt-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 44px; }
.cc-dt-step {
	position: relative; background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 28px 26px; counter-increment: cc-step; transition: transform .2s, box-shadow .2s;
}
.cc-dt-step:hover { transform: translateY(-4px); box-shadow: var(--cc-shadow); }
.cc-dt-step .cc-ic { width: 50px; height: 50px; border-radius: 13px; background: var(--cc-mist); color: var(--cc-ink); margin-bottom: 18px; transition: .2s; }
.cc-dt-step:hover .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-dt-step .cc-ic [data-icon] svg { width: 24px; height: 24px; }
.cc-dt-step h3 { font-size: 19px; }
.cc-dt-step p { margin: 9px 0 0; color: var(--cc-steel); font-size: 14.5px; line-height: 1.55; }
.cc-dt-step::after {
	content: ""; position: absolute; right: -10px; top: 50%; width: 20px; height: 2px; z-index: 1;
	background: repeating-linear-gradient(90deg, var(--cc-hairline) 0 5px, transparent 5px 9px);
}
.cc-dt-step:last-child::after { display: none; }

/* FAQ accordion */
.cc-dt-faq__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 56px; align-items: start; }
.cc-dt-faq__head { position: sticky; top: 104px; }
.cc-dt-faq__head h2 { font-size: clamp(28px, 3.2vw, 38px); margin-top: 14px; letter-spacing: -.02em; max-width: 16ch; }
.cc-dt-faq__head p { margin: 18px 0 0; color: var(--cc-steel); font-size: 16px; line-height: 1.6; max-width: 34ch; }
.cc-dt-faq__ask { margin-top: 24px; display: inline-flex; align-items: center; gap: 9px; font-weight: 600; color: var(--cc-ink); text-decoration: none; }
.cc-dt-faq__ask [data-icon] svg { width: 17px; height: 17px; color: var(--cc-red); }
.cc-dt-faq__ask:hover { color: var(--cc-red); }
.cc-faq-list { border-top: 1px solid var(--cc-hairline); }
.cc-faq-item { border-bottom: 1px solid var(--cc-hairline); }
.cc-faq-q {
	width: 100%; background: none; border: none; display: flex; justify-content: space-between; align-items: center;
	gap: 24px; padding: 24px 2px; text-align: left; cursor: pointer; font-family: var(--cc-display);
	font-weight: 600; font-size: 19px; color: var(--cc-ink); transition: color .15s;
}
.cc-faq-q:hover { color: var(--cc-red); }
.cc-faq-tog {
	width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--cc-hairline); flex: none;
	display: flex; align-items: center; justify-content: center; color: var(--cc-ink);
	transition: background .2s, border-color .2s, color .2s;
}
.cc-faq-item.is-open .cc-faq-tog { background: var(--cc-ink); border-color: var(--cc-ink); color: #fff; }
.cc-faq-tog [data-icon] svg { width: 18px; height: 18px; }
.cc-faq-tog .cc-faq-minus { display: none; }
.cc-faq-item.is-open .cc-faq-tog .cc-faq-plus { display: none; }
.cc-faq-item.is-open .cc-faq-tog .cc-faq-minus { display: flex; }
.cc-faq-a { display: none; padding: 0 2px 26px; }
.cc-faq-item.is-open .cc-faq-a { display: block; }
.cc-faq-a p { color: var(--cc-steel); font-size: 16px; line-height: 1.7; max-width: 62ch; margin: 0; }

/* ===== Contact page ===== */
.cc-ct-hero {
	padding-top: calc(var(--cc-header-h) + 70px); padding-bottom: 96px;
	background: radial-gradient(1000px 520px at 12% -12%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 58%), var(--cc-white);
}
.cc-ct-grid { display: grid; grid-template-columns: .86fr 1.14fr; gap: 60px; align-items: start; }
.cc-ct-info h1 { font-size: clamp(38px, 4.6vw, 58px); letter-spacing: -.025em; margin: 22px 0 0; }
.cc-ct-info__sub { margin: 22px 0 0; font-size: 18px; color: var(--cc-steel); line-height: 1.65; max-width: 40ch; }
.cc-ct-list { margin-top: 38px; display: flex; flex-direction: column; gap: 8px; }
.cc-ct-row { display: flex; gap: 18px; align-items: flex-start; padding: 18px; border-radius: var(--cc-radius-sm); transition: background .15s; text-decoration: none; color: inherit; }
.cc-ct-row:hover { background: var(--cc-mist); }
.cc-ct-row .cc-ic { width: 50px; height: 50px; border-radius: 13px; background: var(--cc-ink); color: #fff; flex: none; }
.cc-ct-row .cc-ic [data-icon] svg { width: 23px; height: 23px; }
.cc-ct-row__lbl { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--cc-steel); }
.cc-ct-row__val { display: block; margin-top: 4px; font-size: 17px; font-weight: 600; color: var(--cc-ink); line-height: 1.4; }
a.cc-ct-row:hover .cc-ct-row__val { color: var(--cc-red); }
.cc-ct-row__val span { display: block; font-weight: 500; font-size: 15px; color: var(--cc-steel); }
.cc-ct-legal {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	margin: 26px 0 0; padding: 16px 18px 0; border-top: 1px solid var(--cc-hairline);
	font-size: 13.5px; font-weight: 600; letter-spacing: .04em; color: var(--cc-steel);
}
.cc-ct-card { background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius); padding: 38px; box-shadow: var(--cc-shadow-lg); }
.cc-ct-card h2 { font-size: 25px; letter-spacing: -.01em; }
.cc-ct-card__hint { margin: 8px 0 18px; color: var(--cc-steel); font-size: 15px; }

.cc-ct-map { padding-bottom: 40px; }
.cc-map-card { position: relative; border-radius: var(--cc-radius); overflow: hidden; border: 1px solid var(--cc-hairline); box-shadow: var(--cc-shadow); background: var(--cc-mist); }
.cc-map-card iframe { position: relative; z-index: 1; display: block; width: 100%; height: 440px; border: 0; background: transparent; filter: grayscale(.18) contrast(1.02); }
.cc-map-pin-card { position: absolute; left: 28px; top: 28px; z-index: 3; max-width: 300px; background: #fff; border-radius: var(--cc-radius); padding: 24px; box-shadow: var(--cc-shadow-lg); }
.cc-map-pin-card .cc-ic { width: 46px; height: 46px; border-radius: 12px; background: var(--cc-red); color: #fff; margin-bottom: 16px; }
.cc-map-pin-card .cc-ic [data-icon] svg { width: 22px; height: 22px; }
.cc-map-pin-card h3 { font-size: 18px; }
.cc-map-pin-card p { margin: 8px 0 0; color: var(--cc-steel); font-size: 14.5px; line-height: 1.55; }
.cc-map-pin-card__dir { margin-top: 14px; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; color: var(--cc-ink); text-decoration: none; }
.cc-map-pin-card__dir [data-icon] svg { width: 16px; height: 16px; transition: transform .2s; }
.cc-map-pin-card__dir:hover { color: var(--cc-red); }
.cc-map-pin-card__dir:hover [data-icon] svg { transform: translateX(4px); }
.cc-ct-areas { display: flex; align-items: center; justify-content: center; gap: 13px; text-align: center; color: var(--cc-steel); font-size: 16px; padding: 34px 0 8px; margin: 0; }
.cc-ct-areas [data-icon] svg { width: 20px; height: 20px; color: var(--cc-aqua); flex: none; }
.cc-ct-areas b { color: var(--cc-ink); font-weight: 600; }

/* ===== Forms: CF7 / WPForms / core, matching the design ===== */
.cc-enq-card .wpcf7-form p, .cc-ct-card .wpcf7-form p { margin: 0 0 18px; }
.wpcf7-form .wpcf7-form-control-wrap { display: block; }
.cc-entry input[type="text"], .cc-entry input[type="email"], .cc-entry input[type="tel"], .cc-entry input[type="url"], .cc-entry textarea,
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form input[type="url"], .wpcf7-form textarea,
.wpforms-container input[type="text"], .wpforms-container input[type="email"], .wpforms-container input[type="tel"], .wpforms-container textarea,
.cc-comments input[type="text"], .cc-comments input[type="email"], .cc-comments input[type="url"], .cc-comments textarea,
.cc-searchform__input {
	width: 100%; border: 1.5px solid var(--cc-hairline); border-radius: 12px;
	padding: 14px 16px; font-family: var(--cc-sans); font-size: 15.5px; color: var(--cc-ink);
	background: #fff; transition: border-color .15s, box-shadow .15s; box-sizing: border-box;
}
.wpcf7-form textarea, .cc-comments textarea { min-height: 120px; resize: vertical; }
.wpcf7-form input:focus, .wpcf7-form textarea:focus,
.wpforms-container input:focus, .wpforms-container textarea:focus,
.cc-comments input:focus, .cc-comments textarea:focus,
.cc-searchform__input:focus {
	outline: none; border-color: var(--cc-aqua); box-shadow: 0 0 0 4px rgba(12, 192, 223, .14);
}
.wpcf7-form input[type="submit"], .wpforms-container button[type="submit"], .cc-comments input[type="submit"] {
	display: inline-flex; align-items: center; gap: 10px; border: none; border-radius: var(--cc-radius-sm);
	padding: 15px 26px; font-size: 16px; font-weight: 600; font-family: var(--cc-sans);
	background: var(--cc-red); color: #fff; cursor: pointer;
	box-shadow: 0 8px 22px rgba(230, 57, 70, .28);
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.wpcf7-form input[type="submit"]:hover, .wpforms-container button[type="submit"]:hover, .cc-comments input[type="submit"]:hover {
	background: var(--cc-red-dark); transform: translateY(-2px);
}
.wpcf7-form .wpcf7-not-valid { border-color: var(--cc-red) !important; box-shadow: 0 0 0 4px rgba(230, 57, 70, .12) !important; }
.wpcf7-form .wpcf7-not-valid-tip { color: var(--cc-red); font-size: 12.5px; font-weight: 600; margin-top: 6px; }
.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0; border-radius: 12px; padding: 16px 20px; font-size: 15px;
	border: 1px solid var(--cc-hairline);
}
.wpcf7 form.sent .wpcf7-response-output { background: rgba(12, 192, 223, .1); border-color: rgba(12, 192, 223, .3); color: var(--cc-ink); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { background: rgba(230, 57, 70, .07); border-color: rgba(230, 57, 70, .3); color: var(--cc-ink); }
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; color: var(--cc-steel); cursor: pointer; }
.wpcf7-form .wpcf7-acceptance input { width: 18px; height: 18px; accent-color: var(--cc-red); flex: none; margin-top: 2px; }

.cc-searchform { display: flex; gap: 12px; max-width: 480px; }
.cc-searchform__input { flex: 1; }

/* built-in enquiry/contact form */
.cc-form { display: flex; flex-direction: column; gap: 18px; }
.cc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cc-form__field { display: block; margin: 0; }
.cc-form input[type="text"], .cc-form input[type="email"], .cc-form input[type="tel"], .cc-form textarea {
	width: 100%; border: 1.5px solid var(--cc-hairline); border-radius: 12px; padding: 14px 16px;
	font-family: var(--cc-sans); font-size: 15.5px; color: var(--cc-ink); background: #fff;
	box-sizing: border-box; transition: border-color .15s, box-shadow .15s;
}
.cc-form textarea { min-height: 130px; resize: vertical; }
.cc-form input::placeholder, .cc-form textarea::placeholder { color: #90a0b3; }
.cc-form input:focus, .cc-form textarea:focus { outline: none; border-color: var(--cc-aqua); box-shadow: 0 0 0 4px rgba(12, 192, 223, .14); }
.cc-form input:invalid:not(:placeholder-shown) { border-color: var(--cc-red); }
.cc-form__foot { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 4px; }
.cc-form__consent { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; color: var(--cc-steel); cursor: pointer; flex: 1; min-width: 220px; margin: 0; }
.cc-form__consent input { width: 18px; height: 18px; accent-color: var(--cc-red); flex: none; margin-top: 2px; }
.cc-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cc-form__alert { border-radius: 12px; padding: 16px 20px; font-size: 15px; margin-bottom: 18px; border: 1px solid var(--cc-hairline); }
.cc-form__alert--ok { background: rgba(12, 192, 223, .1); border-color: rgba(12, 192, 223, .3); color: var(--cc-ink); }
.cc-form__alert--err { background: rgba(230, 57, 70, .07); border-color: rgba(230, 57, 70, .3); color: var(--cc-ink); }

/* ===== Page chrome ===== */
.cc-page-head {
	padding-top: calc(var(--cc-header-h) + 72px); padding-bottom: 48px;
	background: radial-gradient(900px 460px at 90% -20%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 62%), var(--cc-white);
}
.cc-page-head--post { padding-bottom: 36px; }
.cc-page-title { font-size: clamp(36px, 4.6vw, 56px); letter-spacing: -.025em; margin-top: 12px; }
.cc-page-desc { margin-top: 16px; color: var(--cc-steel); max-width: 60ch; }

.cc-entry { max-width: 820px; margin: 0 auto; padding: 40px var(--cc-gut) 96px; }
.cc-entry > .alignwide { max-width: 1240px; margin-left: 50%; transform: translateX(-50%); width: min(1240px, calc(100vw - 48px)); }
.cc-entry > .alignfull { max-width: 100vw; margin-left: 50%; transform: translateX(-50%); width: 100vw; }
.cc-entry p { color: var(--cc-steel); line-height: 1.7; }
.cc-entry h2, .cc-entry h3 { margin-top: 1.6em; }
.cc-entry a { color: var(--cc-ink); text-decoration: underline; text-underline-offset: 2px; }
.cc-entry a:hover { color: var(--cc-red); }
.cc-entry blockquote {
	margin: 1.6em 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--cc-red);
	font-family: var(--cc-display); font-weight: 600; font-size: 1.2em; color: var(--cc-ink);
}
.cc-entry img { border-radius: var(--cc-radius); }

.cc-page-links { margin-top: 32px; font-weight: 600; }
.cc-post-nav { display: flex; justify-content: space-between; gap: 24px; padding: 32px 0 64px; border-top: 1px solid var(--cc-hairline); }
.cc-post-nav a { color: var(--cc-ink); font-weight: 600; text-decoration: none; }
.cc-post-nav a:hover { color: var(--cc-red); }

.cc-pagination { margin-top: 56px; }
.cc-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.cc-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px;
	padding: 0 14px; border: 1.5px solid var(--cc-hairline); border-radius: 999px;
	color: var(--cc-ink); font-weight: 600; font-size: 14.5px; text-decoration: none; transition: .15s;
}
.cc-pagination .page-numbers.current { background: var(--cc-ink); color: #fff; border-color: var(--cc-ink); }
.cc-pagination .page-numbers:hover:not(.current) { border-color: var(--cc-ink); }

/* comments */
.cc-comments { padding-bottom: 96px; }
.cc-comments__title { font-size: clamp(24px, 2.6vw, 32px); margin-bottom: 28px; }
.cc-comments__list { list-style: none; margin: 0 0 40px; padding: 0; }
.cc-comments__list .comment-body {
	border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 24px; margin-bottom: 18px;
}
.cc-comments__list .children { list-style: none; padding-left: 32px; }
.cc-comments__list .comment-meta { display: flex; align-items: center; gap: 12px; }
.cc-comments__list .avatar { border-radius: 50%; }
.cc-comments__list .comment-metadata { font-size: 13px; color: var(--cc-steel); }
.cc-comments__list .comment-content { margin-top: 12px; color: var(--cc-steel); }
.cc-comments__list .reply a { font-size: 14px; font-weight: 600; color: var(--cc-ink); text-decoration: none; }
.cc-comments__list .reply a:hover { color: var(--cc-red); }
.comment-form label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.comment-form p { margin: 0 0 18px; }

/* 404 */
.cc-404 { padding-top: calc(var(--cc-header-h) + 112px); }
.cc-404__in { max-width: 720px; text-align: center; }
.cc-404 h1 { font-size: clamp(38px, 5vw, 60px); margin-top: 16px; }
.cc-404 .cc-lead { margin-top: 20px; }
.cc-404__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }
.cc-404__search { margin-top: 36px; display: flex; justify-content: center; }
.cc-404 .cc-eyebrow { justify-content: center; }
.cc-404 .cc-eyebrow::before { display: inline-block; }

/* no results */
.cc-none { max-width: 560px; }
.cc-none h2 { font-size: clamp(26px, 3vw, 36px); }
.cc-none p { color: var(--cc-steel); margin: 14px 0 22px; }

/* ===== WordPress core requirements ===== */
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background-color: var(--cc-mist); clip: auto !important; clip-path: none;
	color: var(--cc-ink); display: block; font-size: 14px; font-weight: 700;
	height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px;
	text-decoration: none; top: 5px; width: auto; z-index: 100000;
}
.alignleft { float: left; margin-right: 1.5em; margin-bottom: 1.5em; }
.alignright { float: right; margin-left: 1.5em; margin-bottom: 1.5em; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; margin-bottom: 1.5em; }
.wp-caption { max-width: 100%; margin-bottom: 1.5em; }
.wp-caption img { display: block; margin-left: auto; margin-right: auto; }
.wp-caption .wp-caption-text { margin: .8em 0; font-size: 14px; color: var(--cc-steel); text-align: center; }
.gallery-caption { display: block; font-size: 14px; color: var(--cc-steel); }
.sticky { display: block; }
.bypostauthor { display: block; }

/* pattern helpers */
.cc-mission .cc-mission__quote { text-wrap: balance; line-height: 1.18; letter-spacing: -.02em; }
.cc-facts .wp-block-column { padding: 8px 0; }
.cc-btn-ghost-dark .wp-block-button__link { color: #fff; border: 1.5px solid rgba(255, 255, 255, .28); background: transparent; }

/* ===== About page ===== */
.cc-about-hero {
	padding-top: calc(var(--cc-header-h) + 72px); padding-bottom: 96px; overflow: hidden;
	background: radial-gradient(1000px 520px at 90% -12%, var(--cc-mist) 0%, rgba(238, 244, 248, 0) 60%), var(--cc-white);
}
.cc-about-hero__grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 64px; align-items: center; }
.cc-about-hero h1 { font-size: clamp(38px, 4.8vw, 60px); letter-spacing: -.025em; margin: 22px 0 0; }
.cc-about-hero__copy p { margin: 22px 0 0; color: var(--cc-steel); font-size: 18px; line-height: 1.7; max-width: 54ch; }
.cc-about-trust { display: flex; flex-wrap: wrap; gap: 10px 26px; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--cc-hairline); }
.cc-about-hero__media { position: relative; }
.cc-about-hero__frame { aspect-ratio: 4 / 5; }
.cc-about-hero__accent {
	position: absolute; left: -14px; top: 40px; bottom: 40px; width: 6px; border-radius: 6px; z-index: 2;
	background: linear-gradient(var(--cc-aqua), var(--cc-red)); transform: skewY(-6deg);
}
.cc-about-hero__pin {
	position: absolute; left: 22px; bottom: 22px; z-index: 2; display: inline-flex; align-items: center; gap: 9px;
	background: rgba(11, 37, 69, .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff;
	border: 1px solid rgba(255, 255, 255, .2); padding: 10px 16px; border-radius: 999px; font-size: 14px; font-weight: 600;
}
.cc-about-hero__pin [data-icon] svg { width: 17px; height: 17px; }

.cc-about-mission { background: var(--cc-mist); }
.cc-about-mission .cc-wrap { max-width: 1080px; text-align: center; }
.cc-about-mission .cc-eyebrow { justify-content: center; }
.cc-about-mission__mark { font-family: var(--cc-display); font-size: 90px; line-height: .4; color: var(--cc-hairline); display: block; margin-top: 22px; }
.cc-about-mission blockquote {
	margin: 6px 0 0; font-family: var(--cc-display); font-weight: 600; letter-spacing: -.02em;
	font-size: clamp(28px, 4vw, 46px); line-height: 1.18; color: var(--cc-ink); text-wrap: balance;
}
.cc-about-mission__by { margin-top: 30px; font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--cc-steel); }

.cc-about-values__head { max-width: 30ch; }
.cc-about-values__head h2 { font-size: clamp(30px, 3.4vw, 42px); margin-top: 14px; letter-spacing: -.02em; }
.cc-about-values__head p { margin: 16px 0 0; color: var(--cc-steel); max-width: 50ch; }
.cc-about-values__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 46px; }
.cc-vcard2 {
	position: relative; background: #fff; border: 1px solid var(--cc-hairline); border-radius: var(--cc-radius);
	padding: 36px 32px; overflow: hidden; transition: transform .2s, box-shadow .2s;
}
.cc-vcard2:hover { transform: translateY(-5px); box-shadow: var(--cc-shadow); }
.cc-vcard2__num { font-family: var(--cc-display); font-weight: 700; font-size: 15px; color: var(--cc-hairline); }
.cc-vcard2 .cc-ic { width: 56px; height: 56px; border-radius: 15px; background: var(--cc-mist); color: var(--cc-ink); margin: 18px 0 22px; transition: .2s; }
.cc-vcard2:hover .cc-ic { background: var(--cc-ink); color: #fff; }
.cc-vcard2 .cc-ic [data-icon] svg { width: 27px; height: 27px; }
.cc-vcard2 h3 { font-size: 22px; }
.cc-vcard2 p { margin: 11px 0 0; color: var(--cc-steel); font-size: 15.5px; line-height: 1.6; }
.cc-vcard2::after {
	content: ""; position: absolute; left: 0; right: 42%; bottom: 0; height: 4px; background: var(--cc-red);
	transform: skewX(-24deg) translateX(-101%); transition: transform .32s ease;
}
.cc-vcard2:hover::after { transform: skewX(-24deg) translateX(0); }

.cc-about-local { background: var(--cc-ink); color: #fff; }
.cc-about-local__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.cc-fact { padding: 8px 40px; border-left: 1px solid rgba(255, 255, 255, .12); }
.cc-fact:first-child { padding-left: 0; border-left: none; }
.cc-fact .cc-ic {
	width: 52px; height: 52px; border-radius: 13px; background: rgba(255, 255, 255, .08); color: var(--cc-aqua);
	margin-bottom: 22px; border: 1px solid rgba(255, 255, 255, .12);
}
.cc-fact .cc-ic [data-icon] svg { width: 25px; height: 25px; }
.cc-fact h3 { font-size: 21px; color: #fff; }
.cc-fact p { margin: 9px 0 0; color: var(--cc-cloud); font-size: 15.5px; line-height: 1.6; }
.cc-fact__hours { margin-top: 12px; display: flex; flex-direction: column; gap: 4px; color: var(--cc-cloud); font-size: 15px; }

/* ===== Responsive ===== */
@media (max-width: 1080px) {
	.cc-hero__grid { grid-template-columns: 1fr .9fr; gap: 40px; }
	.cc-why__grid, .cc-proof__grid { grid-template-columns: 1fr; gap: 36px; }
	.cc-why__head, .cc-choose__head, .cc-checklist { position: static; }
	.cc-bento { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
	.cc-tile--lg { grid-column: span 2; grid-row: span 1; }
	.cc-svc-intro__grid, .cc-choose__grid { grid-template-columns: 1fr; gap: 40px; }
	.cc-dt-head__grid { grid-template-columns: 1fr; gap: 30px; align-items: start; }
	.cc-dt-quote-card { max-width: 420px; }
	.cc-dt-service__grid, .cc-enq-grid { grid-template-columns: 1fr; gap: 34px; }
	.cc-dt-why__grid { grid-template-columns: repeat(2, 1fr); }
	.cc-dt-process__grid { grid-template-columns: repeat(2, 1fr); }
	.cc-dt-step::after { display: none; }
	.cc-dt-faq__grid { grid-template-columns: 1fr; gap: 26px; }
	.cc-dt-faq__head { position: static; }
	.cc-rel-grid { grid-template-columns: 1fr 1fr; }
	.cc-ct-grid { grid-template-columns: 1fr; gap: 40px; }
	.cc-ct-card { max-width: 640px; }
	.cc-about-hero__grid { grid-template-columns: 1fr; gap: 44px; }
	.cc-about-hero__frame { aspect-ratio: 16 / 11; max-width: 560px; }
	.cc-about-values__grid { grid-template-columns: 1fr; gap: 18px; }
	.cc-about-local__grid { grid-template-columns: 1fr; gap: 36px; }
	.cc-fact { padding: 0; border-left: none; border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 30px; }
	.cc-fact:first-child { border-top: none; padding-top: 0; }
}
@media (max-width: 920px) {
	.cc-catalog { grid-template-columns: 1fr; }
	.cc-catalog--overlay { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
	.cc-nav, .cc-header__cta .cc-phone-link, .cc-header__cta .cc-btn { display: none; }
	.cc-burger { display: flex; }
	.cc-header-style-two { --cc-header-h: 98px; }
	.cc-logo__stacked, .cc-logo__img--two { height: 84px; max-height: 84px; }
	.cc-section { padding-block: 72px; }
	.cc-hero, .cc-svc-intro, .cc-ct-hero, .cc-about-hero { padding-top: calc(var(--cc-header-h) + 42px); }
	.cc-page-head, .cc-dt-head { padding-top: calc(var(--cc-header-h) + 32px); }
	.cc-404 { padding-top: calc(var(--cc-header-h) + 72px); }
	.cc-hero__grid { grid-template-columns: 1fr; gap: 44px; }
	.cc-reveal { aspect-ratio: 4 / 3; max-width: 520px; }
	.cc-why__cards { grid-template-columns: 1fr; }
	.cc-how__steps { grid-template-columns: 1fr; gap: 34px; }
	.cc-how__line { display: none; }
	.cc-blog-grid { grid-template-columns: 1fr; }
	.cc-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
	.admin-bar .cc-header { top: 46px; }
}
@media (max-width: 760px) {
	.cc-frame--banner { aspect-ratio: 16 / 11; }
	.cc-dt-rc { grid-template-columns: 1fr; }
	.cc-rel-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.cc-bento { grid-template-columns: 1fr; }
	.cc-tile, .cc-tile--lg, .cc-tile--wide { grid-column: span 1; }
	.cc-footer__grid { grid-template-columns: 1fr; }
	.cc-hero__ctas .cc-btn, .cc-cta-band__actions .cc-btn { flex: 1; justify-content: center; }
	.cc-reveal-float { display: none; }
	.cc-dt-why__grid { grid-template-columns: 1fr; }
	.cc-dt-process__grid { grid-template-columns: 1fr; }
	.cc-dt-assure { gap: 12px 24px; padding: 18px 20px; }
	.cc-faq-q { font-size: 17px; }
	.cc-form__row { grid-template-columns: 1fr; }
	.cc-dt-title { gap: 15px; }
	.cc-dt-title__badge { width: 54px; height: 54px; }
	.cc-catalog--overlay { grid-template-columns: 1fr; }
	.cc-scard { flex-direction: column; min-height: 0; }
	.cc-scard__media { width: 100%; aspect-ratio: 16 / 10; }
	.cc-scard .cc-swipe { left: 0; }
	.cc-logo__lockup { height: 42px; }
	.cc-ct-card { padding: 26px; }
	.cc-map-pin-card { position: static; max-width: none; box-shadow: none; border-bottom: 1px solid var(--cc-hairline); border-radius: 0; }
	.cc-enq-card, .cc-quote { padding: 26px; }
}
