/*
Theme Name: OLDENT Core
Description: WordPress theme for OLDENT.
Author: Oldent
Version: 1.75.0
Requires at least: 6.6
Requires PHP: 8.2
Text Domain: oldent
License: GPL-2.0-or-later
*/

/*
OLDENT CSS ARCHITECTURE
=======================

1. theme.json owns editor-facing design tokens and Core defaults.
2. .oldent-container is the single horizontal alignment primitive.
3. Full-bleed sections own their background; inner content owns the container.
4. Homepage components use semantic theme HTML when WordPress editing does not
   add useful CMS value.
5. Core remains responsible for Navigation, Query Loop, post data,
   Post Content and template parts.
6. CSS is component-first. No generic utility soup and no Core layout classes
   are required for homepage geometry.
*/

/* -------------------------------------------------------------------------- */
/* 00. FONTS & TOKENS                                                         */
/* -------------------------------------------------------------------------- */

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("./assets/fonts/manrope-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("./assets/fonts/manrope-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Playfair Display";
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url("./assets/fonts/playfair-display-normal-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Playfair Display";
	font-style: normal;
	font-weight: 400 900;
	font-display: swap;
	src: url("./assets/fonts/playfair-display-normal-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Playfair Display";
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url("./assets/fonts/playfair-display-italic-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Playfair Display";
	font-style: italic;
	font-weight: 400 900;
	font-display: swap;
	src: url("./assets/fonts/playfair-display-italic-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("./assets/fonts/jetbrains-mono-normal-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("./assets/fonts/jetbrains-mono-normal-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: italic;
	font-weight: 400 800;
	font-display: swap;
	src: url("./assets/fonts/jetbrains-mono-italic-latin-ext.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "JetBrains Mono";
	font-style: italic;
	font-weight: 400 800;
	font-display: swap;
	src: url("./assets/fonts/jetbrains-mono-italic-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--oldent-font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
	--oldent-font-serif: "Playfair Display", Georgia, serif;
	--oldent-font-mono: var(--wp--preset--font-family--mono, "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);

	--oldent-type-display: clamp(3.15rem, 2.05rem + 3.25vw, 5.35rem);
	--oldent-type-h1: clamp(2.7rem, 1.95rem + 2.25vw, 4.15rem);
	--oldent-type-h2: clamp(2.05rem, 1.55rem + 1.45vw, 3rem);
	--oldent-type-h3: clamp(1.35rem, 1.15rem + 0.65vw, 1.8rem);
	--oldent-type-body: clamp(1rem, 0.96rem + 0.16vw, 1.1rem);
	--oldent-type-label: 0.75rem;
	--oldent-heading-track: -0.045em;
	--oldent-label-track: 0.13em;

	--oldent-content-max: var(--wp--style--global--content-size, 1180px);
	--oldent-wide-max: var(--wp--style--global--wide-size, 1400px);
	--oldent-gutter: clamp(1rem, 3vw, 2rem);

	--oldent-blue: var(--wp--preset--color--blue, #5c96c8);
	--oldent-blue-dark: var(--wp--preset--color--blue-dark, #3f78aa);
	--oldent-blue-light: var(--wp--preset--color--blue-light, #86b3d8);
	--oldent-blue-mist: var(--wp--preset--color--blue-mist, #edf4f9);
	--oldent-deep-blue: var(--wp--preset--color--deep-blue, #183a55);
	--oldent-ink: var(--wp--preset--color--ink, #252a2e);
	--oldent-muted: var(--wp--preset--color--muted, #69737a);
	--oldent-border: var(--wp--preset--color--border, #dce3e8);
	--oldent-white: var(--wp--preset--color--white, #fff);
	--oldent-soft-white: var(--wp--preset--color--soft-white, #f7f8f8);

	--oldent-shadow-soft: 0 1rem 3rem rgb(16 35 51 / 8%);
	--oldent-shadow-lift: 0 1.5rem 4rem rgb(16 35 51 / 12%);
	--oldent-shadow-hover: 0 1rem 2.75rem rgb(16 35 51 / 10%);
	--oldent-shadow-focus: 0 0 0 4px rgb(134 179 216 / 28%);

	--oldent-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--oldent-duration-fast: 220ms;
	--oldent-duration: 360ms;
	--oldent-zoom: 1.035;

	/* Shared interaction tuning: buttons use a restrained lift/highlight instead
	 * of a synthetic ripple so the effect remains consistent across Core
	 * buttons, links, keyboard focus and touch devices. */
	--oldent-button-highlight: rgb(255 255 255 / 22%);

	--oldent-radius-sm: var(--wp--preset--border-radius--sm, 0.5rem);
	--oldent-radius-md: var(--wp--preset--border-radius--md, 1rem);
	--oldent-radius-lg: var(--wp--preset--border-radius--lg, 1.5rem);
	--oldent-radius-xl: var(--wp--preset--border-radius--xl, 2.5rem);
	--oldent-pill: 999px;
}



/*
 * LIVE FONT PRESETS — no HTML editing / data attributes required.
 * Pick a pairing by editing the two variables in :root above.
 * Preset A is active. To try another, copy its two values into :root.
 *
 * A — Premium editorial (recommended):
 *   --oldent-font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
 *   --oldent-font-serif: "Playfair Display", Georgia, serif;
 *
 * B — Modern clinical (all sans):
 *   --oldent-font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
 *   --oldent-font-serif: "Manrope", ui-sans-serif, system-ui, sans-serif;
 *
 * C — Classic/traditional:
 *   --oldent-font-sans: Arial, "Helvetica Neue", sans-serif;
 *   --oldent-font-serif: Georgia, "Times New Roman", serif;
 */

/* -------------------------------------------------------------------------- */
/* 01. GLOBAL / ACCESSIBILITY                                                 */
/* -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	max-width: 100%;
	overflow-x: clip;
}

[id] {
	scroll-margin-block-start: clamp(5.5rem, 8.5vw, 7rem);
}

body {
	max-width: 100%;
	overflow-x: clip;
	font-family: var(--oldent-font-sans);
	font-size: var(--oldent-type-body);
	line-height: 1.68;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-optical-sizing: auto;
	font-feature-settings: "cv01" 1, "cv02" 1, "ss01" 1, "liga" 1, "kern" 1;
	letter-spacing: -0.008em;
}

/* Progressive scroll-reveal animation */
html.js-reveal-ready .oldent-reveal {
	opacity: 0;
	transform: translateY(1.15rem);
	transition:
		opacity 680ms var(--oldent-ease) var(--reveal-delay, 0ms),
		transform 680ms var(--oldent-ease) var(--reveal-delay, 0ms);
}

html.js-reveal-ready .oldent-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

:where(h1, h2, h3, h4, .wp-block-post-title, .section-title, .subpage-hero__title) {
	text-wrap: balance;
}

:where(h1, .wp-block-post-title) {
	font-size: var(--oldent-type-h1);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: var(--oldent-heading-track);
}

:where(h2, .section-title) {
	font-size: var(--oldent-type-h2);
	font-weight: 750;
	line-height: 1.1;
	letter-spacing: -0.038em;
}

:where(h3) {
	font-size: var(--oldent-type-h3);
	font-weight: 750;
	line-height: 1.18;
	letter-spacing: -0.028em;
}

img {
	max-width: 100%;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

a {
	text-underline-offset: 0.18em;
	transition: color var(--oldent-duration-fast) var(--oldent-ease);
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--oldent-blue-light);
	outline-offset: 3px;
	box-shadow: var(--oldent-shadow-focus);
}

.skip-link {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	z-index: 1000;
	margin: 0;
	transform: translateY(-150%);
	transition: transform var(--oldent-duration) var(--oldent-ease);
}

.skip-link:focus-within {
	transform: translateY(0);
}

.skip-link a {
	display: inline-block;
	padding: 0.75rem 1rem;
	border-radius: 0 0 var(--oldent-radius-sm) var(--oldent-radius-sm);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	text-decoration: none;
}

::selection {
	background: var(--oldent-blue);
	color: var(--oldent-white);
}

/* -------------------------------------------------------------------------- */
/* 02. SHARED LAYOUT PRIMITIVES & EDITORIAL TYPOGRAPHY                        */
/* -------------------------------------------------------------------------- */

.oldent-container {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-content-max));
	margin-inline: auto;
}

.oldent-container--wide {
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
}

.oldent-section {
	width: 100%;
	box-sizing: border-box;
	padding-block: clamp(4.5rem, 8vw, 8rem);
}

.oldent-eyebrow,
.section-eyebrow,
.hero__eyebrow,
.oldent-page-header .wp-block-post-terms,
.oldent-single-header .wp-block-post-terms {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	max-width: 100%;
	gap: 0.65rem;
	margin-block: 0 clamp(0.85rem, 1.2vw, 1.15rem);
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: var(--oldent-type-label);
	font-weight: 750;
	font-variant-numeric: tabular-nums;
	letter-spacing: var(--oldent-label-track);
	line-height: 1.4;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}

.oldent-eyebrow::before,
.hero__eyebrow::before {
	display: inline-block;
	width: 1.45rem;
	height: 1.5px;
	flex: 0 0 auto;
	border-radius: 999px;
	background: currentColor;
	opacity: 0.65;
	content: "";
}

.section-title {
	max-width: 20ch;
	margin-block: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: var(--oldent-type-h2);
	font-weight: 750;
	line-height: 1.1;
	letter-spacing: -0.038em;
	text-wrap: balance;
}

:where(
	h1,
	h2,
	h3,
	.hero__title,
	.section-title,
	.subpage-hero__title,
	.oldent-page-header .wp-block-post-title,
	.oldent-single-header .wp-block-post-title
) em,
.oldent-editorial-accent {
	font-family: var(--oldent-font-serif);
	font-style: italic;
	font-weight: 500;
	font-size: 1.02em;
	line-height: 1.04;
	letter-spacing: -0.045em;
	color: var(--oldent-blue-dark);
	font-synthesis: none;
}

.oldent-measure {
	max-width: 44rem;
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 450;
	line-height: 1.68;
	letter-spacing: -0.01em;
}

/* -------------------------------------------------------------------------- */
/* 03. HEADER                                                                 */
/* -------------------------------------------------------------------------- */

.site-header,
.wp-site-blocks > header.site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	inset-block-start: var(--wp-admin--admin-bar--height, 0px);
	z-index: 900;
	isolation: isolate;
	width: 100%;
	background: transparent;
}

/* Keep backdrop-filter on ::before instead of .site-header itself so that
 * .site-header never becomes a containing block for position:fixed mobile
 * navigation overlays. */
.site-header::before,
.wp-site-blocks > header.site-header::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	border-bottom: 1px solid rgb(255 255 255 / 68%);
	background: rgb(255 255 255 / 68%);
	box-shadow:
		0 1px 0 rgb(24 58 85 / 8%),
		0 1rem 2.75rem rgb(16 35 51 / 7%),
		inset 0 1px 0 rgb(255 255 255 / 88%);
	backdrop-filter: blur(26px) saturate(185%);
	-webkit-backdrop-filter: blur(26px) saturate(185%);
	transition: background-color var(--oldent-duration) var(--oldent-ease), box-shadow var(--oldent-duration) var(--oldent-ease), border-color var(--oldent-duration) var(--oldent-ease);
	content: "";
}

.site-header.is-scrolled::before,
.wp-site-blocks > header.site-header.is-scrolled::before {
	border-bottom-color: rgb(220 227 232 / 85%);
	background: rgb(255 255 255 / 86%);
	box-shadow:
		0 1px 0 rgb(24 58 85 / 10%),
		0 1.15rem 3rem rgb(16 35 51 / 10%),
		inset 0 1px 0 rgb(255 255 255 / 94%);
}

.site-header__inner {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
	min-height: clamp(5rem, 6.5vw, 6.4rem);
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1rem, 2vw, 2rem);
}

.site-header__inner > .oldent-logo {
	flex: 0 0 auto;
}

.site-header__inner > .wp-block-navigation {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.site-header .oldent-logo {
	display: block;
	flex: 0 0 auto;
}

.site-header .oldent-logo img {
	display: block;
	width: clamp(9.25rem, 12vw, 10.75rem);
	height: auto;
	transition: opacity 260ms var(--oldent-ease), transform 420ms var(--oldent-ease);
}

.site-header .oldent-logo:hover img {
	opacity: 0.92;
	transform: translateY(-1px);
}

.site-header .wp-block-navigation {
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: -0.012em;
}

.site-header .wp-block-navigation__container {
	gap: 0.25rem;
	box-sizing: border-box;
	margin-inline-start: auto;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.site-header .wp-block-navigation-item {
	background: transparent !important;
}

.site-header .wp-block-navigation-item__content {
	position: relative;
	padding: 0.65rem clamp(0.75rem, 0.85vw, 0.95rem);
	border-radius: var(--oldent-pill);
	background: transparent;
	color: var(--oldent-deep-blue);
	line-height: 1.15;
	text-decoration: none;
	box-shadow: none;
	transition: color 260ms var(--oldent-ease), background-color 260ms var(--oldent-ease), transform 320ms var(--oldent-ease);
}

.site-header .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation-item__content:focus-visible {
	background: rgb(24 58 85 / 5%);
	color: var(--oldent-blue-dark);
	box-shadow: none;
	transform: translateY(-1px);
}

.site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.site-header .wp-block-navigation .current_page_item > .wp-block-navigation-item__content,
.site-header .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
.site-header .wp-block-navigation-item__content[aria-current="page"] {
	background: rgb(24 58 85 / 6%);
	color: var(--oldent-blue-dark);
	box-shadow: none;
}

.site-header .wp-block-navigation-item__content::after {
	position: absolute;
	inset-inline-start: 1.05rem;
	inset-inline-end: 1.05rem;
	inset-block-end: 0.3rem;
	height: 1.5px;
	border-radius: 999px;
	background: var(--oldent-blue);
	content: "";
	opacity: 0;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 460ms var(--oldent-ease), opacity 220ms ease;
}

.site-header .wp-block-navigation-item__content:hover::after,
.site-header .wp-block-navigation-item__content:focus-visible::after,
.site-header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after,
.site-header .wp-block-navigation-item__content[aria-current="page"]::after {
	opacity: 1;
	transform: scaleX(1);
}

.site-header .wp-block-navigation__responsive-container-open,
.site-header .wp-block-navigation__responsive-container-close {
	display: none;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	padding: 0;
	border: 1px solid rgb(24 58 85 / 12%);
	border-radius: 999px;
	background: rgb(255 255 255 / 86%);
	color: var(--oldent-deep-blue);
	box-shadow: 0 0.4rem 1.15rem rgb(16 35 51 / 7%), inset 0 1px 0 rgb(255 255 255 / 92%);
	cursor: pointer;
	transition: transform 240ms var(--oldent-ease), background-color 240ms var(--oldent-ease), border-color 240ms var(--oldent-ease), box-shadow 240ms var(--oldent-ease);
}

.site-header .wp-block-navigation__responsive-container-open:hover,
.site-header .wp-block-navigation__responsive-container-close:hover {
	border-color: rgb(92 150 200 / 38%);
	background: var(--oldent-white);
	box-shadow: 0 0.6rem 1.4rem rgb(16 35 51 / 11%);
	transform: translateY(-1px);
}

.site-header .wp-block-navigation__responsive-container-open svg,
.site-header .wp-block-navigation__responsive-container-close svg {
	width: 1.35rem;
	height: 1.35rem;
}

@media (min-width: 901px) {
	html.has-modal-open {
		overflow: auto !important;
	}

	.site-header .wp-block-navigation__responsive-container-open,
	.site-header .wp-block-navigation__responsive-container-close {
		display: none !important;
	}

	.site-header .wp-block-navigation__responsive-container,
	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		position: static !important;
		inset: auto !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: flex-end !important;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		margin-inline-start: auto !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		overflow: visible !important;
		animation: none !important;
	}

	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-close,
	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog,
	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: flex-end !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content::before,
	.site-header .wp-block-navigation__responsive-container .wp-block-navigation__container::after {
		display: none !important;
		content: none !important;
	}

	.site-header .wp-block-navigation__container,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		width: auto !important;
		margin-inline-start: auto !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}

	.site-header .wp-block-navigation-item,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: auto !important;
	}
}

@keyframes oldentMenuSheetIn {
	from {
		opacity: 0;
		transform: translateY(-0.5rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* -------------------------------------------------------------------------- */
/* 04. QUICK CONTACT                                                          */
/* -------------------------------------------------------------------------- */

.quick-contact {
	position: relative;
	z-index: 4;
	width: 100%;
	/* Keep the contact rail clearly separated from the Hero curve.
	 * Positive space is intentional here: the rail should feel floated
	 * below the Hero, not attached to its lower edge. */
	margin-block-start: clamp(1.25rem, 2.6vw, 2.5rem);
	background: transparent;
}

.quick-contact__inner {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
	margin-inline: auto;
	padding: clamp(0.45rem, 0.7vw, 0.65rem);
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.4rem, 0.7vw, 0.6rem);
	border: 1px solid rgb(220 227 232 / 88%);
	border-radius: clamp(1.1rem, 1.8vw, 1.45rem);
	background: rgb(255 255 255 / 96%);
	box-shadow: 0 1.5rem 3.5rem rgb(16 35 51 / 11%), 0 0.35rem 1rem rgb(16 35 51 / 5%);
	backdrop-filter: blur(14px) saturate(125%);
	-webkit-backdrop-filter: blur(14px) saturate(125%);
}

.quick-contact__item {
	position: relative;
	display: grid;
	min-width: 0;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	column-gap: clamp(0.75rem, 1.1vw, 0.95rem);
	padding: clamp(0.9rem, 1.3vw, 1.1rem) clamp(0.95rem, 1.4vw, 1.15rem);
	margin: 0;
	border-radius: calc(var(--oldent-radius-md) - 0.1rem);
	color: var(--oldent-ink);
	font-size: clamp(0.92rem, 0.86rem + 0.18vw, 1.02rem);
	line-height: 1.35;
	transition: background-color var(--oldent-duration) var(--oldent-ease), box-shadow var(--oldent-duration) var(--oldent-ease), transform var(--oldent-duration) var(--oldent-ease);
}

.quick-contact__item:hover,
.quick-contact__item:focus-within {
	transform: translateY(-2px);
	background: var(--oldent-blue-mist);
	box-shadow: inset 0 0 0 1px rgb(92 150 200 / 16%);
}

.quick-contact__icon {
	display: grid;
	width: clamp(2.35rem, 3vw, 2.65rem);
	height: clamp(2.35rem, 3vw, 2.65rem);
	place-items: center;
	flex: 0 0 auto;
	border: 1px solid rgb(92 150 200 / 18%);
	border-radius: 50%;
	background: linear-gradient(145deg, var(--oldent-blue-mist), var(--oldent-white));
	color: var(--oldent-blue-dark);
	box-shadow: inset 0 1px 0 rgb(255 255 255 / 90%);
	transition: background var(--oldent-duration) var(--oldent-ease), color var(--oldent-duration) var(--oldent-ease), border-color var(--oldent-duration) var(--oldent-ease), transform var(--oldent-duration) var(--oldent-ease);
}

.quick-contact__item:hover .quick-contact__icon,
.quick-contact__item:focus-within .quick-contact__icon {
	border-color: var(--oldent-deep-blue);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	transform: scale(1.06);
}

.quick-contact__icon svg {
	width: 1.08rem;
	height: 1.08rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.85;
}

.quick-contact__copy {
	min-width: 0;
}

.quick-contact__label {
	display: block;
	margin-block-end: 0.28rem;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.68rem, 0.65rem + 0.1vw, 0.74rem);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.15em;
	line-height: 1.25;
	text-transform: uppercase;
}

.quick-contact__value {
	display: block;
	min-width: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: clamp(0.94rem, 0.88rem + 0.18vw, 1.04rem);
	font-weight: 720;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.014em;
	line-height: 1.4;
	text-decoration: none;
	text-wrap: balance;
}

.quick-contact__item a:hover {
	color: var(--oldent-blue-dark);
}

/* -------------------------------------------------------------------------- */
/* 05. HERO                                                                   */
/* -------------------------------------------------------------------------- */

.hero {
	position: relative;
	isolation: isolate;
	width: 100%;
	overflow: hidden;
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
}

.hero__frame {
	position: relative;
	width: 100%;
}

.hero__main {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
	align-items: stretch;
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
	min-height: clamp(28rem, 39vw, 35rem);
	margin-inline: auto;
	padding-block: clamp(1rem, 2vw, 1.5rem);
	overflow: hidden;
}

.hero__content {
	position: relative;
	z-index: 2;
	display: grid;
	align-content: center;
	justify-items: start;
	box-sizing: border-box;
	min-width: 0;
	min-height: clamp(26rem, 35vw, 32rem);
	padding: clamp(3rem, 5vw, 5rem) clamp(2rem, 4.5vw, 5rem);
	border-block-start: 1px solid rgb(24 58 85 / 14%);
	border-inline-start: 1px solid rgb(24 58 85 / 14%);
	border-end-start-radius: clamp(1rem, 2vw, 1.5rem);
	background: var(--oldent-white);
}

.hero__title {
	max-width: 12.5ch;
	margin-block: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: var(--oldent-type-display);
	font-weight: 800;
	line-height: 0.99;
	text-wrap: balance;
	letter-spacing: -0.052em;
}

.hero__title em {
	display: inline;
	font-family: var(--oldent-font-serif);
	font-style: italic;
	font-weight: 500;
	font-size: 1.02em;
	letter-spacing: -0.045em;
	color: var(--oldent-blue-dark);
}

.hero__lead {
	max-width: 39rem;
	margin-block: clamp(1.5rem, 2.4vw, 2rem) 0;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-sans);
	font-size: clamp(1.08rem, 1rem + 0.35vw, 1.25rem);
	font-weight: 450;
	line-height: 1.7;
	letter-spacing: -0.01em;
}

@media (min-width: 1101px) {
	.hero__content {
		padding: clamp(3rem, 5.5vw, 5.75rem);
	}

	.hero__title {
		max-width: 11.5ch;
	}
}

.hero__actions {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--space-2);
	margin-block-start: clamp(1.75rem, 2.8vw, 2.5rem);
}

.hero__actions .wp-element-button {
	min-height: 3.2rem;
	padding-inline: 1.55rem;
	font-size: clamp(0.94rem, 0.9rem + 0.14vw, 1.02rem);
	font-weight: 720;
	letter-spacing: -0.01em;
}

.hero__actions > .wp-element-button:first-child {
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	box-shadow: 0 0.7rem 1.6rem rgb(24 58 85 / 18%);
}

.hero__actions > .wp-element-button:first-child:hover { background: var(--oldent-blue-dark); }

.hero__secondary-action {
	border: 1.5px solid rgb(24 58 85 / 22%);
	background: transparent;
	color: var(--oldent-deep-blue);
}

.hero__secondary-action:hover {
	border-color: rgb(24 58 85 / 42%);
	background: var(--oldent-blue-mist);
	color: var(--oldent-deep-blue);
}

.hero__media {
	position: relative;
	z-index: 1;
	min-width: 0;
	min-height: clamp(26rem, 35vw, 32rem);
	overflow: hidden;
	border-block-start: 1px solid rgb(255 255 255 / 22%);
	border-inline-end: 1px solid rgb(255 255 255 / 22%);
	border-end-end-radius: clamp(1rem, 2vw, 1.5rem);
	background:
		radial-gradient(circle at 75% 22%, rgb(134 179 216 / 42%), transparent 34%),
		radial-gradient(circle at 18% 82%, rgb(92 150 200 / 28%), transparent 40%),
		linear-gradient(145deg, var(--oldent-deep-blue) 0%, var(--oldent-blue-dark) 58%, #285b87 100%);
	contain: layout paint;
}

.hero__pattern {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	overflow: hidden;
}

.hero__pattern-orb {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	filter: blur(28px);
	animation: oldentAmbientOrb 11s ease-in-out infinite alternate;
}

.hero__pattern-orb--one {
	width: 18rem;
	height: 18rem;
	top: -3rem;
	right: -2rem;
	background: rgb(134 179 216 / 26%);
}

.hero__pattern-orb--two {
	width: 15rem;
	height: 15rem;
	bottom: -3rem;
	left: -2rem;
	background: rgb(92 150 200 / 22%);
	animation-delay: -5.5s;
}

.hero__pattern-ring {
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.hero__pattern-ring--outer {
	width: 82%;
	aspect-ratio: 1;
	border: 1px solid rgb(255 255 255 / 14%);
	transform: translate(16%, -6%);
	animation: oldentAmbientRingOuter 14s ease-in-out infinite alternate;
}

.hero__pattern-ring--middle {
	width: 58%;
	aspect-ratio: 1;
	border: 1px solid rgb(255 255 255 / 18%);
	transform: translate(-18%, 14%);
	animation: oldentAmbientRingMiddle 12s ease-in-out infinite alternate;
}

.hero__pattern-ring--inner {
	width: 38%;
	aspect-ratio: 1;
	border: 1px dashed rgb(255 255 255 / 22%);
	animation: oldentAmbientSpin 48s linear infinite;
}

@keyframes oldentAmbientOrb {
	from { transform: translate(0, 0) scale(1); }
	to { transform: translate(-12px, 14px) scale(1.08); }
}

@keyframes oldentAmbientRingOuter {
	from { transform: translate(16%, -6%) scale(1); }
	to { transform: translate(13%, -3%) scale(1.03); }
}

@keyframes oldentAmbientRingMiddle {
	from { transform: translate(-18%, 14%) scale(1); }
	to { transform: translate(-14%, 10%) scale(1.04); }
}

@keyframes oldentAmbientSpin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

.hero__pattern-badge {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	max-width: calc(100% - 2rem);
	padding: clamp(1.35rem, 3vw, 2.25rem) clamp(1.5rem, 3.8vw, 2.85rem);
	border: 1px solid rgb(255 255 255 / 28%);
	border-radius: 1.5rem;
	background: rgb(255 255 255 / 9%);
	box-shadow: 0 1.25rem 3rem rgb(0 0 0 / 18%), inset 0 1px 0 rgb(255 255 255 / 24%);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	text-align: center;
}

.hero__pattern-monogram {
	color: var(--oldent-white);
	font-family: var(--oldent-font-serif);
	font-size: clamp(1.5rem, 2.4vw, 2.2rem);
	font-weight: 600;
	letter-spacing: 0.06em;
	line-height: 1.1;
}

.hero__pattern-sub {
	color: rgb(255 255 255 / 72%);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.66rem, 1.8vw, 0.72rem);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.hero__trust {
	position: relative;
	z-index: 3;
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
	margin-inline: auto;
	padding-block: clamp(3rem, 5vw, 4.75rem) clamp(5rem, 7vw, 7rem);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 1.8vw, 1.5rem);
}

.hero__trust-item {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: clamp(1.35rem, 2.2vw, 1.7rem) clamp(1.4rem, 2.5vw, 2rem);
	border: 1px solid rgb(220 227 232 / 92%);
	border-radius: clamp(0.95rem, 1.5vw, 1.25rem);
	background: var(--oldent-white);
	box-shadow: 0 0.9rem 2.2rem rgb(16 35 51 / 12%), inset 0 1px 0 rgb(255 255 255 / 90%);
	color: var(--oldent-muted);
	line-height: 1.55;
	transition: transform var(--oldent-duration) var(--oldent-ease), box-shadow var(--oldent-duration) var(--oldent-ease);
}

.hero__trust-item::before {
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--oldent-blue-light), var(--oldent-blue));
	opacity: 0.75;
	content: "";
}

.hero__trust-item:hover {
	transform: translateY(-3px);
	box-shadow: 0 1.25rem 2.75rem rgb(16 35 51 / 16%), inset 0 1px 0 rgb(255 255 255 / 95%);
}

.hero__trust-item strong {
	display: block;
	margin-block-end: 0.35rem;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: clamp(1.06rem, 0.98rem + 0.22vw, 1.2rem);
	font-weight: 760;
	letter-spacing: -0.02em;
	line-height: 1.28;
}

.hero__trust-item span {
	display: block;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: clamp(0.9rem, 0.86rem + 0.12vw, 0.96rem);
	font-weight: 460;
	line-height: 1.5;
	letter-spacing: -0.005em;
}

.hero__curve {
	position: absolute;
	inset-inline: 0;
	inset-block-end: -1px;
	z-index: 2;
	display: block;
	width: 100%;
	height: clamp(3.25rem, 6vw, 6rem);
	pointer-events: none;
}

.hero__curve svg { display: block; width: 100%; height: 100%; }
.hero__curve path { fill: var(--oldent-white); }

/* -------------------------------------------------------------------------- */
/* 06. SHARED BUTTONS                                                        */
/* -------------------------------------------------------------------------- */

/*
 * BUTTON INTERACTION
 * --------------------------------------------------------------------------
 * The previous CSS-only radial ripple was intentionally removed: without a
 * pointer coordinate it reads more like a background flash than a true
 * ripple, and it was inconsistent between browsers/input methods. Buttons
 * now share one restrained premium interaction: lift + shadow + inner light.
 * Tune the global highlight with --oldent-button-highlight in :root.
 */
.wp-element-button,
.wp-block-button__link {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	max-width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	text-align: center;
	transition: transform 280ms var(--oldent-ease), background-color 280ms var(--oldent-ease), color 280ms var(--oldent-ease), border-color 280ms var(--oldent-ease), box-shadow 320ms var(--oldent-ease);
}

.wp-element-button::after,
.wp-block-button__link::after {
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
	border-radius: inherit;
	background: linear-gradient(115deg, transparent 25%, var(--oldent-button-highlight) 50%, transparent 75%);
	transform: translateX(-125%);
	transition: transform 650ms var(--oldent-ease);
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 0.75rem 1.75rem rgb(16 35 51 / 13%);
}

.wp-element-button:hover::after,
.wp-block-button__link:hover::after {
	transform: translateX(125%);
}

.wp-element-button:active,
.wp-block-button__link:active {
	transform: translateY(0);
	box-shadow: 0 0.25rem 0.75rem rgb(16 35 51 / 10%);
}

.wp-element-button:focus-visible::after,
.wp-block-button__link:focus-visible::after {
	transform: translateX(125%);
}

/* -------------------------------------------------------------------------- */
/* 07. BENEFITS                                                              */
/* -------------------------------------------------------------------------- */

.benefits-section {
	background: var(--oldent-white);
}

.benefits-intro {
	max-width: 50rem;
	margin-block-end: clamp(2.5rem, 4.5vw, 4rem);
}

.benefits-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.15rem, 2.2vw, 2rem);
}

.benefit-card {
	position: relative;
	display: flex;
	min-height: clamp(15.5rem, 21vw, 19.5rem);
	box-sizing: border-box;
	flex-direction: column;
	padding: clamp(2rem, 3vw, 2.65rem);
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background: var(--oldent-soft-white);
	box-shadow: var(--oldent-shadow-soft);
	transition: transform 420ms var(--oldent-ease), border-color 420ms var(--oldent-ease), box-shadow 420ms var(--oldent-ease), background-color 420ms var(--oldent-ease);
}

.benefit-card:hover,
.benefit-card:focus-within {
	border-color: rgb(134 179 216 / 82%);
	background: linear-gradient(180deg, var(--oldent-white), var(--oldent-soft-white));
	box-shadow: var(--oldent-shadow-lift);
	transform: translateY(-6px);
}

.benefit-card__number {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 auto;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(2rem, 1.55rem + 1.2vw, 2.65rem);
	font-weight: 600;
	font-variant-numeric: lining-nums;
	letter-spacing: -0.02em;
	line-height: 1;
}

.benefit-card__number::after {
	display: block;
	height: 1px;
	flex: 1 1 auto;
	max-width: 4.5rem;
	background: linear-gradient(90deg, rgb(92 150 200 / 45%), transparent);
	content: "";
}

.benefit-card__title {
	max-width: 18ch;
	margin: clamp(2rem, 3.8vw, 3.25rem) 0 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.38rem, 1.18rem + 0.52vw, 1.72rem);
	font-weight: 600;
	letter-spacing: -0.016em;
	line-height: 1.24;
}

.benefit-card__text {
	max-width: 34ch;
	margin: 1rem 0 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.68;
	letter-spacing: -0.006em;
}

/* -------------------------------------------------------------------------- */
/* 07.5. TEAM / DOCTOR PROFILES                                               */
/* -------------------------------------------------------------------------- */

.team-section {
	position: relative;
	overflow: clip;
	background:
		radial-gradient(circle at 8% 18%, rgb(134 179 216 / 10%), transparent 24%),
		linear-gradient(180deg, var(--oldent-soft-white) 0%, var(--oldent-white) 100%);
}

.team-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.85fr);
	align-items: end;
	gap: clamp(2rem, 6vw, 6rem);
	margin-block-end: clamp(2.5rem, 4.5vw, 4rem);
}

.team-intro__lead {
	margin: 0 0 0 auto;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.team-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.15rem, 2.2vw, 1.75rem);
	align-items: stretch;
}

.team-member-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--oldent-border);
	border-radius: clamp(1.15rem, 2vw, 1.75rem);
	background: var(--oldent-white);
	box-shadow: 0 1rem 2.5rem rgb(16 35 51 / 6%);
	transition: transform var(--oldent-duration) var(--oldent-ease), box-shadow var(--oldent-duration) var(--oldent-ease), border-color var(--oldent-duration) var(--oldent-ease);
}

.team-member-card::before {
	position: absolute;
	inset: 0 0 auto;
	z-index: 3;
	height: 0.22rem;
	background: linear-gradient(90deg, var(--oldent-blue-light), var(--oldent-blue), var(--oldent-deep-blue));
	content: "";
}

.team-member-card:hover,
.team-member-card:focus-within {
	border-color: rgb(92 150 200 / 34%);
	box-shadow: 0 1.75rem 4rem rgb(16 35 51 / 11%), 0 0.4rem 1.2rem rgb(16 35 51 / 5%);
	transform: translateY(-0.35rem);
}

.team-member-card--featured {
	box-shadow: 0 1.35rem 3.2rem rgb(16 35 51 / 8%);
}

.team-member-card__portrait {
	position: relative;
	isolation: isolate;
	aspect-ratio: 1.15 / 0.78;
	display: grid;
	place-items: center;
	overflow: hidden;
	background:
		radial-gradient(circle at 70% 25%, rgb(134 179 216 / 36%), transparent 30%),
		linear-gradient(145deg, var(--oldent-deep-blue), var(--oldent-blue-dark));
	color: var(--oldent-white);
}

.team-member-card__portrait::before,
.team-member-card__portrait::after {
	position: absolute;
	border: 1px solid rgb(255 255 255 / 15%);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.team-member-card__portrait::before {
	width: 68%;
	aspect-ratio: 1;
	transform: translate(22%, -8%);
}

.team-member-card__portrait::after {
	width: 42%;
	aspect-ratio: 1;
	transform: translate(-62%, 28%);
	border-color: rgb(255 255 255 / 9%);
}

.team-member-card__portrait-mark {
	position: relative;
	z-index: 2;
	display: grid;
	width: clamp(4.65rem, 7vw, 6.4rem);
	aspect-ratio: 1;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 32%);
	border-radius: 50%;
	background: rgb(255 255 255 / 9%);
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 18%), inset 0 1px 0 rgb(255 255 255 / 22%);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	font-weight: 600;
	letter-spacing: 0.02em;
}

.team-member-card__portrait-ring {
	position: absolute;
	z-index: 1;
	width: 46%;
	aspect-ratio: 1;
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: 50%;
	transform: translate(38%, 28%);
}

.team-member-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.6rem, 2.8vw, 2.25rem);
}

