/* Hallmark · pre-emit critique: preserve real data, reduce generic cards, make search the primary action. */
/* Hallmark · genre: editorial-utilitario · macrostructure-family: Photographic / Workbench / Long Document · design-system: design.md · designed-as-app */

html { max-width: 100%; scroll-behavior: smooth; }
body.tu-site { background: var(--color-paper); color: var(--color-ink); font-family: var(--font-body); font-size: var(--text-md); line-height: 1.65; max-width: 100%; overflow-x: hidden; }
body.tu-site *, body.tu-site *::before, body.tu-site *::after { box-sizing: border-box; }
body.tu-site img { display: block; max-width: 100%; }
body.tu-site a { color: inherit; text-decoration-thickness: var(--rule-hair); text-underline-offset: 0.18em; }
body.tu-site h1, body.tu-site h2, body.tu-site h3 { color: var(--color-ink); font-family: var(--font-display); font-style: normal; letter-spacing: var(--tracking-display); line-height: 1.05; text-wrap: balance; }
body.tu-site h1 { font-size: var(--text-display); font-weight: 800; }
body.tu-site h2 { font-size: var(--text-2xl); font-weight: 750; }
body.tu-site h3 { font-size: var(--text-lg); font-weight: 700; }
body.tu-site button, body.tu-site input, body.tu-site select, body.tu-site textarea { font: inherit; }
body.tu-site :focus-visible { outline: var(--rule-fine) solid var(--color-focus); outline-offset: 4px; }
[hidden] { display: none !important; }
.tu-shell { margin-inline: auto; max-width: var(--content-max); padding-inline: var(--page-gutter); width: 100%; }
.site-content > .ast-container { display: block; max-width: none; padding-inline: 0; width: 100%; }
.site-main, .tu-directory, .tu-detail, .tu-directory__head, .tu-directory-search, .tu-directory-search > div { min-width: 0; }
.tu-label { color: var(--color-accent-strong); font-family: var(--font-outlier); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-label); margin: 0 0 var(--space-xs); text-transform: uppercase; }

/* Astra header becomes the editorial masthead. */
.site-header { background: var(--color-paper); border-bottom: 4px double var(--color-rule-2); position: sticky; top: 0; z-index: 100; }
.admin-bar .site-header { top: 32px; }
.ast-primary-header-bar { background: transparent; border: 0; padding-block: var(--space-sm); }
.site-branding .site-title a, .tu-brand { align-items: center; color: var(--color-petrol); display: inline-flex; font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 3.2rem); font-weight: 800; gap: var(--space-xs); letter-spacing: -0.055em; line-height: 1; text-decoration: none; }
.tu-brand svg { fill: var(--color-accent); height: 2.5rem; stroke: var(--color-petrol); stroke-width: 2.5; width: 2.5rem; }
.ast-builder-menu-1 .menu-item > .menu-link { color: var(--color-ink-2); font-family: var(--font-outlier); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.05em; min-height: 44px; text-transform: uppercase; }
.ast-builder-menu-1 .current-menu-item > .menu-link, .ast-builder-menu-1 .menu-item > .menu-link:hover { color: var(--color-accent-strong); }
.ast-mobile-header-wrap .ast-button-wrap .menu-toggle.main-header-menu-toggle { color: var(--color-ink); min-height: 44px; min-width: 44px; }

