/* Trans Dispatch — theme.css
   Everything theme.json cannot express: layout of the custom components, forms,
   header/footer/mobile bar, focus rings, reduced motion. Tokens come from theme.json
   (--wp--preset--*, --wp--custom--*). Onyx ground, champagne is the only accent. */

/* ── base ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--wp--custom--header-height) + 16px); }
body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg, video { max-width: 100%; height: auto; display: block; }
img[width][height] { height: auto; }
:where(p, ul, ol) { margin-block: 0 0; }
:where(h1, h2, h3, h4) { text-wrap: balance; hyphens: manual; margin-block: 0; }
:where(.td-main p, .td-main li) { text-wrap: pretty; }
:where(.td-main p, .td-main li) { max-width: var(--wp--custom--max-prose); }
code, .td-mono { font-family: var(--wp--preset--font-family--mono); font-size: .95em; }
address { font-style: normal; }
button { font: inherit; cursor: pointer; }
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--td-focus, var(--wp--custom--focus-light)); outline-offset: 3px; border-radius: 4px; }
.is-style-dark, .is-style-ink, .td-footer, .td-mobile-bar { --td-focus: var(--wp--custom--focus-dark); }
.td-skip { position: absolute; left: 16px; top: -100px; z-index: 1000; padding: 12px 20px; background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--onyx); font-family: var(--wp--preset--font-family--heading); font-weight: 600; border-radius: var(--wp--custom--radius--pill); text-decoration: none; }
.td-skip:focus { top: 16px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ── main column ────────────────────────────────────────────────────────── */
.td-main { padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--90); min-height: 50vh; }
.td-main > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.td-main--front { padding-block: 0; }
.td-main--front > * + * { margin-block-start: 0; }
body.td-ctx-front .td-main { padding-block: 0; }

/* ── buttons ────────────────────────────────────────────────────────────── */
.td-btn, .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 24px; border-radius: var(--wp--custom--radius--pill); background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--onyx); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--small); letter-spacing: .02em; line-height: 1.2; text-decoration: none; border: 1.5px solid transparent; transition: background var(--wp--custom--transition), color var(--wp--custom--transition), transform var(--wp--custom--transition), box-shadow var(--wp--custom--transition); }
.td-btn:hover, .wp-block-button__link:hover { background: var(--wp--preset--color--gilt); color: var(--wp--preset--color--onyx); }
.td-btn:active { transform: translateY(1px); }
.td-btn--gold { box-shadow: var(--wp--preset--shadow--gold); }
.td-btn--ghost, .is-style-ghost .wp-block-button__link { background: transparent; color: inherit; border-color: currentColor; box-shadow: none; }
.td-btn--ghost:hover, .is-style-ghost .wp-block-button__link:hover { background: color-mix(in srgb, currentColor 10%, transparent); color: inherit; }
.is-style-link .wp-block-button__link { background: none; padding: 0; min-height: 0; color: var(--wp--preset--color--gold-deep); border: 0; text-decoration: underline; text-underline-offset: 3px; }
.is-style-dark .is-style-link .wp-block-button__link, .is-style-ink .is-style-link .wp-block-button__link { color: var(--wp--preset--color--champagne); }
.is-style-link .wp-block-button__link::after { content: " →"; }
.td-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border-radius: var(--wp--custom--radius--pill); border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); letter-spacing: .02em; text-decoration: none; white-space: nowrap; transition: border-color var(--wp--custom--transition), color var(--wp--custom--transition); }
.td-pill:hover { border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--champagne); }
.td-icon { width: 20px; height: 20px; flex: none; }

/* ── text styles ────────────────────────────────────────────────────────── */
.is-style-eyebrow { font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--x-small); letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--gold-deep); }
.is-style-dark .is-style-eyebrow, .is-style-ink .is-style-eyebrow, .td-hero .is-style-eyebrow, .wp-block-cover .is-style-eyebrow { color: var(--wp--preset--color--champagne); }
.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.5; }
.is-style-checks { list-style: none; padding-left: 0; }
.is-style-checks li { position: relative; padding-left: 30px; }
.is-style-checks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 18px; height: 18px; border-radius: 50%; background: var(--wp--preset--color--champagne) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0E13' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center/12px no-repeat; }
.td-rule { height: 2px; border: 0; background: var(--wp--preset--gradient--gold); background: linear-gradient(90deg,#8A6726,#C9A24B,#E3C66C,#C9A24B,#8A6726); width: 72px; margin: 0; }

/* ── header ─────────────────────────────────────────────────────────────── */
/* Light bar like the reference sites: seal left, short centred menu, one gold pill right. */
.td-header { position: sticky; top: 0; z-index: 900; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); border-bottom: 1px solid #E4E7EC; transition: box-shadow var(--wp--custom--transition); }
.td-header.is-scrolled { box-shadow: 0 6px 24px rgba(11,14,19,.12); }
.td-header__row { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: var(--wp--custom--header-height); gap: 24px; }
.td-header__row > .td-logo { justify-self: start; }
.td-logo { display: inline-flex; align-items: center; flex: none; padding: 6px 0; }
.td-logo__full { width: 199px; height: 60px; }
.td-logo__icon { display: none; width: 44px; height: 44px; }
.td-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.td-header__quote { min-height: 48px; padding: 12px 26px; font-size: 1.0625rem; letter-spacing: .02em; }
.td-nav { justify-self: center; min-width: 0; }
.td-nav .wp-block-navigation__container { gap: 10px; }
.td-nav .wp-block-navigation-item__content { padding: 10px 16px; border-radius: 8px; color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.125rem; letter-spacing: .02em; }
.td-nav .wp-block-navigation-item__content:hover, .td-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--ink); }
.td-nav .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--wp--preset--color--champagne); text-decoration-thickness: 2px; }
.td-nav .wp-block-navigation-submenu > .wp-block-navigation-item__content { padding-right: 4px; }
.td-nav .wp-block-navigation__submenu-icon { margin: 0 10px 0 0; }
/* submenus: light panels; the long ones (Vehicles, Services) become two-column panels */
.td-nav .wp-block-navigation__submenu-container { background: var(--wp--preset--color--paper) !important; border: 1px solid #E4E7EC !important; border-radius: 12px; padding: 10px; min-width: 260px; box-shadow: 0 18px 48px rgba(11,14,19,.16); }
.td-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 12px; color: var(--wp--preset--color--ink); font-weight: 500; font-size: 1rem; letter-spacing: 0; }
.td-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover, .td-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { background: var(--wp--preset--color--platinum); color: var(--wp--preset--color--ink); }
.td-nav .wp-block-navigation-submenu:has(> .wp-block-navigation__submenu-container > li:nth-child(6)) > .wp-block-navigation__submenu-container { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); min-width: 520px; }
.td-nav .wp-block-navigation-submenu:has(> .wp-block-navigation__submenu-container > li:nth-child(6)) > .wp-block-navigation__submenu-container[hidden], .td-nav .wp-block-navigation-submenu:not(:hover):not(:focus-within) > .wp-block-navigation__submenu-container:has(> li:nth-child(6)) { display: none; }
.td-nav .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container:has(> li:nth-child(6)), .td-nav .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container:has(> li:nth-child(6)) { display: grid; }
@media (max-width: 1023px) {
  .td-logo__full { display: none; }
  .td-logo__icon { display: block; }
  .td-header__quote { display: none; }
  .td-header__row { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
  .td-header__actions { display: none; }
  .td-nav { justify-self: end; }
}
/* mobile overlay from core/navigation: light, full-screen */
.td-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); padding: 88px var(--wp--custom--side-padding) 120px; overflow-y: auto; }
.td-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 2px; }
.td-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding: 12px 0; color: var(--wp--preset--color--ink); }
.td-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static; border: 0 !important; box-shadow: none; padding: 0 0 8px 16px; background: transparent !important; display: block !important; min-width: 0; }
.td-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.0625rem; padding: 8px 0; color: var(--wp--preset--color--slate-deep); }
.td-nav .wp-block-navigation__responsive-container-close, .td-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--ink); }
.td-nav .wp-block-navigation__responsive-container-close { top: 20px; right: var(--wp--custom--side-padding); }
.td-nav .wp-block-navigation__responsive-container-open svg, .td-nav .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* ── footer ─────────────────────────────────────────────────────────────── */
.td-footer { padding-block: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70); border-top: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--small); }
.td-footer__grid { display: grid; grid-template-columns: 1.6fr repeat(4, 1fr); gap: var(--wp--preset--spacing--60); }
.td-footer__brand img { width: 218px; height: auto; margin: 0 0 20px -4px; } /* the seal artwork is inset in its viewBox */
.td-footer__nap { line-height: 1.7; color: var(--wp--preset--color--platinum); }
.td-footer__brandname { font-family: var(--wp--preset--font-family--heading); font-weight: 600; letter-spacing: .04em; }
.td-footer__nap a, .td-footer__col a, .td-footer__legal a { color: var(--wp--preset--color--platinum); text-decoration: none; }
.td-footer__nap a:hover, .td-footer__col a:hover, .td-footer__legal a:hover { color: var(--wp--preset--color--champagne); text-decoration: underline; }
.td-footer__licence { margin-top: 16px; color: var(--wp--preset--color--slate); font-size: var(--wp--preset--font-size--x-small); line-height: 1.6; }
.td-footer__heading { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--champagne); margin: 0 0 14px; font-weight: 500; }
.td-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.td-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin-top: var(--wp--preset--spacing--70); padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--slate); }
.td-footer__copy { margin: 0; flex: 1 1 320px; }
.td-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.td-footer__legal a { white-space: nowrap; }
.td-footer__social { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.td-footer__social a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); }
.td-footer__social a:hover { border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--champagne); }
@media (max-width: 1023px) { .td-footer__grid { grid-template-columns: 1fr 1fr; } .td-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 599px) { .td-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--50); } }

/* ── sticky mobile bar ──────────────────────────────────────────────────── */
.td-mobile-bar { display: none; position: fixed; inset: auto 0 0 0; z-index: 890; background: var(--wp--preset--color--onyx); border-top: 1px solid var(--wp--preset--color--line); padding: 8px max(var(--wp--custom--side-padding), env(safe-area-inset-left)) max(8px, env(safe-area-inset-bottom)) max(var(--wp--custom--side-padding), env(safe-area-inset-right)); gap: 10px; }
.td-mobile-bar__item { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: var(--wp--custom--radius--pill); border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--small); text-decoration: none; }
.td-mobile-bar__item--quote { background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--onyx); border-color: transparent; }
@media (max-width: 1023px) { .td-mobile-bar { display: flex; } .td-footer { padding-bottom: calc(var(--wp--preset--spacing--70) + 72px); } }

/* ── breadcrumbs ────────────────────────────────────────────────────────── */
.td-breadcrumbs { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate-deep); }
.td-breadcrumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 599px) { .td-breadcrumbs__list { flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .td-breadcrumbs__list::-webkit-scrollbar { display: none; } }
.td-breadcrumbs__item + .td-breadcrumbs__item::before { content: "›"; margin-right: 6px; color: var(--wp--preset--color--champagne); }
.td-breadcrumbs a { color: inherit; text-decoration: none; }
.td-breadcrumbs a:hover { color: var(--wp--preset--color--gold-deep); text-decoration: underline; }
.is-style-dark .td-breadcrumbs, .is-style-ink .td-breadcrumbs { color: var(--wp--preset--color--slate); }

/* ── forms (quote widget + full form) ───────────────────────────────────── */
.td-quote { --td-input-bg: var(--wp--preset--color--paper); --td-input-fg: var(--wp--preset--color--ink); --td-input-line: #C9CED6; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); border-radius: var(--wp--custom--radius--card); padding: clamp(20px, 3vw, 32px); box-shadow: var(--wp--preset--shadow--card); }
.td-quote__heading { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 16px; }
.td-quote__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.td-quote--compact .td-quote__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.td-quote--compact .td-field[data-field="service"], .td-quote--compact .td-field[data-field="pickup"], .td-quote--compact .td-field[data-field="dropoff"], .td-quote--compact .td-field[data-field="passengers"] { grid-column: 1 / -1; }
.td-quote__section { border: 0; padding: 0; margin: 0 0 24px; min-width: 0; }
.td-quote__legend { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--large); padding: 0; margin-bottom: 12px; }
.td-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.td-field[data-field="pickup_address"], .td-field[data-field="dropoff_address"], .td-field[data-field="notes"], .td-field[data-field="vehicle_preference"] { grid-column: 1 / -1; }
.td-field__label { font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); letter-spacing: .01em; }
.td-field__req { color: var(--wp--preset--color--error); }
.td-field__opt { color: var(--wp--preset--color--slate-deep); font-weight: 400; font-family: var(--wp--preset--font-family--body); }
.td-field__hint { margin: 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--slate-deep); }
.td-field__error { margin: 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--error); min-height: 0; }
.td-field__error:empty { display: none; }
.td-input { width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid var(--td-input-line); border-radius: var(--wp--custom--radius--input); background: var(--td-input-bg); color: var(--td-input-fg); font: inherit; font-size: 16px; transition: border-color var(--wp--custom--transition), box-shadow var(--wp--custom--transition); }
.td-input:focus-visible { outline: none; border-color: var(--wp--preset--color--gold-deep); box-shadow: 0 0 0 3px rgba(201,162,75,.35); }
.td-input[aria-invalid="true"] { border-color: var(--wp--preset--color--error); }
.td-textarea { min-height: 120px; resize: vertical; }
.td-select { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C6672' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; }
.td-field--check { flex-direction: row; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin-top: 8px; }
.td-field--check label { flex: 1; font-size: var(--wp--preset--font-size--small); }
.td-field--check .td-field__error, .td-field--check .td-field__hint { flex-basis: 100%; margin-left: 32px; }
.td-checkbox { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--wp--preset--color--gold-deep); flex: none; }
.td-field--hourly, .td-field--airport { display: none; }
.td-quote.is-hourly .td-field--hourly, .td-quote.is-airport .td-field--airport { display: flex; }
.td-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.td-quote__status { margin: 0 0 12px; font-weight: 600; color: var(--wp--preset--color--gold-deep); }
.td-quote__status:empty { display: none; }
.td-quote__alert { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--wp--custom--radius--input); background: #FDECEC; border: 1px solid var(--wp--preset--color--error); color: #991B1B; font-weight: 600; }
.td-quote__alert:empty { display: none; }
.td-quote.is-hourly .td-field--dropoff .td-field__req { display: none; }
.td-quote__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 22px; }
.td-quote__submit { width: 100%; }
.td-quote--compact > .td-quote__submit { margin-top: 22px; } /* the compact form has no actions wrapper */
.td-quote__note { margin: 12px 0 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--slate-deep); }
@media (min-width: 640px) { .td-quote__submit { width: auto; } .td-quote__grid--contact { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .td-quote__grid, .td-quote--compact .td-quote__grid { grid-template-columns: 1fr; } }
.td-quote[aria-busy="true"] .td-quote__submit { opacity: .7; pointer-events: none; }

/* ── thank-you ──────────────────────────────────────────────────────────── */
.td-thanks__ref { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate-deep); }
.td-thanks__ref code { font-size: 1.1em; color: var(--wp--preset--color--gold-deep); }
.td-thanks__steps { padding-left: 22px; display: grid; gap: 10px; }
.td-thanks__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }

