/* Elite Luxury Transports — shared marketing site stylesheet
Same plain-CSS approach as book.css: CSS custom properties at :root,
no build step, mobile-responsive via max-width media queries.
Brand colors/fonts below were read live from eliteluxurytransports.com
(header/footer background, button background, link/body text colors). */

:root {
--r-border: #e5e5e5;
--r-muted: #747474;
--r-gold: #a3844d;
--r-ink: #111;
--r-bg: #fff;
--r-bg-soft: #fafafa;
--r-danger: #b3261e;
--r-danger-bg: #fdecea;
--r-radius: 4px;

/* Marketing-site-specific tokens, matched to the live site */
--r-black: #000;
--r-nav-link: #444;
--r-footer-bg: #000;
--r-footer-ink: #fff;
--r-footer-muted: #9a9a9a;
--r-footer-link: #ffffff;
--r-footer-link-muted: #b9b9b9;
--r-heading-ink: #333;
--r-max: 1200px;
}

* { box-sizing: border-box; }

html, body {
margin: 0;
padding: 0;
background: var(--r-bg);
color: var(--r-ink);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
line-height: 1.6;
}

img { max-width: 100%; display: block; }

a { color: var(--r-gold); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
color: var(--r-heading-ink);
line-height: 1.25;
margin: 0 0 16px;
font-weight: 700;
}
h1 { font-size: 36px; }
h2 { font-size: 27px; margin-top: 48px; }
h3 { font-size: 19px; }
p { margin: 0 0 16px; }

.container {
max-width: var(--r-max);
margin: 0 auto;
padding: 0 24px;
}

