/*
 * Triple C Ranch — component styles.
 * Colors, fonts and sizes come from theme.json presets (--wp--preset--*).
 */

:root {
	--tcr-ivory: var(--wp--preset--color--ivory);
	--tcr-linen: var(--wp--preset--color--linen);
	--tcr-charcoal: var(--wp--preset--color--charcoal);
	--tcr-stone: var(--wp--preset--color--stone);
	--tcr-sage: var(--wp--preset--color--sage);
	--tcr-sage-deep: var(--wp--preset--color--sage-deep);
	--tcr-champagne: var(--wp--preset--color--champagne);
	--tcr-bronze: var(--wp--preset--color--bronze);
	--tcr-rule: rgba(57, 56, 48, 0.16);
	--tcr-header-h: 5.25rem;
	--tcr-ease: cubic-bezier(0.2, 0.6, 0.2, 1);
	--tcr-label: var(--wp--preset--font-family--label);
	--tcr-serif: var(--wp--preset--font-family--serif);
}

/* ---------- Base ---------- */

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--tcr-header-h) + 1rem); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--tcr-sage); color: var(--tcr-charcoal); }
img { height: auto; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--tcr-sage-deep);
	outline-offset: 3px;
	border-radius: 1px;
}
:where(.has-charcoal-background-color, .has-sage-deep-background-color, .wp-block-cover, .site-footer, .tcr-package--featured, .has-hero .site-header-part:not(.is-scrolled)) :where(a, button, summary):focus-visible {
	outline-color: var(--tcr-champagne);
}

p a, li a, .wp-block-details a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }

h1 em, h2 em, h3 em { font-style: italic; font-weight: 500; }
.has-text-align-center { text-wrap: balance; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

.skip-link.screen-reader-text:focus { z-index: 100000; }

/* Eyebrow labels */
.is-style-tcr-eyebrow,
.tcr-eyebrow {
	font-family: var(--tcr-label);
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--tcr-bronze);
	margin-bottom: 0.25rem !important;
}
:where(.wp-block-cover, .has-charcoal-background-color, .has-sage-deep-background-color) .is-style-tcr-eyebrow { color: var(--tcr-champagne); }
.wp-block-cover .is-style-tcr-eyebrow { color: #F1E7D2; }

/* Lead paragraph */
.tcr-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--tcr-charcoal); }
.tcr-measure { max-width: var(--wp--custom--measure, 38rem); }
.tcr-muted { color: var(--tcr-stone); }

/* Ornament separator: CCC monogram between two hairlines */
.wp-block-separator.is-style-tcr-ornament {
	border: 0 !important;
	width: 13rem;
	max-width: 70%;
	height: 22px;
	margin-inline: auto;
	opacity: 1;
	background:
		url("../img/ccc-sage.webp") center / auto 20px no-repeat,
		linear-gradient(var(--tcr-champagne), var(--tcr-champagne)) left center / calc(50% - 2.5rem) 1px no-repeat,
		linear-gradient(var(--tcr-champagne), var(--tcr-champagne)) right center / calc(50% - 2.5rem) 1px no-repeat;
}
.wp-block-separator.is-style-tcr-ornament.has-text-align-left,
.tcr-left .wp-block-separator.is-style-tcr-ornament { margin-left: 0; }

/* Section rhythm */
.tcr-section { padding-block: var(--wp--preset--spacing--80); }
.tcr-section--tight { padding-block: var(--wp--preset--spacing--70); }
.tcr-section:not([class*="-background-color"]) + .tcr-section:not([class*="-background-color"]) { padding-top: 0; }
/* Full-width bands sit flush against each other and the footer. */
.wp-block-post-content > .alignfull { margin-block: 0; }
.wp-site-blocks > footer { margin-block-start: 0; }
.tcr-section > :first-child { margin-top: 0; }

/* ---------- Header ---------- */

.site-header-part {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 60;
	background: var(--tcr-ivory);
	color: var(--tcr-charcoal);
	border-bottom: 1px solid var(--tcr-rule);
	transition: background-color 260ms var(--tcr-ease), border-color 260ms var(--tcr-ease), color 260ms var(--tcr-ease);
}
.admin-bar .site-header-part { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header-part { position: absolute; } }

