/* ─────────────────────────────────────────────
   CabinetWarRooms.com — style.css
   Design system: Bunker (deep steel) + Ochre + Paper
   Typography: Fraunces (display serif) + Inter (UI sans)
   Read components.md before adding classes.
   ───────────────────────────────────────────── */

/* ─── Custom properties ─── */
:root {
	/* Colors */
	--c-bunker:      #1F2A34;
	--c-bunker-2:    #131C24;
	--c-bunker-3:    #2A3844;
	--c-ochre:       #D4A24C;
	--c-ochre-deep:  #A8792E;
	--c-ochre-soft:  #E9C782;
	--c-paper:       #F5F1E8;
	--c-paper-2:     #EDE8DA;
	--c-paper-3:     #FAF7EF;
	--c-ink:         #111820;
	--c-ink-2:       #4A5560;
	--c-ink-3:       #7A828C;
	--c-line:        #E1DACA;
	--c-line-dark:   #2E3A46;
	--c-red:         #B23B2F;
	--c-green:       #2E7D5A;
	--c-white:       #FFFFFF;

	/* Type */
	--f-display: "Fraunces", Georgia, serif;
	--f-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	/* Spacing (4-based) */
	--s-1: 4px;
	--s-2: 8px;
	--s-3: 12px;
	--s-4: 16px;
	--s-5: 24px;
	--s-6: 32px;
	--s-7: 48px;
	--s-8: 64px;
	--s-9: 96px;
	--s-10: 128px;

	/* Radii */
	--r-1: 6px;
	--r-2: 10px;
	--r-3: 14px;
	--r-4: 20px;

	/* Elevation */
	--sh-1: 0 1px 2px rgba(17,24,32,.06), 0 2px 8px rgba(17,24,32,.05);
	--sh-2: 0 6px 20px rgba(17,24,32,.10), 0 2px 6px rgba(17,24,32,.06);
	--sh-3: 0 20px 40px rgba(17,24,32,.14), 0 8px 16px rgba(17,24,32,.08);

	/* Container */
	--wrap: 1160px;

	/* Sticky bar height (used for body padding-bottom on mobile) */
	--stickybar-h: 72px;
}

/* ─── Reset / base ─── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--f-body);
	font-size: 17px;
	line-height: 1.55;
	color: var(--c-ink);
	background: var(--c-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, picture { max-width: 100%; height: auto; display: block; }
a { color: var(--c-ochre-deep); text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color .18s; }
a:hover { text-decoration-color: currentColor; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 700; line-height: 1.15; margin: 0 0 var(--s-4); color: var(--c-ink); }
h1 { font-size: clamp(2.2rem, 3.4vw + 1rem, 4rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.7rem, 1.4vw + 1.1rem, 2.4rem); letter-spacing: -.015em; }
h3 { font-size: clamp(1.15rem, .3vw + 1.05rem, 1.35rem); letter-spacing: -.01em; }
p  { margin: 0 0 var(--s-4); }
ul { padding-inline-start: 1.2em; margin: 0 0 var(--s-4); }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--c-ochre); outline-offset: 3px; border-radius: 2px; }

.skiplink {
	position: absolute; left: -9999px; top: 0;
	background: var(--c-bunker); color: var(--c-white); padding: var(--s-3) var(--s-4);
	z-index: 200;
}
.skiplink:focus { left: var(--s-4); top: var(--s-4); }

/* ─── Wrap ─── */
.wrap {
	max-width: var(--wrap);
	margin: 0 auto;
	padding-inline: var(--s-5);
}
@media (max-width: 640px) { .wrap { padding-inline: var(--s-4); } }

