/* ------------------------------------------------------------------
   Spinsy Casino PL — arkusz stylów
   Skala typografii TYPO-01, odstępy SPACE-08, kontener CONT-09,
   geometria GEO-04, punkty łamania BP-10.
   ------------------------------------------------------------------ */

/* --- kroje pisma (self-host) --- */
@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/frames/geologica-latin-ext-400.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/frames/geologica-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/frames/geologica-latin-ext-700.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Geologica";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/frames/geologica-latin-700.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/frames/unbounded-latin-ext-400.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/frames/unbounded-latin-400.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("/frames/unbounded-latin-ext-500.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("/frames/unbounded-latin-500.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/frames/unbounded-latin-ext-700.woff2") format("woff2");
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Unbounded";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/frames/unbounded-latin-700.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- tokeny --- */
:root {
	--c-base: #f4c050;
	--c-signal: #f5c550;
	--c-spot-deep: #f1bb2a;
	--c-page: #050505;
	--c-surface-2: #121212;
	--c-glyph: #ffffff;
	--c-dim: #bfbfbf;
	--c-divider: #2a2a2a;
	--c-stroke-heavy: #4a4a4a;
	--c-grad-1: #fcecc7;
	--c-ramp-end: #f7db8c;
	--c-notice: #c1272d;

	--s-2xs: 5px;
	--s-xs: 10px;
	--s-sm: 15px;
	--s-md: 25px;
	--s-lg: 40px;
	--s-xl: 60px;
	--s-2xl: 90px;
	--s-3xl: 140px;

	--r-2xs: 1px;
	--r-xs: 2px;
	--r-sm: 6px;
	--r-md: 8px;
	--r-lg: 14px;
	--r-xl: 20px;
	--r-2xl: 26px;
	--r-3xl: 34px;
	--r-pill: 9999px;
	--r-circle: 50%;

	--f-head: "Geologica", "Trebuchet MS", sans-serif;
	--f-base: "Unbounded", "Segoe UI", sans-serif;

	--z-display-1: clamp(30px, 4.4vw, 64px);
	--z-display-2: clamp(24px, 2.6vw, 40px);
	--z-display-3: 28px;
	--z-md-2: 22px;
	--z-minor: 18px;
	--z-xs-2: 16px;
	--z-copy: 17px;
	--z-petite: 14px;
	--z-legal: 12px;

	--l-close: 1.14;
	--l-base: 1.5;
	--l-open: 1.75;

	--w-normal: 400;
	--w-mid: 500;
	--w-strong: 700;

	--e-snug: -0.02em;
	--e-default: 0;
	--e-wide: 0.04em;

	--d-2xs: 0 1px 1px rgba(0, 0, 0, 0.04);
	--d-xs: 0 1px 2px rgba(0, 0, 0, 0.05);
	--d-sm: 0 2px 4px rgba(0, 0, 0, 0.08);
	--d-md: 0 4px 10px rgba(0, 0, 0, 0.1);
	--d-lg: 0 8px 20px rgba(0, 0, 0, 0.14);
	--d-xl: 0 14px 30px rgba(0, 0, 0, 0.18);
	--d-2xl: 0 20px 42px rgba(0, 0, 0, 0.22);
	--d-3xl: 0 28px 60px rgba(0, 0, 0, 0.26);

	--t-quick: 86ms;
	--t-mid: 190ms;
	--t-long: 301ms;

	--x-settle: cubic-bezier(0.26, 0.8, 0.33, 0.99);
	--x-launch: cubic-bezier(0.5, 0.01, 0.5, 0.99);
	--x-even: cubic-bezier(0.5, 0.01, 0.5, 0.99);
	--x-bounce: cubic-bezier(0.35, 1.5, 0.61, 1);

	--v-full: 1440px;
	--v-inner: 1440px;
	--v-padding-desktop: 48px;
	--v-pad-md: 32px;
	--v-padding-mobile: 16px;

	--b-fine: 1px;
	--b-base: 2px;
	--b-heavy: 3px;

	--h-h-lg: 96px;
	--h-height-mobile: 72px;

	--edge: 530px;
	--shell-h: 96px;
	--sec-y: 44px;
	--rg-h: 34px;
	--pad-x: var(--v-padding-desktop);
}

@media (max-width: 831.98px) {
	:root {
		--z-display-1: clamp(26px, 7.4vw, 36px);
		--z-display-2: clamp(22px, 5.6vw, 28px);
		--z-display-3: 22px;
		--z-md-2: 18px;
		--z-minor: 16px;
		--z-xs-2: 14px;
		--z-copy: 16px;
		--z-petite: 13px;
		--z-legal: 11px;
		--shell-h: 72px;
		--sec-y: 34px;
		--pad-x: var(--v-padding-mobile);
	}
}

@media (min-width: 832px) and (max-width: 1135.98px) {
	:root {
		--pad-x: var(--v-pad-md);
	}
}

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

html,
body {
	overflow-x: clip;
}

html {
	scroll-behavior: smooth;
}

body.site-body {
	background-color: var(--c-page);
	color: var(--c-glyph);
	display: flex;
	flex-direction: column;
	font-family: var(--f-base);
	font-size: var(--z-copy);
	font-weight: var(--w-normal);
	line-height: var(--l-open);
	margin: 0;
	min-height: 100vh;
	padding-block-end: calc(var(--rg-h) + var(--s-xs));
	-webkit-font-smoothing: antialiased;
}