/* ── cards & loops ──────────────────────────────────────────────────────── */
.td-card { background: var(--wp--preset--color--paper); border: 1px solid #E4E7EC; border-radius: var(--wp--custom--radius--card); overflow: hidden; height: 100%; transition: transform var(--wp--custom--transition), box-shadow var(--wp--custom--transition); }
.td-card:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--card); }
.td-card > .wp-block-post-featured-image { margin: 0; }
.td-card > .wp-block-post-featured-image img { aspect-ratio: 3 / 2; object-fit: cover; }
.td-card > :not(.wp-block-post-featured-image, .td-card__media) { padding: 0 20px; }
.td-card > :nth-child(2) { padding-top: 18px; }
.td-card > :last-child { padding-bottom: 20px; }
.td-card .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.td-loop .wp-block-post-template { align-items: stretch; }
.td-card .wp-block-post-title a { text-decoration: none; color: inherit; }
.td-card .wp-block-post-title a:hover { color: var(--wp--preset--color--gold-deep); }
.td-loop .wp-block-post-template { gap: 24px; }
.td-post-meta { color: var(--wp--preset--color--slate-deep); font-size: var(--wp--preset--font-size--small); }

/* ── tables, FAQ, misc blocks ───────────────────────────────────────────── */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 1px solid #E4E7EC; padding: 10px 12px; text-align: left; vertical-align: top; }
.wp-block-table thead th, .is-style-rates thead th { background: var(--wp--preset--color--onyx); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 500; letter-spacing: .04em; font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; }
.is-style-rates tbody tr:nth-child(even) { background: var(--wp--preset--color--platinum); }
.is-style-rates td:not(:first-child) { font-family: var(--wp--preset--font-family--mono); font-size: .95em; white-space: nowrap; }
.wp-block-table { overflow-x: auto; }
.wp-block-details { border-top: 1px solid #E4E7EC; }
.wp-block-details:last-of-type { border-bottom: 1px solid #E4E7EC; }
.wp-block-details summary { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--large); cursor: pointer; list-style: none; position: relative; padding-right: 40px; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--wp--preset--color--champagne); color: var(--wp--preset--color--gold-deep); display: grid; place-items: center; font-weight: 500; font-size: 20px; line-height: 1; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details > :not(summary) { margin-top: 12px; }
.td-404 { text-align: center; padding-block: var(--wp--preset--spacing--80); }
.td-404 .wp-block-buttons { justify-content: center; }
.td-404 .wp-block-search { max-width: 480px; margin-inline: auto; }
.wp-block-search__input { min-height: 48px; border-radius: var(--wp--custom--radius--input); border: 1.5px solid #C9CED6; padding: 10px 14px; font: inherit; }
.wp-block-search__button { min-height: 48px; background: var(--wp--preset--color--onyx); color: var(--wp--preset--color--platinum); border: 0; border-radius: var(--wp--custom--radius--pill); padding: 0 20px; font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: 8px 12px; border-radius: 8px; text-decoration: none; }
.wp-block-query-pagination .current { background: var(--wp--preset--color--onyx); color: var(--wp--preset--color--platinum); }

/* ══ Phase 3 — section components ═══════════════════════════════════════ */

/* ── sections ───────────────────────────────────────────────────────────── */
.td-section { padding-block: clamp(48px, 5.5vw, 80px); }
.td-section--tight { padding-block: clamp(32px, 3.5vw, 48px); }
.td-section__head { margin-bottom: var(--wp--preset--spacing--60); text-align: center; }
.td-section__head.is-layout-constrained > * { max-width: 820px; }
.td-section__head .is-style-lead { color: var(--wp--preset--color--slate-deep); }
.is-style-dark .td-section__head .is-style-lead, .is-style-ink .td-section__head .is-style-lead { color: var(--wp--preset--color--slate); }
.td-section > .td-section__heading, .td-faq > .td-section__heading { text-align: center; }
.td-section__head > * + * { margin-top: 12px; }
.td-section__heading { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; margin: 0 0 var(--wp--preset--spacing--50); }
.td-main > .td-section, .td-main > .alignfull { margin-block-start: 0; }
.td-main p:empty { display: none; }

/* ── hero ───────────────────────────────────────────────────────────────── */
.td-hero { position: relative; overflow: hidden; color: var(--wp--preset--color--platinum); isolation: isolate; background-color: var(--wp--preset--color--onyx) !important; }
.td-hero .wp-block-cover__background { z-index: 1; }
.td-hero .wp-block-cover__image-background { z-index: 0; }
.td-hero .wp-block-cover__inner-container { position: relative; z-index: 2; padding-block: clamp(40px, 6vw, 80px); }
.td-hero__skyline { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: max(1600px, 100%); max-width: none; height: clamp(110px, 14vw, 190px); object-fit: cover; object-position: center bottom; opacity: .28; pointer-events: none; z-index: 1; }
@media (max-width: 781px) { .td-hero__skyline { display: none; } }
.td-hero__cols { gap: clamp(24px, 4vw, 56px); }
.td-hero__copy > * + * { margin-top: 18px; }
.td-hero__title { color: var(--wp--preset--color--platinum); font-size: var(--wp--preset--font-size--xxx-large); }
.td-hero__intro { color: var(--wp--preset--color--platinum); max-width: 32em; opacity: .92; }
.td-hero__eyebrow:empty, .td-hero__intro:empty { display: none; }
.td-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.td-hero__widget .td-quote { box-shadow: 0 24px 60px rgba(0,0,0,.45); }
/* with a real hero photograph: drop the line-drawing and grade the overlay dark-left (copy) to lighter-right (photo) */
.td-hero:has(> .wp-block-cover__image-background) .td-hero__skyline { display: none; }
.td-hero:has(> .wp-block-cover__image-background) > .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, rgba(11,14,19,.94) 0%, rgba(11,14,19,.84) 40%, rgba(11,14,19,.58) 100%) !important; }
.td-hero .wp-block-cover__image-background { object-fit: cover; }
@media (max-width: 781px) {
  .td-hero .wp-block-columns { flex-direction: column; }
  .td-hero__copy, .td-hero__widget { flex-basis: auto !important; }
  .td-hero__widget { margin-top: 8px; }
}

/* ── trust bar ─────────────────────────────────────────────────────────── */
.td-trust { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.td-trust__item { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--panel); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); }
.td-trust__icon { color: var(--wp--preset--color--champagne); width: 22px; height: 22px; }

/* ── cards (services, fleet) ───────────────────────────────────────────── */
.td-services, .td-fleet { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.td-fleet--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.td-fleet--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.td-card { display: flex; flex-direction: column; }
.td-card__media { display: block; margin: 0; background: var(--wp--preset--color--onyx); }
.td-card__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.td-services .td-card__img { aspect-ratio: 16 / 9; } /* service cards are about the service, vehicles get the taller 3:2 */
.td-service-card .td-card__body { padding: 16px 18px 18px; gap: 8px; }
.td-card__body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.td-card__title { font-size: var(--wp--preset--font-size--x-large); margin: 0; }
.td-card__title a { color: inherit; text-decoration: none; }
.td-card__title a:hover { color: var(--wp--preset--color--gold-deep); }
.td-card__text { margin: 0; color: var(--wp--preset--color--slate-deep); }
.td-card__link { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--wp--preset--color--gold-deep); font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--small); text-decoration: none; }
.td-card__link:hover { text-decoration: underline; }
.td-specs { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; }
.td-specs div { display: flex; flex-direction: column; }
.td-specs dt { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--slate-deep); }
.td-specs dd { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.td-card__best { margin: 0; font-size: var(--wp--preset--font-size--small); }
.td-card__label { color: var(--wp--preset--color--slate-deep); }
.is-style-dark .td-card, .is-style-ink .td-card { background: var(--wp--preset--color--panel); border-color: var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); }
.is-style-dark .td-card__text, .is-style-dark .td-specs dt, .is-style-dark .td-card__label { color: var(--wp--preset--color--slate); }
.is-style-ink .td-card__text, .is-style-ink .td-specs dt, .is-style-ink .td-card__label { color: var(--wp--preset--color--slate); }
.is-style-dark .td-card__link { color: var(--wp--preset--color--champagne); }
.is-style-ink .td-card__link { color: var(--wp--preset--color--champagne); }
.is-style-dark .td-card__title a:hover { color: var(--wp--preset--color--champagne); }
.is-style-ink .td-card__title a:hover { color: var(--wp--preset--color--champagne); }
@media (max-width: 1023px) { .td-services, .td-fleet, .td-fleet--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .td-services, .td-fleet, .td-fleet--4, .td-fleet--2 { grid-template-columns: 1fr; } }

/* ── how it works ──────────────────────────────────────────────────────── */
.td-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; counter-reset: step; }
.td-steps__item { position: relative; padding: 24px 24px 24px 28px; border-left: 2px solid var(--wp--preset--color--champagne); }
.td-steps__num { font-family: var(--wp--preset--font-family--mono); color: var(--wp--preset--color--gold-deep); font-size: var(--wp--preset--font-size--small); letter-spacing: .1em; }
.td-steps__title { font-size: var(--wp--preset--font-size--x-large); margin: 8px 0 8px; }
.td-steps__text { margin: 0; color: var(--wp--preset--color--slate-deep); }
.is-style-dark .td-steps__num { color: var(--wp--preset--color--champagne); }
.is-style-ink .td-steps__num { color: var(--wp--preset--color--champagne); }
.is-style-dark .td-steps__text { color: var(--wp--preset--color--slate); }
.is-style-ink .td-steps__text { color: var(--wp--preset--color--slate); }
@media (max-width: 781px) { .td-steps { grid-template-columns: 1fr; } }

/* ── why tiles ─────────────────────────────────────────────────────────── */
.td-why { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.td-why__item { padding: 24px; border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--paper); border: 1px solid #E4E7EC; color: var(--wp--preset--color--ink); }
.td-why__icon { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--wp--preset--color--champagne); color: var(--wp--preset--color--gold-deep); margin-bottom: 14px; }
.td-why__title { font-size: var(--wp--preset--font-size--large); margin: 0 0 8px; color: inherit; }
.td-why__text { margin: 0; color: var(--wp--preset--color--slate-deep); font-size: var(--wp--preset--font-size--small); }
.is-style-dark .td-why__item, .is-style-ink .td-why__item { background: var(--wp--preset--color--panel); border-color: var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); }
.is-style-dark .td-why__icon, .is-style-ink .td-why__icon { color: var(--wp--preset--color--champagne); }
.is-style-dark .td-why__text, .is-style-ink .td-why__text { color: var(--wp--preset--color--slate); }
@media (max-width: 1023px) { .td-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .td-why { grid-template-columns: 1fr; } }

