/* DT Goods — theme stylesheet (v4: editorial, photo-led).
   DT Goods' own design language: a transparent header over full-bleed cinematic photo heroes with
   the quote form as a card inside the hero; square-cornered, hairline "editorial" shapes; numbered
   section labels with split headers (title left, lead right); a photo bento for services, an
   editorial numbered list beside an edge-to-edge photo, a capacity scale for the fleet, a timeline
   for booking, a departure board for drive times, a copper CTA and a forest footer.
   Palette and type: forest + copper, Fraunces + Manrope. Contrast pairs: qa/contrast-report.md. */

:root {
	--ink: var(--wp--preset--color--ink);
	--forest-900: var(--wp--preset--color--forest-900);
	--forest-700: var(--wp--preset--color--forest-700);
	--moss-100: var(--wp--preset--color--moss-100);
	--moss-300: var(--wp--preset--color--moss-300);
	--copper-600: var(--wp--preset--color--copper-600);
	--copper-700: var(--wp--preset--color--copper-700);
	--copper-300: var(--wp--preset--color--copper-300);
	--gold: var(--wp--preset--color--gold);
	--gold-200: var(--wp--preset--color--gold-200);
	--gold-700: var(--wp--preset--color--gold-700);
	--charcoal: var(--wp--preset--color--charcoal);
	--stone: var(--wp--preset--color--stone);
	--mist: var(--wp--preset--color--mist);
	--white: #fff;
	--error: var(--wp--preset--color--error);
	--success: var(--wp--preset--color--success);
	--on-dark: #F3F1EC;
	--on-dark-muted: #C9D5CE;
	--error-on-dark: #FCA5A5;
	--line-dark: rgba(243, 241, 236, .16);
	--line: #E3DED5;
	--card-text: #3D4542;
	--shade: 6, 24, 18; /* rgb of the photo overlays */
	--serif: var(--wp--preset--font-family--fraunces);
	--sans: var(--wp--preset--font-family--manrope);
	--gutter: clamp(1rem, 4vw, 3rem);
	--max: 1240px;
	--measure: 46rem;
	--radius: 4px;
	--radius-lg: 6px;
	--shadow-sm: 0 1px 2px rgba(10, 36, 27, .06);
	--shadow: 0 10px 30px rgba(10, 36, 27, .10);
	--shadow-lg: 0 30px 70px rgba(4, 18, 13, .35);
	--section-y: clamp(2.5rem, 4.5vw, 4rem);
	--focus: 3px solid var(--copper-700);
	--header-h: 84px;
	--bleed: calc(-1 * ((100vw - min(100vw, var(--max) + 2 * var(--gutter))) / 2 + var(--gutter)));
	--arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11M9 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ── Base ──────────────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 6.5rem; }
body { margin: 0; background: var(--white); font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, svg { max-width: 100%; height: auto; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
a { text-decoration-color: var(--copper-600); text-decoration-thickness: 1px; text-underline-offset: .2em; transition: color .15s ease, text-decoration-color .15s ease; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: var(--focus); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--copper-300); color: var(--ink); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link.screen-reader-text:focus { clip: auto; width: auto; height: auto; margin: 0; padding: .75rem 1rem; top: .5rem; left: .5rem; z-index: 1000; background: var(--copper-300); color: var(--ink); border-radius: var(--radius); font-weight: 600; }
mark.dtg-tbc { background: #FDF1E7; color: #7A3A12; border: 1px dashed var(--copper-600); border-radius: 3px; padding: 0 .3em; font-weight: 600; font-size: .88em; white-space: nowrap; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ── Layout ────────────────────────────────────────────────────────────────────────── */
.dtg-wrap { width: 100%; max-width: calc(var(--max) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.dtg-main, .dtg-site-header, .dtg-site-footer { display: block; }
.dtg-main > *, .dtg-content > * { margin-block: 0; }

/* ── Header: transparent over the hero; solid white once the page scrolls (JS) ──────── */
.dtg-site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 60; }
.dtg-header { background: transparent; border-bottom: 1px solid rgba(243, 241, 236, .18); transition: background-color .25s ease, box-shadow .25s ease, border-color .25s ease; }
.dtg-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: var(--header-h); }
.dtg-header__inner > * { margin: 0 !important; }
.dtg-logo { display: inline-flex; padding-block: 12px; flex: none; }
.dtg-logo img { width: 195px; min-width: 140px; height: auto; display: block; } /* DT ring | DT GOODS: 195 × 54 */
.dtg-logo--seal img { width: 118px; min-width: 0; } /* footer seal badge */
.dtg-logo__dark { display: none !important; }
.dtg-nav { display: flex; align-items: center; }
.dtg-nav__list, .dtg-nav__sub { list-style: none; margin: 0; padding: 0; }
.dtg-nav__top { font: 600 .9375rem/1.2 var(--sans); color: var(--white); background: none; border: 0; padding: .6rem .75rem; border-radius: var(--radius); cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; text-decoration: none; position: relative; }
.dtg-nav__top::after { content: ""; position: absolute; left: .75rem; right: .75rem; bottom: .25rem; height: 1.5px; background: var(--copper-300); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.dtg-nav__top:hover::after, .dtg-nav__top[aria-expanded="true"]::after, .dtg-nav__item.is-current > .dtg-nav__top::after, .dtg-nav__top[aria-current="page"]::after { transform: scaleX(1); }
.dtg-nav__chev { color: var(--copper-300); transition: transform .2s ease; }
.dtg-nav__top[aria-expanded="true"] .dtg-nav__chev { transform: rotate(180deg); }
.dtg-nav__sub a { display: block; padding: .6rem .8rem; border-radius: var(--radius); color: var(--charcoal); text-decoration: none; font-size: .9375rem; }
.dtg-nav__sub a:hover, .dtg-nav__sub a[aria-current="page"] { background: var(--mist); color: var(--forest-700); }
.dtg-nav__sub li:last-child a { color: var(--copper-700); font-weight: 600; }
.dtg-nav__extra { display: flex; align-items: center; gap: 1.1rem; }
.dtg-nav__extra .dtg-phone { color: var(--white); }
.dtg-nav__extra .dtg-phone svg { color: var(--copper-300); }
.dtg-nav__extra .dtg-btn { min-height: 46px; }
.dtg-nav__toggle { display: none; }
.dtg-site-header :focus-visible { outline-color: var(--copper-300); }

@media (min-width: 1080px) {
	html.js .dtg-site-header { position: fixed; }
	.admin-bar .dtg-site-header { top: 32px; }
	html.is-scrolled .dtg-header { background: var(--white); border-color: var(--line); box-shadow: 0 8px 30px rgba(10, 36, 27, .08); }
	html.is-scrolled .dtg-logo__light { display: none !important; }
	html.is-scrolled .dtg-logo__dark { display: block !important; }
	html.is-scrolled .dtg-nav__top, html.is-scrolled .dtg-nav__extra .dtg-phone { color: var(--ink); }
	html.is-scrolled .dtg-nav__chev, html.is-scrolled .dtg-nav__extra .dtg-phone svg { color: var(--copper-700); }
	html.is-scrolled .dtg-nav__top::after { background: var(--copper-600); }
	html.is-scrolled .dtg-site-header :focus-visible { outline-color: var(--copper-700); }
	.dtg-nav__panel { display: flex; align-items: center; gap: 1.25rem; }
	.dtg-nav__list { display: flex; align-items: center; gap: .1rem; }
	.dtg-nav__item { position: relative; }
	.dtg-nav__sub { position: absolute; top: calc(100% + .7rem); left: -.5rem; min-width: 15rem; padding: .5rem; background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--copper-600); border-radius: var(--radius); box-shadow: var(--shadow-lg); display: none; z-index: 70; }
	.dtg-nav__sub.is-wide { grid-template-columns: repeat(2, minmax(13rem, 1fr)); column-gap: .25rem; min-width: 30rem; }
	/* Mouse: hover opens. Keyboard (JS on): only the button opens, so Tab doesn't walk every submenu. */
	.dtg-nav__item.has-sub:hover > .dtg-nav__sub, html:not(.js) .dtg-nav__item.has-sub:focus-within > .dtg-nav__sub, .dtg-nav__top[aria-expanded="true"] + .dtg-nav__sub { display: block; }
	.dtg-nav__item.has-sub:hover > .dtg-nav__sub.is-wide, html:not(.js) .dtg-nav__item.has-sub:focus-within > .dtg-nav__sub.is-wide, .dtg-nav__top[aria-expanded="true"] + .dtg-nav__sub.is-wide { display: grid; }
	.dtg-nav__item.has-sub::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: .8rem; }
}
@media (max-width: 1079.98px) {
	.dtg-nav__toggle { display: inline-flex; align-items: center; gap: .45rem; font: 600 .9375rem/1 var(--sans); color: var(--white); background: rgba(var(--shade), .35); border: 1px solid rgba(243, 241, 236, .5); border-radius: var(--radius); padding: .6rem 1rem; cursor: pointer; min-height: 44px; }
	.dtg-nav__toggle svg { color: var(--copper-300); }
	.dtg-nav__icon-close, .dtg-nav__toggle[aria-expanded="true"] .dtg-nav__icon-open { display: none; }
	.dtg-nav__toggle[aria-expanded="true"] .dtg-nav__icon-close { display: block; }
	.js .dtg-nav__panel { display: none; }
	.dtg-nav__panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-top: 3px solid var(--copper-600); padding: .75rem var(--gutter) 1.5rem; max-height: calc(100vh - var(--header-h)); overflow-y: auto; box-shadow: var(--shadow-lg); }
	.dtg-nav.is-open .dtg-nav__panel { display: block; }
	.dtg-nav__item { border-bottom: 1px solid var(--line); }
	.dtg-nav__top { width: 100%; justify-content: space-between; font-size: 1.0625rem; padding: .9rem .25rem; color: var(--ink); }
	.dtg-nav__top::after { display: none; }
	.dtg-nav__chev { color: var(--copper-700); }
	.dtg-nav__panel :focus-visible { outline-color: var(--copper-700); }
	.js .dtg-nav__sub { display: none; }
	.dtg-nav__top[aria-expanded="true"] + .dtg-nav__sub { display: block; padding: 0 0 .8rem; }
	.dtg-nav__sub a { font-size: 1rem; padding: .6rem .5rem; }
	.dtg-nav__extra { flex-direction: column; align-items: stretch; margin-top: 1.25rem; }
	.dtg-nav__extra .dtg-phone { color: var(--forest-700); }
	.dtg-nav__extra .dtg-phone svg { color: var(--copper-700); }
	.dtg-nav__extra .dtg-btn { justify-content: center; }
}

/* ── Buttons: square-cornered, small caps ─────────────────────────────────────────── */
.dtg-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 48px; padding: .8rem 1.6rem; border-radius: 999px; font: 700 1rem/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease; white-space: nowrap; }
.dtg-btn--primary { background: var(--gold); color: var(--ink); border-color: var(--gold-700); }
.dtg-btn--primary:hover, .dtg-btn--primary:focus-visible { background: var(--gold-200); color: var(--ink); }
:is(.dtg-hero, .dtg-section.is-dark, .dtg-header) .dtg-btn--primary { border-color: var(--gold); }
html.is-scrolled .dtg-header .dtg-btn--primary { border-color: var(--gold-700); }
.dtg-hero__actions .dtg-btn--primary { box-shadow: 0 10px 30px -8px rgba(214, 171, 85, .55); }
.dtg-btn--on-dark { background: var(--white); color: var(--ink); }
.dtg-btn--on-dark:hover, .dtg-btn--on-dark:focus-visible { background: var(--ink); color: var(--white); }
.dtg-btn--outline { background: transparent; color: var(--forest-700); border-color: var(--forest-700); }
.dtg-btn--outline:hover, .dtg-btn--outline:focus-visible { background: var(--forest-700); color: var(--white); }
.dtg-btn--outline-light { background: transparent; color: var(--white); border-color: rgba(243, 241, 236, .75); }
.dtg-btn--outline-light:hover, .dtg-btn--outline-light:focus-visible { background: var(--white); color: var(--ink); border-color: var(--white); }
.dtg-btn--outline-light svg { color: var(--copper-300); }
.dtg-btn--outline-light:hover svg { color: var(--copper-700); }
.dtg-btn svg { flex: none; }
.dtg-textlink { display: inline-flex; align-items: center; gap: .4rem; font: 600 .9375rem/1.2 var(--sans); color: var(--forest-700); }
.dtg-textlink svg { color: var(--copper-600); }
.dtg-phone { text-decoration: none; }
.dtg-actions { margin: 2.25rem 0 0; display: flex; flex-wrap: wrap; gap: .75rem; }

/* Section labels: "01 — Rides and services" */
.dtg-content { counter-reset: dtg-sec; }
.dtg-eyebrow { font: 700 .75rem/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--stone); margin: 0 0 .85rem; display: flex; align-items: center; gap: .75rem; }
.dtg-content .dtg-eyebrow { counter-increment: dtg-sec; }
.dtg-content .dtg-eyebrow::before { content: counter(dtg-sec, decimal-leading-zero); color: var(--copper-700); font: 600 1rem/1 var(--serif); letter-spacing: 0; padding-right: .75rem; border-right: 1px solid var(--line); }

