/* ==========================================================================
   Boomerang Casino — φύλλο στυλ ιστότοπου
   Σειρά κανόνων: tokens → γραμματοσειρές → reset → βάση → σκελετός →
   συστατικά → βοηθητικά (by-cascade)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens — όλα τα μεγέθη, χρώματα και χρόνοι της σύνθεσης
   -------------------------------------------------------------------------- */
:root {
	/* χρώματα */
	--t-base: #0c1216;
	--t-highlight: #ffd134;
	--t-press: #feb906;
	--t-backdrop: #090e13;
	--t-bg-elevated: #131c23;
	--t-glyph: #ffffff;
	--t-quiet: #bfbdbd;
	--t-border: #27323c;
	--t-border-strong: #3d4b57;
	--t-gradient-light: #1b1d22;
	--t-gradient-mid: #fc4962;
	--t-rg-banner: #ad2831;

	/* γραμματοσειρές */
	--f-head: 'Noto Serif', Georgia, 'Times New Roman', serif;
	--f-copy: 'Fira Sans', 'Helvetica Neue', Arial, sans-serif;

	/* κλίμακα κειμένου */
	--z-xxl: 52px;
	--z-xl-2: 32px;
	--z-display-3: 24px;
	--z-h4: 19px;
	--z-h5: 16px;
	--z-micro-head: 14px;
	--z-body: 17px;
	--z-sm: 14px;
	--z-legal: 12px;

	--l-compact: 1.15;
	--l-default: 1.55;
	--l-relaxed: 1.7;

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

	--e-snug: 0;
	--e-regular: 0;
	--e-airy: 0.02em;

	/* αποστάσεις */
	--s-2xs: 2px;
	--s-xs: 6px;
	--s-sm: 10px;
	--s-md: 16px;
	--s-lg: 48px;
	--s-xl: 80px;
	--s-2xl: 128px;
	--s-3xl: 200px;

	/* γεωμετρία */
	--r-2xs: 2px;
	--r-xs: 4px;
	--r-sm: 8px;
	--r-md: 12px;
	--r-lg: 20px;
	--r-xl: 28px;
	--r-2xl: 34px;
	--r-3xl: 44px;
	--r-stadium: 9999px;
	--r-circle: 50%;

	--b-thin: 1px;
	--b-mid: 2px;
	--b-strong: 3px;

	--d-xs: 0 1px 2px rgba(0, 0, 0, 0.26);
	--d-sm: 0 2px 6px rgba(0, 0, 0, 0.32);
	--d-md: 0 6px 18px rgba(0, 0, 0, 0.42);
	--d-lg: 0 12px 32px rgba(0, 0, 0, 0.5);
	--d-xl: 0 20px 48px rgba(0, 0, 0, 0.56);

	/* κίνηση */
	--t-brisk: 165ms;
	--t-steady: 280ms;
	--t-slow: 529ms;
	--x-out: cubic-bezier(0.18, 0.93, 0.41, 0.92);
	--x-launch: cubic-bezier(0.49, 0.1, 0.6, 0.94);
	--x-in-out: cubic-bezier(0.49, 0.1, 0.6, 0.94);
	--x-overshoot: cubic-bezier(0.39, 1.6, 0.64, 1.25);

	/* πλάτη */
	--v-max: 1320px;
	--v-inner: 1320px;
	--v-pad-lg: 48px;
	--v-inset-tablet: 32px;
	--v-padding-mobile: 16px;

	/* ύψη κεφαλίδας */
	--h-size-desktop: 88px;
	--h-height-mobile: 64px;

	/* δικά της σύνθεσης */
	--sec-y: 48px;
	--tray-h: 56px;
	--gauge-narrow: 640px;
}

/* --------------------------------------------------------------------------
   2. Γραμματοσειρές — φιλοξενούνται τοπικά (ελληνικό + λατινικό υποσύνολο)
   -------------------------------------------------------------------------- */
@font-face {
	font-family: 'Noto Serif';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('/typeface/noto-serif-greek-400-normal.woff2') format('woff2');
	unicode-range: U+0370-03FF, U+1F00-1FFF;
}