.team-member-card__eyebrow {
	margin: 0 0 0.65rem;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.7rem, 0.67rem + 0.1vw, 0.76rem);
	font-weight: 600;
	letter-spacing: 0.15em;
	line-height: 1.35;
	text-transform: uppercase;
}

.team-member-card__name {
	margin: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.38rem, 1.18rem + 0.52vw, 1.72rem);
	font-weight: 600;
	letter-spacing: -0.016em;
	line-height: 1.24;
}

.team-member-card__degree {
	font-family: inherit;
	font-style: normal;
	font-weight: inherit;
	color: inherit;
}

@media (max-width: 960px) {
	.team-intro {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.team-intro__lead {
		margin-inline: 0;
	}
}

@media (max-width: 820px) {
	.team-grid {
		grid-template-columns: 1fr;
		max-width: 34rem;
		margin-inline: auto;
		gap: 1.25rem;
	}

	.team-member-card__portrait {
		aspect-ratio: 16 / 9;
	}
}

/* -------------------------------------------------------------------------- */
/* 08. SERVICES                                                              */
/* -------------------------------------------------------------------------- */

.services-section {
	background: var(--oldent-soft-white);
}

.services-intro {
	max-width: 50rem;
	margin-block-end: clamp(2.5rem, 4.5vw, 4rem);
}

.services-lead {
	margin-block: clamp(1.15rem, 1.8vw, 1.5rem) 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.services-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.15rem, 1.8vw, 1.65rem);
}