body:not(.has-hero) .wp-site-blocks { padding-top: var(--tcr-header-h); }

.site-header__inner {
	min-height: var(--tcr-header-h);
	padding-inline: var(--wp--style--root--padding-left);
	gap: 1.5rem;
	margin-inline: auto;
	max-width: calc(var(--wp--style--global--wide-size) + 2 * var(--wp--style--root--padding-left));
}
.site-header__logo { flex-shrink: 0; margin: 0; }
.site-header__logo img { width: clamp(104px, 11vw, 136px) !important; height: auto; transition: filter 260ms var(--tcr-ease); }
.site-header__nav { gap: clamp(1rem, 2.4vw, 2.25rem); }

/* Over a hero photo, before scrolling */
.has-hero .site-header-part:not(.is-scrolled) {
	background: transparent;
	border-color: transparent;
	color: #fff;
}
.has-hero .site-header-part:not(.is-scrolled) .site-header__logo img { filter: brightness(0) invert(1); }
.has-hero .site-header-part:not(.is-scrolled) .site-header__cta .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.75);
	background: transparent;
}
.has-hero .site-header-part:not(.is-scrolled) .site-header__cta .wp-block-button__link:hover {
	background: #fff;
	color: var(--tcr-charcoal);
}
.has-hero .site-header-part:not(.is-scrolled) .wp-block-navigation__responsive-container-open { color: #fff; }

/* Navigation */
.site-nav { gap: clamp(1.25rem, 2.2vw, 2.25rem); }
.site-nav .wp-block-navigation-item__content { padding-block: 0.5rem; text-decoration: none; }
.site-nav .wp-block-navigation-item__content:hover,
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav .current-menu-ancestor > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-color: var(--tcr-champagne);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.55em;
}
.site-nav .wp-block-navigation__submenu-container {
	background: var(--tcr-ivory) !important;
	color: var(--tcr-charcoal) !important;
	border: 1px solid var(--tcr-rule) !important;
	min-width: 15rem !important;
	padding: 0.5rem 0;
	box-shadow: 0 18px 40px -20px rgba(57, 56, 48, 0.35);
}
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.65rem 1.25rem; }
.site-nav .wp-block-navigation__submenu-icon { margin-left: 0.4em; }

/* Header CTA */
.site-header__cta .wp-block-button__link { padding: 0.8rem 1.15rem; font-size: 0.8125rem; letter-spacing: 0.14em; white-space: nowrap; }

/* Menu toggles: 44px touch target without changing the icon size */
.site-nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) { padding: 10px; margin: -10px; }

/* Collapse to the overlay menu below 1100px (core switches at 600px) */
@media (min-width: 600px) and (max-width: 1099.98px) {
	.site-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.site-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
}
@media (max-width: 1099.98px) {
	.site-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--tcr-ivory) !important;
		color: var(--tcr-charcoal) !important;
		padding: clamp(1.25rem, 6vw, 3rem);
	}
	.site-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; align-items: flex-start !important; }
	.site-nav .is-menu-open .wp-block-navigation__container { gap: 0.35rem !important; align-items: flex-start !important; }
	.site-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
	.site-nav .is-menu-open .wp-block-navigation-item__content {
		font-family: var(--tcr-serif);
		font-size: clamp(1.75rem, 7vw, 2.4rem);
		text-transform: none;
		letter-spacing: 0;
		line-height: 1.2;
		padding-block: 0.15rem;
	}
	.site-nav .is-menu-open .wp-block-navigation__submenu-container {
		border: 0 !important;
		box-shadow: none;
		padding: 0 0 0.75rem 0.15rem !important;
		background: transparent !important;
	}
	.site-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-family: var(--tcr-label);
		font-size: 0.9375rem;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		padding: 0.4rem 0 !important;
	}
}
@media (max-width: 480px) {
	.site-header__cta .wp-block-button__link { padding: 0.7rem 0.85rem; font-size: 0.75rem; letter-spacing: 0.1em; }
	.site-header__nav { gap: 0.75rem; }
}

