/**
 * Est. 1973 booking + offers component layer (Wave 3.5).
 *
 * One file for two families because both are single-page (offers: the small
 * /offers/{slug}/ leaf set; booking: the single /schedule-service/ page) and
 * share no dispatcher of their own — see ccs-est1973-flag.php's enqueue gate,
 * which loads this on ccs_is_offers_family() OR the booking path check
 * (booking's recipe predicate, ccs_is_booking_family(), is disabled per the
 * Wave 2.5 regression and intentionally NOT used here).
 *
 * Offers section: re-skins partials/masthead.php (kicker/seal, same as
 * service — Wave 3.1) plus the same generic ACF flexible-content blocks
 * (wysiwyg/image-text/icons-buttons/fx-accordion/full-width-cta/cta) and
 * mu-plugin growth/answer/captain sections that service pages use, since
 * offers leaf pages are built from the same block palette via page.php. No
 * sticky sidebar: page.php's .e73-inner-grid wrap is gated strictly to
 * ccs_is_service_page_family(), so offers content renders as plain flow
 * inside main#main, same as before.
 *
 * Booking section: restyles ONLY the chrome around the RITA wizard on
 * block-templates/innerpage/contact-form.php (.half-form-text--contact) —
 * background, headings, breadcrumbs, the "Reach out to us!" highlight card,
 * and the form-column heading. Per the sacred constraint (see CLAUDE.md /
 * Wave 2.5), this file never selects .ccs-book-shell, .ccs-book-skeleton,
 * .sk*, or the iframe itself, and never changes padding/border-width on
 * .half-form-text__form (its background/radius/shadow are safe — they don't
 * alter the box's content width, so the iframe's rendered size is untouched).
 * Booking carries no critical-CSS variant (ccs_is_booking_family() stays
 * false, so ccs-cleanup-assets.php's recipe ternary never reaches it) — this
 * component layer is booking's only re-skin surface.
 *
 * Scoped under body.ccs-est1973 AND only enqueued on the offers/booking
 * gate above, so this never reaches service/city/combo/blog pages before
 * their own wave.
 */

/* ==================== OFFERS ==================== */

body.ccs-est1973.page-template-default,
body.ccs-est1973 main#main {
	background: var(--e73-cream);
}

/* ---- masthead (duplicated from the critical-CSS variant so the
   non-inlined properties still apply after the full sheet loads) ---- */
body.ccs-est1973 .masthead--innerpage {
	background: var(--e73-dark);
	border-bottom: 3px double var(--e73-line);
}

body.ccs-est1973 .masthead--innerpage__bg img {
	filter: sepia(.15) saturate(.92) contrast(1.02);
}

body.ccs-est1973 .masthead--innerpage__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(36, 28, 20, .55), rgba(36, 28, 20, .78));
}

body.ccs-est1973 .masthead--innerpage__text h1 {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: var(--e73-porcelain);
}

body.ccs-est1973 .masthead--innerpage__subtitle {
	font-family: var(--e73-font-serif);
	color: #D9CDB4;
}

body.ccs-est1973 .e73-kicker {
	display: block;
	font-family: var(--e73-font-script);
	font-size: clamp(20px, 2.3vw, 28px);
	color: var(--e73-butter);
	margin-bottom: 10px;
	transform: rotate(-2deg);
}

body.ccs-est1973 .masthead--innerpage .breadcrumbs {
	font-family: var(--e73-font-slab);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #C6B694;
}

body.ccs-est1973 .masthead--innerpage .breadcrumbs a {
	color: var(--e73-butter-2);
}

body.ccs-est1973 .masthead--innerpage__wave path {
	fill: var(--e73-cream);
}

body.ccs-est1973 .e73-seal {
	position: absolute;
	z-index: 4;
	right: clamp(16px, 4vw, 44px);
	bottom: 28px;
	width: 60px;
	height: 60px;
	filter: drop-shadow(0 8px 16px rgba(42, 33, 26, .35));
}

/* ---- generic headings/copy across every ACF block on the page ---- */
body.ccs-est1973 .fx-block h2,
body.ccs-est1973 .fx-block h3:not(.icons-button__title):not(.tab-accordion__tab) {
	font-family: var(--e73-font-slab);
	color: var(--e73-ink);
	text-transform: uppercase;
	letter-spacing: .015em;
}

body.ccs-est1973 .fx-block p,
body.ccs-est1973 .fx-block li {
	font-family: var(--e73-font-serif);
	color: var(--e73-body);
}