.service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-width: 0;
	min-height: clamp(14.5rem, 18vw, 17rem);
	padding: clamp(1.65rem, 2.5vw, 2.2rem);
	box-sizing: border-box;
	overflow: hidden;
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background:
		radial-gradient(circle at 100% 0%, rgb(134 179 216 / 16%), transparent 55%),
		var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
	transition: transform 420ms var(--oldent-ease), border-color 420ms var(--oldent-ease), box-shadow 420ms var(--oldent-ease);
}

.service-card::before {
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--oldent-blue-light), var(--oldent-blue), var(--oldent-deep-blue));
	opacity: 0.85;
	content: "";
}

.service-card:hover,
.service-card:focus-within {
	transform: translateY(-5px);
	border-color: rgb(92 150 200 / 45%);
	box-shadow: var(--oldent-shadow-lift);
}

.service-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-block-end: clamp(1.75rem, 3vw, 2.5rem);
}

.service-card__icon {
	display: grid;
	width: 3.5rem;
	height: 3.5rem;
	place-items: center;
	padding: 0.78rem;
	box-sizing: border-box;
	border: 1px solid rgb(92 150 200 / 22%);
	border-radius: var(--oldent-radius-md);
	background: linear-gradient(145deg, var(--oldent-blue-mist), var(--oldent-white));
	box-shadow: 0 0.5rem 1.35rem rgb(16 35 51 / 6%), inset 0 1px 0 rgb(255 255 255 / 90%);
	transition: transform var(--oldent-duration) var(--oldent-ease), border-color var(--oldent-duration) var(--oldent-ease), box-shadow var(--oldent-duration) var(--oldent-ease);
}

