:root {
	--root: #65c52d;
	--brand-hot: #ffc801;
	--press: #dd9c01;
	--field: #141516;
	--bg-elevated: #1d1f22;
	--panel-2: #24262a;
	--type: #ffffff;
	--muted: #c0bebf;
	--stroke: #2f3236;
	--border-strong: #45494e;
	--gradient-light: #ffe68a;
	--fade-bottom: #ffd541;
	--color-rg-banner: #a71e34;

	--heading: "Montserrat", system-ui, sans-serif;
	--body: "Inter", system-ui, sans-serif;

	--h1: clamp(1.85rem, 1.15rem + 2.7vw, 2.75rem);
	--display-2: clamp(1.5rem, 1.15rem + 1.4vw, 2.05rem);
	--display-3: clamp(1.2rem, 1.02rem + 0.7vw, 1.5rem);
	--display-4: 1.18rem;
	--minor: 1.05rem;
	--h6: 0.95rem;
	--normal: 1.02rem;
	--sm: 0.9rem;
	--legal: 0.8rem;

	--dense: 1.16;
	--base: 1.65;
	--relaxed: 1.85;
	--plain: 400;
	--demi: 500;
	--thick: 700;
	--tight: -0.02em;
	--even: 0;
	--airy: 0.08em;

	--s-2xs: 0.25rem;
	--s-xs: 0.5rem;
	--s-sm: 0.75rem;
	--s-md: 1.25rem;
	--s-lg: 2rem;
	--s-xl: 3rem;
	--s-2xl: 4.25rem;
	--s-3xl: 6rem;

	--pill: 999px;
	--round-full: 50%;
	--r-2xs: 3px;
	--r-xs: 5px;
	--r-sm: 8px;
	--r-md: 12px;
	--r-lg: 16px;
	--r-xl: 22px;
	--r-2xl: 28px;
	--r-3xl: 36px;

	--d-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
	--d-md: 0 8px 24px rgba(0, 0, 0, 0.35);
	--d-lg: 0 18px 48px rgba(0, 0, 0, 0.45);

	--snap: 121ms;
	--t-normal: 250ms;
	--calm: 421ms;
	--land: cubic-bezier(0.1, 0.82, 0.38, 0.92);
	--take-off: cubic-bezier(0.4, 0.06, 0.5, 0.9);
	--in-out: cubic-bezier(0.36, 0.06, 0.55, 0.93);
	--spring: cubic-bezier(0.4, 1, 0.5, 0.95);

	--site: 1120px;
	--narrow: 46rem;
	--short: 510px;
	--pad-lg: 2rem;
	--pad-md: 1.5rem;
	--padding-mobile: 1.25rem;
	--hair: 1px;
	--b-base: 2px;
	--wide: 3px;
	--height-desktop: 90px;
	--h-sm: 64px;
}

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

html, body { overflow-x: clip; }

body {
	margin: 0;
	background: var(--field);
	color: var(--type);
	font-family: var(--body);
	font-size: var(--normal);
	line-height: var(--base);
	font-weight: var(--plain);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--heading);
	line-height: var(--dense);
	overflow-wrap: anywhere;
	margin: 0 0 var(--s-md);
}

p { margin: 0 0 var(--s-md); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--root); }

.skip-jump {
	position: absolute;
	left: var(--s-md);
	top: -200px;
	z-index: 200;
	background: var(--brand-hot);
	color: #141516;
	padding: var(--s-xs) var(--s-md);
	border-radius: var(--r-sm);
	font-weight: var(--thick);
}
.skip-jump:not(:focus) { top: -200px !important; }
.skip-jump:focus { top: var(--s-md); }

.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---- shared section frames (single site width) ---- */
.crucifix-fluide-frame,
.chapelle-large-frame,
.colonnade-etroit-frame,
.parterre-dru-frame,
.berceau-pur-frame,
.garde-corps-lourd-frame,
.parure-classique-frame,
.piedestal-dense-frame,
.ciboire-voile-frame,
.oriflamme-sombre-frame,
.verriere-sombre-frame,
/* Карточка автора в общий список не попала, и портрет упирался в левый
   край окна вместо границы контейнера. */
.hypostyle-moderne-frame,
.baptistere-robuste-frame {
	width: 100%;
	max-width: calc(var(--site) + 2 * var(--pad-lg));
	margin-inline: auto;
	padding-inline: var(--pad-lg);
}

