/* ============================================================
   Service Page — design tokens & shared utilities
   (replaces missing homepage-desktop.css for service templates)
   ============================================================ */

.page-template-service-page,
.has-service-page-block,
.service-page-block,
.page-template-service-page .service-page {
	--forest: #1a3d2b;
	--forest-deep: #0f1f16;
	--stone: #c4a882;
	--stone-deep: #8a7457;
	--white: #ffffff;
	--offwhite: #f0ede8;
	--paper: #f6f3ee;
	--gold: #d4a843;
	--ink: #1b1f1b;

	--font-serif: "Cormorant Garamond", "Playfair Display", "Times New Roman", serif;
	--font-sans: "Josefin Sans", "Futura PT", "Helvetica Neue", Arial, sans-serif;
	--font-body: "Lato", "Source Sans 3", -apple-system, system-ui, sans-serif;
}

.page-template-service-page .hero-section {
	display: none;
}

/* Flatten content layout only — never reset #masthead / footer .container (breaks nav). */
.lighthouse-service-page-layout #content,
.lighthouse-service-page-layout .site-content,
.lighthouse-service-page-layout .site-main,
.lighthouse-service-page-layout .service-page-main,
.lighthouse-service-page-layout .site-main .container,
.lighthouse-service-page-layout .content-wrapper,
.lighthouse-service-page-layout .page-content,
.lighthouse-service-page-layout .entry-content,
.lighthouse-service-page-layout .wp-block-post-content,
.lighthouse-service-page-layout .is-layout-constrained,
.lighthouse-service-page-layout .is-layout-flow {
	max-width: none;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
}

/* Restore standard header & footer container spacing from style.css */
.lighthouse-service-page-layout #masthead .container,
.lighthouse-service-page-layout #colophon .container,
.lighthouse-service-page-layout .site-footer .container {
	max-width: var(--container-max-width, 1400px);
	width: 100%;
	padding-left: var(--container-padding, 1rem);
	padding-right: var(--container-padding, 1rem);
	margin-left: auto;
	margin-right: auto;
}

.lighthouse-service-page-layout .service-page-main,
.lighthouse-service-page-layout .site-main {
	padding: 0;
}

.lighthouse-service-page-layout .page-content {
	background-color: transparent;
}

.lighthouse-service-page-layout .service-page,
.service-page-block.service-page {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	width: 100%;
	max-width: none;
}

.lighthouse-service-page-layout .alignfull,
.lighthouse-service-page-layout .alignwide,
.wp-block-custom-blocks-service-page,
.wp-block-custom-blocks-service-page.alignfull,
.service-page-block,
.service-page-block.alignfull,
.service-page-block.alignwide {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.lighthouse-service-page-layout #content {
	overflow-x: clip;
}

@keyframes heroKenBurns {
	from {
		transform: scale(1.04);
	}
	to {
		transform: scale(1.1);
	}
}

/* Shared type */
.d-eyebrow {
	font-family: var(--font-sans);
	font-size: 11px;
	letter-spacing: 0.24em;
	font-weight: 500;
	text-transform: uppercase;
	color: var(--forest);
	margin-bottom: 22px;
}

.d-eyebrow--light {
	color: var(--stone);
}

.d-serif-heading {
	font-family: var(--font-serif);
	font-size: clamp(2.25rem, 4vw, 3.25rem);
	line-height: normal;
	font-weight: 400;
	letter-spacing: -0.012em;
	color: var(--forest-deep);
	text-wrap: balance;
	margin-bottom: 0;
}

.d-serif-heading em {
	font-style: italic;
	color: var(--stone-deep);
	font-weight: 400;
}

.d-serif-heading--light {
	color: var(--white);
	line-height: normal;
}

.d-serif-heading--light em {
	color: var(--stone);
}

.d-lede {
	font-size: 18px;
	line-height: 1.65;
	color: #3a4339;
	margin-top: 24px;
	margin-bottom: 28px;
	max-width: 540px;
}

.d-muted {
	font-size: 16px;
	line-height: 1.65;
	color: #5a6258;
	margin-top: 18px;
	max-width: 560px;
}

/* Buttons */
.d-btn-cta,
.d-btn-ghost {
	font-family: var(--font-sans);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 500;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	transition: background 240ms ease, border-color 240ms ease, color 240ms ease;
	border-radius: 0;
	text-decoration: none;
}

.d-btn-cta {
	background: var(--forest);
	border: 1px solid var(--white);
	color: var(--white);
	padding: 18px 26px;
}

.d-btn-cta:hover,
.d-btn-cta:focus-visible {
	background: var(--stone);
	border-color: var(--stone);
	color: var(--forest);
}

.d-btn-ghost {
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.85);
	color: var(--white);
	padding: 16px 22px;
}

.d-btn-ghost:hover,
.d-btn-ghost:focus-visible {
	background: var(--white);
	color: var(--forest);
}

.d-btn-arrow {
	transition: transform 240ms ease;
}

.d-btn-cta:hover .d-btn-arrow,
.d-btn-cta:focus-visible .d-btn-arrow,
.d-btn-ghost:hover .d-btn-arrow,
.d-btn-ghost:focus-visible .d-btn-arrow {
	transform: translateX(4px);
}

.d-scroll-line {
	width: 1px;
	height: 48px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.65), transparent);
}

.service-page-editor {
	padding: var(--spacing-2xl) var(--spacing-lg);
	max-width: 1280px;
	margin: 0 auto;
}

/* ------------------------------------------------------------------
   Theme isolation — global style.css rules leak into the block via
   h1–h6, [class*="title"], and .entry-content paragraph margins.
   ------------------------------------------------------------------ */

.service-page-block h1,
.service-page-block h2,
.service-page-block h3,
.service-page-block h4,
.service-page-block h5,
.service-page-block h6,
.service-page h1,
.service-page h2,
.service-page h3,
.service-page h4,
.service-page h5,
.service-page h6 {
	font-family: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
	margin: 0;
}

.service-page-block [class*="title"],
.service-page-block [class*="subtitle"],
.service-page [class*="title"],
.service-page [class*="subtitle"] {
	font-family: inherit;
}

.service-page-block p,
.service-page p {
	margin: 0;
}

.service-page-block .s-hero-heading,
.service-page .s-hero-heading {
	font-family: var(--font-serif);
	font-size: 72px;
	line-height: 1.04;
	font-weight: 400;
	letter-spacing: -0.014em;
	color: var(--white);
	margin-bottom: 30px;
}

.service-page-block .d-serif-heading,
.service-page .d-serif-heading,
.service-page-block .d-serif-heading--light,
.service-page .d-serif-heading--light {
	line-height: normal;
}

.service-page-block .s-hero-heading p,
.service-page-block .d-serif-heading p,
.service-page .s-hero-heading p,
.service-page .d-serif-heading p {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: normal;
	letter-spacing: inherit;
	color: inherit;
}

.service-page-block .s-service-title,
.service-page-block .s-step-title,
.service-page-block .s-why-item-title,
.service-page .s-service-title,
.service-page .s-step-title,
.service-page .s-why-item-title {
	font-family: var(--font-serif);
}

.entry-content .service-page-block,
.entry-content .service-page-block p,
.entry-content .service-page-block h1,
.entry-content .service-page-block h2,
.entry-content .service-page-block h3 {
	margin: 0;
}

.entry-content .service-page-block .s-hero-content .s-hero-sub {
	margin-top: clamp(1rem, 2.5vw, 1.75rem);
	margin-bottom: clamp(2.25rem, 3.5vw, 3rem);
}