.service-card__icon img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.service-card__number {
	margin: 0;
	padding: 0.38rem 0.72rem;
	border: 1px solid rgb(92 150 200 / 22%);
	border-radius: var(--oldent-pill);
	background: var(--oldent-soft-white);
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: 0.74rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.14em;
	line-height: 1;
}

.service-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin-block-start: auto;
}

.service-card__category {
	margin: 0;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.35;
	text-transform: uppercase;
}

.service-card__title {
	max-width: 20ch;
	margin: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: clamp(1.18rem, 1.06rem + 0.38vw, 1.42rem);
	font-weight: 760;
	letter-spacing: -0.024em;
	line-height: 1.26;
}

.service-card:hover .service-card__icon,
.service-card:focus-within .service-card__icon {
	transform: translateY(-2px) scale(1.03);
	border-color: rgb(92 150 200 / 42%);
	box-shadow: 0 0.85rem 1.85rem rgb(16 35 51 / 11%);
}

/* -------------------------------------------------------------------------- */
/* 09. NEWS / GALLERY                                                        */
/* -------------------------------------------------------------------------- */

.news-section,
.gallery-section {
	background: var(--oldent-soft-white);
}

.news-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1.25rem 2rem;
	padding-block-end: clamp(2.25rem, 4vw, 3.5rem);
}

.news-heading__action {
	margin: 0;
}

.news-heading .section-title,
.gallery-copy .section-title {
	margin-block: 0;
}

.oldent-query {
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-content-max));
	margin-inline: auto;
}

.news-section .oldent-query {
	padding-block-end: 0;
}

.oldent-query > .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.15rem, 2.2vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.oldent-query .wp-block-post {
	height: 100%;
	box-sizing: border-box;
	overflow: hidden;
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background: var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
	transition: transform 420ms var(--oldent-ease), box-shadow 420ms var(--oldent-ease), border-color 420ms var(--oldent-ease);
}

.oldent-query .wp-block-post:hover {
	transform: translateY(-4px);
	border-color: var(--oldent-blue-light);
	box-shadow: var(--oldent-shadow-lift);
}

.oldent-query .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.oldent-query .wp-block-post-featured-image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 900ms var(--oldent-ease);
}

.oldent-query .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(var(--oldent-zoom));
}

.oldent-query .wp-block-post-date,
.oldent-query .wp-block-post-title,
.oldent-query .wp-block-post-excerpt {
	margin-inline: clamp(1.4rem, 2.2vw, 1.9rem);
}

.oldent-query .wp-block-post-date {
	margin-block: 1.5rem 0.6rem;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.oldent-query .wp-block-post-title {
	margin-block: 0 0.75rem;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: var(--wp--preset--font-size--h3);
	font-weight: 760;
	letter-spacing: -0.024em;
	line-height: 1.24;
}

.oldent-query .wp-block-post-title:first-child {
	margin-block-start: 1.5rem;
}

.oldent-query .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}

.oldent-query .wp-block-post-excerpt {
	margin-block-end: 1.65rem;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.68;
}

.oldent-query__empty {
	max-width: 42rem;
	margin-inline: auto;
	padding: clamp(2.5rem, 4.5vw, 3.75rem) clamp(1.75rem, 3.5vw, 3rem);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background:
		radial-gradient(circle at 50% 0%, rgb(134 179 216 / 18%), transparent 65%),
		var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--body);
}

.oldent-query__empty-icon {
	display: grid;
	width: 3.5rem;
	height: 3.5rem;
	place-items: center;
	margin-block-end: 1.15rem;
	border: 1px solid rgb(92 150 200 / 25%);
	border-radius: 50%;
	background: var(--oldent-blue-mist);
	color: var(--oldent-blue-dark);
}

.oldent-query__empty-icon svg {
	width: 1.4rem;
	height: 1.4rem;
}

.oldent-query__empty-eyebrow {
	margin: 0 0 0.5rem;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.oldent-query__empty-title {
	margin: 0 0 0.65rem;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-size: clamp(1.35rem, 1.15rem + 0.5vw, 1.7rem);
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1.25;
}

.oldent-query__empty-text {
	max-width: 34rem;
	margin: 0;
	color: var(--oldent-muted);
	line-height: 1.65;
}

.gallery-layout {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(2.25rem, 5vw, 5.25rem);
	align-items: center;
}

.gallery-lead {
	max-width: 46rem;
	margin-block: clamp(1.15rem, 1.8vw, 1.5rem) 0;
	text-align: left;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.gallery-action {
	margin-block: var(--wp--preset--spacing--space-4) 0;
}

.gallery-action__trigger {
	padding: 0;
	border: 0;
	border-radius: var(--oldent-radius-sm);
	background: transparent;
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.76rem, 0.72rem + 0.12vw, 0.84rem);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.85rem, 1.5vw, 1.35rem);
}

.gallery-item {
	width: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: var(--oldent-radius-md);
	background: var(--oldent-blue-mist);
}

.gallery-item img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 900ms var(--oldent-ease);
}

.gallery-item:hover img {
	transform: scale(var(--oldent-zoom));
}

.oldent-query .wp-block-query-pagination {
	margin-block-start: var(--wp--preset--spacing--space-5);
}

/* -------------------------------------------------------------------------- */
/* 10. CTA                                                                    */
/* -------------------------------------------------------------------------- */

.cta-section {
	background: var(--oldent-white);
}

.cta-panel {
	position: relative;
	overflow: hidden;
	padding: clamp(2.75rem, 5.5vw, 5rem);
	border-radius: var(--oldent-radius-xl);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
}

.cta-panel::before {
	position: absolute;
	inset: auto -8rem -12rem auto;
	width: 28rem;
	height: 28rem;
	background: radial-gradient(circle, rgb(134 179 216 / 32%), transparent 70%);
	content: "";
	pointer-events: none;
}

.cta-panel__content {
	position: relative;
	z-index: 1;
	max-width: 52rem;
}

.cta-panel .oldent-eyebrow {
	color: var(--oldent-blue-light);
}

.cta-panel .section-title {
	color: var(--oldent-white);
}

.cta-panel .section-title em {
	color: var(--oldent-blue-light);
}

.cta-panel__lead {
	max-width: 42rem;
	margin-block: clamp(1.15rem, 1.8vw, 1.5rem) 0;
	color: rgb(255 255 255 / 84%);
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 450;
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.cta-panel__actions {
	margin-block-start: var(--wp--preset--spacing--space-4);
}

/* -------------------------------------------------------------------------- */
/* 11. FOOTER                                                                */
/* -------------------------------------------------------------------------- */

.site-footer {
	position: relative;
	width: 100%;
	overflow-x: clip;
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
}

.site-footer a {
	position: relative;
	color: inherit;
	text-decoration: none;
}

.site-footer a::after {
	position: absolute;
	inset-inline: 0;
	inset-block-end: -0.16em;
	height: 1px;
	border-radius: var(--oldent-pill);
	background: currentColor;
	content: "";
	transform: scaleX(0);
	transform-origin: right center;
	transition: transform var(--oldent-duration) var(--oldent-ease);
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--oldent-blue-light);
}

.site-footer a:hover::after,
.site-footer a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: left center;
}

.insurer-strip,
.footer-main,
.footer-bottom {
	width: 100%;
}

.insurer-strip {
	border-bottom: 1px solid rgb(255 255 255 / 14%);
}

.insurer-strip__inner {
	padding-block: var(--wp--preset--spacing--space-4);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem 1.25rem;
	flex-wrap: wrap;
	text-align: center;
}

.insurer-strip__title {
	margin: 0;
	color: rgb(255 255 255 / 74%);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.72rem, 0.69rem + 0.1vw, 0.78rem);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.insurer-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	flex-wrap: wrap;
}

.insurer-logo {
	position: relative;
	display: inline-flex;
	min-width: 5.25rem;
	box-sizing: border-box;
	padding: 0.68rem 0.95rem;
	justify-content: center;
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: var(--oldent-pill);
	background: transparent;
	color: rgb(255 255 255 / 86%);
	font-family: var(--oldent-font-mono);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1;
	cursor: default;
	transition: background-color 240ms var(--oldent-ease), color 240ms var(--oldent-ease), border-color 240ms var(--oldent-ease);
}