/* ─── Buttons ─── */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--s-2);
	padding: var(--s-4) var(--s-5);
	border-radius: var(--r-2);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: .01em;
	text-decoration: none;
	border: 1.5px solid transparent;
	transition: transform .12s ease, box-shadow .18s ease, background-color .18s ease;
	line-height: 1.1;
	white-space: nowrap;
}
.btn--lg { padding: var(--s-5) var(--s-6); font-size: 1.05rem; }
.btn--primary {
	background: var(--c-ochre);
	color: var(--c-bunker);
	box-shadow: var(--sh-1);
}
.btn--primary:hover { background: var(--c-ochre-deep); color: var(--c-white); box-shadow: var(--sh-2); transform: translateY(-1px); }
.btn--ghost {
	background: transparent;
	color: var(--c-ink);
	border-color: var(--c-ink);
}
.btn--ghost:hover { background: var(--c-ink); color: var(--c-paper); }
.btn--dark {
	background: transparent;
	color: var(--c-paper);
	border-color: var(--c-paper);
}
.btn--dark:hover { background: var(--c-paper); color: var(--c-bunker); }

.eyebrow {
	display: inline-block;
	font-family: var(--f-body);
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-ochre-deep);
	margin-bottom: var(--s-3);
}

/* ─── Header ─── */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--c-paper);
	border-bottom: 1px solid var(--c-line);
	backdrop-filter: saturate(140%) blur(6px);
}
.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--s-5);
	min-height: 66px;
}
.brand {
	display: inline-flex;
	align-items: center;
	gap: var(--s-3);
	color: var(--c-bunker);
	text-decoration: none;
	font-family: var(--f-display);
	font-weight: 700;
}
.brand__mark { color: var(--c-ochre-deep); display: inline-flex; }
.brand__wordmark { font-size: 1.15rem; letter-spacing: -.01em; }
.brand__tld { color: var(--c-ochre-deep); }
.brand--footer { color: var(--c-paper); }
.brand--footer .brand__mark { color: var(--c-ochre); }
.brand--footer .brand__tld  { color: var(--c-ochre); }

.nav {
	margin-inline-start: auto;
	display: flex;
	align-items: center;
	gap: var(--s-5);
}
.nav__link {
	color: var(--c-ink);
	text-decoration: none;
	font-weight: 500;
	font-size: .96rem;
	padding: var(--s-2) 0;
	border-bottom: 2px solid transparent;
	transition: border-color .18s, color .18s;
}
.nav__link:hover { color: var(--c-ochre-deep); border-bottom-color: var(--c-ochre); }

.langswitch { display: flex; align-items: center; gap: var(--s-2); }
.langswitch__label { display: none; }
.langswitch__select {
	appearance: none;
	background: var(--c-paper-3);
	border: 1px solid var(--c-line);
	color: var(--c-ink);
	padding: var(--s-2) calc(var(--s-5) + 6px) var(--s-2) var(--s-3);
	border-radius: var(--r-1);
	font: inherit;
	font-size: .9rem;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%234A5560' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: right var(--s-3) center;
	cursor: pointer;
}

@media (max-width: 780px) {
	.site-header__inner { min-height: 58px; gap: var(--s-3); }
	.nav { display: none; }
	.brand__wordmark { font-size: 1rem; }
	.brand__tld { display: inline; }
}

/* ─── Hero ─── */
.hero {
	position: relative;
	color: var(--c-paper);
	background-color: var(--c-bunker-2);
	overflow: hidden;
	isolation: isolate;
}
.hero__bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center 55%;
	z-index: 0;
	filter: saturate(1.05);
}
.hero__overlay {
	position: absolute; inset: 0;
	background:
		linear-gradient(180deg, rgba(19,28,36,.35) 0%, rgba(19,28,36,.55) 55%, rgba(19,28,36,.85) 100%),
		linear-gradient(90deg, rgba(19,28,36,.75) 0%, rgba(19,28,36,.30) 55%, rgba(19,28,36,.10) 100%);
	z-index: 1;
}
.hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1.35fr .95fr;
	gap: var(--s-7);
	align-items: center;
	padding-block: clamp(var(--s-8), 8vw, var(--s-10)) clamp(var(--s-7), 6vw, var(--s-9));
}
.hero__copy { max-width: 620px; }
.hero__eyebrow {
	color: var(--c-ochre-soft);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	margin-bottom: var(--s-4);
}
.hero__eyebrow::before {
	content: "";
	width: 24px; height: 2px;
	background: var(--c-ochre);
	display: inline-block;
}
.hero__h1 {
	color: var(--c-paper-3);
	margin-bottom: var(--s-5);
}
.hero__h1 em {
	color: var(--c-ochre);
	font-style: normal;
	font-weight: 700;
}
.hero__sub {
	color: var(--c-paper);
	font-size: clamp(1.05rem, .35vw + 1rem, 1.18rem);
	line-height: 1.55;
	opacity: .95;
	margin-bottom: var(--s-6);
}
.hero__ctas { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-bottom: var(--s-6); }
.hero__trustline {
	display: flex; flex-wrap: wrap; gap: var(--s-3) var(--s-5);
	color: var(--c-paper);
	font-size: .92rem;
	opacity: .92;
}
.hero__trustline span { display: inline-flex; align-items: center; gap: var(--s-2); }
.hero__trustline strong { color: var(--c-ochre-soft); font-weight: 600; }
.hero__widget-wrap { justify-self: end; width: 100%; max-width: 400px; }

