/* nyc-helicopter.com — style.css
 * Komponenten-Manifest siehe _KONZEPT_03 + this is the implementation.
 * Prefix: nyc-
 */

/* ============================================================
   1. CSS-Tokens
   ============================================================ */
:root {
	--c-ink:        #0b1424;
	--c-ink-soft:   #475569;
	--c-paper:      #ffffff;
	--c-paper-warm: #fefaf3;
	--c-paper-mute: #f5f7fb;
	--c-line:       #e2e8f0;
	--c-accent:     #d4801a;
	--c-accent-dk:  #b3650f;
	--c-accent-tx:  #ffffff;
	--c-trust:      #047857;
	--c-trust-soft: #dcfce7;
	--c-warn:       #b45309;
	--c-warn-soft:  #fef3c7;
	--c-night:      #1e293b;
	--c-night-tx:   #e2e8f0;

	/* Region-Accent (Session 10 Heliport-Hub, Session 11 Guide-Pages) */
	--c-region-westchester: #7c3aed;  /* violett — wurde in Session 10 als --c-headout angesprochen, jetzt korrekt benannt */

	--font-display: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
	--font-body:    "Inter", system-ui, -apple-system, sans-serif;
	--fs-100: 0.75rem;
	--fs-200: 0.875rem;
	--fs-300: 1rem;
	--fs-400: 1.125rem;
	--fs-500: 1.25rem;
	--fs-600: 1.5rem;
	--fs-700: 2rem;
	--fs-800: 2.75rem;
	--fs-900: 3.5rem;
	--lh-tight:   1.15;
	--lh-cosy:    1.4;
	--lh-relaxed: 1.6;

	--s-0: 4px;
	--s-1: 8px;
	--s-2: 12px;
	--s-3: 16px;
	--s-4: 24px;
	--s-5: 32px;
	--s-6: 48px;
	--s-7: 72px;
	--s-8: 96px;

	--r-1: 4px;
	--r-2: 8px;
	--r-3: 12px;
	--r-4: 20px;
	--r-pill: 999px;

	--shadow-s: 0 1px 2px rgba(11,20,36,.06);
	--shadow-m: 0 4px 12px rgba(11,20,36,.10);
	--shadow-l: 0 12px 32px rgba(11,20,36,.14);

	--container-max: 1180px;
	--container-pad: 24px;
	--stickybar-h:   72px;

	--z-base:    1;
	--z-sticky:  50;
	--z-nav:    100;
	--z-modal: 1000;
}

/* ============================================================
   2. Reset + Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--font-body);
	font-size: var(--fs-300);
	line-height: var(--lh-relaxed);
	color: var(--c-ink);
	background: var(--c-paper);
	-webkit-font-smoothing: antialiased;
}
img, picture, video, svg { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
a { color: var(--c-accent-dk); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 800;
	line-height: var(--lh-tight);
	letter-spacing: -0.02em;
	margin: 0 0 var(--s-3) 0;
	color: var(--c-ink);
}
p { margin: 0 0 var(--s-3) 0; }
ul { margin: 0; padding: 0 0 0 var(--s-3); }

body { padding-bottom: calc(var(--stickybar-h) + env(safe-area-inset-bottom, 0px)); }

/* SR-only & Skip-Link */
.nyc-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;
}
.nyc-skip {
	position: absolute; left: -9999px; top: 0; padding: var(--s-2) var(--s-3);
	background: var(--c-ink); color: var(--c-paper); z-index: var(--z-modal);
}
.nyc-skip:focus { left: 0; }

/* ============================================================
   3. Container + Sections + Grid
   ============================================================ */
.nyc-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.nyc-section { padding: var(--s-7) 0; }
.nyc-section--tight { padding: var(--s-5) 0; }
.nyc-section--warm  { background: var(--c-paper-warm); }
.nyc-section--mute  { background: var(--c-paper-mute); }
.nyc-section--dark  { background: var(--c-night); color: var(--c-night-tx); }

.nyc-section__header { margin-bottom: var(--s-5); max-width: 720px; }
.nyc-eyebrow { font-size: var(--fs-200); letter-spacing: 0.12em; text-transform: uppercase; color: var(--c-accent-dk); font-weight: 700; margin-bottom: var(--s-1); }
.nyc-h1, h1 { font-size: var(--fs-800); }
.nyc-h2, h2 { font-size: var(--fs-700); }
.nyc-h3, h3 { font-size: var(--fs-500); }
.nyc-lead { font-size: var(--fs-400); color: var(--c-ink-soft); }
.nyc-prose { max-width: 65ch; }
.nyc-prose p { font-size: var(--fs-400); color: var(--c-ink); }

.nyc-grid { display: grid; gap: var(--s-4); }
.nyc-grid--2 { grid-template-columns: 1fr 1fr; }
.nyc-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 899px) {
	.nyc-grid--2, .nyc-grid--3 { grid-template-columns: 1fr; }
}

/* ============================================================
   4. Header + Nav
   ============================================================ */
.nyc-header {
	position: sticky; top: 0;
	background: var(--c-paper);
	box-shadow: var(--shadow-s);
	z-index: var(--z-nav);
}
.nyc-header__inner {
	display: flex; align-items: center; gap: var(--s-4);
	height: 64px;
}
.nyc-logo {
	display: inline-flex; align-items: center;
	text-decoration: none;
	line-height: 0;            /* kein Baseline-Offset durch leeren Text-Node */
	flex-shrink: 0;
}
.nyc-logo:hover { text-decoration: none; opacity: 0.85; transition: opacity .15s; }
.nyc-logo__img {
	display: block;
	height: 48px;
	width: auto;
	max-width: 100%;
}

.nyc-nav { flex: 1; }
.nyc-nav__list { list-style: none; display: flex; align-items: center; gap: var(--s-3); margin: 0; padding: 0; }
.nyc-nav__item { position: relative; }
.nyc-nav__link {
	display: inline-flex; align-items: center; gap: var(--s-0);
	padding: var(--s-2) var(--s-2);
	background: transparent; border: 0; cursor: pointer;
	font: inherit; color: var(--c-ink); font-weight: 600;
}
.nyc-nav__link:hover { color: var(--c-accent-dk); }
.nyc-nav__menu {
	position: absolute; top: 100%; left: 0;
	min-width: 260px;
	background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-2);
	box-shadow: var(--shadow-l);
	list-style: none; margin: 0; padding: var(--s-2);
	display: none; z-index: var(--z-nav);
}
/* Unsichtbare Hover-Bridge zwischen Button und Menü — schließt den Spalt,
   damit das Menü beim Maus-Wandern nicht zuschnappt. Höhe muss zum
   gewünschten visuellen Offset passen (s-1 = ca. 6–8px). */
.nyc-nav__menu::before {
	content: ""; position: absolute; left: 0; right: 0;
	top: calc(var(--s-1) * -1); height: var(--s-1);
	background: transparent;
}
/* Visueller Abstand kommt aus Button-Padding, nicht aus margin-top — sonst
   ist der Abstand ein "toter" Bereich, in dem :hover kippt. */
.nyc-nav__menu--wide { min-width: 340px; }
.nyc-nav__item:hover > .nyc-nav__menu,
.nyc-nav__item:focus-within > .nyc-nav__menu,
.nyc-nav__item.is-open > .nyc-nav__menu { display: block; }
.nyc-nav__menu-group {
	font-size: var(--fs-100); letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--c-ink-soft); padding: var(--s-2) var(--s-2) var(--s-1);
}
.nyc-nav__menu-link {
	display: block; padding: var(--s-2); border-radius: var(--r-1);
	color: var(--c-ink); text-decoration: none; font-weight: 500;
}
.nyc-nav__menu-link:hover { background: var(--c-paper-mute); color: var(--c-ink); text-decoration: none; }

.nyc-burger { display: none; background: transparent; border: 0; cursor: pointer; padding: var(--s-1); }
.nyc-burger__bar { display: block; width: 22px; height: 2px; background: var(--c-ink); margin: 4px 0; transition: transform .2s ease, opacity .2s ease; }
.nyc-burger[aria-expanded="true"] .nyc-burger__bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nyc-burger[aria-expanded="true"] .nyc-burger__bar:nth-child(2) { opacity: 0; }
.nyc-burger[aria-expanded="true"] .nyc-burger__bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.nyc-mobile-menu {
	position: absolute; left: 0; right: 0; top: 100%;
	background: var(--c-paper);
	border-top: 1px solid var(--c-line);
	box-shadow: var(--shadow-m);
	max-height: calc(100vh - 64px);
	overflow-y: auto;
	z-index: var(--z-nav);
}
.nyc-mobile-menu__inner { padding-top: var(--s-3); padding-bottom: var(--s-4); }
.nyc-mobile-menu__group { border-bottom: 1px solid var(--c-line); }
.nyc-mobile-menu__group-header {
	cursor: pointer; list-style: none;
	font-family: var(--font-display); font-weight: 700; font-size: var(--fs-400);
	color: var(--c-ink); padding: var(--s-3) 0;
}
.nyc-mobile-menu__group-header::-webkit-details-marker { display: none; }
.nyc-mobile-menu__group-header::after {
	content: '+'; float: right; color: var(--c-accent-dk); font-weight: 800; font-size: var(--fs-500);
}
.nyc-mobile-menu__group[open] .nyc-mobile-menu__group-header::after { content: '−'; }
.nyc-mobile-menu__list { list-style: none; padding: 0 0 var(--s-3); margin: 0; display: grid; gap: 2px; }
.nyc-mobile-menu__list--top { padding-top: var(--s-3); }
.nyc-mobile-menu__link {
	display: block; padding: var(--s-2) 0;
	color: var(--c-ink); font-size: var(--fs-400); text-decoration: none;
}
.nyc-mobile-menu__link:hover { color: var(--c-accent-dk); }