.site-matter {
	display: block;
	flex: 1 0 auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: anywhere;
	margin-block: 0 var(--s-sm);
}

h1 {
	font-family: var(--f-head);
	font-size: var(--z-display-1);
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
	line-height: var(--l-close);
	text-transform: uppercase;
}

h2 {
	font-family: var(--f-head);
	font-size: var(--z-display-2);
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
	line-height: var(--l-close);
}

h3 {
	font-family: var(--f-head);
	font-size: var(--z-display-3);
	font-weight: var(--w-strong);
	line-height: var(--l-close);
}

h4 {
	font-family: var(--f-head);
	font-size: var(--z-md-2);
	font-weight: var(--w-strong);
	line-height: var(--l-close);
}

h5,
h6 {
	font-family: var(--f-base);
	font-weight: var(--w-mid);
	letter-spacing: var(--e-wide);
	text-transform: uppercase;
}

h5 {
	font-size: var(--z-minor);
}

h6 {
	font-size: var(--z-xs-2);
}

p {
	margin-block: 0 var(--s-sm);
	overflow-wrap: anywhere;
}

img {
	max-width: 100%;
}

a {
	color: var(--c-signal);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--t-quick) var(--x-settle);
}

a:hover {
	color: var(--c-spot-deep);
}

svg {
	fill: currentColor;
}

[id] {
	scroll-margin-top: calc(var(--shell-h) + var(--s-xs));
}

/* --- wspólna szerokość sekcji --- */
.antechamber-grave-band,
.brochure-smart-core,
.buffet-sharp-core,
.classeur-plus-core,
.credenza-solid-core,
.crown-prime-core,
.finial-premium-core,
.grove-prime-core,
.pilier-classic-core,
.portal-plus-core,
.rosace-crisp-core,
.sigil-plus-core,
.spire-refined-core,
.trefoil-refined-core,
.turret-apex-core,
.vignette-bright-core {
	margin-inline: auto;
	max-width: calc(var(--v-full) + 2 * var(--v-padding-desktop));
	padding-inline: var(--pad-x);
	width: 100%;
}

/* --- dostępność --- */
.skip-jump {
	background-color: var(--c-signal);
	color: var(--c-page);
	font-family: var(--f-head);
	font-weight: var(--w-strong);
	inset-inline-start: var(--s-md);
	padding: var(--s-xs) var(--s-md);
	position: fixed;
	top: var(--s-xs);
	z-index: 300;
}

.skip-jump:not(:focus) {
	top: -200px !important;
}

