/* Foundation: reset-lite, typography, container, shell, buttons, forms, modal baseline. */

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

html {
	line-height: var(--logodom-line-height);
	-webkit-text-size-adjust: 100%;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	margin: 0;
	background: var(--logodom-color-bg);
	color: var(--logodom-color-text);
	font-family: var(--logodom-font-sans);
	font-size: var(--logodom-font-size-body);
}

body > main {
	flex: 1 0 auto;
}

img,
svg,
video,
canvas {
	max-width: 100%;
	height: auto;
}

/* --- Typography (base document contract; blocks may refine locally) --- */
h1,
h2,
h3,
h4 {
	margin-block: 0 var(--logodom-space-3);
	line-height: 1.25;
	font-weight: 600;
}

h1 {
	font-size: var(--logodom-font-size-h1);
}

h2 {
	font-size: var(--logodom-font-size-h2);
}

h3 {
	font-size: var(--logodom-font-size-h3);
}

h4 {
	font-size: var(--logodom-font-size-h4);
}

p,
li,
ul,
ol {
	font-size: var(--logodom-font-size-body);
}

p {
	margin-block: 0 var(--logodom-space-3);
}

a {
	font-size: inherit;
	color: var(--logodom-color-accent);
	text-underline-offset: 0.12em;
}

span {
	font-size: inherit;
}

a:hover {
	color: var(--logodom-color-accent-hover);
}

/* Screen reader only (modal title fallback, etc.) */
.screen-reader-text {
	border: 0;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}

.skip-link:focus {
	clip: auto !important;
	clip-path: none !important;
	height: auto;
	width: auto;
	margin: 0;
	padding: var(--logodom-space-2) var(--logodom-space-3);
	left: var(--logodom-space-3);
	top: var(--logodom-space-3);
	z-index: 100001;
	background: var(--logodom-color-bg);
	color: var(--logodom-color-text);
	border: 1px solid var(--logodom-color-border);
	border-radius: var(--logodom-radius-sm);
	box-shadow: var(--logodom-focus-ring);
	outline: none;
}

/* --- Site header (prototype: left brand+crumbs | right cluster) --- */
.logodom-site-header {
	position: sticky;
	top: 0;
	z-index: 998;
	background-color: var(--logodom-color-bg);
	box-shadow: var(--logodom-shell-header-shadow);
}

.logodom-site-header__stripe {
	padding-block: 0 0.3125rem;
	box-sizing: border-box;
}

/* Full-bleed header row: no .ld-container max-width; edge insets via padding only */
.logodom-site-header__inner {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding-block: 0.25rem;
	padding-inline: var(--logodom-space-3);
}

@media (min-width: 75rem) {
	.logodom-site-header__inner {
		padding-inline: clamp(var(--logodom-space-3), 4vw, 2.5rem);
	}
}

.logodom-site-header__grid {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	column-gap: clamp(0.75rem, 2vw, 1.5rem);
	row-gap: 0.5rem;
	width: 100%;
	min-height: 4.25rem;
}

/* Left: logo + breadcrumbs — natural width, flush to container’s inner start */
.logodom-site-header__left {
	flex: 0 1 auto;
	min-width: 0;
	max-width: min(100%, 42rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 0.125rem;
	padding-top: 0.25rem;
}

.logodom-site-header__brand {
	width: auto;
	max-width: 100%;
	display: flex;
	justify-content: flex-start;
}

/* Right cluster: aligned to end of row via parent justify-content: space-between */
.logodom-site-header__right {
	flex: 0 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	z-index: 2;
}

/* Breadcrumbs (prototype: small, muted link + accent sep + current) */
.logodom-breadcrumbs {
	width: 100%;
	margin: 0;
	padding: 0;
}

.logodom-breadcrumbs__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.15em 0;
	margin: 0;
	margin-block: 0;
	padding: 0;
	max-width: 100%;
	font-size: 0.875rem;
	line-height: 1.35;
}

.logodom-breadcrumbs__home {
	color: var(--logodom-color-header-text);
	text-decoration: none;
	font-weight: 500;
}

.logodom-breadcrumbs__home:hover,
.logodom-breadcrumbs__home:focus-visible {
	color: var(--logodom-color-header-accent);
	text-decoration: underline;
}

/* Intermediate crumb links (parent page / category chain) — same tone as home */
.logodom-breadcrumbs__link {
	color: var(--logodom-color-header-text);
	text-decoration: none;
	font-weight: 500;
}