.nyc-header__lang { display: flex; align-items: center; }
.nyc-lang-switcher { position: relative; }
.nyc-lang-switcher__trigger {
	display: inline-flex; align-items: center; gap: var(--s-1);
	background: transparent; border: 1px solid var(--c-line); border-radius: var(--r-pill);
	padding: var(--s-1) var(--s-2); font: inherit; color: var(--c-ink); cursor: pointer;
}
.nyc-lang-switcher__trigger:hover { border-color: var(--c-ink); }
.nyc-lang-switcher__menu {
	position: absolute; top: 100%; right: 0;
	background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-2);
	box-shadow: var(--shadow-l); margin: var(--s-1) 0 0; padding: var(--s-1); list-style: none;
	display: none; min-width: 140px; z-index: var(--z-nav);
}
.nyc-lang-switcher:hover .nyc-lang-switcher__menu,
.nyc-lang-switcher:focus-within .nyc-lang-switcher__menu,
.nyc-lang-switcher.is-open .nyc-lang-switcher__menu { display: block; }
.nyc-lang-switcher__opt { display: block; padding: var(--s-1) var(--s-2); border-radius: var(--r-1); color: var(--c-ink); text-decoration: none; }
.nyc-lang-switcher__opt:hover { background: var(--c-paper-mute); text-decoration: none; }
.nyc-lang-switcher__opt.is-active { color: var(--c-accent-dk); font-weight: 700; }
.nyc-lang-switcher--mobile { display: none; }

@media (max-width: 899px) {
	.nyc-nav { display: none; }
	.nyc-burger { display: block; }
	.nyc-lang-switcher { display: none; }
	.nyc-lang-switcher--mobile {
		display: inline-block;
		background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-pill);
		padding: var(--s-0) var(--s-2); color: var(--c-ink); font: inherit;
		font-size: var(--fs-200); font-weight: 700;
		width: 64px;
	}
	.nyc-header__inner { gap: var(--s-2); }
	.nyc-logo { flex: 0 1 auto; min-width: 0; }
	/* Mobile: Logo etwas kleiner, damit Burger + Lang-Switcher daneben passen */
	.nyc-logo__img { height: 36px; }
	/* Lang-Switcher mit margin-left: auto schiebt sich + den nachfolgenden
	   Burger an den rechten Container-Rand (statt mittig-rechts neben dem
	   Logo zu kleben). Burger steht als letztes flex-Kind damit ganz aussen. */
	.nyc-header__lang { flex-shrink: 0; margin-left: auto; }
	.nyc-burger { flex-shrink: 0; }
}

/* ============================================================
   5. Hero
   ============================================================ */
.nyc-hero {
	position: relative; overflow: hidden;
	min-height: 600px;
	color: #ffffff;
	display: flex;
}
.nyc-hero--tour { min-height: 480px; }
.nyc-hero__media { position: absolute; inset: 0; z-index: 0; }
.nyc-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.nyc-hero__overlay {
	position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(180deg, rgba(11,20,36,.15) 0%, rgba(11,20,36,.55) 100%);
}
.nyc-hero__inner {
	position: relative; z-index: 2;
	padding-top: var(--s-7); padding-bottom: var(--s-7);
	display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--s-5);
	align-items: end; width: 100%;
}
.nyc-hero--tour .nyc-hero__inner { align-items: center; }
.nyc-hero__content { color: #ffffff; }
.nyc-hero__eyebrow {
	color: rgba(255,255,255,.85); font-size: var(--fs-200);
	letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; margin-bottom: var(--s-2);
}
.nyc-hero__title { color: #ffffff; font-size: var(--fs-900); margin-bottom: var(--s-3); }
.nyc-hero__sub   { color: rgba(255,255,255,.9); font-size: var(--fs-500); max-width: 560px; }
.nyc-hero__trustline { color: rgba(255,255,255,.85); font-size: var(--fs-300); margin-top: var(--s-3); }
.nyc-hero__cta-row { display: flex; gap: var(--s-2); margin-top: var(--s-4); }

@media (max-width: 899px) {
	.nyc-hero { min-height: 480px; }
	.nyc-hero__inner { grid-template-columns: 1fr; gap: var(--s-4); }
	.nyc-hero__title { font-size: var(--fs-700); }
	.nyc-hero__sub { font-size: var(--fs-400); }
	/* Mobile-Doppelung vermeiden: CTAs + Trustline aus Hero ausblenden, Widget übernimmt */
	.nyc-hero__cta-row,
	.nyc-hero__trustline { display: none !important; }
}

/* ============================================================
   6. Trust-Bar
   ============================================================ */
.nyc-trustbar { padding: var(--s-4) 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.nyc-trustbar__inner { display: flex; align-items: center; gap: var(--s-5); justify-content: space-between; }
.nyc-trustbar__item { display: flex; align-items: center; gap: var(--s-2); }
.nyc-trustbar__icon { color: var(--c-trust); flex: 0 0 24px; }
.nyc-trustbar__title { display: block; font-weight: 700; color: var(--c-ink); font-size: var(--fs-300); }
.nyc-trustbar__sub   { display: block; color: var(--c-ink-soft); font-size: var(--fs-200); }
@media (max-width: 700px) {
	.nyc-trustbar__inner { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
}

/* ============================================================
   7. Booking-Widget
   ============================================================ */
.nyc-booking-widget {
	background: var(--c-paper);
	color: var(--c-ink);                                    /* defensiv (Skill) */
	border-radius: var(--r-3);
	box-shadow: var(--shadow-l);
	padding: var(--s-4);
	max-width: 420px;
	width: 100%;
	margin-left: auto;
}
.nyc-booking-widget * { color: inherit; }                /* defensiv */
.nyc-booking-widget__header { margin-bottom: var(--s-3); }
.nyc-booking-widget__title { font-size: var(--fs-500); margin-bottom: var(--s-1); }
.nyc-booking-widget__meta  { color: var(--c-ink-soft); font-size: var(--fs-200); margin: 0; }
.nyc-booking-widget__price-block {
	display: flex; align-items: baseline; gap: var(--s-1);
	padding: var(--s-3) 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line);
	margin-bottom: var(--s-3);
}
.nyc-booking-widget__price-from { font-size: var(--fs-300); color: var(--c-ink-soft); }
.nyc-booking-widget__price { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-800); color: var(--c-ink); line-height: 1; }
.nyc-booking-widget__price-meta { font-size: var(--fs-200); color: var(--c-ink-soft); margin-left: auto; }
.nyc-booking-widget__rating-line {
	display: flex; align-items: center; gap: 6px;
	color: var(--c-ink); margin-bottom: var(--s-2);
}
.nyc-booking-widget__stars { color: var(--c-accent); font-size: var(--fs-500); }
.nyc-booking-widget__rating-line [data-nyc-rating] { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-500); color: var(--c-ink); line-height: 1; }
.nyc-booking-widget__rating-line [data-nyc-reviews] { font-weight: 700; color: var(--c-ink); }
.nyc-booking-widget__rating-line > span:last-child { color: var(--c-ink-soft); font-size: var(--fs-200); }
.nyc-booking-widget__rating-line[hidden],
.nyc-booking-widget__rating-empty[hidden] { display: none; }
.nyc-booking-widget__rating-empty {
	font-size: var(--fs-200); color: var(--c-ink-soft); font-style: italic;
	margin: 0 0 var(--s-2);
}
.nyc-booking-widget__best-pick {
	display: flex; align-items: baseline; gap: var(--s-1); flex-wrap: wrap;
	font-size: var(--fs-300); color: var(--c-ink); margin: 0 0 var(--s-3) 0;
	padding: var(--s-2) 0 var(--s-3); border-top: 1px solid var(--c-line);
}
.nyc-booking-widget__best-pick strong { color: var(--c-ink); font-weight: 700; }
.nyc-booking-widget__best-label { font-weight: 700; color: var(--c-trust); }
.nyc-booking-widget__features { list-style: none; padding: 0; margin: 0 0 var(--s-3); display: grid; gap: 6px; font-size: var(--fs-200); }
.nyc-booking-widget__features li { display: flex; align-items: center; gap: var(--s-1); color: var(--c-ink); }
.nyc-booking-widget__features svg { color: var(--c-trust); flex: 0 0 14px; }
.nyc-booking-widget__cta-row { display: grid; gap: var(--s-1); }
.nyc-booking-widget__compare-link {
	background: transparent; border: 0; cursor: pointer;
	font: inherit; color: var(--c-accent-dk); text-decoration: underline; padding: var(--s-1);
}
.nyc-booking-widget__trust {
	display: flex; align-items: center; gap: var(--s-1);
	margin-top: var(--s-2); font-size: var(--fs-100); color: var(--c-ink-soft);
}
.nyc-booking-widget__trust svg { color: var(--c-trust); flex: 0 0 14px; }
.nyc-booking-widget__on { opacity: 0.85; }

@media (max-width: 899px) {
	.nyc-booking-widget { max-width: 100%; margin-left: 0; }
}

/* ============================================================
   8. Price-Comparison-Table
   ============================================================ */
.nyc-price-table { padding: var(--s-7) 0; }
.nyc-price-table__header { margin-bottom: var(--s-4); }
.nyc-price-table__title  { font-size: var(--fs-700); }
.nyc-price-table__sub    { color: var(--c-ink-soft); font-size: var(--fs-400); }
.nyc-price-table__rows   { display: grid; gap: var(--s-3); }   /* erhoehter Row-Abstand seit Feedback 19.6. */
.nyc-price-table__row {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
	gap: var(--s-3);
	align-items: center;
	background: var(--c-paper); color: var(--c-ink);   /* defensiv */
	border: 1px solid var(--c-line); border-radius: var(--r-2);
	padding: var(--s-4) var(--s-4);
	position: relative;   /* Anker fuer Best-Pick-Ribbon */
}
.nyc-price-table__row * { color: inherit; }
.nyc-price-table__row--best {
	border-color: var(--c-trust); border-width: 2px;
	background: var(--c-trust-soft);
	padding-top: calc(var(--s-4) + var(--s-1));   /* Luft fuer das Ribbon oben */
}
/* "Bester Preis"-Badge als Ribbon mittig auf dem oberen Rand der ganzen Zeile */
.nyc-price-table__row--best .nyc-badge--trust {
	position: absolute;
	top: 0; left: 50%;
	transform: translate(-50%, -50%);
	padding: 4px 14px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	z-index: 2;
}
.nyc-price-table__brand {
	display: flex; flex-direction: column;
	align-items: flex-start;
	gap: var(--s-1);
}
.nyc-price-table__operator {
	font-family: var(--font-display); font-weight: 800; font-size: var(--fs-500); color: var(--c-ink);
	line-height: 1.1;
	margin-bottom: 2px;
}
.nyc-price-table__operator-sub {
	font-size: var(--fs-200); color: var(--c-ink-soft);
	font-weight: 500;
	line-height: 1.3;
	margin-bottom: 2px;
}
.nyc-price-table__variant {
	font-size: var(--fs-200); color: var(--c-ink);
	font-weight: 600;
	line-height: 1.3;
	margin-bottom: 2px;
}
.nyc-price-table__departure {
	font-size: var(--fs-100); color: var(--c-ink-soft);
	line-height: 1.3;
	opacity: 0.85;
	margin-bottom: 2px;
}
.nyc-price-table__destination {
	font-size: var(--fs-100); color: var(--c-ink-soft);
	line-height: 1.3;
	opacity: 0.85;
	margin-bottom: 2px;
}
.nyc-price-table__price-unit {
	display: block;
	font-size: var(--fs-100); color: var(--c-ink-soft);
	font-weight: 500;
	line-height: 1.2;
	margin-top: 2px;
}
.nyc-price-table__rating-empty {
	font-size: var(--fs-200); color: var(--c-ink-soft);
	font-style: italic;
}
.nyc-price-table__reseller {
	font-size: var(--fs-200); color: var(--c-ink-soft);
	display: inline-flex; align-items: center; gap: 6px;
	line-height: 1;
	margin-top: 2px;
}
/* Inline-Pille fuer Min-Pax-Warnung (oder kuenftig saisonale/Operator-Hinweise) */
.nyc-pill {
	display: inline-flex; align-items: center;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: var(--fs-100); font-weight: 700;
	line-height: 1.4;
	white-space: nowrap;
	cursor: help;
}
.nyc-pill--warn {
	background: var(--c-warn-soft);
	color: var(--c-warn);
	border: 1px solid var(--c-warn);
}
.nyc-pill--mute {
	background: #eef0f4;
	color: var(--c-ink-soft);
	border: 1px solid #cdd3dd;
}
.nyc-pill--soft {
	background: var(--c-paper-warm);
	color: #8a7339;
	border: 1px dashed #c9b790;
}
/* Pax-Switch (Westchester) */
.nyc-pax-switch {
	display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2);
	margin-top: var(--s-3);
}
.nyc-pax-switch__label {
	font-size: var(--fs-300); font-weight: 600; color: var(--c-ink);
}
.nyc-pax-switch__buttons {
	display: inline-flex; gap: 0;
	background: var(--c-paper-mute);
	border: 1px solid var(--c-line);
	border-radius: var(--r-2);
	padding: 3px;
}
.nyc-pax-switch__btn {
	background: transparent; border: 0; cursor: pointer;
	padding: 6px 14px;
	font: inherit; font-weight: 600;
	color: var(--c-ink-soft);
	border-radius: calc(var(--r-2) - 2px);
	transition: background 0.12s, color 0.12s;
	min-width: 36px;
}
.nyc-pax-switch__btn:hover { color: var(--c-ink); }
.nyc-pax-switch__btn.is-active {
	background: var(--c-paper);
	color: var(--c-ink);
	box-shadow: 0 1px 2px rgba(15,20,40,0.10);
}
/* Total-Subline pro Row */
.nyc-price-table__total {
	display: block;
	margin-top: 4px;
	font-size: var(--fs-200);
	color: var(--c-ink);
	line-height: 1.3;
}
.nyc-price-table__total strong {
	font-weight: 700;
	color: var(--c-trust);
}
/* Unavailable-Row (Pax-aware: min_pax verfehlt oder ueber Kapazitaet).
   Visuell zurueckhaltend, aber buchbar bleibt der Link — User soll selbst entscheiden. */
