/* Only enqueued on singular content containing a transport component. */
.aa-transport-guide,
.aa-transport-cta {
	color: var(--aa-text);
	font: inherit;
	overflow-wrap: anywhere;
	min-width: 0;
}

.aa-transport-guide {
	max-width: 76ch;
	margin-inline: auto;
	padding: clamp(0rem, 1.5vw, 1rem);
}

.aa-transport-guide > * + *,
.aa-transport-guide > :where(.wp-block-group__inner-container) > * + * {
	margin-block-start: 1.2rem;
}

.aa-transport-guide h2 {
	margin-block: 2.4rem 1rem;
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	line-height: 1.3;
	color: var(--aa-blue-900);
}

.aa-transport-guide h3 {
	font-size: clamp(1.12rem, 2.4vw, 1.35rem);
	line-height: 1.35;
	color: var(--aa-blue-900);
}

.aa-transport-guide p,
.aa-transport-guide li {
	line-height: 1.65;
}

.aa-transport-guide .aa-transport-intro {
	font-size: 1.15rem;
}

.aa-transport-guide .aa-transport-note {
	color: var(--aa-muted);
	font-size: 0.95rem;
}

.aa-transport-guide .aa-transport-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
}

/* Classic themes may receive the legacy Group inner wrapper from WordPress. */
.aa-transport-guide .aa-transport-grid > .wp-block-group__inner-container {
	display: contents;
}

.aa-transport-guide .aa-transport-card {
	min-width: 0;
	margin: 0;
	padding: clamp(1rem, 2.5vw, 1.4rem);
	border: 1px solid var(--aa-border);
	border-radius: var(--aa-radius);
	background: var(--aa-sky);
}

.aa-transport-guide .aa-transport-card > :first-child,
.aa-transport-guide .aa-transport-card > .wp-block-group__inner-container > :first-child {
	margin-top: 0;
}

.aa-transport-guide .aa-transport-card > :last-child,
.aa-transport-guide .aa-transport-card > .wp-block-group__inner-container > :last-child {
	margin-bottom: 0;
}

.aa-transport-guide a,
.aa-transport-cta a {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.aa-transport-guide a:focus-visible,
.aa-transport-cta a:focus-visible {
	outline: 3px solid var(--aa-blue-700);
	outline-offset: 4px;
	border-radius: 3px;
}

.aa-transport-guide [id],
.aa-transport-guide,
.aa-transport-cta {
	scroll-margin-top: 9rem;
}

.aa-transport-guide .aa-transport-directions a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.aa-transport-guide li + li {
	margin-top: 0.45rem;
}

.aa-transport-cta {
	margin-block: 1.5rem;
	padding: clamp(1rem, 3vw, 1.5rem);
	background: var(--aa-sky);
	border: 1px solid var(--aa-border);
	border-inline-start: 4px solid var(--aa-blue-700);
	border-radius: var(--aa-radius);
}

.aa-transport-cta h2 {
	margin: 0 0 0.6rem;
	color: var(--aa-blue-900);
	font-size: clamp(1.3rem, 2.8vw, 1.65rem);
	line-height: 1.3;
}

.aa-transport-cta p {
	margin: 0 0 1rem;
}

.aa-transport-cta .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	max-width: 100%;
	padding: 0.7rem 1.1rem;
	border: 2px solid transparent;
	border-radius: var(--aa-radius);
	background: var(--aa-blue-700);
	color: var(--aa-card);
	font: inherit;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	white-space: normal;
}

.aa-transport-cta .wp-block-button__link:hover {
	background: var(--aa-blue-900);
	color: var(--aa-card);
}