/* ── Breadcrumbs (in the hero) ─────────────────────────────────────────────────────── */
.dtg-breadcrumbs { font-size: .8125rem; letter-spacing: .02em; color: var(--on-dark-muted); margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.dtg-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .55rem; }
.dtg-breadcrumbs li + li::before { content: "/"; color: var(--copper-300); margin-right: .55rem; }
.dtg-breadcrumbs a { color: var(--on-dark-muted); text-decoration-color: rgba(224, 167, 126, .6); }
.dtg-breadcrumbs a:hover { color: var(--white); }
.dtg-breadcrumbs [aria-current] { color: var(--white); }

/* ── Hero: full-bleed photo, copy left, quote card right ───────────────────────────── */
.dtg-hero { position: relative; isolation: isolate; background: var(--ink); color: var(--on-dark); overflow: hidden; }
.dtg-hero__media { position: absolute; inset: 0; z-index: -2; display: block; }
.dtg-hero__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--dtg-focus, 50% 50%); }
.dtg-hero--photo::before { content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(180deg, rgba(var(--shade), .72) 0%, rgba(var(--shade), 0) 24%),
		linear-gradient(90deg, rgba(var(--shade), .93) 0%, rgba(var(--shade), .84) 30%, rgba(var(--shade), .5) 52%, rgba(var(--shade), .2) 78%, rgba(var(--shade), .15) 100%),
		linear-gradient(0deg, rgba(var(--shade), .7) 0%, rgba(var(--shade), 0) 32%); }
.dtg-hero--plain { background: linear-gradient(160deg, #0F3D2E 0%, var(--ink) 70%); }
.dtg-hero--plain::after { content: ""; position: absolute; right: -6rem; top: -6rem; width: 34rem; height: 34rem; border: 1px solid rgba(224, 167, 126, .22); border-radius: 50%; z-index: -1; box-shadow: 0 0 0 4.5rem rgba(224, 167, 126, .05), 0 0 0 9rem rgba(224, 167, 126, .035); }
.dtg-hero__inner { position: relative; padding-top: calc(var(--header-h) + clamp(1.25rem, 3vw, 2rem)); padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.dtg-hero--photo .dtg-hero__inner { min-height: clamp(34rem, 80vh, 46rem); display: flex; flex-direction: column; }
.dtg-hero.is-home .dtg-hero__inner { min-height: clamp(38rem, 94vh, 56rem); }
.dtg-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: end; margin-top: auto; }
.dtg-hero.has-quote .dtg-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(20rem, 24.5rem); }
.dtg-hero__copy { min-width: 0; max-width: 46rem; padding-bottom: .5rem; }
.dtg-hero__eyebrow { margin: 0 0 1.1rem; font: 700 clamp(1rem, .93rem + .25vw, 1.125rem)/1.4 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--gold); text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.dtg-hero__title { margin: 0; color: var(--white); font-size: clamp(2rem, 1.6rem + 1.62vw, 3.0625rem); line-height: 1.12; letter-spacing: -.02em; font-weight: 600; text-shadow: 0 2px 30px rgba(0, 0, 0, .25); }
.dtg-hero--compact .dtg-hero__title, .dtg-hero--plain .dtg-hero__title { font-size: clamp(1.875rem, 1.55rem + 1.3vw, 2.75rem); }
.dtg-hero__intro { font-size: clamp(1.125rem, 1.02rem + .45vw, 1.3125rem); line-height: 1.5; margin: 1.4rem 0 0; color: var(--on-dark); max-width: 40rem; }
.dtg-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .85rem; margin-top: 2.25rem; }
/* Three hero buttons on phones (Quote · Call · Email): the quote across, the two contact buttons as a pair. */
@media (max-width: 599px) {
	.dtg-hero__actions:has(> :nth-child(3)) { display: grid; grid-template-columns: 1fr 1fr; }
	.dtg-hero__actions:has(> :nth-child(3)) > * { justify-content: center; width: 100%; }
	.dtg-hero__actions:has(> :nth-child(3)) > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 359.98px) { .dtg-hero__actions:has(> :nth-child(3)) { grid-template-columns: minmax(0, 1fr); } } /* 320 px: the number and Email Us don't fit side by side */
.dtg-hero :focus-visible { outline-color: var(--copper-300); }
.dtg-post-meta { color: var(--on-dark-muted); font-size: .9375rem; margin: 1rem 0 0; }

/* Quote card inside the hero */
.dtg-hero__quote { position: relative; color: var(--charcoal); }
.dtg-hero__quote .dtg-quote--strip { background: var(--white); border-top: 4px solid var(--copper-600); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 1.5rem 1.5rem 1.6rem; }
.dtg-hero__quote .dtg-quote__title { margin: 0 0 1.1rem; font: 600 1.45rem/1.15 var(--serif); color: var(--ink); }
.dtg-hero__quote .dtg-quote__title span { display: block; font: 700 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--copper-700); margin-bottom: .55rem; }
.dtg-hero__quote .dtg-quote__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem .75rem; }
.dtg-hero__quote :is(.dtg-field--service-type, .dtg-field--pickup-address, .dtg-field--dropoff-address, .dtg-quote__submit) { grid-column: 1 / -1; }
.dtg-hero__quote .dtg-field label { font-size: .8125rem; }
.dtg-hero__quote .dtg-field input, .dtg-hero__quote .dtg-field select { min-height: 46px; }
.dtg-hero__quote .dtg-quote__submit .dtg-btn { width: 100%; margin-top: .25rem; }
.dtg-hero__quote :focus-visible { outline-color: var(--copper-700); }

@media (max-width: 1079.98px) {
	.dtg-hero.has-quote .dtg-hero__grid { grid-template-columns: minmax(0, 1fr); }
}
/* Tablets: the card spans the content width, fields three to a row. */
@media (min-width: 600px) and (max-width: 1079.98px) {
	.dtg-hero__quote .dtg-quote__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dtg-hero__quote :is(.dtg-field--service-type, .dtg-field--pickup-address, .dtg-field--dropoff-address) { grid-column: auto; }
}
@media (max-width: 899.98px) {
	:root { --header-h: 70px; }
	/* Phones: the photo is a band at the top that fades into the ink background under the copy. */
	.dtg-hero--photo .dtg-hero__media { bottom: auto; height: min(74vh, 580px); }
	.dtg-hero--photo::before { inset: 0 0 auto 0; height: min(74vh, 580px); background: linear-gradient(180deg, rgba(var(--shade), .7) 0%, rgba(var(--shade), .3) 30%, rgba(var(--shade), .82) 72%, var(--ink) 100%); }
	.dtg-hero--photo .dtg-hero__inner, .dtg-hero.is-home .dtg-hero__inner { min-height: 0; padding-top: calc(var(--header-h) + min(22vh, 170px)); }
}