/* ---------- Buttons ---------- */
.btn {
display: inline-block;
appearance: none;
border: 1px solid var(--r-black);
border-radius: var(--r-radius);
padding: 12px 24px;
font-size: 14.5px;
font-weight: 600;
letter-spacing: 0.02em;
cursor: pointer;
font-family: inherit;
text-decoration: none;
}
.btn-primary {
background: var(--r-black);
color: #fff;
border-color: var(--r-black);
}
.btn-primary:hover { background: #262626; border-color: #262626; text-decoration: none; }
.btn-outline {
background: transparent;
color: var(--r-ink);
border-color: var(--r-border);
}
.btn-outline:hover { border-color: var(--r-muted); text-decoration: none; }
.btn-gold {
background: var(--r-gold);
color: #fff;
border-color: var(--r-gold);
}
.btn-gold:hover { background: #8f7241; border-color: #8f7241; text-decoration: none; }
.btn-ghost {
background: transparent;
color: var(--r-ink);
border-color: var(--r-black);
}
.btn-ghost:hover { background: var(--r-bg-soft); text-decoration: none; }

/* ---------- Site header / nav ---------- */
.site-header {
border-bottom: 1px solid var(--r-border);
background: var(--r-bg);
position: relative;
z-index: 50;
}
.site-header-inner {
max-width: var(--r-max);
margin: 0 auto;
padding: 22px 24px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
}
.site-logo {
display: flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
}
.site-logo img { height: 34px; width: auto; }
/* The logo artwork already carries the full company name in small type
beneath the mark, so the separate bold wordmark next to it (Concept A's
header has no such duplicate) is hidden for a cleaner, less cluttered
header — a CSS-only change, so it applies to every page automatically. */
.site-logo-text { display: none; }

.site-nav {
display: flex;
align-items: center;
gap: 10px;
flex: 1;
justify-content: center;
}
.site-nav ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
align-items: center;
gap: 10px;
}
.site-nav > ul > li { position: relative; }
.site-nav a.nav-link {
display: inline-block;
padding: 10px 12px;
color: var(--r-nav-link);
font-size: 14px;
font-weight: 500;
}
.site-nav a.nav-link:hover { color: var(--r-ink); text-decoration: none; }
.site-nav .nav-current > a.nav-link {
color: var(--r-ink);
border-bottom: 2px solid var(--r-ink);
}

.has-dropdown > a.nav-link::after {
content: "▾";
font-size: 10px;
margin-left: 4px;
color: var(--r-muted);
}
/* Selector is ".has-dropdown .dropdown" (not just ".dropdown") so this
default-hidden rule (specificity 0,2,0) reliably beats ".site-nav ul {
display: flex }" (specificity 0,1,1) — using ".dropdown" alone here lost
that specificity fight and the submenus rendered open on every page load. */
.has-dropdown .dropdown {
display: none;
position: absolute;
top: 100%;
left: 0;
min-width: 260px;
background: var(--r-bg);
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
box-shadow: 0 8px 24px rgba(0,0,0,0.08);
padding: 6px;
z-index: 60;
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown {
display: block;
}
.dropdown li { list-style: none; }
.dropdown a {
display: block;
padding: 10px 12px;
border-radius: var(--r-radius);
color: var(--r-ink);
font-size: 14px;
white-space: nowrap;
}
.dropdown a:hover { background: var(--r-bg-soft); text-decoration: none; }

.site-header-cta { flex-shrink: 0; }

/* Mobile nav toggle (progressive enhancement — no JS required to view links,
checkbox-driven disclosure) */
.nav-toggle { display: none; }
.nav-toggle-label { display: none; }
/* Hidden by default on all viewports; the max-width:480px media query below
is what reveals the toggle label and, when checked, this menu itself. */
.site-nav-mobile { display: none; }

/* ---------- Hero ---------- */
.hero {
position: relative;
background: var(--r-bg-soft);
border-bottom: 1px solid var(--r-border);
}
.hero-image {
width: 100%;
height: 420px;
object-fit: cover;
display: block;
}
.hero-title-bar {
padding: 40px 24px 24px;
max-width: var(--r-max);
margin: 0 auto;
}
.hero-title-bar h1 { margin: 0; font-size: 34px; }
.hero-caption {
position: absolute;
left: 0;
bottom: 28px;
max-width: 460px;
margin-left: max(24px, calc((100% - var(--r-max)) / 2 + 24px));
color: #fff;
font-size: 15px;
line-height: 1.5;
text-shadow: 0 1px 4px rgba(0,0,0,0.6);
}

.page-lead {
padding: 44px 24px 8px;
max-width: var(--r-max);
margin: 0 auto;
}
.page-lead h1 { margin-bottom: 12px; }
.page-lead p { color: var(--r-muted); font-size: 17px; max-width: 780px; }
.page-lead .cta-row { margin-top: 20px; display: flex; gap: 12px; flex-wrap: wrap; }

/* ---------- Sections ---------- */
.section {
padding: 48px 24px;
max-width: var(--r-max);
margin: 0 auto;
}
.section-soft { background: var(--r-bg-soft); }
.section-soft > .section { padding-left: 0; padding-right: 0; }
.section-dark {
background: var(--r-black);
color: #eaeaea;
}
.section-dark h2, .section-dark h3 { color: #fff; }
.section-dark p { color: #cfcfcf; }
.section-intro { max-width: 820px; margin: 0 0 32px; }
.section-intro p { color: var(--r-muted); font-size: 16px; }

.grid {
display: grid;
gap: 24px;
grid-template-columns: repeat(2, 1fr);
}
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

.card {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 24px;
background: var(--r-bg);
}
.card img { border-radius: var(--r-radius); margin-bottom: 16px; height: 190px; width: 100%; object-fit: cover; }
.card h3 { margin-bottom: 8px; }
.card p { color: var(--r-muted); font-size: 14.5px; margin-bottom: 12px; }

.fleet-card { text-align: center; }
.fleet-card img {
display: block;
width: 100%;
height: 150px;
object-fit: contain;
object-position: center;
background: var(--r-bg-soft);
border-radius: var(--r-radius);
margin: 0 0 14px;
}
.fleet-card .price { color: var(--r-gold); font-weight: 700; font-size: 15px; margin: 10px 0; }

.feature-list {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: 20px;
grid-template-columns: repeat(2, 1fr);
}
.feature-list li {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 20px;
}
.feature-list h3 { font-size: 17px; margin-bottom: 6px; }
.feature-list p { color: var(--r-muted); font-size: 14.5px; margin: 0; }

.credentials-strip {
display: flex;
gap: 40px;
flex-wrap: wrap;
align-items: center;
justify-content: center;
padding: 32px 24px;
border-top: 1px solid var(--r-border);
border-bottom: 1px solid var(--r-border);
}
.credentials-strip img { height: 56px; width: auto; object-fit: contain; }

/* FAQ accordion (native <details>) */
.faq, .faq-list { max-width: 820px; margin: 0 auto; }
.faq details, .faq-item {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 14px 18px;
margin-bottom: 10px;
}
.faq summary, .faq-item summary {
cursor: pointer;
font-weight: 600;
font-size: 15.5px;
color: var(--r-ink);
list-style: none;
}
.faq summary::-webkit-details-marker,
.faq-item summary::-webkit-details-marker { display: none; }
.faq summary::after, .faq-item summary::after {
content: "+";
float: right;
color: var(--r-gold);
font-weight: 700;
}
.faq details[open] summary::after,
.faq-item[open] summary::after { content: "−"; }
.faq p, .faq-item p { margin: 12px 0 0; color: var(--r-muted); font-size: 14.5px; }
.faq-section { text-align: center; }
.faq-section h2 { text-align: left; }

/* ---------- Interior page hero (used on Our Fleet, Contact, Airports,
Area/Airport landing pages — a compact dark banner + CTAs, distinct
from the homepage's full-bleed photo .hero) ---------- */
.page-hero {
background: var(--r-black);
color: #fff;
text-align: center;
padding: 56px 24px;
}
.page-hero h1 { color: #fff; margin-bottom: 20px; }
.page-hero-ctas {
display: flex;
gap: 12px;
justify-content: center;
flex-wrap: wrap;
}
.page-hero .btn-ghost { color: #fff; border-color: #555; }
.page-hero .btn-ghost:hover { background: rgba(255,255,255,0.08); }

/* Generic content block used by every interior page below its hero */
.content-section {
padding: 48px 24px;
max-width: var(--r-max);
margin: 0 auto;
}

/* Icon/benefit tiles (area & airport landing pages) and the Our Fleet
vehicle cards share this grid; .fleet-grid narrows the columns for the
larger, image-led fleet cards. */
.feature-grid {
display: grid;
gap: 24px;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
margin: 24px 0;
}
.fleet-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

.feature-card {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 24px;
background: var(--r-bg);
}
.feature-card h3 { margin-bottom: 8px; }
.feature-card p { color: var(--r-muted); font-size: 14.5px; margin-bottom: 0; }
.feature-card ul {
list-style: none;
margin: 12px 0;
padding: 0;
color: var(--r-muted);
font-size: 14.5px;
}
.feature-card ul li { padding: 3px 0; }
.feature-card .btn { margin: 6px 6px 0 0; }

.fleet-vehicle { color: var(--r-gold); font-weight: 600; font-size: 14px; margin: 2px 0 12px; }
.fleet-footnote {
max-width: 820px;
margin: 32px auto 0;
text-align: center;
color: var(--r-muted);
font-size: 14px;
}

/* Airports overview grid */
.card-grid {
display: grid;
gap: 24px;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
margin: 24px 0;
}
.airport-card {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 24px;
text-align: center;
background: var(--r-bg);
}
.airport-card img {
height: 140px;
width: 100%;
object-fit: cover;
border-radius: var(--r-radius);
margin-bottom: 16px;
background: var(--r-bg-soft);
}
.airport-card h2 { font-size: 22px; margin-bottom: 4px; }
.airport-card p { color: var(--r-muted); font-size: 14.5px; }
.airport-card .btn { margin: 6px 6px 0 0; }

/* Simple bullet list + rate table footnote (area landing pages) */
.plain-list { margin: 0 0 16px; padding-left: 22px; }
.plain-list li { margin-bottom: 8px; }
.rate-note { color: var(--r-muted); font-size: 14px; margin: -8px 0 16px; }

/* Contact page: two-column form + info layout */
.contact-layout {
display: grid;
grid-template-columns: 1.3fr 1fr;
gap: 40px;
align-items: start;
}
.contact-form-col h2, .contact-info-col h2 { font-size: 20px; margin-top: 0; }
.contact-info-col h2:not(:first-child) { margin-top: 28px; }
.contact-secondary-links { font-size: 14px; margin-top: 16px; }
.contact-map {
margin-top: 20px;
height: 220px;
border-radius: var(--r-radius);
background: var(--r-bg-soft);
border: 1px solid var(--r-border);
}

/* Rates tables */
.rates-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0 32px;
font-size: 14.5px;
}
.rates-table th, .rates-table td {
border: 1px solid var(--r-border);
padding: 10px 14px;
text-align: left;
}
.rates-table th {
background: var(--r-bg-soft);
font-weight: 700;
color: var(--r-ink);
}

/* CTA banner */
.cta-banner {
background: var(--r-black);
color: #fff;
border-radius: var(--r-radius);
padding: 40px 32px;
text-align: center;
margin: 16px 0 48px;
}
.cta-banner h2 { color: #fff; margin-top: 0; }
.cta-banner p { color: #cfcfcf; max-width: 640px; margin: 0 auto 20px; }

/* ---------- Contact form ---------- */
.contact-form { max-width: 620px; }
.form-field { margin-bottom: 16px; }
.form-field label {
display: block;
font-size: 12.5px;
font-weight: 600;
color: var(--r-ink);
margin-bottom: 6px;
}
.form-field input,
.form-field select,
.form-field textarea {
width: 100%;
padding: 11px 12px;
font-size: 15px;
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
background: var(--r-bg);
color: var(--r-ink);
font-family: inherit;
}
.form-field textarea { resize: vertical; min-height: 110px; }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
outline: none;
border-color: var(--r-gold);
}
.form-row { display: flex; gap: 14px; }
.form-row .form-field { flex: 1; min-width: 0; }

/* ---------- Footer ---------- */
.site-footer {
background: var(--r-footer-bg);
color: var(--r-footer-muted);
padding: 48px 24px 20px;
}
.site-footer-inner {
max-width: var(--r-max);
margin: 0 auto;
}
.site-footer-top {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
padding-bottom: 32px;
}
.site-footer h4 {
color: var(--r-footer-ink);
font-size: 14px;
letter-spacing: 0.04em;
text-transform: uppercase;
margin-bottom: 14px;
}
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin-bottom: 10px; }
.site-footer a {
color: var(--r-footer-link-muted);
font-size: 14.5px;
}
.site-footer a:hover { color: var(--r-footer-link); text-decoration: none; }
.site-footer address { font-style: normal; color: var(--r-footer-link-muted); font-size: 14.5px; line-height: 1.7; }
.footer-social { display: flex; gap: 12px; margin-top: 16px; }
.footer-social a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border: 1px solid #333;
border-radius: 50%;
color: var(--r-footer-link-muted);
font-size: 13px;
}
.footer-social a:hover { color: #fff; border-color: #555; text-decoration: none; }
.site-footer-bottom {
border-top: 1px solid #222;
padding-top: 18px;
text-align: center;
font-size: 12.5px;
color: #7a7a7a;
}

/* ---------- Legal pages ---------- */
.legal-content {
max-width: 820px;
line-height: 1.75;
}
.legal-updated {
color: var(--r-muted);
font-size: 14.5px;
margin-bottom: 32px;
}
.legal-content h2 {
font-size: 21px;
margin-top: 40px;
padding-bottom: 8px;
border-bottom: 1px solid var(--r-border);
}
.legal-content h2:first-of-type { margin-top: 0; }
.legal-content p { color: var(--r-ink); }
.legal-content ul,
.legal-content ol {
margin: 0 0 16px;
padding-left: 22px;
}
.legal-content li { margin-bottom: 8px; }
.legal-content ol { list-style: lower-alpha; }
.legal-content a { word-break: break-word; }
.legal-contact-box {
background: var(--r-bg-soft);
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
padding: 20px 24px;
margin-top: 8px;
}
.legal-contact-box p { margin-bottom: 6px; }

/* Blog */
.blog-grid {
display: grid;
gap: 24px;
grid-template-columns: repeat(3, 1fr);
}
.blog-card {
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
background: var(--r-bg);
display: flex;
flex-direction: column;
}
.blog-card-body { padding: 22px; }
.blog-card-date {
color: var(--r-gold);
font-size: 12.5px;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
margin: 0 0 8px;
}
.blog-card h3 { margin: 0 0 10px; font-size: 18px; }
.blog-card h3 a { color: var(--r-ink); }
.blog-card h3 a:hover { color: var(--r-gold); text-decoration: none; }
.blog-card-excerpt { color: var(--r-muted); font-size: 14.5px; margin-bottom: 14px; }
.blog-card-link { font-size: 14px; font-weight: 600; }

.blog-post-meta {
color: var(--r-muted);
font-size: 13.5px;
text-transform: uppercase;
letter-spacing: 0.04em;
margin-bottom: 10px;
}
.blog-post-lead h1 { max-width: 900px; }
.blog-post-body { max-width: 780px; }
.blog-post-hero-img {
width: 100%;
height: 320px;
object-fit: cover;
border-radius: var(--r-radius);
background: var(--r-bg-soft);
margin-bottom: 24px;
}
.blog-post-body h2 { font-size: 24px; }
.blog-post-body h3 { font-size: 18px; margin-top: 32px; }
.blog-post-body ul { padding-left: 22px; margin-bottom: 16px; }
.blog-post-body li { margin-bottom: 8px; color: var(--r-ink); }
.blog-post-back { margin-top: 32px; font-weight: 600; }

/* ---------- Homepage (tightened, contained-width layout) ---------- */
.home-hero { border-bottom: 1px solid var(--r-border); }
.home-hero-inner {
max-width: var(--r-max);
margin: 0 auto;
padding: 44px 24px;
display: grid;
grid-template-columns: 1.05fr 1fr;
gap: 36px;
align-items: center;
}
.home-hero-copy { display: flex; flex-direction: column; justify-content: center; gap: 14px; }
.home-hero-eyebrow {
font-size: 12.5px;
letter-spacing: .08em;
color: var(--r-gold);
font-weight: 700;
text-transform: uppercase;
}
.home-hero-copy h1 { font-size: 34px; margin: 0; line-height: 1.16; }
.home-hero-copy p { color: var(--r-muted); font-size: 15.5px; max-width: 420px; margin: 0; }
.home-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.home-hero-media {
border-radius: var(--r-radius);
overflow: hidden;
height: 320px;
background: var(--r-bg-soft);
border: 1px solid var(--r-border);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.home-hero-media img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }

/* Trust stats bar */
.home-trust-bar { background: var(--r-ink); border-bottom: 1px solid var(--r-border); }
.home-trust-bar-inner {
max-width: var(--r-max);
margin: 0 auto;
padding: 24px 24px;
display: grid;
grid-template-columns: repeat(4, 1fr);
}
.home-trust-stat { text-align: center; padding: 0 12px; border-right: 1px solid rgba(255,255,255,0.18); }
.home-trust-stat:last-child { border-right: none; }
.home-trust-stat .stat-num { font-size: 20px; font-weight: 700; color: var(--r-gold); }
.home-trust-stat .stat-label { font-size: 12px; color: #cfcfcf; margin-top: 3px; }

/* Services (swapped in from Concept A) */
.home-services { padding: 48px 0; }
.home-services-inner { max-width: var(--r-max); margin: 0 auto; padding: 0 24px; }
.home-section-head { text-align: center; max-width: 620px; margin: 0 auto 28px; }
.home-section-head h2 { margin: 6px 0 0; }
.home-section-head-row { text-align: left; max-width: none; margin: 0 0 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.home-section-head-row h2 { margin-top: 4px; }
.home-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.home-service-card { border: 1px solid var(--r-border); border-radius: var(--r-radius); padding: 22px; }
.home-service-icon { width: 36px; height: 36px; border-radius: 50%; background: var(--r-bg-soft); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.home-service-card h3 { font-size: 16.5px; margin-bottom: 6px; }
.home-service-card p { color: var(--r-muted); font-size: 13.5px; margin: 0; }

/* Fleet preview — compact cards, swapped in from Concept A (replaces the
old full-bleed alternating rows so images stay a fixed, aligned size) */
.home-fleet-preview { background: var(--r-bg-soft); padding: 48px 0; }
.home-fleet-preview-inner { max-width: var(--r-max); margin: 0 auto; padding: 0 24px; }
.home-view-link { font-size: 13.5px; font-weight: 600; color: var(--r-ink); border-bottom: 1px solid var(--r-ink); padding-bottom: 2px; white-space: nowrap; }
.home-view-link:hover { text-decoration: none; color: var(--r-gold); border-color: var(--r-gold); }
.home-fleet-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.home-fleet-card { background: var(--r-bg); border: 1px solid var(--r-border); border-radius: var(--r-radius); overflow: hidden; }
.home-fleet-card-media {
height: 240px;
background: var(--r-bg-soft);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.home-fleet-card-media img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.home-fleet-card-body { padding: 18px 20px 20px; }
.home-fleet-card-body h3 { font-size: 16.5px; margin-bottom: 4px; }
.home-fleet-card-model { color: var(--r-gold); font-size: 13px; font-weight: 700; }
.home-fleet-card-cap { color: var(--r-muted); font-size: 12.5px; margin-top: 4px; }

.home-stats { background: var(--r-ink); padding: 36px 0; }
.home-stats-inner {
max-width: var(--r-max);
margin: 0 auto;
padding: 0 24px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
}
.home-stats .stat-num { font-size: 26px; font-weight: 700; color: var(--r-gold); }
.home-stats .stat-label { font-size: 12.5px; color: #cfcfcf; margin-top: 4px; }

.home-testimonials { padding: 48px 0; }
.home-testimonials-inner { max-width: var(--r-max); margin: 0 auto; padding: 0 24px; }
.home-testimonials h2 { text-align: center; margin-bottom: 6px; }
.testimonial-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 28px; }
.testimonial-card { border: 1px solid var(--r-border); border-radius: var(--r-radius); padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.testimonial-card .stars { color: var(--r-gold); font-size: 14px; }
.testimonial-card p { margin: 0; font-size: 14px; color: var(--r-ink); }
.testimonial-card .attribution { font-size: 12.5px; color: var(--r-muted); font-weight: 600; }

.home-cta-band { background: var(--r-bg-soft); padding: 44px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.home-cta-band h2 { margin: 0; max-width: 560px; }
.home-cta-band .cta-row { margin-top: 2px; }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
.grid, .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); }
.feature-list { grid-template-columns: 1fr; }
.site-footer-top { grid-template-columns: 1fr 1fr; gap: 28px; }
.hero-image { height: 280px; }
.blog-grid { grid-template-columns: repeat(2, 1fr); }
.contact-layout { grid-template-columns: 1fr; gap: 32px; }
h1 { font-size: 28px; }
h2 { font-size: 22px; }
.home-hero-inner { grid-template-columns: 1fr; padding: 32px 24px; }
.home-hero-media { height: 260px; order: -1; }
.home-trust-bar-inner { grid-template-columns: repeat(2, 1fr); gap: 18px 0; }
.home-trust-stat:nth-child(2) { border-right: none; }
.home-services-grid { grid-template-columns: 1fr; }
.home-fleet-grid { grid-template-columns: 1fr; }
.home-stats-inner { grid-template-columns: repeat(2, 1fr); }
.testimonial-cards { grid-template-columns: 1fr; }
.home-cta-band { padding: 40px 24px; }
}

@media (max-width: 480px) {
.site-nav { display: none; } /* nav collapses; site-header-mobile-note below */
.nav-toggle-label {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border: 1px solid var(--r-border);
border-radius: var(--r-radius);
cursor: pointer;
font-size: 18px;
}
.nav-toggle:checked ~ .site-nav-mobile { display: block; }
.site-nav-mobile {
display: none;
width: 100%;
order: 3;
border-top: 1px solid var(--r-border);
padding: 12px 0;
}
.site-nav-mobile ul { list-style: none; margin: 0; padding: 0; }
.site-nav-mobile a { display: block; padding: 10px 4px; color: var(--r-nav-link); font-size: 15px; }
.site-nav-mobile .dropdown-mobile { padding-left: 14px; }
.site-header-inner { flex-wrap: wrap; }
.grid, .grid-3, .grid-4 { grid-template-columns: 1fr; }
.form-row { flex-direction: column; gap: 0; }
.site-footer-top { grid-template-columns: 1fr; }
.credentials-strip { gap: 24px; }
.blog-grid { grid-template-columns: 1fr; }
.blog-post-hero-img { height: 200px; }
.hero-caption { position: static; color: var(--r-ink); text-shadow: none; margin: 16px 24px 0; }
.page-lead { padding: 28px 20px 4px; }
.section { padding: 32px 20px; }
.page-hero { padding: 40px 20px; }
.content-section { padding: 32px 20px; }
.feature-grid, .card-grid { grid-template-columns: 1fr; }
h1 { font-size: 24px; }
h2 { font-size: 20px; margin-top: 32px; }
.home-hero-copy h1 { font-size: 28px; }
.home-hero-inner, .home-trust-bar-inner, .home-services-inner, .home-fleet-preview-inner, .home-testimonials-inner, .home-stats-inner { padding-left: 20px; padding-right: 20px; }
.home-trust-bar-inner { grid-template-columns: 1fr 1fr; }
.home-stats-inner { grid-template-columns: 1fr 1fr; }
.home-cta-band { padding: 32px 20px; }
}

/* Shared header: identical links and unbroken labels on every page. */
.site-header-inner { max-width: 1480px; gap: 24px; }
.site-nav > ul { flex-wrap: nowrap; }
.site-nav > ul > li { flex-shrink: 0; }
.site-nav a.nav-link, .site-header-cta .btn { white-space: nowrap; }
.site-header-cta { display: flex; align-items: center; }
/* Equal image frames and bottom-aligned fleet booking actions. */
.fleet-grid { align-items: stretch; }
.fleet-grid .fleet-card { display: flex; flex-direction: column; align-items: center; }
.fleet-grid .fleet-card > img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.fleet-grid .fleet-card > .btn { margin-top: auto; flex-shrink: 0; }
.fleet-grid .fleet-card > p:last-child { margin-bottom: 0; }
@media (max-width: 1320px) {
  .site-header-inner { flex-wrap: wrap; }
  .site-nav { display: none; }
  .nav-toggle-label { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--r-border); border-radius: var(--r-radius); cursor: pointer; font-size: 18px; margin-left: auto; }
  .nav-toggle:checked ~ .site-nav-mobile { display: block; }
  .site-nav-mobile { display: none; width: 100%; order: 3; border-top: 1px solid var(--r-border); padding: 12px 0; }
  .site-nav-mobile ul { list-style: none; margin: 0; padding: 0; }
  .site-nav-mobile a { display: block; padding: 10px 4px; color: var(--r-nav-link); font-size: 15px; white-space: nowrap; }
  .site-nav-mobile .dropdown-mobile { padding-left: 14px; }
}
@media (max-width: 480px) {
  .site-header-inner { gap: 12px; padding-left: 16px; padding-right: 16px; }
  .site-logo img { max-width: 145px; height: auto; }
  .site-header-cta .btn { padding: 10px 14px; }
}
/* Locally hosted review excerpts remain readable without external scripts. */
.elt-google-reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0; text-align: left; }
.elt-google-reviews figure { margin: 0; padding: 24px; background: #fff; color: #171717; border: 1px solid #ddd; border-radius: 6px; }
.elt-google-reviews blockquote { margin: 0 0 20px; font-size: 18px; line-height: 1.6; }
.elt-google-reviews figcaption { font-size: 16px; font-weight: 600; }
.elt-google-reviews figcaption span { display: block; margin-top: 4px; font-size: 14px; font-weight: 400; color: #555; }
@media (max-width: 700px) { .elt-google-reviews { grid-template-columns: 1fr; } }
