/* ==========================================================================
   Marmaria — homepage ("The Reliquary")
   Loaded only on the front page (front-page.php). Everything is scoped under .rq so it can't
   leak into the rest of the theme. Tokens come from frontend.css (:root).
   ========================================================================== */

/* Lantern radius, registered so it can be animated (ignite, then breathe). */
@property --r {
	syntax: '<length>';
	inherits: true;
	initial-value: 0px;
}

.rq {
	--rq-gold: #c9b48a;
	--rq-ink: var(--mar-ink, #e9e6e0);
	--rq-soft: var(--mar-ink-soft, #c8c4bb);
	--rq-mute: var(--mar-ink-mute, #8a8378);
	--rq-line: rgba(233, 230, 224, .14);
	--rq-blood: var(--mar-oxblood, #7a1e1e);
	--rq-ease: cubic-bezier(.16, 1, .3, 1);
	--rq-arch: polygon(0 100%, 0 38%, 1% 31%, 3.5% 24%, 7.5% 17.5%, 13% 11.5%, 20% 6.5%, 28% 3%, 38.5% .7%, 50% 0, 61.5% .7%, 72% 3%, 80% 6.5%, 87% 11.5%, 92.5% 17.5%, 96.5% 24%, 99% 31%, 100% 38%, 100% 100%);

	/* Cinzel and Cormorant have no Georgian glyphs, so Georgian text used to
	   fall back to whatever the device had. Each stack now names a real
	   Georgian face right after the Latin one; the browser picks per glyph. */
	--rq-display: 'Cinzel', 'Noto Serif Georgian', Georgia, serif;
	--rq-serif: 'Cormorant Garamond', 'Noto Serif Georgian', Georgia, serif;
	--rq-sans: 'Inter', 'Noto Sans Georgian', system-ui, sans-serif;

	background: #050505;
	color: var(--rq-ink);
	overflow-x: clip;
}
.rq *, .rq *::before, .rq *::after { box-sizing: border-box; }
.rq img { display: block; max-width: 100%; }
.rq figure { margin: 0; }

.rq-wrap { width: min(1320px, 100% - 48px); margin-inline: auto; }
.rq-wrap--text { width: min(980px, 100% - 48px); }

/* Pointed-arch window: the motif that repeats down the page. */
.rq-arch { clip-path: var(--rq-arch); overflow: hidden; }

/* ---------- Type ---------- */
.rq-kicker {
	display: flex; align-items: center; gap: 14px;
	margin: 0 0 22px;
	font-family: var(--rq-sans); font-size: 11px; font-weight: 500;
	letter-spacing: .32em; text-transform: uppercase; color: var(--rq-gold);
}
.rq-kicker--center { justify-content: center; }
.rq-kicker__rule { width: 42px; height: 1px; background: currentColor; opacity: .7; }
.rq-h2 {
	margin: 0;
	font-family: var(--rq-display); font-weight: 400;
	font-size: clamp(2.2rem, 4.6vw, 4.2rem); line-height: 1.02;
	letter-spacing: .01em; text-transform: uppercase;
}
.rq-numeral { margin: 0 0 28px; font-size: 22px; color: var(--rq-blood); text-align: center; }

/* ---------- Georgian ----------
   Georgian has no capitals, so uppercase does nothing and wide Latin
   tracking only pulls the script apart. Noto Serif Georgian's width axis
   gives the display lines the same tall, carved feel Cinzel has in Latin. */
.mar-lang-ka .rq-kicker,
.mar-lang-ka .rq-btn,
.mar-lang-ka .rq-door__name,
.mar-lang-ka .rq-vows__list h3,
.mar-lang-ka .rq-marquee { letter-spacing: .04em; }
.mar-lang-ka .rq-kicker { font-size: 13px; }
.mar-lang-ka .rq-btn { font-size: 13px; }
.mar-lang-ka .rq-h2,
.mar-lang-ka .rq-hero__title,
.mar-lang-ka .rq-threshold__title,
.mar-lang-ka .rq-door__name,
.mar-lang-ka .rq-vows__list h3,
.mar-lang-ka .rq-marquee {
	font-family: 'Noto Serif Georgian', Georgia, serif;
	font-stretch: 75%; font-weight: 300; letter-spacing: 0;
}
.mar-lang-ka .rq-h2 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.15; }
.mar-lang-ka .rq-vows__list h3, .mar-lang-ka .rq-door__name { font-weight: 400; font-stretch: 87.5%; }
.mar-lang-ka .rq-hero__lede,
.mar-lang-ka .rq-vows__list p {
	font-family: 'Noto Serif Georgian', Georgia, serif; font-weight: 300; font-size: 1.02rem; line-height: 1.75;
}

/* ---------- Buttons ---------- */
.rq-btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	min-height: 52px; padding: 0 34px; overflow: hidden;
	font-family: var(--rq-sans); font-size: 12px; font-weight: 500;
	letter-spacing: .24em; text-transform: uppercase; text-decoration: none;
	border: 1px solid var(--rq-ink); color: var(--rq-ink);
	transition: color .5s var(--rq-ease), border-color .5s var(--rq-ease);
	isolation: isolate;
}
.rq-btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--rq-ink); transform: scaleY(0); transform-origin: bottom;
	transition: transform .5s var(--rq-ease);
}
.rq-btn--solid { background: var(--rq-ink); color: #0b0b0c; }
.rq-btn--solid::before { background: var(--rq-blood); }
.rq-btn--solid:hover { color: var(--rq-ink); border-color: var(--rq-blood); }
.rq-btn--line:hover { color: #0b0b0c; }
.rq-btn:hover::before { transform: scaleY(1); }
.rq-btn:focus-visible { outline: 1px solid var(--rq-gold); outline-offset: 4px; }

/* ==========================================================================
   Hero — relics in the dark
   Real photographs shot on black, feathered at the edges so their
   backgrounds become the page. A candle (the pointer, or a slow wander when
   idle) lights whatever is near it; dust drifts in its light. Depth sets
   size, brightness, blur, and how far each relic moves with pointer and
   scroll. The darkness and light are two layers above the relics; a relic
   under the pointer rises through them.
   ========================================================================== */
.rq-hero { position: relative; }
.rq-hero__stage {
	position: relative; overflow: hidden; isolation: isolate;
	height: calc(100svh - 70px); min-height: 640px;
	--lx: 50%; --ly: 46%;
	--r: 0px;
	animation: rq-ignite 2.6s cubic-bezier(.3, 0, .2, 1) .15s both, rq-breathe 6s ease-in-out 2.75s infinite;
}
@keyframes rq-ignite {
	0% { --r: 0px; }
	18% { --r: 40px; }
	26% { --r: 28px; }
	100% { --r: max(40vmax, 520px); }
}
@keyframes rq-breathe {
	0%, 100% { --r: max(40vmax, 520px); }
	22% { --r: max(38.5vmax, 500px); }
	41% { --r: max(41vmax, 534px); }
	63% { --r: max(39vmax, 508px); }
	80% { --r: max(41.5vmax, 540px); }
}

/* Relics */
.rq-relic {
	position: absolute; z-index: 1;
	left: calc(var(--x) * 1%); top: calc(var(--y) * 1%);
	width: calc(var(--w) * 1vw);
	transform: translate(-50%, -50%) translate3d(var(--tx, 0px), var(--ty, 0px), 0);
	color: inherit; text-decoration: none;
	will-change: transform;
}
.rq-relic__in {
	display: block;
	animation: rq-emerge 2.4s var(--rq-ease) var(--d, 0s) both;
	transition: transform .9s var(--rq-ease);
}
.rq-relic img {
	width: 100%; height: auto;
	-webkit-mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
	mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
	filter: brightness(calc(.5 + var(--z) * .5)) blur(calc((1 - var(--z)) * 2.4px));
	transition: filter .8s var(--rq-ease);
}
/* Busts were shot on grey; crush it so they sink into the dark too. */
.rq-relic--bust img { filter: brightness(calc(.38 + var(--z) * .4)) contrast(1.45) blur(calc((1 - var(--z)) * 2.4px)); }
@keyframes rq-emerge {
	from { opacity: 0; transform: scale(.9) translateY(24px); filter: blur(14px); }
	to { opacity: 1; transform: none; filter: blur(0); }
}

.rq-relic:hover, .rq-relic:focus-visible { z-index: 3; outline: none; }
.rq-relic:hover .rq-relic__in, .rq-relic:focus-visible .rq-relic__in { transform: scale(1.04); }
.rq-relic:hover img, .rq-relic:focus-visible img { filter: brightness(1.12) contrast(1.05); }
.rq-relic--bust:hover img, .rq-relic--bust:focus-visible img { filter: brightness(.95) contrast(1.4); }
.rq-relic__cap {
	position: absolute; left: 50%; top: 88%; transform: translate(-50%, 8px);
	display: flex; flex-direction: column; align-items: center; gap: 4px;
	white-space: nowrap; pointer-events: none;
	opacity: 0; transition: opacity .5s ease, transform .5s var(--rq-ease);
}
.rq-relic:hover .rq-relic__cap, .rq-relic:focus-visible .rq-relic__cap { opacity: 1; transform: translate(-50%, 0); }
.rq-relic__name { font-family: var(--rq-display); font-size: .95rem; letter-spacing: .16em; text-transform: uppercase; color: var(--rq-ink); text-shadow: 0 2px 12px #000; }
.rq-relic__price { font-family: var(--rq-serif); font-style: italic; font-size: 1rem; color: var(--rq-gold); }
.rq-relic__price del { opacity: .5; margin-right: 6px; }

/* Darkness, with a hole where the candle is. */
.rq-hero__dark {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: rgba(3, 3, 3, .74);
	-webkit-mask-image: radial-gradient(circle var(--r) at var(--lx) var(--ly), transparent 0, transparent 22%, rgba(0, 0, 0, .3) 50%, rgba(0, 0, 0, .85) 82%, #000 100%);
	mask-image: radial-gradient(circle var(--r) at var(--lx) var(--ly), transparent 0, transparent 22%, rgba(0, 0, 0, .3) 50%, rgba(0, 0, 0, .85) 82%, #000 100%);
}
/* The candle's colour on whatever it lights. */
.rq-hero__warm {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: radial-gradient(circle calc(var(--r) * .75) at var(--lx) var(--ly), rgba(255, 178, 96, .13), rgba(255, 130, 70, .04) 50%, transparent 80%);
	mix-blend-mode: screen;
}
.rq-hero__dust { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; pointer-events: none; }

.rq-hero__copy {
	position: absolute; inset: 0; z-index: 4; pointer-events: none;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: 0 24px 7vh;
	transform: translate3d(0, var(--cy, 0px), 0); opacity: var(--co, 1);
}
.rq-hero__copy::before {
	content: ""; position: absolute; left: 50%; top: 46%; width: min(980px, 90vw); height: 46vh;
	transform: translate(-50%, -50%); z-index: -1;
	background: radial-gradient(closest-side, rgba(3, 3, 3, .55), rgba(3, 3, 3, .25) 60%, transparent);
}
.rq-hero__title {
	margin: 0;
	font-family: var(--rq-display); font-weight: 400;
	font-size: clamp(3.4rem, 9.4vw, 9.8rem); line-height: .92;
	text-transform: uppercase; letter-spacing: .01em;
	text-shadow: 0 4px 30px rgba(0, 0, 0, .9), 0 0 80px rgba(0, 0, 0, .7);
}
.mar-lang-ka .rq-hero__title { font-size: clamp(2.8rem, 7vw, 7.2rem); line-height: 1.08; }
.rq-line { display: block; overflow: hidden; padding: 0 .05em .06em; }
.rq-line > .rq-rise { display: inline-block; }

.rq-hero__foot {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 4;
	width: min(1320px, 100% - 48px); margin-inline: auto; padding-bottom: 5vh;
	display: flex; align-items: end; justify-content: space-between; gap: 40px;
	pointer-events: none; opacity: var(--co, 1);
}
.rq-hero__foot > * { pointer-events: auto; }
.rq-hero__lede {
	max-width: 38ch; margin: 0;
	font-family: var(--rq-serif); font-size: clamp(1.05rem, 1.25vw, 1.25rem); line-height: 1.55; color: var(--rq-soft);
	text-shadow: 0 2px 16px #000;
}
.rq-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin: 0; }

/* Entrance */
.rq-rise { opacity: 0; transform: translateY(40px); animation: rq-rise 1.4s var(--rq-ease) forwards; animation-delay: var(--d, 0s); }
.rq-line > .rq-rise { transform: translateY(105%); }
@keyframes rq-rise { to { opacity: 1; transform: none; } }

/* ==========================================================================
   Marquee
   ========================================================================== */
.rq-marquee {
	border-block: 1px solid var(--rq-line); overflow: hidden; padding: 22px 0;
	font-family: var(--rq-display); font-size: clamp(1.1rem, 2vw, 1.6rem);
	text-transform: uppercase; letter-spacing: .14em; color: var(--rq-soft); white-space: nowrap;
}
.rq-marquee__track { display: inline-flex; animation: rq-marquee 60s linear infinite; }
.rq-marquee__track > span { padding-right: .6em; }
.rq-marquee i { font-style: normal; color: var(--rq-blood); margin: 0 .7em; }
@keyframes rq-marquee { to { transform: translateX(-50%); } }

/* ==========================================================================
   Section heads, reveal
   ========================================================================== */
.rq-head { margin-bottom: clamp(40px, 6vw, 72px); }
.rq-head--split { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.is-js .rq-reveal { opacity: 0; transform: translateY(50px); transition: opacity 1.2s var(--rq-ease), transform 1.2s var(--rq-ease); transition-delay: var(--d, 0s); }
.is-js .rq-reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Promises
   ========================================================================== */
.rq-vows { padding: clamp(90px, 12vw, 170px) 0; }
.rq-vows__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 64px); }
.rq-vows__list li:nth-child(2) { margin-top: clamp(40px, 8vw, 120px); }
.rq-vows__img { aspect-ratio: 4 / 5; margin-bottom: 34px; background: #121212; }
.rq-vows__img img { width: 100%; height: 112%; object-fit: cover; }
.rq-vows__num { display: block; margin-bottom: 14px; font-family: var(--rq-display); font-size: 1.1rem; letter-spacing: .3em; color: var(--rq-blood); }
.rq-vows__list h3 { margin: 0 0 12px; font-family: var(--rq-display); font-weight: 400; font-size: 1.35rem; letter-spacing: .14em; text-transform: uppercase; }
.rq-vows__list p { margin: 0; max-width: 34ch; font-family: var(--rq-serif); font-size: 1.2rem; line-height: 1.55; color: var(--rq-soft); }

/* ==========================================================================
   Rail — drifts slowly on its own, pauses under a hand
   ========================================================================== */
.rq-rail { padding: clamp(60px, 8vw, 120px) 0 clamp(80px, 10vw, 140px); border-top: 1px solid var(--rq-line); }
.rq-rail__nav { display: flex; gap: 10px; }
.rq-rail__btn {
	width: 54px; height: 54px; border-radius: 50%;
	background: none; border: 1px solid var(--rq-line); color: var(--rq-ink); font-size: 18px; cursor: pointer;
	transition: border-color .3s, background .3s;
}
.rq-rail__btn:hover { border-color: var(--rq-ink); background: rgba(255, 255, 255, .04); }
.rq-rail__track {
	display: flex; gap: 28px; overflow-x: auto;
	padding: 0 max(24px, (100vw - 1320px) / 2) 20px; scrollbar-width: none; cursor: grab;
	overscroll-behavior-x: contain;
}
.rq-rail__track::-webkit-scrollbar { display: none; }
.rq-rail__track.is-drag { cursor: grabbing; }
.rq-piece { flex: 0 0 clamp(240px, 24vw, 340px); color: inherit; text-decoration: none; }
.rq-piece__media { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #121212; }
.rq-piece__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--rq-ease); pointer-events: none; }
.rq-piece:hover .rq-piece__media img { transform: scale(1.06); }
.rq-piece__tag {
	position: absolute; top: 14px; left: 14px; padding: 6px 10px;
	background: rgba(7, 7, 7, .8); font-family: var(--rq-sans); font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
}
.rq-piece__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 0 14px; border-bottom: 1px solid var(--rq-line); }
.rq-piece__name { font-family: var(--rq-display); font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; }
.rq-piece__price { font-family: var(--rq-serif); font-size: 1.1rem; color: var(--rq-soft); white-space: nowrap; }
.rq-piece__price del { opacity: .5; margin-right: 6px; }
.rq-rail__cta { margin: 48px 0 0; text-align: center; }

/* ==========================================================================
   Categories
   ========================================================================== */
.rq-doors { padding: clamp(80px, 10vw, 140px) 0; border-top: 1px solid var(--rq-line); }
/* One door per category, all in a row; --rq-doors is set inline from the category count. */
.rq-doors__row { display: grid; grid-template-columns: repeat(var(--rq-doors, 5), 1fr); gap: clamp(14px, 2vw, 28px); }
.rq-door { position: relative; display: block; color: inherit; text-decoration: none; text-align: center; }
.rq-door__window { display: block; aspect-ratio: 5 / 8; background: #121212; margin-bottom: 22px; }
.rq-door__window img {
	width: 100%; height: 100%; object-fit: cover;
	filter: grayscale(.6) brightness(.7);
	transform: scale(1.05);
	transition: filter .9s var(--rq-ease), transform 1.4s var(--rq-ease);
}
.rq-door:hover .rq-door__window img, .rq-door:focus-visible .rq-door__window img { filter: none; transform: scale(1.12); }
.rq-door__num {
	position: absolute; top: 18%; left: 50%; transform: translateX(-50%);
	font-family: var(--rq-display); font-size: 1.1rem; color: var(--rq-gold); letter-spacing: .2em;
	opacity: .85; transition: opacity .6s;
}
.rq-door:hover .rq-door__num { opacity: 0; }
.rq-door__name { display: block; font-family: var(--rq-display); font-size: clamp(.82rem, calc(7vw / var(--rq-doors, 5)), 1.25rem); letter-spacing: .14em; text-transform: uppercase; }

/* ==========================================================================
   Closing — a rose window glazed with real pieces
   Twelve lancets, each a product photo with its pendant pointing to the
   centre. The ring turns slowly; pointing at a lancet stops it, dims the
   rest, and names the piece in the medallion.
   ========================================================================== */
.rq-close { position: relative; isolation: isolate; overflow: hidden; padding: clamp(110px, 14vw, 180px) 0 clamp(90px, 10vw, 140px); text-align: center; border-top: 1px solid var(--rq-line); }
.rq-close__head { margin-bottom: clamp(40px, 5vw, 64px); }
.rq-threshold__title {
	margin: 0; font-family: var(--rq-display); font-weight: 400;
	font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: 1.05; text-transform: uppercase;
}
.mar-lang-ka .rq-threshold__title { font-size: clamp(1.9rem, 4vw, 3.6rem); line-height: 1.2; }
.rq-threshold__ctas { justify-content: center; margin-top: clamp(40px, 5vw, 64px); }

.rq-rose { position: relative; width: min(760px, 90vw, 86vh); aspect-ratio: 1; margin-inline: auto; }
.rq-rose__glow {
	position: absolute; inset: -18%; z-index: -1; border-radius: 50%;
	background: radial-gradient(closest-side, rgba(150, 40, 30, .28), rgba(120, 30, 25, .12) 45%, transparent 70%);
	animation: rq-glow 7s ease-in-out infinite;
}
@keyframes rq-glow { 0%, 100% { opacity: .75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } }
.rq-rose__svg { display: block; width: 100%; height: 100%; overflow: visible; }
.rq-rose__ring {
	/* In view-box space 0 0 is the user-space origin, i.e. the window's centre. */
	transform-box: view-box; transform-origin: 0 0;
	animation: rq-turn 240s linear infinite;
}
.rq-rose:hover .rq-rose__ring, .rq-rose:focus-within .rq-rose__ring { animation-play-state: paused; }
@keyframes rq-turn { to { transform: rotate(360deg); } }
.rq-rose__petal image { opacity: .92; transition: opacity .6s ease; }
.rq-rose:hover .rq-rose__petal image, .rq-rose:focus-within .rq-rose__petal image { opacity: .35; }
.rq-rose .rq-rose__petal:hover image, .rq-rose .rq-rose__petal:focus image { opacity: 1; }
.rq-rose__petal:focus { outline: none; }
.rq-rose__petal:focus-visible .rq-rose__lead { stroke: var(--rq-ink); stroke-width: 3; }
.rq-rose__lead { fill: none; stroke: rgba(201, 180, 138, .6); stroke-width: 2; vector-effect: non-scaling-stroke; }
.rq-rose__lead--thin { stroke-width: 1; stroke: rgba(201, 180, 138, .35); }
.rq-rose__petal .rq-rose__lead { transition: stroke .5s; }
.rq-rose__petal:hover .rq-rose__lead { stroke: rgba(233, 230, 224, .95); }
.rq-rose__oculus { stroke: rgba(201, 180, 138, .55); stroke-width: 1.5; vector-effect: non-scaling-stroke; animation: rq-ember 4.6s ease-in-out infinite; }
@keyframes rq-ember { 0%, 100% { opacity: .55; } 50% { opacity: .9; } }
.rq-rose__hub { fill: #070707; }
.rq-rose__medallion {
	position: absolute; left: 50%; top: 50%; width: 25%; aspect-ratio: 1; transform: translate(-50%, -50%);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	pointer-events: none; text-align: center;
}
.rq-rose__cross { font-size: clamp(1.4rem, 3vw, 2.4rem); color: var(--rq-blood); transition: opacity .4s, transform .6s var(--rq-ease); }
.rq-rose__name { font-family: var(--rq-display); font-size: clamp(.7rem, 1.25vw, 1rem); letter-spacing: .14em; text-transform: uppercase; line-height: 1.25; max-width: 90%; }
.rq-rose__price { font-family: var(--rq-serif); font-style: italic; font-size: clamp(.8rem, 1.3vw, 1.05rem); color: var(--rq-gold); }
.rq-rose__name:empty, .rq-rose__price:empty { display: none; }
.rq-rose.is-naming .rq-rose__cross { opacity: 0; transform: scale(.6); position: absolute; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1000px) {
	.rq-doors__row { grid-template-columns: repeat(var(--rq-doors, 5), minmax(150px, 1fr)); overflow-x: auto; padding-bottom: 10px; scrollbar-width: none; }
	.rq-door__name { font-size: .9rem; }
	.rq-hero__foot { flex-direction: column; align-items: center; text-align: center; gap: 22px; }
	.rq-hero__lede { max-width: 52ch; }
}
@media (max-width: 760px) {
	.rq-wrap, .rq-wrap--text { width: calc(100% - 32px); }

	.rq-hero__stage { height: calc(100svh - 64px); min-height: 680px; }
	.rq-relic--wide { display: none; }
	.rq-relic { left: calc(var(--mx) * 1%); top: calc(var(--my) * 1%); width: calc(var(--mw) * 1vw); }
	.rq-relic__cap { display: none; }
	.rq-hero__copy { inset: auto 0 auto 0; top: 30%; padding: 0 16px; }
	.rq-hero__copy::before { top: 50%; height: 260px; }
	.rq-hero__title { font-size: clamp(3rem, 15vw, 4.6rem); }
	.mar-lang-ka .rq-hero__title { font-size: clamp(2.2rem, 10vw, 3.2rem); }
	.rq-hero__foot { width: calc(100% - 32px); padding-bottom: 28px; }
	.rq-hero__ctas { justify-content: center; }

	.rq-head--split { align-items: start; }
	.rq-rail__nav { display: none; }
	.rq-rail__track { padding-inline: 16px; gap: 16px; }
	.rq-piece { flex-basis: 72vw; }
	.rq-vows__list { grid-template-columns: 1fr; gap: 56px; }
	.rq-vows__list li:nth-child(2) { margin-top: 0; }
	.rq-rose__name { font-size: .62rem; letter-spacing: .08em; }
	.rq-rose__price { font-size: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
	.rq *, .rq *::before, .rq *::after { animation: none !important; transition: none !important; }
	.rq-rise, .rq-line > .rq-rise, .rq-reveal { opacity: 1; transform: none; }
	.rq-hero__stage { --r: max(40vmax, 480px); }
}
