/**
 * Scissors & Razors — frontend utilities theme.json cannot express.
 */

/* sr-skip-link — keyboard bypass to main content */
.sr-skip-link {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	left: var(--wp--preset--spacing--20);
	padding: 0.75rem 1rem;
	position: absolute;
	text-decoration: none;
	top: -100%;
	z-index: 1000;
}

.sr-skip-link:focus,
.sr-skip-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
	top: var(--wp--preset--spacing--20);
}

/* sr-screen-reader-text — visually hidden, available to AT */
.sr-screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.sr-screen-reader-text:focus,
.sr-screen-reader-text:focus-visible {
	background: var(--wp--preset--color--paper);
	clip: auto;
	clip-path: none;
	color: var(--wp--preset--color--ink);
	display: block;
	font-size: var(--wp--preset--font-size--small);
	height: auto;
	left: var(--wp--preset--spacing--20);
	line-height: normal;
	padding: 0.75rem 1rem;
	top: var(--wp--preset--spacing--20);
	width: auto;
	z-index: 1000;
}

/* sr-site-header — sticky site chrome; full bleed, wide inner rail */
.sr-site-header {
	z-index: 100;
	backdrop-filter: blur(8px);
	background-color: color-mix(in srgb, var(--wp--preset--color--paper) 92%, transparent);
	width: 100%;
}

.sr-header-inner {
	box-sizing: border-box;
	gap: var(--wp--preset--spacing--30);
	max-width: var(--wp--style--global--wide-size, 1400px);
	width: 100%;
}

/*
 * Three-tier layout rhythm (design §10):
 * - Measure (prose): contentSize ~720–900px
 * - Wide (sections): wideSize 1400px + outer gutters 48–80px — never flush to viewport
 * - Full (media only): true edge-to-edge; inner text still uses .sr-section-inner
 *
 * alignfull parents (e.g. .sr-home-page) cancel root padding, so alignwide
 * must carry its own horizontal padding or content hugs the viewport edge.
 */
.sr-home-page > .wp-block-group.alignwide,
.sr-about-page > .wp-block-group.alignwide,
.sr-404-page > .wp-block-group.alignwide,
.sr-search-page > .wp-block-group.alignwide,
.wp-block-group.alignwide.sr-section,
.wp-block-group.alignwide.sr-section-wide,
.sr-service-category.alignwide {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1400px);
	padding-left: clamp(1.5rem, 5vw, 5rem);
	padding-right: clamp(1.5rem, 5vw, 5rem);
	width: 100%;
}

.alignfull .sr-section-inner {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1400px);
	padding-inline: clamp(1.5rem, 5vw, 5rem);
	width: 100%;
}

/* Split — text breathes; media fills editorial frame */
.sr-split .sr-split-copy {
	padding-inline: clamp(0.5rem, 2vw, 1.5rem);
}

.sr-split .sr-split-media,
.sr-split .sr-split-media .wp-block-image,
.sr-split .sr-split-media img {
	height: 100%;
	min-height: clamp(28rem, 52vh, 35rem);
}

.sr-split .sr-split-media img {
	object-fit: cover;
	width: 100%;
}

/* Editorial gallery — aligned tops, equal row height (not accidental masonry) */
.sr-editorial-grid .wp-block-columns {
	align-items: stretch;
}

.sr-editorial-grid .wp-block-column {
	display: flex;
}

.sr-editorial-grid .wp-block-image,
.sr-editorial-grid .wp-block-image img {
	flex: 1 1 auto;
	height: 100%;
	min-height: clamp(22rem, 40vh, 28rem);
	object-fit: cover;
	width: 100%;
}

/* Header brand mark — replaces domain / site-title string */
.sr-brand-logo {
	display: inline-flex;
	flex-shrink: 0;
	line-height: 0;
	text-decoration: none;
}

.sr-brand-logo img {
	display: block;
	height: clamp(2.5rem, 5vw, 4rem); /* ~40px mobile → 64px desktop */
	width: auto;
}

.sr-site-header .sr-brand-logo img {
	height: clamp(2.5rem, 5.5vw, 4rem); /* 40–64px */
}

