/* Leap Travel: shared header, menus, footer and section styles (loaded on every page, after the page's own styles) */
:root{--brand:#1b7694;--brand-dark:#135a71;--brand-tint:#e8f3f6;--ink:#10232b;--body:#3d4f57;--muted:#566870;--line:#dce6ea;--bg-soft:#f5f9fa;--star:#f5b400;--radius:14px;--wrap:1160px}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);backdrop-filter:none}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:1rem;max-width:var(--wrap);margin:0 auto;padding:0 20px}
header.site .logo{display:block;flex:none}
header.site .logo img{height:48px;width:auto;display:block}
nav.main{display:flex;align-items:center;flex:1;justify-content:center;gap:0;position:static}
.nav-list{list-style:none;display:flex;align-items:center;gap:.1rem;margin:0;padding:0}
.nav-list>li{position:static}
header.site .wrap{position:relative}
nav.main .nav-top{display:flex;align-items:center;gap:.35rem;font:500 .96rem/1 Inter,system-ui,sans-serif;color:var(--ink);background:none;border:0;padding:.7rem .7rem;border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap}
nav.main .nav-top:hover,nav.main .has-menu.open>.nav-top{color:var(--brand);background:var(--bg-soft)}
.nav-list>li.is-current>.nav-top{color:var(--brand)}
nav.main .nav-top{position:relative}
.nav-list>li.is-current>.nav-top::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:-19px;height:3px;border-radius:3px 3px 0 0;background:var(--brand)}
.caret{width:9px;height:9px;flex:none;transition:transform .15s}
.has-menu.open>.nav-top .caret{transform:rotate(180deg)}
.mega{display:none;position:absolute;top:calc(100% - 6px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 50px rgba(16,35,43,.16);padding:24px 26px 18px;z-index:60;width:max-content;max-width:min(92vw,980px)}
.mega::before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px}
.has-menu.open>.mega{display:block}
@media (min-width:1181px) and (hover:hover){.has-menu:hover>.mega{display:block}.has-menu:hover>.nav-top{color:var(--brand);background:var(--bg-soft)}}
.mega-cols{display:flex;gap:34px;align-items:flex-start}
.mega-col{min-width:170px}
.mega-col h4{font:600 .74rem/1.2 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin:0 0 .75rem}
.mega-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
nav.main .mega-col a{display:block;font-weight:400;color:var(--ink);text-decoration:none;font-size:.95rem;padding:.32rem .5rem;margin:0 -.5rem;border-radius:7px;white-space:nowrap}
nav.main .mega-col a:hover{background:var(--bg-soft);color:var(--brand)}
nav.main .mega-col a small{display:block;color:var(--muted);font-size:.8rem;white-space:normal;max-width:30ch;line-height:1.35}
nav.main .mega-promo{white-space:normal;display:block;width:230px;border-radius:12px;overflow:hidden;background:var(--ink);color:#fff;text-decoration:none;position:relative;align-self:stretch;min-height:200px}
.mega-promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.mega-promo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,30,38,0) 30%,rgba(10,30,38,.92) 100%)}
.mega-promo span{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;font-size:.85rem;color:#dbe7eb;line-height:1.4}
.mega-promo strong{display:block;font:600 1.05rem/1.25 Outfit,Inter,sans-serif;color:#fff;margin-bottom:.2rem}
.mega-foot{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);margin-top:16px;padding-top:12px;font-size:.92rem}
nav.main .mega-foot a{color:var(--brand);font-weight:600;text-decoration:none;font-size:.92rem}
nav.main .mega-foot a:hover{text-decoration:underline;color:var(--brand-dark)}
.header-cta{display:flex;gap:.8rem;align-items:center;flex:none}
.phone-link{font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap;display:flex;align-items:center;gap:.4rem}
.phone-link svg{width:18px;height:18px;color:var(--brand)}
.menu-btn{display:none;background:none;border:0;cursor:pointer;color:var(--ink);width:44px;height:44px;border-radius:10px;align-items:center;justify-content:center}
.menu-btn:hover{background:var(--bg-soft)}
.menu-btn svg{width:26px;height:26px}
.menu-btn .i-close{display:none}
.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
.nav-mobile-extra{display:none}
@media (max-width:1280px) and (min-width:1181px){.phone-link .num{display:none}.phone-link svg{width:22px;height:22px}}
@media (max-width:1180px){
  .menu-btn{display:flex}
  .header-cta .btn{display:none}
  nav.main{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(16,35,43,.12);max-height:calc(100vh - 76px);overflow-y:auto;padding:8px 20px 24px;flex-direction:column;align-items:stretch;justify-content:flex-start}
  nav.main.open{display:flex}
  .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .nav-list>li{border-bottom:1px solid var(--line)}
  nav.main .nav-top{width:100%;justify-content:space-between;padding:1rem .2rem;font-size:1.05rem;border-radius:0}
  nav.main .nav-top:hover,nav.main .has-menu.open>.nav-top{background:none}
  .nav-list>li.is-current>.nav-top::after{display:none}
  .caret{width:12px;height:12px}
  .nav-list>li{position:relative}
  .mega{position:static;transform:none;width:auto;max-width:none;border:0;box-shadow:none;padding:0 0 14px;border-radius:0}
  .mega::before{display:none}
  .mega-cols{flex-direction:column;gap:14px}
  .mega-col h4{margin-bottom:.35rem}
  nav.main .mega-col a{white-space:normal;padding:.45rem .5rem}
  nav.main .mega-promo{display:none}
  .mega-foot{flex-direction:column;gap:.5rem;margin-top:8px}
  .nav-mobile-extra{display:grid;gap:.7rem;margin-top:18px}
  .nav-mobile-extra .btn{justify-content:center}
}
@media (max-width:420px){header.site .logo img{height:38px}.phone-link .num{font-size:.95rem}}
@media (max-width:360px){.phone-link .num{display:none}}

/* ---------- vehicles: 3:2 photos with the coach centred ---------- */
.vehicle-img{aspect-ratio:3/2!important;object-fit:cover;object-position:center}

/* ---------- footer ---------- */
footer.site-foot{background:var(--ink);color:#aebfc6;padding:56px 0 28px;font-size:.95rem}
footer.site-foot .wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.foot-top{display:flex;align-items:center;gap:34px;flex-wrap:wrap;border-bottom:1px solid #24414c;padding-bottom:30px;margin-bottom:36px}
.foot-top .foot-logo{display:block;flex:none}
.foot-top .foot-logo img{width:300px;height:auto;display:block}
.foot-top .er-logo{display:block;padding:18px;flex:none}
.foot-top .er-logo img{width:215px;height:auto;display:block}
.foot-top .cpt-logo{display:block;flex:none;padding:18px}
.foot-top .cpt-logo img{width:130px;height:auto;display:block}
.foot-top p{flex:1 1 280px;font-size:.92rem;margin:0}
.foot-top p a{color:#dbe7eb}
.site-foot .foot-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr 1fr;gap:32px}
.site-foot h3{color:#fff;font:600 1rem/1.2 Outfit,Inter,sans-serif;margin:0 0 .8rem}
.site-foot h3.sub{margin-top:1.5rem}
.site-foot a{color:#dbe7eb;text-decoration:none}
.site-foot a:hover{color:#fff;text-decoration:underline}
.site-foot ul{list-style:none;display:grid;gap:.45rem;margin:0;padding:0}
.site-foot address{font-style:normal;line-height:1.55}
.foot-contact{display:grid;gap:.35rem;margin-top:.9rem}
.foot-contact a{display:flex;align-items:center;gap:.5rem}
.foot-contact svg{width:16px;height:16px;flex:none;color:#7cc4dc}
.social{display:flex;gap:.6rem;margin-top:1.1rem}
.social a{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#1b3540;color:#fff;transition:background .15s,transform .15s}
.social a:hover{background:var(--brand);transform:translateY(-2px);text-decoration:none}
.social svg{width:20px;height:20px}
.site-foot .foot-bottom{border-top:1px solid #24414c;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem}
@media (max-width:1000px){.site-foot .foot-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:620px){.site-foot .foot-grid{grid-template-columns:1fr 1fr}.site-foot .foot-grid>div:first-child{grid-column:1/-1}.foot-top{gap:10px}}
@media (max-width:380px){.site-foot .foot-grid{grid-template-columns:1fr}}

/* ---------- shared content blocks ---------- */
.contact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:start}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px}
.form-card h2{font-size:1.6rem}
.field{display:grid;gap:.35rem;margin-bottom:1rem}
.field label{font-weight:600;color:var(--ink);font-size:.95rem}
.field label .opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);border:1px solid #c4d3d9;border-radius:10px;padding:.75rem .85rem;background:#fff;width:100%}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(27,118,148,.25);border-color:var(--brand)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.form-note{font-size:.88rem;color:var(--muted);margin:.4rem 0 1.2rem}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.info-card{background:var(--ink);color:#c9d6db;border-radius:var(--radius);overflow:hidden}
.info-card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.info-card .in{padding:26px 28px 30px}
.info-card h2,.info-card h3{color:#fff}
.info-card a{color:#fff}
.info-list{list-style:none;display:grid;gap:.9rem;margin:1rem 0 0;padding:0}
.info-list li{display:flex;gap:.8rem;align-items:flex-start}
.info-list svg{width:20px;height:20px;flex:none;margin-top:.2rem;color:#7cc4dc}
.info-card .social a{background:#1b3540}
.quote-nudge{margin-top:20px;background:var(--brand-tint);border-radius:var(--radius);padding:22px 24px;color:var(--ink)}
.quote-nudge p{margin:.3rem 0 .9rem}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}.form-card{padding:24px}}

/* FAQ tabs (home + FAQ page) */
.faq-wrap{display:grid;grid-template-columns:1fr 340px;gap:44px;align-items:start}
.faq-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}
.faq-tabs button{font:600 .92rem Inter,sans-serif;border:1px solid var(--line);background:#fff;color:var(--ink);padding:.6rem 1rem;border-radius:999px;cursor:pointer}
.faq-tabs button:hover{border-color:var(--brand);color:var(--brand)}
.faq-tabs button[aria-selected="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.faq-panel[hidden]{display:none}
.faq-panel details{border-bottom:1px solid var(--line);padding:1.05rem 0}
.faq-panel details:first-child{border-top:1px solid var(--line)}
.faq-panel details p,.faq-panel details ul{margin-top:.7rem}
.faq-panel details ul{padding-left:1.2rem;display:grid;gap:.3rem}
.faq-side{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;position:sticky;top:96px}
.faq-side img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}
.faq-side .in{padding:22px 24px 26px}
.faq-side h3{font-size:1.25rem}
.faq-side .actions{display:grid;gap:.6rem;margin-top:1rem}
.faq-side .btn{justify-content:center}
.faq-group{margin-bottom:2.6rem}
.faq-group h2{font-size:1.5rem;margin-bottom:1rem;scroll-margin-top:100px}
@media (max-width:960px){.faq-wrap{grid-template-columns:1fr}.faq-side{position:static}}

/* ---------- day trips & pick-up points ---------- */
.facts{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.8rem;padding:0;list-style:none}
.facts li{display:flex;align-items:center;gap:.45rem;background:var(--brand-tint);color:var(--brand-dark);border-radius:999px;padding:.5rem .95rem;font-weight:600;font-size:.92rem}
.facts svg{width:18px;height:18px}
.pickup-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:36px;align-items:start}
.map-wrap{position:sticky;top:96px}
.map-box{height:560px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#e8eef0 linear-gradient(135deg,#eef3f5 25%,#e3eaed 25%,#e3eaed 50%,#eef3f5 50%,#eef3f5 75%,#e3eaed 75%) 0 0/28px 28px;z-index:1}
.map-box.map-failed::after{content:"The map couldn’t load. Use the Google Maps links instead.";display:grid;place-items:center;height:100%;color:var(--muted);padding:20px;text-align:center}
.map-note{font-size:.85rem;color:var(--muted);margin-top:.6rem}
.stop-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:none}
.stop{display:grid;grid-template-columns:44px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;align-items:start}
.stop h3{font-size:1.08rem;margin:.15rem 0 .25rem}
.stop p{font-size:.95rem;margin:0}
.stop-num{width:40px;height:40px;border-radius:50%;border:0;background:var(--c,var(--brand));color:#fff;font:700 1rem Outfit,Inter,sans-serif;cursor:pointer;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--c,var(--brand))}
.stop-num:hover{filter:brightness(1.1)}
.stop-links{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:.55rem;font-size:.9rem}
.stop-links a,.link-btn{color:var(--brand);font-weight:600;text-decoration:none;background:none;border:0;padding:0;font:inherit;font-weight:600;cursor:pointer}
.stop-links a:hover,.link-btn:hover{text-decoration:underline}
.pin-wrap{background:none;border:0}
.pin{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--c);color:#fff;font:700 .9rem/1 Outfit,Inter,sans-serif;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.leaflet-popup-content{font:400 .92rem/1.45 Inter,system-ui,sans-serif;color:var(--body);margin:12px 14px}
.leaflet-popup-content strong{color:var(--ink);font-size:1rem}
.leaflet-popup-content p{margin:.35rem 0 .5rem}
.leaflet-popup-content a{color:var(--brand);font-weight:600}
.pop-route{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.route-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.route-card{background:#fff;border:1px solid var(--line);border-top:5px solid var(--c);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;text-decoration:none;color:var(--body);transition:transform .15s,box-shadow .15s}
a.route-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(16,35,43,.1)}
.route-card .tag{align-self:flex-start;background:var(--c);color:#fff;font-weight:700;font-size:.8rem;padding:.25rem .7rem;border-radius:6px;margin-bottom:.7rem}
.route-card h3{font-size:1.15rem;margin-bottom:.35rem}
.route-card p{font-size:.93rem;margin:0}
.route-card .more{margin-top:auto;padding-top:.9rem;color:var(--brand);font-weight:600;font-size:.92rem}
.legend{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}
.legend button{display:flex;align-items:center;gap:.45rem;font:600 .88rem Inter,sans-serif;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:.45rem .85rem;cursor:pointer}
.legend button::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--c)}
.legend button[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.brochures{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.brochure{display:block;text-decoration:none;color:var(--ink);text-align:center}
.brochure img{width:100%;height:auto;border-radius:10px;border:1px solid var(--line);box-shadow:0 10px 24px rgba(16,35,43,.12);transition:transform .15s}
.brochure:hover img{transform:translateY(-3px) rotate(-.5deg)}
.brochure span{display:block;font-weight:600;margin-top:.7rem;font-size:.95rem}
.brochure small{display:block;color:var(--muted);font-size:.82rem}
.chip-list{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}
.chip-list li{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.45rem .9rem;font-weight:500;color:var(--ink);font-size:.93rem}
.tips{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tip{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.tip svg{width:28px;height:28px;color:var(--brand);margin-bottom:.6rem}
.tip h3{font-size:1.05rem}
.tip p{font-size:.93rem;margin:0}
@media (max-width:1000px){.brochures{grid-template-columns:repeat(3,1fr)}.tips{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.pickup-grid{grid-template-columns:1fr}.map-wrap{position:relative;top:0;order:-1}.map-box{height:380px}}
@media (max-width:560px){.brochures{grid-template-columns:1fr 1fr}.tips{grid-template-columns:1fr}.stop{padding:14px}}
a.route:hover{border-color:var(--brand)}


/* Accessibility: visible keyboard focus and reduced motion (added in audit) */
a:focus-visible,button:focus-visible,summary:focus-visible,[role="tab"]:focus-visible,select:focus-visible{outline:3px solid #135a71;outline-offset:3px;border-radius:4px}
.site-foot a:focus-visible,.info-card a:focus-visible,.hero a:focus-visible{outline-color:#fff}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* ---------- cookie banner ---------- */
.cc{position:fixed;left:0;right:0;bottom:0;z-index:100;background:#fff;border-top:3px solid var(--brand);box-shadow:0 -6px 24px rgba(16,35,43,.14)}
.cc-inner{max-width:var(--wrap);margin:0 auto;padding:16px 20px;display:flex;gap:1.25rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cc-copy{flex:1 1 420px;font-size:.92rem;line-height:1.5;color:var(--body)}
.cc-copy p{margin:0}
.cc-title{font-weight:700;color:var(--ink);margin-bottom:.2rem!important}
.cc-copy a{color:var(--brand-dark);text-decoration:underline}
.cc-actions{display:flex;gap:.75rem;flex:none}
.cc-btn{min-height:44px;min-width:110px;padding:.6rem 1.4rem;border-radius:999px;border:2px solid var(--brand-dark);background:var(--brand-dark);color:#fff;font:600 .95rem/1 Inter,system-ui,sans-serif;cursor:pointer}
.cc-btn:hover{background:#0e4659;border-color:#0e4659}
.cc-btn:focus-visible,.linklike:focus-visible{outline:3px solid #f5b400;outline-offset:2px}
.linklike{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
@media (max-width:560px){.cc-actions{width:100%}.cc-btn{flex:1}}

footer.site-foot .foot-top p a{text-decoration:underline}

.site-foot .foot-hours{margin:.8rem 0 0;line-height:1.55}

.header-cta .btn-brochure{white-space:nowrap}
@media(max-width:1279px){.header-cta .btn-brochure{display:none}}

@media(min-width:1121px){.header-cta{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:1rem;row-gap:.35rem;align-items:center}
.header-cta .phone-link{grid-row:1/3;grid-column:1}
.header-cta .btn{grid-column:2;padding:.38rem 1rem;font-size:.85rem;line-height:1.25;text-align:center;white-space:nowrap}
.header-cta .btn-brochure{display:inline-flex!important;justify-content:center}
.header-cta .menu-btn{display:none}}
.stop .stop-when strong{color:var(--ink,#0f2229)}
.brochure .brochure-blank{display:flex;align-items:center;justify-content:center;aspect-ratio:440/625;margin:0;border-radius:10px;border:1px solid var(--line);background:linear-gradient(160deg,#eef6f9,#d9eaf0);box-shadow:0 10px 24px rgba(16,35,43,.12)}
.brochure .brochure-blank b{font-size:2rem;color:#1b7694;letter-spacing:.05em}