/* prose + legal keep readable measure */
.baldaquin-dru-frame,
.calice-lourd-frame {
	width: 100%;
	max-width: calc(var(--site) + 2 * var(--pad-lg));
	margin-inline: auto;
	padding-inline: var(--pad-lg);
}

main > section,
main > aside {
	padding-block: var(--s-xl);
}

/* component roots — layout handled by their -frame; base rule keeps classes defined */
.colonnade-etroit, .parterre-dru, .berceau-pur, .garde-corps-lourd,
.parure-classique, .piedestal-dense, .baldaquin-dru, .ciboire-voile,
.calice-lourd, .oriflamme-sombre, .hypostyle-moderne, .baptistere-robuste,
.ambon-bas, .verriere-sombre { display: block; }
.chapelle-large-strip, .hypostyle-moderne-stuff,
.colonnade-etroit-stuff, .oriflamme-sombre-intro { display: block; }

/* ================= RG banner (RG-02) ================= */
.rg-banner {
	margin: 0;
	background: var(--color-rg-banner);
	color: #ffffff;
	text-align: center;
	font-size: var(--sm);
	letter-spacing: var(--airy);
	padding: var(--s-xs) var(--s-md);
	min-height: 30px;
}
.rg-anchor { color: #ffffff; text-decoration: underline; }

/* ================= Header (HEAD-INSET island) ================= */
.crucifix-fluide {
	padding: var(--s-md) var(--s-md) 0;
}
.crucifix-fluide-frame {
	display: flex;
	align-items: center;
	gap: var(--s-md);
	min-height: 90px;
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-2xl);
	box-shadow: var(--d-md);
	padding-inline: var(--s-lg);
	max-width: calc(var(--site) + 2 * var(--pad-lg));
}
.crucifix-fluide-mark {
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: var(--round-full);
	overflow: hidden;
	border: var(--b-base) solid var(--root);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #0e0f10;
}
.crucifix-fluide-mark img {
	width: 100%; height: 100%; object-fit: cover;
}
.crucifix-fluide-nav {
	display: flex;
	align-items: center;
	gap: var(--s-sm);
	margin-right: auto;
	position: relative;
}
.crucifix-fluide-anchor {
	color: var(--type);
	text-decoration: none;
	text-transform: uppercase;
	font-size: 16px;
	font-weight: var(--plain);
	letter-spacing: var(--airy);
	padding: var(--s-2xs) var(--s-sm);
	border-radius: var(--pill);
	white-space: nowrap;
	transition: background var(--snap) var(--land), color var(--snap) var(--land);
}
.crucifix-fluide-anchor:hover { background: rgba(101, 197, 45, 0.14); color: var(--root); }
.crucifix-fluide-anchor.is-active { background: var(--root); color: #10130c; }
.crucifix-fluide-more { position: relative; }
.crucifix-fluide-more-tap {
	font: inherit;
	text-transform: uppercase;
	font-size: 16px;
	letter-spacing: var(--airy);
	color: var(--type);
	background: transparent;
	border: var(--hair) solid var(--stroke);
	border-radius: var(--pill);
	padding: var(--s-2xs) var(--s-sm);
	cursor: pointer;
}
.crucifix-fluide-more-tap:hover { border-color: var(--root); color: var(--root); }
.crucifix-fluide-more-menu {
	position: absolute;
	right: 0;
	top: calc(100% + var(--s-xs));
	background: var(--panel-2);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-md);
	box-shadow: var(--d-lg);
	padding: var(--s-xs);
	min-width: 190px;
	display: none;
	flex-direction: column;
	gap: var(--s-2xs);
	z-index: 60;
}
.crucifix-fluide-more-menu.is-open { display: flex; }
.crucifix-fluide-more-menu .crucifix-fluide-anchor { display: block; }
.crucifix-fluide-keys { flex-shrink: 0; }
.crucifix-fluide-tap {
	display: none;
	align-items: center;
	gap: var(--s-xs);
	margin-left: auto;
	font: inherit;
	font-weight: var(--demi);
	color: var(--type);
	background: transparent;
	border: var(--hair) solid var(--stroke);
	border-radius: var(--pill);
	padding: var(--s-xs) var(--s-md);
	cursor: pointer;
}
.crucifix-fluide-tap-bar {
	width: 18px; height: 2px; background: var(--type);
	box-shadow: 0 6px 0 var(--type), 0 -6px 0 var(--type);
	display: inline-block;
}
.crucifix-fluide-panel {
	display: none;
	margin: var(--s-md) auto 0;
	max-width: calc(var(--site) + 2 * var(--pad-lg));
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-lg);
	padding: var(--s-md);
}
.crucifix-fluide-panel.is-open { display: block; }
.crucifix-fluide-panel-nav { display: flex; flex-direction: column; gap: var(--s-2xs); }
.crucifix-fluide-panel-nav .crucifix-fluide-anchor { font-size: var(--normal); }