.sr-brand-logo--footer img {
	height: clamp(3.5rem, 6vw, 5rem);
}

/* Header brand stays one line — stacked SCISSORS / & / RAZORS is footer-only */
.sr-site-header .wp-block-site-title,
.sr-site-header .wp-block-site-title a,
.sr-site-header .sr-site-title,
.sr-site-header .sr-site-title a {
	flex-shrink: 0;
	font-size: clamp(0.875rem, 1.1vw, 1.125rem);
	letter-spacing: 0.06em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.sr-header-actions {
	flex-shrink: 1;
	gap: var(--wp--preset--spacing--40);
	margin-left: auto;
	min-width: 0;
}

/* Kill any vertical / letter-stack treatment of BOOK (legacy header CTA) */
.sr-header-cta,
.sr-site-header .sr-header-cta .wp-block-button__link {
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
	white-space: nowrap;
	word-break: normal;
}

.sr-primary-nav {
	flex-shrink: 1;
	margin-left: auto;
	min-width: 0;
}

/* Active page — hairline ink underline (skip BOOK CTA) */
.sr-primary-nav .wp-block-navigation-item:not(.sr-nav-book).current-menu-item > .wp-block-navigation-item__content,
.sr-primary-nav .wp-block-navigation-item:not(.sr-nav-book).current-menu-item > a,
.sr-primary-nav .wp-block-navigation-item:not(.sr-nav-book) > .wp-block-navigation-item__content[aria-current="page"],
.sr-primary-nav .wp-block-navigation-item:not(.sr-nav-book) > a[aria-current="page"] {
	box-shadow: inset 0 -1.5px 0 0 var(--wp--preset--color--ink);
	text-decoration: none;
}

.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.sr-nav-book).current-menu-item > .wp-block-navigation-item__content,
.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.sr-nav-book) > .wp-block-navigation-item__content[aria-current="page"] {
	box-shadow: inset 0 -1.5px 0 0 var(--wp--preset--color--paper);
}

/* Desktop BOOK as last nav item — filled CTA, not letter-stack */
.sr-primary-nav .wp-block-navigation-item.sr-nav-book > .wp-block-navigation-item__content,
.sr-primary-nav .sr-nav-book > a {
	background-color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--preset--border-radius--sm, 2px);
	color: var(--wp--preset--color--paper) !important;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.08em;
	padding: 0.625rem 1.25rem;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	writing-mode: horizontal-tb;
}

.sr-primary-nav .wp-block-navigation-item.sr-nav-book > .wp-block-navigation-item__content:hover,
.sr-primary-nav .sr-nav-book > a:hover {
	background-color: var(--wp--preset--color--tobacco);
	border-color: var(--wp--preset--color--tobacco);
	color: var(--wp--preset--color--paper) !important;
}

/* Section headings: no soft hyphens; prefer natural wrap at spaces */
.wp-block-heading,
h1,
h2,
h3 {
	-webkit-hyphens: none;
	hyphens: none;
	overflow-wrap: normal;
	word-break: normal;
}

/* sr-btn-primary — black fill, cream text */
.sr-btn-primary .wp-block-button__link,
.wp-block-button.sr-btn-primary .wp-block-button__link {
	background-color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: var(--wp--preset--border-radius--sm, 2px);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.08em;
	padding: 0.75rem 1.5rem;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 300ms ease-out, border-color 300ms ease-out, color 300ms ease-out, opacity 300ms ease-out;
}

.sr-btn-primary .wp-block-button__link:hover,
.wp-block-button.sr-btn-primary .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--tobacco);
	border-color: var(--wp--preset--color--tobacco);
	color: var(--wp--preset--color--paper);
}

.sr-btn-primary .wp-block-button__link:focus-visible,
.wp-block-button.sr-btn-primary .wp-block-button__link:focus-visible,
.sr-contact-form__actions .sr-btn-primary:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
}

/* sr-btn-secondary — text + underline */
.sr-btn-secondary .wp-block-button__link,
.wp-block-button.sr-btn-secondary .wp-block-button__link,
a.sr-btn-secondary {
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.08em;
	padding: 0;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-transform: uppercase;
	text-underline-offset: 0.2em;
	transition: color 300ms ease-out, opacity 300ms ease-out;
}