.logodom-breadcrumbs__link:hover,
.logodom-breadcrumbs__link:focus-visible {
	color: var(--logodom-color-header-accent);
	text-decoration: underline;
}

.logodom-breadcrumbs__sep {
	color: var(--logodom-color-header-accent);
	font-weight: 400;
}

.logodom-breadcrumbs__current {
	color: var(--logodom-color-header-accent);
	font-weight: 500;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

/* Branding / logo — ~160px wide like .site-logo svg */
.logodom-branding {
	min-width: 0;
}

.logodom-branding__logo .custom-logo-link {
	display: inline-block;
	line-height: 0;
}

.logodom-branding__logo .custom-logo {
	display: block;
	width: auto;
	max-width: 10rem;
	height: auto;
	max-height: 3.75rem;
}

.logodom-branding__logo-link {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}

.logodom-branding__img {
	display: block;
	width: 10rem;
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	margin-block: 0.3125rem;
}

.logodom-branding--footer {
	max-width: 10rem;
}

.logodom-branding--footer .logodom-branding__logo .custom-logo,
.logodom-branding--footer .logodom-branding__img {
	max-height: 2rem;
	max-width: 8rem;
}

.logodom-branding__title {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--logodom-color-header-text);
	text-decoration: none;
}

.logodom-branding__title:hover {
	color: var(--logodom-color-header-accent);
}

/* Primary nav — strip aligns to the right with the rest of the cluster */
.logodom-primary-nav--bar {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
}

.logodom-top-nav {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	flex-shrink: 1;
	min-width: 0;
}

.logodom-top-nav li {
	flex-shrink: 0;
}

.logodom-top-nav a {
	text-decoration: none;
	font-weight: 500;
	font-size: 1rem;
	color: var(--logodom-color-header-text);
	padding: 0.375rem 0.75rem;
	border-radius: var(--logodom-radius-md);
	transition:
		color 0.15s ease,
		background-color 0.15s ease,
		transform 0.2s ease;
}

.logodom-top-nav a:hover,
.logodom-top-nav a:focus-visible {
	background-color: var(--logodom-color-header-nav-hover-bg);
	color: var(--logodom-color-header-accent);
	transform: scale(1.05);
}

/* Messenger pill — single CTA button: label + decorative messenger icons → contact modal */
.logodom-service-zone {
	flex-shrink: 0;
}

.logodom-messenger-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0.625rem 0.75rem;
	font: inherit;
	font-size: 1rem;
	font-weight: 500;
	color: var(--logodom-color-header-text);
	text-align: left;
	white-space: nowrap;
	line-height: 1.3;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--logodom-color-header-pill-bg);
	border: 1px solid var(--logodom-color-header-pill-border);
	border-radius: 0.75rem;
	box-shadow: var(--logodom-shell-header-shadow);
	transition:
		background-color 0.3s ease,
		transform 0.3s ease,
		box-shadow 0.3s ease,
		color 0.3s ease;
}

.logodom-messenger-pill:hover {
	background-color: var(--logodom-color-header-pill-hover-bg);
	color: var(--logodom-color-header-accent);
	transform: scale(1.03);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.logodom-messenger-pill:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring-header);
	border-radius: 0.75rem;
}

.logodom-messenger-pill__label {
	display: inline;
}

.logodom-messenger-pill__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	transition: transform 0.3s ease;
}

.logodom-messenger-pill:hover .logodom-messenger-pill__icon {
	transform: scale(1.06);
}

.logodom-messenger-pill__icon img,
.logodom-messenger-pill__icon-inner img {
	width: 1.75rem;
	height: 1.75rem;
	display: block;
	object-fit: contain;
}

/* Menu toggle — label + burger capsule */
.logodom-menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 1rem;
	margin: 0;
	font: inherit;
	cursor: pointer;
	background-color: var(--logodom-color-header-pill-bg);
	border: 1px solid var(--logodom-color-header-pill-border);
	border-radius: 0.75rem;
	box-shadow: var(--logodom-shell-header-shadow);
	transition:
		background-color 0.3s ease,
		transform 0.3s ease,
		box-shadow 0.3s ease;
	color: var(--logodom-color-header-text);
}

.logodom-menu-toggle:hover {
	transform: scale(1.05);
	background-color: var(--logodom-color-header-pill-hover-bg);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.logodom-menu-toggle:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring-header);
}

.logodom-menu-toggle__label {
	font-size: 1rem;
	font-weight: 500;
}

.logodom-menu-toggle__burger {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 1.125rem;
	flex-shrink: 0;
}

