/* ============================================================
   Airport guide — /airports/{slug}/
   Direction A "Facts rail": sticky at-a-glance card, editorial
   column from the_content(), journey band with the dashed-arc
   route motif, plain FAQ. No JS — sticky is pure CSS.
   Design contract: .planning/design/airport-page/ (mockup +
   README). Tokens only. Enqueued conditionally on
   is_singular('airport') — stays out of the inlined
   critical-CSS budget (D-26).
   ============================================================ */

.airport-guide {
	padding-block: var(--s-8) var(--s-9);
}

.airport-guide__grid {
	display: grid;
	grid-template-columns: var(--grid-12);
	gap: var(--s-8) var(--grid-gap);
	align-items: start;
}

.airport-guide__main {
	grid-column: 1 / 9;
	display: flex;
	flex-direction: column;
	gap: var(--s-8);
}

.airport-guide__rail {
	grid-column: 9 / 13;
	position: sticky;
	top: var(--s-6);
}

.airport-guide__tabular {
	font-feature-settings: "tnum" 1, "lnum" 1;
}

/* ---- Hero head ---- */
.airport-guide__head .eyebrow {
	display: block;
	margin-bottom: var(--s-4);
}

.airport-guide__title {
	font-size: var(--fs-h1);
	margin-bottom: var(--s-5);
}

.airport-guide__stand {
	font-size: var(--fs-h5);
	line-height: var(--lh-base);
	max-width: 56ch;
	margin-bottom: 0;
}

/* ---- Editorial (the_content) ---- */
.airport-guide__content h2 {
	font-size: var(--fs-h3);
	margin: 0 0 var(--s-4);
}

.airport-guide__content h2:not(:first-child) {
	margin-top: var(--s-7);
}

.airport-guide__content h3 {
	font-size: var(--fs-h5);
	margin: var(--s-6) 0 var(--s-3);
}

.airport-guide__content p {
	max-width: 60ch;
}

.airport-guide__content p:last-child {
	margin-bottom: 0;
}

/* ---- Journey band ---- */
.airport-guide__journey {
	border-block: var(--bw-hair) solid var(--c-rule);
	padding-block: var(--s-7);
}

.airport-guide__journey .eyebrow {
	display: block;
	margin-bottom: var(--s-5);
}

.airport-guide__journey-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-7);
	flex-wrap: wrap;
}

.airport-guide__journey-route {
	display: flex;
	align-items: center;
	gap: var(--s-5);
}

.airport-guide__journey-code {
	font-family: var(--ff-serif);
	font-size: var(--fs-h3);
	letter-spacing: var(--tr-snug);
}

.airport-guide__journey-arc {
	width: 96px;
	color: var(--c-silver);
}

.airport-guide__journey-meta {
	display: flex;
	flex-direction: column;
	gap: var(--s-1);
}

.airport-guide__journey-title {
	font-size: var(--fs-h5);
	font-weight: var(--fw-medium);
}

.airport-guide__journey-facts {
	font-size: var(--fs-small);
	color: var(--c-text-soft);
}

.airport-guide__journey-link {
	font-size: var(--fs-small);
	white-space: nowrap;
}

.airport-guide__journey-others {
	margin: var(--s-5) 0 0;
	max-width: none;
}

/* ---- FAQ (plain) ---- */
.airport-guide__faq-heading {
	margin-bottom: var(--s-3);
}

.airport-guide__faq-item {
	border-top: var(--bw-hair) solid var(--c-rule);
	padding-block: var(--s-6);
}

.airport-guide__faq-item:last-child {
	padding-bottom: 0;
}

.airport-guide__faq-q {
	font-family: var(--ff-serif);
	font-size: var(--fs-h5);
	letter-spacing: var(--tr-snug);
	line-height: var(--lh-snug);
	margin: 0 0 var(--s-3);
}

.airport-guide__faq-a {
	font-size: var(--fs-body);
	color: var(--c-text-soft);
	margin: 0;
	max-width: 60ch;
}

/* ---- Glance card (the facts rail) ---- */
.airport-guide__glance {
	position: relative;
	background: var(--c-paper);
	border: var(--bw-hair) solid var(--c-rule);
	border-radius: var(--r-lg);
	box-shadow: var(--sh-base);
	padding: var(--s-7) var(--s-6);
}

/* 2px silver top accent, inset — the "Concierge note" signature. */
.airport-guide__glance::before {
	content: "";
	position: absolute;
	top: 0;
	left: var(--s-6);
	right: var(--s-6);
	height: 2px;
	background: var(--c-silver);
}

.airport-guide__glance .eyebrow {
	display: block;
	margin-bottom: var(--s-2);
}

.airport-guide__glance-title {
	font-family: var(--ff-serif);
	font-size: var(--fs-h4);
	letter-spacing: var(--tr-snug);
	line-height: var(--lh-snug);
	margin: 0 0 var(--s-5);
}

.airport-guide__glance-group {
	margin: 0 0 var(--s-5);
}

.airport-guide__glance-group dl {
	margin: 0;
}

.airport-guide__glance-label {
	display: block;
	font-size: var(--fs-micro);
	font-weight: var(--fw-medium);
	letter-spacing: var(--tr-luxe);
	text-transform: uppercase;
	color: var(--c-silver-dim);
	padding-bottom: var(--s-2);
	border-bottom: var(--bw-hair) solid var(--c-rule);
}

.airport-guide__glance-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-4);
	padding-block: var(--s-3);
	border-bottom: var(--bw-hair) solid var(--c-rule);
}

.airport-guide__glance-row dt {
	font-size: var(--fs-caption);
	color: var(--c-ink-soft);
	letter-spacing: var(--tr-wide);
}

.airport-guide__glance-row dd {
	margin: 0;
	font-size: var(--fs-small);
	font-weight: var(--fw-medium);
	text-align: right;
}

.airport-guide__glance-cta {
	width: 100%;
	margin-top: var(--s-3);
}

.airport-guide__glance-arrow {
	display: inline-block;
	margin-left: var(--s-3);
	transition: transform var(--dur-base) var(--ease-quiet);
}

.airport-guide__glance-cta:hover .airport-guide__glance-arrow,
.airport-guide__glance-cta:focus-visible .airport-guide__glance-arrow {
	transform: translateX(4px);
}

.airport-guide__glance-note {
	margin: var(--s-4) 0 0;
	text-align: center;
	max-width: none;
}

/* ============ ≤1000px — one column, glance card follows the hero ============ */
@media (max-width: 1000px) {
	.airport-guide__grid {
		grid-template-columns: 1fr;
	}

	.airport-guide__main {
		grid-column: 1 / -1;
		display: contents;
	}

	.airport-guide__rail {
		grid-column: 1 / -1;
		position: static;
		order: 2;
	}

	.airport-guide__head { order: 1; }
	.airport-guide__content { order: 3; }
	.airport-guide__journey { order: 4; }
	.airport-guide__faq { order: 5; }
}

/* ============ ≤640px ============ */
@media (max-width: 640px) {
	.airport-guide {
		padding-block: var(--s-7) var(--s-8);
	}

	.airport-guide__journey-row {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--s-5);
	}

	.airport-guide__glance {
		padding: var(--s-6) var(--s-5);
	}
}