.sr-btn-secondary .wp-block-button__link:hover,
.wp-block-button.sr-btn-secondary .wp-block-button__link:hover,
a.sr-btn-secondary:hover {
	background: transparent;
	color: var(--wp--preset--color--tobacco);
}

/* sr-btn-tertiary — no container */
.sr-btn-tertiary .wp-block-button__link,
.wp-block-button.sr-btn-tertiary .wp-block-button__link,
a.sr-btn-tertiary {
	background: transparent;
	border: none;
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.06em;
	padding: 0;
	text-decoration: none;
	text-transform: uppercase;
	transition: color 300ms ease-out, opacity 300ms ease-out;
}

.sr-btn-tertiary .wp-block-button__link:hover,
.wp-block-button.sr-btn-tertiary .wp-block-button__link:hover,
a.sr-btn-tertiary:hover {
	background: transparent;
	color: var(--wp--preset--color--tobacco);
}

a.sr-btn-secondary:focus-visible,
a.sr-btn-tertiary:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
}

/* sr-hairline — 1px divider utility */
.sr-hairline,
.sr-hairline.wp-block-separator {
	border: none;
	border-top: var(--wp--custom--border--hairline, 1px solid color-mix(in srgb, var(--wp--preset--color--ink) 15%, transparent));
	height: 0;
	opacity: 1;
}

/* sr-service-row — Pattern E list row hover */
.sr-service-row {
	text-decoration: none;
	transition: opacity 300ms ease-out;
}

.sr-service-row:hover {
	opacity: 0.72;
}

/* sr-pricing-row — Services page price list (Pattern E extended) */
.sr-pricing-list {
	display: flex;
	flex-direction: column;
}

.sr-pricing-list__top {
	margin-bottom: 0;
}

.sr-pricing-row {
	border-bottom: var(--wp--custom--border--hairline);
	color: inherit;
	display: grid;
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto auto;
	padding: var(--wp--preset--spacing--30) 0;
	text-decoration: none;
}

.sr-pricing-row__name {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: var(--wp--preset--font-size--secondary);
	grid-column: 1;
	grid-row: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sr-pricing-row__price {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--price);
	font-weight: 500;
	grid-column: 2;
	grid-row: 1;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.sr-pricing-row__duration {
	color: var(--wp--preset--color--charcoal);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 500;
	grid-column: 1;
	grid-row: 2;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sr-pricing-row__arrow {
	font-size: var(--wp--preset--font-size--body);
	grid-column: 2;
	grid-row: 2;
	justify-self: end;
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity 300ms ease-out, transform 300ms ease-out;
}

.sr-pricing-row:hover .sr-pricing-row__arrow {
	opacity: 1;
	transform: translateX(0);
}

.sr-pricing-row__description {
	color: var(--wp--preset--color--charcoal);
	font-size: var(--wp--preset--font-size--small);
	grid-column: 1 / -1;
	margin: 0;
	max-width: 36rem;
}

/* sr-service-list — static homepage pattern rows */
.sr-service-list .sr-service-row {
	border-bottom: var(--wp--custom--border--hairline);
}

.sr-service-list .sr-service-row a {
	text-decoration: none;
}

/* sr-category-intro — editorial category header */
.sr-category-intro {
	margin-bottom: var(--wp--preset--spacing--40);
}

.sr-category-intro__number {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.12em;
	margin: 0 0 var(--wp--preset--spacing--20);
	text-transform: uppercase;
}

.sr-category-intro__tagline {
	font-size: var(--wp--preset--font-size--secondary);
	font-weight: 400;
	line-height: 1.15;
	margin: 0 0 var(--wp--preset--spacing--20);
}

.sr-category-intro__body {
	color: var(--wp--preset--color--charcoal);
	max-width: 28rem;
}

.sr-category-intro__body p {
	margin: 0;
}

/* sr-category-cta — per-category booking strip */
.sr-category-cta {
	margin-top: var(--wp--preset--spacing--50);
	text-align: center;
}

.sr-category-cta__label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.08em;
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--20);
	text-transform: uppercase;
}