.logodom-menu-toggle__bar {
	width: 1.375rem;
	height: 3px;
	background-color: var(--logodom-color-header-text);
	border-radius: 2px;
	transition: background-color 0.3s ease;
}

.logodom-menu-toggle:hover .logodom-menu-toggle__bar {
	background-color: #667;
}

/* Hide desktop nav < 1140px; keep pill + menu */
@media (max-width: 71.25rem) {
	.logodom-primary-nav--bar {
		display: none;
	}

	#logodom-header-right {
		justify-content: flex-end;
	}
}

/* Narrow screens: keep logo + menu toggle on one row (same as ≥577px), do not stack grid columns */
@media (max-width: 36rem) {
	.logodom-site-header__inner {
		padding-inline: var(--logodom-space-2);
	}

	.logodom-site-header__grid {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		column-gap: 0.5rem;
		row-gap: 0;
		min-height: 3.75rem;
	}

	.logodom-site-header__left {
		flex: 1 1 auto;
		min-width: 0;
		max-width: calc(100% - 8.5rem);
		padding-top: 0;
	}

	.logodom-site-header__right {
		flex: 0 0 auto;
		width: auto;
		min-width: 0;
		flex-wrap: nowrap;
		gap: 0.5rem;
		justify-content: flex-end;
	}

	.logodom-breadcrumbs__current {
		white-space: normal;
	}

	.logodom-branding__logo .custom-logo,
	.logodom-branding__img {
		max-width: min(8.5rem, 48vw);
		max-height: 2.5rem;
	}

	.logodom-menu-toggle {
		padding: 0.5rem 0.75rem;
		gap: 0.5rem;
		flex-shrink: 0;
	}
}

/* Hide messenger pill on very small screens (prototype) */
@media (max-width: 39.375rem) {
	.logodom-service-zone {
		display: none;
	}
}

/* --- Side drawer (slides from right, legacy side-menu reference) --- */
.logodom-side-drawer[hidden] {
	display: none !important;
}

.logodom-side-drawer:not([hidden]) {
	display: block;
	position: fixed;
	inset: 0;
	z-index: var(--logodom-z-drawer);
}

.logodom-side-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: var(--logodom-shell-backdrop);
	opacity: 0;
	transition: opacity 0.35s ease;
	cursor: pointer;
}

.logodom-side-drawer--open .logodom-side-drawer__backdrop {
	opacity: 1;
}

.logodom-side-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: var(--logodom-drawer-width);
	max-width: 90vw;
	height: 100%;
	max-height: 100%;
	background: linear-gradient(to bottom right, #f2f6ff, #eaf0ff);
	box-shadow: -4px 0 15px rgba(0, 0, 0, 0.1);
	transform: translateX(100%);
	transition: transform 0.38s ease;
	will-change: transform;
	outline: none;
	overflow: hidden;
}

.logodom-side-drawer--open .logodom-side-drawer__panel {
	transform: translateX(0);
}

.logodom-side-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.625rem 1.25rem;
	min-height: 3.75rem;
	box-sizing: border-box;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	flex-shrink: 0;
}

.logodom-side-drawer__brand .logodom-branding__img,
.logodom-side-drawer__brand .logodom-branding__logo .custom-logo {
	max-width: 8rem;
	max-height: 2.5rem;
}

.logodom-side-drawer__close {
	font-size: 2rem;
	line-height: 1;
	padding: 0;
	margin: 0;
	background: none;
	border: none;
	cursor: pointer;
	color: var(--logodom-color-header-text);
	transition: color 0.3s ease, transform 0.3s ease;
}

.logodom-side-drawer__close:hover {
	color: #667;
	transform: scale(1.2);
}

.logodom-side-drawer__close:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring-header);
	border-radius: 0.25rem;
}

.logodom-side-drawer__inner {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 0 0.625rem;
	box-sizing: border-box;
	width: 100%;
}