/* offer buttons — stand out, not from palette-as-text */
.crucifix-fluide-action,
.colonnade-etroit-action,
.piedestal-dense-action,
.baptistere-robuste-action,
.crucifix-fluide-panel-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--s-xs);
	min-height: 46px;
	padding: var(--s-sm) var(--s-lg);
	background: var(--brand-hot);
	color: #171200;
	font-family: var(--heading);
	font-weight: var(--thick);
	letter-spacing: var(--tight);
	text-decoration: none;
	border: var(--b-base) solid var(--brand-hot);
	border-radius: var(--pill);
	white-space: nowrap;
	flex-shrink: 0;
	transition: background var(--snap) var(--land), color var(--snap) var(--land), border-color var(--snap) var(--land);
}
.crucifix-fluide-action { background: transparent; color: var(--brand-hot); padding-inline: var(--s-md); }
.crucifix-fluide-action:hover { background: var(--brand-hot); color: #171200; border-color: var(--brand-hot); }
.colonnade-etroit-action:hover,
.piedestal-dense-action:hover,
.baptistere-robuste-action:hover,
.crucifix-fluide-panel-offer:hover {
	background: var(--press); color: #171200; border-color: var(--press);
}
.crucifix-fluide-panel-offer { margin-top: var(--s-sm); }

.offer-terms {
	font-size: var(--legal);
	color: var(--muted);
	margin: var(--s-sm) 0 0;
}

/* ================= Hero (HERO-05 split) ================= */
.colonnade-etroit-frame {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: var(--s-2xl);
}
.colonnade-etroit-eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: var(--airy);
	color: var(--root);
	font-weight: var(--thick);
	font-size: var(--sm);
	margin-bottom: var(--s-sm);
}
.colonnade-etroit-title { font-size: var(--h1); margin-bottom: var(--s-md); }
.colonnade-etroit-second {
	color: var(--muted);
	font-size: var(--minor);
	max-width: var(--short);
	margin-bottom: var(--s-lg);
}
.colonnade-etroit-keys { display: flex; flex-wrap: wrap; gap: var(--s-md); align-items: center; }
.colonnade-etroit-quiet {
	color: var(--type);
	text-decoration: none;
	font-weight: var(--demi);
	border-bottom: var(--b-base) solid transparent;
	padding-bottom: 2px;
	transition: border-color var(--snap) var(--land);
}
.colonnade-etroit-quiet:hover { border-color: var(--root); }
.colonnade-etroit-figure-wrap {
	border-radius: var(--r-2xl);
	overflow: hidden;
	border: var(--hair) solid var(--stroke);
	box-shadow: var(--d-lg);
}
.colonnade-etroit-figure { width: 100%; height: 100%; object-fit: cover; }

/* ================= Page header (PHEAD-02) ================= */
.parterre-dru-frame { text-align: center; max-width: calc(var(--site) + 2 * var(--pad-lg)); }
.parterre-dru-tag {
	display: block;
	text-transform: uppercase; letter-spacing: var(--airy);
	color: var(--root); font-weight: var(--thick); font-size: var(--sm);
	margin-bottom: var(--s-sm);
}
.parterre-dru-title { font-size: var(--h1); margin-bottom: var(--s-md); }
.parterre-dru-second { color: var(--muted); max-width: var(--narrow); margin-inline: auto; }

/* ================= Inline CTA (INLINE-CTA-03) ================= */
.baptistere-robuste-frame {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: var(--s-md);
	background: linear-gradient(120deg, rgba(101, 197, 45, 0.12), rgba(255, 200, 1, 0.08));
	border: var(--hair) solid var(--stroke);
	border-left: var(--wide) solid var(--brand-hot);
	border-radius: var(--r-lg);
	padding: var(--s-md) var(--s-lg);
}
.baptistere-robuste-line { margin: 0; font-weight: var(--demi); }