/* ── Trust ribbon (home, under the hero) ───────────────────────────────────────────── */
.dtg-trust-band { background: var(--white); border-bottom: 1px solid var(--line); }
.dtg-trust { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dtg-trust__item { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: .85rem; align-items: center; align-content: center; padding: 1.6rem 1.25rem; }
@media (min-width: 960px) { .dtg-trust__item:first-child { padding-left: 0; } .dtg-trust__item:last-child { padding-right: 0; } }
.dtg-trust__item + .dtg-trust__item { border-left: 1px solid var(--line); }
.dtg-trust__icon { grid-row: span 2; width: 28px; height: 28px; color: var(--copper-600); }
.dtg-trust__title { margin: 0; font: 700 .9375rem/1.3 var(--sans); color: var(--ink); }
.dtg-trust__line { margin: .1rem 0 0; font-size: .8125rem; line-height: 1.4; color: var(--stone); }
@media (max-width: 959.98px) { .dtg-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dtg-trust__item:nth-child(3) { border-left: 0; } .dtg-trust__item:nth-child(n+3) { border-top: 1px solid var(--line); } .dtg-trust__item:nth-child(odd) { padding-left: 0; } .dtg-trust__item:nth-child(even) { padding-right: 0; padding-left: 1rem; } }
@media (max-width: 479.98px) { .dtg-trust__item { grid-template-columns: 1fr; padding-block: 1.1rem; } .dtg-trust__icon { grid-row: auto; margin-bottom: .45rem; } .dtg-trust__title { font-size: .875rem; } }

/* ── Quote forms ───────────────────────────────────────────────────────────────────── */
.dtg-field { display: flex; flex-direction: column; gap: .35rem; min-width: 0; }
.dtg-field label { font: 600 .9375rem/1.3 var(--sans); color: var(--charcoal); }
.dtg-field__opt { font-weight: 400; color: var(--stone); }
.dtg-field input, .dtg-field select, .dtg-field textarea { width: 100%; min-height: 50px; font: 400 1rem/1.4 var(--sans); color: var(--charcoal); background: var(--white); border: 1px solid #857E72; border-radius: var(--radius); padding: .75rem .9rem; transition: border-color .15s ease, box-shadow .15s ease; }
.dtg-field input:hover, .dtg-field select:hover, .dtg-field textarea:hover { border-color: #5F5A51; }
.dtg-field textarea { min-height: 7rem; resize: vertical; }
.dtg-field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239E5622' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .85rem center; padding-right: 2.4rem; }
.dtg-field input:focus-visible, .dtg-field select:focus-visible, .dtg-field textarea:focus-visible { outline: var(--focus); outline-offset: 1px; border-color: var(--copper-700); box-shadow: 0 0 0 4px rgba(173, 95, 39, .12); }
.dtg-field ::placeholder { color: #6F7774; opacity: 1; }
.dtg-field.has-error input, .dtg-field.has-error select, .dtg-field.has-error textarea { border-color: var(--error); border-width: 2px; }
.dtg-field__error { margin: 0; color: var(--error); font-size: .875rem; font-weight: 600; }
.dtg-field__error:empty { display: none; }
.dtg-field[hidden] { display: none; }
.dtg-quote--full { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); border: 1px solid var(--line); border-top: 4px solid var(--copper-600); padding: clamp(1.25rem, 3vw, 2.5rem); }
.dtg-quote__group { border: 0; margin: 0 0 2rem; padding: 0; min-width: 0; }
.dtg-quote__group legend { font: 600 1.5rem/1.2 var(--serif); color: var(--ink); margin-bottom: 1rem; padding: 0; }
.dtg-quote__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem 1.25rem; }
.dtg-quote--full .dtg-field--wide { grid-column: 1 / -1; }
@media (max-width: 639.98px) { .dtg-quote__grid { grid-template-columns: 1fr; } }
.dtg-field--check { flex-direction: row; align-items: flex-start; gap: .75rem; margin-top: 1.25rem; flex-wrap: wrap; }
.dtg-field--check input { width: 24px; min-height: 24px; height: 24px; margin: .1rem 0 0; accent-color: var(--copper-700); flex: none; }
.dtg-field--check label { font-weight: 400; flex: 1 1 16rem; }
.dtg-field--check .dtg-field__error { flex-basis: 100%; }
.dtg-field--check .dtg-field__note { flex-basis: 100%; margin: -.35rem 0 0 2.125rem; color: var(--stone); font-size: .875rem; line-height: 1.45; }
.dtg-quote__status { border-radius: var(--radius); font-weight: 600; }
.dtg-quote__status.is-error { background: #FDECEC; color: var(--error); border: 1px solid #F3B9B9; padding: .9rem 1.1rem; margin-bottom: 1.5rem; }
.dtg-quote__status.is-ok { background: #E7F5EC; color: var(--success); border: 1px solid #A9D9B9; padding: .9rem 1.1rem; margin-bottom: 1.5rem; }
.dtg-quote__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.dtg-quote__note { margin: 0; color: var(--stone); font-size: .9375rem; }
.dtg-quote [aria-busy="true"] .dtg-btn { opacity: .7; pointer-events: none; }
.dtg-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* New-visitor details pop-up (native <dialog>: focus stays inside, Esc closes, the page behind is inert) */
:root:has(.dtg-lead[open]) { overflow: hidden; }
.dtg-lead { width: min(35rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 0; border: 2px solid var(--gold); border-radius: 18px; background: var(--ink); color: var(--on-dark); box-shadow: 0 30px 90px rgba(0, 0, 0, .5); overflow: auto; overscroll-behavior: contain; }
.dtg-lead::backdrop { background: rgba(var(--shade), .78); }
.dtg-lead[open] { animation: dtg-lead-in .28s ease-out; }
@keyframes dtg-lead-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
.dtg-lead__panel { position: relative; padding: clamp(1.5rem, 4.5vw, 2.6rem); }
.dtg-lead__close { position: absolute; top: .85rem; right: .85rem; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--white); cursor: pointer; }
.dtg-lead__close:hover { background: rgba(243, 241, 236, .1); }
.dtg-lead :focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.dtg-lead__title { margin: 0 2.75rem .6rem 0; font: 600 clamp(1.6rem, 1.3rem + 1.1vw, 2.05rem)/1.15 var(--serif); color: var(--white); }
.dtg-lead__title:focus { outline: none; }
.dtg-lead__intro { margin: 0 0 1.5rem; color: var(--on-dark-muted); font-size: 1.0625rem; line-height: 1.55; }
.dtg-lead__form { display: grid; gap: 1.05rem; }
.dtg-lead .dtg-field label { color: var(--white); font-size: 1rem; }
.dtg-lead .dtg-field input:not([type="checkbox"]) { min-height: 52px; color: var(--white); background: rgba(243, 241, 236, .05); border: 1.5px solid rgba(243, 241, 236, .38); border-radius: 10px; }
.dtg-lead .dtg-field input:not([type="checkbox"]):hover { border-color: rgba(243, 241, 236, .6); }
.dtg-lead .dtg-field input:not([type="checkbox"]):focus-visible { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(214, 171, 85, .18); outline: none; }
.dtg-lead .dtg-field ::placeholder { color: #9FB0A8; }
.dtg-lead .dtg-field__opt, .dtg-lead__note { color: var(--on-dark-muted); font-weight: 400; }
.dtg-lead .dtg-field--check { margin-top: .15rem; }
.dtg-lead .dtg-field--check input { accent-color: var(--gold); }
.dtg-lead .dtg-field--check label { font-size: .9688rem; line-height: 1.45; }
.dtg-lead__note { flex-basis: 100%; margin: -.35rem 0 0 2.125rem; font-size: .875rem; line-height: 1.45; }
.dtg-lead .dtg-field__error { color: var(--error-on-dark); }
.dtg-lead .dtg-field.has-error input:not([type="checkbox"]) { border-color: var(--error-on-dark); }
.dtg-lead__status { margin: 0; font-weight: 600; }
.dtg-lead__status:empty { display: none; }
.dtg-lead__status.is-error { color: var(--error-on-dark); }
.dtg-lead__status.is-ok { color: var(--on-dark-muted); }
.dtg-lead__submit { width: 100%; min-height: 54px; margin-top: .35rem; font-size: 1.0625rem; box-shadow: 0 10px 30px -10px rgba(214, 171, 85, .6); }
.dtg-lead [aria-busy="true"] .dtg-lead__submit { opacity: .7; pointer-events: none; }
.dtg-lead__privacy { margin: 0; font-size: .9375rem; }
.dtg-lead__privacy a { color: var(--gold); }
.dtg-lead__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
@media (prefers-reduced-motion: reduce) { .dtg-lead[open] { animation: none; } }
.dtg-quote-ref { max-width: calc(var(--measure) + 2 * var(--gutter)); margin: 0 auto; padding: 2rem var(--gutter) 0; font-size: 1.25rem; }

/* ── Sections ──────────────────────────────────────────────────────────────────────── */
.dtg-section { padding-block: var(--section-y); }
/* The writers' cream / white / parchment sections alternate white and mist by position.
   WordPress' colour-preset classes carry !important, so these rules do too. */
.dtg-content > .dtg-section, .dtg-section { background-color: var(--white) !important; }
.dtg-content > .dtg-section:nth-child(even) { background-color: var(--mist) !important; }
.dtg-content > .dtg-section.is-light { background-color: var(--white) !important; }
.dtg-content > .dtg-section.is-mist { background-color: var(--mist) !important; }
.dtg-content > .dtg-section.is-dark, .dtg-content > .dtg-section:has(.dtg-why) { background: var(--ink) !important; color: var(--on-dark); }
.dtg-section.is-dark, .dtg-section:has(.dtg-why) { color: var(--on-dark); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) :is(h2, h3, strong) { color: var(--white); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) a:not(.dtg-btn):not(.dtg-dest a) { color: var(--copper-300); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) :focus-visible { outline-color: var(--copper-300); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) .dtg-eyebrow { color: var(--on-dark-muted); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) .dtg-eyebrow::before { color: var(--copper-300); border-color: var(--line-dark); }
.dtg-section.is-dark .dtg-btn--outline { color: var(--white); border-color: rgba(243, 241, 236, .7); }
.dtg-section.is-dark .dtg-btn--outline:hover { background: var(--white); color: var(--ink); }

.dtg-section > .dtg-wrap > *, .dtg-split__body > * { margin-block: 0; }
.dtg-section > .dtg-wrap > * + *, .dtg-split__body > * + * { margin-top: 1.15rem; }
/* Reading column: prose sits in a 46rem column on the left; grids, tables and tiles use the full width. */
.dtg-section > .dtg-wrap > :is(p, h2, h3, h4, blockquote, .wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"]), .dtg-tip, .dtg-figure) { max-width: var(--measure); }
.dtg-section > .dtg-wrap > .wp-block-table, .dtg-section > .dtg-wrap > .dtg-table-wrap { max-width: 64rem; }
.dtg-section h2 { font-size: clamp(1.75rem, 1.2rem + 1.3vw, 2.5rem); line-height: 1.1; letter-spacing: -.012em; text-wrap: balance; }
.dtg-section .dtg-eyebrow + h2 { margin-top: 0; }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) :is(.dtg-wrap, .dtg-split__body) > h2 + p { color: var(--on-dark-muted); }
.dtg-section > .dtg-wrap > h3, .dtg-split__body > h3 { font-size: 1.45rem; }
:is(.dtg-section > .dtg-wrap, .dtg-split__body) > * + h2 { margin-top: 3rem; }
:is(.dtg-section > .dtg-wrap, .dtg-split__body) > .dtg-eyebrow + :is(h2, h3) { margin-top: .35rem; } /* the label sits right on its heading */
:is(.dtg-section > .dtg-wrap, .dtg-split__body) > * + h3 { margin-top: 2.25rem; }
:is(.dtg-section > .dtg-wrap, .dtg-split__body) > :is(.dtg-grid, .dtg-steps, .dtg-why, .dtg-teaser, .dtg-table-wrap, .dtg-faq, .dtg-destinations, .dtg-map, .dtg-specs, .dtg-contact-options, .dtg-reviews, .dtg-quote, .dtg-points, .dtg-credits, .dtg-scale, .wp-block-table) { margin-top: 2.75rem; }
:is(.dtg-section > .dtg-wrap, .dtg-split__body) > :first-child { margin-top: 0; }

/* Lists: small copper squares */
.dtg-section ul:not([class*="dtg-"]) { list-style: none; padding-left: 0; }
.dtg-section ul:not([class*="dtg-"]) > li { position: relative; padding-left: 1.5rem; }
.dtg-section ul:not([class*="dtg-"]) > li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; background: var(--copper-600); }
:is(.dtg-section.is-dark, .dtg-section:has(.dtg-why)) ul:not([class*="dtg-"]) > li::before { background: var(--copper-300); }
.dtg-section ol:not([class*="dtg-"]) { padding-left: 1.4rem; }
.dtg-section ol:not([class*="dtg-"]) li::marker { color: var(--copper-700); font-weight: 700; }
.dtg-section li + li { margin-top: .6rem; }
.dtg-section :is(.dtg-grid, .dtg-destinations, .dtg-why, .dtg-steps, .dtg-scale, .dtg-points) > li + li { margin-top: 0; } /* items in a grid share one top line */
.dtg-content strong { font-weight: 600; color: var(--ink); }
.dtg-tip { background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--copper-600); border-radius: var(--radius); padding: 1.25rem 1.5rem; }
.dtg-section:nth-child(odd) .dtg-tip { background: var(--mist); }
.dtg-tip > * { margin: 0; }
.dtg-tip > * + * { margin-top: .75rem; }
.dtg-tip::before { content: "Tip"; display: block; font: 700 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--copper-700); margin-bottom: .6rem; }
.dtg-footnote { color: var(--stone); font-size: .875rem; margin-top: 1.25rem !important; }
/* Legal pages and posts: the reading column starts on the same edge as the headline above it. */
.is-legal .dtg-section > .dtg-wrap > :is(p, h2, h3, h4, blockquote, .wp-block-list, ul, ol, .dtg-tip, .dtg-figure) { max-width: var(--measure); }
.dtg-figure { margin: 0; }
.dtg-figure img { display: block; width: 100%; height: auto; border-radius: var(--radius); aspect-ratio: 16 / 9; object-fit: cover; }

/* Split sections: text beside a photo, zig-zag down the page (the compiler sets is-flip on every second pair).
   Short text sits level with the middle of the photo; long text starts level with its top and the photo
   stays in view while it scrolls. Anything wide (tables, cards, FAQ) follows full width below. */
/* The photo is exactly as tall as the text beside it (tops and bottoms level, client: "align the text and
   picture"); a short text sits in the middle of a photo at least 20rem tall. Long text gets a portrait
   photo that starts level with the heading and stays in view. */
.dtg-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4.5vw, 4.5rem); align-items: stretch; }
.dtg-split.is-flip > :not(.dtg-split__body) { order: -1; }
.dtg-split__body { min-width: 0; align-self: center; }
.dtg-split__body > * { max-width: none; }
.dtg-split__body > :first-child, .dtg-split > * { margin-top: 0; }
.dtg-split > .dtg-photo { min-height: 10rem; }
.dtg-split > .dtg-photo .dtg-photo__img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
/* Very long text: the photo starts level with the heading and stays in view as the text scrolls. */
.dtg-split.is-long > .dtg-photo { align-self: start; min-height: 0; height: min(40rem, calc(100vh - var(--header-h) - 3rem)); position: sticky; top: calc(var(--header-h) + 1.5rem); }
.dtg-section > .dtg-wrap > .dtg-split + * { margin-top: 3rem; }
.dtg-section > .dtg-wrap > * + .dtg-split { margin-top: 3rem; } /* a pair after a table, cards or another pair */
.dtg-section > .dtg-wrap > .dtg-split + .dtg-split { margin-top: clamp(3rem, 5vw, 4.5rem); }
.dtg-section > .dtg-wrap > :is(.wp-block-table, .dtg-table-wrap) { max-width: none; width: 100%; }
.dtg-section > .dtg-wrap > .wp-block-table table { width: 100%; }
/* A hairline keeps a pale sky from melting into a white page. */
.dtg-split > .dtg-photo .dtg-photo__img { box-shadow: inset 0 0 0 1px rgba(10, 36, 27, .08); }
.dtg-split > .dtg-photo::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); box-shadow: inset 0 0 0 1px rgba(10, 36, 27, .1); pointer-events: none; }
.dtg-photo { margin: 0; position: relative; }
.dtg-photo__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); object-position: var(--dtg-focus, 50% 50%); }
.dtg-photo__credit { margin-top: .6rem; font-size: .75rem; line-height: 1.4; color: var(--stone); }
.dtg-section.is-dark .dtg-photo__credit { color: var(--on-dark-muted); }
/* Bleed: the photo runs to the screen edge and the full height of the section. */
.dtg-section--split.is-bleed { padding-block: 0; }
.is-bleed .dtg-split { align-items: stretch; }
.is-bleed .dtg-split__body { padding-block: var(--section-y); }
.is-bleed .dtg-split > .dtg-photo { position: relative; top: auto; margin-right: var(--bleed); min-height: 26rem; }
.is-bleed .dtg-split.is-flip > .dtg-photo { margin-right: 0; margin-left: var(--bleed); }
.is-bleed .dtg-photo__img { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; border-radius: 0; }
.is-bleed .dtg-photo__credit { position: absolute; left: 0; bottom: 0; margin: 0; padding: .45rem .75rem; background: rgba(var(--shade), .72); color: var(--on-dark); font-size: .7rem; }
.is-bleed .dtg-split.is-flip .dtg-photo__credit { left: auto; right: 0; }
@media (max-width: 899.98px) {
	.dtg-split, .dtg-split.is-flip { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
	.dtg-split > :not(.dtg-split__body), .dtg-split.is-long > :not(.dtg-split__body) { position: relative; top: auto; order: -1; } /* relative: the photo stays inside its frame */
	.dtg-split > .dtg-photo, .dtg-split.is-long > .dtg-photo { min-height: 0; height: auto; width: 100%; aspect-ratio: 4 / 3; }
	.dtg-split.is-flip > :not(.dtg-split__body) { order: -1; }
	.dtg-section--split.is-bleed { padding-block: 0 0; }
	.is-bleed .dtg-split { gap: 0; }
	.is-bleed .dtg-split > .dtg-photo, .is-bleed .dtg-split.is-flip > .dtg-photo { margin-inline: calc(-1 * var(--gutter)); min-height: 0; aspect-ratio: 4 / 3; order: -1; }
}

/* ── Cards & grids ─────────────────────────────────────────────────────────────────── */
.dtg-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); list-style: none; padding: 0; grid-template-columns: 1fr; }
@media (min-width: 600px) { .dtg-grid--2, .dtg-grid--3, .dtg-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .dtg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .dtg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Card grids fill their rows: the column count follows the number of cards (6 → 3 + 3, 8 → 4 + 4, 5 → 3 + 2),
   and a row that can't be full is centred instead of hanging on the left. Tracks are doubled (each card
   spans two) so a short last row can start half a column in. The services bento has its own layout. */
@media (min-width: 600px) and (max-width: 959.98px) {
	.dtg-grid:is(.dtg-grid--2, .dtg-grid--3, .dtg-grid--4):not(.dtg-services) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.dtg-grid:is(.dtg-grid--2, .dtg-grid--3, .dtg-grid--4):not(.dtg-services) > * { grid-column: span 2; }
	.dtg-grid:is(.dtg-grid--2, .dtg-grid--3, .dtg-grid--4):not(.dtg-services) > :nth-child(2n+1):last-child { grid-column: 2 / span 2; }
	.dtg-services > .dtg-card:first-child { grid-column: 1 / -1; } /* 1 wide + 8: every row full */
	/* Three cards: one row of three (no lone card on a second row). */
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services, .dtg-hub, .dtg-related):has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services, .dtg-hub, .dtg-related):has(> :nth-child(3):last-child) > * { grid-column: auto; }
}
@media (min-width: 960px) {
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services) { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services) > * { grid-column: span 2; }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services) > :nth-child(4n+1):last-child { grid-column: 4 / span 2; }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services) > :nth-child(4n+1):nth-last-child(2) { grid-column: 3 / span 2; }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services) > :nth-child(4n+1):nth-last-child(3) { grid-column: 2 / span 2; }
	/* 3, 5, 6 or 9 cards: three to a row */
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services):has(> :nth-child(3):last-child, > :nth-child(5):last-child, > :nth-child(6):last-child, > :nth-child(9):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services):has(> :nth-child(3):last-child, > :nth-child(5):last-child, > :nth-child(6):last-child, > :nth-child(9):last-child) > * { grid-column: span 2; }
	.dtg-grid:is(.dtg-grid--3, .dtg-grid--4):not(.dtg-services):has(> :nth-child(5):last-child) > :nth-child(4) { grid-column: 2 / span 2; }
}
/* Photo-tile grids (hubs, related pages) with an odd count: the first tile is wide, so every row is full
   (5 → 2 + 1 / 3, 7 → 2 + 1 + 1 / 4; tablets: one wide tile, then pairs). */
