:root {
	--paper: #eeeae1;
	--paper-2: #f7f4ed;
	--menu-surface: color-mix(in srgb,var(--paper) 96%,var(--ink));
	--ink: #1b1c1c;
	--muted: #6c6a63;
	--bronze: #79522c;
	--danger: #8f1515;
	--line: rgba(27,28,28,.18);
	--dark: #202222;
	--serif: Georgia,"Times New Roman",serif;
	--sans: Inter,Arial,sans-serif;
	scroll-behavior: smooth;
}

.monumente-inquiry-form-wrap { max-width: 48rem; margin-top: clamp(2rem, 5vw, 5rem); padding: clamp(1.25rem, 3vw, 2.5rem); border: 1px solid var(--line); color: var(--ink); background: var(--paper-2); }
.monumente-inquiry-form-wrap form { display: grid; gap: .65rem; }
.monumente-inquiry-form-wrap :where(label,legend) { color: var(--ink); }
.monumente-inquiry-form-wrap a { color: var(--bronze); font-weight: 700; }
.monumente-inquiry-form-wrap input:not([type="checkbox"]), .monumente-inquiry-form-wrap textarea { width: 100%; padding: .8rem; color: var(--ink); background: var(--paper); border: 1px solid var(--line); }
.monumente-inquiry-form-wrap textarea { min-height: 9rem; resize: vertical; }
.monumente-contact-fields { display: grid; gap: .65rem; min-width: 0; padding: 1rem; border: 1px solid var(--line); }
.monumente-contact-fields legend { padding-inline: .35rem; font-weight: 700; }
.monumente-consent { display: flex; gap: .65rem; align-items: flex-start; margin: .75rem 0; }
.monumente-consent input { flex: 0 0 20px; height: 20px; margin-top: .25rem; width: 20px; }
.monumente-consent a,.developer-credit a { align-items: center; display: inline-flex; min-height: 44px; }
.monumente-honeypot { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.monumente-form-errors, .field-error { color: var(--danger); }
.monumente-form-errors a { color: inherit; }
.monumente-form-errors { padding: 1rem; border: 2px solid currentColor; }
.monumente-form-success { padding: 1rem; border: 2px solid currentColor; }

html[data-theme=dark] {
	--paper: #181a1a;
	--paper-2: #202222;
	--ink: #f1eee6;
	--muted: #aaa69e;
	--bronze: #c19a6b;
	--danger: #ff9b9b;
	--line: rgba(255,255,255,.18);
}

* {
	box-sizing: border-box;
}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
	outline: 3px solid var(--bronze);
	outline-offset: 3px;
}

body {
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	line-height: 1.6;
}

.container {
	margin-inline: auto;
	max-width: 1240px;
	padding-inline: 32px;
}

.skip-link {
	background: var(--ink);
	color: var(--paper);
	left: 16px;
	padding: 12px 18px;
	position: fixed;
	top: -100px;
	z-index: 100;
}

.skip-link:focus {
	top: 16px;
}

.site-header {
	left: 0;
	pointer-events: none;
	position: fixed;
	right: 0;
	top: 7px;
	width: 100%;
	z-index: 50;
}

.header-shell {
	align-items: center;
	background: color-mix(in srgb,var(--paper) 90%,transparent);
	border: 1px solid var(--line);
	box-shadow: 0 12px 40px rgba(16,18,16,.12);
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-inline: auto;
	min-height: 72px;
	padding: 9px 10px 9px 20px;
	pointer-events: auto;
	width: min(1340px,calc(100% - 32px));
}

@supports (backdrop-filter:blur(18px)) {
	.header-shell {
		backdrop-filter: blur(18px);
	}
}

.admin-bar .site-header {
	top: 39px;
}

.brand {
	align-items: center;
	color: var(--ink);
	display: flex;
	gap: 12px;
	min-height: 44px;
	text-decoration: none;
}

.brand-copy {
	display: grid;
	line-height: 1;
}

.brand-copy strong {
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 400;
	letter-spacing: -.02em;
	white-space: nowrap;
}

.brand small {
	color: var(--muted);
	font-size: 10px;
	letter-spacing: .28em;
	margin-top: 7px;
}

.brand-mark {
	border: 1.5px solid currentColor;
	border-radius: 18px 18px 2px 2px;
	display: inline-block;
	height: 44px;
	position: relative;
	width: 36px;
}

.brand-mark:before,.brand-mark:after,.brand-mark span:before {
	background: currentColor;
	content: "";
	position: absolute;
}

.brand-mark:before {
	bottom: 8px;
	left: 50%;
	top: 10px;
	width: 1px;
}

.brand-mark:after {
	height: 1px;
	left: 10px;
	top: 17px;
	width: 15px;
}

.brand-mark span:before {
	bottom: -4px;
	height: 2px;
	left: -4px;
	right: -4px;
}

.desktop-nav {
	align-self: stretch;
	align-items: center;
	display: flex;
	flex: 0 1 auto;
	gap: clamp(14px,2vw,30px);
}

.desktop-nav a,.mobile-menu a {
	color: var(--ink);
	text-decoration: none;
}

.desktop-nav a {
	align-items: center;
	color: var(--muted);
	display: inline-flex;
	font-size: 13px;
	font-weight: 700;
	min-height: 44px;
	white-space: nowrap;
}

.desktop-nav a:hover,.desktop-nav a:focus-visible {
	color: var(--ink);
}

.catalog-nav {
	align-items: center;
	align-self: stretch;
	display: flex;
	position: relative;
}

.catalog-nav-trigger {
	align-items: center;
	display: flex;
}

.catalog-nav-trigger>a {
	padding-right: 2px;
}

.catalog-nav-trigger button {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	width: 24px;
}

.catalog-nav-trigger button svg,.mobile-menu-row>svg {
	fill: none;
	flex: 0 0 auto;
	height: 8px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
	width: 12px;
}