/* ---------- Heroes ---------- */

.wp-block-cover.tcr-hero {
	min-height: min(100svh, 62rem) !important;
	padding-top: calc(var(--tcr-header-h) + var(--wp--preset--spacing--60));
	padding-bottom: var(--wp--preset--spacing--70);
	align-items: flex-end;
}
.wp-block-cover.tcr-hero.tcr-hero--page { min-height: min(78svh, 46rem) !important; }
.wp-block-cover.tcr-hero .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(90deg, rgba(33, 32, 27, 0.55) 0%, rgba(33, 32, 27, 0.22) 45%, rgba(33, 32, 27, 0) 70%),
		linear-gradient(180deg, rgba(33, 32, 27, 0.5) 0%, rgba(33, 32, 27, 0) 24%, rgba(33, 32, 27, 0) 42%, rgba(33, 32, 27, 0.72) 100%) !important;
}
.wp-block-cover.tcr-hero { padding-inline: var(--wp--style--root--padding-left); }
.wp-block-cover.tcr-hero.has-custom-content-position .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
	padding-inline: 0;
	color: #fff;
}
.tcr-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: 0 !important; }
.tcr-hero h1 { color: #fff; max-width: 15ch; margin-top: 0.25rem; text-shadow: 0 1px 24px rgba(0, 0, 0, 0.18); }
.tcr-hero--page h1 { max-width: 18ch; }
.tcr-hero p:not(.is-style-tcr-eyebrow) { color: rgba(255, 255, 255, 0.94); max-width: 36rem; font-size: var(--wp--preset--font-size--large); line-height: 1.55; }
.tcr-hero .wp-block-buttons { margin-top: var(--wp--preset--spacing--50); }
.tcr-hero .tcr-credit { position: absolute; right: var(--wp--style--root--padding-right); bottom: 1rem; font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); margin: 0; }

@media (max-width: 600px) {
	.wp-block-cover.tcr-hero { min-height: 92svh !important; padding-bottom: var(--wp--preset--spacing--60); }
	.wp-block-cover.tcr-hero.tcr-hero--page { min-height: 72svh !important; }
	.tcr-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.tcr-hero .wp-block-buttons .wp-block-button { width: 100%; }
	.tcr-hero .wp-block-button__link { width: 100%; text-align: center; }
}

/* Plain page heading (pages without a hero) */
.tcr-page-head { padding-top: var(--wp--preset--spacing--70); padding-bottom: var(--wp--preset--spacing--60); }
.tcr-page-head h1 { font-size: var(--wp--preset--font-size--xx-large); }
.tcr-page-head .alignwide > :is(h1, p) { max-width: 40rem; }

/* ---------- Buttons ---------- */