@media (min-width: 600px) and (max-width: 959.98px) {
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(2n+1):last-child) > :first-child { grid-column: 1 / -1; }
	.dtg-grid:is(.dtg-hub, .dtg-related) > :nth-child(2n+1):last-child:not(:first-child) { grid-column: span 2; }
}
@media (min-width: 960px) {
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(5):last-child, > :nth-child(7):last-child) > * { grid-column: span 2; }
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(5):last-child, > :nth-child(7):last-child) > .dtg-card { min-height: 21rem; }
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(5):last-child, > :nth-child(7):last-child) > :first-child { grid-column: span 4; }
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(5):last-child) > :nth-child(4) { grid-column: span 2; }
	.dtg-grid:is(.dtg-hub, .dtg-related):has(> :nth-child(7):last-child) > :nth-child(5) { grid-column: span 2; }
}
/* Five vehicle cards fit one row on wide screens. */
@media (min-width: 1200px) {
	.dtg-fleet:has(> :nth-child(5):last-child) { grid-template-columns: repeat(10, minmax(0, 1fr)); }
	.dtg-fleet:has(> :nth-child(5):last-child) > * { grid-column: span 2; }
}
.dtg-card { position: relative; background: var(--white); border-radius: var(--radius); border: 1px solid var(--line); overflow: hidden; display: flex; flex-direction: column; transition: border-color .2s ease, box-shadow .2s ease; }
.dtg-card:hover { border-color: var(--copper-600); box-shadow: var(--shadow); }
.dtg-card:focus-within { outline: var(--focus); outline-offset: 3px; }
.dtg-card__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: linear-gradient(135deg, #12422F, var(--ink)); color: var(--copper-300); }
.dtg-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.dtg-card:hover .dtg-card__img { transform: scale(1.04); }
.dtg-card__icon-wrap { position: absolute; inset: 0; display: grid; place-items: center; }
.dtg-card__body { display: flex; flex-direction: column; gap: .55rem; padding: 1.25rem 1.35rem 1.35rem; flex: 1; }
.dtg-card__title, .dtg-section .dtg-card__title { font: 600 1.25rem/1.25 var(--serif); margin: 0; color: var(--ink); }
.dtg-card__link { color: inherit; text-decoration: none; }
.dtg-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dtg-card__link:focus-visible { outline: none; }
.dtg-card__text { margin: 0; color: var(--card-text); font-size: .96rem; line-height: 1.55; }
.dtg-card__meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; font-size: .78rem; font-weight: 600; color: var(--forest-700); }
.dtg-card__meta span { display: inline-flex; align-items: center; gap: .3rem; background: var(--moss-100); border-radius: 2px; padding: .25rem .55rem; }
.dtg-card__meta svg { color: var(--forest-700); }
.dtg-card__more { margin: auto 0 0; padding-top: .5rem; display: inline-flex; align-items: center; gap: .35rem; font: 700 .75rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--copper-700); }
.dtg-card__more svg { transition: transform .2s ease; }
/* Vehicle cards in a row share their rows (photo, chips, name, text, link), so names line up
   even when one card's chips wrap. */
@supports (grid-template-rows: subgrid) {
	.dtg-fleet .dtg-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; }
	.dtg-fleet .dtg-card__body { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: .55rem; align-content: start; }
	.dtg-fleet .dtg-card__more { align-self: end; }
}
.dtg-card:hover .dtg-card__more svg { transform: translateX(3px); }

/* Photo tiles: services bento, hubs and related links read as photos with the words on them. */
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card { border: 0; background: var(--ink); color: var(--white); min-height: 17rem; justify-content: flex-end; isolation: isolate; }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__media { position: absolute; inset: 0; aspect-ratio: auto; z-index: -2; }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--shade), .25) 0%, rgba(var(--shade), .6) 45%, rgba(var(--shade), .95) 100%); transition: background-color .3s ease; }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__body { flex: none; padding: 1.35rem 1.4rem 1.4rem; }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__title { color: var(--white); font-size: 1.35rem; }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__text { color: var(--on-dark); font-size: .92rem; min-height: calc(2 * 1.5em); }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__title { min-height: calc(2 * 1.2em); display: flex; align-items: flex-start; text-wrap: balance; } /* first lines level across a row */
@media (min-width: 960px) { .dtg-services .dtg-card:not(:first-child) .dtg-card__text { min-height: calc(4 * 1.5em); } }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__meta span { background: rgba(243, 241, 236, .16); color: var(--white); }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__meta svg { color: var(--white); }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__more { color: var(--copper-300); }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card:hover { box-shadow: var(--shadow-lg); }
:is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card:focus-within { outline-color: var(--copper-700); }
.dtg-related .dtg-card { min-height: 14rem; }
/* Hub and related tiles (≥ 600 px): the tiles of a row share their tracks (subgrid), so every label,
   title, summary and link starts on the same line whatever the summary's length. */
@supports (grid-template-rows: subgrid) {
	@media (min-width: 600px) {
		:is(.dtg-hub, .dtg-related) .dtg-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; min-height: 0; }
		:is(.dtg-hub, .dtg-related) .dtg-card::after { content: ""; grid-row: 1; height: 7.5rem; }
		.dtg-related .dtg-card::after { height: 5.5rem; }
		:is(.dtg-hub, .dtg-related) .dtg-card__body { display: contents; }
		:is(.dtg-hub, .dtg-related) .dtg-card__body > * { margin: 0; padding-inline: 1.4rem; }
		:is(.dtg-hub, .dtg-related) .dtg-card__meta { grid-row: 2; padding-bottom: .5rem; }
		:is(.dtg-hub, .dtg-related) .dtg-card__title { grid-row: 3; min-height: 0; align-items: flex-start; padding-bottom: .5rem; }
		:is(.dtg-hub, .dtg-related) .dtg-card__text { grid-row: 4; min-height: 0; padding-bottom: .75rem; }
		:is(.dtg-hub, .dtg-related) .dtg-card__more { grid-row: 5; align-self: end; padding-bottom: 1.4rem; }
	}
}
@media (max-width: 599.98px) { :is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__text, :is(.dtg-services, .dtg-hub, .dtg-related) .dtg-card__title { min-height: 0; } }
/* Services bento: four columns, the first ride takes a 2 × 2 tile. */
@media (min-width: 960px) {
	.dtg-services.dtg-grid--3 { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(15.5rem, auto); }
	.dtg-services .dtg-card:first-child { grid-column: span 2; grid-row: span 2; }
	.dtg-services .dtg-card:first-child .dtg-card__title { font-size: clamp(1.75rem, 1.3rem + 1vw, 2.25rem); }
	.dtg-services .dtg-card:first-child .dtg-card__text { font-size: 1rem; max-width: 30rem; }
	.dtg-services .dtg-card:first-child .dtg-card__title { min-height: 0; }
}

/* Destinations: photo tiles */
.dtg-destinations { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); }
.dtg-dest a { position: relative; display: flex; align-items: flex-end; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--white); background: linear-gradient(135deg, var(--forest-900), var(--ink)); isolation: isolate; }
.dtg-dest__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.dtg-dest a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--shade), .2) 10%, rgba(var(--shade), .65) 45%, rgba(var(--shade), .96) 100%); }
.dtg-dest a:hover .dtg-dest__img { transform: scale(1.05); }
.dtg-dest__body { display: grid; gap: .15rem; padding: 1rem 1.1rem; width: 100%; }
.dtg-dest__code { font: 700 .75rem/1 var(--sans); letter-spacing: .18em; color: var(--copper-300); text-shadow: 0 1px 3px rgba(var(--shade), .9); }
.dtg-dest__label { font: 600 1.15rem/1.2 var(--serif); color: var(--white); }
.dtg-dest__sub { font-size: .8125rem; color: var(--on-dark-muted); }
@media (max-width: 899.98px) { .dtg-destinations { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Capacity scale (fleet) */
.dtg-scale { list-style: none; padding: 0; border-top: 1px solid var(--line); }
.dtg-scale__row { margin: 0 !important; }
.dtg-scale__link { display: grid; grid-template-columns: 96px minmax(11rem, 15rem) minmax(0, 1fr) 7.5rem; align-items: center; gap: 1.5rem; padding: .8rem .75rem .8rem 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: background-color .2s ease; }
.dtg-scale__link:hover { background: rgba(244, 242, 238, .7); }
.dtg-scale__img { display: block; width: 96px; height: 64px; object-fit: cover; border-radius: 2px; background: var(--mist); }
.dtg-scale__name { display: grid; gap: .15rem; font: 600 1.1rem/1.2 var(--serif); }
.dtg-scale__name span, .dtg-scale__n span { font: 500 .8125rem/1.3 var(--sans); color: var(--stone); }
.dtg-scale__bar { display: block; height: 8px; background: var(--mist); border-radius: 1px; overflow: hidden; }
.dtg-scale__bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--forest-700), var(--copper-600)); transition: filter .2s ease; }
.dtg-scale__link:hover .dtg-scale__bar span { filter: brightness(1.15); }
.dtg-scale__n { display: grid; justify-items: end; font: 600 1.15rem/1.2 var(--serif); color: var(--forest-700); }
.dtg-scale + .dtg-footnote { text-align: left; }
@media (max-width: 759.98px) {
	.dtg-scale__link { grid-template-columns: 72px minmax(0, 1fr) auto; gap: .5rem 1rem; }
	.dtg-scale__img { width: 72px; height: 54px; grid-column: 1; grid-row: 1 / span 2; }
	.dtg-scale__name { grid-column: 2; grid-row: 1; }
	.dtg-scale__n { grid-column: 3; grid-row: 1; font-size: 1rem; }
	.dtg-scale__bar { grid-column: 2 / -1; grid-row: 2; }
}

/* Steps: a timeline on one line */
.dtg-steps { --steps-gap: clamp(1.5rem, 4vw, 3.5rem); list-style: none; padding: 0; position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--steps-gap); }
.dtg-steps::before { content: ""; position: absolute; top: 1.5rem; left: 1.5rem; right: calc((100% - 2 * var(--steps-gap)) / 3 - 1.5rem); height: 1px; background: var(--copper-600); opacity: .55; }
.dtg-step { position: relative; margin: 0 !important; display: grid; align-content: start; }
@supports (grid-template-rows: subgrid) { .dtg-steps { row-gap: 0; } .dtg-step { grid-row: span 3; grid-template-rows: subgrid; } }
.dtg-step__n { position: relative; display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--forest-900); color: var(--copper-300); font: 600 1.25rem/1 var(--serif); box-shadow: 0 0 0 8px var(--mist); }
.dtg-section.is-light .dtg-step__n, .dtg-content > .dtg-section:nth-child(odd):not(.is-mist):not(.is-dark) .dtg-step__n { box-shadow: 0 0 0 8px var(--white); }
.dtg-step__title { font-size: 1.3rem !important; margin: 1.35rem 0 .6rem; color: var(--ink); text-wrap: balance; }
.dtg-step p { margin: 0; color: var(--card-text); max-width: 22rem; }
@media (max-width: 767.98px) {
	.dtg-steps { grid-template-columns: 1fr; gap: 2rem; row-gap: 2rem; padding-left: 4.25rem; }
	.dtg-step { grid-row: auto; grid-template-rows: none; }
	.dtg-steps::before { display: none; }
	.dtg-step:not(:last-child)::after { content: ""; position: absolute; left: -2.75rem; top: 3rem; bottom: -2rem; width: 1px; background: var(--copper-600); opacity: .55; }
	.dtg-step__n { position: absolute; left: -4.25rem; top: 0; }
	.dtg-step__title { margin-top: .5rem; }
}

/* Why (legacy icon list, dark) */
.dtg-why { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 2.5rem; }
.dtg-why li { display: flex; align-items: flex-start; gap: 1rem; margin: 0 !important; padding: 1.4rem 0; border-top: 1px solid var(--line-dark); }
.dtg-why__icon { flex: none; align-self: flex-start; color: var(--copper-300); margin-top: .05rem; }
.dtg-why__title { font-size: 1.15rem !important; margin: 0 0 .35rem; color: var(--white); }
.dtg-why p { margin: 0; color: var(--on-dark-muted); }
@media (max-width: 959.98px) { .dtg-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .dtg-why { grid-template-columns: 1fr; } }