body.ccs-est1973 .fx-block h2::after {
	content: "";
	display: block;
	width: 64px;
	border-bottom: 2.5px dotted var(--e73-brass);
	margin-top: 10px;
}

/* ---- ink-border content cards: wysiwyg / image-text / icons-buttons / accordion ---- */
body.ccs-est1973 .fx-block.wysiwyg,
body.ccs-est1973 .fx-block.image-text,
body.ccs-est1973 .fx-block.icons-buttons,
body.ccs-est1973 .fx-block.fx-accordion {
	background: var(--e73-porcelain) !important;
}

body.ccs-est1973 main#main .fx-block.wysiwyg .container > .row,
body.ccs-est1973 main#main .fx-block.icons-buttons .icons-buttons__headlines {
	border: 2.5px solid var(--e73-ink);
	border-radius: var(--e73-radius-lg);
	background: var(--e73-cream);
	box-shadow: var(--e73-shadow-card);
	padding: clamp(20px, 3vw, 32px);
	margin-bottom: clamp(20px, 2.6vw, 28px);
}

/* ---- icons-buttons: medallion treatment ---- */
body.ccs-est1973 .fx-block.icons-buttons.bg-light-blue,
body.ccs-est1973 .fx-block.icons-buttons.bg-dark-blue {
	background: var(--e73-teal) !important;
}

body.ccs-est1973 .fx-block.icons-buttons.bg-light-blue .icons-buttons__headlines *,
body.ccs-est1973 .fx-block.icons-buttons.bg-dark-blue .icons-buttons__headlines * {
	color: var(--e73-porcelain);
}

body.ccs-est1973 .icons-button-item {
	text-align: center;
}

body.ccs-est1973 .icons-button,
body.ccs-est1973 .icons-button-item > div {
	background: rgba(255, 250, 238, .06);
	border: 1.5px solid rgba(232, 184, 75, .5);
	border-radius: var(--e73-radius-lg);
	padding: 26px 20px;
	transition: transform .18s ease, background .18s ease;
}

body.ccs-est1973 .icons-button:hover {
	transform: translateY(-4px);
	background: rgba(255, 250, 238, .1);
}

body.ccs-est1973 .icons-button__title {
	font-family: var(--e73-font-slab);
	color: var(--e73-porcelain);
	font-size: 16px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

body.ccs-est1973 .fx-block.icons-buttons:not(.bg-light-blue):not(.bg-dark-blue) .icons-button-item > div {
	background: var(--e73-cream);
	border-color: var(--e73-line);
}

body.ccs-est1973 .fx-block.icons-buttons:not(.bg-light-blue):not(.bg-dark-blue) .icons-button__title {
	color: var(--e73-ink);
}

/* ---- accordion (financing / membership FAQ) ---- */
body.ccs-est1973 .fx-accordion__panel {
	border: 2px solid var(--e73-ink);
	border-radius: 9px;
	margin-bottom: 12px;
	background: var(--e73-cream);
	overflow: hidden;
}

body.ccs-est1973 .fx-accordion__panel.is-expanded {
	background: var(--e73-porcelain);
}

body.ccs-est1973 .fx-accordion__panel__toggle {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--e73-ink);
}

/* ---- final CTA (dark) ---- */
body.ccs-est1973 .fx-block.full-width-cta,
body.ccs-est1973 .fx-block.cta {
	background: var(--e73-dark) !important;
}

body.ccs-est1973 .fx-block.full-width-cta .full-width-cta__text *,
body.ccs-est1973 .fx-block.cta .cta__content * {
	color: #D9CDB4;
}

body.ccs-est1973 .fx-block.full-width-cta h2,
body.ccs-est1973 .fx-block.full-width-cta h3,
body.ccs-est1973 .fx-block.cta h2,
body.ccs-est1973 .fx-block.cta h3 {
	color: var(--e73-porcelain) !important;
	font-family: var(--e73-font-slab);
}

body.ccs-est1973 .fx-block.full-width-cta .btn.btn-primary,
body.ccs-est1973 .fx-block.cta .btn.btn-primary {
	background: var(--e73-teal);
	border-color: var(--e73-teal);
	box-shadow: var(--e73-shadow-btn-teal);
	font-family: var(--e73-font-slab);
}

body.ccs-est1973 .fx-block.full-width-cta .btn.btn-secondary,
body.ccs-est1973 .fx-block.cta .btn.btn-secondary {
	border-color: #F1E7CF;
	color: #F6EFDE;
	background: transparent;
	font-family: var(--e73-font-slab);
}