/* Photographic opening. */
.tu-photo-fold { height: min(76dvh, 52rem); min-height: 30rem; overflow: hidden; position: relative; }
.tu-photo-fold picture, .tu-photo-fold img { height: 100%; width: 100%; }
.tu-photo-fold img { object-fit: cover; object-position: center; }
.tu-photo-fold::after { background: linear-gradient(0deg, var(--color-overlay-soft), transparent 45%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.tu-photo-fold__caption { bottom: var(--space-md); color: var(--color-panel); font-family: var(--font-outlier); font-size: var(--text-xs); left: var(--page-gutter); letter-spacing: var(--tracking-label); margin: 0; position: absolute; text-transform: uppercase; z-index: 1; }
.tu-home-intro { align-items: start; display: grid; gap: var(--space-2xl); grid-template-columns: minmax(0, 1fr) minmax(28rem, 1fr); padding-block: var(--space-3xl); }
.tu-home-intro__copy h1 { font-size: clamp(3rem, 5.5vw, 5.5rem); margin: 0 0 var(--space-md); max-width: 11ch; }
.tu-home-intro__copy > p:last-child { color: var(--color-ink-2); font-size: var(--text-lg); margin: 0; max-width: 34ch; }

/* Primary search. */
.tu-search { background: var(--color-panel); border: var(--rule-hair) solid var(--color-rule); box-shadow: var(--shadow-card); min-width: 0; padding: var(--space-lg); }
.tu-search__tabs { border-bottom: var(--rule-hair) solid var(--color-rule); display: flex; gap: var(--space-lg); margin-bottom: var(--space-lg); }
.tu-search__tabs button { background: none; border: 0; border-bottom: var(--rule-fine) solid transparent; color: var(--color-muted); cursor: pointer; min-height: 44px; padding: 0 0 var(--space-xs); }
.tu-search__tabs button[aria-selected="true"] { border-color: var(--color-accent-strong); color: var(--color-ink); font-weight: 700; }
.tu-search .tr-buscador { background: transparent; border: 0; box-shadow: none; margin: 0; padding: 0; }
.tu-search .tr-buscador__campos { align-items: end; display: grid; gap: var(--space-sm); grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr) auto; }
.tu-search .tr-field, .tu-auto-search { position: relative; }
.tu-search label, .tu-directory-search label, .tu-auto-search label { color: var(--color-ink-2); display: block; font-size: var(--text-sm); font-weight: 700; margin-bottom: var(--space-2xs); }
.tu-search input, .tu-auto-search input, .tu-directory-search input { background: var(--color-paper); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-input); color: var(--color-ink); min-height: 48px; padding: var(--space-xs) var(--space-sm); width: 100%; }
.tu-search input:hover, .tu-auto-search input:hover, .tu-directory-search input:hover { border-color: var(--color-accent-strong); }
.tu-search .tr-swap { align-items: center; background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-pill); color: var(--color-ink); display: inline-flex; height: 44px; justify-content: center; padding: 0; width: 44px; }
.tu-search .tr-btn, .tu-auto-search button, .tu-directory-search button { background: var(--color-petrol); border: var(--rule-hair) solid var(--color-petrol); border-radius: var(--radius-input); color: var(--color-panel); cursor: pointer; font-weight: 700; min-height: 48px; padding: var(--space-xs) var(--space-md); }
.tu-search .tr-btn:hover, .tu-auto-search button:hover, .tu-directory-search button:hover { background: var(--color-accent-strong); border-color: var(--color-accent-strong); }
.tu-search .tr-buscador__nota, .tu-auto-search > p { color: var(--color-muted); font-size: var(--text-sm); margin: var(--space-sm) 0 0; }
.tu-auto-search > div, .tu-directory-search > div { display: grid; gap: var(--space-sm); grid-template-columns: minmax(0, 1fr) auto; }
.tr-sug { background: var(--color-panel); border: var(--rule-hair) solid var(--color-rule); box-shadow: var(--shadow-card); left: 0; list-style: none; margin: 0.25rem 0 0; max-height: 18rem; overflow-y: auto; padding: var(--space-2xs); position: absolute; right: 0; top: 100%; z-index: 50; }
.tr-sug li { cursor: pointer; display: grid; padding: var(--space-2xs) var(--space-xs); }
.tr-sug li[aria-selected="true"], .tr-sug li:hover { background: var(--color-paper-2); }
.tr-sug small { color: var(--color-muted); }