.insurer-logo:hover,
.insurer-logo:focus {
	border-color: var(--oldent-white);
	background: var(--oldent-white);
	color: var(--oldent-deep-blue);
}

.insurer-tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 0.75rem);
	z-index: 20;
	display: grid;
	width: min(18rem, 70vw);
	gap: 0.7rem;
	box-sizing: border-box;
	padding: 0.85rem;
	border: 1px solid rgb(255 255 255 / 16%);
	border-radius: 1rem;
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	box-shadow: 0 1rem 2.5rem rgb(8 28 43 / 24%);
	text-align: left;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate(-50%, 0.35rem);
	transition: opacity 180ms var(--oldent-ease), visibility 180ms var(--oldent-ease), transform 180ms var(--oldent-ease);
}

.insurer-tooltip::after {
	position: absolute;
	left: 50%;
	top: 100%;
	width: 0.7rem;
	height: 0.7rem;
	background: var(--oldent-deep-blue);
	content: "";
	transform: translate(-50%, -50%) rotate(45deg);
}

.oldent-front-page .insurer-logo:hover .insurer-tooltip,
.oldent-front-page .insurer-logo:focus .insurer-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}

.insurer-tooltip__name {
	position: relative;
	z-index: 1;
	font-family: var(--oldent-font-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

.insurer-tooltip__logo {
	position: relative;
	z-index: 1;
	display: grid;
	min-height: 3.25rem;
	place-items: center;
	border: 1px dashed rgb(255 255 255 / 35%);
	border-radius: 0.7rem;
	color: rgb(255 255 255 / 62%);
	font-family: var(--oldent-font-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.footer-main > .oldent-container {
	padding-block: clamp(3.25rem, 6vw, 4.75rem);
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.75rem, 3.5vw, 3.25rem);
	align-items: start;
	justify-items: center;
	text-align: center;
}

.footer-column {
	min-width: 0;
	width: 100%;
}

.footer-column h3 {
	margin-block: 0 1.15rem;
	color: var(--oldent-white);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.12rem, 1.04rem + 0.22vw, 1.26rem);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.25;
}

.footer-column p,
.footer-column address {
	margin-block: 0 0.85rem;
	color: rgb(255 255 255 / 84%);
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: clamp(0.94rem, 0.9rem + 0.12vw, 1rem);
	font-weight: 450;
	line-height: 1.68;
}

.footer-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.footer-brand .oldent-logo {
	display: block;
	margin-block-end: 1.1rem;
}

.footer-brand .oldent-logo img {
	display: block;
	width: min(176px, 100%);
	height: auto;
}

.footer-meta {
	color: rgb(255 255 255 / 62%);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.78rem, 0.74rem + 0.08vw, 0.84rem);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	line-height: 1.6;
	letter-spacing: 0.04em;
}

.footer-social {
	margin: 0.9rem 0 0;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	color: rgb(255 255 255 / 62%);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.76rem, 0.72rem + 0.08vw, 0.82rem);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.footer-social__label {
	color: rgb(255 255 255 / 54%);
}

.footer-social__links {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.55rem;
}

.footer-social__sep {
	color: rgb(255 255 255 / 36%);
	user-select: none;
}

.footer-social__link {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	color: var(--oldent-white);
	font-family: var(--oldent-font-sans);
	font-size: 0.86rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	text-decoration: none;
	transition: color 220ms var(--oldent-ease), transform 220ms var(--oldent-ease), opacity 220ms var(--oldent-ease);
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
	color: var(--oldent-blue-light);
	transform: translateY(-1px);
}

.footer-social__icon,
.footer-social svg {
	width: 1.1rem;
	height: 1.1rem;
	max-width: 72px;
	max-height: 72px;
	flex: 0 0 auto;
	color: var(--oldent-white);
	opacity: 0.95;
	transition: transform 220ms var(--oldent-ease), opacity 220ms var(--oldent-ease);
}

.footer-social__link:hover .footer-social__icon,
.footer-social__link:focus-visible .footer-social__icon {
	opacity: 1;
	transform: scale(1.08);
}

/* Floating Back-to-top button */
.oldent-to-top {
	position: fixed;
	inset: auto clamp(1.1rem, 2.8vw, 2rem) clamp(1.1rem, 2.8vw, 2rem) auto;
	z-index: 880;
	display: grid;
	width: 3rem;
	height: 3rem;
	padding: 0;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 22%);
	border-radius: 50%;
	background: rgb(24 58 85 / 90%);
	color: var(--oldent-white);
	box-shadow:
		0 0.85rem 2.2rem rgb(16 35 51 / 22%),
		inset 0 1px 0 rgb(255 255 255 / 24%);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(0.75rem) scale(0.92);
	transition:
		opacity 280ms var(--oldent-ease),
		visibility 280ms var(--oldent-ease),
		transform 280ms var(--oldent-ease),
		background-color 240ms var(--oldent-ease),
		border-color 240ms var(--oldent-ease),
		box-shadow 240ms var(--oldent-ease);
}

.oldent-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0) scale(1);
}

.oldent-to-top:hover,
.oldent-to-top:focus-visible {
	border-color: rgb(134 179 216 / 65%);
	background: var(--oldent-blue-dark);
	box-shadow: 0 1.1rem 2.6rem rgb(16 35 51 / 28%);
	transform: translateY(-3px) scale(1);
}

.oldent-to-top svg {
	width: 1.15rem;
	height: 1.15rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.1;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform 240ms var(--oldent-ease);
}

.oldent-to-top:hover svg {
	transform: translateY(-1.5px);
}

.footer-hours {
	display: grid;
	gap: 0.45rem;
	max-width: 13.5rem;
	margin: 0 auto;
}

.footer-hours__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding-block-end: 0.35rem;
	border-bottom: 1px solid rgb(255 255 255 / 10%);
	font-size: clamp(0.9rem, 0.86rem + 0.1vw, 0.96rem);
}

.footer-hours__row:last-child {
	padding-block-end: 0;
	border-bottom: 0;
}

.footer-hours dt {
	color: rgb(255 255 255 / 68%);
	font-family: var(--oldent-font-mono);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.footer-hours dd {
	margin: 0;
	color: rgb(255 255 255 / 92%);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.footer-nav {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.55rem;
}

.footer-nav a {
	color: rgb(255 255 255 / 84%);
	font-family: var(--oldent-font-sans);
	font-size: clamp(0.94rem, 0.9rem + 0.12vw, 1rem);
	font-weight: 460;
	line-height: 1.55;
	text-decoration: none;
}

.footer-bottom {
	border-top: 1px solid rgb(255 255 255 / 14%);
}

.footer-bottom__inner {
	min-height: 4.25rem;
	padding-block: var(--wp--preset--spacing--space-3);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem 1.5rem;
	flex-wrap: wrap;
	text-align: center;
}

.footer-bottom__inner p {
	margin: 0;
	color: rgb(255 255 255 / 54%);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.72rem, 0.69rem + 0.08vw, 0.78rem);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

/* Footer polish — restrained dividers keep the four groups readable without
   adding cards or visual noise. Disabled on narrow mobile layouts below. */
@media (min-width: 901px) {
	.footer-grid {
		gap: clamp(1.5rem, 2.8vw, 2.75rem);
	}

	.footer-column {
		position: relative;
	}

	.footer-column + .footer-column::before {
		position: absolute;
		inset-block: 0.15rem auto;
		inset-inline-start: calc(clamp(0.75rem, 1.4vw, 1.35rem) * -1);
		width: 1px;
		height: min(12rem, 100%);
		background: linear-gradient(
			to bottom,
			transparent,
			rgb(255 255 255 / 20%) 14%,
			rgb(255 255 255 / 20%) 86%,
			transparent
		);
		content: "";
		pointer-events: none;
	}

	.footer-column h3 {
		text-wrap: balance;
	}

	.footer-main > .oldent-container {
		padding-block: clamp(3.5rem, 5vw, 4.75rem);
	}
}

.footer-column h3::after {
	display: block;
	width: 1.75rem;
	height: 1px;
	margin: 0.8rem auto 0;
	background: rgb(134 179 216 / 68%);
	content: "";
}

@media (min-width: 701px) and (max-width: 900px) {
	.footer-column:nth-child(n + 3)::before {
		position: absolute;
		inset-block-start: -1.15rem;
		inset-inline: 15%;
		width: 70%;
		height: 1px;
		background: linear-gradient(
			to right,
			transparent,
			rgb(255 255 255 / 20%) 14%,
			rgb(255 255 255 / 20%) 86%,
			transparent
		);
		content: "";
		pointer-events: none;
	}
}

@media (max-width: 700px) {
	.footer-column h3::after {
		margin-top: 0.6rem;
	}
}

/* -------------------------------------------------------------------------- */
/* 12. GENERIC PAGE / POST / SUBPAGE TEMPLATES                                */
/* -------------------------------------------------------------------------- */

.oldent-page-main {
	width: 100%;
	padding-block: clamp(3.5rem, 6.5vw, 6rem) 0;
}

.oldent-subpage-main {
	width: 100%;
}

.oldent-page-article,
.oldent-single-article {
	width: 100%;
	padding-block-end: clamp(3.5rem, 5.5vw, 5rem);
}

.oldent-page-header,
.oldent-single-header {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-content-max));
	margin-inline: auto;
	margin-block-end: var(--wp--preset--spacing--space-5);
}

.oldent-single-header .wp-block-post-date {
	margin-block: 0 clamp(0.75rem, 1vw, 1rem);
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.oldent-page-content,
.oldent-single-content {
	width: 100%;
}

.oldent-page-header .wp-block-post-title,
.oldent-single-header .wp-block-post-title {
	margin-block: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.038em;
	text-wrap: balance;
}

.oldent-page-header .wp-block-post-featured-image,
.oldent-single-header .wp-block-post-featured-image {
	margin-block-start: var(--wp--preset--spacing--space-4);
}

.oldent-page-content .wp-block-post-content,
.oldent-single-content .wp-block-post-content {
	width: 100%;
}

.oldent-page-content .wp-block-post-content:empty {
	display: none;
}

.oldent-page-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section),
.oldent-single-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section) {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-content-max));
	margin-inline: auto;
}

.oldent-page-content .wp-block-post-content > .alignwide,
.oldent-single-content .wp-block-post-content > .alignwide {
	box-sizing: border-box;
	width: min(100% - (2 * var(--oldent-gutter)), var(--oldent-wide-max));
	margin-inline: auto;
}

.oldent-page-content .wp-block-post-content > :is(.alignfull, .oldent-section),
.oldent-single-content .wp-block-post-content > :is(.alignfull, .oldent-section) {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

.subpage-hero {
	background:
		radial-gradient(circle at 88% 14%, rgb(134 179 216 / 14%), transparent 28rem),
		linear-gradient(180deg, var(--oldent-blue-mist) 0%, var(--oldent-white) 100%);
}

.subpage-hero__inner {
	max-width: 56rem;
}

.subpage-hero__title {
	max-width: 19ch;
	margin-block: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: clamp(2.25rem, 1.6rem + 2.3vw, 3.75rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.038em;
	text-wrap: balance;
}

.subpage-hero__lead {
	max-width: 44rem;
	margin-block: clamp(1.35rem, 2.2vw, 1.85rem) 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.subpage-cards {
	margin-block-start: clamp(2.75rem, 5vw, 4.25rem);
}

.subpage-form-section {
	margin-block-start: clamp(2.75rem, 5vw, 4.25rem);
}

.contact-page-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
	margin-block-start: clamp(2.75rem, 5vw, 4.25rem);
}

.contact-detail-card {
	box-sizing: border-box;
	padding: clamp(1.85rem, 3.5vw, 2.85rem);
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background: var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
}

.contact-detail-card__title {
	margin-block: 0 clamp(1.35rem, 2.5vw, 1.85rem);
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.45rem, 1.2rem + 0.6vw, 1.85rem);
	font-weight: 600;
	letter-spacing: -0.018em;
	line-height: 1.22;
}

.contact-detail-list {
	display: grid;
	gap: 1.2rem;
	margin: 0;
}

.contact-detail-list__item {
	padding-block-end: 1.2rem;
	border-bottom: 1px solid rgb(220 227 232 / 72%);
}

.contact-detail-list__item:last-child {
	padding-block-end: 0;
	border-bottom: 0;
}

.contact-detail-list dt {
	margin-block-end: 0.35rem;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.7rem, 0.67rem + 0.1vw, 0.76rem);
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.contact-detail-list dd {
	margin: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-sans);
	font-size: clamp(1rem, 0.95rem + 0.16vw, 1.1rem);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.012em;
	line-height: 1.55;
}