/* Drawer: «Связаться с нами» (theme settings; visual ref. legacy .menu-contact) */
.logodom-drawer-contact {
	flex-shrink: 0;
	margin: 0;
	padding: 1.25rem 1.25rem 1.5rem;
	box-sizing: border-box;
	width: 100%;
	font-size: 0.9375rem;
	color: var(--logodom-color-header-text);
	background-color: var(--logodom-color-palette-brand-bg, #f0f4ff);
	border-top: 1px solid rgba(0, 0, 0, 0.05);
	border-radius: 0 0 0.75rem 0.75rem;
}

.logodom-drawer-contact__title {
	margin: 0 0 0.625rem;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.2;
	color: inherit;
}

.logodom-drawer-contact__line {
	margin: 0.25rem 0;
	line-height: 1.45;
}

.logodom-drawer-contact__emoji {
	margin-right: 0.25rem;
}

.logodom-drawer-contact__link {
	display: inline;
	color: inherit;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s ease;
}

.logodom-drawer-contact__link:hover,
.logodom-drawer-contact__link:focus-visible {
	color: #2aaae2;
	text-decoration: underline;
}

.logodom-drawer-contact__messengers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.875rem;
	margin-top: 0.875rem;
}

.logodom-drawer-contact__m-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: inherit;
	text-decoration: none;
	line-height: 0;
	transition: transform 0.2s ease;
}

.logodom-drawer-contact__m-link:hover,
.logodom-drawer-contact__m-link:focus-visible {
	transform: scale(1.08);
}

.logodom-drawer-contact__m-link:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring-header);
	border-radius: 50%;
}

.logodom-drawer-contact__m-icon-img {
	display: block;
	width: 2.25rem;
	height: 2.25rem;
	object-fit: contain;
}

.logodom-drawer-contact__m-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	font-size: 0.625rem;
	font-weight: 700;
	color: #fff;
	line-height: 1;
	background: var(--logodom-color-header-text);
}

.logodom-side-drawer__list {
	margin: 0;
	padding: 0;
	width: 100%;
	list-style: none;
}

.logodom-side-drawer__list li {
	margin: 0.25rem 0;
	list-style: none;
}

.logodom-side-drawer__list a {
	display: block;
	padding: 0.4375rem 1.5rem;
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--logodom-color-header-text);
	text-decoration: none;
	border-radius: var(--logodom-radius-md);
	transition: all 0.3s ease;
}

.logodom-side-drawer__list a:hover,
.logodom-side-drawer__list a:focus-visible {
	background-color: var(--logodom-color-header-text);
	color: #fff;
	padding-left: 1.875rem;
	transform: translateX(4px);
}

html.logodom-drawer-open {
	overflow: hidden;
}

/* --- Site footer (3 columns + bar) --- */
.logodom-site-footer {
	margin-top: auto;
	padding-block: var(--logodom-space-6) var(--logodom-space-5);
	border-top-width: 0px;
	background: linear-gradient(180deg, #f5f8ff 0%, var(--logodom-color-surface) 100%);
	color: var(--logodom-color-text-muted);
	font-size: 0.875rem;
}

.logodom-site-footer__inner {
	display: flex;
	flex-direction: column;
	gap: var(--logodom-space-6);
}

.logodom-site-footer__columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: var(--logodom-space-5) var(--logodom-space-6);
	align-items: start;
}

.logodom-footer-col {
	margin: 0;
	min-width: 0;
}

.logodom-footer-col__title {
	margin: 0 0 var(--logodom-space-3);
	font-size: clamp(1rem, 2.5vw, 1.125rem);
	font-weight: 700;
	line-height: 1.3;
	color: var(--logodom-color-header-text);
	letter-spacing: 0.01em;
}

.logodom-footer-col__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--logodom-space-2);
}

.logodom-footer-col__item {
	margin: 0;
}

/* Legal column: real links, calm text-like appearance (no default blue underline). */
.logodom-footer-col--legal .logodom-footer-col__link {
	color: var(--logodom-color-text-muted);
	font-weight: 500;
	line-height: 1.45;
	text-decoration: none;
	transition: color 0.2s ease;
}

.logodom-footer-col--legal .logodom-footer-col__link:hover,
.logodom-footer-col--legal .logodom-footer-col__link:focus-visible {
	color: var(--logodom-color-accent);
	text-decoration: underline;
}

.logodom-footer-col--legal .logodom-footer-col__link:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--logodom-color-accent);
	border-radius: 2px;
}

.logodom-footer-contact__row {
	margin: 0 0 var(--logodom-space-2);
	line-height: 1.45;
}

.logodom-footer-contact__row:last-of-type {
	margin-bottom: 0;
}

.logodom-footer-contact__link {
	color: var(--logodom-color-text-muted);
	font-weight: 500;
	text-decoration: none;
	word-break: break-word;
}

.logodom-footer-contact__link:hover,
.logodom-footer-contact__link:focus-visible {
	color: var(--logodom-color-accent);
	text-decoration: underline;
}