@media (max-width: 900px) {
	.hero__inner { grid-template-columns: 1fr; gap: var(--s-6); padding-block: var(--s-7) var(--s-6); }
	.hero__widget-wrap { justify-self: stretch; max-width: none; }
	/* mobile: hide hero CTAs and trustline — the booking widget carries everything */
	.hero__ctas, .hero__trustline { display: none !important; }
}

/* ─── Booking widget ─── */
.bw {
	background: var(--c-paper-3);
	border-radius: var(--r-3);
	box-shadow: var(--sh-3);
	padding: var(--s-5);
	color: var(--c-ink);          /* explicit — hardening (Prinzip 5) */
	border: 1px solid var(--c-line);
	display: grid;
	gap: var(--s-4);
}
.bw--hero {
	backdrop-filter: saturate(160%);
}
.bw__top {
	display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s-3);
}
.bw__title {
	font-family: var(--f-display); font-size: 1.15rem; margin: 0; color: var(--c-ink);
}
.bw__subtitle {
	margin: 2px 0 0; color: var(--c-ink-2); font-size: .95rem;
}
.bw__rating {
	display: inline-flex; align-items: center; gap: 4px;
	background: var(--c-paper-2); border-radius: 999px;
	padding: 4px var(--s-3);
	font-size: .85rem;
	color: var(--c-ink);
	white-space: nowrap;
}
.bw__rating-star { color: var(--c-ochre-deep); }
.bw__rating-num { font-weight: 700; }
.bw__rating-count { color: var(--c-ink-3); }
.bw__included { display: grid; gap: var(--s-2); }
.bw__inc-label {
	font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--c-ink-3);
}
.bw__inc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.bw__inc-list li {
	position: relative; padding-inline-start: 22px; font-size: .95rem; color: var(--c-ink);
	line-height: 1.4;
}
.bw__inc-list li::before {
	content: "";
	position: absolute; left: 0; top: 6px;
	width: 14px; height: 14px;
	background: var(--c-ochre);
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M2 7.5l3 3 7-7' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	mask-repeat: no-repeat;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M2 7.5l3 3 7-7' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	-webkit-mask-repeat: no-repeat;
}
.bw__buy {
	display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
	margin-top: var(--s-2);
	padding-top: var(--s-4);
	border-top: 1px dashed var(--c-line);
}
.bw__price-block { display: grid; gap: 0; }
.bw__from { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--c-ink-3); }
.bw__price { font-family: var(--f-display); font-size: 1.8rem; font-weight: 700; color: var(--c-ink); line-height: 1; }
.bw__per   { font-size: .82rem; color: var(--c-ink-3); }
.bw__cta { min-width: 180px; }
.bw__partner { margin: 0; font-size: .78rem; color: var(--c-ink-3); }
.bw__partner-sep { color: var(--c-line); margin-inline: 4px; }

/* ─── BW note (audio warning) ─── */
.bw__note {
	font-size: .88rem;
	line-height: 1.45;
	padding: var(--s-3) var(--s-4);
	border-radius: var(--r-1);
	color: var(--c-ink);
	background: rgba(212,162,76,.15);
	border-inline-start: 3px solid var(--c-ochre-deep);
}
.bw__note strong { color: var(--c-ink); }

/* Skeleton price (waiting for API) */
.bw__price--skeleton,
.compare__price-main--skeleton,
.combofeat__price--skeleton {
	color: var(--c-ink-3);
	letter-spacing: -.05em;
	opacity: .7;
}

