/* Airport Chauffeur Cars — theme layer over Bootstrap 5.3 */
/* ==========================================================================
   AIRPORT CHAUFFEUR CARS — home page theme layer over Bootstrap 5.3
   Everything below is an override or an addition. Layout is Bootstrap.
   ========================================================================== */

/* ---------- 1. Brand tokens + Bootstrap variable overrides ---------- */
:root{
  /* Palette taken from the logo: burgundy #7E2019 and gold #D89922.

     Two variants exist for reasons of legibility rather than taste:
     --acc-brass-ink is a darker gold for small text, because #D89922 on white
     measures 2.47:1 and is unreadable at body size; and --acc-on-brass is the
     text colour for gold buttons, where white measures 2.47:1 and fails too.
     The neutrals are warmed, since cool greys look dirty beside burgundy.
     --acc-ink-deep #4A0F0B is the near-black burgundy used for the footer and
     banner overlays; gold sits on it at 6.2:1, better than on the base. */
  --acc-ink:#7E2019;
  --acc-ink-deep:#4A0F0B;
  --acc-ink-soft:#94322A;
  --acc-slate:#5E514D;
  --acc-mist:#FAF6F2;
  --acc-brass:#D89922;
  --acc-brass-lift:#E8B04A;
  --acc-brass-wash:#FBF0DC;
  --acc-brass-ink:#8F6115;
  --acc-on-brass:#4A0F0B;
  --acc-line:#EBE0D8;
  /* Height of the fixed mobile call bar. The floating buttons derive their
     offset from this rather than repeating a guessed number. */
  --acc-dock-h:76px;
  --acc-line-dark:rgba(255,255,255,.14);
  --acc-shadow:0 1px 2px rgba(11,31,51,.06), 0 8px 24px rgba(11,31,51,.07);
  --acc-shadow-lg:0 2px 4px rgba(11,31,51,.08), 0 18px 44px rgba(11,31,51,.14);

  /* Bootstrap globals */
  --bs-body-font-family:"Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-font-size:1rem;
  --bs-body-color:#0B1F33;
  --bs-body-bg:#fff;
  --bs-border-color:#DCE3E9;
  --bs-emphasis-color:#0B1F33;
  --bs-link-color:#C08A2E;
  --bs-link-hover-color:#D9A445;
  --bs-border-radius:.75rem;
  --bs-border-radius-lg:1.25rem;
}
body{line-height:1.65; -webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.display-title{font-family:"Fraunces", Georgia, serif; font-weight:400; line-height:1.12; letter-spacing:-.015em}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 1rem); overflow-x:clip}
:focus-visible{outline:3px solid var(--acc-brass-lift); outline-offset:3px}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} *{animation-duration:.001ms!important; transition-duration:.001ms!important} }

/* ---------- 2. Buttons (Bootstrap 5.3 CSS-variable API) ---------- */
.btn{--bs-btn-font-weight:700; --bs-btn-padding-y:.8rem; --bs-btn-padding-x:1.6rem; --bs-btn-font-size:.95rem}
.btn-brass{
  --bs-btn-color:var(--acc-on-brass); --bs-btn-bg:var(--acc-brass); --bs-btn-border-color:var(--acc-brass);
  --bs-btn-hover-color:var(--acc-on-brass); --bs-btn-hover-bg:var(--acc-brass-lift); --bs-btn-hover-border-color:var(--acc-brass-lift);
  --bs-btn-active-color:#fff; --bs-btn-active-bg:#AE7A22; --bs-btn-active-border-color:#AE7A22;
  --bs-btn-focus-shadow-rgb:217,164,69;
}
.btn-ink{
  --bs-btn-color:#fff; --bs-btn-bg:var(--acc-ink); --bs-btn-border-color:var(--acc-ink);
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--acc-ink-soft); --bs-btn-hover-border-color:var(--acc-ink-soft);
  --bs-btn-active-bg:#071726; --bs-btn-active-border-color:#071726;
  --bs-btn-focus-shadow-rgb:11,31,51;
}
.btn-outline-ink{
  --bs-btn-color:var(--acc-ink); --bs-btn-border-color:var(--acc-line); --bs-btn-bg:#fff;
  --bs-btn-hover-color:var(--acc-ink); --bs-btn-hover-bg:#fff; --bs-btn-hover-border-color:var(--acc-ink);
  --bs-btn-focus-shadow-rgb:11,31,51;
}
.btn-outline-light-thin{
  --bs-btn-color:#fff; --bs-btn-border-color:rgba(255,255,255,.4); --bs-btn-bg:transparent;
  --bs-btn-hover-color:#fff; --bs-btn-hover-bg:rgba(255,255,255,.12); --bs-btn-hover-border-color:#fff;
  --bs-btn-focus-shadow-rgb:255,255,255;
}
.link-more{
  display:inline-flex; align-items:center; gap:.45rem; font-weight:700; font-size:.875rem;
  color:var(--acc-brass-ink); text-decoration:none; border-bottom:1.5px solid transparent; padding-bottom:1px;
}
.link-more:hover{color:var(--acc-brass-ink); border-bottom-color:var(--acc-brass-ink)}

/* ---------- 3. Section helpers ---------- */
.sec{padding-block:5.5rem}
.sec-sm{padding-block:4rem}
.bg-mist{background:var(--acc-mist)}
.bg-ink{background:var(--acc-ink); color:#fff}
.bg-ink-deep{background:var(--acc-ink-deep); color:rgba(255,255,255,.68)}
.text-slate{color:var(--acc-slate)!important}
.text-brass{color:var(--acc-brass-ink)!important}
.rule{width:52px; height:3px; background:var(--acc-brass); border-radius:2px; margin-bottom:1.25rem}
.sec-title{font-size:clamp(1.75rem,3.4vw,2.75rem)}
.sec-lead{color:var(--acc-slate); font-size:1.0625rem}
.bg-ink .sec-lead{color:rgba(255,255,255,.72)}
@media (max-width:767.98px){ .sec{padding-block:3.5rem} .sec-sm{padding-block:2.75rem} }

/* ---------- 4. Top bar ---------- */
.topbar{background:var(--acc-ink-deep); color:rgba(255,255,255,.82); font-size:.845rem}
.topbar a{color:inherit; text-decoration:none}
.topbar a:hover{color:var(--acc-brass-lift)}
.topbar a.btn.btn-brass.btn-book.rounded-pill:hover{color:var(--acc-ink);}
.topbar a:not(.btn) :is(.fa-solid,.fa-regular,.fa-brands),
.topbar .social-btn :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-lift)}
.topbar .social-btn:hover :is(.fa-solid,.fa-regular,.fa-brands){color:#fff}
.topbar .btn-book :is(.fa-solid,.fa-regular,.fa-brands){color:#fff}
.social-btn{
  width:29px; height:29px; display:inline-grid; place-items:center; border-radius:50%;
  border:1px solid rgba(255,255,255,.18); font-size:.8rem; transition:background .18s,border-color .18s;
}
.social-btn:hover{background:var(--acc-brass); border-color:var(--acc-brass); color:#fff!important}
.btn-book{
  --bs-btn-padding-y:.45rem; --bs-btn-padding-x:1.1rem; --bs-btn-font-size:.8125rem;
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
  box-shadow:0 4px 14px rgba(192,138,46,.35); transition:transform .18s ease, box-shadow .18s ease;
}
.btn-book:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(192,138,46,.45)}
.btn-book .btn-book-arrow{font-size:.7rem; transition:transform .18s ease}
.btn-book:hover .btn-book-arrow{transform:translateX(3px)}

/* ---------- 5. Navbar ---------- */
.site-nav{background:#fff; border-bottom:1px solid var(--acc-line); transition:box-shadow .2s}
.site-nav.is-stuck{box-shadow:0 6px 26px rgba(11,31,51,.10)}
.navbar-brand img{height:100px; width:auto; max-width:100%; object-fit:contain}
.site-nav .nav-link{font-weight:600; font-size:.95rem; color:var(--acc-ink); padding:.75rem .85rem!important}
.site-nav .nav-link:hover,.site-nav .nav-link.active,.site-nav .show > .nav-link{color:var(--acc-brass-ink)}
.site-nav .dropdown-menu{
  --bs-dropdown-border-color:var(--acc-line);
  --bs-dropdown-border-radius:.75rem;
  --bs-dropdown-link-hover-bg:var(--acc-mist);
  --bs-dropdown-link-color:var(--acc-slate);
  --bs-dropdown-link-hover-color:var(--acc-ink);
  --bs-dropdown-link-active-bg:var(--acc-mist);
  --bs-dropdown-link-active-color:var(--acc-ink);
  --bs-dropdown-item-padding-y:.55rem;
  --bs-dropdown-item-padding-x:.75rem;
  --bs-dropdown-spacer:.6rem;
  padding:1rem; box-shadow:var(--acc-shadow-lg);
}
.site-nav .dropdown-item{border-radius:.4rem; font-weight:500; font-size:.9rem}
.dropdown-mega{width:min(600px,92vw)}
.dropdown-locations{width:min(420px,92vw)}
.dropdown-foot{margin-top:.85rem; padding-top:.85rem; border-top:1px solid var(--acc-line); font-size:.85rem; color:var(--acc-slate)}
.navbar-toggler{border-color:var(--acc-line); padding:.55rem .7rem}
.navbar-toggler:focus{box-shadow:none}
@media (min-width:992px){
  /* open dropdowns on hover for pointer devices */
  @media (hover:hover){
    .site-nav .nav-item.dropdown:hover > .dropdown-menu{display:block; margin-top:0}
  }
}
@media (max-width:991.98px){
  .site-nav .dropdown-menu{border:0; box-shadow:none; padding:0 0 .5rem .5rem}
  .navbar-brand img{height:50px}
}

/* ---------- 6. Hero carousel ---------- */
.hero .carousel-item{height:clamp(520px,74vh,700px)}
.hero .carousel-item > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.hero .carousel-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg,rgba(7,23,38,.94) 0%,rgba(7,23,38,.82) 38%,rgba(7,23,38,.38) 72%,rgba(7,23,38,.30) 100%);
}
.hero-inner{position:relative; z-index:2; height:100%; display:flex; align-items:center; padding-block:4rem 6.5rem}
.hero-copy{max-width:620px; color:#fff}
.hero-copy h1{font-size:clamp(2.25rem,5.4vw,3.875rem); line-height:1.04}
.hero-copy p.lead{color:rgba(255,255,255,.8); font-size:clamp(1rem,1.5vw,1.1875rem); max-width:52ch}
.hero-flag{
  display:inline-flex; align-items:center; gap:.55rem; padding:.4rem .95rem .4rem .4rem; border-radius:999px;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); font-size:.845rem; font-weight:600;
}
.hero-flag b{background:var(--acc-brass); color:#fff; padding:.15rem .6rem; border-radius:999px; font-size:.75rem}
.hero-points{display:flex; flex-wrap:wrap; gap:.85rem 1.9rem; font-size:.9rem; font-weight:600; color:rgba(255,255,255,.9)}
.hero-points li{display:flex; align-items:center; gap:.55rem}
.hero-points :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-lift); font-size:1.1rem}
/* align carousel controls to the Bootstrap container edge at every breakpoint */
.hero{--acc-container:100%}
@media (min-width:576px){ .hero{--acc-container:540px} }
@media (min-width:768px){ .hero{--acc-container:720px} }
@media (min-width:992px){ .hero{--acc-container:960px} }
@media (min-width:1200px){ .hero{--acc-container:1140px} }
@media (min-width:1400px){ .hero{--acc-container:1320px} }
.hero .carousel-indicators{
  margin:0 0 2.5rem; justify-content:flex-start; right:auto;
  left:calc((100% - var(--acc-container))/2 + .75rem);
}
.hero .carousel-indicators [data-bs-target]{width:34px; height:4px; border-radius:2px; border:0; background:rgba(255,255,255,.32); opacity:1; margin-inline:0 .55rem}
.hero .carousel-indicators .active{background:var(--acc-brass-lift); width:52px}
.hero .carousel-control-prev,.hero .carousel-control-next{
  width:48px; height:48px; top:auto; bottom:2.2rem; opacity:1; border-radius:50%;
  border:1px solid rgba(255,255,255,.32); background:rgba(7,23,38,.45);
  color:#fff; font-size:1.05rem; backdrop-filter:blur(4px);
}