.logodom-footer-contact__messengers {
	margin: var(--logodom-space-3) 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--logodom-space-2);
}

.logodom-footer-contact__msg-item {
	margin: 0;
}

.logodom-footer-contact__msg-link {
	color: var(--logodom-color-accent);
	font-weight: 600;
	text-decoration: none;
}

.logodom-footer-contact__msg-link:hover,
.logodom-footer-contact__msg-link:focus-visible {
	text-decoration: underline;
}

.logodom-footer-payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem 1.125rem;
}

.logodom-footer-payments__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	height: 2.25rem;
	min-width: 0;
	box-sizing: border-box;
}

.logodom-footer-payments__img {
	display: block;
	width: auto;
	height: auto;
	max-height: 2.25rem;
	max-width: 4.5rem;
	min-height: 0;
	object-fit: contain;
	object-position: center center;
	filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.06));
}

@media (max-width: 56.25rem) {
	.logodom-footer-payments {
		gap: 0.625rem 1rem;
	}

	.logodom-footer-payments__item {
		height: 2rem;
	}

	.logodom-footer-payments__img {
		max-height: 2rem;
		max-width: 4rem;
	}
}

.logodom-site-footer__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--logodom-space-4);
	padding-top: var(--logodom-space-5);
	border-top: 1px solid rgba(47, 57, 110, 0.12);
}

.logodom-site-footer__brand {
	flex: 0 0 auto;
	max-width: 10rem;
}

.logodom-site-footer__brand .logodom-branding {
	max-width: 100%;
}

.logodom-site-footer__bar .logodom-footer-nav {
	flex: 1 1 auto;
	min-width: min(100%, 12rem);
}

.logodom-footer-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--logodom-space-3) var(--logodom-space-4);
	margin: 0;
	padding: 0;
	list-style: none;
	justify-content: flex-end;
}

.logodom-site-footer__bar .logodom-footer-nav__list {
	justify-content: flex-end;
}

.logodom-footer-nav__list a {
	color: var(--logodom-color-text-muted);
	text-decoration: none;
	font-size: 0.8125rem;
}

.logodom-footer-nav__list a:hover,
.logodom-footer-nav__list a:focus-visible {
	color: var(--logodom-color-accent);
	text-decoration: underline;
}

.logodom-site-footer__meta {
	margin: 0;
	flex: 0 0 auto;
	font-size: 0.8125rem;
	color: var(--logodom-color-text-muted);
}

@media (max-width: 56.25rem) {
	.logodom-site-footer__columns {
		grid-template-columns: 1fr;
		gap: var(--logodom-space-6);
		justify-items: center;
	}

	.logodom-footer-col {
		width: 100%;
		max-width: 28rem;
		text-align: center;
	}

	.logodom-footer-col__list {
		align-items: center;
	}

	.logodom-footer-payments {
		justify-content: center;
	}

	.logodom-footer-contact__row {
		text-align: center;
	}

	.logodom-footer-contact__messengers {
		align-items: center;
	}

	/* Bottom bar: logo + © year stay on one row; footer nav on second row, centered */
	.logodom-site-footer__bar {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		column-gap: var(--logodom-space-3);
		row-gap: var(--logodom-space-4);
	}

	.logodom-site-footer__brand {
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		max-width: min(8rem, 42vw);
	}

	.logodom-site-footer__meta {
		grid-column: 2;
		grid-row: 1;
		justify-self: end;
		white-space: nowrap;
		min-width: 0;
		text-align: right;
	}

	.logodom-site-footer__bar .logodom-footer-nav {
		grid-column: 1 / -1;
		grid-row: 2;
		width: 100%;
		min-width: 0;
		flex: unset;
	}

	.logodom-site-footer__bar .logodom-footer-nav__list {
		justify-content: center;
	}
}

/* --- Layout utilities --- */
.ld-container {
	width: 100%;
	max-width: var(--logodom-max-width);
	margin-inline: auto;
	padding-inline: var(--logodom-space-3);
}

/* --- Page shell & content host --- */
.logodom-page-shell {
	display: block;
	padding-block: var(--logodom-space-4) var(--logodom-space-6);
}

/* Canonical content host: no vertical padding on main (rhythm from block-flow + sections). */
#logodom-content-host.logodom-page-shell {
	padding-top: 0;
	padding-bottom: 0;
}

.logodom-page-shell__inner {
	min-height: 1px;
}

/*
 * Block-flow wrapper: host stack only (docs/THEME_BLOCKS_FRONTEND_CONTRACT.md).
 * Not a page container — no max-width on this element. Sectional landings use theme blocks as top-level rows.
 */