.nyc-price-table__row--unavailable {
	opacity: 0.65;
}
.nyc-price-table__row--unavailable .nyc-btn--primary {
	background: var(--c-paper-mute);
	color: var(--c-ink-soft);
	border-color: var(--c-line);
	pointer-events: auto;
}
.nyc-price-table__price-unavail-label {
	display: block;
	font-size: var(--fs-200);
	font-weight: 600;
	color: var(--c-warn);
	line-height: 1.2;
}
.nyc-price-table__price-amount--strike {
	text-decoration: line-through;
	color: var(--c-ink-soft);
	opacity: 0.7;
}
.nyc-price-table__price-unavail-hint {
	display: block;
	font-size: var(--fs-100);
	color: var(--c-ink-soft);
	margin-top: 2px;
}
.nyc-price-table__logo {
	font-family: var(--font-display); font-weight: 700;
	font-size: var(--fs-200); color: var(--c-ink);
}
.nyc-price-table__logo--fallback { color: var(--c-ink-soft); }

/* Logo-Bilder einheitlich auf Höhe 28px, max-width damit Headout nicht zu breit wird */
.nyc-price-table__logo-img {
	height: 24px;
	width: auto;
	max-width: 110px;
	object-fit: contain;
	display: inline-block;
	vertical-align: middle;
}
.nyc-price-table__logo-img--headout { max-width: 110px; }
.nyc-price-table__logo-img--viator  { max-width: 80px; }
.nyc-price-table__logo-img--tiqets  { max-width: 70px; }
.nyc-price-table__logo-img--gyg     { max-width: 50px; height: 28px; }
.nyc-price-table__price { display: flex; align-items: baseline; gap: 4px; }
.nyc-price-table__price-from   { color: var(--c-ink-soft); font-size: var(--fs-200); }
.nyc-price-table__price-amount { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-600); color: var(--c-ink); }
.nyc-price-table__rating { display: flex; align-items: center; gap: 6px; color: var(--c-ink); }
.nyc-price-table__rating > [aria-hidden] { color: var(--c-accent); font-size: var(--fs-500); }
.nyc-price-table__rating > [data-nyc-rating] { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-500); color: var(--c-ink); line-height: 1; }
.nyc-price-table__rating-meta { color: var(--c-ink-soft); font-size: var(--fs-200); }
.nyc-price-table__footnote { margin-top: var(--s-3); color: var(--c-ink-soft); font-size: var(--fs-200); }

@media (max-width: 899px) {
	.nyc-price-table__row {
		grid-template-columns: 1fr;
		gap: var(--s-2);
		padding: var(--s-3);
	}
}

/* ============================================================
   9. Tour-Card (Listing)
   ============================================================ */
.nyc-tour-card {
	display: block; background: var(--c-paper); color: var(--c-ink);   /* defensiv */
	border: 1px solid var(--c-line); border-radius: var(--r-3); overflow: hidden;
	text-decoration: none; box-shadow: var(--shadow-s);
	transition: transform .15s ease, box-shadow .15s ease;
}
.nyc-tour-card * { color: inherit; }
.nyc-tour-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-m); text-decoration: none; }
.nyc-tour-card__media { position: relative; aspect-ratio: 3/2; overflow: hidden; background: var(--c-paper-mute); }
.nyc-tour-card__img { width: 100%; height: 100%; object-fit: cover; }
.nyc-tour-card__badge {
	position: absolute; top: var(--s-2); right: var(--s-2);
	background: var(--c-paper); color: var(--c-ink); font-size: var(--fs-100); font-weight: 700;
	padding: 4px var(--s-2); border-radius: var(--r-pill);
	box-shadow: var(--shadow-s);
}
.nyc-tour-card__badge--bestseller { background: var(--c-accent); color: var(--c-accent-tx); }
.nyc-tour-card__body { padding: var(--s-3) var(--s-4) var(--s-4); }
.nyc-tour-card__title { font-size: var(--fs-500); }
.nyc-tour-card__meta { color: var(--c-ink-soft); font-size: var(--fs-200); margin-bottom: var(--s-2); }
.nyc-tour-card__cta { color: var(--c-accent-dk); font-weight: 700; }

/* ============================================================
   10. Buttons
   ============================================================ */
.nyc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s-1);
	padding: var(--s-2) var(--s-3); border-radius: var(--r-2); border: 0;
	font-family: var(--font-display); font-weight: 700; font-size: var(--fs-300);
	cursor: pointer; text-decoration: none; line-height: 1.2; color: inherit;
	transition: background .15s ease, transform .05s ease;
}
.nyc-btn:hover { text-decoration: none; }
.nyc-btn:active { transform: translateY(1px); }
.nyc-btn--primary { background: var(--c-accent); color: var(--c-accent-tx); }
.nyc-btn--primary:hover { background: var(--c-accent-dk); color: var(--c-accent-tx); }
.nyc-btn--secondary { background: transparent; color: var(--c-ink); border: 1px solid var(--c-ink); }
.nyc-btn--secondary:hover { background: var(--c-ink); color: var(--c-paper); }
/* --ghost: für dunkle Backgrounds (Hero über Bild). Heller Border + heller Text,
   transparenter Background. Auf Hover invertiert. */
.nyc-btn--ghost {
	background: transparent;
	color: #fff;
	border: 1.5px solid rgba(255, 255, 255, 0.85);
}
.nyc-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.95);
	color: var(--c-ink);
	border-color: #fff;
}
.nyc-btn--lg { font-size: var(--fs-400); padding: var(--s-3) var(--s-4); }
.nyc-btn--block { width: 100%; }

/* ============================================================
   11. Badges
   ============================================================ */