/* slide motion: image settles from a slow zoom, copy rises in behind it */
@keyframes heroZoom{ from{transform:scale(1.08)} to{transform:scale(1)} }
@keyframes heroRise{ from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none} }
.hero .carousel-item.active > img{animation:heroZoom 8s ease-out both}
.hero .carousel-item.active .hero-copy > *{animation:heroRise .6s ease-out both}
.hero .carousel-item.active .hero-copy > *:nth-child(1){animation-delay:.05s}
.hero .carousel-item.active .hero-copy > *:nth-child(2){animation-delay:.14s}
.hero .carousel-item.active .hero-copy > *:nth-child(3){animation-delay:.23s}
.hero .carousel-item.active .hero-copy > *:nth-child(4){animation-delay:.32s}
.hero .carousel-item.active .hero-copy > *:nth-child(5){animation-delay:.41s}
.hero .carousel-control-next{left:auto; right:calc((100% - var(--acc-container))/2 + .75rem)}
.hero .carousel-control-prev{left:auto; right:calc((100% - var(--acc-container))/2 + 4rem)}
.hero .carousel-control-prev:hover,.hero .carousel-control-next:hover{background:var(--acc-brass); border-color:var(--acc-brass)}
@media (max-width:767.98px){
  .hero .carousel-control-prev,.hero .carousel-control-next{display:none}
}
@media (max-width:991.98px){
  .hero-inner{padding-block:3rem 6rem}
  .hero .carousel-control-prev,.hero .carousel-control-next{width:42px; height:42px}
}
/* ---------- 7. Booking panel ("boarding pass") ---------- */
.booking{position:relative; z-index:20; padding-top:3.5rem}
.pass{background:#fff; border-radius:1.25rem; box-shadow:var(--acc-shadow-lg); position:relative}
.pass::before,.pass::after{content:""; position:absolute; top:58px; width:22px; height:22px; border-radius:50%; background:#fff; z-index:3}
.pass::before{left:-11px}
.pass::after{right:-11px}
.pass .nav-tabs{
  --bs-nav-tabs-border-width:0;
  background:var(--acc-ink); border-radius:1.25rem 1.25rem 0 0; overflow:hidden; flex-wrap:nowrap;
}
.pass .nav-tabs .nav-item{flex:1}
.pass .nav-tabs .nav-link{
  width:100%; border:0; border-bottom:3px solid transparent; border-radius:0;
  color:rgba(255,255,255,.66); font-weight:700; font-size:.95rem; padding:1.15rem .8rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
}
.pass .nav-tabs .nav-link:hover{color:#fff; background:rgba(255,255,255,.05)}
.pass .nav-tabs .nav-link.active{color:#fff; background:rgba(255,255,255,.07); border-bottom-color:var(--acc-brass)}
.pass .tab-content{padding:1.9rem 1.9rem 1.6rem}
.pass-note{display:flex; align-items:center; gap:.55rem; font-size:.845rem; color:var(--acc-slate)}
.pass-note :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-ink); font-size:1rem}

.form-label{font-size:.8125rem; font-weight:700; color:var(--acc-ink); margin-bottom:.4rem}
.form-label .req{color:var(--acc-brass-ink)}
.form-label .opt{font-weight:500; color:#7A8B99}
.input-group-text{background:#fff; border:1.5px solid var(--acc-line); border-right:0; color:var(--acc-slate); padding-inline:.85rem}
.form-control,.form-select{border:1.5px solid var(--acc-line); padding:.75rem .9rem; font-size:.95rem}
.input-group > .form-control,.input-group > .form-select{border-left:0; padding-left:0}
.form-control:focus,.form-select:focus{border-color:var(--acc-brass-ink); box-shadow:0 0 0 .2rem var(--acc-brass-wash)}
.input-group:focus-within .input-group-text{border-color:var(--acc-brass-ink)}
.form-control::placeholder{color:#9AA9B6}

/* trip-type segmented control (btn-check) */
.trip-group{border:1.5px solid var(--acc-line); border-radius:.5rem; overflow:hidden; display:flex; height:49.6px}
.trip-group .btn{
  --bs-btn-bg:transparent; --bs-btn-border-color:transparent; --bs-btn-color:var(--acc-slate);
  --bs-btn-hover-bg:var(--acc-mist); --bs-btn-hover-border-color:transparent; --bs-btn-hover-color:var(--acc-ink);
  --bs-btn-active-bg:var(--acc-ink); --bs-btn-active-border-color:var(--acc-ink); --bs-btn-active-color:#fff;
  --bs-btn-font-weight:600; --bs-btn-padding-y:.5rem; --bs-btn-font-size:.9rem;
  flex:1; border-radius:0;
}
.assure{display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; font-size:.845rem; color:var(--acc-slate)}
.assure span{display:inline-flex; align-items:center; gap:.45rem}
.assure :is(.fa-solid,.fa-regular,.fa-brands){color:#2E8B57}
@media (max-width:991.98px){
  .booking{padding-top:2.5rem}
  .pass .nav-tabs .nav-link{flex-direction:column; gap:.3rem; font-size:.85rem; padding:.9rem .5rem}
  .pass::before,.pass::after{top:52px}
}
@media (max-width:575.98px){
  .booking{padding-top:2rem}
  .pass .tab-content{padding:1.35rem 1.1rem 1.2rem}
}

/* ---------- 8. Trust strip ---------- */
.trust-num{font-family:"Fraunces",serif; font-size:2.125rem; line-height:1; color:var(--acc-ink)}
.trust-ico{width:44px; height:44px; border-radius:50%; background:var(--acc-brass-wash); color:var(--acc-brass); display:grid; place-items:center; font-size:1.25rem; flex:none}

/* ---------- 9. Welcome ---------- */
.welcome-img{border-radius:1.25rem; width:100%; height:520px; object-fit:cover}
.badge-years{
  position:absolute; right:-1rem; bottom:2.25rem; background:var(--acc-ink); color:#fff;
  padding:1.35rem 1.6rem; border-radius:.75rem; box-shadow:var(--acc-shadow-lg); text-align:center;
}
.badge-years b{display:block; font-family:"Fraunces",serif; font-size:2.5rem; line-height:1; color:var(--acc-brass-lift)}
.badge-years span{font-size:.8125rem; color:rgba(255,255,255,.8)}
.tick-list li{display:flex; gap:.7rem; align-items:flex-start; font-size:.95rem; font-weight:600}
.tick-list :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-ink); font-size:1.15rem; line-height:1.35}
.owner-mark{width:52px; height:52px; border-radius:50%; background:var(--acc-ink); color:var(--acc-brass-lift); display:grid; place-items:center; font-family:"Fraunces",serif; font-size:1.25rem; flex:none}
@media (max-width:991.98px){ .welcome-img{height:340px} .badge-years{right:1.25rem; bottom:1.25rem; padding:1rem 1.25rem} .badge-years b{font-size:1.9rem} }

/* ---------- 10. Cards (fleet / services / posts) ---------- */
.card-acc{border:1px solid var(--acc-line); border-radius:1.25rem; overflow:hidden; height:100%; transition:box-shadow .2s,border-color .2s,transform .2s}
.card-acc:hover{border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.card-media{aspect-ratio:16/10; background:var(--acc-mist); overflow:hidden}
.card-media img{width:100%; height:100%; object-fit:cover}
.seat-pill{
  position:absolute; left:.9rem; top:.9rem; background:rgba(7,23,38,.88); color:#fff;
  padding:.35rem .8rem; border-radius:999px; font-size:.78rem; font-weight:700;
}
.seat-pill :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-lift)}
.car-model{font-size:.845rem; color:var(--acc-slate)}
.spec-list li{display:flex; gap:.5rem; align-items:center; font-size:.845rem; color:var(--acc-slate)}
.spec-list :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass-ink)}
.svc-ico{width:56px; height:56px; border-radius:14px; background:var(--acc-ink); color:var(--acc-brass-lift); display:grid; place-items:center; font-size:1.5rem}
.card-acc.svc:hover{transform:translateY(-4px)}
.post-tag{background:var(--acc-brass-wash); color:#8A6217; padding:.25rem .6rem; border-radius:999px; font-weight:700; font-size:.75rem}
.post-body h3 a{color:inherit; text-decoration:none}
.post-body h3 a:hover{color:var(--acc-brass-ink)}

/* ---------- 11. Steps / CTA band ---------- */
.step-card{padding:1.9rem 1.6rem; border-radius:1.25rem; background:rgba(255,255,255,.05); border:1px solid var(--acc-line-dark); height:100%}
.step-card b{display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--acc-brass); color:#fff; font-size:1rem; font-weight:800}
.band{position:relative; background:var(--acc-ink); color:#fff; overflow:hidden}
.band::before{
  content:""; position:absolute; inset:0; opacity:.16;
  background:url("../images/fleet4.jpeg") center/cover no-repeat;
}
.band > .container{position:relative; z-index:2}
.phone-ico{width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); display:grid; place-items:center; font-size:1.3rem; color:var(--acc-brass-lift); flex:none}

/* ---------- 12. Testimonials ---------- */
.quote-card{border:1px solid var(--acc-line); border-radius:1.25rem; background:#fff; padding:2rem 1.75rem; height:100%; display:flex; flex-direction:column}
.quote-card .stars{color:var(--acc-brass-ink); font-size:1rem; letter-spacing:1px}
.quote-card blockquote{font-size:1rem; line-height:1.7; flex:1}
.avatar{width:46px; height:46px; border-radius:50%; background:var(--acc-brass-wash); color:var(--acc-brass); display:grid; place-items:center; font-weight:800; flex:none}
#quotesCarousel .carousel-control-prev,#quotesCarousel .carousel-control-next{
  position:static; width:46px; height:46px; border-radius:50%; border:1.5px solid var(--acc-line);
  background:#fff; color:var(--acc-ink); opacity:1; transition:.18s;
}
#quotesCarousel .carousel-control-prev:hover,#quotesCarousel .carousel-control-next:hover{background:var(--acc-ink); border-color:var(--acc-ink); color:#fff}

/* ---------- 13. FAQ accordion ---------- */
.accordion-acc{
  --bs-accordion-border-color:var(--acc-line);
  --bs-accordion-border-radius:.75rem;
  --bs-accordion-btn-padding-y:1.25rem;
  --bs-accordion-btn-padding-x:1.35rem;
  --bs-accordion-body-padding-x:1.35rem;
  --bs-accordion-active-bg:#fff;
  --bs-accordion-active-color:var(--acc-ink);
  --bs-accordion-btn-focus-box-shadow:0 0 0 .2rem var(--acc-brass-wash);
  --bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23C08A2E'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon:var(--bs-accordion-btn-icon);
}
.accordion-acc .accordion-item{border-radius:.75rem!important; margin-bottom:.75rem; overflow:hidden}
.accordion-acc .accordion-item:has(.accordion-button:not(.collapsed)){border-color:var(--acc-brass-ink)}
.accordion-acc .accordion-button{font-weight:700; font-size:1.0625rem; box-shadow:none}
.accordion-acc .accordion-body{color:var(--acc-slate); font-size:.97rem; padding-top:0}
.faq-help{padding:1.5rem; border-radius:.75rem; background:var(--acc-ink); color:#fff}
@media (min-width:992px){ .faq-aside{position:sticky; top:calc(var(--nav-h) + 1.25rem)} }

/* ---------- 14. Final CTA + footer ---------- */
.final-in{background:var(--acc-ink); border-radius:1.25rem; padding:3.5rem 3rem; color:#fff}
@media (max-width:575.98px){ .final-in{padding:2.5rem 1.4rem} }
.foot a{color:inherit; text-decoration:none}
.foot h4{font-family:var(--bs-body-font-family); color:#fff; font-size:.95rem; font-weight:800}
.foot-links a{transition:color .16s,padding-left .16s; display:inline-block}
.foot-links a:hover,.foot-contact a:hover{color:var(--acc-brass-lift)}
.foot-links li,.foot-contact li{margin-bottom:.7rem}
.foot-contact li{display:flex; gap:.75rem}
.foot-contact :is(.fa-solid,.fa-regular,.fa-brands){color:var(--acc-brass); margin-top:.15rem}
.foot-abn{display:inline-block; padding:.35rem .8rem; border:1px solid var(--acc-line-dark); border-radius:.4rem; font-size:.8125rem; color:rgba(255,255,255,.8)}
.foot-divider{border-top:1px solid var(--acc-line-dark)}

/* ---------- 15. Mobile dock + WhatsApp ---------- */
.dockbar{
  position:fixed; inset:auto 0 0 0; z-index:1030; display:none; gap:.6rem; background:#fff;
  border-top:1px solid var(--acc-line); padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));
  box-shadow:0 -6px 24px rgba(11,31,51,.12);
}
.dockbar .btn{flex:1}
@media (max-width:767.98px){
  .dockbar{display:flex}
  /* The bar itself adds the phone's home-bar inset to its own padding, so the
     space reserved for it has to include that inset too — otherwise the last
     centimetre of every page sits underneath it on an iPhone. */
  body{padding-bottom:calc(var(--acc-dock-h) + env(safe-area-inset-bottom))}
  body.no-dockbar{padding-bottom:0}
}

.fab-stack{
  position:fixed; right:1.1rem; bottom:1.6rem; z-index:1029;
  display:flex; flex-direction:column-reverse; gap:.6rem;
  transition:opacity .2s ease, transform .2s ease;
}

/* Out of the way.
   Added by JavaScript on phones whenever a form field has focus. The buttons
   are anchored to the viewport, so on a long form they end up sitting over
   whichever field happens to be beside them — and a mis-tap on the WhatsApp
   button mid-booking loses the booking. pointer-events:none matters as much
   as the fade: a button that has faded out must not still be tappable. */
.fab-stack.is-away{opacity:0; transform:translateY(10px) scale(.92); pointer-events:none}

@media (max-width:767.98px){
  .fab-stack{
    right:.7rem;
    /* Clear the call bar and the phone's own home-bar inset. */
    bottom:calc(var(--acc-dock-h) + .5rem + env(safe-area-inset-bottom));
    gap:.45rem;
  }
  body.no-dockbar .fab-stack{
    bottom:calc(1rem + env(safe-area-inset-bottom));
  }
}

.fab{
  width:54px; height:54px; border-radius:50%; border:0; display:grid; place-items:center;
  font-size:1.35rem; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease;
}
.fab:hover{transform:translateY(-2px)}

/* Smaller on phones. Two 54px circles is a lot of a 375px screen; 44px is
   still above the 44px minimum touch target. */
@media (max-width:767.98px){
  .fab{width:44px; height:44px; font-size:1.05rem}
  .wa-float{font-size:1.35rem}
  .fab-stack--m-wa .to-top{display:none}
  .fab-stack--m-top .wa-float{display:none}
  .fab-stack--m-none{display:none}
}
.wa-float{background:#25D366; color:#fff; font-size:1.7rem; box-shadow:0 8px 24px rgba(37,211,102,.4)}
.wa-float:hover{color:#fff}
.to-top{
  background:var(--acc-ink); color:#fff; box-shadow:0 8px 24px rgba(11,31,51,.32);
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .25s ease, visibility .25s, transform .25s ease, background .18s ease;
}
.to-top:hover{background:var(--acc-brass); color:#fff}
.to-top.is-on{opacity:1; visibility:visible; transform:none}

/* ==========================================================================
   VARIANT: hero with the booking panel docked right (index-hero-form.html)
   Scoped to .hero--split / .pass--hero so index.html is unaffected.

   The slider is a background layer (absolute), the panel sits in normal flow.
   That way the section grows to whatever height the form needs instead of the
   form overflowing a fixed-height hero and hiding behind the sticky header.
   ========================================================================== */
.hero--split{position:relative; display:flex; align-items:center; min-height:clamp(620px,88vh,880px)}
.hero--split #heroCarousel{position:absolute; inset:0; z-index:1}
.hero--split .carousel-inner,.hero--split .carousel-item{height:100%}
.hero--split .hero-inner{padding-block:5rem 7rem}
.hero--split .hero-copy{max-width:min(560px,54%)}
.hero--split .hero-copy h1{font-size:clamp(2rem,3.4vw,3rem)}

/* panel column — in flow, so it sets the section height */
.hero-form-wrap{position:relative; z-index:15; width:100%; padding-block:3rem}

/* slider controls move to the left so they never sit under the panel */
.hero--split .carousel-control-prev,.hero--split .carousel-control-next{
  right:auto; bottom:1.5rem; width:44px; height:44px; font-size:.95rem;
}
.hero--split .carousel-control-prev{left:calc((100% - var(--acc-container))/2 + .75rem)}
.hero--split .carousel-control-next{left:calc((100% - var(--acc-container))/2 + 4rem)}
.hero--split .carousel-indicators{
  margin:0; bottom:2.6rem; justify-content:flex-start;
  left:calc((100% - var(--acc-container))/2 + 7.5rem); right:auto;
}

.pass--hero{border-radius:1rem; box-shadow:0 24px 60px rgba(7,23,38,.45)}
.pass--hero::before,.pass--hero::after{display:none}          /* no ticket notches over a photo */
.pass--hero .nav-tabs{border-radius:1rem 1rem 0 0}
.pass--hero .nav-tabs .nav-link{flex-direction:column; gap:.3rem; font-size:.78rem; padding:.8rem .35rem}
.pass--hero .tab-content{padding:1.25rem 1.25rem 1.15rem}
.pass--hero .row{--bs-gutter-x:.75rem}
.pass--hero .pass-note{font-size:.78rem; line-height:1.45; margin-bottom:1rem!important}
.pass--hero .form-label{font-size:.75rem; margin-bottom:.3rem}
.pass--hero .form-label .opt{display:none}                    /* hint text is too long at this width */
.pass--hero .form-control,.pass--hero .form-select{padding:.6rem .7rem; font-size:.875rem}
.pass--hero .input-group-text{padding-inline:.7rem; font-size:.85rem}
.pass--hero .trip-group{height:41.6px}
.pass--hero .trip-group .btn{--bs-btn-font-size:.8rem}
.pass--hero .assure{font-size:.75rem; gap:.2rem .8rem}
.pass--hero .btn-brass{--bs-btn-padding-y:.7rem; --bs-btn-font-size:.9rem}

@media (max-width:1199.98px){
  .hero--split .hero-copy .lead{font-size:1rem}
  .hero--split .hero-points{gap:.6rem 1.2rem; font-size:.85rem}
}

/* below lg the slider returns to normal flow and the panel stacks under it */
@media (max-width:991.98px){
  .hero--split{display:block; min-height:0}
  .hero--split #heroCarousel{position:static}
  .hero--split .carousel-inner,.hero--split .carousel-item{height:clamp(440px,62vh,560px)}
  .hero--split .hero-inner{padding-block:3rem 5.5rem}
  .hero--split .hero-copy{max-width:100%}
  .hero--split .carousel-control-prev,.hero--split .carousel-control-next{display:none}
  .hero--split .carousel-indicators{left:calc((100% - var(--acc-container))/2 + .75rem); bottom:1.8rem}
  .hero-form-wrap{background:var(--acc-mist); padding-block:2.5rem}
  .pass--hero{box-shadow:var(--acc-shadow-lg)}
  .pass--hero .nav-tabs .nav-link{flex-direction:row; font-size:.85rem}
  .pass--hero .tab-content{padding:1.5rem}
}

/* ==========================================================================
   INNER PAGES
   about · contact · services · service-details · fleet
   locations · location-details · blog · blog-details
   ========================================================================== */

/* ---- Shared page header ---- */
.page-head{
  position:relative; background:var(--acc-ink-deep); color:#fff;
  padding-block:5rem 4.5rem; overflow:hidden;
}
.page-head::before{
  content:""; position:absolute; inset:0; background:var(--head-img) center/cover no-repeat; opacity:.28;
}
.page-head::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg,rgba(7,23,38,.94),rgba(7,23,38,.72));
}
.page-head > .container{position:relative; z-index:2}
.page-head--slim{padding-block:3.5rem 3rem}
.page-head--service{padding-block:5.5rem 5rem}
.page-title{font-size:clamp(2rem,4vw,3.25rem); max-width:20ch; margin-bottom:1rem}
.page-title-lg{font-size:clamp(2rem,4vw,3.25rem); margin-bottom:1rem}
.page-lead{color:rgba(255,255,255,.78); font-size:1.0625rem; max-width:56ch; margin-bottom:0}
.page-kicker{color:var(--acc-brass-lift); font-weight:700; font-size:.875rem; margin-bottom:.5rem}
.page-crumbs{--bs-breadcrumb-divider-color:rgba(255,255,255,.4); font-size:.85rem; margin-bottom:1.25rem}
.page-crumbs a{color:rgba(255,255,255,.72); text-decoration:none}
.page-crumbs a:hover{color:var(--acc-brass-lift)}
.page-crumbs .breadcrumb-item.active{color:rgba(255,255,255,.6)}
.page-crumbs--dark{--bs-breadcrumb-divider-color:var(--acc-slate)}
.page-crumbs--dark a{color:var(--acc-slate)}
.page-crumbs--dark .breadcrumb-item.active{color:var(--acc-slate)}

/* ---- Small reusable blocks ---- */
.mini-card{
  display:flex; gap:.85rem; align-items:flex-start; height:100%;
  padding:1.1rem 1.15rem; border:1px solid var(--acc-line); border-radius:.85rem; background:#fff;
}
.mini-card > i{color:var(--acc-brass-ink); font-size:1.15rem; margin-top:.2rem}
.mini-card strong{display:block; font-size:.95rem}
.mini-card span{font-size:.82rem; color:var(--acc-slate); line-height:1.5}
.stat-tile{text-align:center; padding:1.75rem 1rem; border:1px solid var(--acc-line); border-radius:1rem; background:#fff; height:100%}
.stat-tile b{display:block; font-family:"Fraunces",serif; font-size:2.25rem; line-height:1; color:var(--acc-ink)}
.stat-tile span{font-size:.85rem; color:var(--acc-slate)}
.check-rows li{display:flex; gap:.85rem; padding:.85rem 0; border-bottom:1px dashed var(--acc-line); font-size:.97rem; color:var(--acc-slate)}
.check-rows li:last-child{border-bottom:0}
.check-rows i{color:var(--acc-brass-ink); margin-top:.3rem}
.check-rows strong{color:var(--acc-ink)}
.empty-state{margin-top:2rem; padding:2rem; text-align:center; color:var(--acc-slate); border:1px dashed var(--acc-line); border-radius:1rem}
.cta-split{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem}
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.prose h2{font-size:clamp(1.4rem,2.4vw,1.9rem); margin:2.5rem 0 .9rem}
.prose h2:first-of-type{margin-top:0}
.prose p{color:var(--acc-slate); line-height:1.75}

/* ---- About ---- */
.about-intro{padding-block:3.5rem 4.5rem}
/*.about-collage{position:relative; display:grid; grid-template-columns:1.35fr 1fr; gap:1rem}*/
.about-collage{position:relative; display:grid;}
.about-collage img{border-radius:1.25rem; width:100%; height:100%; object-fit:cover}
.about-collage img:first-child{grid-row:span 2; height:420px}
/*.about-collage img:last-of-type{height:202px} */
.about-stamp{
  position:absolute; left:-1rem; bottom:-1rem; background:var(--acc-ink); color:#fff;
  padding:1rem 1.25rem; border-radius:.85rem; box-shadow:var(--acc-shadow-lg); text-align:center;
}
.about-stamp b{display:block; font-family:"Fraunces",serif; font-size:1.75rem; color:var(--acc-brass-lift); line-height:1}
.about-stamp span{font-size:.72rem; color:rgba(255,255,255,.75)}
.quote-panel{background:var(--acc-ink); color:#fff; border-radius:1.25rem; padding:2.25rem}
.quote-panel > i{color:var(--acc-brass-ink); font-size:1.6rem; margin-bottom:1rem; display:block}
.quote-panel p{font-family:"Fraunces",serif; font-size:1.3rem; line-height:1.45; margin:0}
.timeline{list-style:none; margin:0; padding:0; position:relative}
.timeline::before{content:""; position:absolute; left:7px; top:.6rem; bottom:.6rem; width:2px; background:var(--acc-line-dark)}
.timeline li{position:relative; padding:0 0 2rem 2.75rem}
.timeline li::before{
  content:""; position:absolute; left:0; top:.55rem; width:16px; height:16px; border-radius:50%;
  background:var(--acc-brass); box-shadow:0 0 0 4px rgba(192,138,46,.22);
}
.tl-year{display:inline-block; font-weight:800; font-size:.78rem; color:var(--acc-brass-lift); letter-spacing:.04em; margin-bottom:.25rem}
.timeline h3{font-size:1.15rem; color:#fff; margin-bottom:.35rem}
.timeline p{color:rgba(255,255,255,.68); font-size:.95rem; margin:0}
@media (min-width:768px){
  .timeline{display:grid; grid-template-columns:1fr 1fr; column-gap:3rem}
  .timeline::before{left:50%; margin-left:-1px}
  .timeline li{padding-left:2.75rem}
  .timeline li:nth-child(odd){grid-column:1; text-align:right; padding-left:0; padding-right:2.75rem}
  .timeline li:nth-child(odd)::before{left:auto; right:-8px}
  .timeline li:nth-child(even)::before{left:-8px}
}

/* ---- Contact ---- */
.contact-channels{margin-top:-3rem; position:relative; z-index:5; padding-bottom:1rem}
.channel-card{
  display:flex; flex-direction:column; gap:.3rem; height:100%; text-decoration:none; color:inherit;
  background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem; padding:1.5rem;
  box-shadow:var(--acc-shadow); transition:transform .18s ease, border-color .18s ease;
}
a.channel-card:hover{transform:translateY(-3px); border-color:var(--acc-brass-ink)}
.channel-card > i{font-size:1.35rem; color:var(--acc-brass-ink); margin-bottom:.5rem}
.channel-card strong{font-size:.8rem; text-transform:none; color:var(--acc-slate); font-weight:700}
.channel-value{font-family:"Fraunces",serif; font-size:1.15rem; word-break:break-word; line-height:1.3}
.channel-card small{color:var(--acc-slate); font-size:.8rem}
.channel-card--primary{background:var(--acc-ink); border-color:var(--acc-ink); color:#fff}
.channel-card--primary strong{color:rgba(255,255,255,.65)}
.channel-card--primary small{color:rgba(255,255,255,.6)}
.channel-card--primary > i{color:var(--acc-brass-lift)}
.contact-form textarea.form-control{border:1.5px solid var(--acc-line); padding:.85rem .9rem}
.side-panel{background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem; padding:1.75rem}
.side-panel--ink{background:var(--acc-ink); border-color:var(--acc-ink); color:rgba(255,255,255,.75)}
.next-steps{list-style:none; margin:0; padding:0}
.next-steps li{display:flex; gap:.9rem; padding-bottom:1.1rem}
.next-steps b{
  flex:none; width:30px; height:30px; border-radius:50%; background:var(--acc-brass-wash);
  color:var(--acc-brass-ink); display:grid; place-items:center; font-size:.85rem; font-weight:800;
}
.next-steps strong{display:block; font-size:.95rem}
.next-steps span{font-size:.85rem; color:var(--acc-slate)}
.hours-table{width:100%; font-size:.9rem}
.hours-table th,.hours-table td{padding:.6rem 0; border-bottom:1px solid var(--acc-line-dark); font-weight:500}
.hours-table th{color:rgba(255,255,255,.7); text-align:left}
.hours-table td{color:#fff; text-align:right; white-space:nowrap}
.hours-table tr:last-child th,.hours-table tr:last-child td{border-bottom:0}
.map-frame{border-radius:1.1rem; overflow:hidden; border:1px solid var(--acc-line); min-height:340px}
.map-frame iframe{width:100%; height:100%; min-height:340px; border:0; display:block}
.terminal-list li{display:flex; gap:.85rem; padding:.7rem 0; border-bottom:1px dashed var(--acc-line); font-size:.9rem; color:var(--acc-slate)}
.terminal-list li:last-child{border-bottom:0}
.terminal-list span{
  flex:none; width:36px; height:26px; border-radius:.35rem; background:var(--acc-ink); color:#fff;
  display:grid; place-items:center; font-size:.75rem; font-weight:800;
}

/* ---- Filter bar (services, locations, blog) ---- */
.filter-bar{background:#fff; border-bottom:1px solid var(--acc-line); padding-block:1.1rem; position:sticky; top:var(--nav-h); z-index:90}
.filter-search{position:relative; flex:1 1 260px; max-width:340px}
.filter-search--wide{max-width:420px}
.filter-search i{position:absolute; left:.9rem; top:50%; transform:translateY(-50%); color:var(--acc-slate); font-size:.85rem}
.filter-search input{
  width:100%; padding:.6rem .9rem .6rem 2.3rem; border:1.5px solid var(--acc-line);
  border-radius:999px; font-size:.9rem;
}
.filter-search input:focus{outline:none; border-color:var(--acc-brass-ink); box-shadow:0 0 0 .2rem var(--acc-brass-wash)}
.filter-chips{display:flex; flex-wrap:wrap; gap:.4rem}
.chip{
  border:1.5px solid var(--acc-line); background:#fff; color:var(--acc-slate);
  padding:.4rem 1rem; border-radius:999px; font-size:.85rem; font-weight:600; cursor:pointer; transition:.18s;
}
.chip:hover{border-color:var(--acc-ink); color:var(--acc-ink)}
.chip.is-on{background:var(--acc-ink); border-color:var(--acc-ink); color:#fff}
@media (max-width:991.98px){ .filter-bar{position:static} }

/* ---- Services list ---- */
.service-rows{display:flex; flex-direction:column; gap:1rem}
.service-row{
  display:grid; grid-template-columns:220px 1fr 200px; gap:1.75rem; align-items:center;
  background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem; padding:1.1rem;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.service-row:hover{border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.sr-media{position:relative; border-radius:.85rem; overflow:hidden; aspect-ratio:4/3}
.sr-media img{width:100%; height:100%; object-fit:cover}
.sr-tag{
  position:absolute; left:.6rem; top:.6rem; background:var(--acc-brass); color:#fff;
  font-size:.7rem; font-weight:800; padding:.25rem .6rem; border-radius:999px;
}
.sr-body h2{font-size:1.35rem; margin-bottom:.45rem}
.sr-body p{color:var(--acc-slate); font-size:.93rem; margin-bottom:.7rem}
.sr-points{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.35rem .9rem}
.sr-points li{position:relative; padding-left:1.1rem; font-size:.82rem; color:var(--acc-slate)}
.sr-points li::before{content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; left:0; color:var(--acc-brass-ink); font-size:.7rem}
.sr-action{display:flex; flex-direction:column; gap:.6rem; align-items:flex-start}
.sr-action .btn{width:100%; justify-content:center}
@media (max-width:991.98px){
  .service-row{grid-template-columns:160px 1fr; gap:1.1rem}
  .sr-action{grid-column:1/-1; flex-direction:row; align-items:center; gap:1rem}
  .sr-action .btn{width:auto}
}
@media (max-width:575.98px){
  .service-row{grid-template-columns:1fr}
  .sr-media{aspect-ratio:16/9}
}

/* ---- Service / location detail ---- */
.glance{background:#fff; border-bottom:1px solid var(--acc-line)}
.glance-row{border:1px solid var(--acc-line); border-radius:1.1rem; overflow:hidden; margin-top:-2.25rem; position:relative; z-index:5; background:#fff; box-shadow:var(--acc-shadow)}
.glance-cell{display:flex; gap:.85rem; align-items:center; padding:1.25rem; height:100%; border-right:1px solid var(--acc-line)}
.glance-cell i{color:var(--acc-brass-ink); font-size:1.25rem}
.glance-cell strong{display:block; font-size:.98rem}
.glance-cell span{font-size:.8rem; color:var(--acc-slate)}
@media (max-width:991.98px){ .glance-cell:nth-child(even){border-right:0} .glance-cell{border-bottom:1px solid var(--acc-line)} }
@media (min-width:992px){ .glance-row > div:last-child .glance-cell{border-right:0} }
.incl{display:flex; gap:.7rem; align-items:flex-start; font-size:.92rem; color:var(--acc-slate); padding:.7rem .9rem; background:var(--acc-mist); border-radius:.6rem; height:100%}
.incl i{color:var(--acc-brass-ink); margin-top:.25rem}
.how-steps{list-style:none; margin:1.5rem 0; padding:0}
.how-steps li{display:flex; gap:1.1rem; padding-bottom:1.4rem}
.how-steps b{
  flex:none; width:36px; height:36px; border-radius:50%; background:var(--acc-ink); color:#fff;
  display:grid; place-items:center; font-size:.9rem; font-weight:800;
}
.how-steps strong{display:block; margin-bottom:.2rem}
.how-steps p{margin:0; font-size:.9rem}
.fare-table,.compare-table{width:100%; min-width:520px; border-collapse:collapse; background:#fff; font-size:.92rem}
.fare-table th,.fare-table td,.compare-table th,.compare-table td{padding:.85rem 1rem; border-bottom:1px solid var(--acc-line); text-align:left}
.fare-table thead th,.compare-table thead th{background:var(--acc-ink); color:#fff; font-weight:700; font-size:.82rem; border-bottom:0}
.fare-table tbody tr:nth-child(even),.compare-table tbody tr:nth-child(even){background:var(--acc-mist)}
.compare-table tbody th{font-weight:700}
.pick-car{
  display:block; text-decoration:none; color:inherit; border:1px solid var(--acc-line);
  border-radius:.85rem; overflow:hidden; background:#fff; transition:border-color .18s;
}
.pick-car:hover{border-color:var(--acc-brass-ink)}
.pick-car img{width:100%; height:110px; object-fit:cover}
.pick-car strong{display:block; padding:.7rem .8rem 0; font-size:.92rem}
.pick-car span{display:block; padding:0 .8rem .8rem; font-size:.78rem; color:var(--acc-slate)}
.near-list{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem}
.near-list a{
  padding:.45rem 1rem; border:1.5px solid var(--acc-line); border-radius:999px;
  font-size:.85rem; font-weight:600; color:var(--acc-slate); text-decoration:none; transition:.18s;
}
.near-list a:hover{border-color:var(--acc-brass-ink); color:var(--acc-ink)}

/* ---- Sticky rail (shared by detail pages) ---- */
.rail{display:flex; flex-direction:column; gap:1rem}
@media (min-width:992px){ .rail{position:sticky; top:calc(var(--nav-h) + 1.25rem)} }
.rail-card{background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem; padding:1.5rem}
.rail-card--ink{background:var(--acc-ink); border-color:var(--acc-ink)}
.rail-card hr{border-color:var(--acc-line); opacity:1; margin:1.25rem 0}
.rail-facts li{display:flex; gap:.6rem; align-items:flex-start; font-size:.85rem; color:var(--acc-slate); margin-bottom:.6rem}
.rail-facts i{color:#2E8B57; margin-top:.2rem}
.rail-links li{border-bottom:1px dashed var(--acc-line)}
.rail-links li:last-child{border-bottom:0}
.rail-links a{display:flex; justify-content:space-between; align-items:center; gap:.5rem; padding:.7rem 0; font-size:.9rem; font-weight:600; color:var(--acc-ink); text-decoration:none}
.rail-links a:hover{color:var(--acc-brass-ink)}
.rail-links i{font-size:.75rem; color:var(--acc-brass-ink)}
.rail-posts li{margin-bottom:.85rem}
.rail-posts a{display:flex; gap:.75rem; align-items:center; text-decoration:none; color:var(--acc-ink); font-size:.85rem; font-weight:600; line-height:1.4}
.rail-posts img{width:64px; height:48px; object-fit:cover; border-radius:.45rem; flex:none}
.rail-posts a:hover{color:var(--acc-brass-ink)}

/* ---- Fleet page ---- */
.fleet-hint{font-size:.8rem; font-weight:700; color:var(--acc-slate); margin-bottom:.75rem}
.fleet-picker{display:flex; flex-direction:column; gap:.6rem}
.fleet-pick{
  display:flex; gap:.9rem; align-items:center; text-align:left; width:100%; cursor:pointer;
  background:#fff; border:1.5px solid var(--acc-line); border-radius:.9rem; padding:.6rem;
  transition:border-color .18s, background .18s;
}
.fleet-pick img{width:76px; height:56px; object-fit:cover; border-radius:.55rem; flex:none}
.fleet-pick strong{display:block; font-size:.95rem}
.fleet-pick small{color:var(--acc-slate); font-size:.78rem}
.fleet-pick:hover{border-color:var(--acc-brass-ink)}
.fleet-pick.is-on{border-color:var(--acc-ink); background:var(--acc-mist)}
.fleet-panel{border:1px solid var(--acc-line); border-radius:1.25rem; overflow:hidden; background:#fff}
.fleet-hero{width:100%; height:clamp(240px,32vw,360px); object-fit:cover}
.fleet-copy{padding:1.75rem}
.fleet-copy h2{font-size:1.75rem; margin-bottom:.25rem}
.spec-tile{text-align:center; padding:1rem .5rem; background:var(--acc-mist); border-radius:.75rem; height:100%}
.spec-tile i{color:var(--acc-brass-ink); font-size:1.05rem}
.spec-tile b{display:block; font-size:1.25rem; font-family:"Fraunces",serif; line-height:1.2; margin-top:.35rem}
.spec-tile span{font-size:.72rem; color:var(--acc-slate)}
.fleet-best{margin:1.5rem 0 1.25rem; padding:.85rem 1rem; background:var(--acc-brass-wash); border-radius:.6rem; font-size:.9rem; color:#7A5715}

/* ---- Locations ---- */
.loc-card{
  display:block; height:100%; text-decoration:none; color:inherit; background:#fff;
  border:1px solid var(--acc-line); border-radius:1.1rem; padding:1.5rem; position:relative;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.loc-card:hover{transform:translateY(-3px); border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.loc-pin{
  width:40px; height:40px; border-radius:50%; background:var(--acc-brass-wash); color:var(--acc-brass);
  display:grid; place-items:center; margin-bottom:1rem;
}
.loc-card strong{display:block; font-family:"Fraunces",serif; font-size:1.3rem; line-height:1.2}
.loc-code{display:block; font-size:.78rem; color:var(--acc-slate); margin-bottom:.85rem}
.loc-meta{list-style:none; margin:0 0 1rem; padding:.75rem 0 0; border-top:1px dashed var(--acc-line); display:flex; gap:1rem; font-size:.82rem; color:var(--acc-slate)}
.loc-go{font-size:.85rem; font-weight:700; color:var(--acc-brass-ink); display:inline-flex; gap:.4rem; align-items:center}

/* ---- Blog list ---- */
.blog-lead{padding-block:2.5rem 3rem}
.feature-post{
  display:grid; grid-template-columns:1.1fr 1fr; gap:0; text-decoration:none; color:inherit;
  border:1px solid var(--acc-line); border-radius:1.25rem; overflow:hidden; background:#fff;
  transition:box-shadow .2s, border-color .2s;
}
.feature-post:hover{border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.fp-media{min-height:320px}
.fp-media img{width:100%; height:100%; object-fit:cover}
.fp-body{padding:2.5rem}
.fp-body h1{font-size:clamp(1.6rem,2.8vw,2.3rem); margin:.85rem 0 .85rem}
.fp-body p{color:var(--acc-slate); margin-bottom:1.5rem}
.fp-meta{display:flex; flex-wrap:wrap; gap:1.25rem; align-items:center; font-size:.82rem; color:var(--acc-slate)}
.fp-meta i{color:var(--acc-brass-ink); margin-right:.3rem}
@media (max-width:767.98px){ .feature-post{grid-template-columns:1fr} .fp-media{min-height:220px} .fp-body{padding:1.5rem} }
.post-card{background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem; overflow:hidden; height:100%; display:flex; flex-direction:column; transition:border-color .18s, box-shadow .18s}
.post-card:hover{border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.pc-media{display:block; aspect-ratio:16/10; overflow:hidden; background:var(--acc-mist)}
.pc-media img{width:100%; height:100%; object-fit:cover}
.pc-body{padding:1.35rem; display:flex; flex-direction:column; flex:1}
.pc-body h2,.pc-body h3{font-size:1.1rem; line-height:1.35; margin:.7rem 0 .5rem}
.pc-body a{color:inherit; text-decoration:none}
.pc-body a:hover{color:var(--acc-brass-ink)}
.pc-body p{font-size:.88rem; color:var(--acc-slate); margin-bottom:1rem}
.pc-meta{margin-top:auto; display:flex; gap:1rem; font-size:.78rem; color:var(--acc-slate); padding-top:.75rem; border-top:1px solid var(--acc-line)}

/* ---- Article ---- */
.read-progress{position:fixed; top:0; left:0; right:0; height:3px; z-index:1040; background:transparent}
.read-progress span{display:block; height:100%; width:0; background:var(--acc-brass)}
.article-head{position:relative; background:var(--acc-ink-deep); color:#fff; padding-block:4.5rem 4rem; overflow:hidden}
.article-head::before{content:""; position:absolute; inset:0; background:var(--head-img) center/cover no-repeat; opacity:.22}
.article-head::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,23,38,.86),rgba(7,23,38,.94))}
.article-head > .container{position:relative; z-index:2; max-width:900px}
.article-title{font-size:clamp(1.9rem,3.6vw,2.9rem); margin:.85rem 0 1.25rem}
.article-meta{display:flex; flex-wrap:wrap; gap:1.5rem; font-size:.85rem; color:rgba(255,255,255,.72)}
.article-meta i{color:var(--acc-brass-lift); margin-right:.35rem}
.article-standfirst{font-size:1.15rem; line-height:1.7; color:var(--acc-ink)!important; padding-bottom:1.25rem; border-bottom:1px solid var(--acc-line)}
.article p{margin-bottom:1.15rem}
.toc-rail{position:relative}
@media (min-width:992px){ .toc-rail{position:sticky; top:calc(var(--nav-h) + 1.25rem)} }
.toc-label{font-size:.75rem; font-weight:800; color:var(--acc-slate); margin-bottom:.75rem}
#articleToc{display:flex; flex-direction:column; border-left:2px solid var(--acc-line)}
.toc-link{padding:.45rem 0 .45rem .9rem; margin-left:-2px; border-left:2px solid transparent; font-size:.85rem; color:var(--acc-slate); text-decoration:none; line-height:1.4}
.toc-link:hover{color:var(--acc-ink)}
.toc-link.is-on{color:var(--acc-brass-ink); border-left-color:var(--acc-brass-ink); font-weight:700}
.toc-share{display:flex; align-items:center; gap:.5rem; margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--acc-line)}
.toc-share span{font-size:.78rem; font-weight:700; color:var(--acc-slate); margin-right:.25rem}
.toc-share a{
  width:34px; height:34px; border-radius:50%; border:1.5px solid var(--acc-line);
  display:grid; place-items:center; color:var(--acc-slate); font-size:.85rem; text-decoration:none; transition:.18s;
}
.toc-share a:hover{background:var(--acc-ink); border-color:var(--acc-ink); color:#fff}
.author-box{display:flex; gap:1rem; align-items:flex-start; margin-top:2.5rem; padding:1.5rem; background:var(--acc-mist); border-radius:1.1rem}

/* ==========================================================================
   RESPONSIVE PASS
   Header height is now driven by --nav-h, so every sticky offset in the
   stylesheet follows the logo size automatically.

   Logo: 100px tall on desktop, 50px on tablet and phone.
     desktop  100px logo + navbar py-2 (16px) + 1px border  = 117px
     mobile    50px logo + navbar py-2 (16px) + 1px border  =  67px
   ========================================================================== */
:root{--nav-h:117px}
@media (max-width:991.98px){ :root{--nav-h:67px} }

.brand-logo{display:block}
.navbar-brand{max-width:60%}

/* --------------------------------------------------------------------------
   Form controls: iOS zooms the page whenever a focused input is under 16px.
   Bumping to 16px on touch widths stops that jump.
   -------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .form-control,.form-select,.filter-search input,
  .pass--hero .form-control,.pass--hero .form-select{font-size:16px}
  .form-control,.form-select{padding:.7rem .8rem}
  .pass--hero .form-control,.pass--hero .form-select{padding:.7rem .75rem}
  textarea.form-control{min-height:120px}
  .trip-group,.pass--hero .trip-group{height:auto}
  .trip-group .btn{--bs-btn-padding-y:.7rem}
}

/* Tap targets: nothing interactive smaller than 44px on touch */
@media (max-width:767.98px){
  .social-btn{width:40px; height:40px}
  .chip{padding:.55rem 1.05rem; min-height:40px}
  .toc-share a{width:42px; height:42px}
  .btn{--bs-btn-padding-y:.6rem}
  .btn-lg{--bs-btn-padding-y:.8rem}
  .navbar-toggler{padding:.6rem .75rem}
}

/* --------------------------------------------------------------------------
   Page headers — the desktop padding is too generous on a phone
   -------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .page-head{padding-block:3rem 2.75rem}
  .page-head--slim{padding-block:2.5rem 2.25rem}
  .page-head--service{padding-block:3rem 3.5rem}
  .article-head{padding-block:2.75rem 2.5rem}
  .page-title,.page-title-lg{max-width:100%; font-size:clamp(1.75rem,7vw,2.25rem)}
  .article-title{font-size:clamp(1.6rem,6.4vw,2.1rem)}
  .page-lead{font-size:1rem}
  .page-crumbs{flex-wrap:wrap; row-gap:.15rem; margin-bottom:1rem}
  .article-meta{gap:.4rem 1rem; font-size:.8rem}
  .sec-title{font-size:clamp(1.5rem,5.5vw,2rem)}
}

/* --------------------------------------------------------------------------
   Filter bar — one scrolling row of chips instead of three wrapped lines
   -------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .filter-bar{padding-block:.9rem}
  .filter-search,.filter-search--wide{max-width:100%; flex-basis:100%}
  .filter-chips{
    flex-wrap:nowrap; overflow-x:auto; width:100%;
    padding-bottom:.35rem; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .filter-chips::-webkit-scrollbar{display:none}
  .chip{flex:none}
  .filter-bar .ms-auto{display:none}   /* the result count duplicates the list itself */
}

/* --------------------------------------------------------------------------
   Wide tables scroll, with a fade so it is obvious there is more to the right
   -------------------------------------------------------------------------- */
.table-wrap{position:relative}
@media (max-width:767.98px){
  .table-wrap::after{
    content:""; position:absolute; top:0; right:0; bottom:0; width:34px; pointer-events:none;
    background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.92));
  }
  .bg-mist .table-wrap::after{background:linear-gradient(90deg,rgba(246,248,250,0),rgba(246,248,250,.94))}
  .fare-table,.compare-table{min-width:440px; font-size:.85rem}
  .fare-table th,.fare-table td,.compare-table th,.compare-table td{padding:.65rem .7rem}
}

/* --------------------------------------------------------------------------
   About
   -------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .about-intro{padding-block:2.5rem 3rem}
  .about-collage img:first-child{height:300px}
  .about-collage img:last-of-type{height:142px}
}
@media (max-width:575.98px){
  .about-collage{grid-template-columns:1fr; gap:.75rem}
  .about-collage img:first-child{grid-row:auto; height:220px}
  .about-collage img:last-of-type{height:150px}
  .about-stamp{position:static; margin-top:.75rem; left:auto; bottom:auto; display:flex;
               align-items:center; justify-content:center; gap:.6rem; padding:.75rem 1rem}
  .about-stamp b{font-size:1.35rem}
  .quote-panel{padding:1.6rem}
  .quote-panel p{font-size:1.1rem}
  .timeline li{padding-bottom:1.5rem}
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .contact-channels{margin-top:-1.75rem}
  .channel-card{padding:1.2rem}
  .channel-value{font-size:1.05rem}
  .side-panel{padding:1.35rem}
  .map-frame,.map-frame iframe{min-height:260px}
  .hours-table td{white-space:normal}
}

/* --------------------------------------------------------------------------
   Services list
   -------------------------------------------------------------------------- */
@media (max-width:575.98px){
  .service-row{padding:.85rem; gap:.9rem}
  .sr-body h2{font-size:1.2rem}
  .sr-points{flex-direction:column; gap:.25rem}
  .sr-action{flex-direction:column; align-items:stretch; gap:.5rem}
  .sr-action .btn{width:100%}
  .sr-action .link-more{text-align:center}
}

/* --------------------------------------------------------------------------
   Detail pages — glance strip, steps, related cars
   -------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .glance-row{margin-top:-1.5rem}
  .glance-cell{padding:.95rem .8rem; gap:.6rem}
  .glance-cell strong{font-size:.9rem}
  .glance-cell span{font-size:.74rem; line-height:1.35}
  .how-steps li{gap:.85rem}
  .prose h2{margin-top:2rem; font-size:clamp(1.25rem,5vw,1.6rem)}
  .pick-car img{height:88px}
  .rail{margin-top:2rem}
  .rail-card{padding:1.35rem}
}
@media (max-width:400px){
  .glance-cell{flex-direction:column; align-items:flex-start; text-align:left}
}

/* --------------------------------------------------------------------------
   Fleet — the picker becomes a horizontal strip so the panel stays in view
   -------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .fleet-picker{
    flex-direction:row; overflow-x:auto; gap:.5rem;
    padding-bottom:.5rem; scroll-snap-type:x mandatory;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  .fleet-picker::-webkit-scrollbar{display:none}
  .fleet-pick{flex:0 0 auto; width:200px; flex-direction:column; align-items:flex-start; scroll-snap-align:start}
  .fleet-pick img{width:100%; height:84px}
  .fleet-hint{margin-bottom:.5rem}
  .fleet-copy{padding:1.35rem}
  .fleet-copy h2{font-size:1.4rem}
  .fleet-best{margin:1.1rem 0 1rem; font-size:.85rem}
  .spec-tile{padding:.8rem .4rem}
  .spec-tile b{font-size:1.1rem}
}

/* --------------------------------------------------------------------------
   Locations
   -------------------------------------------------------------------------- */
@media (max-width:575.98px){
  .loc-card{padding:1.2rem}
  .loc-pin{width:34px; height:34px; margin-bottom:.75rem}
  .loc-card strong{font-size:1.15rem}
  .near-list a{padding:.5rem .9rem}
}

/* --------------------------------------------------------------------------
   Blog
   -------------------------------------------------------------------------- */
@media (max-width:575.98px){
  .blog-lead{padding-block:1.5rem 2rem}
  .fp-body{padding:1.35rem}
  .fp-body h1{font-size:1.4rem}
  .fp-meta{gap:.35rem .9rem; font-size:.78rem}
  .pc-body{padding:1.15rem}
  .pc-body h2,.pc-body h3{font-size:1.02rem}
}

/* --------------------------------------------------------------------------
   Article — the contents list turns into a scrolling chip row on mobile
   so it does not push the article a screen and a half down the page
   -------------------------------------------------------------------------- */
@media (max-width:991.98px){
  .toc-rail{
    margin-bottom:1.75rem; padding:1rem 1.1rem;
    border:1px solid var(--acc-line); border-radius:.9rem; background:var(--acc-mist);
  }
  #articleToc{
    flex-direction:row; overflow-x:auto; gap:.4rem; border-left:0; padding-bottom:.35rem;
    scrollbar-width:none; -webkit-overflow-scrolling:touch;
  }
  #articleToc::-webkit-scrollbar{display:none}
  .toc-link{
    flex:0 0 auto; margin-left:0; padding:.45rem .9rem; border-left:0;
    border:1.5px solid var(--acc-line); border-radius:999px; background:#fff; white-space:nowrap;
  }
  .toc-link.is-on{border-color:var(--acc-brass); background:var(--acc-brass-wash)}
  .toc-share{margin-top:1rem; padding-top:1rem}
  .article-standfirst{font-size:1.05rem}
  .author-box{padding:1.25rem; gap:.85rem}
}

/* --------------------------------------------------------------------------
   Bands, CTAs and the last of the desktop-only spacing
   -------------------------------------------------------------------------- */
@media (max-width:767.98px){
  .band .py-5{padding-block:2.5rem!important}
  .band .btn,.cta-split .btn{width:100%; justify-content:center}
  .band .d-flex.flex-wrap.gap-3,.cta-split > .d-flex{width:100%}
  .cta-split{gap:1.25rem}
  .mini-card{padding:.95rem 1rem}
  .stat-tile{padding:1.35rem .75rem}
  .stat-tile b{font-size:1.75rem}
  .empty-state{padding:1.5rem 1rem}
}

/* Long addresses and emails must never widen the page */
.channel-value,.rail-links a,.pc-body h2 a,.pc-body h3 a,.sr-body h2{overflow-wrap:anywhere}

/* --------------------------------------------------------------------------
   Offcanvas menu — Bootstrap ships a fixed 400px panel, which is wider than
   a 360px phone. Cap it and give the links room to be tapped.
   -------------------------------------------------------------------------- */
@media (max-width:575.98px){
  .offcanvas-end{width:min(86vw,340px)}
}
@media (max-width:991.98px){
  .site-nav .nav-link{padding:.85rem .5rem!important; font-size:1rem}
  .site-nav .dropdown-item{padding-block:.6rem}
  .dropdown-mega,.dropdown-locations{width:100%}
  .dropdown-foot{margin-top:.5rem}
}

/* Panel form on phones: the tab labels need to stay readable at 360px */
@media (max-width:400px){
  .pass .nav-tabs .nav-link,.pass--hero .nav-tabs .nav-link{font-size:.72rem; padding:.75rem .25rem}
  .pass--hero .tab-content{padding:1.1rem 1rem 1rem}
}

/* ==========================================================================
   WORDPRESS THEME LAYER
   Classes used by the PHP templates, plus the core WordPress classes every
   theme has to style. Nothing above this line was changed in the conversion.
   ========================================================================== */

/* ---- Accessibility ---- */
.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px;
  overflow:hidden; padding:0; position:absolute; width:1px; word-wrap:normal!important;
}
.skip-link:focus{
  clip:auto; clip-path:none; height:auto; width:auto; z-index:100000;
  left:1rem; top:1rem; padding:.75rem 1.25rem; background:#fff; color:var(--acc-ink);
  border-radius:.5rem; box-shadow:var(--acc-shadow-lg); font-weight:700;
}

/* ---- Header ---- */
.acc-brand-text{font-family:"Fraunces",serif; font-size:1.35rem; color:var(--acc-ink); text-decoration:none}
.custom-logo-link{display:inline-block; padding:0}
.hero-kicker{
  display:inline-block; color:var(--acc-brass-lift); font-weight:700; font-size:.85rem;
  letter-spacing:.04em; margin-bottom:.75rem;
}

/* ---- Editor content ---- */
.entry-content img,.wp-block-image img{max-width:100%; height:auto; border-radius:.75rem}
.entry-content .alignleft{float:left; margin:0 1.5rem 1rem 0}
.entry-content .alignright{float:right; margin:0 0 1rem 1.5rem}
.entry-content .aligncenter{display:block; margin-inline:auto}
.entry-content .alignwide{width:min(1140px,100vw - 2rem); margin-inline:calc(50% - min(570px,50vw - 1rem))}
.entry-content blockquote{
  margin:1.75rem 0; padding:1.25rem 1.5rem; border-left:3px solid var(--acc-brass);
  background:var(--acc-mist); border-radius:0 .75rem .75rem 0; font-size:1.05rem;
}
.entry-content ul,.entry-content ol{color:var(--acc-slate); line-height:1.75; padding-left:1.35rem}
.entry-content li{margin-bottom:.4rem}
.entry-content table{width:100%; border-collapse:collapse; margin:1.5rem 0}
.entry-content th,.entry-content td{padding:.75rem 1rem; border-bottom:1px solid var(--acc-line); text-align:left}
.entry-content code{background:var(--acc-mist); padding:.15rem .4rem; border-radius:.3rem; font-size:.9em}
.entry-content pre{background:var(--acc-ink); color:#fff; padding:1.25rem; border-radius:.75rem; overflow-x:auto}
.wp-caption-text,.wp-block-image figcaption{font-size:.82rem; color:var(--acc-slate); margin-top:.5rem}
.sticky .post-card{border-color:var(--acc-brass-ink)}

/* ---- Pagination ---- */
.acc-pagination{margin-top:3rem}
.acc-pagination ul{display:flex; flex-wrap:wrap; gap:.4rem; justify-content:center; list-style:none; padding:0; margin:0}
.acc-pagination .page-numbers{
  display:grid; place-items:center; min-width:42px; height:42px; padding:0 .75rem;
  border:1.5px solid var(--acc-line); border-radius:999px; text-decoration:none;
  color:var(--acc-ink); font-weight:600; font-size:.9rem; transition:.18s;
}
.acc-pagination .page-numbers:hover{border-color:var(--acc-brass-ink); color:var(--acc-brass-ink)}
.acc-pagination .page-numbers.current{background:var(--acc-ink); border-color:var(--acc-ink); color:#fff}

/* ---- Comments ---- */
.acc-comments{margin-top:3rem; padding-top:2.5rem; border-top:1px solid var(--acc-line)}
.acc-comments .comment-list{list-style:none; padding:0; margin:0 0 2.5rem}
.acc-comments .comment-list ol.children{list-style:none; padding-left:1.5rem}
.acc-comments article{padding:1.25rem 0; border-bottom:1px dashed var(--acc-line)}
.acc-comments .comment-meta{display:flex; align-items:center; gap:.75rem; margin-bottom:.6rem}
.acc-comments .comment-meta img{border-radius:50%}
.acc-comments .comment-author{font-weight:700; font-size:.95rem}
.acc-comments .comment-date{font-size:.8rem; color:var(--acc-slate)}
.acc-comments .comment-content{color:var(--acc-slate); font-size:.95rem; line-height:1.7}
.acc-comments .comment-reply-link{font-size:.82rem; font-weight:700; color:var(--acc-brass-ink); text-decoration:none}
.comment-form input:not([type=submit]),.comment-form textarea{
  width:100%; border:1.5px solid var(--acc-line); border-radius:.5rem; padding:.75rem .9rem; font-size:16px;
}
.comment-form .submit{
  background:var(--acc-brass); border:0; color:#fff; font-weight:700;
  padding:.75rem 2rem; border-radius:999px; cursor:pointer;
}

/* ---- Search form and 404 ---- */
.acc-searchform{display:flex; gap:.5rem; max-width:460px}
.acc-searchform input[type=search]{
  flex:1; border:1.5px solid var(--acc-line); border-radius:999px; padding:.7rem 1.1rem; font-size:16px;
}
.acc-404{text-align:center; max-width:560px; margin-inline:auto}

/* ---- Admin-only notice on the front end ---- */
.acc-notice{
  padding:1.25rem 1.5rem; border:1px dashed var(--acc-brass); border-radius:.75rem;
  background:var(--acc-brass-wash); color:#7A5715; font-size:.9rem;
}
.acc-notice code{background:rgba(0,0,0,.06); padding:.1rem .35rem; border-radius:.25rem}

/* A submenu without the "mega" or "compact" class is a single column, and
   needs a sensible width of its own — Bootstrap's 10rem default is too narrow
   for names like "Business class". */
.site-nav .dropdown-plain{width:max-content; min-width:220px; max-width:min(320px,92vw)}
.site-nav .dropdown-plain .dropdown-item{white-space:nowrap}
@media (max-width:991.98px){
  .site-nav .dropdown-plain{width:100%; max-width:100%; min-width:0}
  .site-nav .dropdown-plain .dropdown-item{white-space:normal}
}

/* ==========================================================================
   MOBILE DOCK BAR — overflow fix

   The bar used flex with `.dockbar .btn{flex:1}`. Any button whose content is
   wider than its flex basis pushes the row past the viewport, because a flex
   item will not shrink below its content width unless min-width is cleared.
   With two buttons plus padding and a gap on a 375px screen, "Get my fare"
   did exactly that — the bar ran off the right edge and took the page's
   horizontal scrollbar with it.

   A two-column grid with min-width:0 on the children cannot overflow: each
   column is exactly half the remaining space whatever the label says.
   ========================================================================== */
.dockbar{
  display:none;                     /* the media query below turns it on */
  grid-template-columns:1fr 1fr;
  align-items:center;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
.dockbar .btn{
  flex:none;
  width:100%;
  min-width:0;                      /* the line that actually allows shrinking */
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  padding-inline:.5rem;
}
@media (max-width:767.98px){
  .dockbar{display:grid}
}
@media (max-width:400px){
  .dockbar{gap:.4rem; padding-inline:.5rem}
  .dockbar .btn{font-size:.9rem}
}
/* One button only (no phone number set) — let it span the bar. */
.dockbar .btn:only-child{grid-column:1 / -1}

/* Nothing on the page may widen the viewport. `clip` is used rather than
   `hidden` because `hidden` on body turns it into a scroll container and
   breaks every position:sticky element in the theme. */
html,body{overflow-x:clip; max-width:100%}

/* ==========================================================================
   HOME PAGE COPY
   The long-form section written in the page editor. Given a media rail and a
   measured column so it reads as designed content rather than a block of text
   dropped above the footer.
   ========================================================================== */
.home-copy{background:var(--acc-mist)}
.home-copy .copy-body{max-width:68ch}
.home-copy .copy-body h2{
  font-size:clamp(1.35rem,2.4vw,1.8rem); margin:2.5rem 0 .85rem; padding-top:1.75rem;
  border-top:1px solid var(--acc-line);
}
.home-copy .copy-body > h2:first-child{margin-top:0; padding-top:0; border-top:0}
.home-copy .copy-body p{color:var(--acc-slate); line-height:1.8}
.home-copy .copy-body > p:first-of-type{font-size:1.08rem; color:var(--acc-ink)}
.home-copy .copy-body ul{list-style:none; padding-left:0; margin:1.25rem 0}
.home-copy .copy-body ul li{
  position:relative; padding:.55rem 0 .55rem 1.75rem; color:var(--acc-slate);
  border-bottom:1px dashed var(--acc-line); line-height:1.7;
}
.home-copy .copy-body ul li:last-child{border-bottom:0}
.home-copy .copy-body ul li::before{
  content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900;
  position:absolute; left:0; top:.75rem; font-size:.75rem; color:var(--acc-brass-ink);
}
.home-copy .copy-body ul li strong{color:var(--acc-ink)}

/* Media rail */
.copy-rail{display:flex; flex-direction:column; gap:1.25rem}
@media (min-width:992px){ .copy-rail{position:sticky; top:calc(var(--nav-h) + 1.25rem)} }
.copy-figure{position:relative; border-radius:1.1rem; overflow:hidden; box-shadow:var(--acc-shadow)}
.copy-figure img{width:100%; height:320px; object-fit:cover; display:block}
.copy-figure--small img{height:200px}
.copy-stat{
  position:absolute; left:1rem; bottom:1rem; margin:0; padding:.75rem 1.1rem;
  background:var(--acc-ink); color:#fff; border-radius:.75rem; box-shadow:var(--acc-shadow-lg);
}
.copy-stat b{display:block; font-family:"Fraunces",serif; font-size:1.5rem; line-height:1; color:var(--acc-brass-lift)}
.copy-stat span{font-size:.72rem; color:rgba(255,255,255,.72)}
.copy-card{background:var(--acc-ink); border-radius:1.1rem; padding:1.5rem}

@media (max-width:991.98px){
  .home-copy .copy-body{max-width:100%}
  .copy-figure img{height:220px}
  .copy-figure--small img{height:180px}
}

/* Caption on the second rail image. */
.copy-caption{
  position:absolute; inset:auto 0 0 0; margin:0; padding:.75rem 1rem;
  background:linear-gradient(180deg,rgba(7,23,38,0),rgba(7,23,38,.88));
  color:#fff; font-size:.8rem; line-height:1.45;
}

/* ==========================================================================
   LOCATIONS WE SERVE
   ========================================================================== */
.areas{background:var(--acc-mist)}

/* Four across on desktop, dropping to two then one. auto-fit was giving a
   ragged last row, so the counts are stated at each breakpoint. */
.areas-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; align-items:stretch}
@media (max-width:1199.98px){ .areas-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:991.98px){ .areas-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:575.98px){ .areas-grid{grid-template-columns:1fr} }

.areas-group{
  display:flex; flex-direction:column;      /* equal heights across the row */
  background:#fff; border:1px solid var(--acc-line); border-radius:1rem;
  padding:1.35rem 1.25rem;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.areas-group:hover{border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}

.areas-group__title{
  display:flex; align-items:center; gap:.5rem;
  margin:0 0 .35rem; padding-bottom:.85rem;
  border-bottom:2px solid var(--acc-brass-wash);
  font-family:var(--bs-body-font-family); font-size:.78rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em; color:var(--acc-ink);
}
.areas-group__title i{color:var(--acc-brass-ink); font-size:.8rem}
.areas-group__title span{
  margin-left:auto; min-width:22px; height:22px; padding:0 .4rem;
  border-radius:999px; background:var(--acc-brass); color:#fff;
  display:grid; place-items:center; font-size:.7rem; letter-spacing:0;
}

.areas-list{list-style:none; margin:0; padding:0; flex:1 1 auto}
.areas-list li + li{border-top:1px dashed var(--acc-line)}
.areas-list a{
  display:flex; align-items:baseline; gap:.75rem;
  padding:.65rem 0; text-decoration:none; color:var(--acc-ink);
  font-size:.93rem; font-weight:600;
  transition:color .15s ease;
}
.areas-list a:hover{color:var(--acc-brass-ink)}
.areas-list__name{
  position:relative;
  /* The underline grows from the left on hover instead of an arrow shifting
     the row, which made the whole list jump. */
  background-image:linear-gradient(var(--acc-brass),var(--acc-brass));
  background-size:0 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .2s ease;
}
.areas-list a:hover .areas-list__name{background-size:100% 1px}
.areas-list__meta{
  margin-left:auto; font-size:.78rem; font-weight:500;
  color:var(--acc-slate); white-space:nowrap;
}

/* Closing bar: the count and the two actions, on the ink panel. */
.areas-bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:1.5rem 2rem; flex-wrap:wrap;
  margin-top:1.5rem; padding:1.5rem 1.75rem;
  background:var(--acc-ink); border-radius:1.1rem;
}
.areas-bar__stat{display:flex; align-items:center; gap:1rem}
.areas-bar__stat b{
  font-family:"Fraunces",serif; font-size:2.4rem; line-height:1;
  color:var(--acc-brass-lift);
}
.areas-bar__stat span{
  font-size:.9rem; color:rgba(255,255,255,.75); line-height:1.4; max-width:260px;
}
.areas-bar__actions{display:flex; gap:.6rem; flex-wrap:wrap}

@media (max-width:767.98px){
  .areas-bar{flex-direction:column; align-items:flex-start; padding:1.35rem}
  .areas-bar__actions{width:100%}
  .areas-bar__actions .btn{flex:1 1 auto; text-align:center}
}

/* Optional featured cards under the grid. */
.area-card{
  display:block; height:100%; text-decoration:none; color:inherit; overflow:hidden;
  background:#fff; border:1px solid var(--acc-line); border-radius:1.1rem;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.area-card:hover{transform:translateY(-3px); border-color:var(--acc-brass-ink); box-shadow:var(--acc-shadow)}
.area-card img{width:100%; height:170px; object-fit:cover; display:block}
.area-card__body{display:block; padding:1.15rem}
.area-card__body strong{display:block; font-family:"Fraunces",serif; font-size:1.2rem; line-height:1.25}
.area-card__body small{display:block; margin:.15rem 0 .6rem; font-size:.8rem; color:var(--acc-slate)}

/* ==========================================================================
   PROMOTION POPUP
   ========================================================================== */
.acc-promo{position:fixed; inset:0; z-index:1080; display:grid; place-items:center; padding:1rem}
.acc-promo__veil{
  position:absolute; inset:0; background:rgba(7,23,38,.6);
  opacity:0; transition:opacity .25s ease;
}
.acc-promo.is-on .acc-promo__veil{opacity:1}

.acc-promo__box{
  position:relative; width:min(420px,100%); max-height:90vh; overflow:auto;
  background:#fff; border-radius:1.25rem; box-shadow:0 24px 60px rgba(7,23,38,.35);
  opacity:0; transform:translateY(14px) scale(.98);
  transition:opacity .25s ease, transform .25s ease;
}
.acc-promo.is-on .acc-promo__box{opacity:1; transform:none}

.acc-promo__x{
  position:absolute; top:.6rem; right:.6rem; z-index:2;
  width:34px; height:34px; border:0; border-radius:50%;
  background:rgba(255,255,255,.9); color:var(--acc-ink);
  font-size:1.5rem; line-height:1; cursor:pointer;
  display:grid; place-items:center; box-shadow:var(--acc-shadow);
}
.acc-promo__x:hover{background:#fff}

.acc-promo__media img{width:100%; height:170px; object-fit:cover; display:block}
.acc-promo__body{padding:1.75rem}
.acc-promo__badge{
  display:inline-block; margin-bottom:.75rem; padding:.3rem .85rem;
  background:var(--acc-brass-wash); color:var(--acc-brass);
  border-radius:999px; font-size:.72rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em;
}
.acc-promo__body h2{font-size:1.5rem; line-height:1.2; margin:0 0 .6rem}
.acc-promo__body > p{color:var(--acc-slate); font-size:.95rem; line-height:1.6; margin:0 0 1.25rem}

.acc-promo__code{
  display:flex; align-items:center; gap:.85rem; margin-bottom:1.25rem;
  padding:.85rem 1rem; border:1.5px dashed var(--acc-brass);
  border-radius:.7rem; background:var(--acc-brass-wash);
}
.acc-promo__label{font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--acc-slate)}
.acc-promo__value{
  margin-left:auto; border:0; background:none; cursor:pointer; text-align:right; padding:0;
}
.acc-promo__value strong{
  display:block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:1.05rem; font-weight:800; letter-spacing:.08em; color:var(--acc-ink);
}
.acc-promo__value small{font-size:.72rem; color:var(--acc-brass-ink)}
.acc-promo__value.is-copied small{color:#2E8B57}

.acc-promo__small{margin:.85rem 0 0; font-size:.75rem; color:var(--acc-slate); text-align:center}
.acc-promo__dismiss{
  display:block; width:100%; margin-top:.6rem; padding:.5rem;
  border:0; background:none; cursor:pointer;
  font-size:.82rem; color:var(--acc-slate); text-decoration:underline;
}

@media (max-width:480px){
  .acc-promo__body{padding:1.35rem}
  .acc-promo__media img{height:130px}
}
@media (prefers-reduced-motion:reduce){
  .acc-promo__veil,.acc-promo__box{transition:none}
}