.logodom-page-shell__inner--block-flow {
	width: 100%;
	max-width: none;
}

/* Each top-level theme block wrapper: full width of host; block’s <section> + inner container define layout */
.logodom-page-shell__inner--block-flow > [class*='wp-block-logodom-'] {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

/*
 * Fallback: readable column for common core blocks on non-sectional / article-style pages.
 * Not the primary model for sectional pages (those should be theme blocks only at the top level).
 * Group/Columns/Cover omitted so they can stay full width when needed.
 */
.logodom-page-shell__inner--block-flow
	> :where(
		.wp-block-paragraph,
		.wp-block-heading,
		.wp-block-list,
		.wp-block-quote,
		.wp-block-pullquote,
		.wp-block-image,
		.wp-block-separator,
		.wp-block-gallery,
		.wp-block-embed,
		.wp-block-media-text,
		.wp-block-table,
		.wp-block-code,
		.wp-block-preformatted,
		.wp-block-file
	) {
	width: 100%;
	max-width: var(--logodom-max-width);
	margin-inline: auto;
	padding-inline: var(--logodom-space-3);
	box-sizing: border-box;
}

/*
 * Block-flow vertical rhythm: theme sections vs fallback core blocks (no runtime, CSS-only).
 * Host stays full-width; spacing is between top-level siblings only.
 */
.logodom-page-shell__inner--block-flow > * + * {
	margin-top: var(--logodom-space-4);
}

/* Two theme rows: clear but not triple-spaced with inner section padding */
.logodom-page-shell__inner--block-flow > [class*='wp-block-logodom-'] + [class*='wp-block-logodom-'] {
	margin-top: var(--logodom-space-5);
}

/* Theme section → first non-theme block: prose “lane” after a full-width section */
.logodom-page-shell__inner--block-flow > [class*='wp-block-logodom-'] + *:not([class*='wp-block-logodom-']) {
	margin-top: var(--logodom-space-6);
	padding-top: var(--logodom-space-5);
	border-top: 1px solid var(--logodom-color-border, #e5e7eb);
}

/*
 * If the next sibling is truly empty (no leftover markup), do not draw the prose “lane” line or extra gap —
 * otherwise it reads as a stray horizontal rule under the last theme section (often mistaken for CTA chrome).
 */
.logodom-page-shell__inner--block-flow
	> [class*='wp-block-logodom-']
	+ *:not([class*='wp-block-logodom-']):empty {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

/* Non-theme → theme row: step back into full-width section */
.logodom-page-shell__inner--block-flow > *:not([class*='wp-block-logodom-']) + [class*='wp-block-logodom-'] {
	margin-top: var(--logodom-space-6);
}

/* Vertical rhythm inside block editor output (shells without block-flow use default stack) */
.logodom-page-shell .entry-content > * + *,
.logodom-page-shell__inner:not(.logodom-page-shell__inner--block-flow) > * + * {
	margin-top: var(--logodom-space-3);
}

/* --- Canonical button primitive --- */
button,
input[type='submit'],
input[type='button'],
.button,
.btn,
.ld-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--logodom-space-2);
	padding: var(--logodom-space-2) var(--logodom-space-4);
	margin: 0;
	font: inherit;
	line-height: 1.25;
	text-decoration: none;
	border: 1px solid var(--logodom-color-accent);
	border-radius: var(--logodom-radius-sm);
	background: var(--logodom-color-accent);
	color: #fff;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

button:hover,
input[type='submit']:hover,
input[type='button']:hover,
.button:hover,
.btn:hover,
.ld-button:hover {
	background: var(--logodom-color-accent-hover);
	border-color: var(--logodom-color-accent-hover);
	color: #fff;
}

button:focus-visible,
input[type='submit']:focus-visible,
input[type='button']:focus-visible,
.button:focus-visible,
.btn:focus-visible,
.ld-button:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring);
}

button:active,
input[type='submit']:active,
input[type='button']:active,
.button:active,
.btn:active,
.ld-button:active {
	transform: translateY(1px);
}