.contact-detail-list dd a {
	color: var(--oldent-deep-blue);
	text-decoration: none;
}

.contact-detail-list dd a:hover {
	color: var(--oldent-blue-dark);
}

/* -------------------------------------------------------------------------- */
/* 13. QUERY / SEARCH / ARCHIVE                                               */
/* -------------------------------------------------------------------------- */

.oldent-query-page {
	padding-block: var(--wp--preset--spacing--space-6);
}

.oldent-query-page > .oldent-container {
	margin-block-end: var(--wp--preset--spacing--space-5);
}

.oldent-query-page .oldent-query {
	padding-block-end: var(--wp--preset--spacing--space-6);
}

/* -------------------------------------------------------------------------- */
/* 14. CORE CONTENT POLISH & MICRO-DETAILS                                    */
/* -------------------------------------------------------------------------- */

.wp-block-list li + li {
	margin-block-start: 0.5em;
}

.wp-block-quote {
	margin-block: var(--wp--preset--spacing--space-5);
	padding: var(--wp--preset--spacing--space-4) var(--wp--preset--spacing--space-5);
	border-inline-start: 3px solid var(--oldent-blue-light);
	border-radius: 0 var(--oldent-radius-md) var(--oldent-radius-md) 0;
	background: var(--oldent-blue-mist);
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-style: italic;
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 500;
	line-height: 1.62;
	letter-spacing: -0.01em;
}

.oldent-arrow-link {
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.76rem, 0.72rem + 0.12vw, 0.84rem);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}

.oldent-arrow-link:hover {
	color: var(--oldent-deep-blue);
}

.oldent-arrow-link:hover .oldent-arrow,
.oldent-arrow-link:focus-visible .oldent-arrow {
	transform: translateX(4px);
}

.oldent-arrow {
	display: inline-block;
	transition: transform var(--oldent-duration-fast) var(--oldent-ease);
}

.oldent-section + .oldent-section {
	position: relative;
}

.oldent-section + .oldent-section::before {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 50%;
	width: min(100% - 2 * var(--oldent-gutter), var(--oldent-wide-max));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgb(220 227 232 / 72%) 18%, rgb(220 227 232 / 72%) 82%, transparent);
	content: "";
	transform: translateX(-50%);
}

/* -------------------------------------------------------------------------- */
/* 14.5. FORMS & INPUTS                                                       */
/* -------------------------------------------------------------------------- */

.oldent-form-panel {
	box-sizing: border-box;
	padding: clamp(1.85rem, 3.5vw, 2.85rem);
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-lg);
	background: var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
}

.oldent-form-panel__intro {
	max-width: 42rem;
	margin-block-end: clamp(1.6rem, 2.6vw, 2.35rem);
}

.oldent-form-panel__lead {
	margin-block: 0.75rem 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.65;
}

.oldent-form {
	display: grid;
	gap: clamp(1.1rem, 1.8vw, 1.4rem);
}

.oldent-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.1rem, 1.8vw, 1.4rem);
}

.oldent-form-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

fieldset {
	margin: 0 0 1.25rem;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-md);
}

legend {
	padding-inline: 0.5rem;
	color: var(--oldent-deep-blue);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 750;
}

label,
.oldent-form-label,
.wp-block-search__label {
	display: inline-block;
	margin-block-end: 0.5rem;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.72rem, 0.69rem + 0.1vw, 0.78rem);
	font-weight: 600;
	letter-spacing: 0.11em;
	line-height: 1.35;
	text-transform: uppercase;
}

:where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	textarea,
	select
) {
	box-sizing: border-box;
	width: 100%;
	min-height: 3.1rem;
	margin: 0;
	padding: clamp(0.72rem, 0.62rem + 0.25vw, 0.88rem) clamp(0.9rem, 0.8rem + 0.35vw, 1.1rem);
	border: 1px solid var(--oldent-border);
	border-radius: var(--oldent-radius-md);
	background-color: var(--oldent-soft-white);
	color: var(--oldent-ink);
	font: inherit;
	font-size: clamp(0.95rem, 0.9rem + 0.15vw, 1.04rem);
	line-height: 1.45;
	box-shadow: inset 0 1px 2px rgb(16 35 51 / 3%);
	transition:
		border-color var(--oldent-duration-fast) var(--oldent-ease),
		background-color var(--oldent-duration-fast) var(--oldent-ease),
		box-shadow var(--oldent-duration-fast) var(--oldent-ease);
}

:where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	textarea,
	select
)::placeholder {
	color: rgb(105 115 122 / 68%);
	opacity: 1;
}

:where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	textarea,
	select
):hover {
	border-color: rgb(92 150 200 / 52%);
	background-color: var(--oldent-white);
}

:where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	textarea,
	select
):focus,
:where(
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	input[type="url"],
	input[type="password"],
	input[type="number"],
	input[type="search"],
	input[type="date"],
	input[type="time"],
	textarea,
	select
):focus-visible {
	outline: none;
	border-color: var(--oldent-blue);
	background-color: var(--oldent-white);
	box-shadow: var(--oldent-shadow-focus);
}

textarea {
	min-height: 7.5rem;
	resize: vertical;
}

select {
	appearance: none;
	padding-inline-end: 2.75rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23183A55' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 1rem;
	cursor: pointer;
}

input[type="checkbox"],
input[type="radio"] {
	width: 1.15rem;
	height: 1.15rem;
	margin: 0.15rem 0 0;
	flex: 0 0 auto;
	accent-color: var(--oldent-deep-blue);
	cursor: pointer;
}

.oldent-form-consent {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.65rem;
	margin: 0;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-sans);
	font-size: clamp(0.84rem, 0.8rem + 0.12vw, 0.92rem);
	font-weight: 500;
	letter-spacing: -0.005em;
	line-height: 1.55;
	text-transform: none;
	cursor: pointer;
}

.oldent-form-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	margin-block-start: 0.25rem;
}

:where(button[type="submit"], input[type="submit"]) {
	min-height: 3.1rem;
	padding: 0.85rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--oldent-pill);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	font: inherit;
	font-size: clamp(0.9rem, 0.86rem + 0.15vw, 0.98rem);
	font-weight: 720;
	letter-spacing: -0.01em;
	line-height: 1.15;
	cursor: pointer;
	box-shadow: 0 0.7rem 1.6rem rgb(24 58 85 / 16%);
	transition:
		transform 280ms var(--oldent-ease),
		background-color 280ms var(--oldent-ease),
		box-shadow 320ms var(--oldent-ease);
}

:where(button[type="submit"], input[type="submit"]):hover {
	background: var(--oldent-blue-dark);
	transform: translateY(-2px);
	box-shadow: 0 0.85rem 1.85rem rgb(16 35 51 / 18%);
}

:where(button[type="submit"], input[type="submit"]):active {
	transform: translateY(0);
}

:where(input, textarea, select, button):disabled {
	opacity: 0.58;
	cursor: not-allowed;
}

/*
 * Third-party form plugin compatibility.
 * Keep plugin-generated contact forms aligned with the native OLDENT form UI.
 * These rules are presentation-only: they do not add submission or storage logic.
 */
:where(
	.wpforms-container,
	.wpcf7,
	.forminator-ui,
	.gform_wrapper,
	.frm_forms
) {
	color: var(--oldent-ink);
	font-family: var(--oldent-font-sans);
}

:where(
	.wpforms-container .wpforms-form,
	.wpcf7 form,
	.forminator-ui form,
	.gform_wrapper form,
	.frm_forms form
) {
	display: grid;
	gap: clamp(1.1rem, 1.8vw, 1.4rem);
}

:where(
	.wpforms-container .wpforms-field,
	.wpcf7 .wpcf7-form-control-wrap,
	.forminator-ui .forminator-field,
	.gform_wrapper .gfield,
	.frm_forms .frm_form_field
) {
	min-width: 0;
}

:where(
	.wpforms-container .wpforms-field-label,
	.forminator-ui .forminator-label,
	.gform_wrapper .gfield_label,
	.frm_forms .frm_primary_label
) {
	margin-block-end: 0.5rem;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.72rem, 0.69rem + 0.1vw, 0.78rem);
	font-weight: 600;
	letter-spacing: 0.11em;
	line-height: 1.35;
	text-transform: uppercase;
}

:where(
	.wpforms-container .wpforms-field-description,
	.wpforms-container .wpforms-required-label,
	.wpcf7 .wpcf7-not-valid-tip,
	.wpcf7 .wpcf7-response-output,
	.forminator-ui .forminator-description,
	.forminator-ui .forminator-error-message,
	.gform_wrapper .gfield_description,
	.gform_wrapper .validation_message,
	.gform_wrapper .validation_error,
	.frm_forms .frm_description,
	.frm_forms .frm_error
) {
	font-family: var(--oldent-font-sans);
	font-size: 0.875rem;
	line-height: 1.55;
}

:where(
	.wpcf7 .wpcf7-not-valid,
	.wpforms-container .wpforms-error,
	.forminator-ui .forminator-has_error input,
	.forminator-ui .forminator-has_error textarea,
	.forminator-ui .forminator-has_error select,
	.gform_wrapper .gfield_error input,
	.gform_wrapper .gfield_error textarea,
	.gform_wrapper .gfield_error select,
	.frm_forms .frm_error
) {
	border-color: #b42318;
}

:where(
	.wpcf7 .wpcf7-not-valid-tip,
	.wpforms-container label.wpforms-error,
	.forminator-ui .forminator-error-message,
	.gform_wrapper .validation_message,
	.gform_wrapper .validation_error,
	.frm_forms .frm_error
) {
	color: #b42318;
}

:where(
	.wpforms-container .wpforms-submit,
	.wpcf7 input[type="submit"],
	.forminator-ui .forminator-button-submit,
	.gform_wrapper .gform_button,
	.frm_forms .frm_button_submit
) {
	min-height: 3.1rem;
	padding: 0.85rem 1.5rem;
	border: 1px solid transparent;
	border-radius: var(--oldent-pill);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	font: inherit;
	font-weight: 720;
	line-height: 1.15;
	cursor: pointer;
	box-shadow: 0 0.7rem 1.6rem rgb(24 58 85 / 16%);
	transition: transform 280ms var(--oldent-ease), background-color 280ms var(--oldent-ease), box-shadow 320ms var(--oldent-ease);
}

:where(
	.wpforms-container .wpforms-submit,
	.wpcf7 input[type="submit"],
	.forminator-ui .forminator-button-submit,
	.gform_wrapper .gform_button,
	.frm_forms .frm_button_submit
):hover {
	background: var(--oldent-blue-dark);
	transform: translateY(-2px);
	box-shadow: 0 0.85rem 1.85rem rgb(16 35 51 / 18%);
}

.wp-block-search .wp-block-search__inside-wrapper {
	display: flex;
	gap: 0.5rem;
	padding: 0;
	border: 0;
}