/* ── airports strip ────────────────────────────────────────────────────── */
.td-airports { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.td-airports__item a, .td-airports__item > span:first-child:last-child, .td-airports__item--soon { display: flex; }
.td-airports__item a, .td-airports__item--soon { flex-direction: column; gap: 4px; padding: 16px; border-radius: var(--wp--custom--radius--card); border: 1px solid #E4E7EC; text-decoration: none; color: inherit; height: 100%; }
.td-airports__item a:hover { border-color: var(--wp--preset--color--champagne); }
.td-airports__code { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--x-large); color: var(--wp--preset--color--gold-deep); letter-spacing: .04em; }
.td-airports__name { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate-deep); }
.td-airports__item a, .td-airports__item--soon { border-color: #E4E7EC; }
.td-airports__item--soon .td-airports__code { color: var(--wp--preset--color--slate-deep); }
.is-style-dark .td-airports__code, .is-style-ink .td-airports__code { color: var(--wp--preset--color--champagne); }
.is-style-dark .td-airports__name, .is-style-ink .td-airports__name, .is-style-dark .td-airports__item--soon .td-airports__code, .is-style-ink .td-airports__item--soon .td-airports__code { color: var(--wp--preset--color--slate); }
.is-style-dark .td-airports__item a, .is-style-ink .td-airports__item a, .is-style-dark .td-airports__item--soon, .is-style-ink .td-airports__item--soon { border-color: var(--wp--preset--color--line); }
.td-table-scroll { overflow-x: auto; }
.td-table-scroll:focus-visible { outline-offset: 4px; }
@media (max-width: 1023px) { .td-airports { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .td-airports { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── locations grid ────────────────────────────────────────────────────── */
.td-locations { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.td-locations__item a, .td-locations__item--text > span { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; border-radius: var(--wp--custom--radius--card); border: 1px solid #E4E7EC; text-decoration: none; color: inherit; height: 100%; }
.td-locations__item a:hover { border-color: var(--wp--preset--color--champagne); background: var(--wp--preset--color--platinum); }
.td-locations__name { font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.td-locations__type { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--slate-deep); }
.td-locations__item--text > span { color: var(--wp--preset--color--slate-deep); border-style: dashed; }
.td-locations__item--all a { flex-direction: row; align-items: center; gap: 8px; color: var(--wp--preset--color--gold-deep); font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.is-style-dark .td-locations__item a, .is-style-dark .td-locations__item--text > span { border-color: var(--wp--preset--color--line); }
.is-style-ink .td-locations__item a, .is-style-ink .td-locations__item--text > span { border-color: var(--wp--preset--color--line); }
.is-style-dark .td-locations__item a:hover { background: var(--wp--preset--color--panel); }
.is-style-ink .td-locations__item a:hover { background: var(--wp--preset--color--panel); }
.is-style-dark .td-locations__type, .is-style-dark .td-locations__item--text > span { color: var(--wp--preset--color--slate); }
.is-style-ink .td-locations__type, .is-style-ink .td-locations__item--text > span { color: var(--wp--preset--color--slate); }
@media (max-width: 1023px) { .td-locations { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── pricing teaser ────────────────────────────────────────────────────── */
.td-pricing-teaser { display: grid; gap: 20px; }
.td-rates { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.td-rates caption { text-align: left; caption-side: top; padding: 0 0 12px; color: var(--wp--preset--color--slate-deep); font-size: var(--wp--preset--font-size--x-small); }
.td-rates th, .td-rates td { border: 1px solid #E4E7EC; padding: 10px 12px; text-align: left; }
.td-rates thead th { background: var(--wp--preset--color--onyx); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--x-small); letter-spacing: .06em; text-transform: uppercase; }
.td-rates tbody th { font-weight: 600; }
.td-rates td { font-family: var(--wp--preset--font-family--mono); white-space: nowrap; }
.td-pricing-teaser__note { margin: 0; color: var(--wp--preset--color--slate-deep); max-width: 60ch; }
.td-pricing-teaser .td-btn { justify-self: start; }


/* ── FAQ ───────────────────────────────────────────────────────────────── */
.td-faq { width: 100%; }
.td-faq__list .wp-block-details { padding-block: 18px; }
.td-faq__q { display: inline; font-size: var(--wp--preset--font-size--large); margin: 0; }
.td-faq__a { color: var(--wp--preset--color--slate-deep); }
.td-faq__a p { margin: 0; }
.wp-block-details summary:focus-visible { outline: 3px solid var(--td-focus, var(--wp--custom--focus-light)); outline-offset: 4px; }

/* ── reviews ───────────────────────────────────────────────────────────── */
.td-reviews__panel { padding: clamp(24px, 4vw, 40px); border-radius: var(--wp--custom--radius--card); border: 1px solid #E4E7EC; background: var(--wp--preset--color--platinum); max-width: 760px; }
.td-reviews__panel > * + * { margin-top: 12px; }
.td-reviews__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.td-reviews__embed { min-height: 120px; }

/* ── CTA band ──────────────────────────────────────────────────────────── */
.td-cta { padding-block: var(--wp--preset--spacing--90); text-align: center; }
.td-cta > * + * { margin-top: 14px; }
.td-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; }

/* ══ Phase 4 — templates ═══════════════════════════════════════════════════ */
.td-main--hero { padding-block: 0; } /* hero on top, CTA band at the bottom: no page padding either side */
.td-main.td-main--hero > * + * { margin-block-start: 0 !important; }
.td-crumbs { padding-block: 14px; }
.td-main--hero .wp-block-post-content > * + * { margin-block-start: 0; }
.td-main--hero .wp-block-post-content > :not(.alignfull):not(.td-section) { margin-block: var(--wp--preset--spacing--50); }
.td-main--hero .wp-block-post-content > h2:not(.alignfull) { margin-top: var(--wp--preset--spacing--80); }
.td-main--quote .wp-block-post-title, .td-main--legal .wp-block-post-title, .td-main--post .wp-block-post-title { margin-bottom: 8px; }
.td-main--quote > * + *, .td-main--legal > * + *, .td-main--post > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.td-main--legal .wp-block-post-content > * + * { margin-block-start: var(--wp--preset--spacing--40); }
.td-main--legal h2 { margin-top: var(--wp--preset--spacing--60); }
.td-vehicle { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.td-vehicle__media { margin: 0; border-radius: var(--wp--custom--radius--card); overflow: hidden; background: var(--wp--preset--color--onyx); }
.td-vehicle__body > * + * { margin-top: 16px; }
.td-specs--stack { display: grid; gap: 0; }
.td-specs--stack div { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 4px 20px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid #E4E7EC; }
.td-specs--stack dt { white-space: nowrap; }
.td-vehicle__sub { font-size: var(--wp--preset--font-size--large); margin: 24px 0 8px; }
.td-vehicle__amenities { display: grid; gap: 6px; }
.td-vehicle__note { color: var(--wp--preset--color--slate-deep); font-size: var(--wp--preset--font-size--small); }

.td-hero--archive .wp-block-cover__inner-container { max-width: calc(1280px + 2 * var(--wp--custom--side-padding)); margin-inline: auto; padding-inline: var(--wp--custom--side-padding); }
.td-hero--archive .td-hero__cols { display: flex; gap: clamp(24px, 4vw, 56px); align-items: center; }
@media (max-width: 781px) { .td-hero--archive .td-hero__cols { flex-direction: column; } .td-hero--archive .td-hero__copy, .td-hero--archive .td-hero__widget { flex-basis: auto !important; width: 100%; } }
.td-archive__content > * + * { margin-block-start: var(--wp--preset--spacing--50); }
.td-main > .td-section + .td-archive__content > .td-section:not([class*="is-style-"]):first-child { padding-top: 0; }
.td-archive__content > .td-section + :is(h2, h3) { margin-top: var(--wp--preset--spacing--70) !important; }
.td-archive__content > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--wp--preset--spacing--70) !important; }

/* ══ Phase 13 — layout system ═══════════════════════════════════════════
   One reading column for prose (760px = theme.json contentSize) and one wide column for components
   (1200px = wideSize), section intros centred above wide components. WordPress already centres every
   constrained child at contentSize; these rules only widen the components that need the full column. */
.td-main .is-layout-constrained > :where(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-pricing-teaser, .td-trust, .td-vehicle, .td-crumbs, .td-breadcrumbs, .td-loop, .td-table-scroll, .wp-block-table.is-style-rates, .wp-block-query-pagination, .wp-block-search, .td-split, .td-faq-split, .td-actions--center) { max-width: var(--wp--style--global--wide-size); }
.td-main.is-layout-constrained > .td-crumbs, .td-main > .td-crumbs { max-width: var(--wp--style--global--wide-size); }
.td-main--post .td-breadcrumbs, .td-main--legal .td-breadcrumbs { max-width: var(--wp--style--global--content-size); }
.td-main--quote .td-breadcrumbs { max-width: 940px; }
.td-main.td-main--blog > :where(:not(p)), .td-main.td-main--search > :where(:not(p)) { max-width: var(--wp--style--global--wide-size); }
.td-main--quote .wp-block-post-content > :where(:not(.alignfull)) { max-width: 940px; }
.td-main--post .td-post-meta { margin-bottom: var(--wp--preset--spacing--40); }
.td-main--hero .wp-block-post-content > .td-section__head { margin-top: var(--wp--preset--spacing--80); }

/* ══ Phase 14 — reference layout (photo beside the headline, quote band, split sections, mosaic) ═══ */
/* Title Case for headings and buttons (client request); FAQ questions stay sentence case */
:where(h1, h2, h3, .td-card__title, .td-steps__title, .td-why__title, .td-quote__heading, .td-quote__legend, .td-services-list__title, .td-mosaic__label, .td-section__heading, .td-thanks__heading):where(:not(.td-faq__q, .td-footer__heading, .is-style-eyebrow)) { text-transform: capitalize; }
.td-btn, .wp-block-button__link, .td-card__link, .td-mobile-bar__item, .td-header__quote { text-transform: capitalize; }
/* navigation, footer links, breadcrumbs, spec labels and select options: every word capitalised (client request) */
.td-nav .wp-block-navigation-item__content, .td-footer__col a, .td-footer__legal a, .td-breadcrumbs, .td-mosaic__label, .td-locations__name, .td-airports__name, .td-select, .td-quote__legend, .td-field__label, .td-trust__item, .td-specs dt { text-transform: capitalize; }
/* hero photo column */
.td-hero__media { display: flex; justify-content: flex-end; }
.td-hero__figure { position: relative; z-index: 2; margin: 0; width: 100%; border-radius: var(--wp--custom--radius--card); overflow: hidden; background: var(--wp--preset--color--panel); box-shadow: 0 24px 60px rgba(0,0,0,.45); }
.td-hero__figure img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.td-hero__figure .td-card__img--placeholder { object-fit: contain; padding: 8%; box-sizing: border-box; }
/* quote band */
.td-quote-band > .td-quote { max-width: var(--wp--style--global--content-size); }
.td-quote-band .td-section__head { margin-bottom: var(--wp--preset--spacing--50); }
.td-quote-band .td-quote__heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } /* the band heading is the visible title; the form keeps its own for assistive tech */
.td-quote-band .td-quote { position: relative; }
/* services list (home) */
.td-services-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 40px; }
.td-services-list__item { padding-top: 18px; border-top: 2px solid var(--wp--preset--color--champagne); }
.td-services-list__title { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 8px; }
.td-services-list__title a { color: inherit; text-decoration: none; }
.td-services-list__title a:hover { color: var(--wp--preset--color--gold-deep); }
.td-services-list__text { margin: 0 0 12px; color: var(--wp--preset--color--slate-deep); }
.is-style-dark .td-services-list__text, .is-style-ink .td-services-list__text { color: var(--wp--preset--color--slate); }
.td-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.td-actions--center { justify-content: center; margin-top: 44px; }
@media (max-width: 1023px) { .td-services-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .td-services-list { grid-template-columns: 1fr; gap: 24px; } }
/* split sections: text column + photo / mosaic column */
.td-split { gap: clamp(28px, 5vw, 72px); }
.td-main .td-split.are-vertically-aligned-center { align-items: flex-start; } /* beats the columns block stylesheet printed in the body */
.td-split__media { align-self: stretch; }
.td-split__media > .td-photo, .td-split__media > .td-mosaic { width: 100%; }
.td-split:has(.td-why) .td-split__media > .td-photo .td-photo__img { aspect-ratio: 3 / 4; }
@media (max-width: 781px) { .td-split__media > .td-photo, .td-split__media > .td-mosaic { position: static; } }
.td-split__text > * + * { margin-top: 16px; }
.td-split .td-section__head { text-align: left; margin-bottom: 4px; }
.td-split .td-section__head > * { margin-inline: 0 !important; }
.td-split .td-why { grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 1024px) { .td-split:has(.td-why) .td-split__text { flex-basis: 62% !important; } .td-split:has(.td-why) .td-split__media { flex-basis: 34% !important; } .td-split .td-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.td-split .td-why__item { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 2px 14px; padding: 14px 16px; }
.td-split .td-why__icon { grid-row: 1 / 3; margin: 0; }
.td-split .td-why__title { font-size: var(--wp--preset--font-size--large); margin: 0; }
.td-photo { margin: 0; border-radius: var(--wp--custom--radius--card); overflow: hidden; background: var(--wp--preset--color--panel); }
.td-photo__img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.td-mosaic { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.td-mosaic__item:first-child { grid-column: 1 / -1; }
.td-mosaic__item a { position: relative; display: block; border-radius: var(--wp--custom--radius--card); overflow: hidden; background: var(--wp--preset--color--onyx); }
.td-mosaic__item img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform var(--wp--custom--transition); }
.td-mosaic__item:first-child img { aspect-ratio: 16 / 9; }
.td-mosaic__item a:hover img { transform: scale(1.03); }
.td-mosaic__label { position: absolute; left: 12px; bottom: 12px; padding: 6px 12px; border-radius: var(--wp--custom--radius--pill); background: rgba(11,14,19,.82); color: var(--wp--preset--color--platinum); font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--x-small); letter-spacing: .04em; }
/* FAQ with a photo column */
.td-faq-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.td-faq-split .td-photo { position: sticky; top: calc(var(--wp--custom--header-height) + 24px); }
.td-faq-split .td-faq { width: 100%; }
.td-faq-split .td-faq > .td-section__heading { text-align: left; }
@media (max-width: 781px) { .td-faq-split { grid-template-columns: 1fr; } .td-faq-split .td-photo { position: static; } }
@media (max-width: 599px) { .td-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .td-mosaic__label { left: 8px; bottom: 8px; padding: 4px 9px; font-size: 0.7rem; } }
.td-split__media:not(:has(*)) { display: none; } /* a split whose photo slot is empty collapses to a single column instead of leaving a hole */
.is-style-platinum .td-reviews__panel { background: var(--wp--preset--color--paper); }
/* long keyword H1s (over ~45 characters) step down one size so the hero keeps its proportions */
.td-long-title .td-hero__title, .td-long-title .td-main--post .wp-block-post-title, .td-long-title .td-main--legal .wp-block-post-title, .td-long-title .td-main--quote .wp-block-post-title { font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.12; }

/* ══ Phase 15 — page-by-page alignment audit ═══════════════════════════════
   One axis per block: centred intros only above symmetric components; prose blocks left in the reading column;
   consistent vertical rhythm between components, prose and full-bleed sections; no stray gaps around the page. */
.wp-site-blocks > * + * { margin-block-start: 0; } /* header/main/footer/mobile-bar wrapper gaps */
/* section intro: centred above a wide component, left-aligned above a single prose/FAQ column */
.td-section__head:not(:has(+ :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-split, .td-faq-split, .td-pricing-teaser, .td-quote, .td-reviews, .wp-block-columns, .wp-block-transdispatch-quote-form, .wp-block-transdispatch-pricing-teaser, .wp-block-transdispatch-fleet-grid, .wp-block-transdispatch-locations-grid, .wp-block-transdispatch-airports-strip, .wp-block-transdispatch-trust-bar, .wp-block-transdispatch-fleet-mosaic))) { text-align: left; }
.td-section__head:not(:has(+ :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-split, .td-faq-split, .td-pricing-teaser, .td-quote, .td-reviews, .wp-block-columns, .wp-block-transdispatch-quote-form, .wp-block-transdispatch-pricing-teaser, .wp-block-transdispatch-fleet-grid, .wp-block-transdispatch-locations-grid, .wp-block-transdispatch-airports-strip, .wp-block-transdispatch-trust-bar, .wp-block-transdispatch-fleet-mosaic))) > * { margin-inline: 0 !important; }
.td-faq > .td-section__heading { text-align: left; }
/* pricing fallback (no confirmed figures yet): a centred note and button under the centred intro */
.td-pricing-teaser:not(:has(.td-rates)) { justify-items: start; text-align: left; }
.td-section__head + * .td-pricing-teaser:not(:has(.td-rates)), .td-section__head + .td-pricing-teaser:not(:has(.td-rates)) { max-width: 62ch; margin-inline: auto; justify-items: center; text-align: center; }
.td-section__head + * .td-pricing-teaser:not(:has(.td-rates)) .td-btn, .td-section__head + .td-pricing-teaser:not(:has(.td-rates)) .td-btn { justify-self: center; }
/* rhythm: a prose block that follows a wide component inside a section starts as a new block */
.td-section > :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-split, .td-faq-split, .td-pricing-teaser, .td-faq) + :is(h2, h3, p, ul, ol, .td-section__head) { margin-top: var(--wp--preset--spacing--90) !important; }
.td-section > :is(p, ul, ol) + :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-pricing-teaser, .td-faq) { margin-top: var(--wp--preset--spacing--80) !important; }
.td-section > :is(p, ul, ol) + :is(h2, h3), .wp-block-post-content > :is(p, ul, ol) + :is(h2, h3), .td-archive__content > :is(p, ul, ol) + :is(h2, h3) { margin-top: var(--wp--preset--spacing--70) !important; }
.td-section > :is(h2, h3) + :is(p, ul, ol), .wp-block-post-content > :is(h2, h3) + :is(p, ul, ol) { margin-top: var(--wp--preset--spacing--40) !important; }
/* two adjacent light sections do not double their padding */
.td-section:not([class*="is-style-"]) + .td-section:not([class*="is-style-"]), .td-section.is-style-ink + .td-section.is-style-ink, .td-section.is-style-dark + .td-section.is-style-dark, .td-section.is-style-platinum + .td-section.is-style-platinum { padding-top: 0; }
/* prose that sits outside a section keeps a section's worth of space before/after a full-bleed block */
.td-main .wp-block-post-content > :not(.alignfull):has(+ .alignfull[class*="is-style-"]) { margin-bottom: clamp(48px, 5.5vw, 80px) !important; }
.td-main .wp-block-post-content > .alignfull[class*="is-style-"] + :not(.alignfull) { margin-top: clamp(48px, 5.5vw, 80px) !important; }
/* a light full-bleed section next to loose prose contributes its padding only, never a second gap */
.wp-block-post-content > .td-section:not([class*="is-style-"]):has(+ :not(.alignfull)) { padding-bottom: 0; }
.wp-block-post-content > :not(.alignfull) + .td-section:not([class*="is-style-"]) { padding-top: 0; }
.wp-block-post-content > :not(.alignfull):has(+ .td-section:not([class*="is-style-"])) { margin-bottom: var(--wp--preset--spacing--70) !important; }
.wp-block-post-content > .td-section:not([class*="is-style-"]) + :not(.alignfull) { margin-top: var(--wp--preset--spacing--70) !important; }
.td-main--hero .wp-block-post-content > :not(.alignfull):first-child { margin-top: var(--wp--preset--spacing--90) !important; }
.td-main--hero .wp-block-post-content > :not(.alignfull):last-child { margin-bottom: var(--wp--preset--spacing--90) !important; }
/* lists hang inside the column */
.td-main .wp-block-list { padding-left: 1.25em; }
/* articles, legal and quote pages: heading scale, image spacing, no gap before the closing band */
.td-main--post, .td-main--legal, .td-main--quote { padding-top: var(--wp--preset--spacing--50); }
.td-main--post { padding-bottom: 0; }
.td-main--post > .wp-block-post-content.alignfull { margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--90) !important; }
.td-main--legal > .wp-block-post-content.alignfull, .td-main--quote > .wp-block-post-content.alignfull { margin-block-start: var(--wp--preset--spacing--60) !important; }
.td-main--post .wp-block-post-content h2, .td-main--legal .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--x-large); }
.td-main--post .wp-block-post-content h3, .td-main--legal .wp-block-post-content h3 { font-size: var(--wp--preset--font-size--large); }
/* related-pages lists: one pill per link instead of a bulleted run */
.td-related { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.td-related a { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 16px; border-radius: var(--wp--custom--radius--pill); border: 1px solid #C9CED6; color: var(--wp--preset--color--ink); text-decoration: none; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); }
.td-related a:hover { border-color: var(--wp--preset--color--champagne); color: var(--wp--preset--color--gold-deep); }
.is-style-dark .td-related a, .is-style-ink .td-related a { border-color: var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); }

/* ══ Phase 16 — final audit fixes (tablet gutters, search/blog grids, mobile wrapping) ═══ */
/* hero copy and photo sit on the same side gutter as the breadcrumb and prose at every width */
.td-hero { padding-inline: 0 !important; }
.td-hero .wp-block-cover__inner-container { padding-inline: var(--wp--custom--side-padding); box-sizing: border-box; }
/* blog and search cards: one column until each card has room for a readable title */
@media (max-width: 900px) { .td-loop .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; } }
.td-loop .td-card .wp-block-post-title { text-align: left; }
/* the search query is the reader's own words — no Title Case on it */
.td-main--search .wp-block-query-title { text-transform: none; }
/* balanced "pretty" wrapping reads well in wide columns but leaves ragged short lines on phones */
@media (max-width: 599px) { :where(.td-main p, .td-main li) { text-wrap: wrap; } }

/* ══ Phase 17 — one text rail per page ════════════════════════════════════
   Every block of body text sits inside the reading column (content-size, centred). Photos in a split or in
   the vehicle panel extend from that column out to the component column (wide-size), so a photo-right block's
   text starts where the paragraphs start and a photo-left block's text ends where the paragraphs end.
   Measured before: five different text edges on one vehicle page; after: the reading column's two edges. */
@media (min-width: 1024px) {
  .td-main .td-split, .td-main .td-vehicle { container-type: inline-size; }
  .td-main .td-split:not(:has(.td-why)) { display: grid !important; column-gap: 56px; align-items: start; }
  .td-main .td-split--right:not(:has(.td-why)) { grid-template-columns: minmax(0, 54fr) minmax(0, 46fr); }
  .td-main .td-split--left:not(:has(.td-why)) { grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); }
  .td-main .td-split:not(:has(.td-why)) > .wp-block-column { flex-basis: auto !important; width: auto; margin: 0 !important; }
  /* the text column's outer edge lands on the reading column's edge */
  .td-main .td-split--right:not(:has(.td-why)) > .td-split__text { padding-left: max(0px, calc((100cqi - var(--wp--style--global--content-size)) / 2)); }
  .td-main .td-split--left:not(:has(.td-why)) > .td-split__text { padding-right: max(0px, calc((100cqi - var(--wp--style--global--content-size)) / 2)); }
  /* vehicle panel = a photo-left split */
  .td-main .td-vehicle { grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); column-gap: 56px; align-items: stretch; }
  .td-main .td-vehicle__body { padding-right: max(0px, calc((100cqi - var(--wp--style--global--content-size)) / 2)); }
  /* the photo fills the panel's height without contributing to it: the specs column sets the height */
  .td-main .td-vehicle__media { position: relative; align-self: stretch; min-height: 380px; }
  .td-main .td-vehicle__media > .td-card__img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
}
/* text blocks inside a split: the heading scale of the reading column, top-aligned with the photo */
.td-split__text > :first-child, .td-vehicle__body > :first-child { margin-top: 0 !important; }
.td-vehicle__body .td-section__heading { font-size: var(--wp--preset--font-size--xx-large); line-height: 1.1; margin: 0 0 8px; }
.td-vehicle__body .td-specs--stack { margin-top: 12px; }
.td-specs--stack dt { font-size: var(--wp--preset--font-size--small); letter-spacing: .04em; text-transform: none; color: var(--wp--preset--color--slate-deep); font-family: var(--wp--preset--font-family--body); }
.td-specs--stack dd { font-family: var(--wp--preset--font-family--body); font-weight: 600; font-size: var(--wp--preset--font-size--medium); }
.td-vehicle__sub { font-size: var(--wp--preset--font-size--x-large); margin: 28px 0 10px; }
.td-vehicle__body .td-btn { margin-top: 24px; }
/* spacing around and inside photo blocks: a split is a new block, headings inside it get the column rhythm */
.td-main :is(.wp-block-post-content, .td-section, .td-archive__content) > :is(p, ul, ol, h2, h3) + .td-split { margin-top: var(--wp--preset--spacing--80) !important; }
.td-main :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-split + :is(p, ul, ol, h2, h3) { margin-top: var(--wp--preset--spacing--80) !important; }
.td-split__text > :is(p, ul, ol, .td-fleet, .wp-block-table) + :is(h2, h3) { margin-top: var(--wp--preset--spacing--70) !important; }
.td-split__text > :is(h2, h3) + :is(p, ul, ol) { margin-top: 12px !important; }
/* a heading in a half-width column steps down one size so it wraps to one or two lines, not three */
.td-split__text > h2, .td-split__text .td-section__head h2 { font-size: clamp(1.75rem, 2.4vw, 2.25rem); line-height: 1.15; }
.td-split__text > h3 { font-size: clamp(1.375rem, 1.8vw, 1.625rem); }
/* photos in a split fill the height of their text column — no empty band above or below the picture */
@media (min-width: 1024px) {
  .td-main .td-split:not(:has(.td-why)) { align-items: stretch; }
  .td-main .td-split:not(:has(.td-why)) > .td-split__text { align-self: center; }
  .td-main .td-split__media:has(> .td-photo) { position: relative; min-height: 340px; }
  .td-main .td-split__media > .td-photo { position: absolute; inset: 0; height: 100%; }
  .td-main .td-split__media > .td-photo .td-photo__img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
  /* FAQ with a photo: the same photo-left split, answers end on the reading column */
  .td-main .td-faq-split { container-type: inline-size; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); column-gap: 56px; align-items: stretch; }
  .td-main .td-faq-split > .td-faq { padding-right: max(0px, calc((100cqi - var(--wp--style--global--content-size)) / 2)); }
  .td-main .td-faq-split > .td-photo { position: relative; top: auto; align-self: stretch; min-height: 380px; }
  .td-main .td-faq-split > .td-photo .td-photo__img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
}
/* below the split breakpoint the photo sits above its text at a fixed 3:2 */
@media (max-width: 1023px) {
  .td-main .td-split { gap: 20px !important; }
  .td-main .td-split__media > .td-photo .td-photo__img, .td-main .td-faq-split > .td-photo .td-photo__img { aspect-ratio: 3 / 2; height: auto; }
  .td-main .td-faq-split { grid-template-columns: 1fr; }
}

