
:root{--blue:#063b78;--sky:#08a9eb;--yellow:#ffd529;--bg:#f3f7fb;--text:#071b35;--muted:#60748e;--line:#dce6f1;--green:#087a39}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;color:var(--text);background:var(--bg);padding-bottom:86px}a{color:inherit}.wrap{max-width:1180px;margin:auto;padding:0 22px}.top{background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.nav{height:76px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;font-size:20px}.brand img{width:48px;height:48px;border:2px solid #0873c9;border-radius:8px;padding:3px}.menu{margin-left:auto;display:flex;gap:18px}.menu a{text-decoration:none;font-weight:700;color:#24405f}.hero{padding:28px 0}.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:22px}.card{background:white;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 8px 30px rgba(12,50,90,.05)}h1{font-size:38px;margin:0 0 14px}h2{font-size:28px;margin:0 0 18px}.muted{color:var(--muted)}.contact p{margin:12px 0;font-size:17px}.buttons{display:flex;gap:12px;margin-top:22px}.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--yellow);border-radius:13px;padding:15px 20px;font-weight:800;text-decoration:none;border:0}.btn.blue{background:#087fd1;color:#fff}.hero-photo{min-height:330px;border-radius:20px;background:linear-gradient(135deg,#0866aa,#0ca5df);display:flex;align-items:flex-end;padding:28px;color:white;font-size:34px;font-weight:800}.section{padding:20px 0}.widgetbox{max-width:920px;margin:auto}.cities{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.city{height:190px;border-radius:16px;overflow:hidden;position:relative;text-decoration:none;background:#164e79}.city img{width:100%;height:100%;object-fit:cover}.city span{position:absolute;left:0;right:0;bottom:0;padding:36px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font-size:20px;font-weight:800}.route-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.schedule-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.fresh{white-space:nowrap;background:#effff4;color:var(--green);border:1px solid #79dfa0;border-radius:999px;padding:9px 13px;font-weight:800;font-size:13px}.table{border:1px solid var(--line);border-radius:16px;overflow:hidden}.tr{display:grid;grid-template-columns:115px 1.4fr 1fr 1fr 135px;align-items:center;border-top:1px solid var(--line);padding:13px 12px;gap:8px}.tr:first-child{border-top:0}.th{background:#eaf6ff;font-size:12px;font-weight:800}.time{font-size:17px;font-weight:800}.side .card{margin-bottom:16px;padding:18px}.sticky-buy{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);border-top:1px solid var(--line);z-index:50;padding:12px;text-align:center}.sticky-buy .btn{min-width:275px;font-size:18px}.footer{margin-top:40px;background:#062f5e;color:#fff;padding:34px 0}.footer a{color:#fff}.allroutes{columns:3;column-gap:30px}.allroutes a{display:block;padding:7px 0;text-decoration:none;color:#075da8}.note{font-size:14px;color:#60748e}.tour{margin-top:24px}.tour h2{font-size:24px}.breadcrumbs{font-size:14px;color:#60748e;margin:20px 0}.breadcrumbs a{color:#0a66b2}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.info-grid .card{padding:20px}
@media(max-width:800px){.wrap{padding:0 14px}.menu{display:none}.nav{height:66px}.brand{font-size:17px}.hero-grid,.route-layout{grid-template-columns:1fr}.hero-photo{min-height:230px}.cities{grid-template-columns:repeat(2,1fr)}h1{font-size:30px}.schedule-head{display:block}.fresh{display:inline-block;margin:8px 0 14px}.tr{display:grid;grid-template-columns:1fr 1fr;margin:14px;border:1px solid var(--line);border-radius:16px;padding:16px;gap:12px}.table{border:0;overflow:visible}.th{display:none}.tr>div:nth-child(3),.tr>div:nth-child(4){grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}.tr .buycell{grid-column:1/-1}.tr .btn{width:100%}.tr>div:before{display:block;font-size:11px;color:#71839a;font-weight:800;margin-bottom:5px}.tr>div:nth-child(1):before{content:'ОТПРАВЛЕНИЕ'}.tr>div:nth-child(2):before{content:'ДНИ'}.tr>div:nth-child(3):before{content:'ОТКУДА'}.tr>div:nth-child(4):before{content:'КУДА'}.allroutes{columns:1}.info-grid{grid-template-columns:1fr}.buttons{flex-direction:column}.side{display:none}}
/* Compact homepage hero, aligned with the latest marathon references */
.region-badge{display:inline-block;margin-bottom:12px;padding:7px 12px;border-radius:999px;background:#e8f5ff;color:#0873c9;font-size:12px;font-weight:900;letter-spacing:1.4px}.hero .contact{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}.hero .contact h1{font-size:38px;line-height:1.08;margin-bottom:12px}.hero-lead{color:#60748e;line-height:1.5;margin:0;max-width:560px}.hero .buttons{margin-top:20px}.btn.soft{background:#eaf4fd;color:#0873c9;border:1px solid #cfe4f7}.contact-grid{display:grid;grid-template-columns:1.1fr 1fr 1.1fr;gap:10px;margin-top:18px}.contact-item{background:#f3f7fb;border-radius:13px;padding:13px 14px;min-width:0}.contact-item b,.contact-item span{display:block}.contact-item b{font-size:13px;margin-bottom:6px}.contact-item span{font-size:14px;line-height:1.35}.hero-photo{min-height:0;padding:0;background:none;overflow:hidden;display:block;aspect-ratio:1.69/1}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover}.brand img{width:48px;height:48px;border:0;border-radius:0;padding:0;object-fit:contain}.hero-grid{align-items:stretch}.hero-grid>.card,.hero-grid>.hero-photo{height:100%}
@media(min-width:801px){.hero{padding:26px 0 14px}.hero-grid{grid-template-columns:1fr 1.12fr;gap:22px;max-height:390px}.hero .contact{min-height:360px}.hero-photo{min-height:360px;max-height:390px}}
@media(max-width:800px){html,body{max-width:100%;overflow-x:hidden}.hero .contact{padding:22px 20px}.hero .contact h1{font-size:30px}.contact-grid{grid-template-columns:1fr}.hero-photo{aspect-ratio:16/9;min-height:0}.brand img{width:44px;height:44px}.hero .buttons{flex-direction:column}}

/* 2026-09-27 homepage layout corrections */
.widgetbox{max-width:none;width:100%;margin:0}
.hero-grid{max-height:none!important}
.hero-grid>.card,.hero-grid>.hero-photo{height:auto}
@media(min-width:801px){
  .hero-grid{max-height:none!important;align-items:stretch}
  .hero .contact{min-height:360px;height:auto}
  .hero-photo{min-height:360px;height:auto;aspect-ratio:auto}
  .hero-photo img{height:100%;min-height:360px;max-height:390px;object-fit:cover}
  .section{clear:both}
  .widgetbox{max-width:1180px}
}
@media(max-width:800px){
  .widgetbox{width:100%;max-width:100%;overflow:hidden}
  .widgetbox iframe,.widgetbox>div,.widgetbox script+div{max-width:100%!important}
}

/* 2026-09-27 equal-height compact homepage hero */
@media(min-width:801px){
  .hero-grid{align-items:stretch}
  .hero .contact,.hero .hero-photo{height:360px;min-height:360px;max-height:360px}
  .hero .contact{padding:22px 26px;justify-content:flex-start}
  .hero .contact h1{font-size:36px;margin-bottom:10px}
  .hero-lead{font-size:16px!important;line-height:1.42!important}
  .hero .buttons{margin-top:16px;gap:10px;flex-wrap:nowrap}
  .hero .buttons .btn{padding:12px 16px;min-height:46px;font-size:15px;white-space:nowrap}
  .contact-grid{margin-top:14px;gap:8px}
  .contact-item{padding:10px 11px}
  .contact-item b{font-size:12px;margin-bottom:4px}
  .contact-item span{font-size:13px;line-height:1.28}
  .hero-photo{aspect-ratio:auto}
  .hero-photo img{height:100%;min-height:0;max-height:none;object-fit:cover}
}

/* 2026-09-27 definitive mobile overflow fix for route/schedule pages */
@media (max-width:800px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  body{min-width:0!important}
  .wrap,main.wrap,.route-layout,.route-layout>div,.card,.section,.table,.tour,.breadcrumbs,.schedule-head{min-width:0!important;max-width:100%!important;width:auto}
  .wrap,main.wrap{width:100%!important;padding-left:12px!important;padding-right:12px!important;margin-left:0!important;margin-right:0!important}
  .route-layout{display:block!important;width:100%!important}
  .route-layout>div{width:100%!important;overflow:hidden}
  .route-layout .card{width:100%!important;padding:18px!important;overflow:hidden}
  .route-layout h1,.route-layout h2,.route-layout h3,.route-layout p,.breadcrumbs{max-width:100%!important;overflow-wrap:anywhere;word-break:normal}
  .route-layout h1{font-size:25px!important;line-height:1.18!important}
  .route-layout h2{font-size:23px!important;line-height:1.2!important}
  .route-layout iframe,.route-layout img,.route-layout video,.route-layout canvas,.route-layout svg{max-width:100%!important}
  .route-layout iframe{width:100%!important}
  .route-layout .card>div,.route-layout .card>section,.route-layout .card form,.route-layout .card [style*="width"]{max-width:100%!important}
  .table{width:100%!important;overflow:visible!important}
  .tr{width:100%!important;margin:12px 0!important;grid-template-columns:1fr!important;padding:14px!important}
  .tr>div{min-width:0!important;max-width:100%!important;grid-column:1/-1!important}
  .tr>div:nth-child(2),.tr>div:nth-child(3),.tr>div:nth-child(4){border-top:1px solid var(--line);padding-top:10px}
  .tr .btn,.buycell,.buycell .btn{width:100%!important;max-width:100%!important;min-width:0!important}
  .fresh{white-space:normal!important;max-width:100%!important;line-height:1.25}
  .tour{overflow:hidden!important}
  .tour>div,.tour iframe,.tour [style*="width"]{max-width:100%!important}
  .sticky-buy{width:100%!important;max-width:100%!important;overflow:hidden}
  .sticky-buy .btn{min-width:0!important;max-width:calc(100vw - 32px)!important;width:auto!important}
}