.catalog-panel {
	background: var(--menu-surface);
	border: 1px solid color-mix(in srgb,var(--ink) 16%,transparent);
	box-shadow: 0 16px 28px rgba(0,0,0,.1);
	left: 0;
	max-height: calc(100vh - 104px);
	opacity: 0;
	overflow: visible;
	padding: 8px 0;
	pointer-events: none;
	position: absolute;
	right: auto;
	top: calc(100% + 1px);
	transform: translateY(-4px);
	transition: opacity .16s ease,transform .16s ease,visibility .16s;
	visibility: hidden;
	width: 270px;
}

.catalog-panel:before {
	content: "";
	height: 2px;
	left: -1px;
	position: absolute;
	right: -1px;
	top: -2px;
}

.catalog-nav.is-open .catalog-panel {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.catalog-tree {
	list-style: none;
	margin: 0;
	padding: 0;
}

.catalog-panel>.catalog-tree {
	display: block;
}

.catalog-panel .catalog-tree li {
	position: relative;
}

.catalog-tree-row {
	align-items: stretch;
	display: flex;
	min-width: 0;
}

.catalog-panel .catalog-tree-row>a {
	align-items: center;
	color: var(--ink);
	display: flex;
	flex: 1 1 auto;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.25;
	min-height: 42px;
	min-width: 0;
	padding: 8px 8px 8px 16px;
	text-transform: none;
}

.catalog-panel .catalog-tree-row:hover,.catalog-panel li:focus-within>.catalog-tree-row,.catalog-panel li.is-submenu-open>.catalog-tree-row {
	background: color-mix(in srgb,var(--bronze) 12%,transparent);
}

.catalog-panel .catalog-tree-row button {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--bronze);
	cursor: pointer;
	display: flex;
	flex: 0 0 42px;
	font-size: 20px;
	justify-content: center;
}

.catalog-panel .catalog-submenu {
	background: var(--menu-surface);
	border: 1px solid color-mix(in srgb,var(--ink) 16%,transparent);
	box-shadow: 10px 14px 24px rgba(0,0,0,.1);
	left: calc(100% - var(--catalog-overlap, 8px));
	z-index: 1;
	opacity: 0;
	padding: 8px 0;
	pointer-events: none;
	position: absolute;
	top: -9px;
	transform: translateX(-6px);
	transition: opacity .14s ease,transform .14s ease,visibility .14s;
	visibility: hidden;
	width: 260px;
}

.catalog-panel li:hover>.catalog-submenu,.catalog-panel li:focus-within>.catalog-submenu,.catalog-panel li.is-submenu-open>.catalog-submenu {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(0);
	visibility: visible;
}

.header-actions {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: 7px;
}

.header-phone {
	align-items: center;
	background: var(--ink);
	border: 1px solid var(--ink);
	color: var(--paper-2);
	display: inline-flex;
	font-size: 13px;
	font-weight: 800;
	justify-content: center;
	letter-spacing: 0;
	min-height: 40px;
	padding: 8px 14px;
	text-decoration: none;
	white-space: nowrap;
}

.header-phone:hover,.header-phone:focus-visible {
	background: var(--bronze);
	border-color: var(--bronze);
	color: #fff;
}

.header-phone svg {
	fill: none;
	flex: 0 0 17px;
	height: 17px;
	min-width: 17px;
	margin-right: 9px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
	width: 17px;
}

.language-switch {
	background: var(--paper-2);
	border: 1px solid var(--line);
	display: flex;
	height: 38px;
	padding: 3px;
}

.language-switch a {
	align-items: center;
	color: var(--muted);
	display: inline-flex;
	font-size: 11px;
	font-weight: 800;
	justify-content: center;
	min-height: 30px;
	min-width: 34px;
	padding: 4px 6px;
	text-decoration: none;
}

.language-switch a[aria-current=page] {
	background: var(--ink);
	color: var(--paper-2);
}

.icon-button {
	background: transparent;
	border: 1px solid var(--line);
	color: var(--ink);
	cursor: pointer;
	height: 40px;
	width: 40px;
}

.icon-button:hover {
	background: var(--ink);
	color: var(--paper);
}

.theme-toggle svg,.menu-toggle svg {
	fill: none;
	height: 19px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 19px;
}

.theme-sun,.menu-close-icon {
	display: none;
}

html[data-theme=dark] .theme-moon {
	display: none;
}

html[data-theme=dark] .theme-sun,.menu-toggle[aria-expanded=true] .menu-close-icon {
	display: inline;
}

.menu-toggle[aria-expanded=true] .menu-open-icon {
	display: none;
}

.menu-toggle {
	display: none;
}

.mobile-menu {
	background: color-mix(in srgb,var(--paper) 96%,transparent);
	border: 1px solid var(--line);
	box-shadow: 0 20px 38px rgba(0,0,0,.16);
	left: 16px;
	max-height: calc(100vh - 104px);
	overflow-y: auto;
	padding: 24px;
	pointer-events: auto;
	position: absolute;
	right: 16px;
	top: calc(100% - 10px);
}

.mobile-menu a {
	display: block;
	font-family: var(--serif);
	font-size: 19px;
	padding: 12px;
}

.mobile-menu-row {
	align-items: center;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--line);
	color: var(--ink);
	cursor: pointer;
	display: flex;
	font-family: var(--serif);
	font-size: 19px;
	justify-content: space-between;
	min-height: 48px;
	padding: 12px;
	text-align: left;
	width: 100%;
}

.mobile-catalog-tree {
	border-bottom: 1px solid var(--line);
	margin-bottom: 8px;
	padding: 8px 0 14px 12px;
}