@font-face {
	font-family: 'Noto Serif';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('/typeface/noto-serif-latin-400-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Noto Serif';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('/typeface/noto-serif-greek-700-normal.woff2') format('woff2');
	unicode-range: U+0370-03FF, U+1F00-1FFF;
}

@font-face {
	font-family: 'Noto Serif';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('/typeface/noto-serif-latin-700-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('/typeface/fira-sans-greek-400-normal.woff2') format('woff2');
	unicode-range: U+0370-03FF, U+1F00-1FFF;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('/typeface/fira-sans-latin-400-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('/typeface/fira-sans-greek-500-normal.woff2') format('woff2');
	unicode-range: U+0370-03FF, U+1F00-1FFF;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('/typeface/fira-sans-latin-500-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('/typeface/fira-sans-greek-700-normal.woff2') format('woff2');
	unicode-range: U+0370-03FF, U+1F00-1FFF;
}

@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('/typeface/fira-sans-latin-700-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF, U+FFFD;
}

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

html,
body {
	overflow-x: clip;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-block-start: 180px;
}

body {
	margin: 0;
	background: var(--t-backdrop);
	color: var(--t-glyph);
	font-family: var(--f-copy);
	font-size: var(--z-body);
	font-weight: var(--w-normal);
	line-height: var(--l-default);
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	overflow-wrap: anywhere;
	font-family: var(--f-head);
	line-height: var(--l-compact);
	color: var(--t-glyph);
}

h1 {
	font-size: clamp(28px, 5vw, var(--z-xxl));
	font-weight: var(--w-strong);
	letter-spacing: var(--e-snug);
}

h2 {
	font-size: clamp(24px, 3.4vw, var(--z-xl-2));
	font-weight: var(--w-strong);
}

h3 {
	font-family: var(--f-copy);
	font-size: var(--z-display-3);
	font-weight: var(--w-demi);
}

h4 {
	font-family: var(--f-copy);
	font-size: var(--z-h4);
	font-weight: var(--w-demi);
}

h5,
h6 {
	font-family: var(--f-copy);
	font-weight: var(--w-demi);
}

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

h6 {
	font-size: var(--z-micro-head);
}

p {
	margin: 0 0 var(--s-md);
	color: var(--t-quiet);
}

ul,
ol {
	margin: 0;
	padding: 0;
}

li {
	list-style: none;
}

img {
	max-width: 100%;
	display: block;
}

blockquote {
	margin: 0;
}

figure {
	margin: 0;
}

table {
	border-collapse: collapse;
}

a {
	color: var(--t-highlight);
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-size: 0 1px;
	background-position: 0 100%;
	transition: background-size var(--t-brisk) var(--x-out), color var(--t-brisk) var(--x-out);
}

a:hover {
	color: var(--t-press);
	background-size: 100% 1px;
}

button {
	font-family: inherit;
	font-size: inherit;
	cursor: pointer;
}

:focus-visible {
	outline: var(--b-strong) solid var(--t-highlight);
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   4. Σκελετός σελίδας
   -------------------------------------------------------------------------- */
.skipLane {
	position: absolute;
	left: var(--s-md);
	top: -200px;
	z-index: 400;
	padding: var(--s-sm) var(--s-md);
	background: var(--t-highlight);
	color: var(--t-base);
	font-weight: var(--w-strong);
	border-radius: var(--r-sm);
}

.skipLane:not(:focus) {
	top: -200px;
}

.skipLane:focus {
	top: var(--s-md);
}

.mainFlow {
	flex: 1 0 auto;
	display: block;
}

.mainFlow > section,
.mainFlow > aside,
.mainFlow > article {
	padding-block: var(--sec-y);
}

/* Ενιαίο πλάτος όλων των ενοτήτων */
.precinctRegion-frame,
.caseDisplay-frame,
.boxSpan-frame,
.cellBar-frame,
.hubLane-frame,
.precinctCarousel-frame,
.rayModule-frame,
.bayRail-frame,
.fragmentStrip-frame,
.annexSet-frame,
.chipStrip-frame,
.labelBody-frame,
.arrowBody-frame,
.hubWrapper-frame,
.nookZone-frame {
	display: block;
	width: 100%;
	max-width: calc(var(--v-max) + 2 * var(--v-pad-lg));
	margin-inline: auto;
	padding-inline: var(--v-pad-lg);
}

/* --------------------------------------------------------------------------
   5. Κίνηση εμφάνισης (unfold)
   -------------------------------------------------------------------------- */
[data-anim] {
	opacity: 0;
	transform: translateY(26px) scaleY(0.985);
	transform-origin: top center;
	transition: opacity var(--t-slow) var(--x-out), transform var(--t-slow) var(--x-out);
}

[data-anim].is-in {
	opacity: 1;
	transform: none;
}

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

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

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

/* --------------------------------------------------------------------------
   6. Βοηθητικά
   -------------------------------------------------------------------------- */
.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;
}

@media (max-width: 1160px) {
	:root {
		--v-pad-lg: 32px;
	}

	.precinctRegion-frame,
	.caseDisplay-frame,
	.boxSpan-frame,
	.cellBar-frame,
	.hubLane-frame,
	.precinctCarousel-frame,
	.rayModule-frame,
	.bayRail-frame,
	.fragmentStrip-frame,
	.annexSet-frame,
	.chipStrip-frame,
	.labelBody-frame,
	.arrowBody-frame,
	.hubWrapper-frame,
	.nookZone-frame {
		padding-inline: var(--v-inset-tablet);
	}
}

@media (max-width: 860px) {
	:root {
		--z-xxl: 30px;
		--z-xl-2: 24px;
		--z-display-3: 20px;
		--z-h4: 17px;
		--z-h5: 15px;
		--z-micro-head: 13px;
		--z-body: 16px;
		--z-sm: 13px;
		--z-legal: 11px;
		--sec-y: 40px;
	}

	.precinctRegion-frame,
	.caseDisplay-frame,
	.boxSpan-frame,
	.cellBar-frame,
	.hubLane-frame,
	.precinctCarousel-frame,
	.rayModule-frame,
	.bayRail-frame,
	.fragmentStrip-frame,
	.annexSet-frame,
	.chipStrip-frame,
	.labelBody-frame,
	.arrowBody-frame,
	.hubWrapper-frame,
	.nookZone-frame {
		padding-inline: var(--v-padding-mobile);
	}
}

/* --------------------------------------------------------------------------
   7. Κεφαλίδα — σύνθεση «ταμπλέτα» (HEAD-PILL), συμπεριφορά sticky-shrink
   -------------------------------------------------------------------------- */
.ticketHeader {
	position: sticky;
	top: 0;
	z-index: 120;
	padding: 10px var(--v-pad-lg) 0;
	transition: top var(--t-steady) var(--x-out);
}

body.is-notice {
	padding-block-start: var(--tray-h);
}

body.is-notice .ticketHeader {
	top: var(--tray-h);
}

.ticketHeader-sheet-routes {
	display: block;
	min-width: 0;
}

.ticketHeader-bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--s-md);
	width: 100%;
	max-width: calc(var(--v-max) + 2 * var(--v-pad-lg));
	margin-inline: auto;
	min-height: 88px;
	height: 88px;
	padding-inline: var(--s-md);
	background: var(--t-base);
	color: var(--t-glyph);
	border: var(--b-thin) solid var(--t-border);
	border-radius: var(--r-xl);
	box-shadow: var(--d-lg);
	transition: min-height var(--t-steady) var(--x-out), height var(--t-steady) var(--x-out), padding var(--t-steady) var(--x-out);
}

.ticketHeader.is-shrunk {
	background: var(--t-backdrop);
	padding-block-end: 10px;
}

.ticketHeader.is-shrunk .ticketHeader-bar {
	min-height: 64px;
	height: 64px;
}

/* λογότυπο σε στρογγυλή πλάκα (logoFrame: circle, logoSize: m) */
.ticketHeader-crest {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	background: none;
	background-image: none;
	color: var(--t-glyph);
}

.ticketHeader-ring {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	box-sizing: content-box;
	background: var(--t-backdrop);
	border: var(--b-mid) solid var(--t-highlight);
	border-radius: var(--r-circle);
	overflow: hidden;
	transition: width var(--t-steady) var(--x-out), height var(--t-steady) var(--x-out);
}

.ticketHeader-crest-pic {
	width: 60px;
	height: 60px;
	object-fit: cover;
	flex-shrink: 0;
	transition: width var(--t-steady) var(--x-out), height var(--t-steady) var(--x-out);
}

.ticketHeader.is-shrunk .ticketHeader-ring,
.ticketHeader.is-shrunk .ticketHeader-crest-pic {
	width: 42px;
	height: 42px;
}

/* γραμμή μενού (desktop) */
.ticketHeader-routes {
	flex: 0 1 auto;
	margin-inline: auto;
	min-width: 0;
}

.ticketHeader-run {
	display: flex;
	align-items: center;
	column-gap: var(--s-md);
	flex-wrap: nowrap;
}

.ticketHeader-node {
	position: relative;
	display: flex;
	align-items: center;
}

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

.ticketHeader-run > .ticketHeader-node + .ticketHeader-node::before {
	content: '\00B7';
	color: var(--t-border-strong);
	margin-inline-end: var(--s-md);
	font-size: var(--z-h5);
	line-height: 1;
}

.ticketHeader-run > .ticketHeader-node[data-first]::before {
	content: none;
}

.ticketHeader-route,
.ticketHeader-group-tap {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: var(--s-xs) var(--s-sm);
	background: none;
	background-image: none;
	border: 0;
	border-radius: var(--r-stadium);
	font-family: var(--f-copy);
	font-size: 14px;
	font-weight: 600;
	font-variant-caps: small-caps;
	letter-spacing: var(--e-airy);
	color: var(--t-glyph);
	white-space: nowrap;
	transition: color var(--t-brisk) var(--x-out), background var(--t-brisk) var(--x-out);
}

.ticketHeader-route:hover,
.ticketHeader-group-tap:hover {
	color: var(--t-highlight);
	background: none;
	background-image: none;
}

.ticketHeader-route.is-here {
	background: var(--t-bg-elevated);
	color: var(--t-highlight);
}

.ticketHeader-group-tap::after {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-inline-start: var(--s-xs);
	border-right: var(--b-mid) solid currentColor;
	border-bottom: var(--b-mid) solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

.ticketHeader-group-pane,
.ticketHeader-more-list {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 20;
	display: none;
	min-width: 240px;
	max-height: 60vh;
	overflow-y: auto;
	padding: var(--s-sm);
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-md);
	box-shadow: var(--d-lg);
}

.ticketHeader-group-pane.is-open,
.ticketHeader-more-list.is-open {
	display: block;
}

.ticketHeader-group-list,
.ticketHeader-more-run {
	display: flex;
	flex-direction: column;
	gap: var(--s-2xs);
}

.ticketHeader-group-unit,
.ticketHeader-more-unit {
	display: block;
}

.ticketHeader-group-route,
.ticketHeader-more-route {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: var(--s-xs) var(--s-sm);
	background: var(--t-bg-elevated);
	background-image: none;
	border-radius: var(--r-sm);
	color: var(--t-glyph);
	font-size: var(--z-sm);
	font-weight: var(--w-demi);
}

.ticketHeader-group-route:hover,
.ticketHeader-more-route:hover {
	background: var(--t-base);
	color: var(--t-highlight);
}

.ticketHeader-more-host {
	position: relative;
	display: flex;
	align-items: center;
}

.ticketHeader-more-host[hidden] {
	display: none;
}

.ticketHeader-more-tap {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: var(--s-xs) var(--s-sm);
	background: none;
	border: 0;
	border-radius: var(--r-stadium);
	color: var(--t-glyph);
	font-family: var(--f-copy);
	font-size: 14px;
	font-weight: 600;
	font-variant-caps: small-caps;
	letter-spacing: var(--e-airy);
	white-space: nowrap;
}

.ticketHeader-more-tap:hover {
	color: var(--t-highlight);
}

.ticketHeader-more-tap::after {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-inline-start: var(--s-xs);
	border-right: var(--b-mid) solid currentColor;
	border-bottom: var(--b-mid) solid currentColor;
	transform: rotate(45deg) translateY(-2px);
}

/* κουμπιά κεφαλίδας: τιχή περίγραμμα + γεμάτη προσφοράς */
.ticketHeader-controls {
	display: flex;
	align-items: center;
	gap: var(--s-sm);
	margin-inline-start: auto;
	flex-shrink: 0;
}

.ticketHeader-quiet {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding-inline: var(--s-md);
	background: var(--t-base);
	background-image: none;
	border: var(--b-thin) solid var(--t-glyph);
	border-radius: var(--r-md);
	color: var(--t-glyph);
	font-family: var(--f-head);
	font-size: var(--z-sm);
	font-weight: var(--w-strong);
	white-space: nowrap;
	text-decoration: none;
}

.ticketHeader-quiet:hover {
	background: var(--t-glyph);
	color: var(--t-base);
}

.ticketHeader-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border: 0;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-sm);
	font-weight: var(--w-strong);
	white-space: nowrap;
	text-decoration: none;
}