.sr-category-cta__link {
	margin: 0 0 var(--wp--preset--spacing--30);
}

/* sr-quick-booking-bar — hero strip */
.sr-quick-booking-bar {
	background-color: var(--wp--preset--color--paper);
}

/* sr-mobile-booking-bar — sticky mobile CTA */
.sr-mobile-booking-bar {
	display: none;
}

@media (max-width: 781px) {
	body.sr-has-mobile-booking-bar {
		padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
	}

	.sr-mobile-booking-bar {
		background-color: var(--wp--preset--color--ink);
		bottom: 0;
		display: block;
		left: 0;
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
		padding-bottom: calc(var(--wp--preset--spacing--20) + env(safe-area-inset-bottom, 0px));
		position: fixed;
		right: 0;
		z-index: 200;
	}

	.sr-mobile-booking-bar__link {
		align-items: center;
		color: var(--wp--preset--color--paper);
		display: flex;
		font-family: var(--wp--preset--font-family--dm-sans);
		font-size: var(--wp--preset--font-size--small);
		font-weight: 500;
		justify-content: center;
		letter-spacing: 0.08em;
		min-height: 44px;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
	}

	.sr-mobile-booking-bar__link:focus-visible {
		outline: 2px solid var(--wp--preset--color--paper);
		outline-offset: 2px;
	}

	.sr-mobile-booking-bar__link:hover {
		color: var(--wp--preset--color--stone);
	}

	.sr-pricing-row {
		grid-template-columns: 1fr auto;
	}

	.sr-pricing-row__name {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.sr-pricing-row__price {
		grid-column: 2;
		grid-row: 2;
	}

	.sr-pricing-row__duration {
		grid-column: 1;
		grid-row: 2;
	}

	.sr-pricing-row__arrow {
		display: none;
	}
}

/* sr-primary-nav — desktop inline row; mobile full-screen overlay */
.sr-primary-nav .wp-block-navigation__container,
.sr-primary-nav .wp-block-navigation__responsive-container-content {
	align-items: center;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--40);
}

.sr-primary-nav .wp-block-navigation-item {
	flex: 0 0 auto;
	white-space: nowrap;
}

@media (min-width: 782px) {
	/* Hide hamburger + close (×) on desktop — overlay is mobile-only */
	.sr-primary-nav .wp-block-navigation__responsive-container-open,
	.sr-primary-nav .wp-block-navigation__responsive-container-close {
		display: none !important;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		background-color: transparent !important;
		color: inherit;
		display: block;
		height: auto;
		position: static;
		visibility: visible;
		width: auto;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container-content {
		align-items: center;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		gap: var(--wp--preset--spacing--40);
		padding: 0;
	}

	.sr-primary-nav .wp-block-navigation__container {
		align-items: center;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		gap: var(--wp--preset--spacing--40);
	}

	/* Legacy separate CTA — keep horizontal if present in customized headers */
	.sr-header-cta {
		flex-shrink: 0;
	}

	.sr-header-cta .wp-block-button__link {
		white-space: nowrap;
		writing-mode: horizontal-tb !important;
	}
}

@media (max-width: 781px) {
	.sr-header-inner {
		flex-wrap: nowrap;
		justify-content: space-between;
	}

	/* Logo left + hamburger right only — no vertical BOOK spine */
	.sr-header-cta {
		display: none !important;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container-open,
	.sr-primary-nav .wp-block-navigation__responsive-container-close {
		min-height: 44px;
		min-width: 44px;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container-open:focus-visible,
	.sr-primary-nav .wp-block-navigation__responsive-container-close:focus-visible {
		outline: 2px solid var(--wp--preset--color--ink);
		outline-offset: 3px;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		background-color: var(--wp--preset--color--soft-black);
		color: var(--wp--preset--color--paper);
		transition: opacity 300ms ease-out;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--40);
		justify-content: center;
		min-height: 100%;
		padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	}

	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch;
		display: flex;
		flex-direction: column;
		gap: var(--wp--preset--spacing--40);
		width: 100%;
	}

	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		color: var(--wp--preset--color--paper);
		font-size: var(--wp--preset--font-size--secondary);
		letter-spacing: 0.12em;
		text-transform: uppercase;
	}

	/* BOOK as primary button at bottom of overlay */
	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .sr-nav-book {
		margin-top: var(--wp--preset--spacing--50);
	}

	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .sr-nav-book > .wp-block-navigation-item__content,
	.sr-primary-nav .wp-block-navigation__responsive-container.is-menu-open .sr-nav-book > a {
		background-color: var(--wp--preset--color--paper);
		border-color: var(--wp--preset--color--paper);
		color: var(--wp--preset--color--ink) !important;
		display: inline-flex;
		justify-content: center;
		margin-top: 0;
		text-align: center;
		width: 100%;
		writing-mode: horizontal-tb !important;
		white-space: nowrap;
	}

	/* Close (×) stays in overlay chrome only — never leak beside hamburger when closed */
	.sr-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close {
		display: none !important;
	}
}