/* Home sections. */
.tu-quick { border-block: var(--rule-hair) solid var(--color-rule); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: var(--space-lg); }
.tu-quick a { border-left: var(--rule-hair) solid var(--color-rule); display: grid; gap: var(--space-2xs); min-width: 0; padding: var(--space-sm) var(--space-md); text-decoration: none; }
.tu-quick a:first-child { border-left: 0; }
.tu-quick span { color: var(--color-accent-strong); font-family: var(--font-outlier); font-size: var(--text-xs); }
.tu-quick strong { font-family: var(--font-display); font-size: var(--text-md); }
.tu-quick small { color: var(--color-muted); line-height: 1.4; }
.tu-quick a:hover strong { color: var(--color-accent-strong); }
.tu-section { padding-block: var(--space-3xl); }
.tu-section__head { align-items: end; display: flex; gap: var(--space-lg); justify-content: space-between; margin-bottom: var(--space-xl); }
.tu-section__head h2 { margin: 0; }
.tu-section__head > a { color: var(--color-accent-strong); font-weight: 700; }
.tu-destination-grid { display: grid; gap: var(--rule-hair); grid-template-columns: repeat(12, minmax(0, 1fr)); background: var(--color-rule); border: var(--rule-hair) solid var(--color-rule); }
.tu-destination { background: var(--color-panel); display: grid; grid-column: span 3; grid-template-rows: auto 1fr auto; min-height: 16rem; padding: var(--space-lg); text-decoration: none; transition: background-color var(--dur-short) var(--ease-out); }
.tu-destination:first-child, .tu-destination:nth-child(6) { grid-column: span 6; }
.tu-destination > span { color: var(--color-paper-3); font-family: var(--font-display); font-size: clamp(3rem, 7vw, 6rem); font-weight: 800; line-height: 0.8; text-transform: uppercase; }
.tu-destination h3 { align-self: end; margin: var(--space-xl) 0 var(--space-xs); }
.tu-destination p { color: var(--color-muted); margin: 0; }
.tu-destination:hover { background: var(--color-paper-2); }
.tu-destination:hover > span { color: var(--color-accent); }
.tu-route-band { background: var(--color-petrol); color: var(--color-panel); padding-block: var(--space-3xl); }
.tu-section__head--inverse h2, .tu-section__head--inverse a, .tu-section__head--inverse .tu-label { color: var(--color-panel); }
.tu-route-list { border-top: var(--rule-hair) solid var(--color-rule-2); }
.tu-route-list a { align-items: center; border-bottom: var(--rule-hair) solid var(--color-rule-2); display: flex; font-family: var(--font-display); font-size: var(--text-xl); justify-content: space-between; min-height: 5.5rem; text-decoration: none; }
.tu-route-list a:hover { color: var(--color-accent); }
.tu-route-list i { color: var(--color-accent); font-style: normal; margin-inline: var(--space-xs); }
.tu-route-list small { font-family: var(--font-outlier); font-size: var(--text-xs); letter-spacing: var(--tracking-label); }
.tu-steps { border-top: var(--rule-fine) solid var(--color-ink); list-style: none; margin: 0; padding: 0; }
.tu-steps li { align-items: start; border-bottom: var(--rule-hair) solid var(--color-rule); display: grid; gap: var(--space-md); grid-template-columns: 5rem minmax(12rem, 0.8fr) minmax(0, 1fr); padding-block: var(--space-lg); }
.tu-steps span { color: var(--color-accent-strong); font-family: var(--font-outlier); }
.tu-steps h3, .tu-steps p { margin: 0; }
.tu-steps p { color: var(--color-muted); max-width: 42ch; }
.tu-disclosure { background: var(--color-paper-2); border-top: var(--rule-hair) solid var(--color-rule); padding-block: var(--space-lg); }
.tu-disclosure .tu-shell { align-items: baseline; display: flex; gap: var(--space-lg); justify-content: center; }
.tu-disclosure p { color: var(--color-muted); margin: 0; }
.tu-rental-row { display: grid; gap: var(--space-lg); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tu-rental-row article { min-width: 0; }
.tu-rental-row a { display: grid; gap: var(--space-xs); text-decoration: none; }
.tu-rental-row img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform var(--dur-long) var(--ease-out); width: 100%; }
.tu-rental-row a:hover img { transform: scale(1.02); }
.tu-rental-row span { font-family: var(--font-display); font-size: var(--text-lg); font-weight: 750; line-height: 1.2; }
.tu-rental-row small { color: var(--color-accent-strong); font-weight: 700; }