button:disabled,
input[type='submit']:disabled,
input[type='button']:disabled,
.button:disabled,
.btn:disabled,
.ld-button:disabled,
[aria-disabled='true'] {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

.ld-button--cta,
a.ld-button--cta {
	background: var(--logodom-color-cta, var(--logodom-color-accent));
	border-color: var(--logodom-color-cta, var(--logodom-color-accent));
	color: #fff;
}

.ld-button--cta:hover,
a.ld-button--cta:hover {
	background: var(--logodom-color-cta-hover, var(--logodom-color-accent-hover));
	border-color: var(--logodom-color-cta-hover, var(--logodom-color-accent-hover));
	color: #fff;
}

.ld-button--ghost,
a.ld-button--ghost {
	border-color: var(--logodom-color-border);
	background: transparent;
	color: var(--logodom-color-text);
}

.ld-button--ghost:hover,
a.ld-button--ghost:hover {
	background: var(--logodom-color-surface);
	border-color: var(--logodom-color-border);
	color: var(--logodom-color-text);
}

/* --- Form baseline --- */
label {
	display: block;
	margin-bottom: var(--logodom-space-2);
	font-weight: 500;
	color: var(--logodom-color-text);
}

input[type='text'],
input[type='email'],
input[type='url'],
input[type='search'],
input[type='tel'],
input[type='number'],
input[type='password'],
textarea,
select {
	width: 100%;
	max-width: 100%;
	padding: var(--logodom-space-2) var(--logodom-space-3);
	margin: 0 0 var(--logodom-space-3);
	font: inherit;
	line-height: var(--logodom-line-height);
	color: var(--logodom-color-text);
	background: var(--logodom-color-bg);
	border: 1px solid var(--logodom-color-border);
	border-radius: var(--logodom-radius-sm);
}

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

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: none;
	border-color: var(--logodom-color-accent);
	box-shadow: var(--logodom-focus-ring);
}

select {
	cursor: pointer;
}

/* --- Modal primitive (markup: templates/parts/modal.php) --- */
.logodom-modal[hidden] {
	display: none !important;
}

.logodom-modal:not([hidden]) {
	display: flex;
	position: fixed;
	inset: 0;
	z-index: var(--logodom-z-modal);
	align-items: flex-end;
	justify-content: center;
	padding: var(--logodom-space-3);
}

@media (min-width: 600px) {
	.logodom-modal:not([hidden]) {
		align-items: center;
	}
}

.logodom-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(17, 24, 39, 0.45);
	cursor: pointer;
}

.logodom-modal__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: min(32rem, 100vw - 2rem);
	max-height: min(90vh, 40rem);
	margin-block: auto;
	background: var(--logodom-color-bg);
	border: 1px solid var(--logodom-color-border);
	border-radius: var(--logodom-radius-md);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
	overflow: hidden;
}

.logodom-modal__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--logodom-space-3);
	padding: var(--logodom-space-3) var(--logodom-space-4);
	border-bottom: 1px solid var(--logodom-color-border);
	background: var(--logodom-color-surface);
}

.logodom-modal__title {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
}

.logodom-modal__close.ld-button--ghost,
.logodom-modal__close {
	flex-shrink: 0;
	padding: var(--logodom-space-2);
	border: 1px solid transparent;
	background: transparent;
	color: var(--logodom-color-text);
}

.logodom-modal__close:hover {
	background: var(--logodom-color-border);
	border-color: transparent;
	color: var(--logodom-color-text);
}

.logodom-modal__close:focus-visible {
	box-shadow: var(--logodom-focus-ring);
}

.logodom-modal__body {
	padding: var(--logodom-space-4);
	overflow-y: auto;
	flex: 1;
}

/* --- Contact / capture modal (templates/parts/contact-modal.php) --- */
/* Single layout at all widths: center card (override base .logodom-modal flex-end below 600px). */
.logodom-contact-modal:not([hidden]) {
	align-items: center;
	justify-content: center;
	padding: var(--logodom-space-3) var(--logodom-space-2);
}

@media (min-width: 37.5rem) {
	.logodom-contact-modal:not([hidden]) {
		padding-inline: var(--logodom-space-3);
	}
}

.logodom-contact-modal .logodom-contact-modal__dialog {
	position: relative;
	width: 100%;
	max-width: min(22rem, calc(100vw - 1.25rem));
	border-radius: 1.125rem;
	padding: 0;
	overflow: visible;
	box-shadow: 0 20px 40px rgba(15, 23, 42, 0.12);
	border: none;
	background: var(--logodom-color-bg);
}

.logodom-contact-modal__close {
	position: absolute;
	top: 0.625rem;
	right: 0.625rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	margin: 0;
	padding: 0;
	font-size: 1.75rem;
	line-height: 1;
	color: var(--logodom-color-header-text);
	background: transparent;
	border: none;
	border-radius: var(--logodom-radius-md);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.logodom-contact-modal__close:hover {
	background: rgba(47, 57, 110, 0.08);
	color: var(--logodom-color-header-text);
}

.logodom-contact-modal__close:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring);
}

