/*
Theme Name: Niagara Wine Tour Limo
Description: Custom theme for Niagara Wine Tour Limo — private chauffeur wine tours. Version 4.0 with EEAT, How It Works, Testimonials, structured content.
Version: 4.0
Author: Wali Shah
Text Domain: nwtl
*/

/* ═══════════════════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════════════════ */
:root {
  --cabernet:      #2b0f16;
  --cabernet-dark: #180c10;
  --cabernet-soft: #3a141d;
  --gold:          #d8b56d;
  --gold-light:    #efcf84;
  --ivory:         #fffaf0;
  --cream:         #f6f1e8;
  --green:         #18201a;
  --ink:           #211713;
  --muted:         #5f554d;
  --line:          rgba(43,15,22,.12);
  --gold-line:     rgba(216,181,109,.28);
  --shadow:        0 22px 70px rgba(43,15,22,.22);
  --radius:        9px;
}

/* ═══════════════════════════════════════════════════════
   BASE
═══════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--cream); color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;
  font-size:15px; line-height:1.6; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:Georgia,"Times New Roman",serif; letter-spacing:-.01em; }
ul { list-style:none; margin:0; padding:0; }

.container {
  width: min(1160px, calc(100% - 32px));
  margin: 0 auto;
}

/* ═══════════════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; min-height:46px; align-items:center; justify-content:center;
  border-radius:7px; padding:12px 20px; font-size:13px; font-weight:900;
  cursor:pointer; transition:background .15s,color .15s;
}
.btn-gold   { background:var(--gold);  color:var(--cabernet-dark); }
.btn-gold:hover { background:var(--gold-light); }
.btn-dark   { border:1px solid rgba(216,181,109,.38); background:var(--cabernet); color:var(--ivory); }
.btn-dark:hover { background:var(--cabernet-soft); }
.btn-outline { border:1px solid rgba(255,255,255,.5); background:transparent; color:white; }
.btn-outline:hover { background:rgba(255,255,255,.08); }
.full-width { width:100%; }

/* ═══════════════════════════════════════════════════════
   SITE HEADER
═══════════════════════════════════════════════════════ */
.site-header {
  position:sticky; top:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:66px;
  padding:0 max(16px,calc((100vw - 1160px)/2));
  background:rgba(24,12,16,.97);
  border-bottom:1px solid var(--gold-line);
  backdrop-filter:blur(16px);
  color:var(--ivory);
}

/* Brand */
.brand { display:flex; align-items:center; gap:12px; font-weight:800; flex-shrink:0; }
.brand-mark {
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:8px;
  background:var(--gold); color:var(--cabernet-dark); font-weight:900;
}
.brand-text { font-size:14px; }

/* Header CTA */
.header-cta {
  flex-shrink:0;
  display:inline-flex; align-items:center; min-height:38px;
  border:1px solid var(--gold-line); border-radius:7px; padding:0 16px;
  color:#f5d992; font-size:13px; font-weight:800;
  transition:background .15s;
}
.header-cta:hover { background:rgba(216,181,109,.12); }

/* Hamburger toggle (mobile) */
.nav-toggle {
  display:none; flex-direction:column; justify-content:space-between;
  width:28px; height:20px; background:none; border:none; cursor:pointer; padding:0;
}
.nav-toggle span { display:block; width:100%; height:2px; background:#f5d992; border-radius:2px; transition:.2s; }

/* ── Primary nav ── */
.primary-nav { display:flex; align-items:center; }

.nav-menu {
  display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0;
}

.nav-menu > li > a {
  display:flex; align-items:center; gap:4px;
  padding:10px 12px; border-radius:6px;
  color:#d9cdb9; font-size:13px; font-weight:600;
  transition:background .15s, color .15s;
  white-space:nowrap;
}
.nav-menu > li > a:hover { background:rgba(255,255,255,.08); color:white; }
.nav-menu > li > a .arrow { font-size:10px; opacity:.7; }

/* Dropdown */
.has-dropdown { position:relative; }
.dropdown {
  display:none;
  position:absolute; top:calc(100% + 8px); left:0;
  min-width:220px;
  background:rgba(24,12,16,.98);
  border:1px solid var(--gold-line);
  border-radius:var(--radius);
  padding:8px 0;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  z-index:200;
}
.dropdown-wide { min-width:220px; grid-template-columns:repeat(2,1fr); padding:12px; gap:2px; }
.has-dropdown:hover .dropdown-wide,
.has-dropdown.is-open .dropdown-wide { display:grid; }
.dropdown li a {
  display:block; padding:9px 16px;
  color:#d9cdb9; font-size:13px; font-weight:500;
  transition:background .1s, color .1s;
}
.dropdown-wide li a { padding:8px 10px; border-radius:5px; }
.dropdown li a:hover { background:rgba(216,181,109,.1); color:white; }
.has-dropdown:hover .dropdown,
.has-dropdown.is-open .dropdown { display:block; }

/* Arrow indicator */
.dd-arrow {
  display:inline-block; margin-left:4px;
  width:0; height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:5px solid #d9cdb9;
  vertical-align:middle;
  transition:transform .15s;
}
.has-dropdown.is-open .dd-arrow,
.has-dropdown:hover .dd-arrow { transform:rotate(180deg); border-top-color:var(--gold); }

/* WP nav_menu classes */
.nav-menu .menu-item-has-children { position:relative; }
.nav-menu .sub-menu {
  display:none;
  position:absolute; top:calc(100% + 8px); left:0; min-width:220px;
  background:rgba(24,12,16,.98);
  border:1px solid var(--gold-line); border-radius:var(--radius);
  padding:8px 0; box-shadow:0 20px 60px rgba(0,0,0,.5); z-index:200;
}
.nav-menu .menu-item-has-children:hover .sub-menu,
.nav-menu .menu-item-has-children.is-open .sub-menu { display:block; }
.nav-menu .sub-menu li a {
  display:block; padding:9px 16px;
  color:#d9cdb9; font-size:13px; font-weight:500;
}
.nav-menu .sub-menu li a:hover { background:rgba(216,181,109,.1); color:white; }

/* Eyebrow */
.eyebrow {
  display:inline-block; color:#7b2035;
  font-size:12px; font-weight:900; letter-spacing:.05em; text-transform:uppercase;
}
.eyebrow.gold { color:var(--gold); }

/* ═══════════════════════════════════════════════════════
   PAGE BANNER (all inner pages)
═══════════════════════════════════════════════════════ */
.page-banner {
  position:relative; min-height:380px;
  display:flex; align-items:flex-end;
  background-size:cover; background-position:center;
  scroll-margin-top:66px;
}
.page-banner-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(24,12,16,.95) 0%, rgba(24,12,16,.6) 60%, rgba(24,12,16,.3) 100%);
}
.page-banner-inner {
  position:relative; padding:56px 0 48px; color:var(--ivory);
}
.banner-breadcrumb {
  display:inline-block; margin-bottom:10px;
  color:var(--gold); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
}
.page-banner-inner h1 {
  font-size:clamp(34px,4.5vw,58px); line-height:1.06; color:white; max-width:820px;
}
.banner-lede {
  margin-top:16px; max-width:640px;
  color:#d9cdb9; font-family:Georgia,serif; font-size:18px; line-height:1.6;
}
.banner-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }

/* ═══════════════════════════════════════════════════════
   PAGE IMAGE STRIP (3-photo band below banner)
═══════════════════════════════════════════════════════ */
.page-image-strip {
  display:grid; grid-template-columns:1.5fr 1fr;
  height:320px; overflow:hidden;
}
.img-strip-main {
  background-size:cover; background-position:center;
}
.img-strip-side {
  display:grid; grid-template-rows:1fr 1fr;
  gap:3px;
}
.img-strip-side > div {
  background-size:cover; background-position:center;
}

/* ═══════════════════════════════════════════════════════
   PAGE CONTENT + SIDEBAR LAYOUT
═══════════════════════════════════════════════════════ */
.page-content-area { background:var(--cream); padding:64px 0 80px; }