/* ══ Phase 17b — fleet pages: photos without gaps, card rows that line up ════════════════════ */
@media (min-width: 1024px) {
  /* WordPress centres a column that carries is-vertically-aligned-center; the photo column must stretch */
  .td-main .td-split > .td-split__media.wp-block-column { align-self: stretch !important; }
}
/* hero photo hugs its image — never a stretched empty panel under it */
.td-hero__media { align-items: center; }
.td-hero__figure { align-self: center; height: auto; background: transparent; }

/* card rows: title, specs, "best for" and the link start on the same line in every card of a row */
@supports (grid-template-rows: subgrid) {
  .td-fleet > .td-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
  .td-fleet > .td-card > .td-card__body { display: grid; grid-row: 2 / span 4; grid-template-rows: subgrid; row-gap: 10px; align-content: start; }
  .td-services > .td-card { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 0; }
  .td-services > .td-card > .td-card__body { display: grid; grid-row: 2 / span 3; grid-template-rows: subgrid; row-gap: 8px; align-content: start; }
  .td-fleet, .td-services { row-gap: 24px; }
  .td-card__link { align-self: end; }
}
/* spec pair inside a card: two fixed columns so a long value wraps in its own cell */
.td-card .td-specs { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: 4px 18px; align-items: start; }
.td-card .td-specs div { min-width: 0; }
.td-card .td-specs dd { overflow-wrap: anywhere; }

