/*
Theme Name: Bravista BusBank-Style
Theme URI: https://bravista.co.uk
Author: Bravista Ltd
Description: Custom Bravista theme with a BusBank-inspired layout — mega-menu header, photo hero, trust bar, private-hire destinations across England, Scotland, Wales and Europe. Company No. 16982946.
Version: 2.4.0
Text Domain: bravista-busbank
*/

:root{
  --navy:#0B2340;
  --navy-deep:#071729;
  --navy-mid:#12314f;
  --coral:#6B5347;
  --coral-dark:#4F3D34;
  --teal:#3B5F68;
  --teal-dark:#2A464D;
  --gold:#C9A227;
  --grey-bg:#F4F6F9;
  --grey-line:#E3E8EF;
  --ink:#101826;
  --ink-soft:#5B6577;
  --white:#FFFFFF;
  --radius:14px;
  --shadow:0 10px 30px rgba(11,35,64,0.12);
  --font-display:"Poppins","Segoe UI",sans-serif;
  --font-body:"Inter","Segoe UI",sans-serif;
}
*{box-sizing:border-box;}

body{margin:0;font-family:var(--font-body);color:var(--ink);background:#fff;line-height:1.55;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;color:var(--navy);}
p{margin:0 0 1em;color:var(--ink-soft);}
a{color:inherit;text-decoration:none;}
img,svg{max-width:100%;display:block;}
ul{list-style:none;padding:0;margin:0;}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;border:2px solid transparent;transition:transform .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-coral{background:var(--coral);color:#fff;box-shadow:0 8px 20px rgba(255,107,74,.35);}
.btn-coral:hover{background:var(--coral-dark);}
.btn-outline-light{border-color:rgba(255,255,255,.55);color:#fff;}
.btn-outline-light:hover{background:rgba(255,255,255,.12);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-white{background:#fff;color:var(--coral-dark);}

/* ===== HEADER / MEGA MENU (BusBank structure) ===== */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--grey-line);}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;}
.logo-link{display:flex;flex-direction:column;align-items:flex-start;gap:0;}
.logo-link img{height:40px;width:auto;}
.logo-fallback{font-family:var(--font-display);font-weight:800;font-size:22px;color:#fff;display:flex;align-items:center;gap:10px;}
.logo-fallback .mark{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--coral),var(--gold));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;}

.mega-nav{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;}
.mega-nav > li{position:relative;}
.mega-nav > li > a{display:flex;align-items:center;gap:6px;padding:14px 16px;color:var(--navy);font-weight:600;font-size:15px;border-radius:8px;}
.mega-nav > li:hover > a{background:var(--grey-bg);}
.mega-nav .caret{font-size:11px;opacity:.7;}

.mega-panel{position:absolute;top:100%;left:0;background:#fff;min-width:640px;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.25);padding:28px;display:none;grid-template-columns:1fr 1.4fr;gap:28px;}
.mega-nav > li:hover .mega-panel{display:grid;}
.mega-panel img.mega-thumb{width:100%;border-radius:10px;height:180px;object-fit:cover;background:var(--grey-bg);}
.mega-cols{display:flex;gap:32px;}
.mega-col h5{font-family:var(--font-display);font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--coral-dark);margin-bottom:12px;}
.mega-col a{display:block;padding:6px 0;font-size:14.5px;color:var(--navy);font-weight:600;}
.mega-col a:hover{color:var(--coral-dark);}

.topbar-actions{display:flex;align-items:center;gap:14px;}

@media (max-width:1080px){
  .mega-nav{display:none;}
}

/* ===== HERO (photo bg + headline + trust bar, BusBank structure) ===== */
.hero{position:relative;background:linear-gradient(180deg,rgba(7,23,41,.12),rgba(7,23,41,.32)),url('assets/images/hero-coach-road.jpg') center/cover no-repeat;color:#fff;padding:110px 0 60px;}
.hero-inner{max-width:820px;margin:0 auto;text-align:center;position:relative;z-index:2;}
.hero .kicker{display:inline-block;background:rgba(255,255,255,.14);padding:7px 16px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.03em;margin-bottom:20px;text-transform:uppercase;}
.hero h1{color:#fff;font-size:48px;line-height:1.12;margin-bottom:18px;}
.hero h1 .accent{color:var(--coral);}
.hero p.lead{color:rgba(255,255,255,.88);font-size:18px;max-width:620px;margin:0 auto 30px;}
.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

.trust-bar{background:#fff;padding:26px 0;border-bottom:1px solid var(--grey-line);}
.trust-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;align-items:center;text-align:center;}
.trust-grid .stat b{display:block;font-family:var(--font-display);font-size:20px;color:var(--navy);}
.trust-grid .stat span{font-size:12.5px;color:var(--ink-soft);}
.trust-grid .stars{color:#1a9e5c;font-size:16px;}

/* ===== SECTIONS ===== */
section{padding:76px 0;}
.section-head{max-width:680px;margin:0 auto 40px;text-align:center;}
.tag{display:inline-block;background:rgba(255,107,74,.12);color:var(--coral-dark);font-weight:700;font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:14px;}

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

.card{background:#fff;border:1px solid var(--grey-line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);}
.card img.art{width:100%;height:190px;object-fit:cover;border-radius:14px;margin-bottom:18px;}
.card ul{margin:12px 0 18px;}
.card ul li{margin-bottom:6px;font-size:14.5px;color:var(--ink-soft);padding-left:20px;position:relative;}
.card ul li::before{content:"✓";position:absolute;left:0;color:var(--coral-dark);font-weight:700;}
.card .price{font-size:13px;color:var(--coral-dark);font-weight:700;margin-bottom:6px;}

.why-strip{background:var(--grey-bg);}
.why-item{text-align:center;}
.why-item .ic{width:56px;height:56px;border-radius:14px;background:#fff;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:22px;}
.why-item h4{font-size:15.5px;margin-bottom:6px;}
.why-item p{font-size:13.5px;}

table.compare{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
table.compare th,table.compare td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--grey-line);font-size:14.5px;}
table.compare th{background:var(--navy);color:#fff;font-family:var(--font-display);}
table.compare td:nth-child(2),table.compare th:nth-child(2){text-align:center;width:150px;}
table.compare td:nth-child(3),table.compare th:nth-child(3){text-align:center;width:170px;}

.testimonial-card{background:#fff;border:1px solid var(--grey-line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow);display:flex;flex-direction:column;}
.testimonial-card .stars{color:#2ecc71;font-size:15px;margin-bottom:12px;}
.testimonial-card .quote{color:var(--ink);font-size:15px;line-height:1.6;flex-grow:1;margin-bottom:16px;}
.testimonial-card .attribution{font-size:13.5px;color:var(--ink-soft);font-weight:700;}
.testimonial-card .attribution span{display:block;font-weight:400;color:var(--ink-soft);font-size:12.5px;margin-top:2px;}
.review-badge-row{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 30px;flex-wrap:wrap;}
.review-badge-row .rb-stars{color:#2ecc71;font-size:18px;}
.review-badge-row .rb-text{font-size:14px;color:var(--ink-soft);font-weight:600;}
.yes{color:#1a9e5c;font-weight:700;}
.no{color:#c74a3a;font-weight:700;}

.dest-card{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#fff;border:1px solid var(--grey-line);}
.dest-card .flag-perch{background:linear-gradient(180deg,#eef1f6,#e3e8f0);height:100px;display:flex;align-items:flex-end;justify-content:center;overflow:visible;position:relative;padding-bottom:6px;}
.dest-card img.art{height:190px;width:100%;object-fit:cover;margin:0;border-radius:0;display:block;}
.dest-card .body{padding:20px;}
.dest-card h4{font-size:17px;margin-bottom:6px;}

/*
  The flag's movement is drawn frame-by-frame on a <canvas> (see the
  script at the bottom of this template) — a real sine wave travels
  across the fabric, anchored near the pole edge and freely rippling at
  the far edge, exactly like real flag physics. This is genuine
  geometric displacement per vertical strip, not a CSS filter effect,
  which is why it reads as actual cloth movement rather than a visual
  distortion effect.
*/
.dest-card .flag-banner{
  display:block;
  height:88px;
  width:auto;
  filter:drop-shadow(3px 6px 8px rgba(0,0,0,.3));
  pointer-events:none;
}
@media (max-width:640px){
  .dest-card .flag-banner{height:70px;}
  .dest-card .flag-perch{height:82px;}
}

.dest-card p{font-size:13.5px;margin-bottom:10px;}
.dest-card a.link{font-size:13.5px;font-weight:700;color:var(--coral-dark);}
.region-nav{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:36px;}
.region-nav a{background:var(--grey-bg);padding:10px 22px;border-radius:999px;font-weight:700;font-size:14px;color:var(--navy);}
.region-nav a:hover{background:var(--coral);color:#fff;}

.cta-band{background:linear-gradient(120deg,var(--coral),var(--coral-dark));color:#fff;border-radius:24px;padding:50px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;}
.cta-band h2{color:#fff;font-size:27px;max-width:540px;}
.cta-band p{color:rgba(255,255,255,.9);margin-bottom:0;}

/* ===== FOOTER (BusBank structure: brand block, popular pages, popular destinations, site info) ===== */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.75);}
.footer-top{padding:56px 0 40px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:36px;}
.footer-brand img{height:38px;margin-bottom:16px;}
.footer-brand .rating{display:flex;align-items:center;gap:8px;margin:16px 0 10px;color:#2ecc71;font-weight:700;}
.site-footer h5{color:#fff;font-family:var(--font-display);font-size:14.5px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:16px;}
.site-footer li{margin-bottom:10px;font-size:14px;}
.site-footer a:hover{color:var(--coral);}
.map-embed{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.14);margin-top:12px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:22px 0;font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.our-companies{display:flex;gap:28px;flex-wrap:wrap;margin-top:8px;}
.our-companies div{font-size:13px;}
.our-companies b{color:#fff;display:block;font-size:14px;}

@media (max-width:980px){
  .grid-4,.grid-5,.grid-3{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .trust-grid{grid-template-columns:repeat(3,1fr);}
  .hero h1{font-size:36px;}
}
@media (max-width:640px){
  .grid-4,.grid-5,.grid-3{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:repeat(2,1fr);}
  .cta-band{flex-direction:column;text-align:center;}
  .hero h1{font-size:30px;}
}

/* ===== Bravista final fixes ===== */
.logo-link img{height:74px;width:auto;max-width:260px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.20));}
.footer-brand img{height:84px;width:auto;max-width:250px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.18));margin-bottom:16px;}
.phone-link{color:var(--navy);font-weight:800;font-size:14.5px;white-space:nowrap;}
.phone-link:hover{color:var(--coral);}
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:start;}
.contact-info-card ul{list-style:none;padding:0;margin:12px 0;}
.quote-form{display:grid;gap:16px;}

.quote-map-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:stretch;}
.quote-form-col{display:grid;gap:14px;align-content:start;}
.quote-map-col{position:relative;min-height:520px;}
#quote-route-map-wrap{position:sticky;top:24px;border-radius:16px;overflow:hidden;border:1px solid var(--grey-line);box-shadow:var(--shadow);height:88vh;background:var(--grey-bg);}
@media (max-width:980px){
  .quote-map-layout{grid-template-columns:1fr;}
  .quote-map-col{min-height:360px;}
  #quote-route-map-wrap{position:static;height:320px;}
}

.trip-type-heading{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--coral-dark);font-weight:700;margin:4px 0 2px;}
.trip-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:6px;}
.trip-type-card{text-align:left;background:#fff;border:2px solid var(--grey-line);border-radius:12px;padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font-family:inherit;transition:.15s ease;}
.trip-type-card:hover{border-color:var(--coral);}
.trip-type-card.selected{border-color:var(--coral);background:rgba(255,107,74,.06);}
.trip-type-card .tt-title{font-weight:800;color:var(--navy);font-size:15px;}
.trip-type-card .tt-desc{font-size:12.5px;color:var(--ink-soft);}
@media (max-width:480px){
  .trip-type-grid{grid-template-columns:1fr;}
}
.quote-form label{font-weight:700;color:var(--navy);font-size:14px;display:grid;gap:7px;}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:13px 14px;border:1px solid var(--grey-line);border-radius:9px;font:inherit;background:#fff;}
.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px rgba(255,107,74,.16);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-error{background:#fff2ee;color:var(--coral-dark);border:1px solid rgba(229,80,47,.35);padding:12px 14px;border-radius:10px;font-weight:700;}
.contact-map{margin-top:16px;}
.legal h2{margin-top:30px;}
.legal ul{list-style:disc;}
.legal li{margin:7px 0;}
.card .btn{margin-top:auto;}
.card{display:flex;flex-direction:column;}
.card p:last-child{margin-bottom:0;}
.site-footer .footer-brand a{color:#fff;}
.site-footer .footer-brand .btn{color:#fff;}
@media(max-width:980px){.topbar{gap:16px}.topbar-actions{margin-left:auto}.contact-layout{grid-template-columns:1fr}.logo-link img{height:54px}.footer-brand img{height:62px}}
@media(max-width:640px){.form-row{grid-template-columns:1fr}.topbar{flex-wrap:wrap}.topbar-actions{width:100%;justify-content:space-between}.phone-link{font-size:13.5px}.logo-link img{height:50px}}


/* ===== Bravista professional refresh ===== */
.site-header{box-shadow:0 10px 28px rgba(0,0,0,.16);}
.topbar{padding:16px 0;gap:18px;}
.mobile-nav{display:none;background:var(--grey-bg);border-top:1px solid var(--grey-line);}
.mobile-nav-wrap{display:flex;gap:8px;justify-content:space-between;overflow:auto;padding:10px 0 12px;}
.mobile-nav a{color:var(--navy);background:#fff;border:1px solid var(--grey-line);padding:10px 14px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;}
.hero{padding:124px 0 72px;}
.hero p.lead{max-width:760px;}
.card{padding:26px 26px 28px;}
.card h3{margin-bottom:8px;}
.dest-card .body{padding:24px;}
.dest-card h4{font-size:20px;}
.cta-band{box-shadow:0 18px 38px rgba(229,80,47,.22);}
.about-split{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;}
.about-image-card{background:#fff;border:1px solid var(--grey-line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden;}
.about-image-card img{display:block;width:100%;height:100%;object-fit:cover;min-height:360px;}
.feature-list{margin:16px 0 0;padding-left:18px;color:var(--ink-soft);}
.feature-list li{margin:8px 0;}
@media (max-width:1080px){
  .mobile-nav{display:block;}
}
@media (max-width:980px){
  .about-split{grid-template-columns:1fr;}
  .card img.art{height:180px;}
  .dest-card img.art{height:210px;}
}
@media (max-width:640px){
  .logo-link img{height:58px;max-width:210px;}
  .footer-brand img{height:68px;max-width:210px;}
  .mobile-nav-wrap{justify-content:flex-start;}
  .card img.art{height:200px;}
  .dest-card img.art{height:220px;}
}


/* ===== SEO landing pages and AI/search optimisation content ===== */
.seo-hub{background:linear-gradient(180deg,#fff,var(--grey-bg));}
.seo-link-grid{align-items:stretch;}
.seo-link-card{display:block;background:#fff;border:1px solid var(--grey-line);border-radius:18px;padding:24px;box-shadow:var(--shadow);transition:.18s ease;color:var(--navy);}
.seo-link-card b{display:block;font-family:var(--font-display);font-size:20px;margin-bottom:8px;}
.seo-link-card span{display:block;color:var(--ink-soft);font-size:14.5px;line-height:1.55;}
.seo-link-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(11,35,64,.15);color:var(--navy);}
.landing-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:34px;align-items:start;}
.landing-main{background:#fff;border:1px solid var(--grey-line);border-radius:24px;padding:38px;box-shadow:var(--shadow);}
.landing-main h2{margin-top:26px;}
.landing-main h2:first-of-type{margin-top:6px;}
.landing-list{margin:26px 0;background:var(--grey-bg);box-shadow:none;}
.quote-details{margin:30px 0;}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:12px;}
.mini-grid div{background:#fff;border:1px solid var(--grey-line);border-radius:14px;padding:14px;}
.mini-grid b{display:block;color:var(--navy);font-family:var(--font-display);font-size:14px;}
.mini-grid span{display:block;color:var(--ink-soft);font-size:13px;margin-top:4px;}
.faq-list{display:grid;gap:12px;margin-top:18px;}
.faq-item{background:var(--grey-bg);border:1px solid var(--grey-line);border-radius:14px;padding:16px 18px;}
.faq-item summary{font-family:var(--font-display);font-weight:700;color:var(--navy);cursor:pointer;}
.faq-item p{margin:12px 0 0;}
.landing-side{display:grid;gap:20px;position:sticky;top:120px;}
.landing-side ul{margin:10px 0 0;padding-left:18px;}
.landing-side li{margin-bottom:8px;color:var(--ink-soft);}
.landing-side .btn{width:100%;justify-content:center;}
@media(max-width:980px){
  .landing-layout{grid-template-columns:1fr;}
  .landing-main{padding:28px;}
  .landing-side{position:static;}
  .mini-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .landing-main{padding:22px;}
  .mini-grid{grid-template-columns:1fr;}
}

/* v2.3 route fixes and service cards */
.service-detail-grid .card{display:flex;flex-direction:column;}
.service-detail-grid .card .btn{margin-top:auto;justify-content:center;}
.service-detail-grid .card img.art{height:230px;}
.site-header{z-index:999;}
.mega-panel{z-index:1000;}

/* v2.4 privacy + stronger SEO landing content */
.notice-box{background:linear-gradient(135deg,#fff,var(--grey-bg));border:1px solid var(--grey-line);border-radius:18px;padding:22px;margin:24px 0;box-shadow:0 10px 26px rgba(11,35,64,.08);}
.notice-box h3{margin-bottom:8px;}
.contact-info-card .card{border-radius:18px;}

/* Floating contact widget — single "Contact Us" button that expands */
.floating-contact{position:fixed;right:20px;bottom:20px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}

.floating-toggle{display:flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border:none;border-radius:999px;padding:15px 22px;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.3);transition:transform .15s ease,background .15s ease;font-family:inherit;}
.floating-toggle:hover{transform:translateY(-2px);background:var(--navy-mid);}
.ft-icon-close{display:none;}
.floating-contact.is-open .ft-icon-open{display:none;}
.floating-contact.is-open .ft-icon-close{display:inline-flex;}
.floating-contact.is-open .floating-toggle{background:var(--coral-dark);}

.floating-panel{display:flex;flex-direction:column;gap:10px;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.28);padding:14px;width:240px;
  opacity:0;transform:translateY(12px) scale(.97);pointer-events:none;transition:opacity .18s ease,transform .18s ease;}
.floating-contact.is-open .floating-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}

.floating-auto-bubble{display:flex;align-items:center;gap:10px;background:#fff;color:var(--navy);text-decoration:none;font-weight:700;font-size:14px;padding:12px 16px;border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.22);
  opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;transition:opacity .3s ease,transform .3s ease;white-space:nowrap;}
.floating-auto-bubble.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.floating-auto-bubble:hover{transform:translateY(-2px) scale(1.02);}

.floating-option{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;border:none;background:var(--grey-bg);cursor:pointer;text-decoration:none;font-family:inherit;font-size:14.5px;font-weight:700;color:var(--navy);width:100%;text-align:left;transition:background .15s ease;}
.floating-option:hover{background:#eef1f6;}
.fo-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.floating-whatsapp .fo-icon{background:#25D366;}
.floating-phone .fo-icon{background:var(--coral);}
.floating-wechat .fo-icon{background:#07C160;}
.fo-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.wechat-popup{position:fixed;right:20px;bottom:100px;z-index:10000;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.3);padding:22px;width:240px;text-align:center;}
.wechat-popup h4{margin:0 0 8px;color:var(--navy);font-family:var(--font-display);}
.wechat-popup p{font-size:13px;color:var(--ink-soft);margin-bottom:14px;}
.wechat-qr-image{width:100%;border-radius:10px;border:1px solid var(--grey-line);display:block;}
.wechat-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:20px;font-weight:700;color:var(--ink-soft);cursor:pointer;line-height:1;padding:4px;}
.wechat-close:hover{color:var(--navy);}

@media (max-width:640px){
  .floating-contact{right:14px;bottom:14px;gap:10px;}
  .floating-toggle{padding:13px 18px;font-size:14px;}
  .floating-panel{width:220px;}
  .wechat-popup{right:14px;bottom:90px;width:200px;}
}

/* Swoosh line accents, extracted from a family painting of the Bravista coach */
.header-swoosh{height:8px;width:auto;max-width:90px;margin-top:4px;display:block;}
.footer-swoosh{height:9px;width:auto;max-width:110px;margin:8px 0 14px;display:block;}

/* How It Works journey diagram */
.journey-row{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:10px;}
.journey-connector{position:absolute;top:34px;left:0;width:100%;height:40px;z-index:0;pointer-events:none;}
.journey-step{position:relative;z-index:1;text-align:center;background:#fff;padding:0 10px;}
.journey-icon{width:68px;height:68px;border-radius:50%;background:#fff;border:2px solid var(--grey-line);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 16px;}
.journey-step h4{font-size:16px;margin-bottom:6px;color:var(--navy);}
.journey-step p{font-size:13.5px;margin:0;}
@media (max-width:860px){
  .journey-row{grid-template-columns:1fr;gap:34px;}
  .journey-connector{display:none;}
  .journey-step{background:none;}
}