.wp-block-button__link { transition: background-color 180ms var(--tcr-ease), color 180ms var(--tcr-ease), border-color 180ms var(--tcr-ease); }
.wp-block-button.is-style-tcr-outline .wp-block-button__link {
	background: transparent;
	color: var(--tcr-charcoal);
	border: 1px solid var(--tcr-charcoal);
}
.wp-block-button.is-style-tcr-outline .wp-block-button__link:hover { background: var(--tcr-charcoal); color: #fff; }
.wp-block-button.is-style-tcr-outline-light .wp-block-button__link {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.8);
}
.wp-block-button.is-style-tcr-outline-light .wp-block-button__link:hover { background: #fff; color: var(--tcr-charcoal); border-color: #fff; }
.wp-block-button.is-style-tcr-text .wp-block-button__link {
	background: none;
	border: 0;
	padding: 0.4rem 0;
	color: var(--tcr-charcoal);
	border-bottom: 1px solid var(--tcr-champagne);
	border-radius: 0;
}
.wp-block-button.is-style-tcr-text .wp-block-button__link::after { content: "\2192"; margin-left: 0.6em; display: inline-block; transition: transform 180ms var(--tcr-ease); }
.wp-block-button.is-style-tcr-text .wp-block-button__link:hover { color: var(--tcr-sage-deep); background: none; }
.wp-block-button.is-style-tcr-text .wp-block-button__link:hover::after { transform: translateX(3px); }
.has-charcoal-background-color .wp-block-button.is-style-tcr-text .wp-block-button__link { color: var(--tcr-linen); }

/* ---------- Editorial layouts ---------- */

/* Split: large image and a text column */
.tcr-split { gap: var(--wp--preset--spacing--70) !important; }
.tcr-split .wp-block-image img { width: 100%; object-fit: cover; }
@media (max-width: 781px) {
	.tcr-split { gap: var(--wp--preset--spacing--50) !important; }
	.tcr-split.tcr-split--reverse-mobile { flex-direction: column-reverse; }
}

/* Settings grid: one tall image and two stacked */
.tcr-settings { gap: clamp(1rem, 2vw, 1.75rem) !important; }
.tcr-settings .wp-block-image { margin: 0; }
.tcr-settings .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
.tcr-setting { display: flex; flex-direction: column; gap: 0.85rem; }
.tcr-setting h3 { margin: 0.5rem 0 0; }
.tcr-setting p { margin: 0; color: var(--tcr-stone); max-width: 34rem; }
.tcr-setting--feature .wp-block-image { flex: 1 1 auto; min-height: 22rem; }
.tcr-setting--feature .wp-block-image img { aspect-ratio: auto; }
@media (max-width: 781px) {
	.tcr-settings { grid-template-columns: 1fr !important; }
	.tcr-settings > * { grid-column: auto !important; grid-row: auto !important; }
	.tcr-setting--feature .wp-block-image { min-height: 0; }
	.tcr-setting--feature .wp-block-image img { aspect-ratio: 4 / 3 !important; object-position: 50% 85%; }
}

/* Image with an offset hairline frame */
.tcr-framed { position: relative; }
.tcr-framed::after {
	content: "";
	position: absolute;
	inset: 1rem -1rem -1rem 1rem;
	border: 1px solid var(--tcr-champagne);
	z-index: -1;
	pointer-events: none;
}
@media (max-width: 781px) { .tcr-framed::after { inset: 0.6rem -0.6rem -0.6rem 0.6rem; } }

/* Facts strip */
.tcr-facts { border-block: 1px solid var(--tcr-rule); padding-block: var(--wp--preset--spacing--50); gap: 0 !important; }
.tcr-facts > .wp-block-column { padding: 0.25rem clamp(0.75rem, 2vw, 1.75rem); }
.tcr-facts > .wp-block-column + .wp-block-column { border-left: 1px solid var(--tcr-rule); }
.tcr-facts p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--tcr-stone); line-height: 1.55; }
.tcr-facts p.tcr-fact { font-family: var(--wp--preset--font-family--serif); font-size: 1.5rem; line-height: 1.2; color: var(--tcr-charcoal); margin: 0 0 0.35rem; }
@media (max-width: 781px) {
	.tcr-facts { flex-wrap: wrap !important; }
	.tcr-facts > .wp-block-column { flex-basis: 50% !important; padding-block: 0.85rem; }
	.tcr-facts > .wp-block-column:nth-child(odd) { border-left: 0; padding-left: 0; }
}

/* ---------- Packages ---------- */