/* ─── Trust bar ─── */
.trustbar {
	background: var(--c-bunker);
	color: var(--c-paper);
	padding-block: var(--s-5);
	border-bottom: 1px solid var(--c-line-dark);
}
.trustbar__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--s-4);
	align-items: center;
}
.trustbar__item {
	display: flex; align-items: center; gap: var(--s-3);
	font-size: .92rem;
	color: var(--c-paper);
}
.trustbar__icon {
	flex: 0 0 auto;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: rgba(212,162,76,.15);
	color: var(--c-ochre);
	display: inline-flex; align-items: center; justify-content: center;
}
.trustbar__text { color: var(--c-paper); }
@media (max-width: 900px) {
	.trustbar__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.trustbar__item { font-size: .85rem; }
}

/* ─── USP tiles ─── */
.usps { padding-block: clamp(var(--s-8), 6vw, var(--s-9)); background: var(--c-paper); }
.usps__head { text-align: center; max-width: 720px; margin: 0 auto var(--s-7); }
.usps__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }
.usp {
	background: var(--c-paper-3);
	border: 1px solid var(--c-line);
	border-radius: var(--r-3);
	padding: var(--s-6) var(--s-5);
	color: var(--c-ink);
	position: relative;
	transition: transform .2s, box-shadow .2s, border-color .2s;
}
.usp:hover { transform: translateY(-2px); box-shadow: var(--sh-2); border-color: var(--c-ochre-soft); }
.usp__num {
	position: absolute;
	top: var(--s-4); right: var(--s-4);
	font-family: var(--f-display);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--c-ochre-soft);
	opacity: .55;
}
.usp__title { color: var(--c-ink); }
.usp__text { color: var(--c-ink-2); margin-bottom: 0; }

@media (max-width: 900px) { .usps__grid { grid-template-columns: 1fr; gap: var(--s-4); } }

/* ─── Combo feature card ─── */
.combofeat {
	background: var(--c-paper);
	padding-block: clamp(var(--s-7), 5vw, var(--s-9));
}
.combofeat__card {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 0;
	background: linear-gradient(135deg, var(--c-bunker) 0%, var(--c-bunker-2) 100%);
	color: var(--c-paper);
	border-radius: var(--r-4);
	overflow: hidden;
	box-shadow: var(--sh-3);
	position: relative;
	isolation: isolate;
}
.combofeat__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse at top right, rgba(212,162,76,.16) 0%, transparent 55%);
	z-index: 0;
}
.combofeat__body {
	position: relative;
	z-index: 1;
	padding: clamp(var(--s-6), 4vw, var(--s-8));
	display: grid;
	align-content: center;
	gap: var(--s-3);
}
.combofeat__badge {
	position: absolute;
	top: var(--s-5); right: var(--s-5);
	background: var(--c-ochre);
	color: var(--c-bunker);
	font-weight: 700;
	font-size: 1rem;
	padding: var(--s-2) var(--s-4);
	border-radius: 999px;
	box-shadow: var(--sh-1);
	letter-spacing: .02em;
}
.combofeat__eyebrow {
	color: var(--c-ochre-soft);
	font-size: .82rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
}
.combofeat__eyebrow::before {
	content: "";
	width: 24px; height: 2px;
	background: var(--c-ochre);
	display: inline-block;
}
.combofeat__title {
	font-family: var(--f-display);
	font-size: clamp(1.6rem, 2vw + 1rem, 2.4rem);
	color: var(--c-paper-3);
	margin: 0;
	line-height: 1.1;
}
.combofeat__text {
	color: rgba(245,241,232,.9);
	font-size: 1.02rem;
	margin: 0;
	max-width: 62ch;
}
.combofeat__list {
	list-style: none;
	padding: 0;
	margin: var(--s-2) 0 0;
	display: grid;
	gap: 6px;
}
.combofeat__list li {
	position: relative;
	padding-inline-start: 24px;
	color: var(--c-paper);
	font-size: .96rem;
}
.combofeat__list li::before {
	content: "";
	position: absolute; left: 0; top: 6px;
	width: 16px; height: 16px;
	background: var(--c-ochre);
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M2 8l4 4 8-8' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");
	mask-repeat: no-repeat;
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M2 8l4 4 8-8' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");
	-webkit-mask-repeat: no-repeat;
}
.combofeat__side {
	position: relative;
	z-index: 1;
	background: var(--c-paper-3);
	color: var(--c-ink);
	padding: clamp(var(--s-6), 4vw, var(--s-8));
	display: grid;
	gap: var(--s-3);
	align-content: center;
	text-align: left;
}
.combofeat__price-orig {
	color: var(--c-ink-3);
	text-decoration: line-through;
	font-size: 1.1rem;
}
.combofeat__price {
	font-family: var(--f-display);
	font-size: clamp(2.2rem, 3vw + 1.2rem, 3.2rem);
	line-height: 1;
	font-weight: 700;
	color: var(--c-ink);
}
.combofeat__per {
	color: var(--c-ink-3);
	font-size: .88rem;
}
.combofeat__save {
	color: var(--c-green);
	font-weight: 600;
	font-size: .95rem;
}
.combofeat__cta { margin-top: var(--s-3); }
.combofeat__trust {
	font-size: .82rem;
	color: var(--c-ink-3);
	margin-top: var(--s-2);
}
.combofeat__trust strong { color: var(--c-ink); }