@media (min-width: 760px) {
	.aa-transport-guide .aa-transport-tickets {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Only the guide hero is compact. Header, navigation and footer are untouched. */
.aa-transport-helper-page .aa-hero.aa-transport-compact-hero {
	min-height: 0; aspect-ratio: auto; padding: 7rem 0 0.75rem;
	background: none; color: var(--aa-text);
}
.aa-transport-helper-page .aa-transport-compact-hero .aa-shell::before { display: none; }
.aa-transport-helper-page .aa-transport-compact-hero .aa-hero-title {
	max-width: none; margin: 0; font-size: clamp(1.65rem, 3vw, 2.25rem);
	color: var(--aa-blue-900); text-shadow: none;
}
@media (max-width: 780px) {
	.aa-transport-helper-page .aa-hero.aa-transport-compact-hero { padding-top: 1.5rem; }
}
.aa-transport-helper-page .aa-page-main { padding-top: 0; }
.aa-transport-helper-page .aa-page-content-wrap { margin-top: 0; }
.aa-transport-guide.aa-transport-helper { max-width: none; padding: 0; }
.aa-transport-helper > .wp-block-group__inner-container > :first-child { margin-top: 0; }
.aa-transport-helper .aa-transport-workbench {
	display: grid; grid-template-columns: minmax(0, 1fr); align-items: start;
	gap: clamp(1.25rem, 2.5vw, 2rem);
}
.aa-transport-helper .aa-transport-workbench > .wp-block-group__inner-container { display: contents; }
.aa-transport-helper :is(.aa-transport-route, .aa-transport-calculator-slot) {
	min-width: 0; margin: 0; padding: clamp(1rem, 2.5vw, 1.75rem);
	border: 1px solid var(--aa-border); border-radius: var(--aa-radius); background: var(--aa-card);
}
.aa-transport-helper .aa-transport-route { background: var(--aa-sky); }
.aa-transport-helper .aa-transport-summary {
	padding: clamp(1rem, 2vw, 1.4rem); background: var(--aa-card);
	border: 1px solid var(--aa-border); border-radius: var(--aa-radius);
}
.aa-transport-helper .aa-transport-route > * + *,
.aa-transport-helper .aa-transport-route > .wp-block-group__inner-container > * + * { margin-top: 1.25rem; }
.aa-transport-helper .aa-transport-calculator-slot .aa-transport-calculator { max-width: none; }
.aa-transport-helper .aa-transport-calculator-slot h2,
.aa-transport-helper .aa-transport-panel h2 { margin-top: 0; }
.aa-transport-helper .aa-transport-panel h3 { margin-block: 1.25rem 0.5rem; }
.aa-transport-helper .aa-transport-panel p { margin-block: 0.5rem; }
.aa-transport-helper .aa-transport-fare-row { border-top: 1px solid var(--aa-border); margin-top: 1.25rem; padding-top: 1rem; }
.aa-transport-helper .aa-transport-fare-row h3 { margin: 0; }
.aa-transport-helper .aa-transport-reviewed { font-size: 0.85rem; margin-bottom: 0; }
@media (min-width: 1100px) {
	.aa-transport-helper .aa-transport-workbench { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.aa-transport-helper [hidden], .aa-transport-calculator [hidden] { display: none !important; }
.aa-transport-helper *, .aa-transport-calculator * { box-sizing: border-box; }
.aa-transport-calculator { min-width: 0; max-width: 76ch; color: var(--aa-text); overflow-wrap: anywhere; }
.aa-transport-calculator fieldset, .aa-transport-direction fieldset { min-width: 0; margin: 1rem 0; padding: 0; border: 0; }
.aa-transport-calculator legend, .aa-transport-direction legend,
.aa-transport-field > label { display: block; margin-bottom: 0.5rem; font-weight: 700; }
.aa-transport-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.aa-transport-options label {
	display: flex; align-items: center; gap: 0.5rem; min-height: 48px; padding: 0.7rem 1rem;
	border: 1px solid var(--aa-border); border-radius: var(--aa-radius);
	background: var(--aa-card); cursor: pointer;
}
.aa-transport-options label:has(input:checked) { border-color: var(--aa-blue-700); background: var(--aa-sky); }
/* Native keyboard/radio semantics; only the redundant circles are visually hidden. */
.aa-transport-direction .aa-transport-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.3rem; padding: 0.3rem; background: var(--aa-blue-100); border-radius: 2rem; }
.aa-transport-direction label { position: relative; justify-content: center; border: 0; border-radius: 1.75rem; text-align: center; background: transparent; color: var(--aa-blue-900); font-weight: 600; }
.aa-transport-direction input[type="radio"] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.aa-transport-direction label:has(input:checked) { color: var(--aa-card); background: var(--aa-blue-700); font-weight: 800; }
.aa-transport-direction label:has(input:checked) span { text-decoration: underline; text-underline-offset: 0.25em; }
.aa-transport-direction label:has(input:focus-visible) { outline: 3px solid var(--aa-blue-900); outline-offset: 3px; }
.aa-transport-calculator input[type="number"], .aa-transport-calculator select {
	min-height: 48px; width: 100%; max-width: 100%; padding: 0.65rem 0.8rem; font: inherit;
	color: var(--aa-text); background: var(--aa-card); border: 1px solid var(--aa-muted); border-radius: 8px;
}
.aa-transport-calculator input[type="radio"], .aa-transport-calculator input[type="checkbox"] { flex: 0 0 auto; margin: 0; width: 1.2rem; height: 1.2rem; accent-color: var(--aa-blue-700); }
.aa-transport-field { margin-block: 1rem; }
.aa-transport-calculator .aa-transport-note { font-size: 0.95rem; color: var(--aa-muted); margin-block: 0.4rem; }
.aa-transport-calculator .aa-transport-error { color: #a01919; margin-block: 0.4rem; font-weight: 600; }
.aa-transport-confirm { display: flex; gap: 0.7rem; align-items: flex-start; min-height: 44px; margin-block: 1rem; cursor: pointer; }
.aa-transport-confirm input { margin-top: 0.25rem !important; }
.aa-transport-calculator button {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 52px;
	padding: 0.8rem 1.1rem; border: 2px solid transparent; border-radius: var(--aa-radius);
	background: var(--aa-blue-700); color: var(--aa-card); font: inherit; font-weight: 700; cursor: pointer;
}
.aa-transport-calculator button:hover { background: var(--aa-blue-900); }
.aa-transport-calculator button:disabled { opacity: 0.65; cursor: not-allowed; }
.aa-transport-calculator :is(input, select, button, summary, a):focus-visible,
.aa-transport-helper :is(summary, button):focus-visible { outline: 3px solid var(--aa-blue-700); outline-offset: 4px; }
.aa-transport-calculator details, .aa-transport-helper .wp-block-details { margin-block: 1rem; padding: 0.4rem 0.8rem; border: 1px solid var(--aa-border); border-radius: var(--aa-radius); }
.aa-transport-calculator summary, .aa-transport-helper summary { min-height: 44px; padding-block: 0.6rem; cursor: pointer; font-weight: 700; }
.aa-transport-calculator [data-calculator-result] { margin-top: 1.25rem; padding: 1rem; background: var(--aa-sky); border-radius: var(--aa-radius); }
.aa-transport-calculator [data-calculator-result] :is(h3, h4, h5) { font-size: 1.1rem; margin-block: 1rem 0.5rem; }
.aa-transport-calculator [data-calculator-result] > :first-child { margin-top: 0; }
.aa-transport-calculator .aa-transport-total { font-size: 1.2rem; font-weight: 700; }
.aa-transport-calculator .aa-transport-comparison { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
.aa-transport-calculator .aa-transport-price-card { min-width: 0; padding: 0.9rem; background: var(--aa-card); border: 1px solid var(--aa-border); border-radius: var(--aa-radius); }
.aa-transport-calculator .aa-transport-price-card h4 { margin: 0 0 0.4rem; }
.aa-transport-calculator .aa-transport-price-card p { margin-block: 0.4rem 0; font-size: 0.95rem; }
.aa-transport-calculator .aa-transport-price { display: block; font-size: 2rem; line-height: 1.2; color: var(--aa-blue-900); }
@media (min-width: 640px) { .aa-transport-calculator .aa-transport-comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.aa-transport-icon { width: 1.25em; height: 1.25em; flex: 0 0 auto; vertical-align: -0.2em; }
.aa-transport-helper-page .aa-hero-title > .aa-transport-icon { margin-inline-end: 0.4em; }
.aa-transport-helper :is(.aa-transport-heading-pin, .aa-transport-heading-clock, .aa-transport-fare-row h3),
.aa-transport-calculator .aa-transport-icon-heading { display: flex; align-items: center; gap: 0.7rem; }
.aa-transport-helper :is(.aa-transport-heading-pin, .aa-transport-heading-clock, .aa-transport-fare-row h3) > .aa-transport-icon,
.aa-transport-calculator .aa-transport-icon-heading > .aa-transport-icon { width: 2.5rem; height: 2.5rem; padding: 0.5rem; color: var(--aa-blue-700); background: var(--aa-blue-100); border-radius: 0.65rem; }
/* Native disclosures: mobile content follows its own button; desktop spans both columns. */
.aa-transport-helper .aa-transport-service-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.85rem; }
.aa-transport-helper .aa-transport-disclosure { min-width: 0; }
.aa-transport-helper .aa-transport-disclosure > summary {
	display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; min-height: 54px;
	padding: 0.8rem 1rem; color: var(--aa-blue-900); background: var(--aa-blue-100);
	border: 1px solid var(--aa-blue-700); border-radius: var(--aa-radius); list-style: none;
}
.aa-transport-helper .aa-transport-disclosure > summary::-webkit-details-marker { display: none; }
.aa-transport-helper .aa-transport-disclosure > summary:hover { background: var(--aa-card); }
.aa-transport-chevron { display: inline-block; font-size: 1.65em; line-height: 1; flex: 0 0 auto; }
.aa-transport-disclosure[open] > summary .aa-transport-chevron { transform: rotate(90deg); }
.aa-transport-helper .aa-transport-disclosure-content {
	min-width: 0; padding: 1rem; margin-top: 0.8rem; border: 1px solid var(--aa-border);
	border-radius: var(--aa-radius); background: var(--aa-card);
}
.aa-transport-helper .aa-transport-disclosure:not([open]) > .aa-transport-disclosure-content { display: none; }
.aa-transport-helper .aa-transport-disclosure-content h3 { margin-top: 0; }
.aa-transport-helper .aa-transport-stop-list { padding-left: 1.4rem; }
.aa-transport-helper .aa-transport-stop-list li { padding: 0.5rem 0; border-bottom: 1px solid var(--aa-border); }
.aa-transport-helper .aa-transport-stop-list small { display: block; }
.aa-transport-helper .aa-transport-departures { width: 100%; table-layout: auto; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aa-transport-helper .aa-transport-departures caption { text-align: left; margin-block: 0.75rem; font-weight: 600; }
.aa-transport-helper .aa-transport-departures :is(th,td) { padding: 0.65rem 0.4rem; border-bottom: 1px solid var(--aa-border); text-align: left; vertical-align: top; }
/* Shrink to intrinsic HH:MM + cell padding, never to a broken time token. */
.aa-transport-helper .aa-transport-departures th:first-child { width: 1%; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.aa-transport-helper .aa-transport-departures td { white-space: normal; overflow-wrap: normal; word-break: normal; }
.aa-transport-helper .aa-transport-departures time { display: inline-block; margin: 0 0.55rem 0.3rem 0; white-space: nowrap; }
.aa-transport-helper .aa-transport-close { font: inherit; font-weight: 700; min-height: 44px; padding: 0.6rem 1rem; color: var(--aa-blue-900); background: var(--aa-blue-100); border: 1px solid var(--aa-blue-700); border-radius: var(--aa-radius); cursor: pointer; }
.aa-transport-helper .aa-transport-disclosure > summary { scroll-margin-top: 9rem; }
@media (min-width: 1100px) {
	.aa-transport-helper .aa-transport-service-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.aa-transport-helper .aa-transport-disclosure,
	.aa-transport-helper .aa-transport-disclosure::details-content { display: contents; }
	.aa-transport-helper .aa-transport-disclosure > summary { grid-row: 1; }
	.aa-transport-helper .aa-transport-disclosure-content { grid-row: 2; grid-column: 1 / -1; margin-top: 0; }
}