/* ================= Items grid (GRID-01) ================= */
.berceau-pur-heading, .garde-corps-lourd-heading, .parure-classique-heading,
.ciboire-voile-heading, .hypostyle-moderne-heading {
	font-size: var(--display-2);
	text-align: center;
	margin-bottom: var(--s-lg);
}
.berceau-pur-set {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--s-md);
}
.berceau-pur-cell {
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-lg);
	padding: var(--s-lg);
	transition: background var(--t-normal) var(--land), transform var(--t-normal) var(--land);
}
.berceau-pur-cell:hover { background: var(--panel-2); transform: translateY(-7px); }
.berceau-pur-badge {
	width: 48px; height: 48px; border-radius: var(--r-md);
	background: rgba(101, 197, 45, 0.14);
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: var(--s-sm);
}
.berceau-pur-figure { width: 26px; height: 26px; fill: var(--root); }
.berceau-pur-title { font-size: var(--display-4); margin-bottom: var(--s-sm); }
.berceau-pur-line { color: var(--muted); margin: 0; }

/* ================= FAQ (FAQ-04 accordion, instant) ================= */
.garde-corps-lourd-set {
	margin-inline: auto;
	display: flex; flex-direction: column; gap: var(--s-sm);
}
.garde-corps-lourd-cell {
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-md);
	padding: var(--s-sm) var(--s-md);
}
.garde-corps-lourd-title {
	cursor: pointer; list-style: none; position: relative; padding-right: var(--s-lg);
}
.garde-corps-lourd-q {
	display: inline; margin: 0; font-family: var(--heading);
	font-size: var(--normal); font-weight: var(--demi); line-height: var(--base);
}
.garde-corps-lourd-title::-webkit-details-marker { display: none; }
.garde-corps-lourd-title::after {
	content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
	color: var(--root); font-size: 1.3rem; font-weight: var(--thick);
}
.garde-corps-lourd-cell[open] .garde-corps-lourd-title::after { content: "\2212"; }
.garde-corps-lourd-line { color: var(--muted); padding-top: var(--s-sm); }
.garde-corps-lourd-line p { margin: 0; }

/* ================= Reviews (REV-03 grid) ================= */
.parure-classique-set {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-md);
}
.parure-classique-slab {
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-lg);
	padding: var(--s-lg);
	margin: 0;
	display: flex; flex-direction: column; gap: var(--s-sm);
}
.parure-classique-stars { color: var(--brand-hot); letter-spacing: 2px; font-size: 1.1rem; }
.parure-classique-line { margin: 0; color: var(--type); }
.parure-classique-handle { color: var(--muted); font-weight: var(--demi); font-size: var(--sm); }

/* ================= Data table (TABLE-03) ================= */
.ciboire-voile-scroll { overflow-x: auto; border-radius: var(--r-lg); border: var(--hair) solid var(--stroke); }
.ciboire-voile-set { width: 100%; border-collapse: collapse; min-width: 560px; }
.ciboire-voile-set th, .ciboire-voile-set td {
	text-align: left; padding: var(--s-sm) var(--s-md);
	border-bottom: var(--hair) solid var(--stroke); font-size: var(--sm);
}
.ciboire-voile-set thead th {
	background: var(--panel-2); font-family: var(--heading); color: var(--type);
}
.ciboire-voile-set tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.02); }
.ciboire-voile-set td { color: var(--muted); }

/* ================= CTA block (CTA-10) ================= */
.piedestal-dense-frame {
	text-align: center;
	background: linear-gradient(135deg, rgba(255, 230, 138, 0.1), rgba(255, 213, 65, 0.05));
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-2xl);
	padding: var(--s-2xl) var(--s-lg);
}
.piedestal-dense-title { font-size: var(--display-2); margin-bottom: var(--s-sm); }
.piedestal-dense-line { color: var(--muted); max-width: var(--narrow); margin: 0 auto var(--s-lg); }