@media (max-width: 900px) {
	.combofeat__card { grid-template-columns: 1fr; }
	.combofeat__badge { top: var(--s-4); right: var(--s-4); }
	.combofeat__side { text-align: center; }
	.combofeat__cta { justify-self: center; min-width: 240px; }
}

/* ─── Compare product cell (multi-line with type badge) ─── */
.compare__product {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.compare__ticket-name {
	color: var(--c-ink);
	font-weight: 500;
	line-height: 1.35;
}
.compare__ticket-type {
	display: inline-block;
	width: fit-content;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 2px var(--s-2);
	border-radius: 3px;
	background: var(--c-line);
	color: var(--c-ink);
}
.compare__ticket-type--warn   { background: rgba(178,59,47,.12); color: var(--c-red); }
.compare__ticket-type--audio  { background: rgba(46,125,90,.12); color: var(--c-green); }
.compare__ticket-type--guided { background: rgba(31,42,52,.10);  color: var(--c-bunker); }

/* ─── Compare ─── */
.compare {
	background: var(--c-paper-2);
	padding-block: clamp(var(--s-8), 6vw, var(--s-9));
	border-top: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
}
.compare__head { text-align: center; max-width: 780px; margin: 0 auto var(--s-7); }
.compare__title { color: var(--c-ink); }
.compare__sub   { color: var(--c-ink-2); font-size: 1.02rem; }

.compare__table {
	width: 100%;
	background: var(--c-paper-3);
	border-radius: var(--r-3);
	overflow: hidden;
	box-shadow: var(--sh-1);
	border-collapse: separate;
	border-spacing: 0;
}
.compare__table thead th {
	background: var(--c-bunker);
	color: var(--c-paper);
	text-align: left;
	padding: var(--s-4) var(--s-4);
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: 600;
}
.compare__table tbody td {
	padding: var(--s-5) var(--s-4);
	border-top: 1px solid var(--c-line);
	color: var(--c-ink);
	vertical-align: middle;
}
.compare__row--recommended td { background: rgba(212,162,76,.09); }

.compare__provider { display: flex; flex-direction: column; gap: 4px; }
.compare__provider-name { font-weight: 600; font-family: var(--f-display); font-size: 1.05rem; color: var(--c-ink); }
.compare__provider-badge {
	display: inline-block;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 3px var(--s-2);
	border-radius: 3px;
	margin-inline-end: 6px;
	background: var(--c-line);
	color: var(--c-ink);
	width: fit-content;
}
.compare__provider-badge--best     { background: var(--c-ochre); color: var(--c-bunker); }
.compare__provider-badge--deal     { background: var(--c-green); color: var(--c-white); }
.compare__provider-badge--official { background: var(--c-bunker); color: var(--c-paper); }

.compare__price-main { font-family: var(--f-display); font-size: 1.5rem; font-weight: 700; color: var(--c-ink); line-height: 1; }
.compare__price-orig { text-decoration: line-through; color: var(--c-ink-3); font-size: .95rem; margin-inline-end: 6px; }
.compare__price-note { display: block; font-size: .78rem; color: var(--c-ink-3); margin-top: 2px; }

.compare__rating { display: inline-flex; align-items: center; gap: 4px; color: var(--c-ink); }
.compare__rating-star  { color: var(--c-ochre-deep); }
.compare__rating-num   { font-weight: 700; }
.compare__rating-count { color: var(--c-ink-3); font-size: .88rem; }

.compare__cta { min-width: 130px; }

/* Mobile: turn rows into stacked cards */
@media (max-width: 780px) {
	.compare__table, .compare__table tbody, .compare__table thead, .compare__table tr, .compare__table td, .compare__table th { display: block; }
	.compare__table thead { display: none; }
	.compare__table tr { border-radius: var(--r-3); background: var(--c-paper-3); box-shadow: var(--sh-1); margin-bottom: var(--s-4); padding: var(--s-4); }
	.compare__table tbody td { border: none; padding: 6px 0; }
	.compare__table tbody td::before {
		content: attr(data-label);
		display: block;
		font-size: .72rem;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: .08em;
		color: var(--c-ink-3);
		margin-bottom: 2px;
	}
	.compare__cta { display: block; width: 100%; margin-top: var(--s-3); }
}

/* ─── Facts ─── */
.facts {
	position: relative;
	background: var(--c-bunker);
	color: var(--c-paper);
	padding-block: clamp(var(--s-8), 7vw, var(--s-10));
	overflow: hidden;
}
.facts--bunker::before {
	content: "";
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	opacity: .22;
	z-index: 0;
}
.facts--bunker::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(19,28,36,.75), rgba(19,28,36,.92));
	z-index: 1;
}
.facts > .wrap { position: relative; z-index: 2; }
.facts__head { max-width: 720px; margin: 0 auto var(--s-7); text-align: center; }
.facts__head .eyebrow { color: var(--c-ochre-soft); }
.facts__head h2 { color: var(--c-paper-3); }