.mobile-menu .catalog-all-link {
	color: var(--bronze);
	font-family: var(--sans);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.mobile-catalog-tree .catalog-tree-row>a {
	font-size: 13px;
	letter-spacing: .04em;
	line-height: 1.35;
	min-height: 44px;
	overflow-wrap: anywhere;
	padding: 11px 12px;
	text-transform: none;
}

.mobile-catalog-tree>.catalog-tree>li>.catalog-tree-row>a {
	color: var(--bronze);
	font-family: var(--serif);
	font-size: 18px;
	font-weight: 700;
}

.mobile-catalog-tree .catalog-submenu {
	border-left: 1px solid var(--line);
	margin-left: 10px;
	padding-left: 10px;
}

.mobile-catalog-tree .catalog-tree-depth-3 a {
	color: var(--muted);
}

.mobile-language-switch {
	align-items: center;
	border-top: 1px solid var(--line);
	display: none;
	gap: 8px;
	margin-top: 8px;
	padding-top: 12px;
}

.mobile-menu .mobile-language-switch a {
	align-items: center;
	border: 1px solid var(--line);
	display: inline-flex;
	justify-content: center;
	min-height: 44px;
	min-width: 52px;
	padding: 8px 12px;
}

.mobile-language-switch a[aria-current=page] {
	border-color: var(--bronze);
	color: var(--ink);
	text-decoration: underline;
	text-decoration-color: var(--bronze);
	text-underline-offset: 5px;
}

.hero {
	background: #131715;
	color: #fff;
	overflow: hidden;
	position: relative;
}

.hero-photo,.hero-shade {
	inset: 0;
	position: absolute;
}

.hero-photo {
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	width: 100%;
}

.hero-shade {
	background: linear-gradient(90deg,rgba(10,13,11,.94) 0%,rgba(10,13,11,.78) 40%,rgba(10,13,11,.14) 70%,rgba(10,13,11,.16) 100%),linear-gradient(0deg,rgba(10,13,11,.48),transparent 42%);
}

.hero-grid {
	align-items: end;
	display: grid;
	grid-template-columns: minmax(0,760px) 1fr;
	min-height: 960px;
	padding-bottom: 72px;
	padding-top: 150px;
	position: relative;
}

.section h2 {
	font-family: var(--serif);
	font-size: clamp(48px,7vw,94px);
	font-weight: 400;
	letter-spacing: -.045em;
	line-height: .94;
	margin: 24px 0;
}

.hero-content h1 {
	font-family: var(--serif);
	font-size: clamp(64px,6.7vw,110.4px);
	font-weight: 400;
	letter-spacing: -.045em;
	line-height: .98;
	margin: 0 0 28px;
	text-wrap: balance;
}

.hero-content h1 em {
	color: #e2c1a1;
	display: block;
	font-weight: 400;
}

.hero-content>.eyebrow {
	color: #e5c5a6;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 24px;
}

.hero-content>p:not(.eyebrow) {
	color: rgba(255,255,255,.8);
	font-size: clamp(16px,1.6vw,19.2px);
	line-height: 1.7;
	margin: 0 0 32px;
	max-width: 630px;
}

.eyebrow {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.hero-actions,.monumente-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
}

.button {
	align-items: center;
	border: 1px solid currentColor;
	color: inherit;
	display: inline-flex;
	justify-content: center;
	min-height: 52px;
	padding: 0 24px;
	text-decoration: none;
}

.button.primary {
	background: #b08758;
	border-color: #b08758;
	color: #151616;
}

.button.ghost {
	background: rgba(255,255,255,.04);
}

.hero-actions {
	margin-top: 0;
}

.hero-actions .button {
	font-size: 14px;
	font-weight: 700;
	gap: 12px;
	line-height: 1.3;
	min-height: 54px;
	padding: 14px 22px;
}

.hero-actions svg,.catalog-direction-action svg {
	fill: none;
	flex: 0 0 20px;
	height: 20px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
	width: 20px;
}

.hero-actions .primary {
	background: #98643d;
	border-color: #98643d;
	color: #fff;
}

.hero-actions .primary:hover {
	background: #825332;
	border-color: #825332;
}

.hero-actions .ghost {
	background: rgba(14,16,15,.55);
	border-color: rgba(255,255,255,.5);
	color: #fff;
}

.hero-actions .ghost:hover {
	background: #252a26;
}

.hero-actions a:focus-visible {
	outline-color: #e5c5a6;
}

.section {
	padding-block: 110px;
}

.section h2 {
	font-size: clamp(42px,6vw,76px);
	max-width: 920px;
}

/* Reference benefit strip: compact cells adjoining the hero. */
.quick-path {
	background: var(--paper-2);
	border-bottom: 1px solid var(--line);
}

.quick-path-grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.quick-path-cell {
	align-items: center;
	border-inline-end: 1px solid var(--line);
	display: flex;
	gap: 20px;
	min-width: 0;
	padding: 30px 24px;
}

.quick-path-cell:first-child { border-inline-start: 1px solid var(--line); }
.quick-icon {
	border: 1px solid var(--line);
	border-radius: 26px 26px 2px 2px;
	color: var(--bronze);
	display: grid;
	flex: 0 0 52px;
	height: 58px;
	place-items: center;
}

.quick-icon svg,.craft-copy li svg {
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}
.quick-icon svg { height: 24px; width: 24px; }
.quick-path h2 { font: 400 1.2rem/1.25 var(--serif); margin: 0 0 6px; }
.quick-path p { color: var(--muted); font-size: .875rem; line-height: 1.5; margin: 0; }

/* Stone-work concept; scoped colours stay readable in both site themes. */
.craft {
	--craft-text: #f1eee6;
	--craft-muted: #c4c0b7;
	background: var(--dark);
	color: var(--craft-text);
}
.craft-layout {
	max-width: 1304px;
	align-items: center;
	display: grid;
	gap: clamp(40px,6vw,80px);
	grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
}
.craft-copy h2 { font-size: clamp(42px,4.5vw,64px); line-height: 1.02; }
.craft-copy > p:not(.eyebrow) { color: var(--craft-muted); margin-bottom: 28px; }
.craft-copy ul { display: grid; gap: 13px; list-style: none; margin: 0 0 32px; padding: 0; }
.craft-copy li { align-items: baseline; display: flex; gap: 12px; }
.craft-copy li svg { color: #e2c1a1; flex: 0 0 18px; height: 18px; }
.craft-cta { background: var(--craft-text); color: var(--dark); gap: 20px; }
.craft-cta:focus-visible { outline-color: #e2c1a1; }
.craft-photo { min-width: 0; padding: 28px 0 0 28px; position: relative; }
.craft-photo::before { border: 1px solid rgba(255,255,255,.3); content: ""; inset: 0 28px 28px 0; position: absolute; }
.craft-photo img { aspect-ratio: 1.12; display: block; height: auto; min-height: 570px; object-fit: cover; object-position: center; position: relative; width: 100%; }

@media(max-width:900px) {
	.quick-path-grid,.craft-layout { grid-template-columns: minmax(0,1fr); }
	.quick-path-cell { border-inline-start: 1px solid var(--line); padding: 24px; }
	.quick-path-cell + .quick-path-cell { border-top: 1px solid var(--line); }
	.craft-layout { gap: 40px; }
	.craft-photo img { aspect-ratio: 3 / 2; min-height: 0; }
	.craft-photo { padding: 16px 0 0 16px; }
	.craft-photo::before { inset: 0 16px 16px 0; }
}

@media(forced-colors:active) {
	.craft-cta:focus-visible { outline-color: Highlight; }
	.quick-path-cell,.quick-icon,.craft-photo::before { border-color: CanvasText; }
}

.catalog {
	background: var(--paper-2);
}

.card-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3,1fr);
	margin-top: 48px;
}

/* Homepage directions are category links; archive product cards keep their own layout. */
.homepage-catalog {
	background: var(--paper-2);
}

.catalog-intro {
	align-items: end;
	display: grid;
	gap: 70px;
	grid-template-columns: minmax(0,1.55fr) minmax(280px,.85fr);
	margin-bottom: 52px;
}

.catalog-intro .eyebrow {
	color: var(--bronze);
	font-weight: 700;
	margin: 0 0 20px;
}

.catalog-intro h2 {
	margin: 0;
	max-width: 680px;
	text-wrap: balance;
}

.catalog-intro-copy {
	color: var(--muted);
	font-size: 17px;
	line-height: 1.7;
	margin: 0 0 4px;
}

.catalog-directions {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3,minmax(0,1fr));
}