.nyc-badge {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 2px var(--s-2); border-radius: var(--r-pill);
	font-size: var(--fs-100); font-weight: 700;
}
.nyc-badge--trust { background: var(--c-trust); color: #ffffff; }
.nyc-badge--accent { background: var(--c-accent); color: var(--c-accent-tx); }

/* ============================================================
   12. FAQ
   ============================================================ */
.nyc-faq { display: grid; gap: var(--s-1); }
.nyc-faq__item {
	background: var(--c-paper); color: var(--c-ink);    /* defensiv */
	border: 1px solid var(--c-line); border-radius: var(--r-2); padding: var(--s-2) var(--s-4);
}
.nyc-faq__item * { color: inherit; }
.nyc-faq__question {
	cursor: pointer; font-weight: 700; padding: var(--s-2) 0; list-style: none;
}
.nyc-faq__question::-webkit-details-marker { display: none; }
.nyc-faq__question::after { content: '+'; float: right; color: var(--c-accent-dk); font-weight: 800; }
.nyc-faq__item[open] .nyc-faq__question::after { content: '−'; }
.nyc-faq__answer { padding: 0 0 var(--s-3); color: var(--c-ink); }
.nyc-faq__answer p { margin: var(--s-1) 0; }

/* ============================================================
   13. Sticky-Bar
   ============================================================ */
.nyc-stickybar {
	position: fixed; left: 0; right: 0; bottom: 0;
	z-index: var(--z-sticky);
	background: var(--c-paper);
	border-top: 1px solid var(--c-line);
	box-shadow: 0 -4px 16px rgba(11,20,36,.10);
	padding: var(--s-2) var(--container-pad) calc(var(--s-2) + env(safe-area-inset-bottom, 0px));
	transform: translateY(100%);
	transition: transform .25s ease;
}
.nyc-stickybar[data-visible="1"] { transform: translateY(0); }
.nyc-stickybar__inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center;
	gap: var(--s-3);
	max-width: var(--container-max); margin: 0 auto;
}
.nyc-stickybar__info { display: flex; flex-direction: column; min-width: 0; }
.nyc-stickybar__title { font-size: var(--fs-200); color: var(--c-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nyc-stickybar__price { font-family: var(--font-display); font-weight: 800; color: var(--c-ink); font-size: var(--fs-500); }

/* ============================================================
   13.5 Honest-Heads-up / Warning-Box
   (Skill-Pattern: vorgelagerter Block ueber Reseller-Tabelle —
   ehrliche Erwartungsklaerung statt Storno-Frust)
   ============================================================ */
.nyc-headsup {
	background: var(--c-warn-soft);
	border: 1.5px dashed var(--c-warn);
	border-radius: var(--r-2);
	padding: var(--s-4) var(--s-4);
	margin: 0 0 var(--s-5);
	color: var(--c-ink);
}
.nyc-headsup__inner { max-width: 880px; margin: 0 auto; }
.nyc-headsup__title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-500);
	color: var(--c-ink);
	margin: 0 0 var(--s-2);
	display: flex; align-items: center; gap: var(--s-2);
}
.nyc-headsup__title::before {
	content: "!";
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.6em; height: 1.6em; min-width: 1.6em;
	border-radius: 50%;
	background: var(--c-warn); color: #fff;
	font-weight: 800; font-size: 0.9em; line-height: 1;
}
.nyc-headsup__body { color: var(--c-ink); font-size: var(--fs-300); line-height: var(--lh-relaxed); margin: 0; }
.nyc-headsup__body p { margin: 0 0 var(--s-2); }
.nyc-headsup__body p:last-child { margin-bottom: 0; }
.nyc-headsup__body strong { color: var(--c-ink); }
@media (max-width: 899px) {
	.nyc-headsup { padding: var(--s-3); }
	.nyc-headsup__title { font-size: var(--fs-400); }
}

/* Soft-Modifier: ehrliche Aufklaerung, kein Warn-Orange
   (z. B. doors_off_photo — FlyNYON-Preis-Transparenz, kein Storno-Risiko).
   Cream-Background, neutraler grauer dashed Border, dezentes Info-Icon. */
.nyc-headsup--soft {
	background: var(--c-paper-warm);
	border: 1.5px dashed #c9b790;
}
.nyc-headsup--soft .nyc-headsup__title::before {
	content: "i";
	background: #8a7339;
	font-family: var(--font-display);
	font-style: italic;
}

/* ============================================================
   13.6 Direct-Operator-CTA (fuer Touren ohne Affiliate-Programm)
   Wird statt der Reseller-Tabelle gerendert, wenn data/tours.php
   das Feld provider_mode = 'direct' setzt (z. B. doors_off_photo).
   Eine oder mehrere Operator-Cards mit Brand, Preis-Range, Direct-CTA.
   ============================================================ */
.nyc-direct-cta {
	padding: var(--s-7) 0;
}
.nyc-direct-cta__header { text-align: center; margin-bottom: var(--s-5); }
.nyc-direct-cta__title { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-700); color: var(--c-ink); margin: 0 0 var(--s-2); }
.nyc-direct-cta__sub   { color: var(--c-ink-soft); font-size: var(--fs-300); margin: 0 auto; max-width: 640px; }
.nyc-direct-cta__cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--s-4);
	max-width: 880px;
	margin: 0 auto;
}
.nyc-direct-card {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: var(--r-2);
	padding: var(--s-5);
	display: flex; flex-direction: column; gap: var(--s-3);
	box-shadow: 0 1px 2px rgba(15,20,40,0.04);
}
.nyc-direct-card__operator { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-500); color: var(--c-ink); margin: 0; }
.nyc-direct-card__tagline  { color: var(--c-ink-soft); font-size: var(--fs-300); margin: 0; }
.nyc-direct-card__price-row { display: flex; align-items: baseline; gap: var(--s-1); }
.nyc-direct-card__price-from  { color: var(--c-ink-soft); font-size: var(--fs-200); }
.nyc-direct-card__price-amount { font-family: var(--font-display); font-weight: 800; font-size: var(--fs-700); color: var(--c-ink); }
.nyc-direct-card__price-meta   { color: var(--c-ink-soft); font-size: var(--fs-200); }
.nyc-direct-card__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--s-1); }
.nyc-direct-card__features li { color: var(--c-ink); font-size: var(--fs-300); display: flex; align-items: center; gap: var(--s-1); }
.nyc-direct-card__features svg { color: var(--c-accent-dk); flex-shrink: 0; }
.nyc-direct-card__cta { margin-top: auto; }
.nyc-direct-card__disclaimer { color: var(--c-ink-soft); font-size: var(--fs-200); font-style: italic; margin: 0; }

/* ============================================================
   14. Closing-Banner
   ============================================================ */
.nyc-closing {
	background-size: cover; background-position: center;
	padding: var(--s-8) 0;
	color: #ffffff;
}
.nyc-closing__inner { text-align: center; max-width: 720px; margin: 0 auto; }
.nyc-closing__title { color: #ffffff; font-size: var(--fs-700); margin-bottom: var(--s-2); }
.nyc-closing__sub   { color: rgba(255,255,255,.9); font-size: var(--fs-400); margin-bottom: var(--s-4); }

/* ============================================================
   15. Footer
   ============================================================ */
.nyc-footer { background: var(--c-night); color: var(--c-night-tx); padding: var(--s-7) 0 var(--s-5); margin-top: 0; }
.nyc-footer * { color: inherit; }
.nyc-footer__cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--s-5); margin-bottom: var(--s-5); }
.nyc-footer__col-title { color: #ffffff; font-size: var(--fs-300); margin-bottom: var(--s-2); }
.nyc-footer__link-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s-1); }
.nyc-footer__link { color: var(--c-night-tx); opacity: 0.85; }
.nyc-footer__link:hover { color: #ffffff; opacity: 1; text-decoration: underline; }
.nyc-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: var(--s-4); }
.nyc-footer__disclosure { font-size: var(--fs-100); opacity: 0.7; }
@media (max-width: 899px) {
	.nyc-footer__cols { grid-template-columns: 1fr; gap: var(--s-4); }
}

/* ============================================================
   404 / Error Page
   ============================================================ */
.nyc-err-main { background: var(--c-cream, #faf6ef); min-height: 60vh; }
.nyc-err { padding: var(--s-7) 0; }
.nyc-err__inner { max-width: 640px; text-align: center; margin: 0 auto; padding: var(--s-6) var(--s-3); }
.nyc-err__code { font-family: var(--ff-display, inherit); font-size: 96px; line-height: 1; font-weight: 800; color: var(--c-ink, #15233a); opacity: 0.12; letter-spacing: -0.04em; margin-bottom: var(--s-3); }
.nyc-err__title { font-size: var(--fs-700, 2rem); color: var(--c-ink, #15233a); margin-bottom: var(--s-3); }
.nyc-err__sub { font-size: var(--fs-400, 1.05rem); color: var(--c-ink, #15233a); opacity: 0.75; margin-bottom: var(--s-5); }
@media (max-width: 899px) {
	.nyc-err__code { font-size: 72px; }
	.nyc-err { padding: var(--s-5) 0; }
}

/* ============================================================
   16. Operator-Pages (Session 9)
   ============================================================ */

/* 16.1 Operator-Hero — nutzt .nyc-hero--tour Variante + Eyebrow */
.nyc-hero--operator .nyc-hero__inner { display: grid; grid-template-columns: 1fr; gap: var(--s-4); align-items: end; }
.nyc-hero--operator .nyc-hero__content { color: #fff; }
.nyc-hero--operator .nyc-hero__eyebrow { font-size: var(--fs-200); letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-accent); opacity: 1; }

/* 16.2 Operator-Trust-Bar — 3-4 Trust-Items als Inline-Reihe */
.nyc-op-trustbar { background: var(--c-paper-warm); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); padding: var(--s-4) 0; }
.nyc-op-trustbar__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-3); }
.nyc-op-trustbar__item { display: flex; flex-direction: column; gap: 2px; color: var(--c-ink); }
.nyc-op-trustbar__item-key { font-size: var(--fs-100); letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-ink-soft); }
.nyc-op-trustbar__item-val { font-size: var(--fs-400); font-weight: 600; color: var(--c-ink); line-height: var(--lh-tight); }
@media (max-width: 700px) {
	.nyc-op-trustbar__row { grid-template-columns: 1fr 1fr; }
}

/* 16.3 Operator-Tour-List — Card-Grid mit Live-Bestpick */
.nyc-operator-tour-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--s-4); }
.nyc-op-tour-card { background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-3); overflow: hidden; box-shadow: var(--shadow-s); display: flex; flex-direction: column; color: var(--c-ink); transition: transform .15s ease, box-shadow .15s ease; }
.nyc-op-tour-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-m); }
.nyc-op-tour-card__media { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--c-paper-mute); }
.nyc-op-tour-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nyc-op-tour-card__body { padding: var(--s-3); display: flex; flex-direction: column; gap: var(--s-2); flex: 1; }
.nyc-op-tour-card__eyebrow { font-size: var(--fs-100); letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-ink-soft); margin: 0; }
.nyc-op-tour-card__title { font-size: var(--fs-400); margin: 0; line-height: var(--lh-tight); }
.nyc-op-tour-card__title a { color: var(--c-ink); text-decoration: none; }
.nyc-op-tour-card__title a:hover { text-decoration: underline; }
.nyc-op-tour-card__price-row { display: flex; align-items: baseline; gap: var(--s-1); margin-top: auto; }
.nyc-op-tour-card__price-from { font-size: var(--fs-100); color: var(--c-ink-soft); text-transform: uppercase; letter-spacing: 0.05em; }
.nyc-op-tour-card__price-amount { font-size: var(--fs-500); font-weight: 700; color: var(--c-ink); }
.nyc-op-tour-card__price-meta { font-size: var(--fs-100); color: var(--c-ink-soft); }
.nyc-op-tour-card__cta { color: var(--c-accent); font-weight: 600; font-size: var(--fs-200); text-decoration: none; }
.nyc-op-tour-card__cta:hover { text-decoration: underline; }