.content-with-sidebar {
  display:grid; grid-template-columns:1fr 320px; gap:48px; align-items:start;
}

/* Sidebar */
.content-sidebar { position:sticky; top:90px; display:flex; flex-direction:column; gap:20px; }

.sidebar-card {
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; padding:24px;
}
.sidebar-card .eyebrow { margin-bottom:6px; }
.sidebar-card h3 { color:var(--cabernet); font-size:22px; margin-top:6px; margin-bottom:12px; }
.sidebar-card p { color:var(--muted); font-size:14px; margin-bottom:16px; }
.sidebar-details { margin-top:16px; border-top:1px solid var(--line); padding-top:16px;
  display:flex; flex-direction:column; gap:8px; }
.sidebar-details div { font-size:13px; color:var(--muted); }
.sidebar-details strong { margin-right:8px; }

.sidebar-services h4 { color:var(--cabernet); font-family:Georgia,serif; font-size:17px; margin-bottom:12px; }
.sidebar-services ul { display:flex; flex-direction:column; gap:0; }
.sidebar-services li { border-bottom:1px solid var(--line); }
.sidebar-services li:last-child { border-bottom:none; }
.sidebar-services li a { display:block; padding:10px 0; color:#7b2035; font-size:13px; font-weight:600; }
.sidebar-services li a:hover { color:var(--cabernet); }

/* Content main typography */
.content-main h1, .content-main h2, .content-main h3,
.content-main h4, .content-main h5, .content-main h6 { font-family:Georgia,serif; color:var(--cabernet); }
.content-main h2 { font-size:clamp(24px,3vw,36px); line-height:1.15; margin-top:52px; margin-bottom:14px; }
.content-main h3 { font-size:clamp(20px,2.2vw,27px); line-height:1.2; margin-top:36px; margin-bottom:10px; }
.content-main h4 { font-size:17px; font-family:Inter,sans-serif; font-weight:800; margin-top:28px; margin-bottom:8px; }
.content-main p { color:var(--muted); font-size:16px; line-height:1.8; margin-bottom:18px; }
.content-main ul, .content-main ol { color:var(--muted); font-size:16px; line-height:1.8; padding-left:24px; margin-bottom:18px; }
.content-main li { margin-bottom:7px; }
.content-main a { color:#7b2035; text-decoration:underline; text-decoration-color:rgba(123,32,53,.3); }
.content-main a:hover { text-decoration-color:#7b2035; }
.content-main strong { color:var(--ink); }
.content-main table { width:100%; border-collapse:collapse; margin:28px 0; font-size:15px; }
.content-main th { background:var(--cabernet); color:var(--ivory); padding:12px 16px; text-align:left; font-family:Georgia,serif; }
.content-main td { padding:12px 16px; border-bottom:1px solid var(--line); color:var(--muted); }
.content-main tr:nth-child(even) td { background:var(--ivory); }
.content-main blockquote { border-left:3px solid var(--gold); margin:28px 0; padding:16px 24px; background:var(--ivory); border-radius:0 var(--radius) var(--radius) 0; }

/* ═══════════════════════════════════════════════════════
   HOMEPAGE (front-page.php reuse from theme mockup)
═══════════════════════════════════════════════════════ */
.page-block { scroll-margin-top:66px; }

/* Pill badges */
.pill-row,.button-row,.tag-row{display:flex;flex-wrap:wrap;gap:10px;}
.pill{border:1px solid rgba(216,181,109,.35);border-radius:4px;background:rgba(246,241,232,.9);
  padding:7px 12px;color:var(--cabernet);font-size:12px;font-weight:800;}

/* Hero */
.hero{position:relative;overflow:hidden;min-height:760px;background:var(--cabernet-dark);color:var(--ivory);}
.hero-bg{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(24,12,16,.96),rgba(24,12,16,.7),rgba(24,12,16,.28)),
  url("assets/vineyard.jpg") center/cover;opacity:.98;}
.hero-grid{position:relative;display:grid;min-height:760px;
  grid-template-columns:1.05fr 0.75fr;gap:72px;align-items:center;padding:88px 0;}
.hero-copy{max-width:720px;}
.hero h1{margin-top:34px;font-size:clamp(44px,5.2vw,74px);line-height:1.05;}
.hero-lede{max-width:650px;margin-top:28px;color:#e6dac8;font-family:Georgia,serif;font-size:18px;}
.button-row{margin-top:32px;}
.stats-grid{display:grid;max-width:640px;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px;}
.stats-grid div{border-left:1px solid rgba(216,181,109,.4);padding-left:14px;}
.stats-grid strong{display:block;color:#f5d992;font-family:Georgia,serif;font-size:28px;line-height:1;}
.stats-grid span{display:block;margin-top:4px;color:#d9cdb9;font-size:12px;line-height:1.25;}

/* Quote card */
.quote-card{border:1px solid rgba(216,181,109,.3);border-radius:10px;background:var(--ivory);
  padding:18px;color:var(--cabernet);box-shadow:var(--shadow);}
.quote-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px;}
.quote-head h2{margin-top:4px;font-size:24px;line-height:1.2;}
.quote-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:8px;background:var(--cabernet);color:var(--gold);font-weight:900;}
.field-card{margin-top:12px;border:1px solid var(--line);border-radius:7px;background:white;padding:14px;}
.field-card span{display:block;color:#8a7460;font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;}
.field-card strong{display:block;margin-top:5px;font-size:13px;}
.btn-full{width:100%;margin-top:16px;background:var(--cabernet);color:var(--ivory);}

/* Trust band */
.trust-band{background:var(--ivory);border-bottom:1px solid var(--line);padding:48px 0;}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.trust-grid article{border:1px solid var(--line);border-radius:var(--radius);background:white;padding:22px;}
.mini-icon{color:#7b2035;font-weight:900;}
.trust-grid h3{margin-top:18px;color:var(--cabernet);font-size:19px;}
.trust-grid p{margin-top:10px;color:var(--muted);}

/* Tour shapes section */
.section-light{background:var(--cream);padding:88px 0;}
.section-cream{background:var(--ivory);padding:88px 0;}
.section-intro{width:min(760px,100%);margin:0 auto 48px;text-align:center;}
.section-intro h2{margin-top:12px;color:var(--cabernet);font-size:clamp(34px,4vw,50px);line-height:1.12;}
.section-intro p{margin-top:10px;color:var(--muted);font-size:16px;}
.card-grid{display:grid;gap:18px;}
.card-grid.four{grid-template-columns:repeat(4,1fr);}
.card-grid.three{grid-template-columns:repeat(3,1fr);margin-top:34px;}
.tour-card,.step-card{border:1px solid var(--line);border-radius:var(--radius);background:white;padding:22px;}
.tour-icon,.brand-mark,.quote-icon,.step-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;}
.tour-icon{width:46px;height:46px;background:var(--cabernet);color:var(--gold);font-weight:900;}
.tour-card h3,.step-card h3{margin-top:18px;color:var(--cabernet);font-size:19px;}
.tour-card p,.step-card p{margin-top:10px;color:var(--muted);}
.tour-card strong{display:block;border-top:1px solid var(--line);margin-top:22px;padding-top:16px;
  color:#7b2035;font-size:12px;text-transform:uppercase;}

/* Timeline */
.timeline-section{background:var(--cabernet);color:var(--ivory);padding:88px 0;}
.split{display:grid;grid-template-columns:.95fr 1.05fr;gap:72px;align-items:center;}
.timeline-section h2{margin-top:12px;color:var(--ivory);font-size:clamp(34px,4vw,50px);line-height:1.12;}
.timeline-section p{margin-top:18px;color:#d9cdb9;font-size:16px;}
.timeline-list{display:grid;gap:14px;}
.timeline-list article{display:grid;grid-template-columns:90px 1fr;gap:16px;
  border:1px solid var(--gold-line);border-radius:var(--radius);background:rgba(255,255,255,.05);padding:20px;}
.timeline-list strong{grid-row:span 2;color:#f5d992;font-family:Georgia,serif;font-size:28px;}
.timeline-list span{color:white;font-weight:900;}
.timeline-list p{margin:0;font-size:14px;}

/* Page content (home SEO zone) */
.page-content-area-home{background:var(--cream);padding:72px 0 96px;}

/* ═══════════════════════════════════════════════════════
   GLOBAL FLEET SECTION
═══════════════════════════════════════════════════════ */
.global-fleet {
  background:#101010; color:var(--ivory); padding:80px 0;
}
.global-section-head {
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:32px; margin-bottom:48px;
}
.global-section-head.centered { flex-direction:column; align-items:center; text-align:center; }
.global-section-head h2 {
  margin-top:10px; color:var(--ivory);
  font-size:clamp(28px,3.5vw,44px); line-height:1.12;
}
.global-section-head p { margin-top:12px; color:#d9cdb9; font-size:16px; max-width:620px; }

.fleet-cards-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.fleet-card {
  border:1px solid rgba(255,250,240,.15); border-radius:var(--radius);
  background:#1c1712; overflow:hidden; display:flex; flex-direction:column;
}
.fleet-card-img {
  position:relative; height:180px;
  background-size:cover; background-position:center;
}
.capacity-badge {
  position:absolute; left:14px; top:14px; border-radius:5px;
  background:var(--gold); padding:6px 10px;
  color:#15100c; font-size:11px; font-weight:900;
}
.fleet-card-body { padding:18px 18px 0; flex:1; }
.fleet-card-body h3 { color:white; font-size:20px; }
.fleet-card-body strong { display:block; margin-top:4px; color:var(--gold); font-size:12px; }
.fleet-card-body p { margin-top:10px; color:#d9cdb9; font-size:14px; line-height:1.6; }
.fleet-card-cta {
  display:block; margin:16px 18px 18px;
  padding:12px; text-align:center; border-radius:6px;
  border:1px solid rgba(216,181,109,.3); color:var(--gold);
  font-size:13px; font-weight:700;
  transition:background .15s;
}
.fleet-card-cta:hover { background:rgba(216,181,109,.1); }

/* ═══════════════════════════════════════════════════════
   GLOBAL SERVICES SECTION
═══════════════════════════════════════════════════════ */
.global-services { background:var(--ivory); padding:80px 0; }
.global-services .global-section-head h2 { color:var(--cabernet); }
.global-services .global-section-head p { color:var(--muted); }

.services-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.service-card {
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; padding:24px;
  transition:box-shadow .2s, transform .2s;
  cursor:pointer;
}
.service-card:hover { box-shadow:0 8px 30px rgba(43,15,22,.1); transform:translateY(-2px); }
.service-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:var(--radius);
  background:var(--cabernet); color:var(--gold); font-weight:900; font-size:18px;
  flex-shrink:0;
}
.service-card h3 { margin-top:16px; color:var(--cabernet); font-size:17px; line-height:1.25; }
.service-card p { margin-top:8px; color:var(--muted); font-size:14px; line-height:1.6; flex:1; }
.service-arrow { margin-top:16px; color:#7b2035; font-size:13px; font-weight:700; }

.services-footer-link { margin-top:40px; text-align:center; }

/* ═══════════════════════════════════════════════════════
   GLOBAL AREAS SECTION
═══════════════════════════════════════════════════════ */
.global-areas { background:var(--cabernet-dark); padding:80px 0; }
.global-areas .global-section-head h2 { color:var(--ivory); }
.global-areas .global-section-head p  { color:#d9cdb9; }

.areas-grid {
  display:flex; flex-wrap:wrap; gap:10px;
}
.area-pill {
  display:inline-flex; align-items:center;
  border:1px solid var(--gold-line); border-radius:6px;
  background:rgba(255,255,255,.04);
  padding:10px 16px; color:#d9cdb9; font-size:13px; font-weight:600;
  transition:background .15s, color .15s;
}
.area-pill:hover { background:rgba(216,181,109,.12); color:var(--gold); }

/* ═══════════════════════════════════════════════════════
   GLOBAL CTA BAND
═══════════════════════════════════════════════════════ */
.global-cta {
  background:var(--gold); padding:72px 0;
}
.cta-inner {
  display:grid; grid-template-columns:1fr auto; gap:48px; align-items:center;
}
.global-cta .eyebrow { color:var(--cabernet-soft); }
.global-cta h2 { margin-top:10px; color:var(--cabernet-dark); font-size:clamp(28px,3.5vw,44px); line-height:1.1; }
.global-cta p { margin-top:12px; color:var(--cabernet-soft); font-size:16px; max-width:580px; }
.cta-actions { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.cta-email { background:var(--cabernet); color:var(--ivory); border:none; font-size:14px; white-space:nowrap; }
.cta-email:hover { background:var(--cabernet-soft); }
.cta-location { color:var(--cabernet-soft); font-size:13px; font-weight:600; }

/* ═══════════════════════════════════════════════════════
   SITE FOOTER
═══════════════════════════════════════════════════════ */
.site-footer { background:var(--cabernet-dark); color:#d9cdb9; padding:64px 0 0; }
.footer-grid {
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px;
}
.footer-brand .brand-mark { margin-bottom:14px; }
.footer-tagline { font-size:14px; line-height:1.7; margin-bottom:10px; }
.footer-contact-line { font-size:13px; }
.footer-contact-line a { color:#f5d992; font-weight:600; }
.footer-contact-line a:hover { color:white; }

.footer-col h4 { color:var(--gold); font-family:Georgia,serif; font-size:15px; margin-bottom:16px; }
.footer-col ul { display:flex; flex-direction:column; gap:0; }
.footer-col li { border-bottom:1px solid rgba(255,255,255,.06); }
.footer-col li:last-child { border-bottom:none; }
.footer-col li a { display:block; padding:8px 0; font-size:13px; color:#d9cdb9; transition:color .15s; }
.footer-col li a:hover { color:#f5d992; }

.footer-bottom {
  border-top:1px solid rgba(255,255,255,.08); padding:18px 0;
}
.footer-bottom p { font-size:12px; color:#9a8e80; margin:0; }

/* ═══════════════════════════════════════════════════════
   HUB PAGE TEMPLATES (Services + Areas)
═══════════════════════════════════════════════════════ */
.hub-section { padding:80px 0; background:var(--cream); }
.hub-intro { max-width:720px; margin:0 auto 52px; text-align:center; }
.hub-intro h2 { color:var(--cabernet); font-size:clamp(28px,3.5vw,44px); line-height:1.12; }
.hub-intro p { margin-top:14px; color:var(--muted); font-size:16px; line-height:1.7; }

/* Services hub grid */
.hub-cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.hub-card {
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; overflow:hidden; display:flex; flex-direction:column;
  transition:box-shadow .2s, transform .2s;
}
.hub-card:hover { box-shadow:0 12px 40px rgba(43,15,22,.12); transform:translateY(-3px); }
.hub-card-img {
  height:220px; background-size:cover; background-position:center;
  position:relative; display:flex; align-items:flex-start; padding:16px;
}
.hub-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:8px;
  background:var(--gold); color:var(--cabernet-dark); font-weight:900; font-size:16px;
}
.hub-card-body { padding:20px; flex:1; display:flex; flex-direction:column; }
.hub-card-body h3 { color:var(--cabernet); font-size:20px; }
.hub-card-body p { margin-top:10px; color:var(--muted); font-size:14px; line-height:1.6; flex:1; }
.hub-link { margin-top:16px; color:#7b2035; font-size:13px; font-weight:700; }

/* Areas hub grid */
.areas-hub-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.area-hub-card {
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; padding:24px 20px;
  display:flex; flex-direction:column; gap:8px;
  transition:box-shadow .2s, background .15s;
}
.area-hub-card:hover { background:var(--cabernet); box-shadow:0 8px 28px rgba(43,15,22,.14); }
.area-hub-card:hover h3, .area-hub-card:hover span { color:var(--ivory); }
.area-hub-icon { font-size:20px; }
.area-hub-card h3 { color:var(--cabernet); font-size:18px; font-family:Georgia,serif; }
.area-hub-card span { color:#7b2035; font-size:12px; font-weight:700; }

.hub-cta-band {
  margin-top:60px; text-align:center;
  border:1px solid var(--gold-line); border-radius:var(--radius);
  background:var(--ivory); padding:40px;
}
.hub-cta-band h3 { color:var(--cabernet); font-size:28px; }
.hub-cta-band p { margin-top:10px; color:var(--muted); font-size:16px; }
.hub-cta-band .btn { margin-top:20px; }

/* ═══════════════════════════════════════════════════════
   SHARED SERVICE/AREA PAGE COMPONENTS
═══════════════════════════════════════════════════════ */

/* Hero */
.sp-hero {
  position:relative; min-height:520px;
  display:flex; align-items:flex-end;
  background-size:cover; background-position:center;
}
.sp-hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(24,12,16,.97) 0%,rgba(24,12,16,.72) 50%,rgba(24,12,16,.2) 100%);
}
.sp-hero-inner {
  position:relative; padding:80px 0 64px; color:var(--ivory); max-width:860px;
}
.sp-hero-inner h1 {
  font-size:clamp(36px,5vw,62px); line-height:1.04; color:white; margin-top:14px;
}
.sp-lede {
  margin-top:18px; max-width:640px;
  color:#d9cdb9; font-family:Georgia,serif; font-size:18px; line-height:1.65;
}
.sp-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }

/* Route tag (area pages) */
.sp-route-tag {
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid var(--gold-line); border-radius:6px;
  background:rgba(216,181,109,.08); padding:8px 16px; margin-bottom:18px;
}
.sp-city,.sp-dest { color:var(--gold); font-size:12px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.sp-route-tag svg { color:var(--gold); flex-shrink:0; }

/* Section heads */
.sp-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; margin-bottom:40px; }
.sp-section-head.centered { flex-direction:column; align-items:center; text-align:center; }
.sp-section-head h2 { margin-top:10px; font-size:clamp(26px,3.5vw,42px); line-height:1.12; color:var(--cabernet); }
.sp-section-head p  { margin-top:10px; color:var(--muted); font-size:16px; max-width:560px; }

/* Image gallery */
.sp-gallery { display:grid; grid-template-columns:1.5fr 1fr; height:360px; overflow:hidden; }
.sp-gallery-main { background-size:cover; background-position:center; }
.sp-gallery-col  { display:grid; grid-template-rows:1fr 1fr; gap:3px; }
.sp-gallery-col > div { background-size:cover; background-position:center; }

/* Facts strip (area pages) */
.sp-facts-strip { background:var(--cabernet); border-bottom:1px solid var(--gold-line); }
.sp-facts-grid  { display:grid; grid-template-columns:repeat(4,1fr); }
.sp-fact {
  display:flex; align-items:center; gap:14px;
  padding:22px 20px; border-right:1px solid var(--gold-line);
}
.sp-fact:last-child { border-right:none; }
.sp-fact-icon { font-size:24px; flex-shrink:0; }
.sp-fact strong { display:block; color:var(--gold); font-size:13px; font-weight:800; }
.sp-fact span   { display:block; color:#d9cdb9; font-size:13px; margin-top:2px; }

/* What's included strip (service pages) */
.sp-included-strip { background:var(--cabernet); padding:18px 0; border-bottom:1px solid var(--gold-line); }
.sp-included-grid  { display:flex; flex-wrap:wrap; gap:0; justify-content:space-between; }
.sp-inc-item {
  display:flex; align-items:center; gap:8px;
  color:#d9cdb9; font-size:14px; font-weight:600; padding:8px 0;
}
.sp-inc-item span { color:var(--gold); font-weight:900; font-size:16px; }

/* Journey section (area pages) */
.sp-journey { background:var(--cabernet); color:var(--ivory); padding:80px 0; }
.sp-journey-inner { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; }
.sp-journey-copy h2 { margin-top:12px; color:var(--ivory); font-size:clamp(26px,3.5vw,40px); line-height:1.12; }
.sp-journey-copy p  { margin-top:14px; color:#d9cdb9; font-size:16px; line-height:1.7; }
.sp-journey-steps   { display:flex; flex-direction:column; gap:14px; }
.sp-journey-step {
  display:flex; align-items:flex-start; gap:18px;
  border:1px solid var(--gold-line); border-radius:var(--radius);
  background:rgba(255,255,255,.04); padding:20px;
}
.sj-num {
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; flex-shrink:0;
  background:var(--gold); color:var(--cabernet-dark);
  font-family:Georgia,serif; font-size:18px; font-weight:900;
}
.sp-journey-step strong { display:block; color:white; font-size:15px; margin-bottom:4px; }
.sp-journey-step p { margin:0; color:#d9cdb9; font-size:13px; line-height:1.6; }

/* Occasions grid (service pages) */
.sp-occasions { background:var(--cream); padding:80px 0; }
.sp-occasions-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.sp-occ-card {
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; padding:28px 22px;
  display:flex; flex-direction:column; gap:12px;
  transition:box-shadow .2s,transform .2s;
}
.sp-occ-card:hover { box-shadow:0 10px 32px rgba(43,15,22,.1); transform:translateY(-3px); }
.sp-occ-icon { font-size:32px; }
.sp-occ-card h3 { color:var(--cabernet); font-size:20px; margin:0; }
.sp-occ-card p  { color:var(--muted); font-size:14px; line-height:1.65; margin:0; flex:1; }
.sp-occ-card a  { color:#7b2035; font-size:13px; font-weight:700; }

/* How it works (service pages) */
.sp-how-works { background:var(--cabernet-dark); padding:80px 0; }
.sp-steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.sp-step {
  border:1px solid var(--gold-line); border-radius:var(--radius);
  background:rgba(255,255,255,.04); padding:32px 26px;
  text-align:center;
}
.sp-step-num {
  display:block; color:var(--gold);
  font-family:Georgia,serif; font-size:48px; font-weight:900;
  line-height:1; margin-bottom:16px;
}
.sp-step h3 { color:white; font-size:20px; margin-bottom:10px; }
.sp-step p  { color:#d9cdb9; font-size:15px; line-height:1.7; margin:0; }
.sp-how-cta { text-align:center; margin-top:40px; }

/* Fleet grid (shared) */
.sp-fleet-local { background:var(--ivory); padding:80px 0; }
.sp-vehicle-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.sp-vehicle-card {
  border:1px solid var(--line); border-radius:var(--radius);
  background:white; overflow:hidden;
  transition:box-shadow .2s,transform .2s;
}
.sp-vehicle-card:hover { box-shadow:0 10px 32px rgba(43,15,22,.1); transform:translateY(-3px); }
.sp-vehicle-img {
  position:relative; height:190px;
  background-size:cover; background-position:center;
}
.sp-cap-badge {
  position:absolute; top:14px; left:14px;
  background:var(--gold); color:var(--cabernet-dark);
  font-size:11px; font-weight:900; border-radius:5px; padding:5px 10px;
}
.sp-vehicle-body { padding:18px; }
.sp-vehicle-body h3 { color:var(--cabernet); font-size:20px; }
.sp-vehicle-body span { display:block; margin-top:4px; color:#7b2035; font-size:12px; font-weight:700; text-transform:uppercase; }
.sp-vehicle-body p { margin-top:10px; color:var(--muted); font-size:14px; line-height:1.6; }

/* Content section — full content visible with sidebar */
.sp-content-section { background:var(--cream); padding:64px 0 72px; }

/* Sidebar services list */
.sidebar-services h4 { color:var(--cabernet); font-family:Georgia,serif; font-size:17px; margin-bottom:12px; }
.sidebar-services ul { display:flex; flex-direction:column; }
.sidebar-services li { border-bottom:1px solid var(--line); }
.sidebar-services li:last-child { border-bottom:none; }
.sidebar-services li a { display:block; padding:10px 0; color:#7b2035; font-size:13px; font-weight:600; }
.sidebar-services li a:hover { color:var(--cabernet); }

/* Sidebar cities list */
.sidebar-cities h4 { color:var(--cabernet); font-family:Georgia,serif; font-size:17px; margin-bottom:12px; }
.sidebar-cities ul { display:flex; flex-direction:column; }
.sidebar-cities li { border-bottom:1px solid var(--line); }
.sidebar-cities li:last-child { border-bottom:none; }
.sidebar-cities li a { display:block; padding:10px 0; color:#7b2035; font-size:13px; font-weight:600; }
.sidebar-cities li a:hover { color:var(--cabernet); }

/* Nearby section (shared) */
.sp-nearby { background:var(--cream); padding:64px 0; border-top:1px solid var(--line); }

/* Outline dark button */
.btn-outline-dark { border:1px solid var(--cabernet); background:transparent; color:var(--cabernet); font-size:13px; }
.btn-outline-dark:hover { background:var(--cabernet); color:var(--ivory); }

/* SEO Content collapsible */
.sp-seo-content { background:var(--ivory); padding:48px 0; border-top:1px solid var(--line); }
.seo-details {
  border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden;
}
.seo-details summary {
  padding:18px 24px; cursor:pointer;
  font-family:Georgia,serif; font-size:17px; font-weight:700;
  color:var(--cabernet); background:white; list-style:none;
  display:flex; align-items:center; justify-content:space-between;
  user-select:none;
}
.seo-details summary::-webkit-details-marker { display:none; }
.seo-details summary::after {
  content:'▾'; color:var(--gold); font-size:18px; transition:transform .2s;
}
.seo-details[open] summary::after { transform:rotate(180deg); }
.seo-details-body {
  padding:32px 32px 40px;
  background:white;
  border-top:1px solid var(--line);
}

/* ═══════════════════════════════════════════════════════
   SERVICE PAGE HERO
═══════════════════════════════════════════════════════ */
.service-hero {
  position: relative;
  min-height: 420px;
  display: flex; align-items: flex-end;
  background-size: cover; background-position: center;
}
.service-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(24,12,16,.96) 0%, rgba(24,12,16,.65) 55%, rgba(24,12,16,.25) 100%);
}
.service-hero-inner {
  position: relative; padding: 60px 0 52px; color: var(--ivory); max-width: 820px;
}
.service-hero-inner h1 {
  font-size: clamp(34px, 4.5vw, 58px); line-height: 1.06; color: white; margin-top: 14px;
}
.service-hero-lede {
  margin-top: 16px; color: #d9cdb9; font-family: Georgia, serif; font-size: 18px; line-height: 1.6;
}

/* Service features strip */
.service-features-strip {
  background: var(--cabernet); padding: 0;
  border-bottom: 1px solid var(--gold-line);
}
.service-features-grid {
  display: grid; grid-template-columns: repeat(5, 1fr);
}
.sf-item {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; padding: 24px 16px; text-align: center;
  border-right: 1px solid var(--gold-line);
}
.sf-item:last-child { border-right: none; }
.sf-icon { font-size: 22px; }
.sf-item strong { display: block; color: var(--gold); font-size: 13px; font-weight: 800; }
.sf-item span   { display: block; color: #d9cdb9; font-size: 12px; }

/* Service content wrap */
.service-content-wrap { background: var(--cream); padding: 64px 0 80px; }

/* ═══════════════════════════════════════════════════════
   AREA PAGE HERO
═══════════════════════════════════════════════════════ */
.area-hero {
  position: relative;
  min-height: 480px;
  display: flex; align-items: flex-end;
  background-size: cover; background-position: center;
}
.area-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(24,12,16,.97) 0%, rgba(24,12,16,.7) 50%, rgba(24,12,16,.2) 100%);
}
.area-hero-inner {
  position: relative; padding: 64px 0 56px; color: var(--ivory);
}

/* Route tag */
.area-route-tag {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid var(--gold-line);
  border-radius: 6px; background: rgba(216,181,109,.1);
  padding: 8px 16px; margin-bottom: 18px;
}
.route-from, .route-to { color: var(--gold); font-size: 13px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.route-arrow { color: #d9cdb9; font-size: 16px; }

.area-hero-inner h1 {
  font-size: clamp(34px, 4.5vw, 58px); line-height: 1.06; color: white; max-width: 780px;
}
.area-hero-lede {
  margin-top: 14px; color: #d9cdb9; font-family: Georgia, serif; font-size: 17px; line-height: 1.6; max-width: 600px;
}

/* Area hero stats strip */
.area-hero-stats {
  display: flex; gap: 24px; margin-top: 24px; flex-wrap: wrap;
}
.area-hero-stats div {
  display: flex; align-items: center; gap: 8px;
  color: #d9cdb9; font-size: 13px; font-weight: 600;
}
.area-hero-stats span { font-size: 16px; }

/* Area info strip */
.area-info-strip {
  background: var(--cabernet); border-bottom: 1px solid var(--gold-line);
}
.area-info-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
}
.area-info-item {
  display: flex; flex-direction: column; gap: 4px;
  padding: 22px 20px; border-right: 1px solid var(--gold-line);
}
.area-info-item:last-child { border-right: none; }
.area-info-item strong { color: var(--gold); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.area-info-item span   { color: #d9cdb9; font-size: 14px; }

/* Area content wrap */
.area-content-wrap { background: var(--cream); padding: 64px 0 80px; }

/* Area sidebar — nearby cities */
.sidebar-cities h4 { color: var(--cabernet); font-family: Georgia, serif; font-size: 17px; margin-bottom: 12px; }
.sidebar-cities ul { display: flex; flex-direction: column; }
.sidebar-cities li { border-bottom: 1px solid var(--line); }
.sidebar-cities li:last-child { border-bottom: none; }
.sidebar-cities li a { display: block; padding: 9px 0; color: #7b2035; font-size: 13px; font-weight: 600; }
.sidebar-cities li a:hover { color: var(--cabernet); }

/* ═══════════════════════════════════════════════════════
   EEAT SECTION
═══════════════════════════════════════════════════════ */
.eeat-section {
  background: var(--cabernet-dark);
  color: var(--ivory);
  padding: 80px 0;
}
.eeat-section .section-intro h2 { color: var(--ivory); }
.eeat-section .section-intro p  { color: #d9cdb9; }

.eeat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 48px;
}
.eeat-card {
  border: 1px solid var(--gold-line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.04);
  padding: 28px 24px;
  text-align: center;
  transition: background .2s;
}
.eeat-card:hover { background: rgba(216,181,109,.07); }
.eeat-icon { display: block; font-size: 32px; margin-bottom: 14px; }
.eeat-card h3 { color: var(--gold); font-size: 20px; margin-bottom: 10px; }
.eeat-card p  { color: #d9cdb9; font-size: 14px; line-height: 1.7; margin: 0; }

/* ═══════════════════════════════════════════════════════
   HOW IT WORKS
═══════════════════════════════════════════════════════ */
.how-section {
  background: var(--cream);
  padding: 80px 0;
}
.how-inner {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 72px;
  align-items: center;
}
.how-copy h2 {
  color: var(--cabernet);
  font-size: clamp(28px,3.5vw,44px);
  line-height: 1.12;
  margin-top: 10px;
}
.how-copy p { color: var(--muted); font-size: 16px; margin-top: 14px; }

.how-steps { display: flex; flex-direction: column; gap: 20px; }
.how-step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  padding: 22px;
}
.how-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--cabernet); color: var(--gold);
  font-family: Georgia, serif; font-size: 20px; font-weight: 900;
  flex-shrink: 0;
}
.how-step h3 { color: var(--cabernet); font-size: 18px; margin-bottom: 6px; }
.how-step p  { color: var(--muted); font-size: 14px; line-height: 1.6; margin: 0; }

/* ═══════════════════════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════════════════════ */
.testimonials-section {
  background: var(--ivory);
  padding: 80px 0;
  border-top: 1px solid var(--line);
}
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.testimonial-card {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.testimonial-card .stars { color: var(--gold); font-size: 18px; letter-spacing: 2px; }
.testimonial-card p {
  color: var(--ink);
  font-family: Georgia, serif;
  font-size: 16px;
  line-height: 1.7;
  font-style: italic;
  margin: 0;
  flex: 1;
}
.testimonial-card footer {
  border-top: 1px solid var(--line);
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.testimonial-card footer strong { color: var(--cabernet); font-size: 14px; }
.testimonial-card footer span   { color: var(--muted); font-size: 12px; }

/* ═══════════════════════════════════════════════════════
   HOME AREAS PREVIEW
═══════════════════════════════════════════════════════ */
.home-areas-preview {
  background: var(--cabernet-dark);
  padding: 80px 0;
}
.home-areas-preview .global-section-head h2 { color: var(--ivory); }
.home-areas-preview .global-section-head p  { color: #d9cdb9; }

/* ═══════════════════════════════════════════════════════
   INNER PAGE CONTENT — visual structure
═══════════════════════════════════════════════════════ */

/* Section break every H2 */
.content-main h2 {
  position: relative;
  padding-top: 56px;
  margin-top: 0;
}
.content-main h2::before {
  content: '';
  display: block;
  width: 40px; height: 3px;
  background: var(--gold);
  margin-bottom: 14px;
}

/* Feature list (ul in content) styled as icon list */
.content-main ul li {
  list-style: none;
  padding-left: 24px;
  position: relative;
}
.content-main ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #7b2035;
  font-weight: 900;
}

/* Highlight box for first paragraph after H1 */
.content-main > p:first-of-type {
  font-size: 17px;
  color: var(--ink);
  line-height: 1.8;
  border-left: 3px solid var(--gold);
  padding-left: 18px;
  margin-bottom: 32px;
}

/* Mid-content CTA card (injected via PHP) */
.content-cta-box {
  margin: 40px 0;
  border: 1px solid var(--gold-line);
  border-radius: var(--radius);
  background: var(--cabernet);
  color: var(--ivory);
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.content-cta-box h3 { color: var(--gold); font-size: 20px; margin-bottom: 6px; }
.content-cta-box p  { color: #d9cdb9; font-size: 14px; margin: 0; }

/* Feature highlight box (styled blockquote) */
.content-main blockquote {
  border: none;
  border-radius: var(--radius);
  background: var(--ivory);
  margin: 32px 0;
  padding: 24px 28px;
  border-left: 4px solid var(--gold);
}
.content-main blockquote p { color: var(--cabernet); font-size: 17px; font-style: italic; margin: 0; }

/* ═══════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════ */
@media (max-width:1100px) {
  .services-grid  { grid-template-columns:repeat(3,1fr); }
  .footer-grid    { grid-template-columns:1fr 1fr; gap:32px; }
}

@media (max-width:1100px) {
  .eeat-grid { grid-template-columns:repeat(2,1fr); }
  .testimonials-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width:980px) {
  .eeat-grid { grid-template-columns:repeat(2,1fr); }
  .how-inner { grid-template-columns:1fr; gap:40px; }
  .testimonials-grid { grid-template-columns:1fr; }
  /* Mobile nav */
  .nav-toggle  { display:flex; }
  .primary-nav {
    display:none; position:absolute; top:66px; left:0; right:0;
    background:rgba(24,12,16,.98);
    border-bottom:1px solid var(--gold-line);
    padding:16px;
    flex-direction:column; align-items:stretch;
  }
  .primary-nav.open { display:flex; }
  .nav-menu { flex-direction:column; gap:0; }
  .nav-menu > li > a { padding:12px 8px; }
  .has-dropdown { position:static; }
  .dropdown, .nav-menu .sub-menu {
    display:none !important; /* toggled below by JS if needed */
    position:static; background:rgba(255,255,255,.04);
    border:none; border-radius:0; padding:0; box-shadow:none;
  }
  .has-dropdown:hover .dropdown,
  .nav-menu .menu-item-has-children:hover .sub-menu { display:none !important; }
  .has-dropdown.open .dropdown,
  .nav-menu .menu-item-has-children.open .sub-menu { display:block !important; }

  /* Layout */
  .hero-grid,.split,.cta-inner { grid-template-columns:1fr; }
  .hero-grid { gap:28px; }
  .trust-grid,.card-grid.four,.card-grid.three,
  .fleet-cards-grid,.services-grid,.areas-hub-grid { grid-template-columns:repeat(2,1fr); }
  .content-with-sidebar { grid-template-columns:1fr; }
  .content-sidebar { position:static; }
  .page-image-strip { height:220px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .hub-cards-grid { grid-template-columns:repeat(2,1fr); }
  .global-section-head { flex-direction:column; }
}

@media (max-width:980px) {
  .service-features-grid { grid-template-columns:repeat(3,1fr); }
  .area-info-grid { grid-template-columns:repeat(2,1fr); }
  .sf-item:nth-child(3) { border-right:none; }
}

@media (max-width:640px) {
  .service-features-grid { grid-template-columns:repeat(2,1fr); }
  .area-info-grid { grid-template-columns:repeat(2,1fr); }
  .area-hero-stats { flex-direction:column; gap:12px; }
}

@media (max-width:640px) {
  .container { width:calc(100% - 26px); }
  .site-header { padding:0 13px; }
  .brand-text { max-width:170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .hero,.hero-grid { min-height:0; }
  .hero-grid,.section-light,.timeline-section { padding:56px 0; }
  .trust-grid,.card-grid.four,.card-grid.three,
  .fleet-cards-grid,.services-grid,.areas-hub-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .page-image-strip { grid-template-columns:1fr; height:260px; }
  .img-strip-side { display:none; }
  .footer-grid { grid-template-columns:1fr; }
  .hub-cards-grid { grid-template-columns:1fr; }
  .dropdown-wide { grid-template-columns:1fr; }
  .cta-inner { gap:24px; }
  .cta-actions { width:100%; }
  .cta-email { width:100%; }
}

/* ═══════════════════════════════════════════════════════
   WP CORE HELPERS
═══════════════════════════════════════════════════════ */
.wp-block-image { margin:28px 0; }
.aligncenter { display:block; margin-left:auto; margin-right:auto; }
.alignleft  { float:left; margin:0 24px 16px 0; }
.alignright { float:right; margin:0 0 16px 24px; }


/* ═══════════════════════════════════════════════════════
   AUDIT FIXES v1 — contrast · overflow · tap-targets
═══════════════════════════════════════════════════════ */

/* FIX 1: Hero guaranteed dark background (prevents white-text-on-cream when img fails) */
.sp-hero, .sp-hero-service { background-color: var(--cabernet-dark) !important; }
.area-hero { background-color: var(--cabernet-dark) !important; }

/* FIX 2: Stronger overlay everywhere */
.sp-hero-overlay, .area-hero-overlay, .service-hero-overlay, .page-banner-overlay {
  background: linear-gradient(to top,rgba(24,12,16,.99) 0%,rgba(24,12,16,.94) 35%,rgba(24,12,16,.82) 65%,rgba(24,12,16,.55) 100%) !important;
}

/* FIX 3: Hero H1 always white with shadow */
.sp-hero-inner h1, .area-hero-inner h1, .service-hero-inner h1, .page-banner-inner h1 {
  color: #ffffff !important;
  text-shadow: 0 2px 28px rgba(0,0,0,.7);
}
.sp-lede, .area-hero-lede { color: #ede0cc !important; }

/* FIX 4: Eyebrow contrast — gold ONLY on dark sections, maroon on light */
.eyebrow { color: #7b2035 !important; }
.sp-hero-inner .eyebrow, .sp-journey .eyebrow.gold,
.sp-how-works .eyebrow, .global-fleet .eyebrow,
.global-areas .eyebrow, .home-areas-preview .eyebrow,
.area-hero-inner .eyebrow { color: var(--gold) !important; }

/* FIX 5: Stars — darker amber for 4.5:1 on white */
.stars { color: #9a6e00 !important; }

/* FIX 6: Area pills — 44px tap target + high-contrast */
.area-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 10px 18px !important;
  background: white !important;
  color: var(--cabernet) !important;
  border: 1.5px solid rgba(43,15,22,.3) !important;
  font-weight: 700 !important;
}
.area-pill:hover { background: var(--cabernet) !important; color: white !important; }

/* FIX 7: Global overflow prevention */
html { overflow-x: hidden; }
body { overflow-x: hidden; max-width: 100vw; }
.sp-hero-inner, .area-hero-inner { box-sizing: border-box; max-width: 100%; }

/* FIX 8: Mobile overflow — constrain all grids */
@media (max-width: 640px) {
  .sp-facts-grid      { grid-template-columns: 1fr 1fr !important; overflow: hidden; }
  .sp-included-grid   { flex-direction: column !important; align-items: flex-start !important; }
  .sp-inc-item        { width: 100%; font-size: 13px; }
  .sp-occasions-grid  { grid-template-columns: 1fr !important; }
  .sp-steps-grid      { grid-template-columns: 1fr !important; }
  .sp-vehicle-grid    { grid-template-columns: 1fr 1fr !important; }
  .eeat-grid          { grid-template-columns: 1fr 1fr !important; }
  .testimonials-grid  { grid-template-columns: 1fr !important; }
  .sp-journey-inner   { grid-template-columns: 1fr !important; gap: 32px !important; }
  .how-inner          { grid-template-columns: 1fr !important; }
  .cta-inner          { grid-template-columns: 1fr !important; }
  .footer-grid        { grid-template-columns: 1fr !important; }
  .hub-cards-grid     { grid-template-columns: 1fr !important; }
  .areas-hub-grid     { grid-template-columns: 1fr 1fr !important; }
  .content-with-sidebar { grid-template-columns: 1fr !important; }
  .content-sidebar    { position: static !important; }
  img, video, table   { max-width: 100% !important; }
}

@media (max-width: 980px) {
  .sp-facts-grid     { grid-template-columns: repeat(2,1fr) !important; }
  .sp-vehicle-grid   { grid-template-columns: repeat(2,1fr) !important; }
  .sp-occasions-grid { grid-template-columns: repeat(2,1fr) !important; }
  .sp-steps-grid     { grid-template-columns: 1fr !important; }
  .content-with-sidebar { grid-template-columns: 1fr !important; }
  .content-sidebar   { position: static !important; }
}


/* PATCH — timeline eyebrow + remaining small fixes */
.timeline-section .eyebrow,
.eeat-section .eyebrow,
.global-cta .eyebrow,
.sp-fleet-local .eyebrow,
.sp-nearby .eyebrow,
.sp-how-works .eyebrow { color: var(--gold) !important; }

/* Remaining alignment: consistent left padding on mobile */
@media (max-width: 640px) {
  .sp-hero-inner, .area-hero-inner { padding-left: 0 !important; padding-right: 0 !important; }
  .sp-facts-strip .container, .sp-included-strip .container { overflow: hidden; }
}


/* PATCH 2 — fix gold-on-gold in CTA + fleet/nearby eyebrows on light bg */
.global-cta .eyebrow          { color: var(--cabernet) !important; }  /* dark on gold bg */
.sp-fleet-local .eyebrow      { color: #7b2035 !important; }           /* maroon on ivory */
.sp-nearby .eyebrow           { color: #7b2035 !important; }           /* maroon on cream */
.global-cta h2                { color: var(--cabernet-dark) !important; }
.global-cta p                 { color: var(--cabernet-soft) !important; }


/* ═══════════════════════════════════════════════════════
   FINAL QA FIXES v3 — Phase 8 contrast + button polish
═══════════════════════════════════════════════════════ */

/* Fix the auto-injected "Ready to book this tour?" CTA — was gold-on-gold */
.content-cta-box {
  background: var(--cabernet) !important;
  color: var(--ivory) !important;
}
.content-cta-box h3 { color: var(--gold) !important; }
.content-cta-box p  { color: #ede0cc !important; }

/* Eyebrow "Our Fleet" + similar on dark hero/section backgrounds — force gold */
.global-fleet-slider .eyebrow,
.tour-related .eyebrow,
.home-by-pickup .eyebrow,
.timeline-section .eyebrow,
.sp-journey .eyebrow,
.sp-how-works .eyebrow,
.eeat-section .eyebrow,
.home-hero-copy .pill,
.hub-route span { color: var(--gold) !important; }

/* On light/cream backgrounds → maroon */
.home-featured-tours .eyebrow,
.home-by-category .eyebrow,
.home-faq .eyebrow,
.hub-tours-section .eyebrow,
.hub-pickup-spots .eyebrow,
.hub-nearby .eyebrow,
.sp-occasions .eyebrow,
.sp-fleet-local .eyebrow,
.sp-nearby .eyebrow,
.trust-band .eyebrow,
.testimonials-section .eyebrow { color: #7b2035 !important; }

/* Tour card "VIEW →" + "FROM" labels — increase contrast */
.tour-card-foot span:first-child { color: var(--cabernet) !important; font-weight: 800 !important; font-size: 13px !important; }
.tour-card-arrow { color: #7b2035 !important; }

/* Pickup card hover state — make sure text stays visible after hover */
.hub-city-pill:hover strong, .hub-city-pill:hover span { color: white !important; }

/* Increase tap-target hit area for small links — minimum 44px */
.tour-card-arrow, .hub-spot-card, .home-cat-arrow { min-height: 44px; display: inline-flex; align-items: center; }

/* Force gold pills (eyebrow.gold) to have a darker maroon variant on light bg */
.eyebrow.gold {
  color: var(--gold);
}
.section-light .eyebrow.gold,
.section-cream .eyebrow.gold,
.hub-tours-section .eyebrow.gold,
.home-by-pickup .eyebrow.gold {
  color: #7b2035 !important;
}

/* Smaller text minimum sizes to fix tiny-text audit */
.fleet-card-model { font-size: 12px !important; }
.tour-card-foot span:last-child { font-size: 14px !important; }
.footer-bottom p { font-size: 13px !important; }


/* FINAL FIX — "You might also like" + home cat cards */
.tour-related .eyebrow,
.tour-related h2 { color: var(--cabernet) !important; }
.tour-related .eyebrow { color: #7b2035 !important; }

/* Home category cards — force solid bg-color under image so audit tool reads correctly */
.home-cat-card { background-color: var(--cabernet-dark); }
.home-cat-content h3, .home-cat-content p { color: white !important; text-shadow: 0 2px 8px rgba(0,0,0,.7); }

/* Hide google font 4th family — keep to Inter + Georgia + Apple Color Emoji */
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif !important; }


/* FINAL HOMEPAGE PILL FIX */
.home-hero-copy .pill {
  background: rgba(216,181,109,.95) !important;
  color: #180c10 !important;
  border-color: var(--gold) !important;
  font-weight: 900 !important;
}

/* Final tiny-text bump */
.fleet-card-tier, .area-pill, .home-stats span { font-size: 13px !important; }


/* NWTL WIDGET FIX v4 — addon row layout + final polish */
.nwtl-bk-addons label {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 11px 0 !important;
  font-size: 13.5px !important;
  cursor: pointer !important;
  color: #211713 !important;
  border-bottom: 1px solid rgba(43,15,22,.06) !important;
  line-height: 1.4 !important;
  grid-template-columns: unset !important;
}
.nwtl-bk-addons label > input[type="checkbox"] {
  width: 18px !important; height: 18px !important;
  margin: 0 !important; flex-shrink: 0 !important;
  accent-color: #2b0f16 !important;
}
.nwtl-bk-addons label > span.nwtl-bk-addon-price {
  margin-left: auto !important;
  color: #7b2035 !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
/* text node between checkbox and price becomes flex item */

/* Tighter spacing in head + summary */
.nwtl-bk-head { padding: 22px 24px !important; }
.nwtl-bk-summary { padding: 16px 18px !important; }

/* Final form padding */
.nwtl-bk-form { padding: 20px 24px 22px !important; }
.nwtl-bk-fallback { padding: 14px 24px !important; }

/* Reset count steppers — display: flex wrap properly */
.nwtl-bk-counts label {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
.nwtl-bk-counts label > span:first-child {
  flex: 1 0 100% !important;
  margin: 0 0 6px !important;
  color: #5f554d !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}
.nwtl-bk-counts label button {
  width: 32px !important; height: 32px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1px solid rgba(43,15,22,.18) !important;
  color: #2b0f16 !important;
  font-size: 18px !important; font-weight: 700 !important;
  cursor: pointer !important;
}
.nwtl-bk-counts label input {
  flex: 1 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center !important;
  font-family: Georgia, serif !important;
  font-size: 18px !important; font-weight: 700 !important;
  color: #2b0f16 !important;
  min-width: 0 !important;
}

/* Summary numbers cleaner */
.nwtl-bk-summary-row > span:first-child::after { content: ''; }
.nwtl-bk-summary-row { gap: 10px; }

/* Mobile */
@media (max-width: 640px) {
  .nwtl-bk-counts { grid-template-columns: 1fr !important; }
}


/* ════════════════════════════════════════════════════════════════
   NWTL THEME REFRESH — LORA / NUNITO SANS / JETBRAINS MONO
   Final palette + typography from /tmp/new-theme/niagara-wine-theme
   ════════════════════════════════════════════════════════════════ */

:root {
  --serif: "Lora", Georgia, "Times New Roman", serif;
  --sans:  "Nunito Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --mono:  "JetBrains Mono", "SF Mono", Menlo, monospace;
  --coffee: #211713;
  --wine:   #2B0F16;
  --gold-glow: #E8C988;
  --muted: #5A4D43;
  --cabernet: #2B0F16;
  --cabernet-dark: #180c10;
  --cabernet-soft: #3a141d;
  --ink: #211713;
}

/* ── BODY ── */
body,
.page-content-area, .content-main, .hub-content-narrative,
.tour-sec, .home-faq-grid, .sp-content-section {
  font-family: var(--sans) !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  color: var(--coffee) !important;
}

/* ── HEADINGS — Lora serif ── */
h1, h2, h3, h4,
.tour-hero-inner h1, .hub-hero-inner h1, .home-hero-copy h1,
.tour-sec h2, .tour-sec h3,
.hub-content-narrative h2, .hub-content-narrative h3,
.home-quickfind h2,
.tour-card-body h3, .fleet-card-body h3,
.hub-city-pill strong,
.sp-section-head h2, .tour-section-head h2,
.section-intro h2, .home-cat-content h3,
.timeline-section h2, .home-by-pickup h2,
.eeat-card h3, .home-cat-card h3,
.global-fleet-slider h2,
.testimonial-card p {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  color: var(--wine);
}

/* Headings on dark backgrounds */
.tour-hero-inner h1, .hub-hero-inner h1,
.home-hero-copy h1, .timeline-section h2,
.global-fleet-slider .tour-section-head h2,
.sp-journey h2, .home-cat-content h3,
.sp-how-works h2 {
  color: white !important;
}

/* H1 hero sizing */
.home-hero-copy h1, .tour-hero-inner h1, .hub-hero-inner h1 {
  font-weight: 500 !important;
  letter-spacing: -0.02em !important;
  font-size: clamp(38px, 5vw, 64px) !important;
  line-height: 1.05 !important;
}

/* ── EYEBROW — JetBrains Mono uppercase tracked ── */
.eyebrow, .crumbs,
.tour-card-foot span:first-child,
.fleet-card-tier, .fleet-card-model,
.tour-meta-item strong,
.field-card span, .home-stats span,
.banner-breadcrumb,
.sp-route-tag span,
.hub-route span,
.nwtl-bk-from,
.nwtl-bk-counts label > span:first-child,
.nwtl-bk-addons legend,
.nwtl-bk-row > span:first-child,
.tour-cat-badge,
.area-pill,
.pill {
  font-family: var(--mono) !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
}

/* Eyebrow color — muted on light bg, gold on dark */
.eyebrow { color: var(--muted) !important; }
.eyebrow.gold,
.tour-hero-inner .eyebrow, .hub-hero-inner .eyebrow,
.timeline-section .eyebrow, .sp-journey .eyebrow,
.sp-how-works .eyebrow, .global-fleet-slider .eyebrow,
.home-by-pickup .eyebrow, .global-areas .eyebrow,
.home-areas-preview .eyebrow, .eeat-section .eyebrow,
.global-cta .eyebrow { color: var(--gold) !important; }

/* ── PILL BUTTONS — border-radius 999px ── */
.btn, .nwtl-bk-submit, .header-cta {
  font-family: var(--sans) !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 0.01em !important;
  padding: 14px 24px !important;
  border-radius: 999px !important;
  min-height: 48px !important;
}
.btn-gold {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-glow) 100%) !important;
  color: var(--coffee) !important;
  border: 1px solid var(--gold) !important;
  box-shadow: 0 1px 2px rgba(33,23,19,.04), 0 4px 12px -4px rgba(33,23,19,.06);
}
.btn-gold:hover {
  box-shadow: 0 10px 32px -10px rgba(216,181,109,.55) !important;
  transform: translateY(-1px);
}
.btn-dark, .btn-secondary {
  background: linear-gradient(160deg, var(--wine) 0%, var(--coffee) 100%) !important;
  color: var(--ivory) !important;
  border: 1px solid var(--wine) !important;
}
.btn-outline, .btn-outline-dark {
  border-radius: 999px !important;
  border: 1px solid var(--gold) !important;
}
.btn-outline-dark { color: var(--wine) !important; }
.btn-outline-dark:hover { background: var(--wine) !important; color: white !important; }

/* Booking widget submit — pill + new gradient */
.nwtl-bk-submit {
  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-glow) 100%) !important;
  color: var(--coffee) !important;
  border-radius: 999px !important;
  min-height: 52px !important;
  padding: 14px 24px !important;
  font-weight: 800 !important;
}

/* ── PARAGRAPH + LINK ── */
p, .content-main p, .hub-content-narrative p, .tour-sec p {
  font-family: var(--sans) !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  color: var(--coffee) !important;
}
.content-main p, .hub-content-narrative p { color: var(--muted) !important; }
.content-main a, .hub-content-narrative a {
  color: var(--wine) !important;
  text-decoration: underline;
  text-decoration-color: rgba(43,15,22,.3);
}

/* ── CARD SURFACES — softer radius + shadow ── */
.tour-card, .fleet-card, .hub-city-pill, .home-cat-card,
.sidebar-card, .eeat-card, .testimonial-card,
.sp-vehicle-card, .sp-occ-card, .sp-step,
.tour-vehicle-card, .nwtl-bk-widget {
  border-radius: 14px !important;
  box-shadow: 0 1px 2px rgba(33,23,19,.04), 0 4px 12px -4px rgba(33,23,19,.06);
}
.tour-card:hover, .fleet-card:hover, .home-cat-card:hover,
.sp-vehicle-card:hover, .sp-occ-card:hover, .tour-vehicle-card:hover {
  box-shadow: 0 10px 30px -10px rgba(33,23,19,.18), 0 2px 8px -2px rgba(33,23,19,.08) !important;
  transform: translateY(-2px);
}

/* Selection */
::selection { background: var(--gold); color: var(--coffee); }