/* At A Glance panel: photo and specs balanced so the photo fills its column without cutting the vehicle */
.td-vehicle__amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 8px; }
.td-vehicle__sub { margin: 22px 0 10px; }
.td-vehicle__body .td-btn { margin-top: 22px; }
@media (min-width: 1024px) {
  .td-main .td-vehicle { grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); }
  .td-main .td-vehicle__media > .td-card__img { object-position: center 60%; }
}
@media (max-width: 1023px) {
  .td-main .td-vehicle__media { position: static; min-height: 0; }
  .td-main .td-vehicle__media > .td-card__img { position: static; aspect-ratio: 3 / 2; height: auto; }
}
@media (max-width: 480px) { .td-vehicle__amenities { grid-template-columns: 1fr; } }

/* At A Glance, final form: a wide photo across the component column, then the specs and the on-board list
   side by side on the reading column. No height matching, so no gap beside the photo and no cropped vehicle. */
.td-main .td-vehicle { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; row-gap: clamp(28px, 3.5vw, 44px); container-type: normal; }
.td-main .td-vehicle__media { position: relative !important; min-height: 0 !important; margin: 0; border-radius: var(--wp--custom--radius--card); overflow: hidden; }
.td-main .td-vehicle__media > .td-card__img { position: static !important; width: 100%; height: auto !important; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 55%; }
.td-main .td-vehicle__body { width: 100%; max-width: var(--wp--style--global--content-size); margin-inline: auto; padding: 0 !important; }
.td-main .td-vehicle__body > * + * { margin-top: 0; }
@media (min-width: 1024px) {
  .td-main .td-vehicle__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 56px; align-items: start;
    grid-template-areas: "head head" "specs sub" "specs list" "specs note" "btn btn"; }
  .td-main .td-vehicle__body > .td-section__heading { grid-area: head; margin-bottom: 18px; }
  .td-main .td-vehicle__body > .td-specs--stack { grid-area: specs; margin-top: 0; }
  .td-main .td-vehicle__body > .td-vehicle__sub { grid-area: sub; margin: 0 0 12px; }
  .td-main .td-vehicle__body > .td-vehicle__amenities { grid-area: list; }
  .td-main .td-vehicle__body > .td-vehicle__note { grid-area: note; margin-top: 12px; }
  .td-main .td-vehicle__body > .td-btn { grid-area: btn; justify-self: start; margin-top: 28px; }
  .td-main .td-vehicle__amenities { grid-template-columns: 1fr; }
}
@media (max-width: 1023px) {
  .td-main .td-vehicle__media > .td-card__img { aspect-ratio: 3 / 2; }
  .td-main .td-vehicle__body > .td-vehicle__sub { margin-top: 26px; }
  .td-main .td-vehicle__body > .td-btn { margin-top: 24px; }
}
.td-specs--stack div:first-child { border-top: 1px solid #E4E7EC; }
/* split photos show the vehicle, which sits in the lower half of most of these frames */
.td-main .td-split__media > .td-photo .td-photo__img { object-position: center 62%; }
/* the second spec column's heading lines up with the first spec row */


/* At A Glance as a two-column spec sheet: both column headings on one line at one size,
   the specs table and the on-board list start on the same line, the button closes the block. */
@media (min-width: 1024px) {
  .td-main .td-vehicle__body { grid-template-areas: "head sub" "specs list" "specs note" "btn btn" !important; row-gap: 0; }
  .td-main .td-vehicle__body > .td-section__heading,
  .td-main .td-vehicle__body > .td-vehicle__sub { font-size: var(--wp--preset--font-size--x-large) !important; line-height: 1.2; margin: 0 0 16px !important; padding: 0 !important; align-self: end; }
  .td-main .td-vehicle__body > .td-specs--stack,
  .td-main .td-vehicle__body > .td-vehicle__amenities { margin: 0 !important; align-self: start; }
  .td-main .td-vehicle__body > .td-vehicle__amenities { border-top: 1px solid #E4E7EC; }
  .td-main .td-vehicle__body > .td-btn { margin-top: 32px !important; }
}
/* on-board rows share the spec table's rhythm: same row height, same hairline */
.td-main .td-vehicle__amenities { gap: 0 !important; }
.td-main .td-vehicle__amenities li { padding-top: 12px; padding-bottom: 12px; border-bottom: 1px solid #E4E7EC; line-height: 1.6; min-height: 55px; box-sizing: border-box; }
/* check mark centred on the first line of its text */
.is-style-checks li::before { top: calc(.8em - 9px); }
.td-main .td-vehicle__amenities li::before { top: calc(12px + .8em - 10px); }
@media (max-width: 1023px) {
  .td-main .td-vehicle__body > .td-section__heading { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 14px; }
  .td-main .td-vehicle__body > .td-vehicle__sub { font-size: var(--wp--preset--font-size--x-large); margin: 32px 0 14px !important; }
  .td-main .td-vehicle__amenities { border-top: 1px solid #E4E7EC; }
}

/* ══ Phase 17c — fleet review fixes ════════════════════════════════════════════════════════════ */
.td-main .td-vehicle--no-media { row-gap: 0; }
/* photo blocks below 1024 px: photo always first, a consistent 32 px to its text */
@media (max-width: 1023px) {
  .td-main .td-split { display: flex !important; flex-direction: column; gap: 32px !important; }
  .td-main .td-split > .td-split__media { order: -1; }
  .td-main :is(.wp-block-post-content, .td-section) > .td-split { margin-block: var(--wp--preset--spacing--80) !important; }
}
/* two onyx bands in a row (related vehicles, then the closing call to action): one gap and a hairline, not two paddings */
.td-section.is-style-dark + .td-cta.is-style-dark, .td-section.is-style-dark:has(+ .td-cta.is-style-dark) { --td-band-gap: clamp(40px, 5vw, 64px); }
.td-section.is-style-dark:has(+ .td-cta.is-style-dark) { padding-bottom: var(--td-band-gap); }
.td-section.is-style-dark + .td-cta.is-style-dark { padding-top: var(--td-band-gap); border-top: 1px solid var(--wp--preset--color--line); }
/* bulleted lists: the text shares the heading's edge, the bullets hang in the margin (desktop and tablet) */
@media (min-width: 768px) {
  .td-main :is(.wp-block-post-content, .td-section, .td-split__text, .td-archive__content) > .wp-block-list { padding-left: 0; margin-left: 0; list-style-position: outside; }
  .td-main :is(.wp-block-post-content, .td-section, .td-split__text, .td-archive__content) > .wp-block-list > li { margin-left: 0; }
  .td-main :is(.wp-block-post-content, .td-section, .td-split__text, .td-archive__content) > ol.wp-block-list { padding-left: 0; }
}
/* odd card left over in a two-column row: it spans the row as a horizontal card, never an empty hole */
@media (min-width: 600px) and (max-width: 1023px) {
  .td-fleet > .td-card:last-child:nth-child(odd) { grid-column: 1 / -1; grid-row: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: none; }
  .td-fleet > .td-card:last-child:nth-child(odd) > .td-card__media { height: 100%; }
  .td-fleet > .td-card:last-child:nth-child(odd) > .td-card__media .td-card__img { height: 100%; aspect-ratio: auto; min-height: 220px; }
  .td-fleet > .td-card:last-child:nth-child(odd) > .td-card__body { grid-row: auto; display: flex; grid-template-rows: none; }
}
/* a heading above a card grid gets room to breathe */
.td-section__heading + :is(.td-fleet, .td-services) { margin-top: 36px !important; }
/* hero photo in 4:3 so it sits closer to the height of the headline beside it */
@media (min-width: 782px) { .td-hero__figure img { aspect-ratio: 4 / 3; object-fit: cover; height: auto; } }
/* phones: the spec label sits above its value, so long values are not squeezed into a narrow cell */
@media (max-width: 480px) {
  .td-specs--stack div { grid-template-columns: 1fr; gap: 2px; }
  .td-specs--stack dt { font-size: var(--wp--preset--font-size--x-small); letter-spacing: .06em; }
}
/* card copy wraps without one-word last lines; date and time inputs match the other fields */
.td-card__best, .td-card__text, .td-steps__text, .td-why__text { text-wrap: pretty; }
.td-input { height: 48px; box-sizing: border-box; }
.td-textarea { height: auto; }

/* ══ Phase 18 — fleet pages on one full-width rail ═══════════════════════════════════════════════
   /fleet/ and every vehicle page: body text, headings, the spec sheet and the quote card use the component
   column (wide-size, the logo-to-menu edge of the header), so text lines up with the photos and card grid
   instead of sitting in a narrower centred column with empty sides. */
.td-main--vehicle, .td-main--fleet { --wp--style--global--content-size: var(--wp--style--global--wide-size); --wp--custom--max-prose: none; }
@media (min-width: 1024px) {
  .td-main:is(.td-main--vehicle, .td-main--fleet) .td-split:not(:has(.td-why)) { column-gap: clamp(48px, 5vw, 80px); }
  /* At A Glance: wider gutter between the two columns; the button sits under the spec table it belongs to */
  .td-main--vehicle .td-vehicle__body { column-gap: clamp(64px, 8vw, 128px); grid-template-rows: auto auto 1fr auto;
    grid-template-areas: "head sub" "specs list" "btn list" ". note" !important; }
  .td-main--vehicle .td-vehicle__body > .td-btn { grid-area: btn; align-self: start; justify-self: start; margin-top: 32px !important; }
  .td-main--vehicle .td-vehicle__body > .td-vehicle__note { grid-area: note; }
}
/* At A Glance → first article heading: one section gap (the article section's own top padding), not two paddings stacked */
.td-section--tight:has(.td-vehicle):has(+ .wp-block-post-content > .td-section:first-child:not(.is-style-dark):not(.is-style-ink):not(.is-style-platinum)) { padding-bottom: 0; }

/* ══ Phase 18b — services pages on the same full-width rail as the fleet pages ═══════════════════
   The eight service pages, the airport pages, and the two hubs that list services (/services/ and
   /airport-transportation/). /locations/ shares the hub template and keeps its current column. */
:is(.td-main--service, .td-main--airport),
:is(.td-page-services, .td-page-airport-transportation) .td-main--hub { --wp--style--global--content-size: var(--wp--style--global--wide-size); --wp--custom--max-prose: none; }
@media (min-width: 1024px) {
  :is(.td-main--service, .td-main--airport) .td-split:not(:has(.td-why)),
  :is(.td-page-services, .td-page-airport-transportation) .td-main--hub .td-split:not(:has(.td-why)) { column-gap: clamp(48px, 5vw, 80px); }
}
/* a photo on its own (not in a split) across the full rail: a 16:9 band with a block gap above and below,
   instead of a 1280×960 frame pressed against the list above it */
:is(.td-main--vehicle, .td-main--fleet, .td-main--service, .td-main--airport, .td-page-services .td-main--hub, .td-page-airport-transportation .td-main--hub)
  :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-photo { margin-block: var(--wp--preset--spacing--70) !important; }
:is(.td-main--vehicle, .td-main--fleet, .td-main--service, .td-main--airport, .td-page-services .td-main--hub, .td-page-airport-transportation .td-main--hub)
  :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-photo .td-photo__img { aspect-ratio: 16 / 9; object-position: center 62%; }

/* ══ Phase 18c — /pricing/ on the same full-width rail as the fleet and services pages ══════════ */
.td-main--pricing { --wp--style--global--content-size: var(--wp--style--global--wide-size); --wp--custom--max-prose: none; }
@media (min-width: 1024px) { .td-main--pricing .td-split:not(:has(.td-why)) { column-gap: clamp(48px, 5vw, 80px); } }
.td-main--pricing :is(.wp-block-post-content, .td-section) > .td-photo { margin-block: var(--wp--preset--spacing--70) !important; }
.td-main--pricing :is(.wp-block-post-content, .td-section) > .td-photo .td-photo__img { aspect-ratio: 16 / 9; object-position: center 62%; }
/* the airport-rates and hourly sections continue with left-aligned paragraphs, so their intro, note and
   button start on the same left edge instead of a centred block above left text */
.td-main--pricing .td-section:has(.td-pricing-teaser) > .td-section__head { text-align: left; }
.td-main--pricing .td-section:has(.td-pricing-teaser) > .td-section__head > * { margin-inline: 0 !important; }
.td-main--pricing .td-section:has(.td-pricing-teaser) .td-pricing-teaser:not(:has(.td-rates)) { max-width: var(--wp--style--global--wide-size); margin-inline: auto !important; justify-items: start; text-align: left; }
.td-main--pricing .td-section:has(.td-pricing-teaser) .td-pricing-teaser:not(:has(.td-rates)) .td-btn { justify-self: start; }
.td-main--pricing .td-section > .td-pricing-teaser:not(:has(.td-rates)) + :is(h2, h3, p, ul, ol) { margin-top: var(--wp--preset--spacing--70) !important; }

/* ══ Phase 18d — every page on the full-width rail ══════════════════════════════════════════════
   Home, about, contact, FAQ, reviews, affiliates, blog, articles, locations, legal, quote, search and 404
   join the fleet, services and pricing pages: text uses the component column (wide-size), the same edges
   as the header logo, photos and card grids. */
.td-main { --wp--style--global--content-size: var(--wp--style--global--wide-size); --wp--custom--max-prose: none; }
@media (min-width: 1024px) { .td-main .td-split:not(:has(.td-why)) { column-gap: clamp(48px, 5vw, 80px); } }
.td-main :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-photo { margin-block: var(--wp--preset--spacing--70) !important; }
.td-main :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-photo .td-photo__img { aspect-ratio: 16 / 9; object-position: center 62%; }
/* quote and thank-you pages: title, intro and the steps share the form card's edges */
.td-main--quote .td-breadcrumbs { max-width: var(--wp--style--global--wide-size); }
.td-main--quote .wp-block-post-content > :where(:not(.alignfull)) { max-width: var(--wp--style--global--wide-size); }

/* ══ Phase 19 — larger header and logo; footer brand column with contact details and social icons ══
   Header 72 → 100 px with the full lockup at 64–84 px tall, so "Trans Dispatch Inc" and the tagline read.
   Tablets and phones keep the full lockup (was the seal only). */
.td-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.td-logo { padding: 8px 0; }
/* sized by width (img[width][height] forces height:auto); artwork ratio 599.48 : 176 → 286 px wide = 84 px tall */
.td-header .td-logo__full { width: clamp(218px, 17.7vw, 286px); height: auto; }
@media (max-width: 1023px) {
  .td-header__row { min-height: 76px; }
  .td-header .td-logo__full { display: block; width: 191px; }
  .td-header .td-logo__icon { display: none; }
}
@media (max-width: 400px) { .td-header .td-logo__full { width: 170px; } }

/* footer brand column: logo, contact list, social row */
.td-footer__logo { display: inline-block; margin: 0 0 24px -6px; line-height: 0; }
.td-footer__brand .td-footer__logo img { width: 280px; max-width: 100%; height: auto; margin: 0; }
.td-footer__nap { font-style: normal; }
.td-footer__contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.td-footer__contact > li { display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: 12px; align-items: start; }
.td-footer__contact .td-icon { width: 20px; height: 20px; margin-top: 3px; color: var(--wp--preset--color--champagne); }
.td-footer__label { display: block; font-size: .9375rem; line-height: 1.35; color: var(--wp--preset--color--slate); }
.td-footer__value { display: block; font-size: var(--wp--preset--font-size--small); line-height: 1.5; color: var(--wp--preset--color--platinum); overflow-wrap: anywhere; }
.td-footer__nap a.td-footer__value { color: var(--wp--preset--color--platinum); }
.td-footer__pending { color: var(--wp--preset--color--slate); }
.td-footer__brand .td-footer__social { margin-top: 24px; flex-wrap: wrap; gap: 10px; }
.td-footer__social-pending { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); opacity: .7; cursor: default; }
.td-footer__social .td-icon { width: 18px; height: 18px; }

/* ══ Phase 20 — small labels larger and bold, site-wide ════════════════════════════════════════
   Client: the gold capital labels above headings ("Instant quote", "What we do", "Ready when you are",
   "Fleet · Black car", the hero line "Chauffeured Transportation · New York & Nationwide") were too small.
   The x-small preset they used goes 13 → 15 px (notes, hints, spec labels follow it); the labels themselves
   go to 16–18 px bold. */
.is-style-eyebrow, p.is-style-eyebrow.td-hero__eyebrow { font-size: clamp(1rem, 0.94rem + 0.22vw, 1.125rem); font-weight: 700; letter-spacing: .1em; line-height: 1.4; }
.td-footer__heading { font-size: 1rem; font-weight: 700; letter-spacing: .1em; }
.td-specs dt { font-weight: 600; }
.td-mosaic__label { font-size: .9375rem; font-weight: 600; }
@media (max-width: 599px) { .td-mosaic__label { font-size: .875rem; } }

/* ══ Phase 21 — fixes from the full-rail review (22 pages, desktop + phone; every finding re-measured live) ══ */
/* why cards: a card's extra height goes under its text, not between a short title and its body */
.td-split .td-why__item { grid-template-rows: auto 1fr; align-content: start; }
/* why split photo: a centred 4:5 frame beside the cards (was a 428×702 sliver stretched to the text height); 3:2 when stacked */
@media (min-width: 1024px) {
  .td-main .td-split:has(.td-why) { column-gap: clamp(48px, 5vw, 80px); }
  .td-main .td-split:has(.td-why) > .td-split__media.wp-block-column { align-self: center !important; min-height: 0; }
  .td-main .td-split:has(.td-why) .td-split__media > .td-photo { position: static; inset: auto; height: auto; }
  .td-main .td-split:has(.td-why) .td-split__media > .td-photo .td-photo__img { height: auto; aspect-ratio: 4 / 5; }
}
@media (max-width: 1023px) { .td-main .td-split:has(.td-why) .td-split__media > .td-photo .td-photo__img { aspect-ratio: 3 / 2; } }
/* phones/tablets: a section that opens or closes with a photo block uses its own padding only (was padding + 64 px margin = 112 px) */
@media (max-width: 1023px) {
  .td-main .td-section > .td-split:first-child { margin-top: 0 !important; }
  .td-main .td-section > .td-split:last-child { margin-bottom: 0 !important; }
}
/* phones: a photo mosaic with an odd number of small tiles fills the last row instead of leaving a hole */
@media (max-width: 599px) {
  .td-mosaic > .td-mosaic__item:not(:first-child):last-child:nth-child(even) { grid-column: 1 / -1; }
  .td-mosaic > .td-mosaic__item:not(:first-child):last-child:nth-child(even) img { aspect-ratio: 16 / 9; }
}
/* home: the pricing teaser and the FAQ below it are both white; keep a real section break between them */
.td-main .td-section:has(.td-pricing-teaser) + .td-section:not([class*="is-style-"]) { padding-top: clamp(32px, 4vw, 64px); }
/* text inside a photo block uses the same rhythm as text outside it: 24 px between paragraphs, 16 px under a heading */
.td-main .td-split__text > :is(p, ul, ol, .td-actions) + :is(p, ul, ol, .td-actions) { margin-top: 24px; }
.td-main .td-split__text > :is(h2, h3) + :is(p, ul, ol) { margin-top: var(--wp--preset--spacing--40) !important; }
/* after a grid or card row: 64 px to the next paragraph or heading, the same as above it (was 96 px) */
.td-main .td-section > :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-split, .td-faq-split, .td-pricing-teaser, .td-faq) + :is(p, ul, ol) { margin-top: var(--wp--preset--spacing--80) !important; }
.td-main .td-section > :is(.td-services, .td-services-list, .td-fleet, .td-mosaic, .td-steps, .td-why, .td-airports, .td-locations, .td-trust, .td-pricing-teaser, .td-faq) + :is(h2, h3) { margin-top: var(--wp--preset--spacing--80) !important; }
/* a band that holds only the trust bar is a tight band on every page */
.td-main .td-section:has(> .td-trust:only-child) { padding-block: clamp(32px, 3.5vw, 48px); }
/* quote form: Vehicle preference pairs with Passengers when no conditional field is showing (no empty half row) */
.td-quote--full .td-field[data-field="vehicle_preference"] { grid-column: auto; }
.td-quote--full.is-hourly:not(.is-airport) .td-field[data-field="vehicle_preference"], .td-quote--full.is-airport:not(.is-hourly) .td-field[data-field="vehicle_preference"] { grid-column: 1 / -1; }
/* reviews: the panel spans the rail like the text around it, with a block gap under it */
.td-reviews__panel { max-width: none; }
.td-main :is(.wp-block-post-content, .td-section, .td-archive__content) > .td-reviews + :is(p, ul, ol, h2, h3) { margin-top: var(--wp--preset--spacing--80) !important; }
/* blog and search cards: one-line titles start at the card edge like the others (core centred them) */
.td-loop .td-card .wp-block-post-title { margin-left: 0 !important; margin-right: 0 !important; }
/* 404: the search box keeps the message's centred width; on phones the button drops under the field */
.td-main .td-404 .wp-block-search { max-width: 480px; }
@media (max-width: 480px) {
  .td-404 .wp-block-search__inside-wrapper { flex-wrap: wrap; }
  .td-404 .wp-block-search__input { flex: 1 1 100%; }
  .td-404 .wp-block-search__button { margin-left: 0 !important; margin-top: 8px; width: 100%; }
}
/* section-level pricing teaser: its note runs the rail like the paragraphs around it */
.td-main .td-section > .td-pricing-teaser .td-pricing-teaser__note { max-width: none; }
/* legal pages: the closing button is an action, not another line of text */
.td-main--legal .wp-block-post-content > .td-actions { margin-block-start: 32px; }
/* posts that end on a band, and the quote page: no white strip between the last band and the call to action / footer */
.td-main--post > .wp-block-post-content.alignfull:has(> .alignfull.td-section:last-child) { margin-block-end: 0 !important; }
.wp-block-post-content > .alignfull.td-section + .alignfull.td-section { margin-block-start: 0 !important; }
.td-main--quote:has(> .wp-block-post-content > .alignfull[class*="is-style-"]:last-child) { padding-bottom: 0; }
/* a button row followed by a heading gets a heading's space */
.wp-block-post-content > .td-actions + :is(h2, h3), .td-section > .td-actions + :is(h2, h3) { margin-top: var(--wp--preset--spacing--70) !important; }
/* thank-you page: the steps heading has room above and below */
.td-thanks__heading { margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--40); }
.td-thanks__ref + .td-thanks__heading { margin-top: var(--wp--preset--spacing--60); }

/* ══ Phase 22 — footer: link columns start level with the logo's "TRANS DISPATCH INC" line ════════
   Stacked logo artwork 477.81 × 263: the wordmark's centre sits at 0.4529 × the rendered logo width.
   Columns get that offset (minus half the heading's line box) when they sit beside the logo (≥1024 px);
   the space above the logo is trimmed from 64 to 40 px. */
.td-footer { --td-flogo: 280px; padding-top: clamp(32px, 3vw, 40px); }
@media (min-width: 1024px) and (max-width: 1279px) { .td-footer { --td-flogo: 230px; } }
.td-footer__brand .td-footer__logo img { width: var(--td-flogo); }
@media (min-width: 1024px) { .td-footer__col { padding-top: calc(var(--td-flogo) * 0.4529 - 7.8px); } }
/* 1024–1279 px: the brand column gets room for the full email addresses on one line */
@media (min-width: 1024px) and (max-width: 1279px) {
  .td-footer__grid { grid-template-columns: 2.1fr repeat(4, 1fr); }
  .td-footer__contact .td-footer__value { font-size: .9375rem; }
}

/* ══ Phase 23 — photo pair (party bus sizes: exterior + interior side by side, like the reference layout) ══ */
.td-main .td-photo-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 2vw, 24px); margin-block: var(--wp--preset--spacing--50) 0; }
.td-main .td-photo-pair:has(> .td-photo:only-child) { grid-template-columns: minmax(0, 1fr); max-width: calc((100% - clamp(12px, 2vw, 24px)) / 2); }
.td-main .td-photo-pair > .td-photo { margin: 0 !important; }
.td-main .td-photo-pair > .td-photo .td-photo__img { aspect-ratio: 4 / 3; object-fit: cover; object-position: center 60%; }
.td-main .td-photo-pair:empty { display: none; }
@media (max-width: 599px) { .td-main .td-photo-pair { grid-template-columns: minmax(0, 1fr); } .td-main .td-photo-pair:has(> .td-photo:only-child) { max-width: none; } }
/* a photo pair closes its block: the next heading gets a section-sized gap */
.td-main :is(.wp-block-post-content, .td-section) > .td-photo-pair + :is(h2, h3, p) { margin-top: var(--wp--preset--spacing--80) !important; }