/* Editorial numbered list (home "Why DT Goods") */
.dtg-points { counter-reset: dtg-point; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.5rem; }
.dtg-point { counter-increment: dtg-point; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: .5rem; align-content: start; padding: 1.35rem 0; border-bottom: 1px solid var(--line); margin: 0 !important; }
/* Title and text rows are shared across a row of points, so paragraphs start on one line. */
@supports (grid-template-rows: subgrid) { .dtg-point { grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; } }
.dtg-point::before { content: counter(dtg-point, decimal-leading-zero); grid-row: span 2; font: 600 1.35rem/1.1 var(--serif); color: var(--copper-700); }
.dtg-point > * { margin: 0; grid-column: 2; }
.dtg-point h3 { font-size: 1.15rem; line-height: 1.3; color: var(--ink); }
.dtg-point p { margin-top: .4rem; color: var(--card-text); font-size: .95rem; line-height: 1.55; }
@media (max-width: 1199.98px) { .dtg-split__body .dtg-points { grid-template-columns: 1fr; } }
@media (max-width: 599.98px) { .dtg-points { grid-template-columns: 1fr; } }

/* Pricing teaser */
.dtg-teaser { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2.5rem; background: var(--white); border: 1px solid var(--line); border-left: 4px solid var(--copper-600); border-radius: var(--radius); padding: clamp(1.5rem, 3vw, 2.25rem); }
.dtg-section:nth-child(odd) .dtg-teaser, .dtg-section.is-light .dtg-teaser { background: var(--mist); }
.dtg-teaser > div:first-child { max-width: 44rem; }
.dtg-teaser p { margin: 0; }
.dtg-teaser__title { font: 600 1.55rem/1.2 var(--serif); color: var(--ink); margin-bottom: .45rem !important; }
.dtg-teaser > div:first-child p:not(.dtg-teaser__title) { color: var(--card-text); }
.dtg-teaser__actions { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Vehicle specs */
.dtg-specs { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem 2.5rem; align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem); }
.dtg-specs__icon { color: var(--copper-600); }
.dtg-specs .dtg-table-wrap { margin: 0; }
@media (max-width: 639.98px) { .dtg-specs { grid-template-columns: 1fr; } }

/* Map */
.dtg-map { border-radius: var(--radius); overflow: hidden; background: linear-gradient(160deg, #0F3D2E, var(--ink)); color: var(--on-dark); aspect-ratio: 21 / 9; max-height: 24rem; width: 100%; display: grid; }
.dtg-map__placeholder { display: grid; place-content: center; justify-items: center; gap: .75rem; padding: 1.5rem; text-align: center; }
.dtg-map__placeholder svg { color: var(--copper-300); }
.dtg-map__placeholder p { margin: 0; }
.dtg-map__note { font-size: .875rem; color: var(--on-dark-muted); }
.dtg-map__note a { color: var(--copper-300); }
.dtg-map .dtg-btn--outline { color: var(--white); border-color: rgba(243, 241, 236, .7); }
.dtg-map .dtg-btn--outline:hover { background: var(--white); color: var(--ink); }
.dtg-map :focus-visible { outline-color: var(--copper-300); }
.dtg-map iframe { width: 100%; height: 100%; border: 0; }
@media (max-width: 599.98px) { .dtg-map { aspect-ratio: 4 / 3; max-height: none; } }

/* Reviews, NAP, contact cards, credits */
.dtg-reviews { max-width: var(--measure); }
.dtg-reviews__empty { background: var(--white); border: 1px dashed var(--moss-300); border-radius: var(--radius); padding: 1.5rem; }
.dtg-reviews__empty p { margin: 0; }
.dtg-reviews__empty .dtg-teaser__title { color: var(--ink); }
.dtg-nap p { margin: 0; display: flex; gap: .55rem; align-items: flex-start; }
.dtg-nap p + p { margin-top: .55rem; }
.dtg-nap svg { color: var(--copper-600); flex: none; margin-top: .15rem; }
.dtg-nap--block { background: var(--white); border: 1px solid var(--line); border-top: 3px solid var(--copper-600); border-radius: var(--radius); padding: 1.5rem; max-width: 30rem; }
.dtg-card--contact { padding: 1.4rem; gap: .5rem; }
.dtg-card--contact .dtg-card__icon { color: var(--copper-600); }
.dtg-card--contact .dtg-card__title { font-size: 1.2rem; }
.dtg-card__value { margin: 0; font-weight: 600; }
.dtg-card--post { padding: 0; }
.dtg-card--post > * { margin: 0; padding-inline: 1.4rem; }
.dtg-card--post > :first-child { padding-top: 1.4rem; }
.dtg-card--post > :last-child { padding-bottom: 1.4rem; }
.dtg-card--post .wp-block-post-title { font-size: 1.35rem; margin-top: .5rem; }
.dtg-card--post .wp-block-post-title a { color: var(--ink); text-decoration: none; }
.dtg-card--post .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.dtg-card--post .wp-block-post-date { color: var(--stone); font-size: .875rem; }
.dtg-card--post .wp-block-post-excerpt { margin-top: .6rem; color: var(--card-text); }
.dtg-credits { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1rem; }
.dtg-credit { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 1rem; align-items: start; margin: 0; padding: .9rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); font-size: .875rem; }
.dtg-credit img { width: 120px; height: 80px; object-fit: cover; border-radius: 2px; }
.dtg-credit__changes { color: var(--stone); }

/* ── Tables ────────────────────────────────────────────────────────────────────────── */
.dtg-table-wrap, .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dtg-content table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; font-size: .9375rem; }
.dtg-content table caption { caption-side: top; text-align: left; font: 700 .75rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--copper-700); padding: 0 0 .7rem; }
.dtg-content th, .dtg-content td, .dtg-content .wp-block-table th, .dtg-content .wp-block-table td { text-align: left; padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--charcoal); }
.dtg-content thead th, .dtg-content .wp-block-table thead th { background: var(--forest-900); color: var(--white); font: 700 .75rem/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.dtg-content .wp-block-table thead { border-bottom: 0; }
.dtg-content tbody th { font-weight: 600; color: var(--ink); }
.dtg-content tbody tr:nth-child(even) > * { background: #FAF9F6; }
.dtg-content tr:last-child > * { border-bottom: 0; }
.dtg-content tbody th a { color: var(--forest-700); }
.dtg-rates__sub { display: block; font-weight: 400; font-size: .8125rem; color: var(--on-dark-muted); text-transform: none; letter-spacing: 0; }
.wp-block-table { margin: 0; }
.wp-block-table table { min-width: min(34rem, 100%); } /* never wider than the phone: 2-column tables wrap, 3+ columns become cards */
.dtg-included { max-width: 48rem; }
.dtg-included th { width: 55%; }
/* Departure board: tables in dark sections */
.dtg-section.is-dark table { background: rgba(0, 0, 0, .22); border: 1px solid var(--line-dark); }
.dtg-section.is-dark :is(th, td) { color: var(--on-dark); border-bottom: 1px dashed rgba(243, 241, 236, .16); background: transparent !important; }
.dtg-section.is-dark thead th { background: transparent; color: var(--copper-300); border-bottom: 1px solid var(--line-dark); }
.dtg-section.is-dark tbody td:first-child { font-weight: 600; color: var(--white); }
.dtg-section.is-dark tbody td:nth-child(2) { font-variant-numeric: tabular-nums; color: var(--copper-300); }
.dtg-section.is-dark table caption { color: var(--copper-300); }

/* ── FAQ: title column + ruled answers ─────────────────────────────────────────────── */
/* ── Section layouts (client, 18 Oct 2026) ────────────────────────────────────────────
   1. Text with a photo (dtg-section--split): text on one side, the photo on the other, alternating
      down the page; anything wide follows full width below.
   2. Every other section: its label, heading and short intro are centred over the full-width block
      that follows (cards, steps, FAQ …), so no text block leaves half the row empty.
   Legal text (no photos) reads in one centred column, left-aligned. */
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > :is(.dtg-eyebrow, h2, h3, h4, p:not([class*="dtg-"]), .wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"]), .dtg-tip, blockquote, .dtg-footnote, .dtg-figure) { max-width: 48rem; margin-inline: auto; }
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > :is(h2, h3, h4, p:not([class*="dtg-"]), .dtg-footnote) { text-align: center; }
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-eyebrow { justify-content: center; }
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > :is(.wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"])) { width: fit-content; }
/* Notes under a wide block in a photo section (e.g. a line under a table) sit centred under it too. */
.dtg-main:not(.is-legal) .dtg-section--split > .dtg-wrap > :is(.dtg-eyebrow, h2, h3, h4, p:not([class*="dtg-"]), .dtg-footnote, .wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"]), .dtg-tip, .dtg-figure) { max-width: 48rem; margin-inline: auto; }
.dtg-main:not(.is-legal) .dtg-section--split > .dtg-wrap > :is(h2, h3, h4, p:not([class*="dtg-"]), .dtg-footnote) { text-align: center; }
.dtg-main:not(.is-legal) .dtg-section--split > .dtg-wrap > :is(.wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"])) { width: fit-content; }
.dtg-section .dtg-footnote { text-align: center; margin-inline: auto; }
.dtg-section > .dtg-wrap > :is(h2, .dtg-eyebrow + h2) + :is(.dtg-grid, .dtg-steps, .dtg-why, .dtg-teaser, .dtg-table-wrap, .wp-block-table, .dtg-destinations, .dtg-map, .dtg-specs, .dtg-contact-options, .dtg-quote, .dtg-points, .dtg-scale) { margin-top: 2rem; }
/* Phones and tablets: section text reads left-aligned (centred text over several short lines is hard to read). */
@media (max-width: 959.98px) {
	.dtg-main .dtg-section > .dtg-wrap > :is(h2, h3, h4, p:not([class*="dtg-"]), .dtg-footnote) { text-align: left !important; }
	.dtg-main .dtg-section > .dtg-wrap > .dtg-eyebrow { justify-content: flex-start !important; }
	.dtg-main .dtg-section > .dtg-wrap > :is(.wp-block-list, ul:not([class*="dtg-"]), ol:not([class*="dtg-"])) { width: auto; }
	.dtg-section:has(> .dtg-wrap > .dtg-faq) > .dtg-wrap { text-align: left; }
}
.is-legal .dtg-section > .dtg-wrap { max-width: calc(var(--measure) + 2 * var(--gutter)); }
.is-legal .dtg-section > .dtg-wrap > * { max-width: none; }
/* FAQ (client, 18 Oct 2026: "redesign the FAQs"): a centred heading over one column of question cards. */
/* FAQ: a centred heading and short intro over one centred column of question cards. */
.dtg-section:has(> .dtg-wrap > .dtg-faq) > .dtg-wrap { max-width: calc(58rem + 2 * var(--gutter)); }
.dtg-faq { display: grid; gap: .75rem; max-width: none; margin-inline: auto; text-align: left; counter-reset: dtg-q; }
.dtg-section > .dtg-wrap > .dtg-faq { margin-top: 2.25rem; }
.dtg-faq__item { background: var(--white); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 1px 2px rgba(var(--shade), .05); counter-increment: dtg-q; transition: border-color .2s ease, box-shadow .2s ease; }
.dtg-faq__item:hover { border-color: var(--copper-300); }
.dtg-faq__item[open] { border-color: var(--copper-300); box-shadow: 0 14px 34px -22px rgba(var(--shade), .45); }
.dtg-faq__item summary { list-style: none; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: .9rem; padding: 1.1rem 1.25rem; cursor: pointer; }
.dtg-faq__item summary::before { content: counter(dtg-q, decimal-leading-zero); display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--mist); font: 600 .85rem/1 var(--serif); color: var(--copper-700); }
.dtg-faq__item summary::-webkit-details-marker { display: none; }
.dtg-faq__item summary:hover .dtg-faq__q { color: var(--forest-700); }
.dtg-faq__q { margin: 0 !important; font: 600 1.075rem/1.35 var(--serif) !important; color: var(--ink); transition: color .15s ease; }
.dtg-faq__icon { flex: none; width: 32px; height: 32px; padding: 7px; border: 1px solid var(--line); border-radius: 50%; color: var(--copper-700); transition: transform .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease; }
.dtg-faq__item[open] .dtg-faq__icon { transform: rotate(45deg); background: var(--forest-900); border-color: var(--forest-900); color: var(--white); }
.dtg-faq__a { padding: 0 1.5rem 1.35rem calc(1.25rem + 2.5rem + .9rem); color: var(--card-text); }
.dtg-faq__a p { margin: 0; }
.dtg-faq__a p + p { margin-top: .75rem; }
@media (max-width: 599.98px) {
	.dtg-faq__item summary { grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .65rem; padding: 1rem; }
	.dtg-faq__item summary::before { width: 2rem; height: 2rem; font-size: .75rem; }
	.dtg-faq__a { padding: 0 1rem 1.2rem; }
}

/* ── CTA band: copper copy beside a photo ──────────────────────────────────────────── */
.dtg-cta-band { display: grid; grid-template-columns: minmax(var(--gutter), 1fr) minmax(0, calc(var(--max) / 2)) minmax(0, calc(var(--max) / 2)) minmax(var(--gutter), 1fr); background: var(--copper-700); color: var(--white); }
/* The copy sits in the page's own content column, so its left edge lines up with every section. */
.dtg-cta-band__copy { grid-column: 2; grid-row: 1; align-self: center; padding: clamp(2.5rem, 4.5vw, 3.75rem) clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 4.5vw, 3.75rem) 0; }
.dtg-cta-band:not(.has-photo) .dtg-cta-band__copy { grid-column: 2 / 4; }
.dtg-cta-band__inner { max-width: 34rem; }
.dtg-cta-band__kicker { margin: 0 0 1.1rem; font: 700 .75rem/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--white); opacity: .9; }
.dtg-cta-band__title { color: var(--white); font-size: clamp(2rem, 1.4rem + 2.2vw, 3.2rem); line-height: 1.05; margin: 0 0 1rem; }
.dtg-cta-band p { margin: 0; color: var(--white); font-size: 1.125rem; max-width: 30rem; }
/* Three short points instead of buttons (client, 21 Oct 2026: the footer card right below has Email Us and Get a Quote). */
.dtg-cta-band__points { list-style: none; margin: 1.75rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .85rem; }
.dtg-cta-band__points li { display: flex; align-items: center; gap: .6rem; color: var(--white); font-weight: 600; font-size: 1.0625rem; line-height: 1.35; }
.dtg-cta-band__tick { flex: 0 0 auto; box-sizing: content-box; width: .875rem; height: .875rem; padding: .25rem; border-radius: 50%; background: var(--gold); color: var(--ink); stroke-width: 3; }
/* The photo sits inside the page edges (its right edge lines up with the header's quote button). */
.dtg-cta-band__media { grid-column: 3; grid-row: 1; position: relative; align-self: stretch; margin-block: clamp(2.5rem, 4.5vw, 3.75rem); min-height: 17rem; border-radius: var(--radius); overflow: hidden; }
.dtg-cta-band__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dtg-cta-band :focus-visible { outline-color: var(--white); }
@media (max-width: 899.98px) { .dtg-cta-band { grid-template-columns: var(--gutter) minmax(0, 1fr) var(--gutter); } .dtg-cta-band__copy, .dtg-cta-band:not(.has-photo) .dtg-cta-band__copy { grid-column: 2; grid-row: 2; padding-right: 0; } .dtg-cta-band__inner { max-width: none; } .dtg-cta-band__media { grid-column: 2; grid-row: 1; margin-block: 2.25rem 0; aspect-ratio: 16 / 9; min-height: 0; } }

/* ── Footer (forest) ───────────────────────────────────────────────────────────────── */
.dtg-footer { background: var(--forest-900); color: var(--on-dark-muted); padding-top: clamp(3.5rem, 7vw, 5rem); font-size: .9375rem; }
.dtg-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); gap: 2.25rem 2rem; }
.dtg-footer__grid > * { margin: 0 !important; }
.dtg-footer__brand > * + * { margin-top: 1.1rem; }
.dtg-footer .dtg-nap strong { color: var(--white); }
.dtg-footer .dtg-nap svg { color: var(--copper-300); }
.dtg-footer mark.dtg-tbc { background: rgba(224, 167, 126, .12); color: var(--copper-300); border-color: rgba(224, 167, 126, .5); }
.dtg-menu-list__title { font: 700 .75rem/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--copper-300); margin: 0 0 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--line-dark); }
.dtg-menu-list ul { list-style: none; margin: 0; padding: 0; }
.dtg-menu-list li + li { margin-top: .5rem; }
.dtg-footer a { color: var(--on-dark-muted); text-decoration: none; }
.dtg-footer a:hover { color: var(--white); text-decoration: underline; text-decoration-color: var(--copper-300); }
.dtg-footer :focus-visible { outline-color: var(--copper-300); }
.dtg-licences, .dtg-legal-line { margin: 0; color: var(--on-dark-muted); }
.dtg-social { list-style: none; padding: 0; display: flex; gap: 1rem; }
.dtg-footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 2rem; border-top: 1px solid var(--line-dark); margin-top: 3rem; padding-block: 1.4rem 1.6rem; width: min(var(--max), 100% - 2 * var(--gutter)); margin-inline: auto; padding-inline: 0; } /* divider and line on the content edge */
.dtg-footer__base > * { margin: 0 !important; }
.dtg-footer__base .dtg-menu-list { display: flex; }
.dtg-footer__base .dtg-menu-list__title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); padding: 0; border: 0; }
.dtg-footer__base .dtg-menu-list ul { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.dtg-footer__base .dtg-menu-list li + li { margin-top: 0; }

/* ── Mobile contact bar ────────────────────────────────────────────────────────────── */
.dtg-mobile-bar { display: none; }
@media (max-width: 781.98px) {
	.dtg-mobile-bar { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--ink); border-top: 1px solid rgba(224, 167, 126, .35); padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -8px 24px rgba(4, 18, 13, .25); }
	.dtg-mobile-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; min-height: 60px; color: var(--on-dark); text-decoration: none; font: 700 .75rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
	.dtg-mobile-bar a + a { border-left: 1px solid var(--line-dark); }
	.dtg-mobile-bar svg { color: var(--copper-300); }
	.dtg-mobile-bar a.is-primary { background: var(--copper-600); color: var(--white); }
	.dtg-mobile-bar a.is-primary svg { color: var(--white); }
	.dtg-mobile-bar :focus-visible { outline-color: var(--copper-300); outline-offset: -4px; }
	body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
	.dtg-logo img { width: 180px; }
	.dtg-logo--seal img { width: 104px; }
}