/* 16.4 Fleet-Cards */
.nyc-fleet-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s-3); }
.nyc-fleet-card { background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-3); padding: var(--s-4); color: var(--c-ink); display: flex; flex-direction: column; gap: var(--s-1); }
.nyc-fleet-card__icon { color: var(--c-accent); }
.nyc-fleet-card__model { font-size: var(--fs-400); margin: 0; line-height: var(--lh-tight); }
.nyc-fleet-card__seats { font-size: var(--fs-200); color: var(--c-ink-soft); margin: 0; }
.nyc-fleet-card__note { font-size: var(--fs-200); color: var(--c-ink); margin: var(--s-1) 0 0; line-height: var(--lh-cosy); }

/* 16.5 Hub-Page Operator-Cards (Card-Grid auf /operators/) */
.nyc-operator-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--s-4); }
.nyc-operator-card { background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-3); overflow: hidden; box-shadow: var(--shadow-s); color: var(--c-ink); transition: transform .15s ease, box-shadow .15s ease; }
.nyc-operator-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-m); }
.nyc-operator-card__link { display: flex; flex-direction: column; color: var(--c-ink); text-decoration: none; height: 100%; }
.nyc-operator-card__media { aspect-ratio: 16/9; overflow: hidden; background: var(--c-paper-mute); }
.nyc-operator-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nyc-operator-card__body { padding: var(--s-4); display: flex; flex-direction: column; gap: var(--s-2); flex: 1; }
.nyc-operator-card__name { font-size: var(--fs-500); margin: 0; line-height: var(--lh-tight); }
.nyc-operator-card__twin-pill { display: inline-flex; align-self: flex-start; background: var(--c-paper-warm); border: 1px dashed #c9b790; padding: 2px 8px; border-radius: var(--r-pill); font-size: var(--fs-100); color: var(--c-ink); letter-spacing: 0.02em; margin: 0; }
.nyc-operator-card__usp { font-size: var(--fs-200); color: var(--c-ink-soft); margin: 0; line-height: var(--lh-relaxed); }
.nyc-operator-card__meta { font-size: var(--fs-100); color: var(--c-ink-soft); text-transform: uppercase; letter-spacing: 0.06em; margin: 0; }
.nyc-operator-card__cta { color: var(--c-accent); font-weight: 600; font-size: var(--fs-200); margin-top: auto; }
.nyc-operator-card--featured { border-color: var(--c-accent); }
.nyc-operator-card--tier2 { background: var(--c-paper-mute); }

/* 16.6 Hub-Page Tier-Row-Labels */
.nyc-op-hub-tier-row { margin-bottom: var(--s-4); }
.nyc-op-hub-tier-row__label { font-size: var(--fs-100); letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-ink-soft); margin: 0 0 var(--s-2); }

@media (max-width: 700px) {
	.nyc-operator-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   17. Heliports (Session 10)
   17.1  .nyc-hp-trustbar           — Trust-Bar inkl. Item-Note (Fee-Subtext)
   17.2  .nyc-map                   — Leaflet-Wrapper (Single + Multi)
   17.3  .nyc-heliport-arrival      — 3-col Grid (Auto / OePNV / Parking)
   17.4  .nyc-heliport-operators    — Card-Grid pro Heliport
   17.5  .nyc-heliport-card         — einzelne Operator-Card auf Heliport-Page
   ============================================================ */

/* 17.1  Trust-Bar erweitert — Item-Note (Fee-Subtext "$40 per person, paid at check-in") */
.nyc-op-trustbar__item-note {
	display: block;
	font-size: var(--fs-100);
	color: var(--c-ink-soft);
	margin-top: 2px;
	line-height: var(--lh-cosy);
}

/* 17.2  Leaflet-Karte */
.nyc-map {
	width: 100%;
	min-height: 480px;
	border-radius: 12px;
	border: 1px solid var(--c-line);
	background: var(--c-paper-mute);
	overflow: hidden;
	margin-top: var(--s-3);
}
.nyc-map__noscript {
	padding: var(--s-4);
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
}
.nyc-map__footnote {
	margin-top: var(--s-2);
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2) var(--s-4);
	align-items: baseline;
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
}
.nyc-map__address { color: var(--c-ink-soft); }

@media (max-width: 700px) {
	.nyc-map { min-height: 320px; }
}

/* Leaflet-Tile-Container darf nicht ueber den Wrapper hinauswachsen */
.nyc-map .leaflet-container { height: 100%; min-height: inherit; background: var(--c-paper-mute); font-family: var(--font-body); }

/* 17.3  Anreise-Grid 3-spaltig */
.nyc-heliport-arrival {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--s-4);
	margin-top: var(--s-3);
}
.nyc-heliport-arrival__col {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: var(--s-4);
	color: var(--c-ink);
}
.nyc-heliport-arrival__icon {
	width: 36px;
	height: 36px;
	color: var(--c-accent);
	margin-bottom: var(--s-2);
}
.nyc-heliport-arrival__icon svg { width: 100%; height: 100%; display: block; }
.nyc-heliport-arrival__label {
	font-family: var(--font-display);
	font-size: var(--fs-400);
	font-weight: 700;
	margin: 0 0 var(--s-1);
	color: var(--c-ink);
}
.nyc-heliport-arrival__body {
	font-size: var(--fs-200);
	line-height: var(--lh-relaxed);
	color: var(--c-ink-soft);
	margin: 0;
}

@media (max-width: 900px) {
	.nyc-heliport-arrival { grid-template-columns: 1fr; }
}

/* 17.4 + 17.5  Operator-Cards auf Heliport-Page */
.nyc-heliport-operators {
	display: grid;
	gap: var(--s-4);
	margin-top: var(--s-3);
}
.nyc-heliport-operators--count-1 { grid-template-columns: minmax(0, 560px); }
.nyc-heliport-operators--count-2 { grid-template-columns: 1fr 1fr; }
.nyc-heliport-operators--count-3 { grid-template-columns: repeat(3, 1fr); }
.nyc-heliport-operators--count-4 { grid-template-columns: 1fr 1fr; }

.nyc-heliport-card {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color 0.15s ease, transform 0.15s ease;
	color: var(--c-ink);
}
.nyc-heliport-card:hover { border-color: var(--c-accent); transform: translateY(-2px); }
.nyc-heliport-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}
.nyc-heliport-card__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--c-paper-mute);
}
.nyc-heliport-card__media img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.nyc-heliport-card__body {
	padding: var(--s-4);
	display: flex;
	flex-direction: column;
	gap: var(--s-1);
	color: var(--c-ink);
}
.nyc-heliport-card__name {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
	margin: 0;
	color: var(--c-ink);
}
.nyc-heliport-card__twin-pill {
	display: inline-block;
	font-size: var(--fs-100);
	background: var(--c-paper-warm);
	color: var(--c-warn);
	padding: 2px var(--s-2);
	border-radius: 999px;
	margin: 0;
	width: fit-content;
}
.nyc-heliport-card__usp {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	line-height: var(--lh-relaxed);
	margin: var(--s-1) 0 0;
}
.nyc-heliport-card__cta {
	margin-top: var(--s-3);
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--c-accent);
	font-size: var(--fs-300);
}

@media (max-width: 900px) {
	.nyc-heliport-operators--count-2,
	.nyc-heliport-operators--count-3,
	.nyc-heliport-operators--count-4 { grid-template-columns: 1fr; }
}

/* 17.6  Hub-Page Card-Grid (5 Heliport-Cards in 3 Region-Gruppen) */
.nyc-hp-hub-region { margin-bottom: var(--s-5); }
.nyc-hp-hub-region:last-child { margin-bottom: 0; }

.nyc-heliport-hub-grid {
	display: grid;
	gap: var(--s-4);
	margin-top: var(--s-2);
}
.nyc-heliport-hub-grid--count-1 { grid-template-columns: minmax(0, 560px); }
.nyc-heliport-hub-grid--count-2 { grid-template-columns: 1fr 1fr; }
.nyc-heliport-hub-grid--count-3 { grid-template-columns: repeat(3, 1fr); }

.nyc-heliport-hub-card {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color 0.15s ease, transform 0.15s ease;
	color: var(--c-ink);
}
.nyc-heliport-hub-card:hover { border-color: var(--c-accent); transform: translateY(-2px); }
.nyc-heliport-hub-card__link {
	display: flex; flex-direction: column;
	height: 100%;
	color: inherit; text-decoration: none;
}
.nyc-heliport-hub-card__media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--c-paper-mute);
}
.nyc-heliport-hub-card__media img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.nyc-heliport-hub-card__code-pill {
	position: absolute;
	top: var(--s-2);
	left: var(--s-2);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-200);
	letter-spacing: 0.05em;
	background: rgba(11, 20, 36, 0.85);
	color: #fff;
	padding: 4px 10px;
	border-radius: 6px;
	backdrop-filter: blur(4px);
}
.nyc-heliport-hub-card__body {
	padding: var(--s-4);
	display: flex; flex-direction: column;
	gap: var(--s-1);
	color: var(--c-ink);
}
.nyc-heliport-hub-card__name {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
	margin: 0;
	color: var(--c-ink);
}
.nyc-heliport-hub-card__name-code {
	font-weight: 500;
	color: var(--c-ink-soft);
	font-size: var(--fs-400);
}
.nyc-heliport-hub-card__usp {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	line-height: var(--lh-relaxed);
	margin: var(--s-1) 0 0;
}
.nyc-heliport-hub-card__meta {
	font-size: var(--fs-100);
	color: var(--c-ink-soft);
	margin: var(--s-2) 0 0;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.nyc-heliport-hub-card__cta {
	margin-top: var(--s-2);
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--c-accent);
	font-size: var(--fs-300);
}