.sr-only {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

[data-seen] {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity var(--t-long) var(--x-settle), transform var(--t-long) var(--x-settle);
}

[data-seen].has-entered {
	opacity: 1;
	transform: none;
}

/* ==================================================================
   antechamber-grave — podpis autorki (BYLINE-03)
   ================================================================== */
.antechamber-grave {
	border-block-end: var(--b-fine) solid var(--c-divider);
	padding-block: var(--s-sm);
}

.antechamber-grave-band {
	align-items: center;
	display: flex;
	gap: var(--s-xs);
}

.antechamber-grave-portrait {
	border-radius: var(--r-circle);
	flex-shrink: 0;
	height: 28px;
	object-fit: cover;
	width: 28px;
}

.antechamber-grave-facts {
	color: var(--c-dim);
	font-size: var(--z-petite);
	line-height: var(--l-base);
}

.antechamber-grave-who {
	color: var(--c-signal);
	text-decoration: none;
}

.antechamber-grave-who:hover {
	color: var(--c-spot-deep);
	text-decoration: underline;
}

.antechamber-grave-credit {
	color: var(--c-dim);
}

/* ==================================================================
   brochure-smart — tabela danych (TABLE-01)
   ================================================================== */
.brochure-smart {
	padding-block: var(--sec-y);
}

.brochure-smart-top {
	margin-block-start: 0;
}

.brochure-smart-frame {
	border-radius: var(--r-md);
	overflow-x: auto;
	overflow-y: hidden;
	padding: 0;
}

.brochure-smart-grid {
	background-color: var(--c-surface-2);
	border-collapse: collapse;
	min-width: 520px;
	width: 100%;
}

.brochure-smart-grid th {
	background-color: var(--c-base);
	color: var(--c-page);
	font-family: var(--f-base);
	font-size: var(--z-xs-2);
	font-weight: var(--w-mid);
	letter-spacing: var(--e-wide);
	padding: var(--s-sm) var(--s-md);
	text-align: left;
	text-transform: uppercase;
}

.brochure-smart-grid td {
	background-color: var(--c-surface-2);
	color: var(--c-dim);
	font-size: var(--z-petite);
	line-height: var(--l-base);
	padding: var(--s-sm) var(--s-md);
	text-align: left;
	vertical-align: top;
}

.brochure-smart-lead {
	color: var(--c-glyph);
	font-weight: var(--w-mid);
}

.brochure-smart-row:nth-child(even) td {
	background-color: #1a1a1a;
}

.brochure-smart-row:hover td {
	background-color: #232323;
	transition: background-color var(--t-quick) var(--x-settle);
}

.brochure-smart-cap {
	color: var(--c-dim);
	font-size: var(--z-legal);
	margin-block-start: var(--s-sm);
}

/* ==================================================================
   buffet-sharp — zaczepka tekstowa (INLINE-CTA-03)
   ================================================================== */
.buffet-sharp {
	display: block;
	padding-block: var(--s-md);
}

.buffet-sharp-line {
	font-size: var(--z-xs-2);
	line-height: var(--l-base);
	margin: 0;
	text-align: center;
}

.buffet-sharp-line strong {
	color: var(--c-glyph);
	font-weight: var(--w-strong);
}

.buffet-sharp-route {
	color: var(--c-signal);
	text-decoration: underline;
}

.buffet-sharp-route:hover {
	color: var(--c-spot-deep);
	text-decoration-thickness: 2px;
}

/* ==================================================================
   classeur-plus — pytania i odpowiedzi (FAQ-05)
   ================================================================== */
.classeur-plus {
	padding-block: var(--sec-y);
}

.classeur-plus-top {
	margin-block-start: 0;
}

.classeur-plus-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.classeur-plus-node {
	display: block;
}

.classeur-plus-plate {
	border-block-end: var(--b-fine) solid var(--c-divider);
	padding-block: var(--s-md);
}

.classeur-plus-ask {
	align-items: center;
	cursor: pointer;
	display: grid;
	gap: var(--s-sm);
	grid-template-columns: minmax(0, 1fr) 24px;
	list-style: none;
	min-height: 44px;
}

.classeur-plus-ask::-webkit-details-marker {
	display: none;
}

.classeur-plus-ask::after {
	color: var(--c-signal);
	content: "+";
	font-family: var(--f-head);
	font-size: var(--z-md-2);
	justify-self: end;
	line-height: 1;
}

.classeur-plus-plate[open] .classeur-plus-ask::after {
	content: "−";
}

.classeur-plus-head {
	font-size: var(--z-minor);
	font-weight: var(--w-strong);
	margin: 0;
}

.classeur-plus-ask:hover .classeur-plus-head {
	color: var(--c-signal);
}

.classeur-plus-matter {
	padding-block-start: var(--s-sm);
}

.classeur-plus-prose {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin: 0;
}

/* ==================================================================
   credenza-solid — pierwszy ekran (HERO-12)
   ================================================================== */
.credenza-solid {
	padding-block: var(--sec-y);
	position: relative;
}

.credenza-solid::before {
	background-image: radial-gradient(70% 120% at 50% 0%, rgba(244, 192, 80, 0.12), rgba(5, 5, 5, 0) 70%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.credenza-solid-core {
	position: relative;
}

.credenza-solid-matter {
	padding-block: var(--s-md) 0;
	text-align: center;
}

.credenza-solid-kick {
	color: var(--c-signal);
	display: block;
	font-family: var(--f-base);
	font-size: var(--z-petite);
	font-style: italic;
	letter-spacing: var(--e-wide);
	margin-block-end: var(--s-sm);
}

.credenza-solid-head {
	margin-block-end: var(--s-md);
}

.credenza-solid-lead {
	color: var(--c-dim);
	font-size: var(--z-minor);
	font-style: italic;
	line-height: var(--l-base);
	margin-inline: auto;
	max-width: var(--edge);
}

.credenza-solid-facts {
	color: var(--c-dim);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--z-legal);
	gap: var(--s-sm);
	justify-content: center;
	letter-spacing: var(--e-wide);
	text-transform: uppercase;
}

.credenza-solid-facts span + span::before {
	content: "· ";
}

.credenza-solid-frame {
	margin: var(--s-lg) 0 0;
}

.credenza-solid-art {
	aspect-ratio: 21 / 9;
	border-radius: var(--r-lg);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.credenza-solid-cap {
	color: var(--c-dim);
	font-size: var(--z-legal);
	font-style: italic;
	padding-block-start: var(--s-xs);
	text-align: center;
}

/* ==================================================================
   crown-prime — opinie graczy (REV-10)
   ================================================================== */
.crown-prime {
	padding-block: var(--sec-y);
}

.crown-prime-top {
	margin-block-start: 0;
}

.crown-prime-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.crown-prime-node {
	display: block;
}

.crown-prime-plate {
	border-block-end: var(--b-fine) dotted var(--c-stroke-heavy);
	display: block;
	padding-block: var(--s-md);
	transition: box-shadow var(--t-mid) var(--x-settle);
}

.crown-prime-plate:hover {
	box-shadow: var(--d-md);
}

.crown-prime-facts {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-xs);
}

.crown-prime-who {
	font-size: var(--z-copy);
	font-weight: var(--w-mid);
}

.crown-prime-score {
	color: var(--c-dim);
	font-size: var(--z-petite);
	letter-spacing: var(--e-wide);
}

.crown-prime-quote {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin: var(--s-xs) 0 0;
}

.crown-prime-hook,
.classeur-plus-hook {
	display: block;
	padding-block: var(--s-md);
}

/* ==================================================================
   finial-premium — stopka (FOOT-08 Newspaper Masthead)
   ================================================================== */
.finial-premium {
	background-color: var(--c-page);
	padding-block: var(--s-xl) var(--s-md);
}

.finial-premium-masthead {
	align-items: baseline;
	border-block: 4px double var(--c-glyph);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-sm);
	justify-content: space-between;
	padding-block: var(--s-sm);
}

.finial-premium-badge {
	color: var(--c-glyph);
	font-family: var(--f-head);
	font-size: 30px;
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
	text-decoration: none;
}

.finial-premium-glyph {
	color: var(--c-signal);
}

.finial-premium-word {
	color: var(--c-glyph);
}

.finial-premium-issue {
	color: var(--c-dim);
	font-size: var(--z-legal);
	letter-spacing: var(--e-wide);
	margin: 0;
	text-transform: uppercase;
}

.finial-premium-grid {
	display: grid;
	gap: var(--s-md);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding-block: var(--s-md);
}

.finial-premium-lane {
	display: block;
}

.finial-premium-top {
	font-family: var(--f-head);
	font-size: var(--z-xs-2);
	letter-spacing: var(--e-wide);
	margin-block: 0 var(--s-xs);
	text-transform: uppercase;
}

.finial-premium-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.finial-premium-node {
	padding-block: 3px;
}

.finial-premium-route {
	color: var(--c-dim);
	font-size: var(--z-petite);
	text-decoration: none;
}

.finial-premium-route:hover {
	color: var(--c-signal);
	text-decoration: underline;
}

.finial-premium-prose {
	color: var(--c-dim);
	font-size: var(--z-petite);
	margin-block: 0 var(--s-xs);
}

.finial-premium-flag {
	background-color: var(--c-surface-2);
	border-radius: var(--r-sm);
	color: var(--c-dim);
	font-size: var(--z-legal);
	margin-block-start: var(--s-xs);
	padding: var(--s-xs);
}

.finial-premium-bottom {
	align-items: center;
	border-block-start: var(--b-fine) solid var(--c-divider);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-xs);
	justify-content: center;
	padding-block-start: var(--s-sm);
	text-align: center;
}