/* ══ Phase 24 — landing template (party bus page, reference layout) ══════════════════════════════
   Onyx title banner with a centred H1; first section = text + two stacked photos; size blocks with
   an exterior and an interior photo side by side. */
.td-title-banner { background: var(--wp--preset--color--onyx); color: var(--wp--preset--color--platinum); padding-block: clamp(40px, 6vw, 72px); }
.td-title-banner__title { color: var(--wp--preset--color--platinum); font-size: clamp(2.25rem, 1.4rem + 3.2vw, 4rem); line-height: 1.08; margin: 0; text-wrap: balance; }
.td-main--landing { padding-top: 0; }
.td-main--landing > .wp-block-post-content > .td-section:first-child { padding-top: clamp(48px, 6vw, 88px); }
/* two photos stacked beside the intro text */
.td-main .td-split__media > .td-photo-pair--stack { grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0; max-width: none; }
.td-main .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { aspect-ratio: 16 / 9; }
@media (min-width: 1024px) {
  .td-main--landing .td-split:has(.td-photo-pair--stack) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; align-items: center; }
  .td-main--landing .td-split:has(.td-photo-pair--stack) > .td-split__media { align-self: center !important; }
}
/* intro copy: key phrases in bold read darker; the button spans the text column like the reference */
.td-main--landing .td-split__text strong { color: var(--wp--preset--color--ink); font-weight: 700; }
.td-main--landing .td-split__text > .td-actions .td-btn { display: flex; justify-content: center; width: 100%; max-width: 560px; min-height: 56px; font-size: 1.125rem; }
.td-main--landing .td-split__text > .td-actions { margin-top: 32px !important; }
/* size blocks: heading, paragraph, then the exterior + interior pair */
.td-main--landing .td-section > h3 { font-size: var(--wp--preset--font-size--x-large); margin-top: var(--wp--preset--spacing--80) !important; }
.td-main--landing .td-section > h3 + p { margin-top: 12px !important; }
.td-main--landing .td-section > p + .td-photo-pair { margin-top: 24px !important; }

