/* ============================================
   DHYANA CAB — Light Blue + Red + Dark Charcoal
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Poppins:wght@400;500;600;700;800;900&family=Oswald:wght@400;500;600;700&display=swap');

:root {
  /* Core Palette */
  --blue:        #0ea5e9;
  --blue-dark:   #0284c7;
  --blue-light:  #e0f2fe;
  --blue-glow:   rgba(14,165,233,0.15);
  --red:         #dc2626;
  --red-dark:    #b91c1c;
  --red-light:   #fee2e2;
  --red-glow:    rgba(220,38,38,0.12);
  --charcoal:    #1c2333;
  --charcoal-2:  #232d3f;
  --charcoal-3:  #2d3a4f;
  --charcoal-4:  #374151;
  --white:       #ffffff;
  --white-90:    rgba(255,255,255,0.9);
  --white-60:    rgba(255,255,255,0.6);
  --white-25:    rgba(255,255,255,0.1);
  --white-10:    rgba(255,255,255,0.06);
  --text-dark:   #0f172a;
  --text-mid:    #475569;
  --text-light:  #94a3b8;
  --border-dark: rgba(255,255,255,0.1);
  --border-blue: rgba(14,165,233,0.25);
  --shadow-blue: 0 8px 32px rgba(14,165,233,0.25);
  --shadow-red:  0 8px 32px rgba(220,38,38,0.25);
  --shadow-dark: 0 20px 60px rgba(0,0,0,0.4);
  --radius:      10px;
  --radius-lg:   18px;
  --radius-xl:   28px;
  --tr:          0.3s cubic-bezier(0.4,0,0.2,1);
  --font:        'Inter', sans-serif;
  --font-head:   'Poppins', sans-serif;
  --font-dis:    'Oswald', sans-serif;
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0 }
html,body { overflow-x:hidden; max-width:100%; }
html { scroll-behavior:smooth; }
body { font-family:var(--font); background:#fff; color:var(--text-dark); line-height:1.7; }
/* Every section clips overflow so grid children can't escape */
section, .mq-bar, .cta-ban, footer { overflow:hidden; }
img  { max-width:100%; display:block }
a    { text-decoration:none; color:inherit }
ul   { list-style:none }

::-webkit-scrollbar { width:6px }
::-webkit-scrollbar-track { background:#f1f5f9 }
::-webkit-scrollbar-thumb { background:var(--blue); border-radius:99px }

/* ── Loader ── */
#loader { position:fixed; inset:0; background:var(--charcoal); z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; transition:opacity .6s,visibility .6s }
#loader.done { opacity:0; visibility:hidden; pointer-events:none }
.ldr-logo { font-family:var(--font-dis); font-size:2.2rem; font-weight:700; letter-spacing:4px; color:#fff }
.ldr-logo span { color:var(--blue) }
.ldr-sub  { font-size:.8rem; letter-spacing:3px; color:var(--white-60); text-transform:uppercase }
.ldr-bar  { width:200px; height:3px; background:rgba(255,255,255,.1); border-radius:99px; overflow:hidden }
.ldr-bar::after { content:''; display:block; height:100%; width:0; background:linear-gradient(90deg,var(--blue),var(--red)); border-radius:99px; animation:lbar 1.8s ease forwards }
@keyframes lbar { to { width:100% } }

/* ── Utilities ── */
.container { max-width:1200px; width:100%; margin:0 auto; padding:0 16px; box-sizing:border-box; }
@media(min-width:600px){ .container { padding:0 24px } }
.section-pad { padding:90px 0 }
.blue { color:var(--blue) }
.red  { color:var(--red) }

.badge-tag {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--blue-light); border:1px solid rgba(14,165,233,.3);
  color:var(--blue-dark); font-family:var(--font-dis); font-size:.78rem;
  font-weight:600; letter-spacing:2px; text-transform:uppercase;
  padding:5px 16px; border-radius:99px; margin-bottom:14px
}
.badge-red {
  background:var(--red-light); border-color:rgba(220,38,38,.2); color:var(--red)
}
.section-title {
  font-family:var(--font-head); font-size:clamp(1.9rem,4vw,2.8rem);
  font-weight:800; color:var(--text-dark); line-height:1.2; margin-bottom:14px
}
.section-title.white { color:#fff }
.section-sub { color:var(--text-mid); font-size:1rem; max-width:560px; line-height:1.7 }
.section-sub.white { color:var(--white-60) }

/* Buttons */
.btn-blue {
  display:inline-flex; align-items:center; gap:9px;
  background:var(--blue); color:#fff; font-family:var(--font-head);
  font-weight:700; font-size:.9rem; letter-spacing:.3px;
  padding:13px 28px; border-radius:var(--radius); border:none;
  cursor:pointer; transition:var(--tr); box-shadow:var(--shadow-blue)
}
.btn-blue:hover { background:var(--blue-dark); transform:translateY(-2px); box-shadow:0 12px 32px rgba(14,165,233,.4) }
.btn-red {
  display:inline-flex; align-items:center; gap:9px;
  background:var(--red); color:#fff; font-family:var(--font-head);
  font-weight:700; font-size:.9rem; letter-spacing:.3px;
  padding:13px 28px; border-radius:var(--radius); border:none;
  cursor:pointer; transition:var(--tr); box-shadow:var(--shadow-red)
}
.btn-red:hover { background:var(--red-dark); transform:translateY(-2px) }
.btn-white {
  display:inline-flex; align-items:center; gap:9px;
  background:rgba(255,255,255,.12); color:#fff; font-family:var(--font-head);
  font-weight:700; font-size:.9rem; padding:12px 26px;
  border-radius:var(--radius); border:1px solid rgba(255,255,255,.25);
  cursor:pointer; transition:var(--tr)
}
.btn-white:hover { background:rgba(255,255,255,.22); transform:translateY(-2px) }
.btn-outline-blue {
  display:inline-flex; align-items:center; gap:9px;
  background:transparent; color:var(--blue); font-family:var(--font-head);
  font-weight:700; font-size:.9rem; padding:12px 26px;
  border-radius:var(--radius); border:2px solid var(--blue);
  cursor:pointer; transition:var(--tr)
}
.btn-outline-blue:hover { background:var(--blue); color:#fff; transform:translateY(-2px) }

/* ── HEADER ── */
#hdr {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:0; transition:var(--tr)
}
.hdr-top {
  background:var(--charcoal); padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.07)
}
.hdr-top-inner {
  display:flex; align-items:center; justify-content:space-between;
  font-size:.82rem; color:var(--white-60)
}
.hdr-top-left { display:flex; align-items:center; gap:20px }
.hdr-top-item { display:flex; align-items:center; gap:6px }
.hdr-top-item a { color:var(--white-60); transition:var(--tr) }
.hdr-top-item a:hover { color:var(--blue) }
.hdr-top-right { display:flex; align-items:center; gap:12px }
.hdr-call-pill {
  display:flex; align-items:center; gap:7px;
  background:var(--red); color:#fff; font-weight:700;
  font-size:.82rem; padding:5px 16px; border-radius:99px;
  transition:var(--tr); box-shadow:0 2px 10px rgba(220,38,38,.4)
}
.hdr-call-pill:hover { background:var(--red-dark) }

.hdr-main {
  background:var(--charcoal-2);
  backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border-dark)
}
#hdr.scrolled .hdr-top { display:none }
#hdr.scrolled .hdr-main { box-shadow:0 4px 24px rgba(0,0,0,.4) }

.hdr-main-inner {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 0; gap:12px;
  min-width:0;
}
.logo { display:flex; align-items:center; gap:12px; flex-shrink:0 }
.logo-icon {
  width:48px; height:48px; background:var(--blue);
  border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; box-shadow:var(--shadow-blue)
}
.logo-text { font-family:var(--font-dis); font-size:clamp(1.1rem,4vw,1.6rem); font-weight:700; color:#fff; letter-spacing:2px; line-height:1 }
.logo-text span { color:var(--blue) }
.logo-sub { font-size:.6rem; letter-spacing:3px; color:var(--white-60); text-transform:uppercase; margin-top:2px }

.nav-links { display:flex; align-items:center; gap:2px }
.nav-links a {
  font-family:var(--font-head); font-weight:600; font-size:.88rem;
  color:var(--white-60); padding:8px 14px; border-radius:8px;
  transition:var(--tr); position:relative
}
.nav-links a:hover, .nav-links a.active { color:#fff; background:var(--white-10) }
.nav-links a.active::after {
  content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
  width:16px; height:2px; background:var(--blue); border-radius:99px
}

/* Nav Dropdown */
.nav-drop { position:relative }
.nav-drop > a::before { content:'▾'; margin-left:4px; font-size:.7rem }
.drop-menu {
  position:absolute; top:calc(100% + 8px); left:0;
  background:var(--charcoal-2); border:1px solid var(--border-dark);
  border-radius:var(--radius); padding:8px 0; min-width:200px;
  box-shadow:var(--shadow-dark); opacity:0; visibility:hidden;
  transform:translateY(8px); transition:var(--tr); z-index:100
}
.nav-drop:hover .drop-menu { opacity:1; visibility:visible; transform:translateY(0) }
.drop-menu a {
  display:block; padding:9px 18px; font-size:.85rem;
  color:var(--white-60); transition:var(--tr)
}
.drop-menu a:hover { background:var(--white-10); color:#fff; padding-left:24px }

.hdr-book-btn {
  display:flex; align-items:center; gap:8px;
  background:var(--red); color:#fff; font-family:var(--font-head);
  font-weight:700; font-size:.88rem; padding:10px 22px;
  border-radius:var(--radius); white-space:nowrap;
  transition:var(--tr); box-shadow:var(--shadow-red)
}
.hdr-book-btn:hover { background:var(--red-dark); transform:translateY(-1px) }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; background:none; border:none }
.hamburger span { display:block; width:25px; height:2px; background:#fff; border-radius:2px; transition:var(--tr) }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg) }
.hamburger.open span:nth-child(2) { opacity:0 }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg) }

.mob-nav { display:none; position:fixed; inset:0; background:rgba(28,35,51,.98); backdrop-filter:blur(20px); z-index:999; flex-direction:column; align-items:center; justify-content:center; gap:6px }
.mob-nav.open { display:flex }
.mob-nav a { font-family:var(--font-dis); font-size:1.5rem; font-weight:600; letter-spacing:3px; color:var(--white-60); padding:12px 24px; transition:var(--tr); text-transform:uppercase }
.mob-nav a:hover { color:var(--blue) }
.mob-close { position:absolute; top:24px; right:24px; background:none; border:none; color:#fff; font-size:2rem; cursor:pointer }

/* ── HERO ── */
#hero {
  min-height:100vh; position:relative; display:flex; align-items:center;
  background:var(--charcoal); overflow:hidden; padding-top:120px
}
.hero-bg {
  position:absolute; inset:0;
  background-image:url('../images/hero-bg.jpg');
  background-size:cover; background-position:center;
  filter:brightness(.2); animation:hzoom 12s ease-in-out infinite alternate
}
@keyframes hzoom { from{transform:scale(1.05)} to{transform:scale(1.1)} }
.hero-gradient {
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(14,165,233,.2) 0%, rgba(28,35,51,.4) 40%, rgba(220,38,38,.1) 100%)
}
.hero-c { position:relative; z-index:2; width:100% }
.hero-grid { display:grid; grid-template-columns:1fr 460px; gap:60px; align-items:center }

.hero-eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:18px }
.h-dot { width:8px; height:8px; background:var(--blue); border-radius:50%; animation:pulse 2s ease infinite }
@keyframes pulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.6);opacity:.5} }
.h-eyetext { font-family:var(--font-dis); font-size:.82rem; letter-spacing:3px; text-transform:uppercase; color:var(--blue); font-weight:600 }