/* sr-dark-section — Pattern G / J dark backgrounds */
.sr-dark-section {
	background-color: var(--wp--preset--color--soft-black);
	color: var(--wp--preset--color--paper);
}

.sr-dark-section a,
.sr-dark-section .wp-block-heading {
	color: var(--wp--preset--color--paper);
}

/* sr-integration-mount — empty integration targets */
.sr-integration-mount:empty {
	min-height: 0;
}

/* sr-newsletter-form — editorial signup layout */
.sr-newsletter-form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	align-items: center;
}

.sr-newsletter-form input[type='email'] {
	background: transparent;
	border: none;
	border-bottom: var(--wp--custom--border--hairline);
	color: var(--wp--preset--color--ink);
	flex: 1 1 12rem;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	padding: 0.5rem 0;
	transition: border-color 300ms ease-out;
}

.sr-newsletter-form input[type='email']:focus {
	border-bottom-color: var(--wp--preset--color--ink);
	outline: none;
}

.sr-newsletter-form input[type='email']:focus-visible {
	border-bottom-color: var(--wp--preset--color--ink);
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 4px;
}

.sr-newsletter-form button {
	cursor: pointer;
}

/* Global link hover — controlled motion */
a {
	transition: color 300ms ease-out, opacity 300ms ease-out;
}