/* Directory / workbench. */
.tu-directory, .tu-detail { padding-block: var(--space-2xl) var(--space-3xl); }
.tu-directory__head { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 0.7fr); column-gap: var(--space-2xl); }
.tu-directory__head .tu-label, .tu-directory__head h1 { grid-column: 1; }
.tu-directory__head h1 { font-size: var(--text-2xl); margin: 0 0 var(--space-md); }
.tu-directory__head > p:not(.tu-label) { color: var(--color-muted); grid-column: 1; margin: 0; max-width: var(--measure); }
.tu-directory-search { align-self: end; grid-column: 2; grid-row: 1 / span 3; }
.tu-directory__meta { align-items: center; border-block: var(--rule-hair) solid var(--color-rule); display: flex; justify-content: space-between; margin-block: var(--space-2xl) var(--space-xl); padding-block: var(--space-sm); }
.tu-directory__meta p { color: var(--color-muted); font-family: var(--font-outlier); font-size: var(--text-sm); margin: 0; }
.tu-directory__meta a { color: var(--color-accent-strong); font-weight: 700; }
.tu-auto-grid { display: grid; gap: var(--space-xl) var(--space-lg); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tu-auto-card { margin: 0; min-width: 0; }
.tu-auto-card__media { aspect-ratio: 4 / 3; background: var(--color-paper-2); display: block; overflow: hidden; text-decoration: none; }
.tu-auto-card__media img { height: 100%; object-fit: cover; transition: transform var(--dur-long) var(--ease-out); width: 100%; }
.tu-auto-card:hover .tu-auto-card__media img { transform: scale(1.02); }
.tu-auto-card__media > span { align-items: center; color: var(--color-paper-3); display: flex; font-family: var(--font-display); font-size: 5rem; font-weight: 800; height: 100%; justify-content: center; }
.tu-auto-card__body { padding-top: var(--space-sm); }
.tu-auto-card__type { color: var(--color-accent-strong); font-family: var(--font-outlier); font-size: var(--text-xs); letter-spacing: var(--tracking-label); margin: 0 0 var(--space-2xs); text-transform: uppercase; }
.tu-auto-card h2 { font-size: var(--text-lg); margin: 0; }
.tu-auto-card h2 a { text-decoration: none; }
.tu-auto-card__body > p:not(.tu-auto-card__type) { color: var(--color-muted); font-size: var(--text-sm); margin: var(--space-xs) 0; }
.tu-arrow-link { color: var(--color-ink); font-weight: 700; }
.tu-arrow-link span { color: var(--color-accent-strong); }
.tu-pagination { margin-top: var(--space-2xl); }
.tu-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2xs); justify-content: center; }
.tu-pagination .page-numbers { align-items: center; border: var(--rule-hair) solid var(--color-rule); display: inline-flex; justify-content: center; min-height: 44px; min-width: 44px; padding: var(--space-2xs); text-decoration: none; }
.tu-pagination .current, .tu-pagination a:hover { background: var(--color-petrol); color: var(--color-panel); }
.tu-empty { border-block: var(--rule-hair) solid var(--color-rule); padding-block: var(--space-2xl); text-align: center; }