/* ================= Prose (PROSE-17 underlined heading) ================= */
.baldaquin-dru-stuff { margin-bottom: var(--s-xl); }
.baldaquin-dru-stuff:last-child { margin-bottom: 0; }
.baldaquin-dru-heading {
	font-size: var(--display-3);
	font-weight: 600;
	position: relative;
	padding-bottom: var(--s-sm);
	margin-bottom: var(--s-md);
}
.baldaquin-dru-heading::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 64px; height: 0;
	border-bottom: var(--hair) dashed var(--root);
}
.baldaquin-dru-line { color: var(--muted); }
.baldaquin-dru-set { color: var(--muted); padding-left: var(--s-md); }
.baldaquin-dru-set li { margin-bottom: var(--s-xs); }
.baldaquin-dru-anchor { color: var(--root); text-decoration: none; border-bottom: var(--hair) solid rgba(101, 197, 45, 0.5); }
.baldaquin-dru-anchor:hover { border-bottom-width: var(--b-base); }

/* ================= Author byline (BYLINE-04) ================= */
.ambon-bas-frame {
	display: flex; align-items: center; gap: var(--s-md);
	max-width: calc(var(--narrow) + 2 * var(--pad-lg));
	margin-inline: auto;
	background: var(--bg-elevated);
	border: var(--hair) solid var(--stroke);
	border-radius: var(--r-lg);
	padding: var(--s-md) var(--s-lg);
}
.ambon-bas-pic { width: 64px; height: 64px; border-radius: var(--round-full); object-fit: cover; flex-shrink: 0; border: var(--b-base) solid var(--root); }
.ambon-bas-stuff { display: flex; flex-direction: column; gap: 2px; }
.ambon-bas-tag { text-transform: uppercase; letter-spacing: var(--airy); font-size: var(--legal); color: var(--muted); margin: 0; }
.ambon-bas-handle { margin: 0; font-family: var(--heading); font-weight: var(--thick); }
.ambon-bas-anchor { color: var(--type); text-decoration: none; }
.ambon-bas-anchor:hover { color: var(--root); }
.ambon-bas-post { margin: 0; color: var(--root); font-size: var(--sm); }
.ambon-bas-line { margin: 0; color: var(--muted); font-size: var(--sm); }

/* ================= Author card (AUTH-01) ================= */
.hypostyle-moderne-frame { display: grid; grid-template-columns: 200px 1fr; gap: var(--s-xl); align-items: start; }
.hypostyle-moderne-pic { width: 200px; height: 200px; border-radius: var(--r-2xl); object-fit: cover; border: var(--b-base) solid var(--root); }
.hypostyle-moderne-handle { font-size: var(--h1); margin-bottom: var(--s-2xs); }
.hypostyle-moderne-post { color: var(--root); font-weight: var(--demi); margin-bottom: var(--s-md); }
.hypostyle-moderne-line { color: var(--muted); }
.hypostyle-moderne-heading { text-align: left; font-size: var(--display-3); margin-top: var(--s-md); }
.hypostyle-moderne-set { color: var(--muted); padding-left: var(--s-md); }