.wp-block-search .wp-block-search__button {
	margin: 0;
	border-radius: var(--oldent-pill);
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
}

/* -------------------------------------------------------------------------- */
/* 15. GOOGLE MAP COMPONENT                                                   */
/* -------------------------------------------------------------------------- */

.oldent-map-section {
	padding-block: clamp(5rem, 9vw, 8.5rem);
	background:
		radial-gradient(circle at 85% 12%, rgb(134 179 216 / 12%), transparent 28rem),
		var(--oldent-soft-white);
}

.oldent-map-section__intro {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
	gap: clamp(2rem, 5vw, 6rem);
	align-items: end;
	margin-block-end: clamp(2.5rem, 4.5vw, 4rem);
}

.oldent-map-section__lead {
	max-width: 38rem;
	margin: 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.68;
	letter-spacing: -0.01em;
}

.oldent-map-card {
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(19rem, 0.8fr);
	min-height: clamp(32rem, 48vw, 42rem);
	overflow: hidden;
	border: 1px solid var(--oldent-border);
	border-radius: clamp(1.5rem, 3vw, 2.75rem);
	background: var(--oldent-white);
	box-shadow: var(--oldent-shadow-soft);
}

.oldent-map-card__canvas {
	position: relative;
	min-height: 100%;
	background:
		radial-gradient(circle at 50% 40%, rgb(92 150 200 / 13%), transparent 24rem),
		var(--oldent-blue-mist);
}

.oldent-map-card__canvas::after {
	position: absolute;
	inset: 0;
	content: "";
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 32%);
}

.oldent-map-card__fallback {
	position: absolute;
	inset: 50% auto auto 50%;
	z-index: 1;
	width: min(20rem, calc(100% - 2rem));
	padding: 1.25rem;
	transform: translate(-50%, -50%);
	border: 1px solid rgb(255 255 255 / 80%);
	border-radius: 1.25rem;
	background: rgb(255 255 255 / 88%);
	box-shadow: 0 1rem 3rem rgb(16 35 51 / 10%);
	color: var(--oldent-muted);
	text-align: center;
	backdrop-filter: blur(12px);
}

.oldent-map-card__fallback p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
}

.oldent-map-card__fallback-mark {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0 auto 0.75rem;
	border-radius: 50%;
	background: var(--oldent-deep-blue);
	color: var(--oldent-white);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: 1.35rem;
	font-weight: 600;
}

.oldent-map-card__canvas--ready .oldent-map-card__fallback {
	display: none;
}

.oldent-map-card__canvas--error .oldent-map-card__fallback p {
	color: var(--oldent-deep-blue);
}

.oldent-map-card__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 4vw, 4rem);
	background: var(--oldent-white);
}

.oldent-map-card__label {
	margin: 0 0 0.85rem;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.oldent-map-card__info h3 {
	margin: 0;
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-serif);
	font-style: normal;
	font-size: clamp(1.65rem, 1.3rem + 1vw, 2.25rem);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.18;
}

.oldent-map-card__info > p:not(.oldent-map-card__label) {
	margin: 0.85rem 0 0;
	color: var(--oldent-muted);
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: var(--wp--preset--font-size--body);
	font-weight: 450;
	line-height: 1.68;
}

.oldent-map-card__notes {
	display: grid;
	gap: 1.15rem;
	margin-block: clamp(2rem, 4vw, 3rem);
	padding-block: 1.5rem;
	border-block: 1px solid var(--oldent-border);
}

.oldent-map-card__note {
	display: grid;
	grid-template-columns: 2.35rem minmax(0, 1fr);
	gap: 0.8rem;
	align-items: start;
}

.oldent-map-card__note > span {
	display: grid;
	place-items: center;
	width: 2.15rem;
	height: 2.15rem;
	border: 1px solid var(--oldent-border);
	border-radius: 50%;
	color: var(--oldent-blue-dark);
	font-family: var(--oldent-font-mono);
	font-size: 0.74rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
}

.oldent-map-card__note p {
	margin: 0;
	color: var(--oldent-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.58;
}

.oldent-map-card__note strong {
	color: var(--oldent-deep-blue);
	font-weight: 720;
}

.oldent-map-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem 1.25rem;
	align-items: center;
}

.oldent-map-card__link {
	color: var(--oldent-deep-blue);
	font-family: var(--oldent-font-mono);
	font-size: clamp(0.74rem, 0.7rem + 0.1vw, 0.8rem);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}

.oldent-map-card__link:hover,
.oldent-map-card__link:focus-visible {
	color: var(--oldent-blue-dark);
}

.oldent-map-marker {
	position: relative;
	width: 3.5rem;
	height: 3.5rem;
	transform: translateY(-50%);
}

.oldent-map-marker__core {
	position: absolute;
	inset: 0.4rem;
	z-index: 2;
	display: grid;
	place-items: center;
	border: 2px solid var(--oldent-white);
	border-radius: 50%;
	background: var(--oldent-deep-blue);
	box-shadow: 0 0.75rem 1.5rem rgb(24 58 85 / 28%);
	color: var(--oldent-white);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: -0.04em;
}

.oldent-map-marker__pulse {
	position: absolute;
	inset: 0;
	border: 1px solid rgb(92 150 200 / 45%);
	border-radius: 50%;
	background: rgb(92 150 200 / 10%);
}

/* -------------------------------------------------------------------------- */
/* 15.1. OLDENT MAP — EMBED API ALTERNATIVE                                   */
/* -------------------------------------------------------------------------- */

.oldent-map-card--embed .oldent-map-card__canvas--embed {
	padding: 0;
	overflow: hidden;
	background: var(--oldent-blue-mist, #edf4f9);
}

.oldent-map-card__canvas--embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: clamp(24rem, 48vw, 39rem);
	border: 0;
}

/* -------------------------------------------------------------------------- */
/* 16. GALLERY LIGHTBOX                                                       */
/* -------------------------------------------------------------------------- */

.gallery-item__link {
	position: relative;
	display: block;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	outline: none;
}

.gallery-item__link::after {
	position: absolute;
	inset: 0;
	content: "";
	background: linear-gradient(180deg, transparent 48%, rgb(24 58 85 / 68%) 100%);
	opacity: 0;
	transition: opacity var(--oldent-duration) var(--oldent-ease);
}

.gallery-item__overlay {
	position: absolute;
	inset: auto 1rem 1rem;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	color: var(--oldent-white);
	opacity: 0;
	transform: translateY(0.5rem);
	transition: opacity var(--oldent-duration) var(--oldent-ease), transform var(--oldent-duration) var(--oldent-ease);
}

.gallery-item__label {
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: 0.94rem;
	font-weight: 650;
	letter-spacing: -0.005em;
}

.gallery-item__icon {
	display: grid;
	width: 2.4rem;
	height: 2.4rem;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 42%);
	border-radius: 999px;
	background: rgb(255 255 255 / 12%);
	backdrop-filter: blur(8px);
}

.gallery-item__link:hover::after,
.gallery-item__link:focus-visible::after,
.gallery-item__link:hover .gallery-item__overlay,
.gallery-item__link:focus-visible .gallery-item__overlay {
	opacity: 1;
}

.gallery-item__link:hover .gallery-item__overlay,
.gallery-item__link:focus-visible .gallery-item__overlay {
	transform: translateY(0);
}

.gallery-item__link:focus-visible {
	box-shadow: 0 0 0 3px var(--oldent-white), 0 0 0 6px var(--oldent-blue);
}

.oldent-lightbox-open {
	overflow: hidden;
}

.oldent-lightbox[hidden] {
	display: none;
}

.oldent-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 3vw, 2rem);
	box-sizing: border-box;
}

.oldent-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(10 23 34 / 88%);
	backdrop-filter: blur(12px);
}

.oldent-lightbox__dialog {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	width: min(100%, 1100px);
	max-height: 100%;
}

.oldent-lightbox__figure {
	min-width: 0;
	margin: 0;
	text-align: center;
}

.oldent-lightbox__image {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: min(78vh, 760px);
	margin-inline: auto;
	border-radius: var(--oldent-radius-lg);
	background: var(--oldent-white);
	box-shadow: 0 2rem 5rem rgb(0 0 0 / 28%);
}

.oldent-lightbox__caption {
	margin-block-start: 0.9rem;
	color: var(--oldent-white);
	font-family: var(--oldent-font-sans);
	font-style: normal;
	font-size: 0.98rem;
	font-weight: 550;
}

.oldent-lightbox__close,
.oldent-lightbox__prev,
.oldent-lightbox__next {
	position: relative;
	display: grid;
	width: 3rem;
	height: 3rem;
	padding: 0;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 24%);
	border-radius: 999px;
	background: rgb(255 255 255 / 10%);
	color: var(--oldent-white);
	font: inherit;
	font-size: 1.2rem;
	cursor: pointer;
	backdrop-filter: blur(10px);
	transition: background var(--oldent-duration-fast) var(--oldent-ease), transform var(--oldent-duration-fast) var(--oldent-ease), border-color var(--oldent-duration-fast) var(--oldent-ease);
}

.oldent-lightbox__close:hover,
.oldent-lightbox__prev:hover,
.oldent-lightbox__next:hover,
.oldent-lightbox__close:focus-visible,
.oldent-lightbox__prev:focus-visible,
.oldent-lightbox__next:focus-visible {
	border-color: rgb(255 255 255 / 48%);
	background: rgb(255 255 255 / 18%);
	transform: translateY(-2px);
}

.oldent-lightbox__close {
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	z-index: 2;
}

.oldent-lightbox__prev,
.oldent-lightbox__next {
	flex: 0 0 auto;
}