/* Detail / long document. */
.tu-auto-detail__header { align-items: center; border-bottom: var(--rule-hair) solid var(--color-rule); display: grid; gap: var(--space-2xl); grid-template-columns: minmax(0, 0.9fr) minmax(22rem, 0.7fr); padding-bottom: var(--space-2xl); }
.tu-auto-detail__header h1 { font-size: var(--text-2xl); margin: 0 0 var(--space-md); }
.tu-auto-detail__header > div > p:not(.tu-label) { color: var(--color-muted); font-size: var(--text-lg); max-width: 40ch; }
.tu-auto-detail__stamp { align-content: space-between; aspect-ratio: 4 / 3; background: var(--color-petrol); color: var(--color-panel); display: grid; padding: var(--space-lg); }
.tu-auto-detail__stamp span, .tu-auto-detail__stamp small { color: var(--color-paper-3); font-family: var(--font-outlier); font-size: var(--text-xs); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.tu-auto-detail__stamp strong { color: var(--color-panel); font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.1; }
.tu-primary-link, .tu-affiliate-callout > a { background: var(--color-accent); border: var(--rule-hair) solid var(--color-accent); color: var(--color-accent-ink); display: inline-flex; font-weight: 800; gap: var(--space-xs); min-height: 48px; padding: var(--space-xs) var(--space-md); text-decoration: none; }
.tu-primary-link:hover, .tu-affiliate-callout > a:hover { background: var(--color-petrol); border-color: var(--color-petrol); color: var(--color-panel); }
.tu-prose { font-size: var(--text-md); margin: var(--space-2xl) auto; max-width: var(--measure); }
.tu-prose > * + * { margin-top: var(--space-md); }
.tu-prose h2 { font-size: var(--text-xl); margin-top: var(--space-2xl); }
.tu-prose h3 { margin-top: var(--space-xl); }
.tu-prose p, .tu-prose li { color: var(--color-ink-2); }
.tu-prose a { color: var(--color-accent-strong); }
.tu-affiliate-callout { align-items: center; background: var(--color-paper-2); border-left: 0.35rem solid var(--color-accent); display: flex; gap: var(--space-lg); justify-content: space-between; margin: var(--space-2xl) auto; max-width: 58rem; padding: var(--space-lg); }
.tu-affiliate-callout h2, .tu-affiliate-callout p { margin: 0; }
.tu-affiliate-callout h2 { font-size: var(--text-lg); }
.tu-affiliate-callout p { color: var(--color-muted); margin-top: var(--space-2xs); }
.tu-related { margin-top: var(--space-3xl); }
.tu-nearby-transfer { border-block: var(--rule-fine) solid var(--color-ink); margin: var(--space-2xl) auto; max-width: 58rem; padding-block: var(--space-lg); }
.tu-nearby-transfer h2 { font-size: var(--text-xl); margin: 0 0 var(--space-sm); }
.tu-nearby-transfer a { color: var(--color-accent-strong); font-weight: 700; }
.tu-related header { margin-bottom: var(--space-lg); }
.tu-related h2 { margin: 0; }
.tu-related ul { border-top: var(--rule-fine) solid var(--color-ink); list-style: none; margin: 0; padding: 0; }
.tu-related li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.tu-related li a { align-items: center; display: flex; font-weight: 700; justify-content: space-between; min-height: 56px; text-decoration: none; }
.tu-related li a:hover { color: var(--color-accent-strong); }

/* Transfer vertical: preserve its data engine, replace the visual shell. */
.tr-wrap { color: var(--color-ink); margin-inline: auto; max-width: var(--content-max); padding: var(--space-lg) var(--page-gutter) var(--space-3xl); }
.tr-breadcrumb, .tu-breadcrumbs { color: var(--color-muted); font-size: var(--text-sm); margin-block: var(--space-sm) var(--space-lg); }
.tr-breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--space-2xs); list-style: none; margin: 0; padding: 0; }
.tr-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: var(--space-2xs); }
.tr-hero { background: transparent; border-bottom: var(--rule-fine) solid var(--color-ink); color: var(--color-ink); margin: 0 0 var(--space-xl); padding: var(--space-lg) 0 var(--space-xl); }
.tr-hero h1 { color: var(--color-ink); font-size: var(--text-2xl); margin: 0; max-width: 18ch; }
.tr-hero__sub { color: var(--color-muted); font-size: var(--text-lg); max-width: var(--measure); }
.tr-card { background: transparent; border: 0; border-bottom: var(--rule-hair) solid var(--color-rule); border-radius: 0; box-shadow: none; margin: 0; padding: var(--space-xl) 0; }
.tr-card h2 { font-size: var(--text-xl); }
.tr-card h3 { font-size: var(--text-lg); }
.tr-card p, .tr-card li { color: var(--color-ink-2); }
.tr-grid-links { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: var(--space-md) 0 0; padding: 0; }
.tr-grid-links li { border-top: var(--rule-hair) solid var(--color-rule); }
.tr-grid-links li:nth-child(odd) { margin-right: var(--space-lg); }
.tr-grid-links a { align-items: center; display: flex; min-height: 48px; text-decoration: none; }
.tr-grid-links a:hover { color: var(--color-accent-strong); }
.tr-stats { background: var(--color-petrol); color: var(--color-panel); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: var(--space-xl); }
.tr-stat { border-right: var(--rule-hair) solid var(--color-rule-2); padding: var(--space-md); }
.tr-stat:last-child { border-right: 0; }
.tr-stat__v { color: var(--color-panel); display: block; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 800; }
.tr-stat__k { color: var(--color-paper-3); font-size: var(--text-sm); }
.tr-mapa { border-radius: 0; }
.leaflet-container { font-family: var(--font-body); }
.tr-btn { border-radius: var(--radius-input); min-height: 44px; }
.tr-btn--primary { background: var(--color-petrol); border-color: var(--color-petrol); color: var(--color-panel); }
.tr-opcion, .tr-calc, .tr-comparacion { border-color: var(--color-rule); border-radius: var(--radius-card); box-shadow: none; }
.tu-transfer-search { background: var(--color-panel); border: var(--rule-hair) solid var(--color-rule); box-shadow: var(--shadow-card); margin-bottom: var(--space-2xl); padding: var(--space-lg); }
.tu-transfer-search h2 { font-size: var(--text-xl); margin: 0 0 var(--space-md); }
.tu-transfer-search .tr-buscador { background: transparent; border: 0; box-shadow: none; margin: 0; padding: 0; }
.tu-transfer-search .tr-buscador__campos { align-items: end; display: grid; gap: var(--space-sm); grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr) auto; }
.tu-transfer-search .tr-field { min-width: 0; position: relative; }
.tu-transfer-search input, .tu-route-directory input { background: var(--color-paper); border: var(--rule-hair) solid var(--color-rule-2); border-radius: var(--radius-input); min-height: 48px; width: 100%; }
.tu-transfer-search .tr-swap { align-items: center; background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-pill); display: inline-flex; height: 44px; justify-content: center; padding: 0; width: 44px; }
.tu-route-directory > header { align-items: end; display: grid; gap: var(--space-xl); grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.5fr); margin-bottom: var(--space-xl); }
.tu-route-directory h2 { margin: 0; }
.tu-route-directory label { color: var(--color-ink-2); font-size: var(--text-sm); font-weight: 700; }
.tu-route-directory label input { display: block; margin-top: var(--space-2xs); padding: var(--space-xs) var(--space-sm); }
.tu-route-group { border-top: var(--rule-fine) solid var(--color-ink); }
.tu-route-group + .tu-route-group { margin-top: var(--space-xl); }
.tu-route-group summary { align-items: center; cursor: pointer; display: flex; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 750; justify-content: space-between; list-style: none; min-height: 68px; }
.tu-route-group summary::-webkit-details-marker { display: none; }
.tu-route-group summary::after { color: var(--color-accent-strong); content: "+"; font-family: var(--font-outlier); margin-left: var(--space-md); }
.tu-route-group[open] summary::after { content: "−"; }
.tu-route-group summary small { color: var(--color-muted); font-family: var(--font-outlier); font-size: var(--text-xs); font-weight: 500; margin-left: auto; }
.tu-route-group ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.tu-route-group li { border-top: var(--rule-hair) solid var(--color-rule); }
.tu-route-group li:nth-child(odd) { margin-right: var(--space-lg); }
.tu-route-group a { align-items: center; display: flex; gap: var(--space-md); justify-content: space-between; min-height: 52px; text-decoration: none; }
.tu-route-group a:hover { color: var(--color-accent-strong); }
.tu-route-empty { background: var(--color-paper-2); padding: var(--space-md); }
.tu-transfer-note { border-left: 0.35rem solid var(--color-accent); display: flex; gap: var(--space-sm); margin-top: var(--space-2xl); padding: var(--space-md); }
.tu-transfer-note p { color: var(--color-muted); margin: 0; }