.logodom-contact-modal__inner {
	padding: 2.25rem var(--logodom-space-3) var(--logodom-space-4);
	box-sizing: border-box;
}

.logodom-contact-modal__title {
	margin: 0 2.25rem var(--logodom-space-3);
	text-align: center;
	font-size: clamp(1rem, 2.6vw, 1.25rem);
	font-weight: 700;
	line-height: 1.32;
	color: var(--logodom-color-header-text);
	letter-spacing: 0.01em;
}

.logodom-contact-modal__phone {
	margin: 0 0 var(--logodom-space-3);
	text-align: center;
	font-size: clamp(1.0625rem, 2.4vw, 1.25rem);
	font-weight: 600;
	line-height: 1.35;
}

.logodom-contact-modal__phone-link {
	color: var(--logodom-color-header-text);
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}

.logodom-contact-modal__phone-link:hover,
.logodom-contact-modal__phone-link:focus-visible {
	color: var(--logodom-color-accent);
	text-decoration: underline;
}

.logodom-contact-modal__phone-link:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring);
	border-radius: var(--logodom-radius-sm);
}

.logodom-contact-modal__actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 var(--logodom-space-3);
}

.logodom-contact-modal__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 0;
	flex: 0 1 auto;
	max-width: calc(50% - 0.25rem);
	align-self: center;
	min-height: 2.35rem;
	padding: 0.4rem clamp(0.45rem, 2.2vw, 0.75rem);
	box-sizing: border-box;
	font-size: clamp(0.8125rem, 2.6vw, 0.9375rem);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	border: none;
	border-radius: 0.625rem;
	white-space: nowrap;
	cursor: pointer;
	transition:
		opacity 0.15s ease,
		transform 0.15s ease,
		filter 0.15s ease;
}

.logodom-contact-modal__btn--whatsapp {
	background: #25d366;
	color: #fff;
	box-shadow: 0 2px 10px rgba(37, 211, 102, 0.28);
}

.logodom-contact-modal__btn--whatsapp:hover:not(.is-disabled),
.logodom-contact-modal__btn--whatsapp:focus-visible:not(.is-disabled) {
	filter: brightness(1.05);
	transform: translateY(-1px);
}

.logodom-contact-modal__btn--telegram {
	background: #229ed9;
	color: #fff;
	box-shadow: 0 2px 10px rgba(34, 158, 217, 0.28);
}

.logodom-contact-modal__btn--telegram:hover:not(.is-disabled),
.logodom-contact-modal__btn--telegram:focus-visible:not(.is-disabled) {
	filter: brightness(1.05);
	transform: translateY(-1px);
}

.logodom-contact-modal__btn.is-disabled {
	opacity: 0.48;
	cursor: not-allowed;
	transform: none;
	filter: grayscale(0.15);
	box-shadow: none;
}

.logodom-contact-modal__hint {
	margin: 0 0 var(--logodom-space-4);
	text-align: center;
	font-size: 0.9375rem;
	color: var(--logodom-color-text-muted);
	line-height: 1.45;
}

.logodom-contact-modal__consent-row {
	display: flex;
	justify-content: center;
	margin-top: var(--logodom-space-2);
}

.logodom-contact-modal__consent {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0;
	max-width: 100%;
	font-size: 0.75rem;
	line-height: 1.4;
	color: var(--logodom-color-text-muted);
	cursor: pointer;
	text-align: left;
}

.logodom-contact-modal__consent input[type='checkbox'] {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: 0.12rem 0 0;
	accent-color: var(--logodom-color-accent);
	cursor: pointer;
}

.logodom-contact-modal__consent-text {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 19rem;
}

.logodom-contact-modal__policy-link {
	color: var(--logodom-color-accent);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.logodom-contact-modal__policy-link:hover,
.logodom-contact-modal__policy-link:focus-visible {
	color: var(--logodom-color-accent-hover);
}

.logodom-contact-modal__policy-link:focus-visible {
	outline: none;
	box-shadow: var(--logodom-focus-ring);
	border-radius: var(--logodom-radius-sm);
}

/* --- Responsive baseline --- */
@media (max-width: 599px) {
	.logodom-page-shell {
		padding-block: var(--logodom-space-3) var(--logodom-space-5);
	}
}