.tcr-packages { gap: clamp(1rem, 2.5vw, 2rem) !important; align-items: stretch !important; }
.is-style-tcr-card,
.tcr-package {
	background: #fff;
	border: 1px solid var(--tcr-rule);
	padding: clamp(1.5rem, 3.5vw, 3rem);
}
.tcr-package { display: flex; flex-direction: column; position: relative; height: 100%; }
.tcr-package > * { margin-block: 0; }
.tcr-package > * + * { margin-top: 1rem; }
.tcr-package h3 { font-size: clamp(1.9rem, 3vw, 2.5rem); margin-top: 0.35rem; }
.tcr-package .tcr-price {
	font-family: var(--tcr-serif);
	font-size: clamp(2rem, 3.2vw, 2.6rem);
	line-height: 1;
	color: var(--tcr-charcoal);
	margin-top: 1.25rem;
}
.tcr-package .tcr-price small { font-family: var(--wp--preset--font-family--sans); font-size: 0.875rem; color: var(--tcr-stone); letter-spacing: 0.02em; margin-left: 0.35rem; }
.tcr-package .wp-block-buttons { margin-top: auto; padding-top: 1.5rem; }
.tcr-package--featured { background: var(--tcr-charcoal); color: var(--tcr-linen); border-color: var(--tcr-charcoal); }
.tcr-package--featured h3,
.tcr-package--featured .tcr-price { color: #fff; }
.tcr-package--featured .tcr-price small { color: rgba(235, 233, 215, 0.75); }
.tcr-package--featured .is-style-tcr-eyebrow { color: var(--tcr-champagne); }
.tcr-package--featured .is-style-tcr-ruled li { border-color: rgba(235, 233, 215, 0.18); }
.tcr-package--featured .wp-block-button:not(.is-style-tcr-text) .wp-block-button__link { background: var(--tcr-linen); color: var(--tcr-charcoal); border-color: var(--tcr-linen); }
.tcr-package--featured .wp-block-button:not(.is-style-tcr-text) .wp-block-button__link:hover { background: #fff; border-color: #fff; }
.tcr-package--featured .wp-block-button.is-style-tcr-text .wp-block-button__link { color: var(--tcr-linen); }

/* Ruled list */
.wp-block-list.is-style-tcr-ruled { list-style: none; padding: 0; margin-left: 0; }
.wp-block-list.is-style-tcr-ruled li { padding: 0.7rem 0 0.7rem 1.5rem; border-top: 1px solid var(--tcr-rule); position: relative; line-height: 1.5; }
.wp-block-list.is-style-tcr-ruled li:last-child { border-bottom: 1px solid var(--tcr-rule); }
.wp-block-list.is-style-tcr-ruled li::before {
	content: "";
	position: absolute;
	left: 0.1rem;
	top: 1.2rem;
	width: 0.45rem;
	height: 0.45rem;
	border: 1px solid var(--tcr-champagne);
	transform: rotate(45deg);
}
.wp-block-list.is-style-tcr-ruled.tcr-two-col { columns: 2 18rem; column-gap: 3rem; }
.wp-block-list.is-style-tcr-ruled.tcr-two-col li { break-inside: avoid; border-bottom: 0; }

/* ---------- Details / accordions & FAQ ---------- */

.wp-block-details { border-top: 0; }
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	font-family: var(--tcr-serif);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.25;
	font-weight: 500;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1.5rem;
	padding-right: 0.25rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--sans);
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--tcr-bronze);
	flex-shrink: 0;
	transition: transform 200ms var(--tcr-ease);
}
.wp-block-details[open] > summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { max-width: 46rem; }
.wp-block-details[open] > summary { margin-bottom: 0.75rem; }
.tcr-faq .wp-block-details summary { font-size: clamp(1.3rem, 2.2vw, 1.6rem); }
.tcr-faq .wp-block-details:first-of-type,
.tcr-accordion .wp-block-details:first-of-type { border-top: 1px solid rgba(57, 56, 48, 0.18); }

/* ---------- Gallery ---------- */

.wp-block-gallery.is-style-tcr-mosaic {
	display: block !important;
	columns: 3 16rem;
	column-gap: clamp(0.5rem, 1.2vw, 1rem);
}
.wp-block-gallery.is-style-tcr-mosaic > .wp-block-image {
	width: 100% !important;
	margin: 0 0 clamp(0.5rem, 1.2vw, 1rem) !important;
	break-inside: avoid;
	display: block;
}
.wp-block-gallery.is-style-tcr-mosaic > .wp-block-image img { width: 100%; height: auto !important; object-fit: contain; }
.wp-block-gallery.is-style-tcr-mosaic.columns-2 { columns: 2 16rem; }
.wp-block-gallery.is-style-tcr-mosaic.columns-4 { columns: 4 13rem; }
@media (max-width: 600px) {
	.wp-block-gallery.is-style-tcr-mosaic { columns: 2; }
}
.wp-block-gallery .wp-block-image img { transition: opacity 200ms var(--tcr-ease); }
.wp-block-gallery .wp-block-image:hover img { opacity: 0.92; }