/* Tier-Region Accent-Border (zarter Hauch unterschiedlich) */
.nyc-heliport-hub-card--manhattan { border-top: 3px solid var(--c-accent); }
.nyc-heliport-hub-card--nj { border-top: 3px solid var(--c-trust); }
.nyc-heliport-hub-card--westchester { border-top: 3px solid var(--c-region-westchester); }

/* Map Multi-Mode (Hub-Karte mit 5 Pins) — leicht hoeher fuer Region-Uebersicht */
.nyc-map--multi { min-height: 520px; }
@media (max-width: 700px) { .nyc-map--multi { min-height: 360px; } }

.nyc-map__noscript-list { margin: 0; padding: var(--s-4) var(--s-4) var(--s-4) var(--s-5); }
.nyc-map__noscript-list li { margin: 0 0 var(--s-1); }

@media (max-width: 900px) {
	.nyc-heliport-hub-grid--count-2,
	.nyc-heliport-hub-grid--count-3 { grid-template-columns: 1fr; }
}


/* ============================================================
   SECTION 18 — GUIDE PAGES (Session 11)
   Long-Form-Renderer, Vergleichstabelle, Quiz, gemeinsame
   Komponenten (Section-Body, Inline-CTA, Cards, Grids, Tables)
   ============================================================ */

/* ---- 18.1  Grundgeruest ---- */
.nyc-guide__inner {
	max-width: 880px;
	margin: 0 auto;
	padding: var(--s-7) var(--s-4);
}
@media (max-width: 700px) {
	.nyc-guide__inner { padding: var(--s-6) var(--s-3); }
}
.nyc-guide__section {
	margin: 0 0 var(--s-6);
}
.nyc-guide__section--tight { margin-bottom: var(--s-4); }
.nyc-guide__h2 {
	font-family: var(--font-display);
	font-size: var(--fs-600);
	line-height: var(--lh-tight);
	color: var(--c-ink);
	margin: 0 0 var(--s-3);
}
@media (max-width: 700px) {
	.nyc-guide__h2 { font-size: var(--fs-500); }
}

/* Long-Form Prosa */
.nyc-prose {
	font-family: var(--font-body);
	font-size: var(--fs-400);
	line-height: var(--lh-relaxed);
	color: var(--c-ink);
}
.nyc-prose p { margin: 0 0 var(--s-3); }
.nyc-prose p:last-child { margin-bottom: 0; }
.nyc-prose strong { font-weight: 700; color: var(--c-ink); }

/* Hero-Modifier */
.nyc-hero--guide .nyc-hero__title { font-size: var(--fs-800); }
@media (max-width: 700px) {
	.nyc-hero--guide .nyc-hero__title { font-size: var(--fs-700); }
}

/* ---- 18.2  Inline-CTA (Multi-Inline-Hybrid-Pattern) ---- */
.nyc-guide__cta-inline {
	margin: var(--s-5) 0;
	padding: var(--s-3) 0;
	border-top: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
	text-align: center;
}
.nyc-btn--inline {
	display: inline-flex;
	align-items: center;
	gap: var(--s-1);
	background: transparent;
	color: var(--c-accent-dk);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--fs-400);
	padding: var(--s-1) 0;
	border: none;
	text-decoration: none;
	border-bottom: 2px solid currentColor;
	border-radius: 0;
	transition: color 0.15s ease;
}
.nyc-btn--inline:hover { color: var(--c-accent); }
.nyc-btn__arrow { transition: transform 0.15s ease; display: inline-block; }
.nyc-btn--inline:hover .nyc-btn__arrow { transform: translateX(3px); }

/* ---- 18.3  Tabellen-Basis (Long-Form-Renderer) ---- */
.nyc-guide-table-wrap {
	overflow-x: auto;
	margin: 0 0 var(--s-3);
	-webkit-overflow-scrolling: touch;
}
.nyc-guide-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-body);
	font-size: var(--fs-300);
	line-height: var(--lh-cosy);
	background: var(--c-paper);
}
.nyc-guide-table th,
.nyc-guide-table td {
	padding: var(--s-2) var(--s-3);
	text-align: left;
	border-bottom: 1px solid var(--c-line);
	vertical-align: top;
	color: var(--c-ink);
}
.nyc-guide-table thead th {
	background: var(--c-paper-mute);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--fs-200);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--c-ink-soft);
	border-bottom: 2px solid var(--c-line);
}
.nyc-guide-table tbody tr:last-child td { border-bottom: none; }
.nyc-guide-table a {
	color: var(--c-accent-dk);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}
.nyc-guide-table a:hover { color: var(--c-accent); }

/* Region-Header-Rows in heliport_table */
.nyc-guide-table__region-row th {
	background: var(--c-paper-warm);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-300);
	color: var(--c-ink);
	letter-spacing: 0.02em;
	text-transform: none;
	padding-top: var(--s-3);
	padding-bottom: var(--s-2);
}
.nyc-guide-table__region-row--manhattan { border-left: 3px solid var(--c-accent); }
.nyc-guide-table__region-row--nj { border-left: 3px solid var(--c-trust); }
.nyc-guide-table__region-row--westchester { border-left: 3px solid var(--c-region-westchester); }

/* Score-Badge (best/good/mixed/avoid) im month_table */
.nyc-guide-table__score {
	display: inline-block;
	padding: 2px var(--s-1);
	border-radius: 999px;
	font-size: var(--fs-100);
	font-family: var(--font-display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: var(--c-paper-mute);
	color: var(--c-ink-soft);
}
.nyc-guide-table__score--best  { background: var(--c-trust-soft); color: var(--c-trust); }
.nyc-guide-table__score--good  { background: #eaf5ff; color: #1d4ed8; }
.nyc-guide-table__score--mixed { background: var(--c-warn-soft); color: var(--c-warn); }
.nyc-guide-table__score--avoid { background: #fee2e2; color: #b91c1c; }

/* Matrix (Operator × Cert) */
.nyc-guide-table--matrix th,
.nyc-guide-table--matrix td { text-align: center; }
.nyc-guide-table--matrix tbody th { text-align: left; }
.nyc-guide-table__cert {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
}
.nyc-guide-table__cert.is-yes { color: var(--c-trust); }
.nyc-guide-table__cert.is-no  { color: var(--c-ink-soft); opacity: 0.5; }
.nyc-guide-table__note {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	line-height: var(--lh-cosy);
	margin: var(--s-2) 0 0;
	font-style: italic;
}

/* ---- 18.4  Card-Grids (3- und 4-Spalten Long-Form) ---- */
.nyc-guide-grid {
	display: grid;
	gap: var(--s-3);
	margin: 0 0 var(--s-3);
}
.nyc-guide-grid--2 { grid-template-columns: repeat(2, 1fr); }
.nyc-guide-grid--3 { grid-template-columns: repeat(3, 1fr); }
.nyc-guide-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
	.nyc-guide-grid--3,
	.nyc-guide-grid--4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.nyc-guide-grid--2,
	.nyc-guide-grid--3,
	.nyc-guide-grid--4 { grid-template-columns: 1fr; }
}
.nyc-guide-card {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 10px;
	padding: var(--s-4);
	color: var(--c-ink);
}
.nyc-guide-card__eyebrow {
	font-size: var(--fs-100);
	font-family: var(--font-display);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--c-accent-dk);
	margin: 0 0 var(--s-1);
}
.nyc-guide-card__title {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
	color: var(--c-ink);
	margin: 0 0 var(--s-1);
	line-height: var(--lh-tight);
}
.nyc-guide-card__title--mono {
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	font-size: var(--fs-400);
}
.nyc-guide-card__meta {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-2);
	font-family: var(--font-display);
}
.nyc-guide-card__body {
	font-size: var(--fs-300);
	color: var(--c-ink);
	line-height: var(--lh-relaxed);
	margin: 0;
}

/* Tageszeit-Karten — Accent-Border je Slot */
.nyc-guide-card--tod-morning  { border-top: 3px solid #60a5fa; }
.nyc-guide-card--tod-midday   { border-top: 3px solid var(--c-trust); }
.nyc-guide-card--tod-golden   { border-top: 3px solid var(--c-accent); }
.nyc-guide-card--tod-night    { border-top: 3px solid var(--c-night); }

/* ---- 18.5  Price-Breakdown (gd_doors) ---- */
.nyc-guide-breakdown {
	background: var(--c-paper-warm);
	border: 1px solid var(--c-line);
	border-radius: 10px;
	padding: var(--s-3) var(--s-4);
	margin: 0 0 var(--s-3);
}
.nyc-guide-breakdown__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: var(--s-1) 0;
	border-bottom: 1px dashed var(--c-line);
	font-family: var(--font-body);
	font-size: var(--fs-400);
	color: var(--c-ink);
}
.nyc-guide-breakdown__row:last-child { border-bottom: none; }
.nyc-guide-breakdown__label {
	color: var(--c-ink-soft);
}
.nyc-guide-breakdown__value {
	font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
	font-weight: 600;
	white-space: nowrap;
	font-size: var(--fs-400);
}
.nyc-guide-breakdown__value--strike {
	text-decoration: line-through;
	opacity: 0.55;
}
.nyc-guide-breakdown__row--total {
	border-top: 2px solid var(--c-ink);
	margin-top: var(--s-2);
	padding-top: var(--s-2);
	font-weight: 700;
}
.nyc-guide-breakdown__row--total .nyc-guide-breakdown__label { color: var(--c-ink); font-weight: 700; }
.nyc-guide-breakdown__row--total .nyc-guide-breakdown__value { color: var(--c-accent-dk); font-size: var(--fs-500); }
.nyc-guide-breakdown__note {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	font-style: italic;
	margin: var(--s-2) 0 0;
	line-height: var(--lh-cosy);
}

/* ---- 18.6  Vergleichstabelle (gd_vs — Helicopter vs. observation decks) ---- */
.nyc-vs-table-wrap { display: block; }
.nyc-vs-cards { display: none; }
@media (max-width: 1000px) {
	.nyc-vs-table-wrap { display: none; }
	.nyc-vs-cards { display: grid; gap: var(--s-3); }
}

