:root{
  --g: var(--sob-primary, #087f5b);
  --g2: var(--sob-primary-light, #0aa66f);
  --mint: var(--sob-mint, #eaf8f2);
  --dark: var(--sob-dark, #103d32);
  --ink:#18362e;
  --muted:#71827c;
  --line:#dce9e3;
  --bg:#f7faf8;
  --red:#e94c48;
  --shadow:0 18px 55px rgba(10,68,51,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%}
body{margin:0;font-family:"Hind Siliguri",sans-serif;color:var(--ink);background:var(--bg);overflow-x:hidden}
button,input,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}
a{text-decoration:none}

/* ---- nav ---- */
.sob-nav{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 5.5%;position:sticky;top:0;z-index:20;gap:16px;flex-wrap:wrap}
.sob-logo{font-size:26px;font-weight:700;color:var(--g);letter-spacing:-1px;display:flex;align-items:center;gap:8px;flex-shrink:0}
.sob-logo a{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.sob-logo img{height:auto;max-height:42px;width:auto;max-width:160px;object-fit:contain;display:block}
.sob-logo span{color:var(--red)}
.sob-navlinks{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.sob-navlinks li{list-style:none;margin:0;padding:0}
.sob-navlinks a{color:#405850;font-size:14.5px;white-space:nowrap}
.sob-navlinks a:hover{color:var(--g)}
.sob-menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px;color:var(--g);font-size:20px;flex-shrink:0}

@media(max-width:900px){
  .sob-nav{padding:12px 5%}
  .sob-navlinks{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:2px;order:3;padding-top:10px;border-top:1px solid var(--line);margin-top:10px}
  .sob-navlinks.is-open{display:flex}
  .sob-navlinks a{padding:8px 4px;width:100%}
  .sob-menu-btn{display:block}
  .sob-logo img{max-height:34px;max-width:130px}
}

/* ---- hero ---- */
.sob-hero{background:linear-gradient(135deg,#effaf5,#dff4e9 65%,#ccebdc);padding:58px 0 74px;position:relative}
.sob-hero:after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:rgba(255,255,255,.4);right:-40px;top:-240px}
.sob-hero-inner{max-width:1180px;margin:auto;padding:0 20px;position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.sob-hero-text{flex:1;min-width:0;max-width:640px}
.sob-hero-image{flex-shrink:0;width:380px;max-width:38%;position:relative;z-index:6;margin-bottom:-110px}
.sob-hero-image img{width:100%;height:auto;display:block}
.sob-badge{display:inline-block;background:#fff;border:1px solid #cde7db;color:var(--g);padding:7px 14px;border-radius:99px;font-weight:700}
.sob-hero h1{font-size:55px;line-height:1.1;letter-spacing:-1.5px;margin:16px 0 12px}
.sob-hero h1 em{font-style:normal;color:var(--g)}
.sob-hero p{font-size:18px;line-height:1.7;color:#587068;margin:0}
.sob-hero-actions{display:flex;gap:10px;margin-top:25px}
.sob-btn-primary{border:0;background:var(--g);color:#fff;border-radius:12px;padding:13px 24px;font-weight:700;box-shadow:0 10px 22px rgba(8,127,91,.2);display:inline-block}
.sob-btn-secondary{border:1px solid #cbded6;background:#fff;color:var(--g);border-radius:12px;padding:12px 20px;font-weight:700;display:inline-block}
@media(max-width:900px){
  .sob-hero-image{display:none}
}

/* ---- search box (rendered by plugin shortcode, styled here) ---- */
.sob-search-wrap{max-width:1180px;margin:-38px auto 0;padding:0 20px;position:relative;z-index:5}
.sob-search-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:22px}
.sob-search-title{font-size:20px;font-weight:700;margin-bottom:14px}
.sob-search-grid{display:grid;grid-template-columns:1fr 1fr 1fr .75fr auto;gap:11px;align-items:end}
.sob-field label{display:block;color:#687b73;font-size:13px;margin:0 0 5px 3px}
.sob-field select,.sob-field input{height:50px;width:100%;border:1px solid #d4e2dc;border-radius:11px;background:#fff;padding:0 12px;color:var(--ink);outline:none}
.sob-field select:focus,.sob-field input:focus{border-color:var(--g)}
.sob-search-btn{height:50px;border:0;background:var(--g);color:#fff;border-radius:11px;padding:0 25px;font-weight:700;white-space:nowrap}
.sob-search-btn:hover{background:var(--g2)}

/* ---- generic containers ---- */
.sob-container{max-width:1180px;margin:62px auto;padding:0 20px}
.sob-section-title{text-align:center;margin-bottom:26px}
.sob-section-title h2{font-size:31px;margin:0 0 4px}
.sob-section-title p{margin:0;color:var(--muted)}

/* ---- routes ---- */
.sob-routes{display:grid;grid-template-columns:repeat(3, 1fr);gap:14px}
.sob-route{height:145px;border-radius:18px;background:linear-gradient(145deg,#0b7457,#0aa66f);color:#fff;padding:18px;position:relative}
.sob-route:nth-child(2n){background:linear-gradient(145deg,#125d4a,#14966d)}
.sob-route:nth-child(3n){background:linear-gradient(145deg,#155b49,#0b8965)}
.sob-route strong{font-size:20px;display:block}
.sob-route small{display:block;opacity:.82;margin-top:2px}
.sob-route .arrow{font-size:25px;margin-top:12px}
.sob-route .go{position:absolute;right:13px;bottom:12px;border:0;background:#fff;color:var(--g);border-radius:8px;padding:6px 11px;font-weight:700}

/* ---- steps ---- */
.sob-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.sob-step{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;text-align:center}
.sob-step .num{width:40px;height:40px;border-radius:12px;background:var(--mint);color:var(--g);display:grid;place-items:center;margin:auto;font-weight:800;font-size:18px}
.sob-step h3{font-size:17px;margin:11px 0 3px}
.sob-step p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}

/* ---- trust ---- */
.sob-trust{background:var(--dark);color:#fff;border-radius:25px;padding:35px;display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center}
.sob-trust h2{font-size:32px;line-height:1.25;margin:0 0 8px}
.sob-trust p{color:#bad2c9;line-height:1.65;margin:0}
.sob-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sob-stat{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);border-radius:15px;text-align:center;padding:18px}
.sob-stat b{display:block;font-size:27px}
.sob-stat span{font-size:13px;color:#bad0c8}

/* ---- operators ---- */
.sob-ops{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sob-op-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;display:flex;gap:14px;align-items:flex-start}
.sob-op-logo{width:46px;height:46px;border-radius:12px;background:var(--mint);color:var(--g);display:grid;place-items:center;font-weight:800;font-size:15px;flex-shrink:0}
.sob-op-card h3{margin:0 0 3px;font-size:16px}
.sob-op-card p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}

/* ---- faq ---- */
.sob-faq{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sob-faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 17px}
.sob-faq summary{font-weight:700;cursor:pointer}
.sob-faq p{color:var(--muted);line-height:1.55;margin:9px 0 0}

/* ---- help/contact ---- */
.sob-help{background:var(--mint);border:1px solid #cde7db;border-radius:20px;padding:27px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.sob-help h2{font-size:28px;margin:0}
.sob-help p{color:#60756d;margin:4px 0 0}
.sob-help-buttons{display:flex;gap:9px}

/* ---- footer ---- */
.sob-footer{background:#0d382f;color:#dff0e9;padding:40px 5.5% 24px;margin-top:65px}
.sob-footer-in{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.sob-footer h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}
.sob-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;font-size:13.5px}
.sob-footer ul a{color:#a8c6bb}
.sob-footer ul a:hover{color:#fff}
.sob-footer p{color:#a8c6bb;margin:5px 0}
.sob-footer-bottom{max-width:1180px;margin:26px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:12.5px;color:#7fa294}

/* ---- generic page/booking shell (plugin renders content inside) ---- */
.sob-page-head{background:#fff;border-bottom:1px solid var(--line);padding:24px 5.5%}
.sob-page-head-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:15px}
.sob-back{border:1px solid #cbded6;background:#fff;color:var(--g);padding:9px 14px;border-radius:10px;font-weight:600}
.sob-booking-content{max-width:1180px;margin:28px auto;padding:0 20px}
.sob-progress{display:flex;gap:5px;margin-bottom:22px}
.sob-progress div{flex:1;height:5px;background:#dce9e3;border-radius:99px}
.sob-progress div.done{background:var(--g)}
.sob-booking-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:23px}

@media(max-width:980px){.sob-ops{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
  .sob-navlinks{display:none}
  .sob-menu-btn{display:block}
  .sob-hero h1{font-size:46px}
  .sob-search-grid{grid-template-columns:1fr 1fr}
  .sob-routes{grid-template-columns:1fr 1fr}
  .sob-steps{grid-template-columns:repeat(3,1fr)}
  .sob-trust{grid-template-columns:1fr}
  .sob-footer-in{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .sob-hero h1{font-size:36px}
  .sob-hero-actions{flex-direction:column}
  .sob-search-grid,.sob-routes,.sob-faq,.sob-ops{grid-template-columns:1fr}
  .sob-steps{grid-template-columns:1fr 1fr}
  .sob-stats{grid-template-columns:1fr}
  .sob-help{display:block}
  .sob-help-buttons{margin-top:15px}
  .sob-footer{padding:32px 6% 20px}
  .sob-footer-in{grid-template-columns:1fr 1fr;gap:26px 18px;text-align:left}
  .sob-footer-in>div:first-child{grid-column:1/-1}
  .sob-footer .sob-logo{font-size:20px;margin-bottom:8px!important}
  .sob-footer p{font-size:13px;line-height:1.55}
  .sob-footer h4{font-size:11.5px;margin-bottom:9px}
  .sob-footer ul{gap:7px;font-size:13px}
  .sob-footer-bottom{text-align:left;font-size:11.5px;margin-top:20px;padding-top:14px}
  .sob-booking-content{padding:0 12px;margin-top:16px}
  .sob-booking-card{padding:14px;border-radius:14px}
}

/* ---------------- Mobile bottom bar (app-style nav) ---------------- */
.sob-bottom-bar{
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:linear-gradient(135deg, #0aa66f, #087f5b 70%);
  box-shadow:0 -6px 22px rgba(8,127,91,.35);
  border-radius:20px 20px 0 0;
  padding:10px 6px calc(10px + env(safe-area-inset-bottom));
}
.sob-bottom-bar-inner{
  display:flex; align-items:stretch; width:100%; position:relative;
}
.sob-bottom-bar a{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  flex:1; min-width:0; position:relative;
  color:rgba(255,255,255,.85); font-size:11px; font-weight:600; text-align:center;
  padding:7px 4px; border-radius:14px; transition:color .15s, background .15s;
}
/* Modern divider: a short, soft-faded line instead of a hard edge —
   sits vertically centered rather than spanning the full height. */
.sob-bottom-bar a + a::before{
  content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
  width:1px; height:22px;
  background:rgba(255,255,255,.28);
}
.sob-bottom-bar a svg{flex-shrink:0; stroke:currentColor}
.sob-bottom-bar a span{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%}
.sob-bottom-bar a:active, .sob-bottom-bar a:hover, .sob-bottom-bar a.active{
  color:#fff; background:rgba(255,255,255,.16);
}

@media(max-width:760px){
  .sob-bottom-bar{display:block}
  body{padding-bottom:70px}
}

/* ---------------- Print fallback for the ticket page ---------------- */
@media print{
  .sob-nav, .sob-footer, .sob-bottom-bar, .sob-page-head{display:none!important}
  body{padding-bottom:0!important}
}
