*{box-sizing:border-box}html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden}body{font-family:Arial,sans-serif;color:#071f3f;background:#f3f7fb;line-height:1.45;padding-bottom:78px}a{color:#075bd8;text-decoration:none}.wrap{max-width:1180px;margin:auto;padding:0 18px}.top{background:white;border-bottom:1px solid #dce6f0;position:sticky;top:0;z-index:20}.nav{display:flex;align-items:center;gap:18px;min-height:72px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:20px;color:#071f3f}.brand img{width:46px;height:46px}.navlinks{margin-left:auto;display:flex;gap:18px}.hero{padding:28px 0}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.card{background:#fff;border:1px solid #dce6f0;border-radius:20px;padding:24px;box-shadow:0 8px 30px rgba(11,43,76,.05)}.contact,.hero-photo{min-height:340px}.hero-photo{background:linear-gradient(135deg,#0c73fe,#03a9f4);display:flex;align-items:end;color:white;overflow:hidden;position:relative}.hero-photo:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.4),transparent 30%)}.hero-photo h2{position:relative;font-size:34px}.btns{display:flex;gap:12px;margin-top:18px}.btn{display:inline-flex;justify-content:center;align-items:center;background:#ffd633;color:#071f3f;font-weight:800;border-radius:13px;padding:13px 18px}.btn.secondary{background:#e8f3ff}.widget{margin:24px 0}.section{padding:14px 0 28px}.section h2{font-size:28px}.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.city{padding:0;overflow:hidden}.city img{width:100%;height:170px;object-fit:cover;display:block}.city .pad{padding:16px}.city h3{margin:0 0 7px}.badge{display:inline-block;background:#eaffef;border:1px solid #7ee09a;color:#08752a;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700}.route-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #dce6f0;border-radius:16px;overflow:hidden;background:#fff}.table th{background:#eaf5ff;font-size:12px;text-align:left}.table th,.table td{padding:14px 12px;border-bottom:1px solid #e3ebf3}.table tr:last-child td{border:0}.time{font-weight:800;font-size:16px}.sticky-buy{position:fixed;left:50%;transform:translateX(-50%);bottom:10px;z-index:50;width:min(520px,calc(100% - 24px));box-shadow:0 8px 30px rgba(0,0,0,.18)}footer{background:#082443;color:#dce9f5;margin-top:30px;padding:34px 0 100px}.small{font-size:14px;color:#5c7087}.route-list{columns:3;column-gap:28px}.route-list a{display:block;padding:7px 0}.widgetbox{overflow:hidden}.widgetbox script{max-width:100%}@media(max-width:760px){.navlinks{display:none}.hero-grid{grid-template-columns:1fr}.contact,.hero-photo{min-height:auto}.hero-photo{min-height:230px}.city-grid{grid-template-columns:1fr 1fr}.route-list{columns:1}.route-head{display:block}.badge{margin:8px 0 14px}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table{background:transparent;border:0;border-radius:0;overflow:visible}.table tbody{background:transparent}.table thead{display:none}.table tr{margin:0 0 14px;border:1px solid #dce6f0;border-radius:16px;padding:14px;background:#fff;overflow:hidden}.table tr:last-child{margin-bottom:0}.table td{border:0;padding:6px 0;background:#fff}.table td:before{content:attr(data-label);display:block;color:#71839a;font-size:11px;font-weight:700;text-transform:uppercase}.table .buycell{padding-top:12px}.table .buycell:before{display:none;content:none}.table .btn{width:100%}.city-grid{grid-template-columns:1fr}.btns{flex-direction:column}.section h2{font-size:24px}.card{padding:18px}}
/* Homepage hero: branded coach against Yekaterinburg skyline */
.home-hero-photo{background-image:url("/assets/images/ekaterinburg-bus.webp");background-size:cover;background-position:center;padding:0}
.home-hero-photo:before{display:none}
@media(max-width:760px){.home-hero-photo{min-height:250px;background-position:center}}

/* Refined homepage hero based on the established marathon sites */
.hero{padding:26px 0 20px}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:stretch}
.hero-grid>.card{min-width:0;border-radius:22px}
.hero-grid>.contact{padding:28px 30px;min-height:355px;display:flex;flex-direction:column;justify-content:center}
.hero-eyebrow{font-size:13px;letter-spacing:.13em;font-weight:800;color:#0065c9;margin-bottom:12px}
.hero-grid h1{font-size:clamp(29px,3vw,40px);line-height:1.13;letter-spacing:-.025em;margin:0 0 15px}
.hero-lead{font-size:16px;line-height:1.48;color:#536e90;margin:0 0 19px}
.hero-facts{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:9px;margin-bottom:2px}
.hero-fact{min-width:0;background:#f1f5fa;border-radius:14px;padding:13px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.hero-fact strong{font-size:12px;color:#092448}
.hero-fact a{color:#092448}
.hero-grid .btns{margin-top:17px;flex-wrap:wrap;gap:10px}
.hero-grid .btn{font-size:14px;padding:13px 15px}
.hero-grid .btn.secondary{background:#e5f2ff;color:#005cae}
.hero-grid .home-hero-photo{min-height:355px;border:0;box-shadow:none;background-position:center;background-size:cover}
@media(max-width:920px) and (min-width:761px){.hero-grid>.contact{padding:22px}.hero-facts{grid-template-columns:1fr 1fr}.hero-fact:last-child{grid-column:1/-1}.hero-grid h1{font-size:30px}}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:15px}.hero-grid>.contact{padding:22px;min-height:0}.hero-grid h1{font-size:32px}.hero-lead{font-size:15px}.hero-facts{grid-template-columns:1fr 1fr}.hero-fact:last-child{grid-column:1/-1}.hero-grid .btns{flex-direction:row}.hero-grid .btn{flex:1 1 190px}.hero-grid .home-hero-photo{min-height:260px}}
@media(max-width:420px){.hero-facts{grid-template-columns:1fr}.hero-fact:last-child{grid-column:auto}}

/* Compact spacing only on route pages */
body.route-page main.wrap > .section:first-child{padding-top:4px;padding-bottom:9px}
body.route-page main.wrap > .section:first-child h1{margin-top:10px;margin-bottom:12px}
body.route-page main.wrap > .section:first-child p{margin-top:0;margin-bottom:15px}
body.route-page main.wrap > .section:first-child + .section{padding-top:5px}
body.route-page main.wrap > .section:first-child .widgetbox{margin-bottom:0}
@media(max-width:760px){
 body.route-page main.wrap > .section:first-child{padding-top:0;padding-bottom:6px}
 body.route-page main.wrap > .section:first-child h1{margin-top:7px;margin-bottom:12px}
 body.route-page main.wrap > .section:first-child + .section{padding-top:3px}
 body.route-page main.wrap > .section:first-child + .section .route-head h2{margin-top:8px}
}