/* sr-post-label — uppercase journal category labels (§45) */
.sr-post-label,
.sr-post-label a,
.wp-block-post-terms.sr-post-label a {
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.sr-post-label a:hover {
	color: var(--wp--preset--color--tobacco);
}

.sr-post-date {
	color: var(--wp--preset--color--charcoal);
	font-size: var(--wp--preset--font-size--label);
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sr-journal-card-meta {
	gap: var(--wp--preset--spacing--20);
}

/* sr-map-placeholder — contact page map stub */
.sr-map-placeholder {
	align-items: center;
	aspect-ratio: 16 / 9;
	background: var(--wp--preset--color--stone);
	color: var(--wp--preset--color--charcoal);
	display: flex;
	justify-content: center;
	min-height: 20rem;
	padding: var(--wp--preset--spacing--50);
	text-align: center;
	width: 100%;
}

/* sr-contact-form — editorial hairline inputs (styles only; logic in plugin) */
.sr-contact-form-section {
	margin-top: var(--wp--preset--spacing--30);
}

.sr-contact-form input,
.sr-contact-form textarea {
	background: transparent;
	border: none;
	border-bottom: var(--wp--custom--border--hairline);
	color: var(--wp--preset--color--ink);
	display: block;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	margin-top: 0.25rem;
	padding: 0.5rem 0;
	width: 100%;
}

.sr-contact-form input:focus,
.sr-contact-form textarea:focus {
	border-bottom-color: var(--wp--preset--color--ink);
	outline: none;
}

.sr-contact-form input:focus-visible,
.sr-contact-form textarea:focus-visible {
	border-bottom-color: var(--wp--preset--color--ink);
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 4px;
}

.sr-contact-form label {
	display: block;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sr-contact-form__field {
	margin-bottom: var(--wp--preset--spacing--30);
}

.sr-contact-form__honeypot {
	display: none !important;
}

.sr-contact-form__actions {
	margin-top: var(--wp--preset--spacing--40);
}

.sr-contact-form__actions .sr-btn-primary {
	background: var(--wp--preset--color--ink);
	border: none;
	color: var(--wp--preset--color--paper);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 0.875rem 1.5rem;
	text-transform: uppercase;
}

.sr-contact-form__actions .sr-btn-primary:hover {
	background: var(--wp--preset--color--tobacco);
}

.sr-contact-form__actions .sr-btn-primary:disabled {
	cursor: not-allowed;
	opacity: 0.6;
}

.sr-contact-form__status {
	font-size: var(--wp--preset--font-size--small);
	margin-top: var(--wp--preset--spacing--30);
}

.sr-contact-form__status--success {
	color: var(--wp--preset--color--ink);
}

.sr-contact-form__status--error {
	color: var(--wp--preset--color--tobacco);
}

.sr-map-embed iframe {
	border: 0;
	display: block;
	height: 20rem;
	width: 100%;
}

.sr-policies-nav a {
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.sr-policies-nav a:hover {
	color: var(--wp--preset--color--tobacco);
}

/* Placeholder images — reserve space to reduce CLS */
.wp-block-image img:not([src]),
.wp-block-image img[src=''] {
	aspect-ratio: 4 / 5;
	background: var(--wp--preset--color--stone);
	display: block;
	width: 100%;
}

.wp-block-image.alignfull img:not([src]),
.wp-block-image.alignfull img[src=''] {
	aspect-ratio: 16 / 9;
}

.sr-placeholder-image img {
	background: var(--wp--preset--color--stone);
	display: block;
	height: auto;
	max-width: 100%;
	width: 100%;
}

/* Prevent horizontal scroll from wide content */
html {
	overflow-x: clip;
}

@media (max-width: 781px) {
	.alignwide,
	.alignfull {
		max-width: 100%;
	}

	.sr-home-page > .wp-block-group.alignwide,
	.sr-about-page > .wp-block-group.alignwide,
	.sr-404-page > .wp-block-group.alignwide,
	.sr-search-page > .wp-block-group.alignwide,
	.wp-block-group.alignwide.sr-section,
	.wp-block-group.alignwide.sr-section-wide,
	.sr-service-category.alignwide {
		padding-left: clamp(1rem, 4vw, 2rem);
		padding-right: clamp(1rem, 4vw, 2rem);
	}

	.sr-split .sr-split-media,
	.sr-split .sr-split-media img {
		min-height: 20rem;
	}

	.sr-pricing-row__price {
		word-break: break-word;
		white-space: normal;
	}
}

/* Full-bleed interior with overlay copy (#34 ENTER) */
.sr-full-bleed-media {
	margin: 0;
	position: relative;
	overflow: hidden;
}

.sr-full-bleed-media img {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	max-height: 85vh;
	object-fit: cover;
	width: 100%;
}

.sr-full-bleed-caption {
	bottom: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--paper);
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	justify-content: flex-end;
	left: 0;
	padding: clamp(1.5rem, 5vw, 4rem);
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	background: linear-gradient(
		to top,
		rgba(10, 10, 10, 0.55) 0%,
		rgba(10, 10, 10, 0.05) 45%,
		transparent 70%
	);
}

.sr-full-bleed-kicker {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.sr-full-bleed-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.05;
	text-transform: uppercase;
}

/* Ritual / result video — muted loop; still for reduced motion */
.sr-ritual-video__frame,
.sr-result-reveal__video {
	background: var(--wp--preset--color--soft-black);
	margin: 0;
	overflow: hidden;
	position: relative;
}

.sr-ritual-video__media,
.sr-ritual-video__still,
.sr-result-reveal__video .sr-ritual-video__media,
.sr-result-reveal__video .sr-ritual-video__still {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	max-height: 80vh;
	object-fit: cover;
	width: 100%;
}

.sr-ritual-video__still {
	display: none;
}

.sr-ritual-video__caption {
	bottom: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--paper);
	left: 0;
	padding: clamp(1.25rem, 4vw, 3rem);
	pointer-events: none;
	position: absolute;
	right: 0;
	background: linear-gradient(
		to top,
		rgba(10, 10, 10, 0.5) 0%,
		transparent 60%
	);
}

.sr-ritual-video__kicker {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(1.75rem, 4vw, 3rem);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sr-result-reveal__video {
	border-radius: var(--wp--preset--border-radius--image, 12px);
	height: 100%;
	min-height: 22rem;
}

.sr-result-reveal__video .sr-ritual-video__media,
.sr-result-reveal__video .sr-ritual-video__still {
	aspect-ratio: 4 / 5;
	border-radius: inherit;
	height: 100%;
	max-height: none;
	min-height: 22rem;
}

@media (prefers-reduced-motion: reduce) {
	.sr-btn-primary .wp-block-button__link,
	.sr-btn-secondary .wp-block-button__link,
	.sr-btn-tertiary .wp-block-button__link,
	.sr-service-row,
	.sr-pricing-row,
	.sr-pricing-row__arrow,
	a {
		transition: none;
	}

	.sr-pricing-row__arrow {
		opacity: 1;
		transform: none;
	}

	.sr-ritual-video__media {
		display: none !important;
	}

	.sr-ritual-video__still {
		display: block !important;
	}
}

/* About — scroll cue (circle + >) */
.sr-about-hero {
	min-height: min(72vh, 40rem);
	position: relative;
}

.sr-about-scroll-cue {
	align-items: center;
	background: transparent;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 50%;
	bottom: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: 1rem;
	height: 2.5rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: clamp(1.5rem, 5vw, 5rem);
	text-decoration: none;
	transition: opacity 300ms ease-out, border-color 300ms ease-out;
	width: 2.5rem;
	z-index: 2;
}

.sr-about-scroll-cue:hover,
.sr-about-scroll-cue:focus-visible {
	border-color: var(--wp--preset--color--tobacco);
	color: var(--wp--preset--color--tobacco);
	outline: none;
}

.sr-about-scroll-cue:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.sr-about-scroll-cue {
		transition: none;
	}
}

/*
 * Title reveals (design_language §18) — opacity + small translate only.
 * Hidden state applies only when html.sr-motion is set by theme.js,
 * so no-JS and reduced-motion keep titles visible (LCP-safe).
 */
html.sr-motion .sr-title-reveal:not(.is-inview),
html.sr-motion .sr-reveal:not(.is-inview) {
	opacity: 0;
	transform: translateY(1rem);
}

html.sr-motion .sr-title-reveal,
html.sr-motion .sr-reveal {
	transition:
		opacity 400ms ease-out,
		transform 400ms ease-out;
	will-change: opacity, transform;
}

html.sr-motion .sr-title-reveal.is-inview,
html.sr-motion .sr-reveal.is-inview {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* Hero: slightly longer settle; JS also delays first paint reveal */
html.sr-motion .sr-title-reveal--hero {
	transition-duration: 480ms;
}

/* Light stagger inside a group (max ~4 items, 80ms steps) */
html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-child(1),
html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-of-type(1) {
	transition-delay: 0ms;
}

html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-child(2),
html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-of-type(2) {
	transition-delay: 80ms;
}

html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-child(3),
html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-of-type(3) {
	transition-delay: 160ms;
}

html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-child(4),
html.sr-motion .sr-title-reveal-group .sr-title-reveal:nth-of-type(4) {
	transition-delay: 240ms;
}

/* Stagger by data attribute when siblings are not consecutive */
html.sr-motion .sr-title-reveal[data-sr-delay="1"] {
	transition-delay: 80ms;
}

html.sr-motion .sr-title-reveal[data-sr-delay="2"] {
	transition-delay: 160ms;
}

html.sr-motion .sr-title-reveal[data-sr-delay="3"] {
	transition-delay: 240ms;
}

@media (prefers-reduced-motion: reduce) {
	html.sr-motion .sr-title-reveal,
	html.sr-motion .sr-reveal,
	html.sr-motion .sr-title-reveal:not(.is-inview),
	html.sr-motion .sr-reveal:not(.is-inview) {
		opacity: 1;
		transform: none;
		transition: none;
		will-change: auto;
	}
}