/* Gallery jump links */
.tcr-jump { gap: 0.5rem 1.75rem !important; border-block: 1px solid var(--tcr-rule); padding-block: 1rem; }
.tcr-jump p { margin: 0; font-family: var(--tcr-label); font-size: 0.8125rem; letter-spacing: 0.16em; text-transform: uppercase; }
.tcr-jump a { text-decoration: none; color: var(--tcr-charcoal); }
.tcr-jump a:hover { color: var(--tcr-sage-deep); text-decoration: underline; text-underline-offset: 0.4em; }
.tcr-gallery-section { scroll-margin-top: calc(var(--tcr-header-h) + 1.5rem); }

/* Lightbox overlay color */
.wp-lightbox-overlay .scrim { background-color: rgba(28, 27, 23, 0.94) !important; }

/* ---------- Cards for lodging / ranch places ---------- */

.tcr-place .wp-block-image { margin-bottom: 1rem; overflow: hidden; }
.tcr-place .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 600ms var(--tcr-ease); }
.tcr-place a:hover img, .tcr-place .wp-block-image a:focus-visible img { transform: scale(1.025); }
.tcr-place h3 { margin: 0.25rem 0 0.5rem; }
.tcr-place :is(h2, h3) a { color: inherit; text-decoration: none; }
.tcr-place :is(h2, h3) a:is(:hover, :focus-visible) { text-decoration: underline; text-decoration-color: var(--tcr-champagne); text-underline-offset: 0.2em; }
.tcr-place p { color: var(--tcr-stone); }

/* Reviews */
.tcr-review { margin: 0; padding: 0; }
.tcr-review p { font-family: var(--tcr-serif); font-size: clamp(1.25rem, 2vw, 1.5rem); line-height: 1.4; font-style: italic; margin: 0; }
.tcr-review cite { display: block; margin-top: 0.85rem; font-family: var(--tcr-label); font-style: normal; font-size: 0.8125rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--tcr-stone); }

/* Contact details block */
.tcr-contact-list p { margin: 0 0 1.1rem; }
.tcr-contact-list h3 { font-size: var(--wp--preset--font-size--large); margin-bottom: 0.25rem; }
.tcr-contact-list a { color: var(--tcr-charcoal); }
.tcr-map iframe { width: 100%; aspect-ratio: 4 / 3; border: 0; display: block; filter: saturate(0.85); }

/* Notice (owner-facing fact notes are never published; this is for policies) */
.tcr-note { border-left: 2px solid var(--tcr-champagne); padding: 0.25rem 0 0.25rem 1.25rem; color: var(--tcr-stone); font-size: var(--wp--preset--font-size--small); }