.hero-title { font-family:var(--font-head); font-size:clamp(2.6rem,5.5vw,4.2rem); font-weight:900; color:#fff; line-height:1.1; margin-bottom:18px }
.hero-title .hl { color:var(--blue) }
.hero-title .hr { color:var(--red) }
.hero-desc { color:var(--white-60); font-size:1rem; max-width:460px; margin-bottom:32px; line-height:1.8 }
.hero-btns { display:flex; gap:12px; flex-wrap:wrap }
.hero-stats { display:flex; gap:36px; margin-top:44px; padding-top:28px; border-top:1px solid var(--border-dark); flex-wrap:wrap }
.stat-n { font-family:var(--font-dis); font-size:1.9rem; font-weight:700; color:var(--blue); line-height:1 }
.stat-l { font-size:.75rem; color:var(--white-60); letter-spacing:1px; text-transform:uppercase; margin-top:4px }

/* ── BOOKING CARD ── */
.book-card {
  background:rgba(255,255,255,.04); backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-lg);
  padding:30px; box-shadow:0 24px 64px rgba(0,0,0,.5)
}
.book-card-head {
  background:linear-gradient(135deg,var(--blue),var(--blue-dark));
  margin:-30px -30px 24px; padding:22px 28px; border-radius:var(--radius-lg) var(--radius-lg) 0 0
}
.book-card-title { font-family:var(--font-dis); font-size:1.3rem; font-weight:700; color:#fff; letter-spacing:1px; text-transform:uppercase }
.book-card-sub { font-size:.82rem; color:rgba(255,255,255,.7); margin-top:4px }
.fg { margin-bottom:12px }
.fg label { display:block; font-family:var(--font-head); font-size:.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:6px }
.fg input,.fg select {
  width:100%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
  border-radius:8px; color:#fff; font-family:var(--font); font-size:.9rem;
  padding:11px 13px; outline:none; transition:var(--tr); -webkit-appearance:none
}
.fg input:focus,.fg select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(14,165,233,.2) }
.fg input::placeholder { color:rgba(255,255,255,.25) }
.fg select option { background:#1c2333; color:#fff }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px }
.sub-btn {
  width:100%; background:linear-gradient(135deg,var(--red),var(--red-dark));
  color:#fff; font-family:var(--font-head); font-weight:700; font-size:.95rem;
  letter-spacing:1px; text-transform:uppercase; padding:14px; border:none;
  border-radius:var(--radius); cursor:pointer; margin-top:6px;
  transition:var(--tr); box-shadow:var(--shadow-red);
  display:flex; align-items:center; justify-content:center; gap:10px
}
.sub-btn:hover { background:linear-gradient(135deg,var(--red-dark),#991b1b); transform:translateY(-2px); box-shadow:0 14px 40px rgba(220,38,38,.5) }

/* ── MARQUEE ── */
.mq-bar { background:linear-gradient(90deg,var(--charcoal),var(--charcoal-2)); padding:12px 0; overflow:hidden; border-top:1px solid var(--border-dark); border-bottom:1px solid var(--border-dark) }
.mq-track { display:flex; gap:40px; animation:mq 25s linear infinite; white-space:nowrap }
.mq-item { display:flex; align-items:center; gap:10px; font-family:var(--font-dis); font-size:.82rem; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--white-60); flex-shrink:0 }
.mq-item span { color:var(--blue) }
@keyframes mq { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── CARDS (generic) ── */
.card-dark {
  background:var(--charcoal-2); border:1px solid var(--border-dark);
  border-radius:var(--radius-lg); padding:28px; transition:var(--tr)
}
.card-dark:hover { border-color:var(--border-blue); transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.3) }

.card-white {
  background:#fff; border:1px solid #e2e8f0;
  border-radius:var(--radius-lg); padding:28px; transition:var(--tr);
  box-shadow:0 2px 12px rgba(0,0,0,.06)
}
.card-white:hover { border-color:rgba(14,165,233,.3); transform:translateY(-4px); box-shadow:0 16px 40px rgba(14,165,233,.12) }

/* Services Grid */
.srv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px }
.srv-card { background:var(--charcoal-2); border:1px solid var(--border-dark); border-radius:var(--radius-lg); padding:28px 20px; transition:var(--tr); position:relative; overflow:hidden; min-width:0; }
.srv-card::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(14,165,233,.06),transparent); opacity:0; transition:var(--tr) }
.srv-card:hover { border-color:var(--border-blue); transform:translateY(-6px); box-shadow:0 20px 50px rgba(0,0,0,.3) }
.srv-card:hover::after { opacity:1 }
.srv-icon { width:64px; height:64px; background:var(--blue-glow); border:1px solid var(--border-blue); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:1.7rem; margin-bottom:18px; transition:var(--tr) }
.srv-card:hover .srv-icon { background:var(--blue); box-shadow:var(--shadow-blue) }
.srv-title { font-family:var(--font-head); font-size:1.05rem; font-weight:700; color:#fff; margin-bottom:10px }
.srv-desc { font-size:.87rem; color:var(--white-60); line-height:1.7 }

/* Fleet */
.fleet-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px }
.fleet-card { background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius-lg); overflow:hidden; transition:var(--tr); box-shadow:0 2px 12px rgba(0,0,0,.06); min-width:0; }
.fleet-card:hover { border-color:rgba(14,165,233,.3); transform:translateY(-6px); box-shadow:0 24px 48px rgba(14,165,233,.15) }
.fleet-img { position:relative; overflow:hidden; aspect-ratio:16/9; background:#f1f5f9 }
.fleet-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease }
.fleet-card:hover .fleet-img img { transform:scale(1.05) }
.fleet-badge { position:absolute; top:12px; left:12px; background:var(--red); color:#fff; font-family:var(--font-dis); font-size:.7rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:4px 12px; border-radius:99px }
.fleet-body { padding:22px }
.fleet-name { font-family:var(--font-head); font-size:1.15rem; font-weight:700; color:var(--text-dark); margin-bottom:4px }
.fleet-type { font-size:.78rem; color:var(--blue); letter-spacing:1px; text-transform:uppercase; font-weight:600; margin-bottom:12px }
.fleet-specs { display:flex; gap:12px; flex-wrap:wrap }
.fleet-spec { display:flex; align-items:center; gap:5px; font-size:.78rem; color:var(--text-mid); background:#f8fafc; padding:4px 10px; border-radius:6px }
.fleet-price { margin-top:14px; padding-top:14px; border-top:1px solid #e2e8f0; display:flex; align-items:center; justify-content:space-between }
.fleet-rate { font-family:var(--font-head); font-size:1rem; font-weight:700; color:var(--blue) }
.fleet-rate span { font-size:.75rem; color:var(--text-mid); font-weight:400 }

/* Why Choose Us */
.why-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center }
.why-img-wrap { position:relative; border-radius:var(--radius-xl); overflow:hidden; aspect-ratio:3/4 }
.why-img-wrap img { width:100%; height:100%; object-fit:cover }
.why-img-badge {
  position:absolute; bottom:24px; left:24px; right:24px;
  background:rgba(14,165,233,.92); backdrop-filter:blur(12px);
  border-radius:var(--radius); padding:20px; display:flex; gap:20px; align-items:center
}
.wib-num { font-family:var(--font-dis); font-size:2rem; font-weight:700; color:#fff; line-height:1 }
.wib-text { font-size:.82rem; color:rgba(255,255,255,.8); line-height:1.5 }
.why-features { margin-top:32px; display:flex; flex-direction:column; gap:4px }
.why-item { display:flex; gap:18px; align-items:flex-start; padding:18px 0; border-bottom:1px solid #e2e8f0; transition:var(--tr) }
.why-item:last-child { border-bottom:none }
.why-item:hover .why-icon { background:var(--blue); border-color:var(--blue); color:#fff }
.why-icon { width:50px; height:50px; flex-shrink:0; background:var(--blue-light); border:1px solid rgba(14,165,233,.2); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; transition:var(--tr) }
.why-text h4 { font-family:var(--font-head); font-size:1rem; font-weight:700; color:var(--text-dark); margin-bottom:4px }
.why-text p { font-size:.86rem; color:var(--text-mid) }

/* Routes Grid */
.routes-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:32px; width:100%; }
.route-card {
  background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius);
  padding:12px 10px; transition:var(--tr); cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  min-width:0;
  overflow:hidden;
  word-break:break-word;
}
.route-card:hover { border-color:var(--blue); transform:translateY(-3px); box-shadow:0 10px 30px rgba(14,165,233,.15) }
.route-from-to { font-family:var(--font-head); font-size:.78rem; font-weight:700; color:var(--text-dark); line-height:1.3; margin-bottom:7px; display:flex; align-items:center; gap:4px; flex-wrap:wrap; word-break:break-word; overflow-wrap:break-word; }
.route-arrow { color:var(--blue); font-size:1rem }
.route-meta { display:flex; gap:10px; flex-wrap:wrap }
.route-pill { font-size:.68rem; color:var(--text-mid); background:#f1f5f9; padding:2px 7px; border-radius:99px; white-space:nowrap; }
.route-price { font-family:var(--font-head); font-size:.82rem; font-weight:700; color:var(--red); margin-top:7px }

/* Contact */
.contact-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:60px; align-items:start }
.ci-cards { display:flex; flex-direction:column; gap:14px; margin-top:32px }
.ci-card { display:flex; align-items:center; gap:16px; background:var(--charcoal-2); border:1px solid var(--border-dark); border-radius:var(--radius); padding:18px 20px; transition:var(--tr) }
.ci-card:hover { border-color:var(--border-blue) }
.ci-ico { width:46px; height:46px; flex-shrink:0; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.2rem }
.ci-ico.blue { background:var(--blue-glow); border:1px solid var(--border-blue) }
.ci-ico.red  { background:var(--red-glow);  border:1px solid rgba(220,38,38,.2) }
.ci-label { display:block; font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--white-60); margin-bottom:3px }
.ci-val { color:#fff; font-weight:500; font-size:.95rem; transition:var(--tr) }
.ci-val:hover { color:var(--blue) }
.cf-card { background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius-lg); padding:36px; box-shadow:0 4px 24px rgba(0,0,0,.06) }
.cf-title { font-family:var(--font-head); font-size:1.3rem; font-weight:800; color:var(--text-dark); margin-bottom:6px }
.cf-sub { font-size:.86rem; color:var(--text-mid); margin-bottom:24px }
.cf-fg { margin-bottom:14px }
.cf-fg label { display:block; font-size:.75rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--text-mid); margin-bottom:6px }
.cf-fg input,.cf-fg select,.cf-fg textarea { width:100%; background:#f8fafc; border:1px solid #e2e8f0; border-radius:8px; color:var(--text-dark); font-family:var(--font); font-size:.9rem; padding:11px 13px; outline:none; transition:var(--tr) }
.cf-fg input:focus,.cf-fg textarea:focus,.cf-fg select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(14,165,233,.1); background:#fff }
.cf-fg textarea { resize:none }
.map-wrap { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-dark); margin-top:24px; height:220px }
.map-wrap iframe { width:100%; height:100%; border:none }

/* CTA Banner */
.cta-ban { background:linear-gradient(135deg,var(--charcoal) 0%,var(--charcoal-3) 100%); padding:70px 0; position:relative; overflow:hidden; border-top:3px solid var(--blue) }
.cta-ban::before { content:''; position:absolute; top:-60px; right:-60px; width:240px; height:240px; background:var(--blue-glow); border-radius:50%; filter:blur(60px) }
.cta-ban::after  { content:''; position:absolute; bottom:-60px; left:-60px; width:200px; height:200px; background:var(--red-glow); border-radius:50%; filter:blur(60px) }
.cta-inner { position:relative; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap }
.cta-text h2 { font-family:var(--font-head); font-size:clamp(1.8rem,3vw,2.4rem); font-weight:800; color:#fff; line-height:1.2; margin-bottom:8px }
.cta-text p { color:var(--white-60); font-size:.95rem }
.cta-btns { display:flex; gap:14px; flex-wrap:wrap }

/* Footer */
#footer { background:var(--charcoal); border-top:1px solid var(--border-dark); padding-top:70px }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:50px; padding-bottom:60px; border-bottom:1px solid var(--border-dark) }
.footer-desc { font-size:.87rem; color:var(--white-60); line-height:1.8; margin:16px 0 24px; max-width:280px }
.footer-social { display:flex; gap:10px }
.soc-l { width:36px; height:36px; background:var(--white-10); border:1px solid var(--border-dark); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--white-60); transition:var(--tr) }
.soc-l:hover { background:var(--blue); border-color:var(--blue); color:#fff }
.fc-title { font-family:var(--font-dis); font-size:.82rem; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:#fff; margin-bottom:20px }
.fl-links { display:flex; flex-direction:column; gap:10px }
.fl-links a { font-size:.86rem; color:var(--white-60); transition:var(--tr); display:flex; align-items:center; gap:8px }
.fl-links a::before { content:'›'; color:var(--blue); font-size:1rem }
.fl-links a:hover { color:#fff; padding-left:4px }
.fc-items { display:flex; flex-direction:column; gap:12px }
.fc-item { display:flex; align-items:center; gap:10px; font-size:.84rem; color:var(--white-60) }
.fc-item a { color:var(--white-60); transition:var(--tr) }
.fc-item a:hover { color:var(--blue) }
.fc-ico { width:28px; height:28px; background:var(--blue-glow); border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:.82rem; flex-shrink:0 }
.footer-btm { padding:22px 0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px }
.footer-copy { font-size:.81rem; color:var(--white-60) }
.footer-copy span { color:var(--blue) }
.footer-btm-links { display:flex; gap:18px }
.footer-btm-links a { font-size:.81rem; color:var(--white-60); transition:var(--tr) }
.footer-btm-links a:hover { color:var(--blue) }

/* Floating Buttons */
.f-wa { position:fixed; bottom:28px; right:28px; z-index:500; width:56px; height:56px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(37,211,102,.4); transition:var(--tr); animation:fbounce 3s ease-in-out infinite }
.f-wa:hover { transform:scale(1.12) !important; animation:none }
.f-call { position:fixed; bottom:96px; right:28px; z-index:500; width:56px; height:56px; background:var(--red); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-red); transition:var(--tr) }
.f-call:hover { transform:scale(1.12) }
.f-tip { position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%); background:var(--charcoal); color:#fff; font-size:.77rem; font-weight:600; padding:5px 12px; border-radius:6px; white-space:nowrap; opacity:0; pointer-events:none; transition:var(--tr); border:1px solid var(--border-dark) }
.f-wa:hover .f-tip,.f-call:hover .f-tip { opacity:1 }
@keyframes fbounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }

/* About Page */
.about-hero { background:linear-gradient(135deg,var(--charcoal) 0%,var(--charcoal-3) 100%); padding:160px 0 80px; position:relative; overflow:hidden }
.about-hero::before { content:''; position:absolute; inset:0; background:url('../images/hero-bg.jpg') center/cover; filter:brightness(.1) }
.page-hero-c { position:relative; z-index:2; text-align:center }
.page-title { font-family:var(--font-head); font-size:clamp(2.2rem,5vw,3.5rem); font-weight:900; color:#fff; margin-bottom:14px }
.breadcrumb { display:flex; align-items:center; justify-content:center; gap:10px; font-size:.87rem; color:var(--white-60) }
.breadcrumb a { color:var(--blue); transition:var(--tr) }
.breadcrumb a:hover { color:#fff }
.breadcrumb span { color:var(--white-60) }

/* Route Page specific */
.route-hero { background:linear-gradient(135deg,var(--charcoal),var(--charcoal-3)); padding:160px 0 80px; position:relative }
.route-hero::before { content:''; position:absolute; inset:0; background:url('../images/hero-bg.jpg') center/cover; filter:brightness(.15) }
.route-hero-c { position:relative; z-index:2 }
.route-info-bar { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px }
.r-pill { display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); color:#fff; font-size:.83rem; padding:6px 14px; border-radius:99px }
.r-pill.blue { background:rgba(14,165,233,.2); border-color:rgba(14,165,233,.3); color:var(--blue) }
.r-pill.red  { background:rgba(220,38,38,.2); border-color:rgba(220,38,38,.3); color:#fca5a5 }

.fare-table-wrap { background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.06) }
.fare-table { width:100%; border-collapse:collapse }
.fare-table th { background:var(--charcoal); color:#fff; font-family:var(--font-head); font-size:.82rem; font-weight:600; letter-spacing:1px; text-transform:uppercase; padding:14px 18px; text-align:left }
.fare-table td { padding:14px 18px; border-bottom:1px solid #e2e8f0; font-size:.9rem; color:var(--text-dark) }
.fare-table tr:last-child td { border-bottom:none }
.fare-table tr:hover td { background:#f8fafc }
.fare-td-price { font-family:var(--font-head); font-weight:700; color:var(--red); font-size:1rem }
.fare-td-type  { font-weight:600; color:var(--text-dark) }

.city-routes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:40px }
.city-route-link { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid #e2e8f0; border-radius:var(--radius); padding:14px 18px; transition:var(--tr); font-size:.88rem; color:var(--text-dark); font-weight:500; box-shadow:0 2px 8px rgba(0,0,0,.04) }
.city-route-link:hover { border-color:var(--blue); color:var(--blue); transform:translateX(4px); box-shadow:0 6px 20px rgba(14,165,233,.12) }
.city-route-link .arr { color:var(--blue); margin-left:auto }

/* Scroll reveal */
.rv { opacity:0; transform:translateY(32px); transition:opacity .7s ease,transform .7s ease }
.rv.vis { opacity:1; transform:translateY(0) }
.rvl { opacity:0; transform:translateX(-40px); transition:opacity .7s ease,transform .7s ease }
.rvl.vis { opacity:1; transform:translateX(0) }
.rvr { opacity:0; transform:translateX(40px); transition:opacity .7s ease,transform .7s ease }
.rvr.vis { opacity:1; transform:translateX(0) }
.d1{transition-delay:.08s}.d2{transition-delay:.15s}.d3{transition-delay:.22s}.d4{transition-delay:.29s}.d5{transition-delay:.36s}.d6{transition-delay:.43s}

/* Toast */
.toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px); color:#fff; font-family:var(--font-head); font-weight:600; font-size:.9rem; padding:12px 28px; border-radius:8px; z-index:9999; opacity:0; transition:all .4s ease; pointer-events:none; box-shadow:0 8px 24px rgba(0,0,0,.2) }

/* ══════════════════════════════════════
   RESPONSIVE — Mobile First
   ══════════════════════════════════════ */

/* ── Desktop ≥1100px: restore 4-col routes ── */
@media(min-width:1100px){
  .routes-grid{grid-template-columns:repeat(4,1fr);gap:16px}
  .srv-grid{grid-template-columns:repeat(3,1fr)}
}

/* ── Tablet 901–1100px ── */
@media(max-width:1100px) {
  .footer-grid{grid-template-columns:1fr 1fr}
  .routes-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .city-routes-grid{grid-template-columns:1fr 1fr}
  .srv-grid{grid-template-columns:repeat(2,1fr)}
}

/* ── Small Tablet ≤900px ── */
@media(max-width:900px) {
  .nav-links,.hdr-book-btn,.hdr-top{display:none}
  .hamburger{display:flex}
  .why-grid,.contact-grid{grid-template-columns:1fr}
  .fleet-grid{grid-template-columns:1fr 1fr}
  .routes-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .cta-inner{flex-direction:column;text-align:center}
  .cta-btns{justify-content:center}
  .why-img-wrap{aspect-ratio:16/9}
  .footer-grid{grid-template-columns:1fr 1fr}
  .fare-table th,.fare-table td{padding:10px 10px;font-size:.78rem}
}

/* ── Mobile ≤600px ── */
@media(max-width:600px) {
  .section-pad{padding:52px 0}
  .srv-grid{grid-template-columns:1fr 1fr}
  .fleet-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .city-routes-grid{grid-template-columns:1fr}
  .why-grid,.contact-grid{grid-template-columns:1fr}
  .routes-grid{
    grid-template-columns:1fr 1fr;
    gap:8px;
    width:100%;
    max-width:100%;
  }
  .route-card{
    padding:10px 8px;
    max-width:100%;
    min-width:0;
    word-break:break-word;
  }
  .route-from-to{
    font-size:.72rem;
    flex-wrap:wrap;
    gap:2px;
    max-width:100%;
    overflow:hidden;
  }
  .route-arrow{flex-shrink:0}
  .route-pill{font-size:.65rem;padding:2px 6px}
  .route-price{font-size:.78rem}
  .route-meta{gap:5px}
  .footer-btm{flex-direction:column;text-align:center;gap:8px}
  .footer-btm-links{justify-content:center}
  .hero-stats{gap:14px}
  .stat-n{font-size:1.4rem}
  .stat-l{font-size:.62rem}
  .fleet-body{padding:14px}
  .fleet-name{font-size:.95rem}
  .fleet-specs{flex-wrap:wrap;gap:5px}
  .fleet-spec{font-size:.72rem}
  .srv-card{padding:20px 14px}
  .srv-icon{width:50px;height:50px;font-size:1.3rem;margin-bottom:12px}
  .srv-title{font-size:.95rem}
  .srv-desc{font-size:.8rem}
  .cta-inner{flex-direction:column;text-align:center;gap:20px}
  .cta-btns{flex-direction:column;align-items:center}
  .cta-text h2{font-size:1.3rem}
  .cta-text p{font-size:.85rem}
  .cf-card{padding:20px 14px}
  .ci-card{padding:14px}
  .btn-blue,.btn-red,.btn-white,.btn-outline-blue{
    padding:10px 16px;font-size:.83rem
  }
  .section-title{font-size:1.5rem}
  .section-sub{font-size:.88rem}
  .badge-tag{font-size:.72rem;padding:4px 12px}
  .hdr-top{display:none}
  .fare-table-wrap{overflow-x:auto}
  .fare-table{min-width:460px}
  .city-route-link{padding:10px 12px;font-size:.8rem}
  .why-item{padding:14px 0}
  .why-icon{width:42px;height:42px;font-size:1.1rem}
  .f-wa,.f-call{width:50px;height:50px}
  .f-wa{bottom:20px;right:16px}
  .f-call{bottom:80px;right:16px}
}

/* ── Very small ≤420px ── */
@media(max-width:420px){
  .routes-grid{grid-template-columns:1fr}
  .srv-grid{grid-template-columns:1fr}
  .fleet-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .hero-stats{gap:10px;flex-wrap:wrap}
  .stat-n{font-size:1.3rem}
  .footer-social .soc-l{width:32px;height:32px}
  .section-title{font-size:1.35rem}
}