/* -------------------------------------------------------------------------- */
/* 17. RESPONSIVE                                                             */
/* -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
	:root {
		--oldent-type-display: clamp(3rem, 2.2rem + 2.8vw, 4.35rem);
		--oldent-type-h1: clamp(2.55rem, 2rem + 2vw, 3.5rem);
		--oldent-type-h2: clamp(1.9rem, 1.5rem + 1.5vw, 2.5rem);
	}

	.site-header__inner {
		gap: 0.85rem;
	}

	.site-header .wp-block-navigation {
		font-size: 0.86rem;
	}

	.site-header .wp-block-navigation-item__content {
		padding-inline: 0.72rem;
	}

	.quick-contact__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

@media (max-width: 900px) {
	.site-header__inner {
		min-height: 4.75rem;
	}

	/* Core Navigation: switch to a true full-viewport glass overlay before the
	 * desktop nav can become wider than the header. Use !important on open/close
	 * visibility so WordPress Core's @media (min-width: 600px) rules cannot
	 * leak between 600px and 900px. */
	.site-header .wp-block-navigation {
		flex: 0 0 auto;
		margin-inline-start: auto;
		font-size: 1rem;
	}

	.site-header .wp-block-navigation__responsive-container-open {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		inset: 0 !important;
		z-index: 1000 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		width: 100vw !important;
		max-width: none !important;
		height: 100dvh !important;
		min-height: 100dvh !important;
		box-sizing: border-box !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: max(1.25rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left)) !important;
		background: rgb(244 248 253 / 92%) !important;
		backdrop-filter: blur(28px) saturate(185%) !important;
		-webkit-backdrop-filter: blur(28px) saturate(185%) !important;
		animation: oldentMenuSheetIn 280ms var(--oldent-ease) both;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: fixed !important;
		top: max(1.1rem, env(safe-area-inset-top)) !important;
		right: max(1.25rem, env(safe-area-inset-right)) !important;
		z-index: 1010 !important;
		display: inline-flex !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		width: 100% !important;
		max-width: 34rem !important;
		margin-inline: auto !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		width: 100% !important;
		padding-block-start: 3.75rem !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::before {
		display: block;
		margin-block-end: 0.9rem;
		padding-inline: 0.25rem;
		color: var(--oldent-blue-dark);
		font-family: var(--oldent-font-mono);
		font-size: 0.74rem;
		font-weight: 600;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		content: "OLDENT · Navigace";
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		width: 100% !important;
		min-width: 0 !important;
		gap: 0.6rem !important;
		margin-inline: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container::after {
		display: block;
		margin-block-start: 1.35rem;
		padding: 1rem 1.25rem;
		border: 1px solid rgb(24 58 85 / 10%);
		border-radius: 1rem;
		background: rgb(255 255 255 / 68%);
		color: var(--oldent-muted);
		font-family: var(--oldent-font-mono);
		font-size: 0.76rem;
		font-weight: 500;
		font-variant-numeric: tabular-nums;
		letter-spacing: 0.04em;
		line-height: 1.5;
		text-align: center;
		content: "Štítného 634/1, Olomouc · +420 602 604 164";
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: 100% !important;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		box-sizing: border-box;
		padding: 1.05rem 1.3rem;
		border: 1px solid rgb(24 58 85 / 9%);
		border-radius: 1.05rem;
		background: rgb(255 255 255 / 88%);
		box-shadow: 0 0.45rem 1.25rem rgb(16 35 51 / 5%), inset 0 1px 0 rgb(255 255 255 / 90%);
		color: var(--oldent-deep-blue);
		font-size: clamp(1.1rem, 3.4vw, 1.28rem);
		font-weight: 700;
		letter-spacing: -0.018em;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
		border-color: rgb(92 150 200 / 38%);
		background: var(--oldent-white);
		color: var(--oldent-blue-dark);
		box-shadow: 0 0.7rem 1.65rem rgb(16 35 51 / 9%);
		transform: translateY(-1px);
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"] {
		border-color: rgb(92 150 200 / 45%);
		background: var(--oldent-white);
		color: var(--oldent-deep-blue);
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
		position: static;
		width: auto;
		height: auto;
		background: transparent;
		color: var(--oldent-blue);
		font-size: 1.1rem;
		font-weight: 700;
		content: "→";
		opacity: 0.78;
		transform: translateX(0);
		transition: transform 260ms var(--oldent-ease), opacity 220ms ease;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover::after,
	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible::after {
		opacity: 1;
		transform: translateX(4px);
	}

	/* Tablet: stack before the two-column composition becomes cramped. */
	.hero__main {
		grid-template-columns: 1fr;
		min-height: 0;
		padding-block: 0.75rem;
	}

	.hero__content {
		min-height: 0;
		padding: clamp(2.25rem, 5.5vw, 3.75rem) clamp(1.5rem, 5vw, 3.25rem);
		border: 1px solid rgb(24 58 85 / 14%);
		border-bottom: 0;
		border-radius: 1.25rem 1.25rem 0 0;
	}

	.hero__media {
		min-height: 0;
		aspect-ratio: 16 / 9;
		border: 1px solid rgb(255 255 255 / 20%);
		border-top: 0;
		border-radius: 0 0 1.25rem 1.25rem;
	}

	.hero__trust {
		grid-template-columns: 1fr;
		gap: 0.85rem;
		padding-block: clamp(2.25rem, 7vw, 3.25rem) clamp(4.5rem, 9vw, 5.5rem);
	}

	.hero__trust-item,
	.hero__trust-item:first-child {
		padding-inline: 1.25rem;
	}

	.benefits-grid,
	.services-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.oldent-query > .wp-block-post-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gallery-layout,
	.contact-page-grid,
	.oldent-map-section__intro,
	.oldent-map-card {
		grid-template-columns: 1fr;
	}

	.oldent-map-section__intro {
		gap: 1.25rem;
	}

	.oldent-map-card__canvas {
		min-height: 26rem;
	}

	.oldent-map-card__info {
		padding: clamp(2rem, 5vw, 3rem) clamp(1.5rem, 5vw, 2.75rem);
	}

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

@media (max-width: 700px) {
	:root {
		--oldent-type-display: clamp(2.15rem, 8.2vw, 3.1rem);
		--oldent-type-h1: clamp(1.95rem, 7.2vw, 2.75rem);
		--oldent-type-h2: clamp(1.65rem, 6vw, 2.2rem);
		--oldent-heading-track: -0.038em;
	}

	.site-header__inner {
		min-height: 4.5rem;
	}

	.site-header .oldent-logo img {
		width: clamp(8rem, 32vw, 9.5rem);
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: clamp(1.06rem, 4.2vw, 1.22rem);
		padding: 0.95rem 1.15rem;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		gap: 0.5rem !important;
	}

	body:has(.site-header .wp-block-navigation__responsive-container.is-menu-open) {
		overflow: hidden;
	}

	.oldent-container,
	.oldent-container--wide,
	.site-header__inner,
	.quick-contact__inner,
	.hero__main,
	.hero__trust,
	.oldent-query,
	.oldent-page-header,
	.oldent-single-header,
	.oldent-page-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section),
	.oldent-single-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section) {
		width: min(100% - 1.75rem, var(--oldent-wide-max));
	}

	.oldent-section {
		padding-block: clamp(3.25rem, 10vw, 4.75rem);
	}

	/* Single-column Quick Contact on <= 700px prevents long hours/address text from overflowing */
	.quick-contact {
		display: block;
		margin-block-start: clamp(1rem, 3.5vw, 1.5rem);
	}

	.quick-contact__inner {
		grid-template-columns: 1fr;
		gap: 0.45rem;
		padding: 0.5rem;
	}

	.quick-contact__item {
		padding: 0.85rem 0.95rem;
		background: var(--oldent-soft-white);
	}

	.quick-contact__value {
		text-wrap: pretty;
		overflow-wrap: anywhere;
	}

	.hero__main {
		padding-block: 0.5rem;
	}

	.hero__content {
		min-height: 0;
		align-content: center;
		justify-items: start;
		padding: clamp(1.85rem, 7vw, 2.85rem) clamp(1.15rem, 5.5vw, 1.85rem);
		border: 1px solid rgb(24 58 85 / 14%);
		border-bottom: 0;
		border-radius: 1.15rem 1.15rem 0 0;
	}

	.hero__eyebrow {
		max-width: 100%;
		font-size: clamp(0.68rem, 2.5vw, 0.76rem);
		letter-spacing: 0.11em;
		line-height: 1.35;
	}

	.hero__title {
		max-width: 14ch;
		line-height: 1.05;
	}

	.hero__lead {
		max-width: 100%;
		font-size: clamp(0.98rem, 3.6vw, 1.1rem);
		line-height: 1.62;
	}

	.hero__media {
		min-height: 14.5rem;
		height: auto;
		aspect-ratio: 16 / 10;
		border: 1px solid rgb(255 255 255 / 20%);
		border-top: 0;
		border-radius: 0 0 1.15rem 1.15rem;
	}

	.hero__actions {
		width: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: 0.65rem;
	}

	.hero__actions > .wp-element-button {
		width: 100%;
		max-width: 100%;
		min-height: 3.1rem;
		padding-inline: 1.15rem;
	}

	.benefits-grid,
	.services-grid,
	.oldent-query > .wp-block-post-template,
	.gallery-grid,
	.footer-grid,
	.oldent-form-grid {
		grid-template-columns: 1fr;
	}

	.news-heading {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.85rem;
	}

	.oldent-form-panel,
	.contact-detail-card {
		padding: clamp(1.35rem, 5vw, 2rem);
	}

	.oldent-form-footer {
		flex-direction: column;
		align-items: stretch;
	}

	.oldent-form-footer .wp-element-button,
	.oldent-form-footer button[type="submit"] {
		width: 100%;
	}

	.benefit-card {
		min-height: 0;
		padding: clamp(1.5rem, 5vw, 2rem);
	}

	.service-card {
		min-height: 0;
		padding: clamp(1.45rem, 5vw, 1.85rem);
	}

	.oldent-map-card {
		min-height: 0;
		border-radius: 1.35rem;
	}

	.oldent-map-card__canvas,
	.oldent-map-card__canvas--embed iframe {
		min-height: 20rem;
	}

	.oldent-map-card__info {
		padding: clamp(1.5rem, 6vw, 2.25rem) clamp(1.2rem, 5vw, 1.85rem);
	}

	.oldent-map-card__actions {
		width: 100%;
		align-items: stretch;
		flex-direction: column;
	}

	.oldent-map-card__actions .wp-element-button {
		width: 100%;
	}

	.oldent-map-card__link {
		text-align: center;
		padding-block: 0.25rem;
	}

	.cta-panel {
		padding: var(--wp--preset--spacing--space-5) var(--wp--preset--spacing--space-4);
		border-radius: var(--oldent-radius-lg);
	}

	/* Keep insurer tooltips strictly inside viewport on mobile */
	.insurer-tooltip {
		display: none;
	}

	.footer-bottom__inner {
		justify-content: center;
	}

	.footer-bottom__inner p {
		width: 100%;
	}

	.oldent-lightbox__dialog {
		grid-template-columns: auto auto;
		grid-template-areas:
			"image image"
			"prev next";
		justify-content: center;
	}

	.oldent-lightbox__figure {
		grid-area: image;
	}

	.oldent-lightbox__prev {
		grid-area: prev;
	}

	.oldent-lightbox__next {
		grid-area: next;
	}

	.oldent-lightbox__close {
		top: -0.75rem;
		right: -0.25rem;
	}

	.oldent-lightbox__image {
		max-height: 70vh;
	}

	.oldent-to-top {
		width: 2.75rem;
		height: 2.75rem;
	}
}

@media (max-width: 380px) {
	:root {
		--oldent-type-display: clamp(1.9rem, 8.8vw, 2.35rem);
		--oldent-type-h1: clamp(1.75rem, 7.8vw, 2.15rem);
		--oldent-type-h2: clamp(1.5rem, 6.8vw, 1.75rem);
	}

	.oldent-container,
	.oldent-container--wide,
	.site-header__inner,
	.quick-contact__inner,
	.hero__main,
	.hero__trust,
	.oldent-query,
	.oldent-page-header,
	.oldent-single-header,
	.oldent-page-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section),
	.oldent-single-content .wp-block-post-content > *:not(.alignfull):not(.alignwide):not(.oldent-section) {
		width: min(100% - 1.25rem, var(--oldent-wide-max));
	}

	.site-header .oldent-logo img {
		width: clamp(7.25rem, 38vw, 8.5rem);
	}

	.site-header .wp-block-navigation__responsive-container-open,
	.site-header .wp-block-navigation__responsive-container-close {
		width: 2.65rem;
		height: 2.65rem;
		min-width: 2.65rem;
		min-height: 2.65rem;
	}

	.hero__content {
		padding: 1.5rem 1rem;
	}

	.hero__eyebrow,
	.oldent-eyebrow {
		font-size: 0.66rem;
		letter-spacing: 0.09em;
	}

	.hero__title {
		letter-spacing: -0.04em;
	}

	.hero__lead {
		font-size: 0.94rem;
	}

	.hero__trust-item {
		padding: 1rem 1.1rem;
	}
}

/* -------------------------------------------------------------------------- */
/* 18. REDUCED MOTION                                                         */
/* -------------------------------------------------------------------------- */

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

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

	.team-member-card,
	.service-card,
	.insurer-tooltip,
	.gallery-item__link::after,
	.gallery-item__overlay,
	.oldent-lightbox__close,
	.oldent-lightbox__prev,
	.oldent-lightbox__next {
		transition: none;
	}

	.oldent-map-marker__pulse {
		display: none;
	}

	.oldent-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* -------------------------------------------------------------------------- */
/* 99. COMPONENT OWNERSHIP                                                    */
/* -------------------------------------------------------------------------- */
/*
 * CSS stays intentionally consolidated into one front-end asset for this
 * no-build FSE theme. Ownership and component boundaries are documented in
 * COMPONENT-CSS-MAP.md. Do not introduce ad-hoc utility classes here.
 */