/* Footer. */
.tu-footer { background: var(--color-petrol); color: var(--color-panel); }
.tu-footer__grid { align-items: start; display: grid; gap: var(--space-xl); grid-template-columns: 1fr auto minmax(16rem, 0.8fr); padding-block: var(--space-2xl); }
.tu-footer__wordmark { color: var(--color-panel); font-family: var(--font-display); font-size: var(--text-xl); font-weight: 800; letter-spacing: -0.04em; text-decoration: none; }
.tu-footer p { color: var(--color-paper-3); margin: var(--space-2xs) 0 0; }
.tu-footer nav { display: grid; gap: var(--space-2xs); }
.tu-footer nav a { color: var(--color-panel); min-height: 32px; }
.tu-footer__note { font-size: var(--text-sm); }
.site-footer > .ast-builder-grid-row-container { background: var(--color-petrol); border-top: var(--rule-hair) solid var(--color-rule-2); color: var(--color-paper-3); }

@media (max-width: 64rem) {
	.ast-mobile-header-wrap .ast-button-wrap .menu-toggle.main-header-menu-toggle { align-items: center; display: inline-flex !important; justify-content: center; }
	.tu-home-intro { grid-template-columns: 1fr; }
	.tu-home-intro__copy h1 { max-width: 12ch; }
	.tu-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tu-quick a:nth-child(3) { border-left: 0; border-top: var(--rule-hair) solid var(--color-rule); }
	.tu-quick a:nth-child(4) { border-top: var(--rule-hair) solid var(--color-rule); }
	.tu-destination { grid-column: span 4; }
	.tu-destination:first-child, .tu-destination:nth-child(6) { grid-column: span 6; }
	.tu-auto-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tu-rental-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tu-directory__head { grid-template-columns: 1fr; }
	.tu-directory-search { grid-column: 1; grid-row: auto; margin-top: var(--space-lg); }
	.tu-footer__grid { grid-template-columns: 1fr 1fr; }
	.tu-footer__note { grid-column: 1 / -1; }
}