.finial-premium-fine {
	color: var(--c-dim);
	font-size: var(--z-legal);
}

/* ==================================================================
   grove-prime — lista atutów (GRID-02 Numbered Vertical Strip)
   ================================================================== */
.grove-prime {
	padding-block: var(--sec-y);
}

.grove-prime-top {
	margin-block-start: 0;
}

.grove-prime-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.grove-prime-node {
	border-block-end: var(--b-fine) solid var(--c-divider);
	display: grid;
	gap: var(--s-md);
	grid-template-columns: 80px minmax(0, 1fr);
	padding-block: var(--s-md);
}

.grove-prime-num {
	align-self: start;
	color: var(--c-signal);
	font-family: var(--f-head);
	font-size: var(--z-display-1);
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
	line-height: 1;
	transition: transform var(--t-mid) var(--x-settle);
	width: 80px;
}

.grove-prime-node:hover .grove-prime-num {
	transform: scale(1.1);
}

.grove-prime-matter {
	display: block;
}

.grove-prime-head {
	align-items: center;
	display: flex;
	gap: var(--s-xs);
	margin-block: 0 var(--s-xs);
}

.grove-prime-glyph {
	color: var(--c-signal);
	flex-shrink: 0;
	height: 26px;
	width: 26px;
}

.grove-prime-word {
	display: inline-block;
}

.grove-prime-prose {
	color: var(--c-dim);
	line-height: var(--l-open);
}

.grove-prime-hook {
	border-block-end: none;
	display: block;
	padding-block: var(--s-md);
}

/* ==================================================================
   loggia-grand — komunikat cookie (COOK-01 Bottom Floating Pill)
   ================================================================== */
.loggia-grand {
	display: none;
	inset-block-end: calc(var(--rg-h) + var(--s-sm));
	inset-inline: var(--s-md);
	margin-inline: auto;
	max-width: var(--edge);
	opacity: 0;
	position: fixed;
	transition: opacity var(--t-long) var(--x-even);
	visibility: hidden;
	z-index: 90;
}

.loggia-grand.is-visible {
	display: block;
	opacity: 1;
	visibility: visible;
}

.loggia-grand-hold {
	align-items: center;
	background-color: var(--c-surface-2);
	border: var(--b-fine) solid var(--c-stroke-heavy);
	border-radius: var(--r-md);
	box-shadow: var(--d-md);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-sm);
	padding: var(--s-md);
}

.loggia-grand-note {
	color: var(--c-dim);
	flex: 1 1 260px;
	font-size: var(--z-petite);
	line-height: var(--l-base);
	margin: 0;
}

.loggia-grand-controls {
	display: flex;
	gap: var(--s-xs);
}

.loggia-grand-agree {
	align-items: center;
	background-color: var(--c-signal);
	border: none;
	border-radius: var(--r-md);
	color: var(--c-page);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--f-head);
	font-size: var(--z-legal);
	font-weight: var(--w-strong);
	justify-content: center;
	letter-spacing: var(--e-wide);
	min-height: 40px;
	padding-inline: var(--s-md);
	text-transform: uppercase;
	transition: background-color var(--t-quick) var(--x-settle);
}

.loggia-grand-agree:hover {
	background-color: var(--c-spot-deep);
	color: var(--c-page);
}

.loggia-grand-reject {
	align-items: center;
	background-color: #1e1e1e;
	border: var(--b-fine) solid var(--c-stroke-heavy);
	border-radius: var(--r-md);
	color: var(--c-glyph);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--f-head);
	font-size: var(--z-legal);
	font-weight: var(--w-strong);
	justify-content: center;
	letter-spacing: var(--e-wide);
	min-height: 40px;
	padding-inline: var(--s-md);
	text-transform: uppercase;
}

.loggia-grand-reject:hover {
	background-color: #2a2a2a;
	color: var(--c-glyph);
}