.ticketHeader-offer:hover {
	background: var(--t-press);
	color: var(--t-base);
}

/* κουμπί μενού: δύο γραμμές σε περίγραμμα (burgerStyle lines2 / frame outline) */
.ticketHeader-menu-tap {
	display: none;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	margin-inline-start: auto;
	padding: 0;
	background: var(--t-base);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-md);
	color: var(--t-glyph);
	flex-shrink: 0;
}

.ticketHeader-lines {
	position: relative;
	display: block;
	width: 20px;
	height: var(--b-mid);
	background: var(--t-glyph);
	border-radius: var(--r-2xs);
}

.ticketHeader-lines::after {
	content: '';
	position: absolute;
	left: 0;
	top: 7px;
	width: 20px;
	height: var(--b-mid);
	background: var(--t-glyph);
	border-radius: var(--r-2xs);
}

/* συρόμενη μπάρα (πλήρης επίπεδη λίστα) */
.ticketHeader-sheet {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	z-index: 130;
	max-height: calc(100vh - 190px);
	overflow-y: auto;
	padding: var(--s-md);
	background: var(--t-base);
	color: var(--t-glyph);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-lg);
	box-shadow: var(--d-xl);
	visibility: hidden;
	opacity: 0;
	transform: translateY(-10px);
	pointer-events: none;
	transition: opacity var(--t-steady) var(--x-out), transform var(--t-steady) var(--x-out), visibility var(--t-steady) var(--x-out);
}

.ticketHeader-sheet.is-open {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.ticketHeader-sheet-list {
	display: flex;
	flex-direction: column;
	gap: var(--s-2xs);
}

.ticketHeader-sheet-unit {
	display: block;
}

.ticketHeader-sheet-route {
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: var(--s-xs) var(--s-sm);
	background: var(--t-base);
	background-image: none;
	border-radius: var(--r-sm);
	color: var(--t-glyph);
	font-size: var(--z-h5);
	font-weight: var(--w-demi);
}

.ticketHeader-sheet-route:hover,
.ticketHeader-sheet-route.is-here {
	background: var(--t-bg-elevated);
	color: var(--t-highlight);
}

.ticketHeader-sheet-quiet {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin-block-start: var(--s-sm);
	padding-inline: var(--s-md);
	background: var(--t-base);
	background-image: none;
	border: var(--b-thin) solid var(--t-glyph);
	border-radius: var(--r-md);
	color: var(--t-glyph);
	font-family: var(--f-head);
	font-size: var(--z-sm);
	font-weight: var(--w-strong);
}

.ticketHeader-sheet-quiet:hover {
	background: var(--t-glyph);
	color: var(--t-base);
}

@media (max-width: 1520px) {
	.ticketHeader-quiet,
	.ticketHeader-offer {
		padding-inline: var(--s-sm);
	}
}

@media (max-width: 1160px) {
	.ticketHeader {
		padding-inline: var(--v-inset-tablet);
	}

	.ticketHeader-quiet {
		display: none;
	}

	.ticketHeader-run {
		column-gap: var(--s-sm);
	}

	.ticketHeader-run > .ticketHeader-node + .ticketHeader-node::before {
		margin-inline-end: var(--s-sm);
	}

	.ticketHeader-route,
	.ticketHeader-group-tap,
	.ticketHeader-more-tap {
		padding-inline: var(--s-xs);
	}
}

@media (max-width: 940px) {
	.ticketHeader-routes {
		display: none;
	}

	.ticketHeader-menu-tap {
		display: inline-flex;
	}

	.ticketHeader-controls {
		margin-inline-start: 0;
	}

	.ticketHeader-bar {
		min-height: var(--h-height-mobile);
		height: 64px;
		gap: var(--s-sm);
	}

	.ticketHeader-ring,
	.ticketHeader-crest-pic {
		width: 46px;
		height: 46px;
	}

	.ticketHeader.is-shrunk .ticketHeader-bar {
		min-height: var(--h-height-mobile);
		height: 64px;
	}
}

@media (max-width: 860px) {
	.ticketHeader {
		padding-inline: var(--v-padding-mobile);
	}

	.ticketHeader-sheet {
		left: 0;
		right: 0;
	}
}

@media (max-width: 620px) {
	.ticketHeader-bar {
		flex-wrap: wrap;
		height: auto;
		min-height: 64px;
		padding-block: var(--s-sm);
		row-gap: var(--s-sm);
	}

	.ticketHeader-controls {
		order: 4;
		flex-basis: 100%;
	}

	.ticketHeader-offer {
		width: 100%;
	}

	.ticketHeader-menu-tap {
		margin-inline-start: auto;
	}

	.ticketHeader.is-shrunk .ticketHeader-bar {
		height: auto;
		min-height: 64px;
	}
}

@media (max-width: 400px) {
	.ticketHeader-offer {
		padding-inline: var(--s-xs);
		font-size: var(--z-legal);
		white-space: normal;
		text-align: center;
	}
}

/* --------------------------------------------------------------------------
   8. Λωρίδα 18+ (RG-02: κάτω από την κεφαλίδα, μέσα στη ροή)
   -------------------------------------------------------------------------- */
.hazardStripe {
	display: block;
	margin-block-start: 10px;
	padding: var(--s-sm) var(--v-padding-mobile);
	background: var(--t-rg-banner);
	color: #ffffff;
	text-align: center;
	font-size: var(--z-legal);
	line-height: var(--l-default);
}

.hazardStripe-text {
	display: block;
	margin: 0;
	color: #ffffff;
}

.hazardStripe-route {
	color: #ffffff;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 1px;
	font-weight: var(--w-strong);
}

.hazardStripe-route:hover {
	color: #ffffff;
	background-color: var(--t-rg-banner);
}

/* --------------------------------------------------------------------------
   9. Υποσέλιδο — μορφή εφημερίδας (FOOT-08)
   -------------------------------------------------------------------------- */
.nookZone {
	flex-shrink: 0;
	padding-block: var(--sec-y);
	background: var(--t-backdrop);
	color: var(--t-quiet);
	border-block-start: var(--b-thin) solid var(--t-border);
}

.nookZone-masthead {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--s-sm);
	padding-block: var(--s-md);
	border-block: var(--b-strong) double var(--t-glyph);
	text-align: center;
}