/* ── Blog list, pagination, search ─────────────────────────────────────────────────── */
.dtg-post-list { padding-block: var(--section-y); }
.dtg-post-list .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.dtg-pagination { margin-top: 2.5rem; display: flex; gap: 1rem; justify-content: center; }
.is-blog .dtg-content .dtg-section { padding-bottom: 0; }

/* ── Motion & print ────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
	.dtg-site-header, .dtg-cta-band, .dtg-mobile-bar, .dtg-footer, .dtg-trust-band, .dtg-hero__quote { display: none; }
	.dtg-hero { background: none; color: #000; }
	.dtg-hero__media, .dtg-hero::before, .dtg-hero::after { display: none; }
	.dtg-hero__title { color: #000; }
}

/* ── Review round 2: shared fixes ───────────────────────────────────────────────────── */
.dtg-nb { white-space: nowrap; }
/* Vehicle cards: chips keep their own height (they were stretched to the tallest card's). */
.dtg-fleet .dtg-card__meta { align-self: start; align-content: start; }
/* Vehicle spec card: a second photo of the vehicle beside the table, or the table alone. */
.dtg-specs { grid-template-columns: minmax(0, 1fr); }
.dtg-specs:not(.has-photo) { background: none; border: 0; padding: 0; } /* the table alone: no box in a box */
.dtg-specs.has-photo { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; }
.dtg-specs__media { margin: 0; border-radius: var(--radius); overflow: hidden; min-height: 14rem; }
.dtg-specs__img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 639.98px) { .dtg-specs.has-photo { grid-template-columns: minmax(0, 1fr); } }
/* Hero quote card: the passenger field takes the full row. */
.dtg-hero__quote .dtg-field--passengers { grid-column: 1 / -1; }
/* Phone hero: the eyebrow reads over bright photos. */
@media (max-width: 899.98px) { .dtg-hero__eyebrow { text-shadow: 0 1px 2px rgba(0, 0, 0, .7), 0 0 18px rgba(0, 0, 0, .55); letter-spacing: .08em; } }
/* CTA band: space between the label and the heading. */
.dtg-cta-band__kicker { margin-bottom: 1.25rem; }
/* Credit lines: licence labels never split. */
.dtg-credit a[rel~="license"] { white-space: nowrap; }

/* Phones: tables become one card per row (column headings shown as labels) instead of hiding
   columns past the right edge. The header row stays in the markup for screen readers. */
@media (max-width: 599.98px) {
	.dtg-content .wp-block-table table[data-stack], .dtg-content table[data-stack] { min-width: 0; border: 0; background: transparent; border-radius: 0; overflow: visible; }
	.dtg-content table[data-stack] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); contain: strict; white-space: nowrap; } /* contain: its long hidden headers no longer widen a 320 px page */
	.dtg-content table[data-stack] :is(tbody, tr, td, tbody th) { display: block; width: auto; }
	.dtg-content table[data-stack] tr { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: .9rem 1rem; margin: 0 0 .75rem; }
	.dtg-content table[data-stack] tr > * { border: 0 !important; padding: .3rem 0; background: transparent !important; }
	.dtg-content table[data-stack] tr > *::before { content: attr(data-label); display: block; margin-bottom: .1rem; font: 700 .6875rem/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--stone); }
	.dtg-content table[data-stack] tr > :first-child { padding-top: 0; font-weight: 700; font-size: 1.0625rem; color: var(--ink); }
	.dtg-content table[data-stack] tr > :first-child::before { display: block; } /* the card title keeps its column name ("Terminal", "Flight leaves") */
	.dtg-section.is-dark table[data-stack] tr { background: rgba(243, 241, 236, .05); border-color: var(--line-dark); }
	.dtg-section.is-dark table[data-stack] tr > :first-child { color: var(--white); }
	.dtg-section.is-dark table[data-stack] tr > *::before { color: var(--on-dark-muted); }
	.dtg-content .wp-block-table:has(table[data-stack]), .dtg-table-wrap:has(table[data-stack]) { overflow: visible; }
}

/* Blog list: photo cards of equal height, tops level, the excerpt in full with its "Read More" link. */
.dtg-post-list__title { margin: 0 0 1.75rem; }
.dtg-post-list .wp-block-post-template { margin: 0; }
.dtg-post-list .wp-block-post-template > li { margin: 0 !important; display: flex; }
.dtg-post-list .dtg-card--post { flex: 1; display: flex; flex-direction: column; }
.dtg-card--post > .dtg-card__media { padding: 0 !important; margin: 0 0 .25rem; aspect-ratio: 16 / 10; overflow: hidden; }
.dtg-card--post > .dtg-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dtg-card--post > .dtg-card__media + * { padding-top: 1.1rem; }
.dtg-card--post .wp-block-post-excerpt__more-link { display: inline-block; margin-top: .35rem; padding-block: .3rem; font-weight: 700; color: var(--forest-700); }

/* Two cards: two equal halves (never two narrow cards in the middle of the row). */
@media (min-width: 600px) {
	.dtg-grid:not(.dtg-services):has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.dtg-grid:not(.dtg-services):has(> :nth-child(2):last-child) > * { grid-column: auto !important; }
}
/* Map, before it is loaded: one tidy row — icon · address and note · button (stacked and centred on phones). */
.dtg-map:not(:has(iframe)) { aspect-ratio: auto; max-height: none; }
.dtg-map:not(:has(iframe)) .dtg-map__placeholder { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; text-align: center; gap: .6rem 1.25rem; padding: 1.5rem 1.75rem; }
.dtg-map:not(:has(iframe)) .dtg-map__placeholder > p:not(.dtg-map__note) { font-weight: 600; }
.dtg-map:not(:has(iframe)) .dtg-map__note { flex-basis: 100%; }
@media (max-width: 599.98px) { .dtg-map:not(:has(iframe)) .dtg-map__placeholder { flex-direction: column; flex-wrap: nowrap; height: auto; } .dtg-map:not(:has(iframe)) .dtg-map__note { flex-basis: auto; } }
.dtg-map:has(iframe) { aspect-ratio: 21 / 9; }
/* Quote band (client, 20 Oct 2026: "needs to be aligned … professionally"): the label keeps its own line
   above the heading (the band's `p` reset had removed its margin, so it touched the title on every page),
   and the paragraph runs to the heading's width. */
.dtg-cta-band .dtg-cta-band__kicker { margin: 0 0 .9rem; max-width: none; }
.dtg-cta-band .dtg-cta-band__inner > p:not(.dtg-cta-band__kicker) { max-width: 34rem; }
/* Blog list: centred heading; every "Read More" on one line at the bottom of its card. */
.dtg-post-list__title { text-align: center; }
.dtg-post-list .dtg-card--post .wp-block-post-excerpt { display: flex; flex-direction: column; flex: 1; }
.dtg-post-list .dtg-card--post .wp-block-post-excerpt__excerpt { flex: 1; }
.dtg-post-list .dtg-card--post .wp-block-post-excerpt__more-text { margin-top: auto; }

/* Credits: a separator never starts a line. */
.dtg-credit__sep { white-space: nowrap; }
.dtg-credit figcaption { overflow-wrap: break-word; min-width: 0; }
@media (max-width: 479.98px) {
	.dtg-credit { grid-template-columns: minmax(0, 1fr); }
	.dtg-credit img { width: 100%; height: auto; aspect-ratio: 3 / 2; }
	.dtg-credit a[rel~="license"] { white-space: normal; }
}