/* ---- mu-plugin growth / answer / captain sections ---- */
body.ccs-est1973 .ccs-answer-card,
body.ccs-est1973 .ccs-seo-content,
body.ccs-est1973 .ccs-growth-faq,
body.ccs-est1973 .ccs-growth-links {
	background: var(--e73-porcelain);
	border: 2.5px solid var(--e73-line);
	border-radius: var(--e73-radius-lg);
}

body.ccs-est1973 .ccs-answer-card__eyebrow,
body.ccs-est1973 .ccs-captain__eyebrow {
	font-family: var(--e73-font-script);
	color: var(--e73-red);
}

body.ccs-est1973 .ccs-captain {
	background: var(--e73-teal);
	color: #D9EAE6;
}

body.ccs-est1973 .ccs-captain__cta {
	font-family: var(--e73-font-slab);
	background: var(--e73-butter);
	color: var(--e73-ink);
}

/* ---- generic buttons everywhere inside the recipe ---- */
body.ccs-est1973 main#main .btn.btn-primary,
body.ccs-est1973 .header-btn .btn.btn-primary {
	font-family: var(--e73-font-slab);
	letter-spacing: .06em;
}

/* ==================== BOOKING ==================== */
/* block-templates/innerpage/contact-form.php — the /schedule-service/ page's
   only content block. Never touches .ccs-book-shell / .ccs-book-skeleton /
   .sk* / the iframe (sacred, see file header). */

body.ccs-est1973 .half-form-text--contact {
	background: var(--e73-dark);
}

body.ccs-est1973 .half-form-text--contact:before {
	background: var(--e73-dark);
}

body.ccs-est1973 .half-form-text--contact .breadcrumbs-link,
body.ccs-est1973 .half-form-text--contact .breadcrumbs a,
body.ccs-est1973 .half-form-text--contact .breadcrumbs li {
	font-family: var(--e73-font-slab);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--e73-butter-2);
}

/* The block was a second <h1> under the masthead's on /schedule-service/;
   it is a section heading now — same visual treatment, correct hierarchy. */
body.ccs-est1973 .half-form-text__text h1,
body.ccs-est1973 .half-form-text__text h2.half-form-text__title {
	font-family: var(--e73-font-slab);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: var(--e73-porcelain);
}

body.ccs-est1973 .half-form-text--contact p {
	font-family: var(--e73-font-serif);
	color: #D9CDB4;
}

body.ccs-est1973 .half-form-text--contact .half-form-text__highlight {
	background: var(--e73-teal);
	border-radius: var(--e73-radius-lg);
}

body.ccs-est1973 .half-form-text--contact .half-form-text__highlight h2 {
	font-family: var(--e73-font-slab);
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--e73-porcelain);
}

body.ccs-est1973 .half-form-text--contact .half-form-text__info {
	color: var(--e73-porcelain);
	font-family: var(--e73-font-serif);
}

body.ccs-est1973 .half-form-text--contact .half-form-text__info i {
	color: var(--e73-butter);
}

body.ccs-est1973 .half-form-text--contact:after {
	background: var(--e73-line);
}

/* .half-form-text__form is the white card wrapping the sacred iframe shell —
   background/radius/shadow only (no padding or border-width, which would
   shift the box's content width and, with it, the iframe's rendered size). */
body.ccs-est1973 .half-form-text__form {
	background: var(--e73-porcelain);
	border-radius: var(--e73-radius-lg);
	box-shadow: var(--e73-shadow-card);
}

body.ccs-est1973 .half-form-text__form h2 {
	font-family: var(--e73-font-slab);
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--e73-ink);
}

body.ccs-est1973 .half-form-text__form p {
	font-family: var(--e73-font-serif);
	color: var(--e73-body);
}

body.ccs-est1973 .half-form-text__bg {
	filter: sepia(.15) saturate(.92) contrast(1.02);
}

/* ---- focus states ---- */
body.ccs-est1973 .half-form-text :where(a, button):focus-visible {
	outline: 3px solid var(--e73-teal);
	outline-offset: 3px;
}

/* Footer fold floors for the offers/booking family. */
body.ccs-est1973 .footer-seo-services h3,
body.ccs-est1973 .ccs-footer-growth-links__grid summary h3 {
	font-size: var(--e73-fs-base) !important;
	line-height: 1.3;
}