.catalog-direction {
	border: 1px solid var(--line);
	min-width: 0;
}

.catalog-direction-link {
	color: inherit;
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
}

.catalog-direction-link:hover {
	background: var(--paper);
}

.catalog-direction-image {
	border-bottom: 1px solid var(--line);
	aspect-ratio: 3/4;
	overflow: hidden;
	background: #d9d4c9;
}

.catalog-direction-image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.catalog-visual-note {
	color: var(--muted);
	font-size: 12px;
	margin: 20px 0 0;
}

.catalog-direction-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 26px;
}

.catalog-direction-body .eyebrow {
	color: var(--bronze);
	font-size: 10px;
	font-weight: 700;
	margin: 0 0 10px;
}

.catalog-direction h3 {
	font: 400 clamp(28px,2.2vw,34px)/1.1 var(--serif);
	letter-spacing: -.025em;
	margin: 0 0 14px;
}

.catalog-direction-description {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.6;
	margin: 0 0 24px;
}

.catalog-direction-action {
	align-items: center;
	border-top: 1px solid var(--line);
	color: var(--bronze);
	display: flex;
	font-size: 13px;
	font-weight: 700;
	gap: 16px;
	justify-content: space-between;
	margin-top: auto;
	min-height: 48px;
	padding-top: 18px;
}

@media(max-width:900px) {
	.catalog-intro {
		gap: 24px;
		grid-template-columns: 1fr;
		margin-bottom: 32px;
	}
	.catalog-directions {
		grid-template-columns: 1fr;
	}
	.catalog-direction-image {
		max-height: 560px;
	}
}

.product-carousel {
	margin-top: 48px;
}

.product-carousel-controls {
	display: none;
	gap: 10px;
	justify-content: flex-end;
	margin-bottom: 18px;
}

.product-carousel.is-enhanced .product-carousel-controls {
	display: flex;
}

.product-carousel-controls button {
	align-items: center;
	background: var(--paper);
	border: 1px solid var(--line);
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 22px;
	height: 46px;
	justify-content: center;
	width: 52px;
}

.product-carousel-controls button:focus-visible,
.product-carousel-track:focus-visible {
	outline: 2px solid var(--bronze);
	outline-offset: 3px;
}

.product-carousel-controls button:disabled {
	cursor: default;
	opacity: .35;
}

.product-carousel-track {
	grid-auto-columns: calc((100% - 40px)/3);
	grid-auto-flow: column;
	grid-template-columns: none;
	margin-top: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: 2px 2px 14px;
	scroll-snap-type: inline mandatory;
	scrollbar-color: var(--bronze) var(--line);
}

.product-carousel-track .product-card {
	scroll-snap-align: start;
}

.product-card {
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid var(--line);
}

.product-card__link {
	color: var(--ink);
	display: grid;
	font-family: var(--serif);
	font-size: 26px;
	text-decoration: none;
}