/* Related and hub tiles: four to a row only from 1200 px (2 × 2 below), so tiles stay readable. */
@media (min-width: 960px) and (max-width: 1199.98px) {
	.dtg-grid:is(.dtg-related, .dtg-hub):has(> :nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.dtg-grid:is(.dtg-related, .dtg-hub):has(> :nth-child(4):last-child) > * { grid-column: auto !important; }
}

/* Components that print a line of text inside a centred section follow the centre line. */
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews { text-align: center; }
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews > p { max-width: 48rem; margin-inline: auto; }
@media (max-width: 959.98px) { .dtg-main .dtg-section > .dtg-wrap > .dtg-reviews { text-align: left; } }

/* Tables size their columns to the content (short codes and times don't take half the width). */
.dtg-section .wp-block-table table, .dtg-section .wp-block-table .has-fixed-layout { table-layout: auto; }
/* Date and time fields: room between the value and the picker icon. */
input[type="date"], input[type="time"] { padding-right: .75rem; min-width: 0; }
input[type="date"]::-webkit-calendar-picker-indicator, input[type="time"]::-webkit-calendar-picker-indicator { margin-left: .5rem; }
/* Trust bar on phones: items in a row start on the same line. */
@media (max-width: 599.98px) { .dtg-trust { align-items: start; } .dtg-trust__item { align-self: start; } }
/* Destination tiles on phones: the code sits on its own line and every name block has the same height. */
@media (max-width: 599.98px) {
	.dtg-dest a { aspect-ratio: 4 / 5; }
	.dtg-dest__body { display: grid; gap: .25rem; }
	.dtg-dest__label { min-height: 2.5em; display: flex; align-items: flex-end; }
}

/* Centred sections: buttons and the reviews line follow the centre line. */
/* A button row on its own (under cards, a scale, a footnote) is centred in every section; buttons inside a text-and-photo pair stay with their text. */
.dtg-main:not(.is-legal) .dtg-section > .dtg-wrap > .dtg-actions { justify-content: center; margin-inline: auto; }
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews, .dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews > * { text-align: center; margin-inline: auto; max-width: 48rem; }
@media (max-width: 959.98px) {
	.dtg-main .dtg-section > .dtg-wrap > .dtg-actions { justify-content: flex-start; margin-inline: 0; }
	.dtg-main .dtg-section > .dtg-wrap > .dtg-reviews, .dtg-main .dtg-section > .dtg-wrap > .dtg-reviews > * { text-align: left; margin-inline: 0; }
	.dtg-post-list__title { text-align: left; }
}
/* Quick-quote card on phones: date and time each get the full width (the picker icon never covers the value). */
@media (max-width: 599.98px) { .dtg-hero__quote :is(.dtg-quote__grid, .dtg-quote__row), .dtg-quote--strip :is(.dtg-quote__grid, .dtg-quote__row) { grid-template-columns: 1fr; } }
/* Destination tiles: code, name and line on fixed rows so every tile in a row matches. */
.dtg-dest__body { display: grid; grid-template-rows: auto minmax(2.4em, auto) auto; align-content: end; gap: .2rem; }
.dtg-dest__label { display: flex; align-items: flex-end; }
@media (max-width: 599.98px) { .dtg-dest__label { min-height: 2.4em; } .dtg-dest__sub { min-height: 2.6em; } }
/* Sections with several text-and-photo pairs: a clear gap between one section's last pair and the next heading. */
.dtg-section + .dtg-section { scroll-margin-top: calc(var(--header-h) + 1rem); }

/* Steps on wide screens: number, title and text centred in each column, the connector running from
   circle to circle — the same centre line as the centred heading and intro above (client, 19 Oct 2026). */
@media (min-width: 960px) {
	.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) .dtg-steps::before { left: calc((100% - 2 * var(--steps-gap)) / 6); right: calc((100% - 2 * var(--steps-gap)) / 6); }
	.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) .dtg-step { justify-items: center; text-align: center; }
	.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) .dtg-step p { margin-inline: auto; }
}
/* Destination tiles: the airport/place code sits on a dark chip, readable over bright skies. */
.dtg-dest__code { justify-self: start; background: rgba(var(--shade), .62); padding: .3rem .5rem .28rem; border-radius: 4px; text-shadow: none; }
/* Hero breadcrumbs stay readable over light parts of a photo. */
.dtg-hero .dtg-breadcrumbs { text-shadow: 0 1px 3px rgba(var(--shade), .85); }
/* Photo credits: the card grid breaks out of the narrow legal reading column to the page's content edges. */
.dtg-main.is-legal { container-type: inline-size; }
@media (min-width: 960px) { .is-legal .dtg-credits { margin-inline: calc((100% - min(var(--max), 100cqw - 2 * var(--gutter))) / 2); } }

/* Hero label stays readable over light or gold parts of a photo. */
.dtg-hero--photo .dtg-hero__eyebrow { text-shadow: 0 1px 3px rgba(var(--shade), .9); }
/* Footer: the legal name sits above the address (client, 19 Oct 2026). */
.dtg-footer .dtg-nap__name { color: var(--white); font-weight: 600; margin: 0 0 .35rem !important; }
/* Short first cells (times, codes) of 2-column tables stay on one line. */
table[data-short-keys] tbody > tr > :first-child { white-space: nowrap; }
/* Reviews before any are embedded: one framed note, not a line under an empty slot. */
.dtg-reviews.is-empty { max-width: 40rem; margin-inline: auto; padding: 1.25rem 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); text-align: center; }
.dtg-reviews.is-empty > p { margin: 0; }
@media (max-width: 959.98px) { .dtg-reviews.is-empty { margin-inline: 0; text-align: left; } }

/* Centred intros fill their (wide) lines; no single word left alone on the last line. */
.dtg-main:not(.is-legal) .dtg-section > .dtg-wrap > :is(p:not([class*="dtg-"]), .dtg-footnote) { text-wrap: pretty; }
/* Closing note: a short text run that ends a section with nothing below it sits in a framed card, centred,
   so it reads as a deliberate note (the compiler wraps it; legal pages excepted). */
.dtg-callout { max-width: 46rem; margin: 2.5rem auto 0; padding: 1.6rem 2rem 1.7rem; background: rgba(var(--shade), .035); border: 1px solid var(--line); border-left: 3px solid var(--copper-600); border-radius: var(--radius); text-align: center; text-wrap: pretty; }
.dtg-wrap > .dtg-callout:first-child { margin-top: 0; }
.dtg-callout > * { max-width: none !important; margin-inline: 0 !important; }
.dtg-callout > * + * { margin-top: .6rem; }
.dtg-callout > :is(h2, h3) { margin-top: 0; }
.dtg-callout .dtg-actions { justify-content: center; margin-top: 1rem; }
.dtg-section.is-dark .dtg-callout { background: rgba(243, 241, 236, .05); border-color: var(--line-dark); border-left-color: var(--copper-300); }
@media (max-width: 959.98px) { .dtg-callout { text-align: left; margin-inline: 0; padding: 1.25rem 1.25rem 1.35rem; } .dtg-callout .dtg-actions { justify-content: flex-start; } }
/* A heading that follows cards, steps or a table inside the same section starts a clearly new block. */
.dtg-section > .dtg-wrap > :is(.dtg-steps, .dtg-grid, .dtg-fleet, .dtg-why, .wp-block-table, .dtg-table-wrap, .dtg-map, .dtg-points) + :is(.dtg-eyebrow, h2, h3) { margin-top: clamp(3rem, 5vw, 4rem); }
/* Centred intros and notes run wide (client, 19 Oct 2026: "stretch these texts … so it looks more professional"):
   about 2 long, even lines across the content instead of a narrow 3-line block. Headings keep their width. */
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > :is(p:not([class*="dtg-"]), .dtg-footnote),
.dtg-main:not(.is-legal) .dtg-section--split > .dtg-wrap > :is(p:not([class*="dtg-"]), .dtg-footnote),
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews > p,
.dtg-main:not(.is-legal) .dtg-section:not(.dtg-section--split) > .dtg-wrap > .dtg-reviews { max-width: 66rem; }
.dtg-callout { max-width: 62rem; }
/* Price box: its text runs all the way to the buttons (no dead gap in the middle of the box). */
.dtg-teaser > div:first-child { flex: 1 1 30rem; max-width: none; }

/* ── Footer (client, 20 Oct 2026): a compact gold-edged card — seal, DT Goods LLC, address, Quote / Call / Email —
   beside the 4 link groups (Vehicles, Services, Locations, Company) in one row; under the groups, one line with
   the social icons on the left and "We accept" with the payment logos on the right. The card's top lines up with
   the group headings and its bottom with the icons line. 960–1279 px: the card runs across the top (seal ·
   details · buttons). Under 960 px: groups 2 × 2, the icons line wraps. Phones: everything stacks. ── */
.dtg-footer .dtg-footer__grid { grid-template-columns: 21rem minmax(0, 1fr); gap: 2.5rem 3rem; align-items: stretch; }
.dtg-footer__card { border: 1px solid rgba(214, 171, 85, .55); border-radius: 14px; padding: 1.75rem 1.5rem; background: rgba(10, 36, 27, .35); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.dtg-footer__card > * { margin: 0 !important; }
.dtg-footer__card .dtg-logo { padding-block: 0; }
.dtg-footer__card .dtg-logo--seal img { width: 130px; } /* client, 20 Oct 2026: seal 25% bigger */
.dtg-footer__card > .dtg-nap { margin-top: .95rem !important; }
.dtg-footer__card .dtg-nap__name { margin: 0 0 .3rem !important; }
.dtg-footer__card .dtg-nap__name strong { font: 600 1.35rem/1.2 var(--serif); }
.dtg-footer__card .dtg-nap { display: flex; flex-direction: column; align-items: center; }
.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) { display: flex; align-items: center; gap: .4rem; margin: 0; text-align: center; }
.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) > svg { flex: none; }
/* Centred card (wide screens and phones): the address is two centred lines under the name; the pin is dropped
   there (the seal and name already say who and where), so nothing hangs off the centre line. */
@media (min-width: 1280px), (max-width: 599.98px) {
	.dtg-footer__card .dtg-nap__addr { display: block; line-height: 1.6; }
	.dtg-footer__card .dtg-nap__addr > svg { display: none; }
}
.dtg-footer__card > .dtg-footer-actions { margin-top: 1.2rem !important; padding-top: 1.2rem; border-top: 1px solid rgba(214, 171, 85, .3); }
.dtg-footer__card > .dtg-licences { margin-top: .9rem !important; font-size: .85rem; }
.dtg-footer-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; width: 100%; }
.dtg-footer-actions > :first-child { grid-column: 1 / -1; }
.dtg-footer-actions .dtg-btn { justify-content: center; min-height: 42px; padding-inline: .9rem; font-size: .9rem; white-space: nowrap; }
.dtg-footer-actions .dtg-btn svg { flex: none; }
.dtg-footer .dtg-footer-actions .dtg-btn--primary { color: var(--ink); }
.dtg-footer .dtg-footer-actions .dtg-btn--outline-light { color: var(--white); }
.dtg-footer .dtg-footer-actions .dtg-btn:hover { text-decoration: none; }

.dtg-footer__main { display: grid; grid-template-rows: 1fr auto; gap: 2rem; min-width: 0; }
.dtg-footer__main > * { margin: 0 !important; }
.dtg-footer__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.25rem 1.75rem; align-items: start; }
.dtg-footer__links > * { margin: 0 !important; }
.dtg-footer__links .dtg-menu-list__title { font: 600 1.2rem/1.25 var(--serif); letter-spacing: 0; text-transform: none; color: var(--white); margin: 0 0 .9rem; padding-bottom: .65rem; border-bottom: 1px solid rgba(243, 241, 236, .14); }
.dtg-footer__links .dtg-menu-list li + li { margin-top: .55rem; }
.dtg-footer__links a { white-space: nowrap; }

.dtg-footer__icons { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem 2rem; padding-top: 1.35rem; border-top: 1px solid rgba(243, 241, 236, .14); }
.dtg-footer__icons > * { margin: 0 !important; }
.dtg-social-row, .dtg-footer__icons .dtg-pay { display: flex; align-items: center; gap: .9rem; }
.dtg-social-row__label, .dtg-pay__label { margin: 0; font: 600 .75rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--on-dark-muted); white-space: nowrap; }
.dtg-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.dtg-social li + li { margin-top: 0; }
.dtg-footer .dtg-social__btn { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid rgba(214, 171, 85, .7); color: var(--copper-300); text-decoration: none; }
.dtg-footer .dtg-social__btn:hover { background: rgba(214, 171, 85, .14); color: var(--white); }
.dtg-footer .dtg-social__btn.is-pending { cursor: default; }
.dtg-pay__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .375rem; }
.dtg-pay__chips li + li { margin-top: 0; }
.dtg-pay__chip { display: block; line-height: 0; border-radius: 4px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
.dtg-pay__chip img { display: block; width: 46px; height: 29px; }

@media (max-width: 1279.98px) {
	.dtg-footer .dtg-footer__grid { grid-template-columns: minmax(0, 1fr); }
	/* Card across the top: seal · name and address · buttons, on one line. */
	.dtg-footer__card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 1.75rem; align-items: center; text-align: left; padding: 1.5rem 1.75rem; }
	.dtg-footer__card > .dtg-nap, .dtg-footer__card > .dtg-licences { margin-top: 0 !important; }
	.dtg-footer__card .dtg-nap { align-items: flex-start; }
	.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) { align-items: flex-start; text-align: left; }
	.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) > svg { margin-top: .2em; }
	.dtg-footer__card > .dtg-footer-actions { margin-top: 0 !important; padding-top: 0; border-top: 0; grid-template-columns: repeat(3, max-content); width: auto; }
	.dtg-footer-actions > :first-child { grid-column: auto; }
	.dtg-footer__card > .dtg-licences { grid-column: 2 / -1; }
}
@media (max-width: 959.98px) {
	.dtg-footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dtg-footer__links a { white-space: normal; }
	.dtg-footer__card { grid-template-columns: auto minmax(0, 1fr); }
	.dtg-footer__card > .dtg-footer-actions { grid-column: 1 / -1; margin-top: 1.1rem !important; }
}
@media (max-width: 599.98px) {
	.dtg-footer__card { display: flex; text-align: center; padding: 1.5rem 1.25rem; }
	.dtg-footer__card > .dtg-nap { margin-top: .9rem !important; }
	.dtg-footer__card .dtg-nap { align-items: center; }
	.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) { align-items: center; text-align: center; }
	.dtg-footer__card .dtg-nap :is(.dtg-nap__addr, .dtg-nap__line) > svg { margin-top: 0; }
	.dtg-footer__card > .dtg-footer-actions { grid-template-columns: 1fr 1fr; width: 100%; margin-top: 1.1rem !important; padding-top: 1.1rem; border-top: 1px solid rgba(214, 171, 85, .3); }
	.dtg-footer__card > .dtg-footer-actions > :first-child { grid-column: 1 / -1; }
	.dtg-footer__icons { flex-direction: column; align-items: flex-start; }
	.dtg-social-row, .dtg-footer__icons .dtg-pay { flex-wrap: wrap; }
}