@media (max-width: 48rem) {
	.tu-photo-fold { height: 58dvh; min-height: 24rem; }
	.tu-photo-fold img { object-position: 62% center; }
	.tu-home-intro, .tu-section, .tu-route-band { padding-block: var(--space-2xl); }
	.tu-search { padding: var(--space-md); }
	.tu-search .tr-buscador__campos { grid-template-columns: minmax(0, 1fr) 44px; }
	.tu-search .tr-field:first-child { grid-column: 1; }
	.tu-search .tr-swap { grid-column: 2; }
	.tu-search .tr-field:nth-of-type(2) { grid-column: 1 / -1; }
	.tu-search .tr-btn { grid-column: 1 / -1; width: 100%; }
	.tu-section__head { align-items: start; flex-direction: column; }
	.tu-destination { grid-column: span 6; }
	.tu-destination:first-child, .tu-destination:nth-child(6) { grid-column: span 12; }
	.tu-steps li { grid-template-columns: 3.5rem minmax(0, 1fr); }
	.tu-steps p { grid-column: 2; }
	.tu-disclosure .tu-shell { align-items: start; flex-direction: column; gap: var(--space-xs); }
	.tu-auto-detail__header { grid-template-columns: 1fr; }
	.tr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tr-stat:nth-child(2) { border-right: 0; }
	.tr-grid-links { grid-template-columns: 1fr; }
	.tr-grid-links li:nth-child(odd) { margin-right: 0; }
	.tu-transfer-search .tr-buscador__campos { grid-template-columns: minmax(0, 1fr) 44px; }
	.tu-transfer-search .tr-field:nth-of-type(2), .tu-transfer-search .tr-btn { grid-column: 1 / -1; }
	.tu-route-directory > header, .tu-route-group ul { grid-template-columns: 1fr; }
	.tu-route-group li:nth-child(odd) { margin-right: 0; }
	.tu-transfer-note { flex-direction: column; }
}

@media (max-width: 34rem) {
	:root { --page-gutter: 1rem; }
	.tu-home-intro { gap: var(--space-xl); }
	.tu-directory, .tu-detail { max-width: 100%; overflow: hidden; }
	.tu-search__tabs { gap: var(--space-sm); }
	.tu-search__tabs button { flex: 1; font-size: var(--text-sm); }
	.tu-auto-search > div, .tu-directory-search > div { grid-template-columns: 1fr; }
	.tu-quick, .tu-auto-grid { grid-template-columns: 1fr; }
	.tu-rental-row { grid-template-columns: 1fr; }
	.tu-quick a { border-left: 0; border-top: var(--rule-hair) solid var(--color-rule); }
	.tu-quick a:first-child { border-top: 0; }
	.tu-destination, .tu-destination:first-child, .tu-destination:nth-child(6) { grid-column: 1 / -1; min-height: 12rem; }
	.tu-route-list a { align-items: start; flex-direction: column; justify-content: center; }
	.tu-steps li { grid-template-columns: 1fr; }
	.tu-steps p { grid-column: 1; }
	.tu-affiliate-callout { align-items: stretch; flex-direction: column; }
	.tu-affiliate-callout > a { justify-content: center; }
	.tu-footer__grid { grid-template-columns: 1fr; }
	.tu-footer__note { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