/* ================= Contact form (FORM-05) ================= */
.oriflamme-sombre-frame { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-2xl); align-items: start; }
.oriflamme-sombre-title { font-size: var(--h1); margin-bottom: var(--s-md); }
.oriflamme-sombre-line { color: var(--muted); }
.oriflamme-sombre-anchor { color: var(--root); }
.oriflamme-sombre-set { display: flex; flex-direction: column; gap: var(--s-sm); background: var(--bg-elevated); border: var(--hair) solid var(--stroke); border-radius: var(--r-lg); padding: var(--s-lg); }
.oriflamme-sombre-ask { font-weight: var(--demi); font-size: var(--sm); }
.oriflamme-sombre-field {
	font: inherit; color: var(--type); background: var(--field);
	border: var(--hair) solid var(--border-strong); border-radius: var(--r-sm);
	padding: var(--s-sm); width: 100%;
}
.oriflamme-sombre-field:focus { outline: var(--b-base) solid var(--root); outline-offset: 1px; }
.oriflamme-sombre-action {
	margin-top: var(--s-sm); min-height: 46px; cursor: pointer;
	background: var(--brand-hot); color: #171200; border: 0; border-radius: var(--pill);
	font-family: var(--heading); font-weight: var(--thick);
}
.oriflamme-sombre-action:hover { background: var(--press); color: #171200; }
.oriflamme-sombre-ok { color: var(--root); font-weight: var(--demi); margin: 0; }

/* ================= Legal (LEGAL-05) ================= */
.calice-lourd-title { font-size: var(--h1); margin-bottom: var(--s-md); }
.calice-lourd-lead { color: var(--type); font-size: var(--minor); margin-bottom: var(--s-lg); }
.calice-lourd-heading { font-size: var(--display-3); margin-top: var(--s-lg); }
.calice-lourd-line { color: var(--muted); }
.calice-lourd-set { color: var(--muted); padding-left: var(--s-md); }
.calice-lourd-set li { margin-bottom: var(--s-xs); }
.calice-lourd-note {
	color: var(--muted); font-size: var(--sm); border-top: var(--hair) solid var(--stroke);
	margin-top: var(--s-lg); padding-top: var(--s-md);
}

/* ================= Error (ERR-07) ================= */
.verriere-sombre-frame { text-align: center; padding-block: var(--s-2xl); }
.verriere-sombre-code { font-family: var(--heading); font-size: clamp(4rem, 3rem + 8vw, 8rem); font-weight: 800; color: var(--root); line-height: 1; margin: 0; }
.verriere-sombre-title { font-size: var(--display-2); margin: var(--s-md) 0; }
.verriere-sombre-line { color: var(--muted); max-width: var(--short); margin: 0 auto var(--s-lg); }
.verriere-sombre-action {
	display: inline-flex; min-height: 46px; align-items: center; padding: var(--s-sm) var(--s-lg);
	background: var(--brand-hot); color: #171200; text-decoration: none;
	font-family: var(--heading); font-weight: var(--thick); border-radius: var(--pill);
}
.verriere-sombre-action:hover { background: var(--press); }

/* ================= Footer (FOOT-06) ================= */
.chapelle-large { background: var(--bg-elevated); border-top: var(--hair) solid var(--stroke); margin-top: var(--s-2xl); }
.chapelle-large-frame { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: var(--s-2xl); padding-block: var(--s-2xl); }
.chapelle-large-mark { width: 56px; height: 56px; border-radius: var(--round-full); object-fit: cover; border: var(--b-base) solid var(--root); margin-bottom: var(--s-sm); }
.chapelle-large-line { color: var(--muted); }
.chapelle-large-warn { color: var(--muted); font-size: var(--sm); }
.chapelle-large-heading { font-size: var(--minor); margin-bottom: var(--s-sm); }
.chapelle-large-set { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--s-xs); }
.chapelle-large-anchor { color: var(--muted); text-decoration: none; }
.chapelle-large-anchor:hover { color: var(--root); }
.chapelle-large-base {
	max-width: calc(var(--site) + 2 * var(--pad-lg)); margin-inline: auto;
	padding: var(--s-md) var(--pad-lg); border-top: var(--hair) solid var(--stroke);
	display: flex; justify-content: space-between; align-items: center; gap: var(--s-md);
	color: var(--muted); font-size: var(--sm);
}
.chapelle-large-base p { margin: 0; }
.chapelle-large-top { color: var(--muted); text-decoration: none; }
.chapelle-large-top:hover { color: var(--root); }