/* FAQ across the full content width (client, 20 Oct 2026: "too much empty space at right and left"): from 1024 px the
   list spans the page edges, one question per row (client, 23 Oct 2026); the heading and intro stay centred above. */
.dtg-faq__col { display: grid; gap: .75rem; align-content: start; min-width: 0; }
@media (min-width: 1024px) {
	.dtg-section:has(> .dtg-wrap > .dtg-faq.is-wide) > .dtg-wrap { max-width: calc(var(--max) + 2 * var(--gutter)); }
	.dtg-faq.is-wide { max-width: 56rem; } /* centred under the heading (client, 23 Oct 2026: "reduce the size") */
}
/* Compact rows (client, 23 Oct 2026: "too much big size looks ugly, reduce the size so it looks professional"):
   less padding, a smaller number badge, toggle and question type, tighter spacing between rows. */
.dtg-faq.is-wide .dtg-faq__col { gap: .5rem; }
.dtg-faq.is-wide .dtg-faq__item { border-radius: 10px; }
.dtg-faq.is-wide .dtg-faq__item summary { grid-template-columns: 1.9rem minmax(0, 1fr) auto; gap: .75rem; padding: .6rem 1rem; }
.dtg-faq.is-wide .dtg-faq__item summary::before { width: 1.9rem; height: 1.9rem; font-size: .74rem; }
.dtg-faq.is-wide .dtg-faq__q { font-size: 1rem !important; }
.dtg-faq.is-wide .dtg-faq__icon { width: 26px; height: 26px; padding: 5px; }
@media (min-width: 600px) { .dtg-faq.is-wide .dtg-faq__a { padding: 0 1.25rem 1.1rem calc(1rem + 1.9rem + .75rem); } }

/* Footer card contact (client, 20 Oct 2026): address on one line; phone and email as centred lines with gold icons;
   then a single Get a Quote button with room around it. */
.dtg-footer__card .dtg-nap__addr { white-space: nowrap; }
.dtg-footer-actions { display: flex !important; flex-direction: column; align-items: stretch; gap: 1.15rem; width: 100%; }
.dtg-footer-contact { list-style: none; margin: 0 auto; padding: 0; display: grid; gap: .6rem; justify-items: start; width: fit-content; } /* icons in one column, the block centred */
.dtg-footer-contact li { display: flex; align-items: center; gap: .55rem; margin: 0; font-size: 1rem; }
.dtg-footer-contact svg { flex: none; color: var(--copper-300); }
.dtg-footer .dtg-footer-contact a { color: var(--white); }
.dtg-footer .dtg-footer-contact a:hover { color: var(--copper-300); }
.dtg-footer-actions > .dtg-btn { justify-content: center; min-height: 48px; font-size: 1rem; }
@media (max-width: 1279.98px) and (min-width: 600px) {
	.dtg-footer__card > .dtg-footer-actions { flex-direction: row; align-items: center; gap: 1.5rem; width: auto; }
	.dtg-footer-contact { margin: 0; }
	.dtg-footer-actions > .dtg-btn { padding-inline: 1.75rem; }
}
@media (max-width: 959.98px) and (min-width: 600px) { .dtg-footer__card > .dtg-footer-actions { justify-content: space-between; } }

/* Footer contact lines (client, 20 Oct 2026): icon · "Call Us" / "Email Us" · number / email, the three parts in
   aligned columns; the block is centred in the card. */
.dtg-footer-contact { display: grid !important; grid-template-columns: 18px auto auto; gap: .65rem .5rem; width: fit-content; max-width: 100%; font-size: .95rem; }
.dtg-footer-contact li { display: contents; }
.dtg-footer-contact li > a { display: contents; color: inherit; }
.dtg-footer-contact svg { align-self: center; width: 18px; height: 18px; min-width: 18px; color: var(--copper-300); }
.dtg-footer-contact__label { align-self: center; font-weight: 600; color: var(--white); white-space: nowrap; }
.dtg-footer-contact__value { align-self: center; color: var(--on-dark-muted); white-space: nowrap; text-align: left; }
.dtg-footer .dtg-footer-contact a:hover .dtg-footer-contact__value { color: var(--copper-300); text-decoration: underline; }

/* County cards (client, 20 Oct 2026: "a lot of spaces in this section"): 3 per row on desktop, 2 on tablets,
   1 on phones; county name in serif with a gold rule, trips below. */
.dtg-points.is-cards { counter-reset: none; border-top: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.dtg-points.is-cards .dtg-point { display: block; padding: 1.25rem 1.4rem 1.35rem; background: var(--white); border: 1px solid var(--line); border-radius: 12px; }
.dtg-points.is-cards .dtg-point::before { content: none; }
.dtg-points.is-cards .dtg-point h3 { font-size: 1.2rem; padding-bottom: .55rem; margin-bottom: .6rem !important; border-bottom: 2px solid var(--gold); width: fit-content; }
.dtg-points.is-cards .dtg-point p { margin-top: 0; }
@media (max-width: 959.98px) { .dtg-points.is-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599.98px) { .dtg-points.is-cards { grid-template-columns: 1fr; } }
/* Closing note under a grid: as wide as the grid above it; a short list runs as one centred row of items. */
.dtg-section > .dtg-wrap > .dtg-points + .dtg-callout { max-width: none; margin-top: 1.75rem; }
.dtg-callout > ul:not([class*="dtg-"]) { list-style: none; padding: 0; margin-top: 1rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 2.25rem; width: auto !important; }
.dtg-callout > ul:not([class*="dtg-"]) li { margin: 0; position: relative; padding-left: 1.15rem; }
.dtg-callout > ul:not([class*="dtg-"]) li::before { content: ""; position: absolute; left: 0; top: .62em; width: 7px; height: 7px; background: var(--gold); transform: rotate(45deg); }
@media (max-width: 959.98px) {
	.dtg-callout > ul:not([class*="dtg-"]) { flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* Social icons as plain marks (client, 20 Oct 2026 screenshot): no circles, evenly spaced, gold → white on hover. */
.dtg-footer .dtg-social { gap: 1.15rem; align-items: center; }
.dtg-footer .dtg-social__btn { width: auto; height: auto; min-width: 24px; min-height: 24px; border: 0; border-radius: 0; background: none; padding: 0; color: var(--copper-300); display: inline-grid; place-items: center; }
.dtg-footer .dtg-social__btn:hover { background: none; color: var(--white); }
.dtg-footer .dtg-social__btn svg { display: block; }
/* Developer credit in the copyright line. */
.dtg-legal-line .dtg-credit-link { color: var(--copper-300); text-decoration: underline; text-decoration-color: rgba(224, 167, 126, .55); text-underline-offset: 3px; }
.dtg-legal-line .dtg-credit-link:hover { color: var(--white); text-decoration-color: currentColor; }
/* One line on wide screens: Follow DT Goods + 7 icons, then We accept + payment logos (client instruction). */
@media (min-width: 1280px) {
	.dtg-footer__icons { flex-wrap: nowrap; gap: 1rem 1.5rem; }
	.dtg-footer__icons .dtg-social { gap: .95rem; flex-wrap: nowrap; }
	.dtg-footer__icons .dtg-social-row, .dtg-footer__icons .dtg-pay { gap: .75rem; flex-wrap: nowrap; }
	.dtg-footer__icons .dtg-pay__chips { gap: .3rem; flex-wrap: nowrap; }
	.dtg-footer__icons .dtg-pay__chip img { width: 42px; height: 27px; }
}
/* Hero with the quote card (client, 20 Oct 2026: "text and right side form need to be aligned"): on wide screens the
   text column runs the card's full height — the label starts level with "QUICK QUOTE" (card border + top padding),
   the buttons end level with "Get My Quote" (card bottom padding); spare height is shared above and below the intro. */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__grid { align-items: stretch; }
	.dtg-hero.has-quote .dtg-hero__quote { align-self: start; }
	.dtg-hero.has-quote .dtg-hero__copy { display: flex; flex-direction: column; padding-top: calc(4px + 1.5rem); padding-bottom: 1.6rem; }
	.dtg-hero.has-quote .dtg-hero__eyebrow { margin-top: -.2em; }
	.dtg-hero.has-quote .dtg-hero__intro { margin-top: auto; padding-top: 1.4rem; }
	.dtg-hero.has-quote .dtg-hero__actions { margin-top: auto; padding-top: 2rem; }
}
/* Quote card, smaller (client, 20 Oct 2026: "this size need to be reduced"): narrower card, slimmer fields and
   tighter spacing on wide screens; phones keep 44 px fields for easy tapping. */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(19rem, 21.5rem); }
	.dtg-hero__quote .dtg-quote--strip { padding: 1.25rem 1.25rem 1.35rem; }
	.dtg-hero__quote .dtg-quote__title { font-size: 1.25rem; margin-bottom: .85rem; }
	.dtg-hero__quote .dtg-quote__title span { font-size: .6875rem; margin-bottom: .45rem; }
	.dtg-hero__quote .dtg-quote__row { gap: .6rem .6rem; }
	.dtg-hero__quote .dtg-field { gap: .25rem; }
	.dtg-hero__quote .dtg-field label { font-size: .78rem; }
	.dtg-hero__quote .dtg-field input, .dtg-hero__quote .dtg-field select { min-height: 40px; padding-block: .45rem; font-size: .9375rem; }
	.dtg-hero__quote .dtg-quote__submit .dtg-btn { min-height: 44px; margin-top: .15rem; }
	/* the text column follows the smaller card's padding */
	.dtg-hero.has-quote .dtg-hero__copy { padding-top: calc(4px + 1.25rem); padding-bottom: 1.35rem; }
}
/* When the hero text is taller than the card, the card grows to match and shares the extra space between its rows,
   so the label and the buttons stay level with the card's first line and its button on every page. */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__quote { align-self: stretch; }
	.dtg-hero__quote .dtg-quote--strip { height: 100%; display: flex; flex-direction: column; }
	.dtg-hero__quote .dtg-quote--strip > .dtg-quote__row { flex: 1; align-content: space-between; }
	.dtg-hero.has-quote .dtg-hero__intro { padding-top: 1.1rem; }
	.dtg-hero.has-quote .dtg-hero__actions { padding-top: 1.5rem; }
}
/* Compact quote card (client, 20 Oct 2026: "reduce the size of form … for all pages"; chose "top edges level"): from
   1080 px the card keeps its own height — Pickup and Drop-off side by side, so one row shorter — and its top stays level
   with the text: "QUICK QUOTE" beside the gold label. The text keeps its natural spacing (no stretching either side). */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__grid { align-items: start; }
	.dtg-hero.has-quote .dtg-hero__quote { align-self: start; }
	.dtg-hero__quote .dtg-quote--strip { height: auto; }
	.dtg-hero__quote .dtg-quote--strip > .dtg-quote__row { flex: none; align-content: start; }
	.dtg-hero__quote :is(.dtg-field--pickup-address, .dtg-field--dropoff-address) { grid-column: auto; }
	.dtg-hero__quote .dtg-field--passengers { grid-column: 1 / -1; }
	.dtg-hero.has-quote .dtg-hero__copy { padding-bottom: 0; }
	.dtg-hero.has-quote .dtg-hero__intro { margin-top: 0; padding-top: 1.4rem; }
	.dtg-hero.has-quote .dtg-hero__actions { margin-top: 0; padding-top: 2.25rem; }
}
/* Hero with the compact card, both edges level (client, 20 Oct 2026: "it need alignment"): on wide screens the hero
   text is set a little smaller so it is about as tall as the card, then both columns share one height — the gold label
   level with "QUICK QUOTE", the buttons level with "Get My Quote"; whichever side is shorter spreads its spare space
   (text: around the intro; card: between its rows). Card corners rounder. */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__title { font-size: clamp(2rem, 1.45rem + 1.25vw, 2.625rem); }
	.dtg-hero.has-quote .dtg-hero__eyebrow { margin-bottom: .8rem; }
	.dtg-hero.has-quote .dtg-hero__intro { font-size: 1.125rem; max-width: 44rem; }
	.dtg-hero.has-quote .dtg-hero__grid { align-items: stretch; }
	.dtg-hero.has-quote .dtg-hero__quote { align-self: stretch; }
	.dtg-hero__quote .dtg-quote--strip { height: 100%; }
	.dtg-hero__quote .dtg-quote--strip > .dtg-quote__row { flex: 1; align-content: space-between; }
	.dtg-hero.has-quote .dtg-hero__copy { padding-bottom: 1.35rem; }
	.dtg-hero.has-quote .dtg-hero__intro { margin-top: auto; padding-top: 1rem; }
	.dtg-hero.has-quote .dtg-hero__actions { margin-top: auto; padding-top: 1.5rem; }
}
.dtg-hero__quote .dtg-quote--strip { border-radius: 16px; border-top: 0; position: relative; overflow: hidden; }
.dtg-hero__quote .dtg-quote--strip::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--copper-600); }
/* The card's outer edges line up with the text block itself (client: "should be a little below"): card top level
   with the top of the gold label, card bottom level with the bottom of the buttons. */
@media (min-width: 1080px) {
	.dtg-hero.has-quote .dtg-hero__copy { padding-top: 0; padding-bottom: 0; }
}