.facts__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }
.fact {
	background: rgba(245,241,232,.06);
	border: 1px solid rgba(212,162,76,.25);
	border-radius: var(--r-3);
	padding: var(--s-5);
	color: var(--c-paper);
	display: flex;
	gap: var(--s-4);
}
.fact__num {
	font-family: var(--f-display);
	font-size: 2.2rem;
	line-height: 1;
	color: var(--c-ochre);
	flex: 0 0 auto;
}
.fact__body { color: var(--c-paper); font-size: 1rem; line-height: 1.5; }
@media (max-width: 900px) { .facts__grid { grid-template-columns: 1fr; } }

/* ─── Reviews ─── */
.reviews { padding-block: clamp(var(--s-8), 6vw, var(--s-9)); background: var(--c-paper); }
.reviews__head { text-align: center; max-width: 720px; margin: 0 auto var(--s-7); }
.reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-5); }
.review {
	background: var(--c-paper-3);
	border: 1px solid var(--c-line);
	border-radius: var(--r-3);
	padding: var(--s-5);
	color: var(--c-ink);
	display: flex; flex-direction: column; gap: var(--s-3);
}
.review__stars { color: var(--c-ochre-deep); font-size: 1.05rem; letter-spacing: 2px; line-height: 1; }
.review__body { color: var(--c-ink); font-size: .98rem; line-height: 1.55; margin: 0; flex: 1; }
.review__meta { display: flex; justify-content: space-between; align-items: baseline; font-size: .85rem; color: var(--c-ink-3); border-top: 1px dashed var(--c-line); padding-top: var(--s-3); }
.review__author { color: var(--c-ink); font-weight: 600; }
.review__source { color: var(--c-ink-3); font-size: .78rem; }
@media (max-width: 900px) { .reviews__grid { grid-template-columns: 1fr; } }