.product-card img {
	aspect-ratio: 4/5;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.product-card__price {
	margin-top: auto;
	color: var(--bronze);
	display: block;
	font-family: var(--sans);
	font-size: 14px;
	padding: 0 20px 20px;
}

.product-card__title {
	padding: 20px;
}

.price-request-cta {
	align-items: center;
	background: #b08758;
	border: 1px solid #b08758;
	color: #151616;
	display: inline-flex;
	font-family: var(--sans);
	font-size: 14px;
	font-weight: 700;
	justify-content: center;
	min-height: 46px;
	padding: 10px 18px;
	text-align: center;
	text-decoration: none;
}

.price-request-cta--card {
	align-self: flex-start;
	margin: auto 20px 20px;
}

.price-request-cta--single {
	margin: 24px 0;
}

.price-request-cta:focus-visible,
.price-request-dialog__close:focus-visible,
.price-request-dialog__call:focus-visible {
	outline: 3px solid var(--ink);
	outline-offset: 3px;
}

.price-request-dialog {
	background: var(--paper);
	border: 1px solid var(--line);
	color: var(--ink);
	max-height: calc(100vh - 32px);
	max-width: 34rem;
	overflow: auto;
	padding: 0;
	width: calc(100% - 32px);
}

.price-request-dialog:not([open]) {
	display: none;
}

.price-request-dialog::backdrop {
	background: rgba(18, 19, 19, .72);
}

.price-request-dialog__inner {
	display: grid;
	gap: 18px;
	padding: clamp(28px, 6vw, 48px);
	position: relative;
}

.price-request-dialog h2,
.price-request-dialog p {
	margin: 0;
}

.price-request-dialog h2 {
	font-family: var(--serif);
	font-size: clamp(34px, 6vw, 52px);
	font-weight: 400;
	line-height: 1;
	padding-right: 36px;
}

.price-request-dialog__product {
	color: var(--bronze);
	font-weight: 700;
	min-width: 0;
	overflow-wrap: anywhere;
}

.price-request-dialog__close {
	align-items: center;
	background: transparent;
	border: 1px solid var(--line);
	color: var(--ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: 28px;
	height: 44px;
	justify-content: center;
	position: absolute;
	right: 16px;
	top: 16px;
	width: 44px;
}

.price-request-dialog__call {
	justify-self: start;
}

.empty-state {
	border: 1px solid var(--line);
	color: var(--muted);
	margin-top: 42px;
	padding: 32px;
}


/* Fixed one-memorial demonstrator: native radio state works with or without JS. */
.materials {
	background: var(--paper);
	color: var(--ink);
}
.materials-grid {
	align-items: center;
	border: 0;
	display: grid;
	gap: 64px;
	grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
	margin: 0;
	min-width: 0;
	padding: 0;
	position: relative;
}
.material-legend,.material-choice {
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}
.materials h2 {
	font-size: clamp(44px,4.4vw,68px);
	text-wrap: balance;
}
.material-content>.eyebrow {
	color: var(--bronze);
}
.material-content>p:not(.eyebrow) {
	color: var(--muted);
	line-height: 1.7;
	max-width: 560px;
}
.material-visual {
	aspect-ratio: 850/1024;
	margin: 12px 18px 0 0;
	position: relative;
}
.material-visual:before {
	border: 1px solid var(--line);
	content: "";
	inset: -16px -18px 24px 24px;
	pointer-events: none;
	position: absolute;
}
.material-visual>.material-image {
	display: none;
	height: auto;
	position: relative;
	width: 100%;
}
#material-black:checked~.material-visual .material-image-black,
#material-gray:checked~.material-visual .material-image-gray,
#material-mixed:checked~.material-visual .material-image-mixed {
	display: block;
}
.stone-list {
	border-top: 1px solid var(--line);
	display: grid;
	margin-top: 30px;
}
.stone-sample {
	align-items: center;
	border-bottom: 1px solid var(--line);
	color: inherit;
	cursor: pointer;
	display: grid;
	gap: 16px;
	grid-template-columns: 44px minmax(0,1fr) 20px;
	min-height: 90px;
	padding: 16px 12px;
}
.stone-sample:hover {
	background: var(--paper-2);
}
#material-black:checked~.material-content .stone-sample-black,
#material-gray:checked~.material-content .stone-sample-gray,
#material-mixed:checked~.material-content .stone-sample-mixed {
	background: var(--paper-2);
	box-shadow: inset 3px 0 var(--bronze);
}
#material-black:focus-visible~.material-content .stone-sample-black,
#material-gray:focus-visible~.material-content .stone-sample-gray,
#material-mixed:focus-visible~.material-content .stone-sample-mixed {
	outline: 2px solid var(--bronze);
	outline-offset: 3px;
}
.sample-check {
	color: var(--bronze);
	visibility: hidden;
}
#material-black:checked~.material-content .stone-sample-black .sample-check,
#material-gray:checked~.material-content .stone-sample-gray .sample-check,
#material-mixed:checked~.material-content .stone-sample-mixed .sample-check {
	visibility: visible;
}
.sample-disc {
	border: 1px solid var(--line);
	border-radius: 50%;
	height: 42px;
	width: 42px;
}
.black-granite {
	background: radial-gradient(circle at 30% 25%,#6d716e 0 1px,transparent 1.5px) 0 0/7px 7px,#171918;
}
.gray-granite {
	background: radial-gradient(circle at 70% 20%,#3b3f3d 0 1px,transparent 1.4px) 0 0/8px 7px,#9a9b94;
}
.mixed-granite {
	background: linear-gradient(135deg,#1b1e1c 0 48%,#9a9b94 49% 100%);
}
.stone-sample b,.stone-sample small {
	display: block;
}
.stone-sample b {
	font: 400 20px/1.25 var(--serif);
}
.stone-sample small {
	color: var(--muted);
	font-size: 12px;
	line-height: 1.5;
	margin-top: 4px;
}
@media(forced-colors:active) {
	#material-black:checked~.material-content .stone-sample-black,
	#material-gray:checked~.material-content .stone-sample-gray,
	#material-mixed:checked~.material-content .stone-sample-mixed {
		outline: 2px solid Highlight;
		outline-offset: -2px;
	}
}

.empty-state.dark {
	border-color: rgba(255,255,255,.25);
	color: #c9c4ba;
}

.process {
	background: var(--paper-2);
}

.process-heading {
	align-items: end;
	display: grid;
	gap: 60px;
	grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
	margin-bottom: 56px;
}

.process-heading>p {
	color: var(--muted);
	margin: 0 0 10px;
	max-width: 560px;
}

.process-grid {
	border-bottom: 1px solid var(--line);
	border-top: 1px solid var(--line);
	display: grid;
	grid-template-columns: repeat(4,1fr);
}

.process-step {
	border-right: 1px solid var(--line);
	min-height: 300px;
	padding: 34px 26px;
	position: relative;
}

.process-step:first-child {
	border-left: 1px solid var(--line);
}

.process-step:after {
	background: var(--paper-2);
	border: 1px solid var(--line);
	border-radius: 50%;
	bottom: 0;
	content: "";
	height: 10px;
	position: absolute;
	right: 0;
	transform: translate(50%,50%);
	width: 10px;
	z-index: 2;
}

.step-number {
	color: var(--bronze);
	display: block;
	font-family: var(--serif);
	font-size: 21px;
	margin-bottom: 48px;
}

.process-step > .homepage-icon { color: #777b65; display: block; width: 32px; height: 32px; margin-bottom: 24px; stroke-width: 1.3; }
html[data-theme=dark] .process-step > .homepage-icon { color: #a8ad96; }

.process-step h3 {
	font-family: var(--serif);
	font-size: 24px;
	font-weight: 400;
	margin: 0 0 12px;
}

.process-step p {
	color: var(--muted);
	font-size: 14px;
	margin: 0;
}

.faq-grid {
	display: grid;
	gap: 80px;
	grid-template-columns: .85fr 1.15fr;
}

.faq-list details {
	border-top: 1px solid var(--line);
	padding: 22px 0;
}

.faq-list details:last-child {
	border-bottom: 1px solid var(--line);
}

.faq-list summary {
	cursor: pointer;
	display: flex;
	font-family: var(--serif);
	font-size: 25px;
	justify-content: space-between;
	list-style: none;
}

.faq-list p {
	color: var(--muted);
	max-width: 700px;
}

.address-link,.footer-contact a {
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.site-footer {
	background: #171919;
	color: #eeeae0;
	padding: 56px 0;
}

.footer-grid {
	align-items: start;
	display: grid;
	gap: 30px;
	grid-template-columns: 1fr 1fr 1fr;
}

.footer-grid--has-menu {
	grid-template-columns: repeat(4,minmax(0,1fr));
}

.site-footer p {
	color: #aaa69e;
}

.footer-navigation {
	min-width: 0;
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu a {
	color: #eeeae0;
	display: inline-block;
	overflow-wrap: anywhere;
	padding-block: .25rem;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.footer-contact a {
	color: inherit;
}

.developer-credit a {
	color: #eeeae0;
}

.mobile-contact-bar {
	background: #b08758;
	bottom: 0;
	display: none;
	left: 0;
	padding: 8px;
	position: fixed;
	text-align: center;
	width: 100%;
	z-index: 30;
}

.mobile-contact-bar a {
	align-items: center;
	color: #161717;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	min-height: 44px;
	text-decoration: none;
}

@media(max-width:1180px) and (min-width:981px) {
	.header-shell {
		gap: 12px;
		padding-left: 14px;
		width: calc(100% - 16px);
	}

	.desktop-nav {
		gap: clamp(10px,1.25vw,16px);
	}

	.header-phone {
		font-size: 12px;
		padding-inline: 9px;
	}

	.header-phone svg {
		display: none;
	}

	.language-switch a {
		min-width: 30px;
		padding-inline: 4px;
	}
}

@media(max-width:1100px) {
	.container {
		padding-inline: 20px;
	}

	.hero,.hero-grid {
		min-height: 680px;
	}

	.hero-grid {
		grid-template-columns: 1fr;
		padding-bottom: 58px;
	}


	.card-grid:not(.product-carousel-track) {
		grid-template-columns: repeat(2,1fr);
	}

	.product-carousel-track {
		grid-auto-columns: calc((100% - 20px)/2);
	}

	.materials-grid,.faq-grid {
		gap: 42px;
		grid-template-columns: 1fr;
	}


	.contact-grid {
		grid-template-columns: 1fr;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
	}

}

@media(max-width:900px) {
	.process-heading {
		align-items: start;
		gap: 24px;
		grid-template-columns: 1fr;
	}

	.process-grid {
		grid-template-columns: repeat(2,1fr);
	}

	.process-step:nth-child(3) {
		border-left: 1px solid var(--line);
	}

	.process-step:nth-child(n+3) {
		border-top: 1px solid var(--line);
	}
}

@media(max-width:980px) {
	.header-shell {
		padding-inline: 14px 8px;
	}

	.desktop-nav {
		display: none;
	}

	.menu-toggle {
		display: block;
	}
}

@media(max-width:700px) {
	.language-switch {
		display: none;
	}

	.mobile-language-switch {
		display: flex;
	}
}

@media(max-width:560px) {
	.site-header {
		top: 8px;
	}

	.admin-bar .site-header {
		top: 54px;
	}

	.header-shell {
		min-height: 58px;
		padding: 7px;
		width: calc(100% - 16px);
	}

	.brand strong {
		font-size: 14px;
	}

	.brand-mark {
		border-radius: 14px 14px 2px 2px;
		height: 34px;
		width: 28px;
	}

	.brand-mark:before {
		bottom: 6px;
		top: 8px;
	}

	.brand-mark:after {
		left: 8px;
		top: 14px;
		width: 12px;
	}

	.header-phone {
		display: none;
	}

	.mobile-menu .mobile-language-switch a {
		font-family: var(--sans);
		font-size: 11px;
		font-weight: 800;
	}

	.mobile-menu {
		left: 8px;
		max-height: calc(100vh - 76px);
		padding: 20px 16px;
		right: 8px;
		top: calc(100% - 4px);
	}

	.mobile-contact-bar {
		display: block;
	}

	body.has-mobile-contact-bar {
		padding-bottom: 60px;
	}

	.hero,.hero-grid {
		min-height: 640px;
	}

	.hero-grid {
		padding-top: 130px;
	}

	.hero-content h1 {
		font-size: clamp(42px,13.2vw,64px);
		margin-bottom: 24px;
	}

	.hero-photo {
		object-position: 78% center;
	}

	.hero-shade {
		background: linear-gradient(90deg,rgba(8,10,9,.94),rgba(8,10,9,.72) 75%,rgba(8,10,9,.48)),linear-gradient(0deg,rgba(8,10,9,.6),transparent 50%);
	}

	.hero-content>p:not(.eyebrow) {
		font-size: 16px;
	}

	.hero-actions {
		display: grid;
	}

	.hero-actions .button {
		width: 100%;
	}

	.section {
		padding-block: 76px;
	}

	.card-grid:not(.product-carousel-track) {
		grid-template-columns: 1fr;
	}

	.product-carousel-track {
		grid-auto-columns: min(86%,320px);
	}


	.process-grid {
		grid-template-columns: 1fr;
	}

	.process-step {
		border-left: 1px solid var(--line);
		min-height: 230px;
	}

	.process-step:nth-child(n+2) {
		border-top: 1px solid var(--line);
	}

	.step-number {
		margin-bottom: 34px;
	}

	.footer-grid {
		grid-template-columns: 1fr;
	}

}

@media(prefers-reduced-motion:reduce) {
	:root {
		scroll-behavior: auto;
	}

	*,*:before,*:after {
		animation-duration: .01ms!important;
		animation-iteration-count: 1!important;
		transition-duration: .01ms!important;
	}

}

@media(forced-colors:active) {
	:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
		outline-color: Highlight;
	}

	.button,.icon-button,.header-phone,.catalog-panel,.catalog-nav-trigger button,.mobile-menu-row button,.stone-sample,.product-card,.price-request-cta,.price-request-dialog,.monumente-inquiry-form-wrap,.monumente-contact-fields,.monumente-form-errors {
		border: 1px solid CanvasText;
	}

	.monumente-inquiry-form-wrap,.monumente-inquiry-form-wrap :where(input,textarea) {
		background: Canvas;
		color: CanvasText;
	}

	.monumente-form-errors,.field-error {
		color: Mark;
	}

	.brand-mark,.brand-mark:after {
		forced-color-adjust: none;
	}
}

/* Compact contact and footer composition. */
a[href^="tel:"] { text-decoration: none; }
a[href^="tel:"]:hover { text-decoration: underline; text-underline-offset: .22em; }
.footer-grid,.footer-grid--has-menu { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.footer-navigation { grid-column: 1; }
.footer-contact { grid-column: 2; grid-row: 1 / span 2; }
.developer-credit { grid-column: 1 / -1; margin: 0; }
@media (max-width: 600px) { .footer-grid,.footer-grid--has-menu { grid-template-columns: 1fr; } .footer-contact { grid-column: 1; grid-row: auto; } }

/* Every card preserves the whole preview, including legacy fallback images. */
.product-card img { object-fit: contain; background: #fff; }
/* Catalog cards reveal approved image alpha; other image surfaces stay unchanged. */
.card-grid .product-card img { background: transparent; }
.product-card__title { font-size: clamp(18px,1.6vw,24px); overflow-wrap: normal; word-break: normal; hyphens: manual; padding: 16px; }
.entrance-gallery { background: var(--paper); color: var(--ink); border: 1px solid var(--line); padding: 22px; width: min(920px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; box-sizing: border-box; }
.entrance-gallery::backdrop { background: rgba(0,0,0,.75); }
.entrance-gallery h2 { font-size: 26px; padding-right: 44px; }
.entrance-gallery figure { margin: 12px 0; }
.entrance-gallery figure[hidden] { display: none; }
.entrance-gallery img { display: block; width: 100%; height: min(58vh,600px); object-fit: contain; }
.entrance-gallery figcaption { font: 14px/1.5 var(--sans); margin-top: 10px; }
.entrance-gallery button { min-height: 44px; padding: 10px; font: 14px var(--sans); cursor: pointer; background: var(--paper); color: var(--ink); border: 1px solid var(--line); }
[data-entrance-close] { position: absolute; right: 14px; top: 14px; min-width: 44px; }
.entrance-gallery-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }

/* Compact shared footer contacts. */
.site-footer{padding:32px 0 24px}.footer-grid{gap:14px 24px}.footer-contact p{margin:8px 0}.site-footer .developer-credit{margin-top:8px}

.product-card__image-hold {
	aspect-ratio: 4 / 5;
	display: grid;
	place-items: center;
	width: 100%;
	padding: 24px;
	color: var(--muted);
	font-family: var(--sans);
	font-size: 14px;
	text-align: center;
}

/* Owner QA: floating header and a readable overlapping cascade. */
.catalog-nav { --catalog-overlap: 8px; }
@media (min-width: 561px) and (max-width: 782px) { .admin-bar .site-header { top: 53px; } }
.footer-brand { display: grid; align-content: start; gap: 10px; }
.site-footer .footer-brand p { margin: 0; }
.site-footer .developer-credit { grid-column: auto; margin: 0; }
.footer-contact { grid-row: auto; }
.site-footer { padding: 24px 0; }
.site-footer .footer-contact p { margin: 5px 0; }

.contact-email { overflow-wrap: anywhere; }

.footer-brand > a { color: inherit; text-underline-offset: .2em; }
.footer-brand > a:hover { color: #fff; }

/* Keep the example beside its choices vertically on small screens. */
@media(max-width:900px) {
	.materials .materials-grid {
		gap: 20px;
	}
	.material-content {
		display: contents;
	}
	.material-content>.eyebrow {
		grid-row: 1;
		margin: 0;
	}
	.material-content>h2 {
		grid-row: 2;
		margin: 0;
	}
	.material-content>p:not(.eyebrow) {
		grid-row: 3;
		margin: 0 0 12px;
	}
	.material-visual {
		grid-row: 4;
		justify-self: center;
		margin: 12px 18px 0 0;
		max-width: 425px;
		width: calc(100% - 18px);
	}
	.stone-list {
		grid-row: 5;
		margin-top: 0;
	}
}
@media(max-width:560px) {
	.material-visual {
		max-width: 282px;
	}
	.stone-sample {
		min-height: 78px;
		padding-block: 12px;
	}
}

/* Final contact screen: sold-reference proportions, direct production actions. */
.homepage-icon { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 24px; width: 24px; height: 24px; }
.contacts { background: var(--paper-2); color: var(--ink); }
.contact-heading { text-align: center; margin-bottom: 54px; }
.contact-heading .eyebrow { color: var(--bronze); }
.contact-heading h2 { max-width: 800px; margin: 0 auto 24px; text-wrap: balance; }
.contact-heading > p:last-child { color: var(--muted); max-width: 720px; margin: 0 auto; }
.contact-layout { max-width: 1304px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; align-items: stretch; }
.contact-action-panel,.contact-hub { min-width: 0; border: 1px solid var(--line); background: var(--paper); }
.contact-action-panel { display: flex; flex-direction: column; padding: clamp(28px,3vw,48px); }
.contact-action-panel h3 { font: 400 clamp(30px,2.6vw,38px)/1.12 var(--serif); margin: 0 0 20px; }
.contact-guidance { color: var(--muted); margin: 0 0 28px; font-size: 15px; }
.contact-direct-actions { display: grid; gap: 12px; }
.contact-action { display: flex; align-items: center; gap: 14px; min-height: 80px; border: 1px solid var(--line); padding: 16px 18px; color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 700; }
.contact-action > span { flex: 1; min-width: 0; }
.contact-action small { display: block; color: var(--muted); font-size: 12px; font-weight: 400; margin-top: 4px; overflow-wrap: anywhere; }
.contact-action > .homepage-icon:last-child { width: 18px; height: 18px; flex-basis: 18px; }
.contact-action:hover { background: var(--paper-2); }
.contact-action-primary { background: #79522c; border-color: #79522c; color: #fff; }
.contact-action-primary small { color: #f4e6d6; font-size: 15px; }
.contact-action-primary:hover { background: #604022; }
.contact-hours { margin-top: auto; padding-top: 28px; }
.contact-hours h4 { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px; }
.contact-hours p { font-size: 13px; margin: 3px 0; }
.contact-hub { display: flex; flex-direction: column; }
.contact-details { display: grid; grid-template-columns: .85fr 1.15fr; }
.contact-details > :is(a,div) { display: flex; align-items: center; gap: 12px; padding: 20px; min-width: 0; min-height: 106px; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.contact-details > :last-child { border-left: 1px solid var(--line); }
.contact-details .homepage-icon { color: var(--bronze); }
.contact-details small { display: block; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.contact-details b { display: block; font-size: 13px; line-height: 1.45; }
.contact-messengers { padding: 24px; scroll-margin-top: 140px; }
.contact-messengers h3 { font: 400 21px/1.3 var(--serif); margin: 0 0 14px; }
.messenger-buttons { display: grid; gap: 8px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.messenger { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border: 1px solid var(--line); color: var(--ink); background: var(--paper-2); font-size: 12px; font-weight: 700; text-decoration: none; }
.messenger .homepage-icon { width: 19px; height: 19px; flex-basis: 19px; }
.messenger-viber:hover { background: #6650c4; color: #fff; }
.messenger-whatsapp:hover { background: #126e43; color: #fff; }
.messenger-telegram:hover { background: #196c97; color: #fff; }
.contact-app-note { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 12px 0 0; }
.contact-location-actions { display: flex; flex-wrap: wrap; padding: 0 24px 18px; gap: 8px 12px; }
.contact-location-actions > a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; border: 1px solid var(--line); padding: 8px 12px; color: var(--ink); font-size: 12px; font-weight: 700; text-decoration: none; flex: 1 1 auto; }
.contact-location-actions > a:hover { background: var(--paper-2); }
.contact-location-actions .homepage-icon { width: 18px; height: 18px; flex-basis: 18px; }
.contact-map { position: relative; flex: 1; min-height: 310px; border-top: 1px solid var(--line); background: #d8d8cb; }
.contact-map-link { display: block; position: relative; height: 100%; min-height: 310px; color: #242622; }
.contact-map img { display: block; position: absolute; width: 100%; height: 100%; object-fit: cover; }
.contact-map-label { position: absolute; left: 50%; top: 18px; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); padding: 10px 16px; background: #f7f4ed; border: 1px solid #acac98; box-shadow: 0 4px 15px #20222220; font: 700 15px/1.4 var(--sans); text-align: center; }
.contact-map-label small { display: block; font-size: 11px; font-weight: 400; margin-top: 3px; }
.contact-map-credit { position: absolute; bottom: 0; right: 0; display: flex; align-items: center; min-height: 44px; padding: 6px 10px; background: #f7f4edee; color: #383c32; font-size: 10px; }
html[data-theme=dark] .contact-map img { filter: brightness(.72) saturate(.6); }
@media(max-width:1100px) and (min-width:901px) { .contact-details { grid-template-columns: 1fr; } .contact-details > :is(a,div) { min-height: 80px; } .contact-details > :last-child { border-left: 0; } .messenger { flex-direction: column; gap: 3px; padding: 8px 4px; } }
@media(max-width:900px) { .contact-layout { grid-template-columns: minmax(0,1fr); } .contact-action-panel { padding: 32px; } .contact-heading h2 { max-width: 700px; } }
@media(max-width:600px) { .contact-heading { margin-bottom: 32px; } .contact-heading h2 { font-size: 44px; } .contact-heading > p:last-child { font-size: 14px; } .contact-action-panel { padding: 24px; } .contact-action-panel h3 { font-size: 30px; } .contact-guidance { font-size: 14px; } .contact-action { padding: 14px 12px; gap: 10px; } .contact-action > .homepage-icon:last-child { display: none; } .contact-details { grid-template-columns: minmax(0,1fr); } .contact-details > :is(a,div) { min-height: 86px; } .contact-details > :last-child { border-left: 0; } .contact-messengers { padding: 20px 16px; } .messenger-buttons { gap: 6px; } .messenger { font-size: 11px; gap: 5px; } .contact-location-actions { padding: 0 16px 16px; } .contact-map,.contact-map-link { min-height: 300px; } }
@media(forced-colors:active) { .contact-action,.messenger,.contact-location-actions > a { border: 1px solid ButtonText; } .contact-map-label,.contact-map-credit { background: Canvas; color: CanvasText; } }

/* Reuse the hero CTA copper for the mobile call action. */
@media (max-width: 800px) {
	.mobile-contact-bar a[href^="tel:"] {
		background: #98643d;
		color: #fff;
	}

	.mobile-contact-bar a[href^="tel:"]:hover {
		background: #825332;
	}

	.mobile-contact-bar a[href^="tel:"]:focus-visible {
		outline-color: #fff;
		outline-offset: -5px;
	}
}