.nookZone-crest {
	display: inline-flex;
	background: none;
	background-image: none;
}

.nookZone-crest-pic {
	height: 64px;
	width: auto;
}

.nookZone-issue {
	font-family: var(--f-head);
	font-size: var(--z-sm);
	letter-spacing: var(--e-airy);
	color: var(--t-quiet);
	background: var(--t-backdrop);
}

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

.nookZone-lane {
	display: block;
	min-width: 0;
}

.nookZone-heading {
	margin-block-end: var(--s-sm);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
	color: var(--t-glyph);
	background: var(--t-backdrop);
}

.nookZone-list {
	display: grid;
	gap: var(--s-2xs);
}

.nookZone-lane--wide .nookZone-list {
	grid-auto-flow: column;
	grid-template-rows: repeat(7, auto);
	column-gap: var(--s-md);
}

.nookZone-unit {
	display: block;
	min-width: 0;
}

.nookZone-route {
	display: inline-block;
	padding-block: var(--s-2xs);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
}

.nookZone-route:hover {
	color: var(--t-highlight);
	background: var(--t-backdrop);
}

.nookZone-bottom {
	margin-block-start: var(--s-md);
	padding-block-start: var(--s-md);
	border-block-start: var(--b-thin) solid var(--t-border);
	text-align: center;
}

.nookZone-note {
	display: block;
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-legal);
}

@media (max-width: 1160px) {
	.nookZone-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nookZone-lane--wide {
		grid-column: 1 / -1;
	}
}

@media (max-width: 620px) {
	.nookZone-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nookZone-lane--wide .nookZone-list {
		grid-auto-flow: row;
		grid-template-rows: none;
	}

	.nookZone-crest-pic {
		height: 44px;
	}
}

/* --------------------------------------------------------------------------
   10. Πλαίσιο cookie — μπάρα κορυφής με σήμα (COOK-08)
   -------------------------------------------------------------------------- */
.arrowTile {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 300;
	background: var(--t-backdrop);
	color: var(--t-glyph);
	border-block-end: var(--b-mid) solid var(--t-highlight);
}

.arrowTile.is-open {
	display: block;
}