.nyc-vs-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-family: var(--font-body);
	font-size: var(--fs-300);
	background: var(--c-paper);
}
.nyc-vs-table thead th {
	padding: var(--s-3) var(--s-2);
	text-align: left;
	background: var(--c-paper-mute);
	border-bottom: 2px solid var(--c-line);
	vertical-align: bottom;
}
.nyc-vs-table thead th:first-child { width: 22%; }
.nyc-vs-table__opt-name {
	display: block;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-400);
	color: var(--c-ink);
	line-height: var(--lh-tight);
}
.nyc-vs-table__pick {
	display: inline-block;
	margin-top: var(--s-1);
	background: var(--c-accent);
	color: var(--c-accent-tx);
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 2px var(--s-1);
	border-radius: 4px;
}
.nyc-vs-table__opt--heli { background: #fff7e8; }
.nyc-vs-table tbody th {
	padding: var(--s-2) var(--s-2);
	text-align: left;
	background: var(--c-paper);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-bottom: 1px solid var(--c-line);
	vertical-align: top;
}
.nyc-vs-table tbody td {
	padding: var(--s-2) var(--s-2);
	border-bottom: 1px solid var(--c-line);
	color: var(--c-ink);
	vertical-align: top;
	line-height: var(--lh-cosy);
}
.nyc-vs-table tbody tr:last-child th,
.nyc-vs-table tbody tr:last-child td { border-bottom: none; }
.nyc-vs-table tbody td:first-of-type { background: rgba(255, 247, 232, 0.4); }
.nyc-vs-table__note {
	margin: var(--s-3) 0 0;
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	font-style: italic;
	line-height: var(--lh-cosy);
}

/* Mobile Vergleichs-Cards */
.nyc-vs-card {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 10px;
	padding: var(--s-3);
}
.nyc-vs-card--heli {
	border-color: var(--c-accent);
	background: #fff7e8;
}
.nyc-vs-card__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--s-2);
	margin: 0 0 var(--s-2);
	padding: 0 0 var(--s-2);
	border-bottom: 1px solid var(--c-line);
}
.nyc-vs-card__title {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-500);
	margin: 0;
	color: var(--c-ink);
}
.nyc-vs-card__pick {
	background: var(--c-accent);
	color: var(--c-accent-tx);
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 2px var(--s-1);
	border-radius: 4px;
	white-space: nowrap;
}
.nyc-vs-card__rows { margin: 0; }
.nyc-vs-card__row { padding: var(--s-1) 0; border-bottom: 1px solid var(--c-line); }
.nyc-vs-card__row:last-child { border-bottom: none; }
.nyc-vs-card__row dt {
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--c-ink-soft);
	margin: 0 0 2px;
}
.nyc-vs-card__row dd {
	font-size: var(--fs-300);
	color: var(--c-ink);
	margin: 0;
	line-height: var(--lh-cosy);
}

/* ---- 18.7  Quiz (gd_quiz — 5-Frage-Quiz) ---- */
.nyc-quiz {
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: var(--s-4);
}
@media (max-width: 700px) {
	.nyc-quiz { padding: var(--s-3); border-radius: 10px; }
}

/* Progress */
.nyc-quiz__progress {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0 0 var(--s-4);
}
.nyc-quiz__progress-bar {
	flex: 1;
	height: 6px;
	background: var(--c-paper-mute);
	border-radius: 999px;
	overflow: hidden;
}
.nyc-quiz__progress-fill {
	display: block;
	height: 100%;
	background: var(--c-accent);
	transition: width 0.3s ease;
}
.nyc-quiz__progress-meta {
	font-family: var(--font-display);
	font-size: var(--fs-200);
	font-weight: 600;
	color: var(--c-ink-soft);
	white-space: nowrap;
}

/* Question-Karten — nur aktive sichtbar */
.nyc-quiz__question { display: none; }
.nyc-quiz__question.is-active { display: block; }

.nyc-quiz__step-label {
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--c-accent-dk);
	margin: 0 0 var(--s-1);
}
.nyc-quiz__h {
	font-family: var(--font-display);
	font-size: var(--fs-600);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--c-ink);
	margin: 0 0 var(--s-4);
}
@media (max-width: 700px) {
	.nyc-quiz__h { font-size: var(--fs-500); }
}
.nyc-quiz__answers {
	display: grid;
	gap: var(--s-2);
	margin: 0 0 var(--s-3);
}
.nyc-quiz__answer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--s-2);
	background: var(--c-paper);
	border: 1.5px solid var(--c-line);
	border-radius: 8px;
	padding: var(--s-2) var(--s-3);
	cursor: pointer;
	font-family: var(--font-body);
	font-size: var(--fs-400);
	color: var(--c-ink);
	text-align: left;
	transition: border-color 0.15s ease, background 0.15s ease, transform 0.05s ease;
}
.nyc-quiz__answer:hover {
	border-color: var(--c-accent);
	background: #fff7e8;
}
.nyc-quiz__answer:active { transform: scale(0.99); }
.nyc-quiz__answer-arrow {
	color: var(--c-accent-dk);
	font-size: var(--fs-500);
	font-weight: 700;
	transition: transform 0.15s ease;
	flex-shrink: 0;
}
.nyc-quiz__answer:hover .nyc-quiz__answer-arrow { transform: translateX(4px); }

.nyc-quiz__back {
	background: transparent;
	border: none;
	color: var(--c-ink-soft);
	font-family: var(--font-display);
	font-size: var(--fs-200);
	font-weight: 600;
	cursor: pointer;
	padding: var(--s-1) 0;
	display: inline-flex;
	align-items: center;
	gap: var(--s-1);
}
.nyc-quiz__back:hover { color: var(--c-accent-dk); }

/* Ergebnis-Karte */
.nyc-quiz__result {
	background: linear-gradient(135deg, #fff7e8 0%, var(--c-paper) 100%);
	border: 2px solid var(--c-accent);
	border-radius: 12px;
	padding: var(--s-5);
	text-align: center;
}
@media (max-width: 700px) {
	.nyc-quiz__result { padding: var(--s-4); }
}
.nyc-quiz__result-eyebrow {
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--c-accent-dk);
	margin: 0 0 var(--s-2);
}
.nyc-quiz__result-title {
	font-family: var(--font-display);
	font-size: var(--fs-700);
	font-weight: 700;
	line-height: var(--lh-tight);
	color: var(--c-ink);
	margin: 0 0 var(--s-3);
}
@media (max-width: 700px) {
	.nyc-quiz__result-title { font-size: var(--fs-600); }
}
.nyc-quiz__result-usp {
	font-size: var(--fs-400);
	color: var(--c-ink);
	line-height: var(--lh-relaxed);
	margin: 0 0 var(--s-4);
	max-width: 540px;
	margin-left: auto;
	margin-right: auto;
}
.nyc-quiz__result-cta {
	display: inline-block;
	margin: 0 0 var(--s-3);
}
.nyc-quiz__result-alt {
	margin: var(--s-3) 0 var(--s-3);
	padding: var(--s-2) 0 0;
	border-top: 1px solid var(--c-line);
}
.nyc-quiz__result-alt-label {
	font-family: var(--font-display);
	font-size: var(--fs-100);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--c-ink-soft);
	margin: 0 0 var(--s-1);
}
.nyc-quiz__result-alt-link {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--c-accent-dk);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	font-size: var(--fs-400);
}
.nyc-quiz__result-alt-link:hover { color: var(--c-accent); }
.nyc-quiz__restart {
	background: transparent;
	border: none;
	color: var(--c-ink-soft);
	font-family: var(--font-display);
	font-size: var(--fs-200);
	font-weight: 600;
	cursor: pointer;
	padding: var(--s-1) var(--s-2);
	text-decoration: underline;
}
.nyc-quiz__restart:hover { color: var(--c-accent-dk); }



/* ============================================================
   SECTION 19 — FAQ-HUB + COMBO-HUB (Session 12)
   ============================================================ */

/* ---- 19.1  Filter-Tabs (FAQ-Hub) ---- */
.nyc-faqhub-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-1);
	margin: 0 0 var(--s-5);
	padding: 0;
	list-style: none;
}
.nyc-faqhub-tab {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: var(--fs-200);
	color: var(--c-ink);
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: 999px;
	padding: var(--s-1) var(--s-3);
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
	white-space: nowrap;
}
.nyc-faqhub-tab:hover {
	border-color: var(--c-accent-dk);
	color: var(--c-accent-dk);
}
.nyc-faqhub-tab--active {
	background: var(--c-accent-dk);
	border-color: var(--c-accent-dk);
	color: #fff;
}

/* Mobile: horizontal scrollbarer Tab-Bar */
@media (max-width: 700px) {
	.nyc-faqhub-tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: var(--s-1);
		scrollbar-width: thin;
	}
	.nyc-faqhub-tab {
		flex-shrink: 0;
	}
}

/* ---- 19.2  FAQ-Hub: Gruppen-Headings + Related-Inline-Links ---- */
.nyc-faqhub-group {
	margin-bottom: var(--s-6);
}
.nyc-faqhub-group__heading {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: var(--fs-500);
	color: var(--c-ink);
	margin: 0 0 var(--s-3);
	padding-bottom: var(--s-2);
	border-bottom: 1px solid var(--c-border);
}
.nyc-faq__related {
	margin: var(--s-2) 0 0;
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
}
.nyc-faq__related-label {
	font-weight: 600;
	color: var(--c-ink);
}
.nyc-faq__related-link {
	color: var(--c-accent-dk);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}
.nyc-faq__related-link:hover {
	color: var(--c-accent);
}

/* ============================================================
   20. Home-Page (Session 13)
   ============================================================ */

/* 20.1 Section-Header Center-Modifier (Mini-Quiz nutzt ihn) */
.nyc-section__header--center {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}
.nyc-section__header--center .nyc-lead {
	margin-left: auto;
	margin-right: auto;
}

/* 20.2 Mini-Quiz — recyclet .nyc-quiz, einzige Override: kompaktere Padding */
.nyc-quiz--mini {
	max-width: 720px;
	margin: 0 auto;
}
.nyc-quiz--mini .nyc-quiz__h {
	font-size: var(--fs-500);
}
.nyc-miniquiz-outside {
	max-width: 720px;
	margin: var(--s-5) auto 0;
	padding: var(--s-3) var(--s-4);
	border-radius: var(--r-2);
	background: var(--c-paper-warm);
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
	text-align: center;
	line-height: var(--lh-relaxed);
}