/* ==================================================================
   parquet-classic — szapka (HEAD-OVER, sticky)
   ================================================================== */
.parquet-classic {
	background-color: rgba(5, 5, 5, 0);
	color: var(--c-glyph);
	margin-block-end: calc(var(--shell-h) * -1);
	position: sticky;
	top: 0;
	transition: background-color var(--t-mid) var(--x-settle), box-shadow var(--t-mid) var(--x-settle);
	z-index: 100;
}

.parquet-classic.is-stuck {
	background-color: #050505;
	box-shadow: var(--d-lg);
}

.parquet-classic-hold {
	align-items: center;
	display: flex;
	gap: var(--s-md);
	margin-inline: auto;
	max-width: calc(var(--v-full) + 2 * var(--v-padding-desktop));
	min-height: 96px;
	padding-inline: var(--s-lg);
	width: 100%;
}

.parquet-classic-badge {
	color: var(--c-glyph);
	display: inline-block;
	flex-shrink: 0;
	font-family: var(--f-head);
	font-size: 26px;
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
	text-decoration: none;
}

.parquet-classic-glyph {
	color: var(--c-signal);
}

.parquet-classic-word {
	color: var(--c-glyph);
}

.parquet-classic-trigger {
	align-items: center;
	background-color: transparent;
	border: none;
	color: var(--c-glyph);
	cursor: pointer;
	display: none;
	height: 44px;
	justify-content: center;
	margin-left: auto;
	padding: 0;
	width: 44px;
}

.parquet-classic-lines {
	background-color: var(--c-glyph);
	border-radius: var(--r-circle);
	box-shadow: 0 -8px 0 0 var(--c-glyph), 0 8px 0 0 var(--c-glyph);
	display: block;
	height: 4px;
	width: 4px;
}

.parquet-classic-bar {
	display: block;
	margin-left: auto;
	min-width: 0;
}

.parquet-classic-list {
	align-items: center;
	display: flex;
	gap: var(--s-xs);
	list-style: none;
	margin: 0;
	padding: 0;
}

.parquet-classic-node {
	display: block;
}

.parquet-classic-node[hidden] {
	display: none;
}

.parquet-classic-route {
	color: var(--c-glyph);
	display: inline-flex;
	align-items: center;
	font-family: var(--f-base);
	font-size: 15px;
	font-weight: 600;
	min-height: 44px;
	padding-inline: var(--s-xs);
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
}