.arrowTile-band {
	display: flex;
	align-items: center;
	gap: var(--s-md);
	width: 100%;
	max-width: calc(var(--v-max) + 2 * var(--v-pad-lg));
	min-height: 56px;
	margin-inline: auto;
	padding: var(--s-sm) var(--v-pad-lg);
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.arrowTile.is-open .arrowTile-band {
	animation: tile-appear var(--t-slow) var(--x-out) both;
}

@keyframes tile-appear {
	from {
		opacity: 0;
		transform: translateY(-8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.arrowTile-mark {
	position: relative;
	display: block;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	background: var(--t-highlight);
	border-radius: var(--r-circle);
}

.arrowTile-mark::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 6px;
	width: 5px;
	height: 5px;
	background: var(--t-base);
	border-radius: var(--r-circle);
	box-shadow: 8px 3px 0 0 var(--t-base), 1px 10px 0 0 var(--t-base);
}

.arrowTile-line {
	flex: 1 1 auto;
	margin: 0;
	color: var(--t-glyph);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
	line-height: 1.4;
}

.arrowTile-controls {
	display: inline-flex;
	gap: var(--s-xs);
	flex-shrink: 0;
}

.arrowTile-accept,
.arrowTile-reject {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: var(--s-xs) var(--s-md);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-sm);
	font-family: var(--f-copy);
	font-size: var(--z-sm);
	font-weight: var(--w-demi);
	white-space: nowrap;
}

.arrowTile-accept {
	background: var(--t-highlight);
	border-color: var(--t-highlight);
	color: var(--t-base);
}

.arrowTile-accept:hover {
	background: var(--t-press);
	color: var(--t-base);
}

.arrowTile-reject {
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
}

.arrowTile-reject:hover {
	background: var(--t-base);
	color: var(--t-highlight);
}

@media (max-width: 1160px) {
	.arrowTile-band {
		padding-inline: var(--v-inset-tablet);
	}
}

@media (max-width: 720px) {
	.arrowTile-band {
		flex-wrap: wrap;
		min-height: 0;
		padding: 12px 14px;
		gap: 8px;
	}

	.arrowTile-line {
		flex: 1 1 200px;
		font-size: 13px;
		line-height: 1.35;
	}

	.arrowTile-controls {
		flex-basis: 100%;
		gap: 8px;
	}

	.arrowTile-accept,
	.arrowTile-reject {
		flex: 1 1 auto;
		min-height: 36px;
		padding: 8px 14px;
		font-size: 12px;
		white-space: normal;
	}
}

/* --------------------------------------------------------------------------
   11. Πρώτη οθόνη — ασύμμετρη με γερτή εικόνα (HERO-06)
   -------------------------------------------------------------------------- */
.precinctRegion {
	padding-block: 0;
	background: var(--t-backdrop);
	color: var(--t-glyph);
	overflow: hidden;
}

.mainFlow > .precinctRegion {
	padding-block: 0;
}

.precinctRegion-frame {
	position: relative;
	min-height: 640px;
	display: flex;
	align-items: center;
}

.precinctRegion-part {
	position: relative;
	z-index: 2;
	width: 46%;
	padding-block: var(--s-lg);
}

.precinctRegion-flag {
	display: inline-block;
	margin-block-end: var(--s-sm);
	padding: var(--s-2xs) var(--s-sm);
	background: var(--t-bg-elevated);
	color: var(--t-highlight);
	border-radius: var(--r-stadium);
	font-size: var(--z-legal);
	font-weight: var(--w-strong);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.precinctRegion-lead {
	max-width: var(--gauge-narrow);
	margin-block: var(--s-md);
	color: var(--t-quiet);
	font-size: var(--z-h5);
	line-height: var(--l-relaxed);
}

.precinctRegion-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.precinctRegion-offer:hover {
	background: var(--t-press);
	color: var(--t-base);
}

.precinctRegion-terms {
	max-width: var(--gauge-narrow);
	margin-block-start: var(--s-sm);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
}

.precinctRegion-note {
	margin-block-start: var(--s-xs);
	color: var(--t-glyph);
	background: var(--t-backdrop);
	font-size: var(--z-legal);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-airy);
}

.precinctRegion-figure {
	position: absolute;
	right: 0;
	top: -40px;
	width: 46%;
	height: calc(100% + 80px);
	transform: rotate(2deg);
	box-shadow: var(--d-lg);
	border-radius: var(--r-md);
	overflow: hidden;
	transition: transform var(--t-slow) var(--x-out);
}

.precinctRegion-figure:hover {
	transform: rotate(0deg) scale(1.02);
}

.precinctRegion-pic {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 940px) {
	.precinctRegion-frame {
		display: block;
		min-height: 0;
		padding-block-end: var(--s-lg);
	}

	.precinctRegion-part {
		width: 100%;
		padding-block: var(--s-lg) var(--s-md);
	}

	.precinctRegion-figure {
		position: relative;
		top: 0;
		width: 100%;
		height: 240px;
		transform: none;
	}

	.precinctRegion-figure:hover {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
   12. Κεφαλίδα σελίδας — σύννεφο ετικετών (PHEAD-08)
   -------------------------------------------------------------------------- */
.caseDisplay {
	background: var(--t-base);
	color: var(--t-glyph);
}

.caseDisplay-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-xs);
	margin-block-end: var(--s-sm);
}

.caseDisplay-chip {
	display: inline-flex;
	padding: var(--s-2xs) var(--s-sm);
	background: var(--t-bg-elevated);
	color: var(--t-highlight);
	border-radius: var(--r-stadium);
	font-size: var(--z-legal);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.caseDisplay-lead {
	margin-block: var(--s-sm) 0;
	color: var(--t-quiet);
	font-size: var(--z-h5);
	line-height: var(--l-relaxed);
}

.caseDisplay-meta {
	margin-block-start: var(--s-xs);
	color: var(--t-quiet);
	background: var(--t-base);
	font-size: var(--z-sm);
}

.caseDisplay-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-sm) var(--s-md);
	margin-block-start: var(--s-md);
}

.caseDisplay-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.caseDisplay-offer:hover {
	background: var(--t-press);
	color: var(--t-base);
}

.caseDisplay-note {
	color: var(--t-quiet);
	background: var(--t-base);
	font-size: var(--z-legal);
}

/* --------------------------------------------------------------------------
   13. Κείμενο — τεκμηρίωση (PROSE-05: compact / normal / normal / thin)
   -------------------------------------------------------------------------- */
.rayModule {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.rayModule-part {
	margin-block-start: var(--s-lg);
}

.rayModule-part:first-child {
	margin-block-start: 0;
}

.rayModule-heading {
	display: block;
	margin-block: 0 var(--s-sm);
	font-family: var(--f-copy);
	font-size: var(--z-display-3);
	font-weight: var(--w-normal);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
	color: var(--t-glyph);
	background: var(--t-backdrop);
}

.rayModule-heading::before {
	content: '';
	display: inline-block;
	width: 34px;
	height: var(--b-thin);
	margin-inline-end: var(--s-sm);
	background: var(--t-highlight);
	vertical-align: middle;
}

.rayModule-text {
	margin-block: 0 var(--s-md);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	line-height: var(--l-default);
}

.rayModule-text a,
.rayModule-unit a {
	color: var(--t-highlight);
	background-color: var(--t-backdrop);
}

.rayModule-text a:hover,
.rayModule-unit a:hover {
	color: var(--t-press);
	background-color: var(--t-backdrop);
}

.rayModule-list,
.rayModule-steps {
	margin-block: 0 var(--s-md);
	display: grid;
	gap: var(--s-sm);
}

.rayModule-steps {
	counter-reset: rayStep;
}

.rayModule-unit {
	position: relative;
	padding-inline-start: var(--s-lg);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	line-height: var(--l-default);
}

.rayModule-list > .rayModule-unit::before {
	content: '';
	position: absolute;
	left: 14px;
	top: 11px;
	width: 8px;
	height: 8px;
	background: var(--t-highlight);
	border-radius: var(--r-circle);
}

.rayModule-steps > .rayModule-unit::before {
	counter-increment: rayStep;
	content: counter(rayStep) '.';
	position: absolute;
	left: 8px;
	top: 0;
	color: var(--t-highlight);
	font-family: var(--f-head);
	font-weight: var(--w-strong);
}

.rayModule-figure {
	max-width: 760px;
	margin-block: var(--s-md);
	margin-inline: auto;
	border-radius: var(--r-md);
	overflow: hidden;
	background: var(--t-backdrop);
}

.rayModule-pic {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 52vh;
	margin-inline: auto;
	object-fit: contain;
}

.rayModule-strip {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
	gap: var(--s-md);
	margin-block-start: var(--s-md);
}

/* --------------------------------------------------------------------------
   14. Κάρτες — οριζόντια λωρίδα κύλισης (GRID-09)
   -------------------------------------------------------------------------- */
.boxSpan {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.boxSpan-heading {
	margin-block-end: var(--s-md);
}

.boxSpan-rail {
	display: flex;
	gap: var(--s-md);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	padding-block-end: var(--s-sm);
	padding-inline: var(--v-pad-lg);
	margin-inline: calc(-1 * var(--v-pad-lg));
}

.boxSpan-unit {
	flex: 0 0 320px;
	width: 320px;
	min-height: 200px;
	padding: var(--s-md);
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
	border: var(--b-thin) solid var(--t-border);
	border-radius: var(--r-md);
	transition: transform var(--t-steady) var(--x-out), border-color var(--t-steady) var(--x-out);
}

.boxSpan-unit:hover {
	transform: translateY(-7px);
	border-color: var(--t-highlight);
}

.boxSpan-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-block-end: var(--s-sm);
	background: var(--t-base);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-circle);
	color: var(--t-highlight);
}

.boxSpan-mark svg {
	width: 21px;
	height: 21px;
	fill: currentColor;
}

.boxSpan-lede {
	margin-block-end: var(--s-sm);
	font-size: var(--z-h4);
	font-weight: var(--w-demi);
	color: var(--t-glyph);
	background: var(--t-bg-elevated);
}

.boxSpan-text {
	color: var(--t-quiet);
	background: var(--t-bg-elevated);
	font-size: var(--z-sm);
	line-height: var(--l-default);
}

.boxSpan-dots {
	display: flex;
	justify-content: center;
	gap: var(--s-xs);
	margin-block-start: var(--s-sm);
}

.boxSpan-dot {
	display: block;
	width: 7px;
	height: 7px;
	background: var(--t-border-strong);
	border-radius: var(--r-circle);
}

/* --------------------------------------------------------------------------
   15. Γνώμες — κάθετο χρονολόγιο (REV-05)
   -------------------------------------------------------------------------- */
.hubLane {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.hubLane-heading {
	margin-block-end: var(--s-md);
}

.hubLane-list {
	border-inline-start: var(--b-thin) solid var(--t-highlight);
}

.hubLane-unit {
	position: relative;
	padding-inline-start: var(--s-lg);
	margin-block-end: var(--s-lg);
}

.hubLane-unit:last-child {
	margin-block-end: 0;
}

.hubLane-mark {
	position: absolute;
	left: -8px;
	top: 8px;
	display: block;
	width: 16px;
	height: 16px;
	background: var(--t-highlight);
	border-radius: var(--r-circle);
}

.hubLane-band {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--s-xs);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
}

.hubLane-time {
	color: var(--t-quiet);
	background: var(--t-backdrop);
}

.hubLane-byname {
	color: var(--t-glyph);
	background: var(--t-backdrop);
	font-weight: var(--w-demi);
}

.hubLane-stars {
	margin-block: var(--s-2xs) var(--s-xs);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
}

.hubLane-score {
	color: var(--t-highlight);
	background: var(--t-backdrop);
	font-size: var(--z-h5);
	letter-spacing: 2px;
}

.hubLane-quote {
	color: var(--t-quiet);
	background: var(--t-backdrop);
	line-height: var(--l-default);
}

/* --------------------------------------------------------------------------
   16. Απορίες — διάταξη περιοδικού (FAQ-09)
   -------------------------------------------------------------------------- */
.cellBar {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.cellBar-heading {
	margin-block-end: var(--s-md);
}

.cellBar-list {
	display: block;
}

.cellBar-unit {
	padding-block: var(--s-md);
	border-block-end: var(--b-thin) solid var(--t-border);
}

.cellBar-ask {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 24px;
	align-items: baseline;
	gap: var(--s-xs);
	cursor: pointer;
	list-style: none;
}

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

.cellBar-ask::after {
	content: '';
	align-self: center;
	justify-self: end;
	width: 9px;
	height: 9px;
	border-right: var(--b-mid) solid var(--t-highlight);
	border-bottom: var(--b-mid) solid var(--t-highlight);
	transform: rotate(45deg);
	transition: transform var(--t-steady) var(--x-out);
}

.cellBar-unit[open] .cellBar-ask::after {
	transform: rotate(-135deg);
}

.cellBar-mark {
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
	color: var(--t-highlight);
	background: var(--t-backdrop);
}

.cellBar-heading-ask {
	margin: 0;
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
	font-style: italic;
	color: var(--t-glyph);
	background: var(--t-backdrop);
}

.cellBar-reply {
	display: block;
	padding-inline-start: calc(44px + var(--s-xs));
	padding-block-start: var(--s-sm);
	animation: cell-open var(--t-steady) var(--x-out) both;
}

@keyframes cell-open {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.cellBar-reply .cellBar-mark {
	float: left;
	margin-inline-end: var(--s-xs);
}

.cellBar-text {
	margin: 0;
	color: var(--t-quiet);
	background: var(--t-backdrop);
	line-height: var(--l-relaxed);
}

/* --------------------------------------------------------------------------
   17. Κάλεσμα — ανεστραμμένο σκούρο μπλοκ (CTA-08)
   -------------------------------------------------------------------------- */
.precinctCarousel {
	background: var(--t-gradient-light);
	color: var(--t-glyph);
	border-block-start: var(--b-strong) solid var(--t-highlight);
}

.precinctCarousel-lede {
	font-size: clamp(28px, 4.2vw, var(--z-xxl));
	text-transform: uppercase;
	letter-spacing: var(--e-snug);
	color: var(--t-glyph);
	background: var(--t-gradient-light);
}

.precinctCarousel-text {
	margin-block: var(--s-sm) var(--s-md);
	color: var(--t-quiet);
	background: var(--t-gradient-light);
	font-size: var(--z-h5);
	line-height: var(--l-relaxed);
}

.precinctCarousel-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.precinctCarousel-offer:hover {
	background: var(--t-press);
	color: var(--t-base);
}

.precinctCarousel-note {
	margin-block-start: var(--s-sm);
	color: var(--t-quiet);
	background: var(--t-gradient-light);
	font-size: var(--z-legal);
}

/* --------------------------------------------------------------------------
   18. Ενδιάμεσο κάλεσμα — συμπαγής λωρίδα (INLINE-CTA-01)
   -------------------------------------------------------------------------- */
.hubWrapper {
	background: var(--t-base);
	color: var(--t-glyph);
	border-block: var(--b-thin) solid var(--t-border);
}

.mainFlow > .hubWrapper {
	padding-block: var(--s-md);
}

.hubWrapper-frame {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-sm) var(--s-md);
}

.hubWrapper-text {
	margin: 0;
	color: var(--t-glyph);
	background: var(--t-base);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.hubWrapper-offer {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-sm);
	font-weight: var(--w-strong);
}

.hubWrapper-offer:hover {
	background: var(--t-press);
	color: var(--t-base);
}

/* --------------------------------------------------------------------------
   19. Υπογραφή συντάκτη — λωρίδα πλήρους πλάτους (BYLINE-05)
   -------------------------------------------------------------------------- */
.labelBody {
	background: var(--t-base);
	color: var(--t-glyph);
	border-block-start: var(--b-thin) solid var(--t-border);
}

.labelBody-frame {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-sm) var(--s-md);
}

.labelBody-who {
	display: flex;
	align-items: center;
	gap: var(--s-sm);
}

.labelBody-portrait {
	display: block;
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	border-radius: var(--r-circle);
	overflow: hidden;
	background: var(--t-base);
	border: var(--b-strong) solid var(--t-base);
	box-sizing: content-box;
}

.labelBody-pic {
	width: 56px;
	height: 56px;
	object-fit: cover;
	object-position: center 20%;
}

.labelBody-stack {
	display: block;
	min-width: 0;
}

.labelBody-byname {
	color: var(--t-glyph);
	background: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.labelBody-byname a {
	color: var(--t-glyph);
	background-color: var(--t-base);
}

.labelBody-byname a:hover {
	color: var(--t-highlight);
	background-color: var(--t-base);
}

.labelBody-duty {
	color: var(--t-quiet);
	background: var(--t-base);
	font-size: var(--z-sm);
}

.labelBody-time {
	color: var(--t-quiet);
	background: var(--t-base);
	font-size: var(--z-legal);
}

.labelBody-go {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding-inline: var(--s-md);
	background: var(--t-base);
	background-image: none;
	border: var(--b-thin) solid var(--t-highlight);
	border-radius: var(--r-sm);
	color: var(--t-highlight);
	font-size: var(--z-sm);
	font-weight: var(--w-demi);
}

.labelBody-go:hover {
	background: var(--t-highlight);
	color: var(--t-base);
}

@media (max-width: 620px) {
	.labelBody-frame {
		flex-direction: column;
		align-items: flex-start;
	}

	.labelBody-go {
		width: 100%;
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
   20. Κουμπί προσφοράς — οπτική από scripts/cta-style.mjs (domain-seeded)
   Ο προβολέας γράφεται με κινούμενες στάσεις κλίσης, ώστε να μένει μέσα
   στο κουτί του κουμπιού (η μετατόπιση ::after διόγκωνε το scrollWidth).
   -------------------------------------------------------------------------- */
@property --shine-ipmw {
	syntax: '<percentage>';
	inherits: false;
	initial-value: -60%;
}

/* Offer CTA */
.ipmw-act{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:0 30px;border:1px solid #090E13;border-radius:2px;
  background:#65A30D;color:#090E13;text-decoration:none;
  font-size:15px;font-weight:600;letter-spacing:2.2px;
  transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}
.ipmw-act:hover{background:#4D7C0F;color:#FFFFFF;animation:none}
.ipmw-act:hover::after{animation:none}
.ipmw-act:active{background:#3F6212;color:#FFFFFF}
.ipmw-act:focus-visible{outline:3px solid #090E13;outline-offset:3px}
.ipmw-act{overflow:hidden}
.ipmw-act::after{content:"";position:absolute;inset:0;width:100%;pointer-events:none;transform:none;
  background:linear-gradient(100deg,transparent calc(var(--shine-ipmw) - 15%),rgba(255,255,255,.42) var(--shine-ipmw),transparent calc(var(--shine-ipmw) + 15%));
  animation:shine_ipmw 4.1s ease-in-out infinite}
@keyframes shine_ipmw{0%{--shine-ipmw:-60%}48.780%,100%{--shine-ipmw:160%}}
@media (prefers-reduced-motion:reduce){.ipmw-act,.ipmw-act::after{animation:none!important;transition:none!important}}

/* διαφορετική φάση ανά θέση — τα κουμπιά δεν «αναπνέουν» μαζί */
.ticketHeader-offer.ipmw-act::after { animation-delay: -0.7s; }
.precinctRegion-offer.ipmw-act::after { animation-delay: -1.1s; }
.caseDisplay-offer.ipmw-act::after { animation-delay: -1.6s; }
.hubWrapper-offer.ipmw-act::after { animation-delay: -2.4s; }
.precinctCarousel-offer.ipmw-act::after { animation-delay: -3.2s; }

/* το κουμπί δεν καταπίνει τη γραμμή της κεφαλίδας */
.ticketHeader-controls .ipmw-act { min-height: 44px; padding-inline: 20px; }

@media (max-width: 620px) {
	.ticketHeader-controls .ipmw-act { width: 100%; }
}

@media (max-width: 400px) {
	.ticketHeader-controls .ipmw-act { padding-inline: 8px; font-size: 12px; letter-spacing: 1px; }
}

/* --------------------------------------------------------------------------
   21. Πίνακας — πυκνή μορφή (TABLE-05)
   -------------------------------------------------------------------------- */
.bayRail {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.bayRail-heading {
	margin-block-end: var(--s-xs);
}

.bayRail-cap {
	margin-block-end: var(--s-sm);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-family: var(--f-head);
	font-style: italic;
	font-size: var(--z-sm);
}

.bayRail-scroll {
	overflow-x: auto;
	border: var(--b-thin) solid var(--t-border);
	border-radius: var(--r-sm);
}

.bayRail-grid {
	width: 100%;
	background: var(--t-base);
	color: var(--t-glyph);
}

.bayRail-grid th,
.bayRail-grid td {
	padding: var(--s-xs) var(--s-sm);
	border-block-end: var(--b-thin) solid var(--t-border);
	font-size: var(--z-sm);
	text-align: start;
	vertical-align: top;
}

.bayRail-grid thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	padding: var(--s-sm);
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
	font-size: var(--z-legal);
	font-weight: var(--w-strong);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.bayRail-grid tbody th {
	background: var(--t-base);
	color: var(--t-glyph);
	font-weight: var(--w-demi);
}

.bayRail-grid tbody td {
	background: var(--t-base);
	color: var(--t-quiet);
}

/* --------------------------------------------------------------------------
   22. Νομικές σελίδες — ενιαίο κείμενο (LEGAL-01)
   -------------------------------------------------------------------------- */
.fragmentStrip {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.fragmentStrip-lead {
	margin-block-end: var(--s-md);
	color: var(--t-glyph);
	background: var(--t-backdrop);
	font-size: var(--z-h5);
	line-height: var(--l-default);
}

.fragmentStrip-stamp {
	margin-block-end: var(--s-md);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	font-size: var(--z-legal);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.fragmentStrip-part {
	margin-block-start: var(--s-md);
	padding-block-start: var(--s-md);
	border-block-start: var(--b-thin) solid var(--t-border);
}

.fragmentStrip-part:first-of-type {
	border-block-start: 0;
}

.fragmentStrip-heading {
	margin-block-end: var(--s-sm);
	font-size: var(--z-display-3);
}

.fragmentStrip-text {
	margin-block-end: var(--s-sm);
	color: var(--t-quiet);
	background: var(--t-backdrop);
	line-height: var(--l-relaxed);
}

.fragmentStrip-contacts {
	margin-block-start: var(--s-md);
	padding: var(--s-md);
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
	border-radius: var(--r-md);
}

.fragmentStrip-list {
	display: grid;
	gap: var(--s-xs);
	margin-block-start: var(--s-sm);
}

.fragmentStrip-unit {
	color: var(--t-quiet);
	background: var(--t-bg-elevated);
	font-size: var(--z-sm);
}

.fragmentStrip-route {
	color: var(--t-highlight);
	background-color: var(--t-bg-elevated);
}

.fragmentStrip-route:hover {
	color: var(--t-press);
	background-color: var(--t-bg-elevated);
}

.fragmentStrip-alert {
	margin-block-start: var(--s-md);
	padding: var(--s-md);
	background: #2a1114;
	color: var(--t-glyph);
	border-inline-start: var(--b-strong) solid var(--t-rg-banner);
	border-radius: var(--r-xs);
	font-size: var(--z-sm);
}

/* --------------------------------------------------------------------------
   23. Φόρμα επικοινωνίας — δύο στήλες (FORM-02)
   -------------------------------------------------------------------------- */
.annexSet {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.annexSet-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	gap: var(--s-lg);
	align-items: start;
}

.annexSet-aside {
	padding: var(--s-md);
	background: var(--t-base);
	color: var(--t-glyph);
	border-radius: var(--r-md);
}

.annexSet-heading {
	margin-block-end: var(--s-sm);
	font-size: var(--z-display-3);
}

.annexSet-ways {
	display: grid;
	gap: var(--s-sm);
}

.annexSet-unit {
	color: var(--t-quiet);
	background: var(--t-base);
	font-size: var(--z-sm);
}

.annexSet-route {
	color: var(--t-highlight);
	background-color: var(--t-base);
}

.annexSet-route:hover {
	color: var(--t-press);
	background-color: var(--t-base);
}

.annexSet-side {
	display: block;
	min-width: 0;
}

.annexSet-done {
	display: none;
	margin-block-end: var(--s-md);
	padding: var(--s-md);
	background: #12240f;
	color: var(--t-glyph);
	border: var(--b-thin) solid #65a30d;
	border-radius: var(--r-sm);
	font-size: var(--z-sm);
}

.annexSet-done.is-open {
	display: block;
}

.annexSet-form {
	display: grid;
	gap: var(--s-md);
}

.annexSet-box {
	display: grid;
	gap: var(--s-xs);
}

.annexSet-box label {
	color: var(--t-glyph);
	background: var(--t-backdrop);
	font-size: var(--z-sm);
	font-weight: var(--w-demi);
}

.annexSet-box input,
.annexSet-box textarea {
	width: 100%;
	padding: var(--s-sm);
	background: var(--t-base);
	color: var(--t-glyph);
	border: var(--b-thin) solid var(--t-border-strong);
	border-radius: var(--r-sm);
	font-family: var(--f-copy);
	font-size: var(--z-body);
}

.annexSet-box input:focus,
.annexSet-box textarea:focus {
	border-color: var(--t-highlight);
	outline: none;
}

.annexSet-send {
	justify-self: start;
	min-height: 48px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	color: var(--t-base);
	border: 0;
	border-radius: var(--r-md);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.annexSet-send:hover {
	background: var(--t-press);
	color: var(--t-base);
}

@media (max-width: 860px) {
	.annexSet-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--s-md);
	}
}

/* --------------------------------------------------------------------------
   24. Κάρτα συντάκτη — οριζόντια με στρογγυλό πορτρέτο (AUTH-01)
   -------------------------------------------------------------------------- */
.chipStrip {
	background: var(--t-backdrop);
	color: var(--t-glyph);
}

.chipStrip-panel {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	gap: var(--s-lg);
	padding: var(--s-md);
	background: var(--t-bg-elevated);
	color: var(--t-glyph);
	border-radius: var(--r-lg);
	box-shadow: var(--d-sm);
}

.chipStrip-portrait {
	display: block;
	width: 160px;
	height: 160px;
	border-radius: var(--r-circle);
	overflow: hidden;
	background: var(--t-bg-elevated);
	border: var(--b-strong) solid var(--t-bg-elevated);
	box-sizing: content-box;
}

.chipStrip-pic {
	width: 160px;
	height: 160px;
	object-fit: cover;
	object-position: center 20%;
}

.chipStrip-stack {
	display: flex;
	flex-direction: column;
	gap: var(--s-sm);
	min-width: 0;
}

.chipStrip-duty {
	color: var(--t-highlight);
	background: var(--t-bg-elevated);
	font-size: var(--z-sm);
	font-weight: var(--w-demi);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.chipStrip-byname {
	color: var(--t-glyph);
	background: var(--t-bg-elevated);
	font-size: var(--z-xl-2);
}

.chipStrip-bio {
	margin: 0;
	color: var(--t-quiet);
	background: var(--t-bg-elevated);
	line-height: var(--l-relaxed);
}

.chipStrip-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-xs);
}

.chipStrip-tag {
	display: inline-flex;
	padding: var(--s-2xs) var(--s-sm);
	background: var(--t-base);
	color: var(--t-glyph);
	border-radius: var(--r-stadium);
	font-size: var(--z-legal);
	letter-spacing: var(--e-airy);
	text-transform: uppercase;
}

.chipStrip-articles {
	margin-block-start: var(--s-md);
}

.chipStrip-articles-heading {
	margin-block-end: var(--s-sm);
	font-size: var(--z-display-3);
}

.chipStrip-articles-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--s-xs) var(--s-md);
}

.chipStrip-articles-unit {
	display: block;
	min-width: 0;
}

.chipStrip-articles-route {
	display: block;
	padding-block: var(--s-xs);
	color: var(--t-highlight);
	background-color: var(--t-backdrop);
	font-size: var(--z-sm);
}

.chipStrip-articles-route:hover {
	color: var(--t-press);
	background-color: var(--t-backdrop);
}

@media (max-width: 860px) {
	.chipStrip-panel {
		grid-template-columns: minmax(0, 1fr);
		justify-items: center;
		gap: var(--s-md);
		text-align: center;
	}

	.chipStrip-portrait,
	.chipStrip-pic {
		width: 120px;
		height: 120px;
	}

	.chipStrip-tags {
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
   25. Σελίδα 404 — ατμοσφαιρική πλήρους κάλυψης (ERR-04)
   -------------------------------------------------------------------------- */
.arrowBody {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(460px, calc(100vh - 260px), 720px);
	background-color: var(--t-backdrop);
	background-image: linear-gradient(180deg, rgba(9, 14, 19, 0.55), rgba(9, 14, 19, 0.92)), url('/snaps-prime/vignette.webp');
	background-size: cover;
	background-position: center;
	color: var(--t-glyph);
}

.mainFlow:has(> .arrowBody) {
	display: flex;
	flex-direction: column;
}

.mainFlow > .arrowBody {
	flex: 1 0 auto;
}

.arrowBody-part {
	max-width: var(--gauge-narrow);
	padding: var(--s-md);
	background: rgba(12, 18, 22, 0.86);
	color: var(--t-glyph);
	border-radius: var(--r-lg);
}

.arrowBody-text {
	margin-block: var(--s-sm) var(--s-md);
	color: var(--t-quiet);
	background: none;
	line-height: var(--l-relaxed);
}

.arrowBody-go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding-inline: var(--s-md);
	background: var(--t-highlight);
	background-image: none;
	border-radius: var(--r-md);
	color: var(--t-base);
	font-family: var(--f-head);
	font-size: var(--z-h5);
	font-weight: var(--w-strong);
}

.arrowBody-go:hover {
	background: var(--t-press);
	color: var(--t-base);
}


@media (max-width: 860px) {
	.boxSpan-rail {
		padding-inline: var(--v-padding-mobile);
		margin-inline: calc(-1 * var(--v-padding-mobile));
	}
}

@media (max-width: 495px) {
  .ticketHeader-routes,
  .ticketHeader-run,
  .ticketHeader-route,
  .ticketHeader-quiet { display: none !important; }
  .ticketHeader-more-tap { display: flex !important; }
}