/* ══ Phase 25 — quote bar replaces the tall quote-form band on every page ═══════════════════════
   One row under the hero: a short label, Service · Pickup · Date · Passengers, and "Get my quote"
   (posts to /quote/, where the full form collects the rest). ~120 px tall instead of ~650 px. */
.td-quote-band--bar { padding-block: clamp(18px, 2.2vw, 26px) !important; }
.td-quote-band--bar > .td-quote--bar { max-width: var(--wp--style--global--wide-size) !important; }
.td-quote--bar { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end; gap: 12px 20px; background: transparent; border: 0; box-shadow: none; padding: 0; margin: 0 auto; color: var(--wp--preset--color--platinum); }
.td-quote--bar .td-quote-bar__title { margin: 0; display: grid; gap: 2px; align-self: center; font-family: var(--wp--preset--font-family--heading); text-transform: none; }
.td-quote--bar .td-quote-bar__eyebrow { font-size: clamp(1rem, 0.94rem + 0.22vw, 1.125rem); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--champagne); }
.td-quote--bar .td-quote-bar__lead { font-size: var(--wp--preset--font-size--large); font-weight: 600; color: var(--wp--preset--color--platinum); white-space: nowrap; }
.td-quote--bar .td-quote__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, .75fr); gap: 12px; margin: 0; }
.td-quote--bar .td-field { gap: 6px; margin: 0; }
.td-quote--bar .td-field__label { color: var(--wp--preset--color--slate); font-size: .9375rem; font-weight: 600; }
.td-quote--bar .td-field__error { display: none; }
.td-quote--bar .td-input { height: 48px; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.td-quote--bar .td-quote__submit { height: 48px; margin: 0 !important; white-space: nowrap; padding-inline: 28px; }
@media (max-width: 1279px) {
  .td-quote--bar { grid-template-columns: minmax(0, 1fr) auto; }
  .td-quote--bar .td-quote-bar__title { grid-column: 1 / -1; display: flex; gap: 12px; align-items: baseline; }
}
@media (max-width: 899px) {
  .td-quote--bar { grid-template-columns: minmax(0, 1fr); }
  .td-quote--bar .td-quote__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-quote--bar .td-quote__submit { width: 100%; }
}
@media (max-width: 599px) {
  .td-quote--bar .td-field[data-field="pickup"], .td-quote--bar .td-field[data-field="date"] { display: none; }
  .td-quote--bar .td-quote-bar__lead { font-size: var(--wp--preset--font-size--medium); }
}
/* photo row of three (charter page after the school block) */
.td-main .td-photo-pair:has(> .td-photo:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767px) { .td-main .td-photo-pair:has(> .td-photo:nth-child(3)) { grid-template-columns: minmax(0, 1fr); } }
/* landing pages: block headings inside a section get a section-sized gap; lists right under a heading or lead line breathe */
.td-main--landing .td-section > h2:not(:first-child) { margin-top: var(--wp--preset--spacing--90) !important; }
.td-main--landing .td-section > p + .wp-block-list { margin-top: 12px !important; }

/* ══ Phase 26 — landing "offer cards" (charter page blocks, reference audience-card layout) ══════
   Each block is a white card: heading, lead line, check-mark lists and a closing note on one side,
   the exterior + interior photos on the other, sides alternating. Photos take the text's height. */
.td-main--landing .td-split--card { background: var(--wp--preset--color--paper); border: 1px solid #E4E7EC; border-radius: 20px; padding: clamp(24px, 3.4vw, 48px); box-shadow: 0 1px 2px rgba(11, 14, 19, .04), 0 12px 32px -18px rgba(11, 14, 19, .18); margin-block: 0 !important; }
.td-main--landing .td-section > .td-split--card + .td-split--card { margin-top: clamp(24px, 3vw, 40px) !important; }
.td-main--landing .td-split--card > .td-split__text > * { margin-block: 0 !important; }
.td-main--landing .td-split--card > .td-split__text > :is(h2, h3) { font-size: clamp(1.75rem, 1.25rem + 1.4vw, 2.375rem); line-height: 1.15; padding-bottom: 18px; border-bottom: 2px solid var(--wp--preset--color--champagne); }
.td-main--landing .td-split--card > .td-split__text > :is(h2, h3) + * { margin-top: 20px !important; }
.td-main--landing .td-split--card > .td-split__text > p { color: var(--wp--preset--color--slate-deep); }
/* a line that introduces a list reads as its label */
.td-main--landing .td-split--card > .td-split__text > p:has(+ .wp-block-list) { color: var(--wp--preset--color--ink); font-weight: 600; }
.td-main--landing .td-split--card > .td-split__text > p + .wp-block-list { margin-top: 12px !important; }
.td-main--landing .td-split--card > .td-split__text > .wp-block-list + * { margin-top: 24px !important; }
/* closing note under the lists: set off by a hairline */
.td-main--landing .td-split--card > .td-split__text > .wp-block-list + p:not(:has(+ .wp-block-list)) { padding-top: 18px; border-top: 1px solid #E4E7EC; }
.td-main--landing .td-split--card > .td-split__text > p:not(:has(+ .wp-block-list)) + p { margin-top: 16px !important; }
/* check-mark lists, text on one edge */
.td-main--landing .td-split--card > .td-split__text > .wp-block-list { list-style: none; padding-left: 0 !important; margin-left: 0 !important; display: grid; gap: 10px; }
.td-main--landing .td-split--card > .td-split__text > .wp-block-list > li { position: relative; padding-left: 32px; margin: 0; color: var(--wp--preset--color--ink); }
.td-main--landing .td-split--card > .td-split__text > .wp-block-list > li::before { content: ""; position: absolute; left: 0; top: calc(.8em - 10px); width: 20px; height: 20px; border-radius: 50%; background: var(--wp--preset--color--champagne) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0E13' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center/12px no-repeat; }
.td-main--landing .td-split--card > .td-split__text > .td-actions { margin-top: 28px !important; }
.td-main--landing .td-split--card > .td-split__text > .td-actions .td-btn { display: inline-flex; width: auto; min-height: 52px; font-size: 1.0625rem; }
/* photos: two rows filling the card height (desktop), a side-by-side pair above the text (below 1024 px) */
.td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo { border-radius: 14px; }
@media (min-width: 1024px) {
  .td-main--landing .td-split.td-split--card:has(.td-photo-pair--stack) { align-items: stretch !important; column-gap: clamp(32px, 4vw, 56px) !important; }
  .td-main--landing .td-split.td-split--card:has(.td-photo-pair--stack) > .td-split__text { align-self: center !important; }
  .td-main--landing .td-split.td-split--card:has(.td-photo-pair--stack) > .td-split__media { align-self: stretch !important; position: relative; min-height: 460px; }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack { position: absolute; inset: 0; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo { height: 100%; min-height: 0; }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { height: 100%; aspect-ratio: auto; }
}
@media (max-width: 1023px) {
  .td-main--landing .td-section > .td-split--card { gap: 24px !important; }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { aspect-ratio: 4 / 3; }
}
@media (max-width: 599px) {
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack { grid-template-columns: minmax(0, 1fr); }
  .td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { aspect-ratio: 16 / 9; }
}
.td-main--landing .td-split--card > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { object-position: center 55%; }
.td-main--landing .td-section > :is(h2, p) + .td-split--card { margin-top: clamp(28px, 3vw, 40px) !important; }
.td-main--landing .td-split--card > .td-split__text > h3 { font-size: clamp(1.5rem, 1.15rem + 1vw, 2rem); }
/* card-wide (limousine and party bus sizes): one paragraph of text beside the exterior + interior photos side by side */
@media (min-width: 1024px) {
  .td-main--landing .td-split.td-split--card-wide.td-split--right:has(.td-photo-pair--stack) { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr) !important; }
  .td-main--landing .td-split.td-split--card-wide.td-split--left:has(.td-photo-pair--stack) { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr) !important; }
  .td-main--landing .td-split.td-split--card.td-split--card-wide:has(.td-photo-pair--stack) { align-items: center !important; }
  .td-main--landing .td-split.td-split--card.td-split--card-wide:has(.td-photo-pair--stack) > .td-split__media { align-self: center !important; position: static; min-height: 0; }
  .td-main--landing .td-split--card-wide > .td-split__media > .td-photo-pair--stack { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; gap: 12px; }
  .td-main--landing .td-split--card-wide > .td-split__media > .td-photo-pair--stack > .td-photo { height: auto; }
  .td-main--landing .td-split--card-wide > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { height: auto; aspect-ratio: 4 / 3; }
}
/* numbered steps inside a card: gold numerals instead of check marks */
.td-main--landing .td-split--card > .td-split__text > ol.wp-block-list { counter-reset: td-step; }
.td-main--landing .td-split--card > .td-split__text > ol.wp-block-list > li { counter-increment: td-step; padding-left: 40px; }
.td-main--landing .td-split--card > .td-split__text > ol.wp-block-list > li::before { content: counter(td-step); width: 26px; height: 26px; top: calc(.8em - 13px); background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--onyx); font-weight: 700; font-size: .875rem; line-height: 26px; text-align: center; }
/* a white section's first card sits at the section edge, and a card after a card keeps the card gap */
.td-main--landing .td-section:not(.is-style-platinum) > .td-split--card { background: var(--wp--preset--color--paper); }
/* landing sections: an intro paragraph under a left-aligned heading keeps a readable measure; the note under the centred rate table is centred with it */
.td-main--landing .td-section > h2 + p { max-width: 880px; margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important; margin-right: auto !important; }
/* (phase 31: the sentence after the rate note now sits inside the rate card) */
/* bigger photos in side-by-side cards: photos take two thirds of the card, tighter gutter */
@media (min-width: 1024px) { .td-main--landing .td-split.td-split--card.td-split--card-wide:has(.td-photo-pair--stack) { column-gap: 40px !important; padding: clamp(28px, 2.6vw, 36px) !important; } }

/* ══ Phase 30 — fleet pages in the landing layout ═══════════════════════════════════════════════
   Vehicle pages and /fleet/ use the title banner and cards; "At a glance" becomes a card beside two
   photos; text-only cards carry occasions and alternatives. */
/* the archive (/fleet/) borrows its body from a page: same first-section padding and band joins as post content */
.td-main--landing > .td-archive__content > .td-section:first-child { padding-top: clamp(48px, 6vw, 88px); }
.td-main--landing .td-archive__content > .alignfull.td-section + .alignfull.td-section { margin-block-start: 0 !important; }
/* spec rows inside a card: label | value, hairlines */
.td-main--landing .td-split--card > .td-split__text > .td-specs--card { display: grid; gap: 0; margin: 0; border-top: 1px solid #E4E7EC; }
.td-main--landing .td-split--card > .td-split__text > .td-specs--card > div { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 4px 20px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid #E4E7EC; }
.td-main--landing .td-specs--card dt { font-size: .9375rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--slate-deep); }
.td-main--landing .td-specs--card dd { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 600; color: var(--wp--preset--color--ink); }
.td-main--landing .td-split--card > .td-split__text > .td-specs--card + * { margin-top: 24px !important; }
.td-main--landing .td-split--card > .td-split__text > .td-vehicle__note { font-size: var(--wp--preset--font-size--small); }
@media (max-width: 479px) { .td-main--landing .td-split--card > .td-split__text > .td-specs--card > div { grid-template-columns: minmax(0, 1fr); } }
/* text-only cards: one column, lists in two columns on wide screens */
.td-main--landing .td-split.td-split--solo { display: block !important; }
.td-main--landing .td-split.td-split--solo > .td-split__text { width: 100%; max-width: none; }
@media (min-width: 768px) {
  .td-main--landing .td-split--solo > .td-split__text > .wp-block-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
}
.td-main--landing .td-split--solo > .td-split__text > p { max-width: 880px; }

/* ══ Phase 31 — "How it works" steps and the rate note become cards, site-wide ══════════════════
   Steps: three equal cards with a gold number badge. Rate note: one card (note + button), and the
   sentence that follows it in the same section is drawn as the card's footer, not a loose line. */
.td-section__head h2 { text-wrap: balance; }
.td-section__head.is-layout-constrained > .is-style-lead { max-width: 720px; }
.td-steps { gap: clamp(16px, 2vw, 24px); }
.td-main .td-steps__item { display: flex; flex-direction: column; padding: clamp(24px, 2.4vw, 32px); border: 1px solid #E4E7EC; border-radius: 16px; background: var(--wp--preset--color--paper); box-shadow: 0 1px 2px rgba(11, 14, 19, .04), 0 12px 32px -18px rgba(11, 14, 19, .18); }
.td-main .td-steps__num { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--wp--preset--color--champagne); color: var(--wp--preset--color--onyx); font-family: var(--wp--preset--font-family--heading); font-size: 1.0625rem; font-weight: 700; letter-spacing: 0; line-height: 1; }
.td-main .td-steps__title { margin: 20px 0 10px; }
.td-main :is(.is-style-dark, .is-style-ink) .td-steps__item { background: var(--wp--preset--color--panel); border-color: var(--wp--preset--color--line); box-shadow: none; }
.td-main :is(.is-style-dark, .is-style-ink) .td-steps__num { color: var(--wp--preset--color--onyx); }
/* rate note card */
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)) { gap: 20px; padding: clamp(28px, 3vw, 40px); border: 1px solid #E4E7EC; border-radius: 20px; background: var(--wp--preset--color--paper); box-shadow: 0 1px 2px rgba(11, 14, 19, .04), 0 12px 32px -18px rgba(11, 14, 19, .18); }
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)) .td-pricing-teaser__note { font-size: var(--wp--preset--font-size--medium); line-height: 1.65; color: var(--wp--preset--color--ink); }
.td-main:not(.td-main--pricing) .td-section > .td-section__head + .td-pricing-teaser:not(:has(.td-rates)) { max-width: 880px !important; margin-inline: auto !important; justify-items: center; text-align: center; }
.td-main:not(.td-main--pricing) .td-section > .td-section__head + .td-pricing-teaser:not(:has(.td-rates)) .td-pricing-teaser__note { max-width: 62ch; }
/* the following sentence joins the card as its footer */
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)):has(+ p) { border-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; padding-bottom: 24px; }
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)) + p { margin-top: 0 !important; padding: 0 clamp(28px, 3vw, 40px) clamp(24px, 2.6vw, 32px); border: 1px solid #E4E7EC; border-top: 0; border-radius: 0 0 20px 20px; background: var(--wp--preset--color--paper); box-shadow: 0 12px 32px -18px rgba(11, 14, 19, .18); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--slate-deep); }
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)) + p::before { content: ""; display: block; height: 1px; margin-bottom: 20px; background: #E4E7EC; }
.td-main:not(.td-main--pricing) .td-section > .td-section__head + .td-pricing-teaser:not(:has(.td-rates)) + p { max-width: 880px !important; margin-inline: auto !important; text-align: center; }
.td-main .td-section > .td-pricing-teaser:not(:has(.td-rates)) + p + :is(h2, h3, p, ul, ol, .td-section__head) { margin-top: var(--wp--preset--spacing--80) !important; }
/* /pricing/ keeps its left-aligned rate sections: the card spans the rail, text and button on the left */
.td-main--pricing .td-section > .td-pricing-teaser:not(:has(.td-rates)) { justify-items: start; text-align: left; }
.td-main--pricing .td-section > .td-pricing-teaser:not(:has(.td-rates)) .td-btn { justify-self: start; }
/* header with six menu items (Privacy Policy added): the quote pill never wraps; items tighten on laptop widths */
.td-header__quote { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1279px) {
  .td-nav .wp-block-navigation__container { gap: 2px; }
  .td-nav .wp-block-navigation-item__content { padding: 10px 10px; font-size: 1.0625rem; }
  .td-header .td-logo__full { width: clamp(190px, 17vw, 218px); }
}

/* ══ Phase 33 — quote bar title: "Instant quote" on the label line, "Tell us the trip" centred on the inputs ══ */
.td-quote-band--bar { padding-block: clamp(22px, 2.4vw, 30px) !important; }
@media (min-width: 1280px) {
  .td-quote--bar { column-gap: 28px; }
  .td-quote--bar .td-quote-bar__title { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; min-width: 188px; padding: 0 28px 10px 0; border-right: 1px solid rgba(237, 239, 242, .14); }
  .td-quote--bar .td-quote-bar__eyebrow { font-size: .9375rem; line-height: 1.5; letter-spacing: .14em; padding-top: 1px; }
  .td-quote--bar .td-quote-bar__lead { font-size: 1.4375rem; line-height: 1.2; font-weight: 700; letter-spacing: 0; }
}
@media (max-width: 1279px) {
  .td-quote--bar .td-quote-bar__title { gap: 14px; align-items: baseline; padding-bottom: 4px; }
  .td-quote--bar .td-quote-bar__eyebrow { font-size: .9375rem; letter-spacing: .14em; }
  .td-quote--bar .td-quote-bar__lead { font-size: 1.3125rem; font-weight: 700; }
}

/* ══ Phase 34 — landing intro split: larger text, the two photos take the text's height ══════════ */
@media (min-width: 1024px) {
  .td-main--landing .td-split:not(.td-split--card):has(> .td-split__media > .td-photo-pair--stack) { align-items: stretch !important; column-gap: clamp(40px, 4.5vw, 72px) !important; }
  .td-main--landing .td-split:not(.td-split--card):has(> .td-split__media > .td-photo-pair--stack) > .td-split__text { align-self: center !important; padding-block: 8px; }
  .td-main--landing .td-split:not(.td-split--card):has(> .td-split__media > .td-photo-pair--stack) > .td-split__media { align-self: stretch !important; position: relative; min-height: 520px; }
  .td-main--landing .td-split:not(.td-split--card) > .td-split__media > .td-photo-pair--stack { position: absolute; inset: 0; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
  .td-main--landing .td-split:not(.td-split--card) > .td-split__media > .td-photo-pair--stack > .td-photo { height: 100%; min-height: 0; }
  .td-main--landing .td-split:not(.td-split--card) > .td-split__media > .td-photo-pair--stack > .td-photo .td-photo__img { height: 100%; aspect-ratio: auto; object-position: center 55%; }
}
.td-main--landing .td-split:not(.td-split--card) > .td-split__text > h2 { font-size: clamp(2rem, 1.35rem + 1.7vw, 2.875rem); line-height: 1.12; text-wrap: balance; }
.td-main--landing .td-split:not(.td-split--card) > .td-split__text > p { font-size: clamp(1.0625rem, 0.98rem + 0.35vw, 1.25rem); line-height: 1.7; }
.td-main--landing .td-split:not(.td-split--card) > .td-split__text > h2 + p { margin-top: 20px !important; }
.td-main--landing .td-split:not(.td-split--card) > .td-split__text > p + p { margin-top: 18px !important; }
.td-main--landing .td-split:not(.td-split--card) > .td-split__text > h3 { font-size: clamp(1.375rem, 1.1rem + 0.8vw, 1.75rem); }
/* on-photo credit for the few attribution-licensed photos (td_theme_photo_credit) */
.td-photo { position: relative; }
.td-photo__credit { position: absolute; right: 8px; bottom: 8px; max-width: calc(100% - 16px); padding: 3px 8px; border-radius: 6px; background: rgba(11, 14, 19, .64); color: #fff; font-size: .6875rem; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.td-photo__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* mobile bar with Call · Email · Quote: labels stay on one line */
.td-mobile-bar { gap: 8px; }
.td-mobile-bar__item { white-space: nowrap; gap: 6px; padding-inline: 8px; min-width: 0; }
@media (max-width: 400px) { .td-mobile-bar__item { font-size: .875rem; } .td-mobile-bar__item .td-icon { width: 16px; height: 16px; } }
.td-hero__actions, .td-cta .td-actions, .td-cta__actions { flex-wrap: wrap; }

/* ══ Phase 39 — service cards show two photos: exterior | interior ══════════════════════════════ */
.td-card__media--pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; background: var(--wp--preset--color--paper); }
.td-card__media--pair > .td-card__img, .td-services .td-card__media--pair > .td-card__img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 55%; }

/* ══ Phase 41 — header: menu sits next to "Get a quote", with a wide gap after the logo ══════════ */
@media (min-width: 1024px) {
  .td-header__row { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 8px; }
  .td-header__row > .td-logo { margin-right: clamp(48px, 6vw, 120px); }
  .td-header__row > .td-nav { justify-self: end; }
}
.td-nav .wp-block-navigation-item__content { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .td-header__row > .td-logo { margin-right: 16px; }
  .td-nav .wp-block-navigation-item__content { padding-inline: 8px; font-size: 1rem; }
}
/* vehicle "at a glance" tables inside cards: body font, breathing room before the on-board line */
.td-main--landing .td-split--card .wp-block-table { margin: 4px 0 0 !important; }
.td-main--landing .td-split--card .wp-block-table td { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--medium); color: var(--wp--preset--color--ink); }
.td-main--landing .td-split--card > .td-split__text > .wp-block-table + * { margin-top: 20px !important; }
/* breathing room between the last menu item and "Get a quote" */
@media (min-width: 1024px) { .td-header__row > .td-header__actions { margin-left: clamp(20px, 2.4vw, 40px); } }
@media (min-width: 1024px) and (max-width: 1199px) { .td-header__row > .td-header__actions { margin-left: 12px; } }