/* ================= Cookie banner (COOK-01) ================= */
.console-grand {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
	background: var(--panel-2); border-top: var(--hair) solid var(--border-strong);
	box-shadow: var(--d-lg);
}
.console-grand[hidden] { display: none; }
.console-grand-frame {
	max-width: calc(var(--site) + 2 * var(--pad-lg)); margin-inline: auto;
	display: flex; align-items: center; gap: var(--s-lg); padding: var(--s-md) var(--pad-lg);
}
.console-grand-say { margin: 0; color: var(--muted); font-size: var(--sm); }
.console-grand-keys { display: flex; gap: var(--s-sm); flex-shrink: 0; }
.console-grand-approve, .console-grand-decline {
	font: inherit; cursor: pointer; border-radius: var(--pill); min-height: 40px;
	padding: var(--s-xs) var(--s-md); font-weight: var(--demi);
}
.console-grand-approve { background: var(--brand-hot); color: #171200; border: 0; }
.console-grand-approve:hover { background: var(--press); color: #171200; }
.console-grand-decline { background: transparent; color: var(--type); border: var(--hair) solid var(--border-strong); }
.console-grand-decline:hover { border-color: var(--root); color: var(--root); }

/* ================= Tablet ================= */
@media (max-width: 1024px) {
	.berceau-pur-set, .parure-classique-set { grid-template-columns: repeat(2, 1fr); }
	.crucifix-fluide-frame, .parterre-dru-frame, .chapelle-large-base,
	.console-grand-frame, .colonnade-etroit-frame, .oriflamme-sombre-frame,
	.crucifix-fluide-panel, .chapelle-large-frame {
		padding-inline: var(--pad-md);
	}
}

/* ================= Header collapse to burger ================= */
@media (max-width: 1300px) {
	.crucifix-fluide-nav, .crucifix-fluide-keys { display: none; }
	.crucifix-fluide-tap { display: inline-flex; }
}

/* ================= Layout stacking ================= */
@media (max-width: 1080px) {
	.colonnade-etroit-frame { grid-template-columns: 1fr; gap: var(--s-lg); }
	.colonnade-etroit-figure-wrap { order: -1; }
	.oriflamme-sombre-frame { grid-template-columns: 1fr; gap: var(--s-lg); }
	.hypostyle-moderne-frame { grid-template-columns: 1fr; gap: var(--s-lg); justify-items: center; text-align: center; }
	.hypostyle-moderne-heading, .hypostyle-moderne-set { text-align: left; align-self: start; }
	.chapelle-large-frame { grid-template-columns: 1fr 1fr; }
	.chapelle-large-brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
	main > section, main > aside { padding-block: var(--s-lg); }
	.berceau-pur-set, .parure-classique-set { grid-template-columns: 1fr; }
	.baptistere-robuste-frame { flex-direction: column; align-items: flex-start; }
	.piedestal-dense-frame { padding: var(--s-xl) var(--s-md); }
	.chapelle-large-frame { grid-template-columns: 1fr; gap: var(--s-lg); }
	.chapelle-large-base { flex-direction: column; text-align: center; }
	.crucifix-fluide-frame, .colonnade-etroit-frame, .parterre-dru-frame,
	.oriflamme-sombre-frame, .console-grand-frame {
		padding-inline: var(--padding-mobile);
	}
	.console-grand-frame { flex-direction: column; align-items: stretch; gap: var(--s-sm); padding: 12px 14px; }
	.console-grand-say { font-size: 13px; line-height: 1.35; }
	.console-grand-keys { flex-direction: column; }
	.ambon-bas-frame { flex-direction: column; text-align: center; align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

@media (max-width: 1316px) {
  /* Класс ссылок из списка убран: он общий у десктопного меню и выдвижного
	   ящика, и с !important гасил пункты внутри открытого ящика. Скрытия
	   контейнеров достаточно. */
	.crucifix-fluide-nav, .crucifix-fluide-more, .crucifix-fluide-keys, .crucifix-fluide-action { display: none !important; }
  .crucifix-fluide-tap { display: flex !important; }
}

/* Пульсация офферных кнопок — приём и числа разыграны по домену
   (Site-gen/scripts/cta-style.mjs), добавлено 2026-08-07. */
.crucifix-fluide-action,
.crucifix-fluide-panel-offer,
.colonnade-etroit-action,
.colonnade-etroit-quiet,
.piedestal-dense-action { animation: breathe_qnqq 3.45s linear infinite; }
.crucifix-fluide-action:hover,
.crucifix-fluide-panel-offer:hover,
.colonnade-etroit-action:hover,
.colonnade-etroit-quiet:hover,
.piedestal-dense-action:hover { animation: none; }
@keyframes breathe_qnqq{0%{transform:scale(1);animation-timing-function:cubic-bezier(.25,.8,.35,1)}15.942%{transform:scale(1.065);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}42.029%,100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce) {
	.crucifix-fluide-action,
	.crucifix-fluide-panel-offer,
	.colonnade-etroit-action,
	.colonnade-etroit-quiet,
	.piedestal-dense-action { animation: none !important; }
}

/* ---- картинки внутри страниц ----
   Оформлены как рамка героя: та же скруглённая рамка и тень, ширина по колонке
   текста, пропорции сохраняются. */
.baldaquin-dru-page-figure,
.berceau-pur-page-figure {
	margin: var(--s-lg) auto;
    max-width: 560px;
	border-radius: var(--r-2xl);
	overflow: hidden;
	border: var(--hair) solid var(--stroke);
	box-shadow: var(--d-lg);
}
.baldaquin-dru-page-figure img,
.berceau-pur-page-figure img {
	display: block;
	/* Кадры бывают квадратные и вертикальные: ограничиваем и по ширине, и по
	   высоте, но не режем — картинка вписывается целиком. */
	max-width: 100%;
	max-height: 56vh;
	width: auto;
	height: auto;
	margin-inline: auto;
}