/* Closing CTA cover */
.wp-block-cover.tcr-cta { min-height: min(80svh, 44rem) !important; }
.wp-block-cover.tcr-cta .wp-block-cover__background {
	opacity: 1 !important;
	background:
		radial-gradient(ellipse 60% 55% at 50% 50%, rgba(33, 32, 27, 0.5) 0%, rgba(33, 32, 27, 0) 100%),
		linear-gradient(180deg, rgba(33, 32, 27, 0.3) 0%, rgba(33, 32, 27, 0.5) 50%, rgba(33, 32, 27, 0.7) 100%) !important;
}
.tcr-cta h2 { color: #fff; }
.tcr-cta p { color: rgba(255, 255, 255, 0.92); }

/* ---------- Footer ---------- */

.site-footer { color: var(--tcr-linen); }
.site-footer a { color: var(--tcr-linen); text-decoration-color: rgba(194, 168, 120, 0.6); }
.site-footer a:hover { color: #fff; text-decoration-color: var(--tcr-champagne); }
.site-footer h2, .site-footer h3, .site-footer h4 { color: #fff; }
.site-footer .tcr-footer-label {
	font-family: var(--tcr-label);
	font-size: 0.8125rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--tcr-champagne);
	margin-bottom: 0.75rem;
}
.site-footer p { font-size: var(--wp--preset--font-size--small); line-height: 1.7; margin-block: 0 0.65rem; }
.site-footer .tcr-footer-links { list-style: none; padding: 0; margin: 0; font-size: var(--wp--preset--font-size--small); line-height: 2; }
.site-footer .tcr-footer-links a { text-decoration: none; }
.site-footer .tcr-footer-links a:hover { text-decoration: underline; }
.site-footer .tcr-footer-logo img { width: 200px; height: auto; }
.site-footer .tcr-footer-bottom { border-top: 1px solid rgba(235, 233, 215, 0.16); font-size: 0.8125rem; }
.site-footer .tcr-footer-bottom p { font-size: 0.8125rem; margin: 0; color: rgba(235, 233, 215, 0.75); }

/* ---------- Gravity Forms (Orbital theme) ---------- */

.gform-theme--framework {
	--gf-color-primary: var(--tcr-sage-deep);
	--gf-color-primary-rgb: 78, 97, 89;
	--gf-color-primary-darker: var(--tcr-charcoal);
	--gf-color-primary-contrast: #fff;
	--gf-color-in-ctrl: #fff;
	--gf-color-in-ctrl-contrast: var(--tcr-charcoal);
	--gf-color-in-ctrl-dark: var(--tcr-charcoal);
	--gf-ctrl-border-color: rgba(57, 56, 48, 0.32);
	--gf-ctrl-border-color-hover: var(--tcr-sage-deep);
	--gf-ctrl-border-color-focus: var(--tcr-sage-deep);
	--gf-radius: 2px;
	--gf-ctrl-size: 3.125rem;
	--gf-font-size-primary: 1.0625rem;
	--gf-ctrl-font-size: 1.0625rem;
	--gf-ctrl-label-font-size-primary: 0.9375rem;
	--gf-ctrl-label-font-weight-primary: 700;
	--gf-ctrl-label-color-primary: var(--tcr-charcoal);
	--gf-ctrl-desc-color: var(--tcr-stone);
	--gf-form-gap-y: 1.5rem;
	--gf-ctrl-btn-font-family: var(--tcr-label);
	--gf-ctrl-btn-font-size: 0.875rem;
	--gf-ctrl-btn-font-weight: 500;
	--gf-ctrl-btn-letter-spacing: 0.16em;
	--gf-ctrl-btn-text-transform: uppercase;
	--gf-ctrl-btn-padding-x: 1.75rem;
	--gf-ctrl-btn-size: 3.25rem;
	--gf-font-family-base: var(--wp--preset--font-family--sans);
}
.gform-theme--framework .gform_footer { margin-top: 0.5rem; }
.gform-theme--framework .gform-datepicker-toggle { min-inline-size: 28px !important; min-block-size: 28px !important; }
/* GF prints its button type per form, so match the site's buttons here. */
.tcr-form-wrap .gform-theme--framework .gform_footer .gform_button {
	font-family: var(--tcr-label) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	padding-inline: 1.75rem !important;
	min-height: 3.25rem;
	border-radius: 0 !important;
}
.tcr-form-wrap .gform-theme--framework .gform_footer .gform_button:is(:hover, :focus-visible) { background-color: var(--tcr-charcoal) !important; }
.gform-theme--framework .gfield_required { color: var(--tcr-bronze); }
.gform_confirmation_message {
	font-family: var(--tcr-serif);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.35;
	padding: 2rem;
	border: 1px solid var(--tcr-champagne);
	background: #fff;
}
.tcr-form-wrap { background: #fff; border: 1px solid var(--tcr-rule); padding: clamp(1.25rem, 4vw, 3rem); }

/* ---------- 404 ---------- */
.tcr-404 { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ---------- Print ---------- */
@media print {
	.site-header-part, .site-footer, .wp-block-buttons { display: none !important; }
	body:not(.has-hero) .wp-site-blocks { padding-top: 0; }
}