/* ── Phase 46: trust badges aligned (client, 2026-09-16) ─────────────────────
   One equal column per badge, icon above centered text, balanced line breaks,
   so 1-line and 2-line badges sit level. 2 per row on tablets and phones. */
.td-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.td-trust:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 900px) {
	.td-trust:has(> li:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.td-trust:has(> li:nth-child(5)) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
	.td-trust:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.td-trust > li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
.td-trust__item { flex-direction: column; justify-content: flex-start; text-align: center; gap: 10px; padding: 18px 16px; }
.td-trust__item > span { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; text-wrap: balance; line-height: 1.35; } /* icons level across the row, text centered below */
.td-trust__icon { flex: none; }

/* ── Phase 47: numbers strip (true figures only, client 2026-09-16) ───────── */
.td-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 900px) { .td-stats:has(> li:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); } .td-stats:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899px) { .td-stats > li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.td-stats__item { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; text-align: center; padding: 22px 16px; border-radius: var(--wp--custom--radius--card); background: var(--wp--preset--color--paper); border: 1px solid #E4E7EC; color: var(--wp--preset--color--ink); }
.td-stats__value { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); line-height: 1; letter-spacing: -.01em; color: var(--wp--preset--color--gold-deep); font-variant-numeric: lining-nums tabular-nums; }
.td-stats__label { font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); line-height: 1.35; text-wrap: balance; color: inherit; }
.is-style-dark .td-stats__item, .is-style-ink .td-stats__item { background: var(--wp--preset--color--panel); border-color: var(--wp--preset--color--line); color: var(--wp--preset--color--platinum); }
.is-style-dark .td-stats__value, .is-style-ink .td-stats__value { color: var(--wp--preset--color--champagne); }
.td-main .is-layout-constrained > .td-stats { max-width: var(--wp--style--global--wide-size); }
.td-main .td-section > .td-section__head + .td-stats { margin-top: var(--wp--preset--spacing--70) !important; }
.td-main .td-section > :is(p, ul, ol, h2, h3) + .td-stats { margin-top: var(--wp--preset--spacing--70) !important; }
.td-main .td-section > .td-stats + :is(p, h2, h3, ul, ol) { margin-top: var(--wp--preset--spacing--70) !important; }

/* ── Phase 48: lead-capture popup (client decision, 2026-09-19) ─────────────
   A centred card on a dimmed page: panel over ink, champagne accents, one column
   at every width. Hidden until the JS opens it, so it costs no layout. The shared
   form parts (.td-field, .td-input, .td-checkbox) are re-pointed at dark tokens
   here instead of being restyled globally. */
.td-lead { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.td-lead[hidden] { display: none; }
.td-lead [hidden] { display: none; }
.td-lead__backdrop { position: absolute; inset: 0; background: rgba(11, 14, 19, .78); }
.td-lead__card {
	--td-input-bg: var(--wp--preset--color--ink);
	--td-input-fg: var(--wp--preset--color--platinum);
	--td-input-line: #39414F;
	--td-focus: var(--wp--custom--focus-dark);
	position: relative; display: flex; flex-direction: column; width: 100%; max-width: 460px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto;
	padding: clamp(22px, 4vw, 30px); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius--card);
	background: var(--wp--preset--color--panel); color: var(--wp--preset--color--platinum);
	box-shadow: 0 28px 70px rgba(0, 0, 0, .55);
}
.td-lead__close { position: sticky; top: 0; z-index: 2; align-self: flex-end; flex: none; display: grid; place-items: center; width: 44px; height: 44px; margin: -8px -10px 0 0; padding: 0; border: 0; border-radius: 50%; background: var(--wp--preset--color--panel); color: var(--wp--preset--color--platinum); }
.td-lead__close:hover { background: #222A36; color: var(--wp--preset--color--champagne); } /* opaque: content scrolls behind the pinned button */
.td-lead__form, .td-lead__done { flex: none; } /* keep their natural height; the card is what scrolls */
.td-lead__title { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--x-large); line-height: 1.2; margin: 0 0 8px; color: var(--wp--preset--color--platinum); }
.td-lead__intro { margin: 0 0 18px; font-size: var(--wp--preset--font-size--small); line-height: 1.55; color: var(--wp--preset--color--slate); }
.td-lead__grid { display: grid; gap: 14px; }
.td-lead .td-field__hint, .td-lead .td-field__opt { color: var(--wp--preset--color--slate); }
.td-lead .td-field__error, .td-lead .td-field__req { color: #F87171; }
.td-lead .td-checkbox { accent-color: var(--wp--preset--color--champagne); }
.td-lead .td-field--check label { font-size: var(--wp--preset--font-size--x-small); line-height: 1.5; }
.td-lead__status { margin: 0 0 12px; font-weight: 600; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--champagne); }
.td-lead__status:empty { display: none; }
.td-lead__alert { margin: 0 0 14px; padding: 10px 12px; border-radius: var(--wp--custom--radius--input); background: #2A1417; border: 1px solid #7F1D1D; color: #F87171; font-weight: 600; font-size: var(--wp--preset--font-size--x-small); }
.td-lead__alert:empty { display: none; }
.td-lead__submit { width: 100%; margin-top: 20px; }
.td-lead__note { margin: 12px 0 0; font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--slate); }
.td-lead__note a { color: var(--wp--preset--color--champagne); text-decoration: underline; text-underline-offset: 3px; }
.td-lead__done-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.td-lead__done-actions .td-btn { flex: 1 1 auto; }
.td-lead__form[aria-busy="true"] .td-lead__submit { opacity: .7; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
	.td-lead__backdrop { animation: td-lead-fade 180ms ease-out both; }
	.td-lead__card { animation: td-lead-rise 220ms ease-out both; }
}
@keyframes td-lead-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes td-lead-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (max-width: 480px) {
	.td-lead__title { font-size: var(--wp--preset--font-size--large); }
	.td-lead__card { padding: 22px 18px; }
}