.parquet-classic-route:hover {
	color: var(--c-glyph);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

.parquet-classic-route.is-live {
	color: var(--c-signal);
}

.parquet-classic-spare {
	position: relative;
}

.parquet-classic-more-trigger {
	background-color: transparent;
	border: none;
	color: var(--c-glyph);
	cursor: pointer;
	font-family: var(--f-base);
	font-size: 15px;
	font-weight: 600;
	min-height: 44px;
	padding-inline: var(--s-xs);
	white-space: nowrap;
}

.parquet-classic-more-trigger:hover {
	color: var(--c-signal);
}

.parquet-classic-more-menu {
	background-color: var(--c-surface-2);
	border: var(--b-fine) solid var(--c-stroke-heavy);
	border-radius: var(--r-md);
	box-shadow: var(--d-lg);
	display: none;
	inset-inline-end: 0;
	list-style: none;
	margin: 0;
	min-width: 220px;
	padding: var(--s-xs);
	position: absolute;
	top: 100%;
	z-index: 120;
}

.parquet-classic-more-menu.is-open {
	display: block;
}

.parquet-classic-more-menu .parquet-classic-route {
	color: var(--c-glyph);
	display: flex;
	padding-inline: var(--s-xs);
	width: 100%;
}

.parquet-classic-geo {
	border: var(--b-fine) solid var(--c-stroke-heavy);
	border-radius: var(--r-sm);
	color: var(--c-dim);
	flex-shrink: 0;
	font-size: var(--z-legal);
	letter-spacing: var(--e-wide);
	padding: 3px 8px;
}

.parquet-classic-slide {
	background-color: #0b0b0b;
	border-block-start: var(--b-fine) solid var(--c-divider);
	display: none;
}

.parquet-classic-slide.is-open {
	display: block;
}

.parquet-classic-slide-bar {
	display: block;
}

.parquet-classic-slide-list {
	list-style: none;
	margin: 0;
	padding: 0 var(--pad-x) var(--s-sm);
}

.parquet-classic-slide-node {
	display: block;
}

.parquet-classic-slide-route {
	border-block-end: var(--b-fine) solid var(--c-divider);
	color: var(--c-glyph);
	display: flex;
	align-items: center;
	font-size: var(--z-xs-2);
	font-weight: 600;
	min-height: 48px;
	text-decoration: none;
}

.parquet-classic-slide-route.is-live {
	color: var(--c-signal);
}

@media (max-width: 1135.98px) {
	.parquet-classic-hold {
		gap: var(--s-sm);
		min-height: 72px;
		padding-inline: var(--pad-x);
	}

	.parquet-classic-badge {
		font-size: 22px;
	}

	.parquet-classic-bar {
		display: none;
	}

	.parquet-classic-trigger {
		display: inline-flex;
		order: 3;
	}

	.parquet-classic-geo {
		margin-left: auto;
		order: 2;
	}
}

@media (min-width: 1136px) {
	.parquet-classic-slide {
		display: none !important;
	}
}

/* ==================================================================
   pilier-classic — okruszki (BREAD-06 Background Bar)
   ================================================================== */
.pilier-classic {
	background-color: var(--c-surface-2);
	display: block;
	padding-block: var(--s-sm);
}

.pilier-classic-route {
	color: var(--c-dim);
	font-size: var(--z-petite);
	text-decoration: none;
}

.pilier-classic-route:hover {
	color: var(--c-signal);
	text-decoration: underline;
}

.pilier-classic-sep {
	color: var(--c-dim);
	padding-inline: 6px;
}

.pilier-classic-live {
	color: var(--c-glyph);
	font-size: var(--z-petite);
}

/* ==================================================================
   portal-plus — tekst główny (PROSE-26: linia wzdłuż całego działu)
   ================================================================== */
.portal-plus {
	padding-block: var(--sec-y);
}

.portal-plus-matter {
	border-inline-start: var(--b-fine) dotted var(--c-stroke-heavy);
	padding-inline-start: var(--s-sm);
}

.portal-plus-head {
	font-size: var(--z-display-3);
	font-weight: var(--w-normal);
	letter-spacing: var(--e-default);
	margin-block: 0 var(--s-sm);
}

.portal-plus-prose {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin-block: 0 var(--s-sm);
}

.portal-plus-prose strong {
	color: var(--c-glyph);
}

.portal-plus-route {
	color: var(--c-signal);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.portal-plus-route:hover {
	color: var(--c-spot-deep);
	text-decoration-thickness: 2px;
}

.portal-plus-list,
.portal-plus-steps {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin-block: 0 var(--s-sm);
	padding-inline-start: var(--s-md);
}

.portal-plus-node {
	margin-block-end: var(--s-2xs);
}

.portal-plus-node strong {
	color: var(--c-glyph);
}

.portal-plus-frame {
	display: block;
	margin: var(--s-md) 0;
}

.portal-plus-art {
	border-radius: var(--r-md);
	display: block;
	height: auto;
}

.portal-plus-frame.is-square .portal-plus-art {
	aspect-ratio: 1 / 1;
	margin-inline: auto;
	max-width: 520px;
	object-fit: contain;
	width: 100%;
}

.portal-plus-frame.is-wide .portal-plus-art {
	aspect-ratio: 3 / 2;
	max-width: 760px;
	object-fit: cover;
	width: 100%;
}

.portal-plus-frame.is-tall .portal-plus-art {
	aspect-ratio: 2 / 3;
	margin-inline: auto;
	max-height: 56vh;
	object-fit: cover;
	width: auto;
}

.portal-plus-cap {
	color: var(--c-dim);
	font-size: var(--z-legal);
	font-style: italic;
	padding-block-start: var(--s-2xs);
}

.portal-plus-offer-slot,
.grove-prime-offer-slot,
.crown-prime-offer-slot,
.classeur-plus-offer-slot {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-xs) var(--s-sm);
	margin-block: var(--s-md);
}

.portal-plus-offer,
.grove-prime-offer,
.crown-prime-offer,
.classeur-plus-offer {
	flex-shrink: 0;
}

.portal-plus-warn,
.grove-prime-warn,
.crown-prime-warn,
.classeur-plus-warn,
.rosace-crisp-warn {
	color: var(--c-dim);
	font-size: var(--z-legal);
	letter-spacing: var(--e-wide);
}

/* ==================================================================
   rg-strip — pasek 18+ (RG-06: przyklejony na dole)
   ================================================================== */
.rg-strip {
	background-color: var(--c-notice);
	color: #ffffff;
	display: block;
	font-size: var(--z-legal);
	inset-block-end: 0;
	inset-inline: 0;
	letter-spacing: var(--e-wide);
	line-height: 1.4;
	margin: 0;
	padding: 8px var(--s-sm);
	pointer-events: none;
	position: fixed;
	text-align: center;
	z-index: 95;
}

.rg-strip-route {
	background-color: var(--c-notice);
	color: #ffffff;
	display: inline-block;
	pointer-events: auto;
	white-space: nowrap;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.rg-strip-route:hover {
	background-color: var(--c-notice);
	color: #ffffff;
	text-decoration-thickness: 2px;
}

/* ==================================================================
   rosace-crisp — wezwanie do działania (CTA-02)
   ================================================================== */
.rosace-crisp {
	padding-block: var(--sec-y);
}

.rosace-crisp-plate {
	background-color: #14110a;
	border: var(--b-fine) solid #3a3116;
	border-radius: var(--r-lg);
	margin-inline: auto;
	max-width: var(--edge);
	padding: var(--s-lg) var(--s-md);
	text-align: center;
}

.rosace-crisp-head {
	color: var(--c-glyph);
	margin-block-start: 0;
}

.rosace-crisp-prose {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin-block: var(--s-sm) var(--s-md);
}

.rosace-crisp-warn {
	display: block;
	margin-block-start: var(--s-xs);
}

/* ==================================================================
   sigil-plus — karta autorki (AUTH-05 Compact Inline)
   ================================================================== */
.sigil-plus {
	display: block;
	padding-block: var(--s-md);
}

.sigil-plus-plate {
	background-color: var(--c-surface-2);
	border-radius: var(--r-md);
	display: flex;
	gap: var(--s-sm);
	max-width: 480px;
	padding: var(--s-md);
}

.sigil-plus-portrait {
	border-radius: var(--r-circle);
	flex-shrink: 0;
	height: 56px;
	object-fit: cover;
	width: 56px;
}

.sigil-plus-matter {
	display: flex;
	flex-direction: column;
	gap: var(--s-2xs);
}

.sigil-plus-credit {
	color: var(--c-signal);
	font-size: var(--z-legal);
	letter-spacing: var(--e-wide);
	text-transform: uppercase;
}

.sigil-plus-who {
	font-size: var(--z-copy);
	font-weight: var(--w-strong);
}

.sigil-plus-prose {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	color: var(--c-dim);
	display: -webkit-box;
	font-size: var(--z-petite);
	line-height: var(--l-base);
	margin: 0;
	overflow: hidden;
}

.sigil-plus-articles {
	padding-block-start: var(--s-md);
}

.sigil-plus-top {
	font-size: var(--z-md-2);
	margin-block: 0 var(--s-xs);
}

.sigil-plus-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sigil-plus-node {
	border-block-end: var(--b-fine) solid var(--c-divider);
	padding-block: var(--s-xs);
}

.sigil-plus-route {
	color: var(--c-signal);
	font-size: var(--z-petite);
	text-decoration: none;
}

.sigil-plus-route:hover {
	color: var(--c-spot-deep);
	text-decoration: underline;
}

/* ==================================================================
   spire-refined — formularz kontaktowy (FORM-04)
   ================================================================== */
.spire-refined {
	display: block;
	padding-block: var(--sec-y);
}

.spire-refined-intro {
	color: var(--c-dim);
	line-height: var(--l-open);
}

.spire-refined-shape {
	align-items: end;
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-sm);
}

.spire-refined-line {
	display: flex;
	flex: 1 1 260px;
	flex-direction: column;
	gap: var(--s-2xs);
}

.spire-refined-wide {
	flex: 1 1 100%;
}

.spire-refined-tag {
	color: var(--c-dim);
	font-size: var(--z-legal);
	letter-spacing: var(--e-wide);
	text-transform: uppercase;
}

.spire-refined-input,
.spire-refined-area {
	background-color: var(--c-surface-2);
	border: var(--b-fine) solid var(--c-stroke-heavy);
	border-radius: var(--r-sm);
	color: var(--c-glyph);
	font-family: var(--f-base);
	font-size: var(--z-xs-2);
	min-height: 48px;
	padding: var(--s-xs) var(--s-sm);
	width: 100%;
}

.spire-refined-area {
	line-height: var(--l-base);
	min-height: 140px;
	resize: vertical;
}

.spire-refined-input:focus,
.spire-refined-area:focus {
	border-color: var(--c-signal);
	outline: none;
}

.spire-refined-press {
	align-items: center;
	background-color: var(--c-signal);
	border: none;
	border-radius: var(--r-md);
	color: var(--c-page);
	cursor: pointer;
	display: inline-flex;
	font-family: var(--f-head);
	font-size: var(--z-xs-2);
	font-weight: var(--w-strong);
	justify-content: center;
	letter-spacing: var(--e-wide);
	min-height: 48px;
	padding-inline: var(--s-md);
	text-transform: uppercase;
}

.spire-refined-press:hover {
	background-color: var(--c-spot-deep);
	color: var(--c-page);
}

.spire-refined-note {
	background-color: #10240f;
	border-radius: var(--r-sm);
	color: #d9f2d7;
	margin-block-start: var(--s-sm);
	padding: var(--s-sm);
}

/* ==================================================================
   trefoil-refined — dokumenty prawne (LEGAL-06 Compact Multi-Page)
   ================================================================== */
.trefoil-refined {
	background-color: var(--c-page);
	padding-block: var(--s-xl);
}

.trefoil-refined-core {
	counter-reset: part;
}

.trefoil-refined-part {
	display: block;
	padding-block-end: var(--s-md);
}

.trefoil-refined-head {
	font-size: var(--z-md-2);
	margin-block: 0 var(--s-xs);
}

.trefoil-refined-head::before {
	color: var(--c-signal);
	content: "§ " counter(part) ". ";
	counter-increment: part;
}

.trefoil-refined-prose {
	color: var(--c-dim);
	font-size: var(--z-petite);
	line-height: var(--l-open);
	margin-block: 0 var(--s-xs);
}

.trefoil-refined-list {
	color: var(--c-dim);
	font-size: var(--z-petite);
	line-height: var(--l-open);
	margin: 0;
	padding-inline-start: var(--s-md);
}

.trefoil-refined-node {
	margin-block-end: var(--s-2xs);
}

.trefoil-refined-fine {
	background-color: var(--c-surface-2);
	border-radius: var(--r-sm);
	color: var(--c-dim);
	font-size: var(--z-legal);
	line-height: var(--l-base);
	padding: var(--s-sm);
}

/* ==================================================================
   turret-apex — strona 404 (ERR-03 Minimal No-Drama)
   ================================================================== */
.turret-apex {
	padding-block: var(--s-2xl);
}

.turret-apex-matter {
	margin-inline: auto;
	max-width: var(--edge);
	text-align: center;
}

.turret-apex-kick {
	color: var(--c-signal);
	display: block;
	font-family: var(--f-head);
	font-size: var(--z-md-2);
	letter-spacing: var(--e-wide);
	margin-block-end: var(--s-xs);
}

.turret-apex-head {
	font-size: var(--z-display-2);
	text-transform: none;
}

.turret-apex-prose {
	color: var(--c-dim);
	line-height: var(--l-open);
	margin-block: var(--s-sm) var(--s-md);
}

.turret-apex-press {
	align-items: center;
	background-color: var(--c-signal);
	border-radius: var(--r-md);
	color: var(--c-page);
	display: inline-flex;
	font-family: var(--f-head);
	font-weight: var(--w-strong);
	justify-content: center;
	letter-spacing: var(--e-wide);
	min-height: 44px;
	padding-inline: var(--s-md);
	text-decoration: none;
	text-transform: uppercase;
}

.turret-apex-press:hover {
	background-color: var(--c-spot-deep);
	color: var(--c-page);
}

/* ==================================================================
   vignette-bright — nagłówek strony (PHEAD-04 Two-Column)
   ================================================================== */
.vignette-bright {
	padding-block: var(--sec-y);
}

.vignette-bright-core {
	display: grid;
	gap: var(--s-md);
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
}

.vignette-bright-matter {
	display: block;
}

.vignette-bright-kick {
	color: var(--c-signal);
	display: block;
	font-size: var(--z-petite);
	letter-spacing: var(--e-wide);
	margin-block-end: var(--s-xs);
	text-transform: uppercase;
}

.vignette-bright-head {
	margin: 0;
}

.vignette-bright-prose {
	align-self: end;
	color: var(--c-dim);
	line-height: var(--l-open);
	margin: 0;
}

@media (max-width: 831.98px) {
	.vignette-bright-core {
		grid-template-columns: minmax(0, 1fr);
	}

	.finial-premium-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.grove-prime-node {
		gap: var(--s-sm);
		grid-template-columns: 54px minmax(0, 1fr);
	}

	.grove-prime-num {
		font-size: 34px;
		width: 54px;
	}

	.credenza-solid-art {
		aspect-ratio: 4 / 3;
	}
}

/* --- pierwszy blok pod przezroczystą szapką --- */
.is-lead {
	padding-block-start: var(--shell-h);
}

/* --- mobilny komunikat cookie --- */
@media (max-width: 720px) {
	.loggia-grand,
	.loggia-grand-hold {
		font-size: 13px !important;
		gap: 8px !important;
		line-height: 1.35 !important;
		padding: 12px 14px !important;
	}

	.loggia-grand-hold {
		flex-direction: column;
		align-items: stretch;
	}

	.loggia-grand-controls {
		gap: 8px !important;
	}

	.loggia-grand-agree,
	.loggia-grand-reject {
		flex: 1 1 auto;
		font-size: 12px !important;
		min-height: 38px !important;
		padding: 8px 14px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.001ms !important;
	}

	[data-seen] {
		opacity: 1;
		transform: none;
	}
}

/* ==================================================================
   arch-act — przycisk ofertowy (oprawa i animacja ze scripts/cta-style.mjs)
   ================================================================== */
.arch-act {
	align-items: center;
	border-radius: var(--r-md);
	display: inline-flex;
	font-weight: var(--w-strong);
	justify-content: center;
	letter-spacing: var(--e-wide);
	min-height: 44px;
	padding: 0 var(--s-md);
}

.arch-act {
	background: #7C3AED;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.24);
	color: #FFFFFF;
	font-family: var(--f-head);
	overflow: hidden;
	position: relative;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background var(--t-mid) var(--x-settle);
}

.arch-act.arch-act {
	color: #FFFFFF;
	text-decoration: none;
}

.arch-act:hover {
	animation: none;
	background: #6D28D9;
	color: #FFFFFF;
}

.arch-act.arch-act:hover {
	color: #FFFFFF;
	text-decoration: none;
}

.arch-act:hover::after {
	animation: none;
}

.arch-act:active {
	background: #5B21B6;
	color: #FFFFFF;
}

.arch-act:focus-visible {
	outline: 3px solid var(--c-glyph);
	outline-offset: 3px;
}

.arch-act::after {
	animation: arch-wake 2s ease-in-out infinite;
	background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .42) 50%, transparent 100%);
	bottom: 0;
	content: "";
	left: 0;
	pointer-events: none;
	position: absolute;
	top: 0;
	transform: translateX(-160%);
	width: 45%;
}

@keyframes arch-wake {
	0% {
		transform: translateX(-160%);
	}

	60.000%,
	100% {
		transform: translateX(330%);
	}
}

.rosace-crisp-offer.arch-act {
	min-height: 52px;
	padding-inline: var(--s-lg);
}

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

/* --- przycisk ofertowy na bardzo wąskich ekranach --- */
@media (max-width: 480px) {
	.arch-act {
		font-size: var(--z-legal);
		letter-spacing: var(--e-default);
		padding: 8px var(--s-sm);
		text-align: center;
	}

	.rosace-crisp-offer.arch-act {
		padding-inline: var(--s-md);
	}

	.portal-plus-offer-slot,
	.grove-prime-offer-slot,
	.crown-prime-offer-slot,
	.classeur-plus-offer-slot {
		gap: var(--s-2xs) var(--s-xs);
	}
}

@media (max-width: 1175px) {
  .parquet-classic-bar,
  .parquet-classic-list,
  .parquet-classic-route { display: none !important; }
  .parquet-classic-trigger { display: flex !important; }
}

/* nojs guard 28.09.2026: без JS контент виден */
html.no-js [data-seen]{opacity:1!important;transform:none!important;visibility:visible!important;clip-path:none!important}