/* Mini-Quiz Full-Quiz-Link unterhalb der Ergebnis-CTA */
.nyc-quiz__result-full-quiz {
	margin-top: var(--s-3);
	font-size: var(--fs-200);
	text-align: center;
}
.nyc-quiz__result-full-quiz .nyc-link {
	color: var(--c-ink-soft);
	text-decoration: underline;
	text-decoration-color: var(--c-line);
}
.nyc-quiz__result-full-quiz .nyc-link:hover {
	color: var(--c-accent-dk);
	text-decoration-color: var(--c-accent);
}

/* 20.3 Smart-Picks-Row — 3 Cards mit Live-Preisen */
.nyc-smartpicks {
	margin-top: var(--s-5);
}
.nyc-smartpick {
	display: flex;
	flex-direction: column;
	gap: var(--s-2);
	padding: var(--s-5);
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: var(--r-3);
	box-shadow: var(--shadow-s);
	color: var(--c-ink);
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.nyc-smartpick:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-m);
	border-color: var(--c-accent);
}
.nyc-smartpick__icon {
	color: var(--c-accent);
	margin-bottom: var(--s-1);
}
.nyc-smartpick__title {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
	color: var(--c-ink);
	margin: 0;
}
.nyc-smartpick__desc {
	color: var(--c-ink-soft);
	font-size: var(--fs-300);
	line-height: var(--lh-relaxed);
	margin: 0;
	flex: 1 0 auto;
}
.nyc-smartpick__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--s-1);
	margin: var(--s-2) 0 0;
	padding-top: var(--s-3);
	border-top: 1px solid var(--c-line);
}
.nyc-smartpick__price-label {
	font-size: var(--fs-200);
	color: var(--c-ink-soft);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.nyc-smartpick__price-value {
	font-family: var(--font-display);
	font-size: var(--fs-700);
	font-weight: 700;
	color: var(--c-ink);
	line-height: 1;
}
.nyc-smartpick__price-sub {
	font-size: var(--fs-100);
	color: var(--c-trust);
	margin-left: var(--s-1);
}
.nyc-smartpick__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--s-1);
	margin-top: var(--s-2);
	color: var(--c-accent-dk);
	font-weight: 600;
	font-size: var(--fs-300);
}
.nyc-smartpick:hover .nyc-smartpick__cta {
	color: var(--c-accent);
}

@media (max-width: 720px) {
	.nyc-smartpicks {
		grid-template-columns: 1fr;
	}
	.nyc-smartpick {
		padding: var(--s-4);
	}
	.nyc-smartpick__price-value {
		font-size: var(--fs-600);
	}
}

/* 20.4 Compare-all-Tours — Tabelle Desktop, Cards Mobile */
.nyc-compare-all {
	margin-top: var(--s-5);
}
.nyc-compare-all--desktop {
	display: block;
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: var(--r-3);
	overflow: hidden;
}
.nyc-compare-all--mobile {
	display: none;
}
.nyc-compare-all__head,
.nyc-compare-all__row {
	display: grid;
	grid-template-columns: 2.2fr 1.2fr 1fr 1.4fr 1.3fr 1.1fr;
	gap: var(--s-3);
	align-items: center;
	padding: var(--s-3) var(--s-4);
	border-bottom: 1px solid var(--c-line);
}
.nyc-compare-all__row:last-child {
	border-bottom: 0;
}
.nyc-compare-all__head {
	background: var(--c-paper-mute);
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.nyc-compare-all__row {
	transition: background 0.15s ease;
}
.nyc-compare-all__row:hover {
	background: var(--c-paper-mute);
}
.nyc-compare-all__cell {
	color: var(--c-ink);
	font-size: var(--fs-300);
	line-height: var(--lh-cosy);
}
.nyc-compare-all__cell--head {
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
}
.nyc-compare-all__cell--num {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--c-accent-dk);
	text-align: left;
}
.nyc-compare-all__cell--cta {
	text-align: right;
}
.nyc-compare-all__tour-link {
	color: var(--c-ink);
	font-weight: 600;
	text-decoration: none;
}
.nyc-compare-all__tour-link:hover {
	color: var(--c-accent-dk);
	text-decoration: underline;
}
.nyc-btn--sm {
	padding: var(--s-1) var(--s-3);
	font-size: var(--fs-200);
}

@media (max-width: 800px) {
	.nyc-compare-all--desktop {
		display: none;
	}
	.nyc-compare-all--mobile {
		display: flex;
		flex-direction: column;
		gap: var(--s-2);
	}
	.nyc-compare-all__card {
		display: block;
		position: relative;
		background: var(--c-paper);
		border: 1px solid var(--c-line);
		border-radius: var(--r-3);
		padding: var(--s-3) var(--s-4);
		color: var(--c-ink);
		text-decoration: none;
		box-shadow: var(--shadow-s);
	}
	.nyc-compare-all__card-head {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: var(--s-2);
		margin-bottom: var(--s-2);
		padding-right: var(--s-4); /* Platz für den Arrow */
	}
	.nyc-compare-all__card-title {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: var(--fs-400);
		color: var(--c-ink);
		margin: 0;
	}
	.nyc-compare-all__card-price {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: var(--fs-500);
		color: var(--c-accent-dk);
		flex-shrink: 0;
	}
	.nyc-compare-all__card-meta {
		list-style: none;
		margin: 0;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: var(--s-0);
		font-size: var(--fs-200);
		color: var(--c-ink-soft);
	}
	.nyc-compare-all__card-label {
		display: inline-block;
		min-width: 80px;
		color: var(--c-ink-soft);
		font-weight: 600;
	}
	.nyc-compare-all__card-arrow {
		position: absolute;
		top: var(--s-3);
		right: var(--s-4);
		color: var(--c-accent);
		font-size: var(--fs-500);
		line-height: 1;
	}
}

/* 20.5 Home-Map (kompakt, 5 Pins) */
.nyc-map--compact {
	min-height: 400px;
	margin-top: var(--s-4);
}
.nyc-home-map__cta {
	text-align: center;
	margin-top: var(--s-4);
}

/* 20.6 Operator-Text-Cards-Grid */
.nyc-home-operators {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--s-3);
	margin-top: var(--s-5);
}
.nyc-home-op-card {
	position: relative;
	display: block;
	padding: var(--s-4);
	background: var(--c-paper);
	border: 1px solid var(--c-line);
	border-radius: var(--r-3);
	color: var(--c-ink);
	text-decoration: none;
	box-shadow: var(--shadow-s);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
	overflow: hidden;
}
.nyc-home-op-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-m);
	border-color: var(--c-accent);
}
.nyc-home-op-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--c-line);
}
.nyc-home-op-card--tier-1::before {
	background: var(--c-accent);
}
.nyc-home-op-card--tier-1-5::before {
	background: var(--c-accent-dk);
}
.nyc-home-op-card--tier-2::before {
	background: var(--c-trust);
}
.nyc-home-op-card__name {
	font-family: var(--font-display);
	font-size: var(--fs-500);
	font-weight: 700;
	color: var(--c-ink);
	margin: var(--s-1) 0 var(--s-2);
}
.nyc-home-op-card__usp {
	color: var(--c-ink-soft);
	font-size: var(--fs-200);
	line-height: var(--lh-relaxed);
	margin: 0;
	padding-right: var(--s-4); /* Platz für Arrow */
}
.nyc-home-op-card__arrow {
	position: absolute;
	bottom: var(--s-3);
	right: var(--s-4);
	color: var(--c-accent);
	font-size: var(--fs-400);
	line-height: 1;
	transition: transform 0.18s ease;
}
.nyc-home-op-card:hover .nyc-home-op-card__arrow {
	transform: translateX(3px);
}
.nyc-home-operators__cta {
	text-align: center;
	margin-top: var(--s-4);
}

/* 20.7 Home-FAQ-CTA */
.nyc-home-faq__cta {
	text-align: center;
	margin-top: var(--s-4);
}

/* 20.8 Container Narrow Modifier (für Long-Form-Sections) — fallback wenn nicht definiert */
.nyc-container--narrow {
	max-width: 760px;
}

/* ===========================================================================
   21. Legal-Pages (Session 14)
   Reine Text-Pages mit langer Prosa, viele Subheadings, einige Listen +
   GROSSBUCHSTABEN-Hinweis-Blöcke (Art. 21 GDPR Pflicht-Wortlaut).
   =========================================================================== */
.nyc-h4 {
	font-family: var(--ff-heading);
	font-weight: 700;
	line-height: var(--lh-tight);
	letter-spacing: -0.01em;
	color: var(--c-ink);
	font-size: var(--fs-400);
	margin: var(--s-4) 0 var(--s-2);
}

.nyc-prose--legal h2 {
	margin-top: var(--s-6);
	margin-bottom: var(--s-3);
}
.nyc-prose--legal h2:first-child {
	margin-top: 0;
}
.nyc-prose--legal h3 {
	margin-top: var(--s-5);
	margin-bottom: var(--s-2);
}
.nyc-prose--legal ul {
	margin: 0 0 var(--s-3);
	padding-left: var(--s-4);
}
.nyc-prose--legal ul li {
	font-size: var(--fs-400);
	color: var(--c-ink);
	margin-bottom: var(--s-1);
	line-height: var(--lh-body, 1.6);
}
.nyc-prose--legal a {
	color: var(--c-accent-dk);
	text-decoration: underline;
	word-break: break-word;
}
.nyc-prose--legal a:hover {
	color: var(--c-accent);
}

/* Pflicht-Großbuchstaben-Blöcke (Art. 21 GDPR). Kleinere Schrift + Spacing,
   damit der Block nicht aggressiv wirkt. */
.nyc-prose__caps {
	font-size: var(--fs-300, 0.875rem);
	line-height: 1.6;
	letter-spacing: 0.01em;
	color: var(--c-ink-mute, #4a4a4a);
	padding: var(--s-3);
	background: var(--c-cream, #faf7f0);
	border-left: 3px solid var(--c-accent);
	margin: var(--s-3) 0;
}