/* ─── FAQ ─── */
.faq { padding-block: clamp(var(--s-8), 6vw, var(--s-9)); background: var(--c-paper-2); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.faq__head { text-align: center; max-width: 720px; margin: 0 auto var(--s-7); }
.faq__list { max-width: 800px; margin: 0 auto; display: grid; gap: var(--s-3); }
.faq__item {
	background: var(--c-paper-3);
	border: 1px solid var(--c-line);
	border-radius: var(--r-2);
	overflow: hidden;
}
.faq__item summary {
	list-style: none;
	padding: var(--s-5);
	cursor: pointer;
	font-family: var(--f-display);
	font-size: 1.1rem;
	color: var(--c-ink);
	display: flex; justify-content: space-between; align-items: center; gap: var(--s-3);
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__chev {
	width: 20px; height: 20px; flex: 0 0 auto;
	transition: transform .2s ease;
	color: var(--c-ochre-deep);
}
.faq__item[open] .faq__chev { transform: rotate(180deg); }
.faq__a { padding: 0 var(--s-5) var(--s-5); color: var(--c-ink-2); font-size: 1rem; line-height: 1.55; }
.faq__a p:last-child { margin-bottom: 0; }

/* ─── Closing CTA ─── */
.closing {
	position: relative;
	color: var(--c-paper);
	overflow: hidden;
	isolation: isolate;
	background-color: var(--c-bunker-2);
}
.closing__bg { position: absolute; inset: 0; background-size: cover; background-position: center 40%; z-index: 0; }
.closing__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(19,28,36,.85), rgba(19,28,36,.55) 60%, rgba(19,28,36,.35)); z-index: 1; }
.closing__inner { position: relative; z-index: 2; padding-block: clamp(var(--s-8), 8vw, var(--s-10)); text-align: center; }
.closing__eyebrow { color: var(--c-ochre-soft); }
.closing__title { color: var(--c-paper-3); max-width: 780px; margin: 0 auto var(--s-6); }
.closing__cta { min-width: 260px; }

/* ─── Sticky bar (mobile only) ─── */
.stickybar {
	display: none !important;
	position: fixed;
	left: 0; right: 0; bottom: 0;
	background: var(--c-paper-3);
	border-top: 1px solid var(--c-line);
	box-shadow: 0 -6px 16px rgba(17,24,32,.14);
	padding: var(--s-3) var(--s-4);
	padding-bottom: calc(var(--s-3) + env(safe-area-inset-bottom, 0px));
	z-index: 90;
	color: var(--c-ink);
}
.stickybar__inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
	max-width: 480px;
	margin: 0 auto;
}
.stickybar__price { display: flex; flex-direction: column; }
.stickybar__price small { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--c-ink-3); }
.stickybar__price strong { font-family: var(--f-display); font-size: 1.35rem; color: var(--c-ink); }
.stickybar__cta { min-width: 150px; }

@media (max-width: 900px) {
	.stickybar { display: block !important; }
	body { padding-bottom: calc(var(--stickybar-h) + env(safe-area-inset-bottom, 0px)); }
}

/* ─── Footer ─── */
.site-footer {
	background: var(--c-bunker-2);
	color: var(--c-paper);
	padding-block: var(--s-8) var(--s-6);
}
.site-footer__inner {
	display: grid;
	grid-template-columns: 1.2fr .8fr 1.4fr;
	gap: var(--s-6);
}
.site-footer__tagline { color: rgba(245,241,232,.85); font-size: .95rem; max-width: 340px; }
.site-footer__links { list-style: none; padding: 0; margin: 0 0 var(--s-4); display: flex; flex-wrap: wrap; gap: var(--s-4); }
.site-footer__links a { color: var(--c-paper); text-decoration-color: rgba(245,241,232,.4); font-size: .93rem; }
.site-footer__links a:hover { color: var(--c-ochre-soft); }
.site-footer__meta { color: rgba(245,241,232,.6); font-size: .82rem; margin: 0; }
.site-footer__disclaimer { color: rgba(245,241,232,.75); font-size: .82rem; line-height: 1.55; }
@media (max-width: 900px) { .site-footer__inner { grid-template-columns: 1fr; } }

/* ─── Utility ─── */
.only-mobile  { display: none; }
.only-desktop { display: initial; }
@media (max-width: 780px) {
	.only-mobile  { display: initial; }
	.only-desktop { display: none; }
}
