
:root{--navy:#062b52;--blue:#03a9f4;--yellow:#ffd331;--bg:#f3f7fb;--text:#061d38;--muted:#66788d;--line:#dce6f0}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Segoe UI",sans-serif;padding-bottom:86px}
a{text-decoration:none;color:inherit}.container{width:min(1180px,calc(100% - 32px));margin:auto}.top{background:var(--navy);color:white;font-size:14px}
.top .container{padding:9px 0;display:flex;justify-content:space-between;gap:20px}.header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.header-inner{display:flex;align-items:center;min-height:74px;gap:28px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:900}.brand img{width:42px;height:42px}
.nav{margin-left:auto;display:flex;gap:22px;font-weight:800;font-size:15px}.nav a:hover{color:#0587d0}
.hero{padding:26px 0 18px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}.card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 10px 30px rgba(5,43,82,.05)}
.hero-main{padding:24px 26px}.eyebrow{font-size:13px;font-weight:900;color:#0786cb;letter-spacing:.04em}.hero h1{font-size:38px;line-height:1.06;margin:8px 0 10px}.lead{font-size:17px;line-height:1.45;color:#40566e}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.fact{padding:11px 12px;border:1px solid var(--line);border-radius:13px;font-size:14px;line-height:1.3}.fact b{display:block;margin-bottom:3px;font-size:15px}
.actions{display:flex;gap:10px;flex-wrap:nowrap}.btn{display:inline-flex;justify-content:center;align-items:center;padding:12px 16px;border-radius:12px;font-weight:900;font-size:15px;white-space:nowrap}.yellow{background:var(--yellow)}.blue{background:var(--blue);color:#fff}
.hero-photo{min-height:0;overflow:hidden;background:linear-gradient(135deg,#0a3b68,#1696ce)}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover}.section{padding:27px 0}
.section h2{font-size:30px;margin:0 0 8px}.sub{color:var(--muted);margin:0 0 18px}.widget{padding:20px;overflow:hidden}.routes{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
.route{height:190px;border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(135deg,#164d79,#0b2948)}.route img{width:100%;height:100%;object-fit:cover;transition:.25s}.route:hover img{transform:scale(1.035)}
.route:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(3,22,43,.9))}.route .city{position:absolute;z-index:2;left:17px;right:17px;bottom:15px;color:white}.route .city b{display:block;font-size:20px;margin-bottom:4px}.route .city span{font-size:13px}
.route.no-photo:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(255,255,255,.18),transparent 30%),linear-gradient(135deg,#17608e,#082d50)}
.links{display:flex;flex-wrap:wrap;gap:9px}.pill{padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:999px;font-weight:800}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.content{padding:27px}.sidebar{display:grid;align-content:start;gap:16px}.sidebar .card{padding:18px}
.breadcrumbs{font-size:13px;color:#6d7d90;margin-bottom:14px}.title{font-size:38px;margin:0 0 10px}.date{display:inline-flex;border:1px solid #8be2a5;background:#effff3;color:#057d32;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900}
.schedule-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:26px 0 13px}.schedule{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}
.schedule th{background:#eaf6ff;text-align:left;font-size:11px;text-transform:uppercase;color:#405d76;padding:13px 11px}.schedule td{padding:13px 11px;border-top:1px solid var(--line)}
.time{font-size:18px;font-weight:900}.buy{display:inline-block;padding:12px 14px;border-radius:11px;background:var(--yellow);font-weight:900}.notice{padding:14px 15px;border:1px solid #f1d670;background:#fff8db;border-radius:14px;line-height:1.5}
.tourism{margin-top:25px}.photo-wide{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;background:linear-gradient(135deg,#164d79,#0b2948)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.info{padding:18px}
.map{width:100%;height:330px;border:0;border-radius:16px}.footer{background:#062b52;color:#fff;padding:35px 0 100px;margin-top:35px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:25px}.footer p{color:#d2e1ef;line-height:1.6}
.sticky{position:fixed;z-index:100;left:50%;transform:translateX(-50%);bottom:14px;width:min(520px,calc(100% - 28px));background:var(--yellow);padding:16px;border-radius:16px;text-align:center;font-size:20px;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.24)}
@media(max-width:900px){.nav{display:none}.hero-photo{aspect-ratio:16/9}.actions{flex-wrap:wrap}.hero-grid,.layout{grid-template-columns:1fr}.facts,.info-grid{grid-template-columns:1fr}.routes{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}.hero h1{font-size:36px}.top .container span:last-child{display:none}.schedule{display:block;border:0;background:transparent}.schedule thead{display:none}.schedule tbody{display:grid;gap:14px}.schedule tr{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px}.schedule td{border:0;padding:7px 0}.schedule td:nth-child(3),.schedule td:nth-child(4),.schedule td:nth-child(5){grid-column:1/-1;border-top:1px solid var(--line);padding-top:11px}.schedule td:before{display:block;font-size:11px;font-weight:900;text-transform:uppercase;color:#75869a;margin-bottom:5px}.schedule td:nth-child(1):before{content:"Отправление"}.schedule td:nth-child(2):before{content:"Дни"}.schedule td:nth-child(3):before{content:"Откуда"}.schedule td:nth-child(4):before{content:"Куда"}.schedule td:nth-child(5):before{content:none;display:none}.buy{display:block;text-align:center;font-size:18px}.schedule-head{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.container{width:calc(100% - 20px)}.hero-main{padding:19px}.hero h1{font-size:30px}.lead{font-size:16px}.facts{grid-template-columns:1fr;gap:8px;margin:14px 0}.fact{padding:10px 11px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{padding:11px 10px;font-size:14px}.routes{grid-template-columns:1fr}.route{height:205px}.hero-main,.content{padding:21px}.hero{padding-top:20px}.hero h1{font-size:32px}.title{font-size:30px}.widget{padding:12px}.brand{font-size:18px}.sticky{font-size:18px;padding:15px}}


/* ===== Mobile overflow hardening =====
   Third-party Travelpayouts / Unitiki widgets may inject iframes or wrappers
   with fixed/min widths. These rules keep every page inside the viewport. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
main,section,header,footer,.container,.layout,.content,.sidebar,.card,.widget,.tourism,.schedule,.info-grid,.facts,.routes{min-width:0;max-width:100%}
img,video,canvas,svg,iframe{max-width:100%}
img{height:auto}
.layout>*{min-width:0}
.content{min-width:0;overflow:hidden}
.sidebar{min-width:0}
.widget{width:100%;max-width:100%;min-width:0;overflow:hidden}
.widget>*,.widget iframe,.widget ins,.widget object,.widget embed{max-width:100%!important;min-width:0!important}
.widget iframe,.widget object,.widget embed{width:100%!important;display:block!important;border:0}
.widget>div,.widget>span,.widget>ins{max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
.photo-wide,.hero-photo img,.route img{max-width:100%;min-width:0}
.schedule{max-width:100%}
.schedule th,.schedule td{min-width:0;overflow-wrap:anywhere;word-break:normal}
.sticky{max-width:calc(100vw - 28px)}

@media(max-width:900px){
  body{overflow-x:hidden}
  .container{max-width:100%}
  .layout,.content,.sidebar,.tourism,.widget{width:100%;max-width:100%;min-width:0}
  .content{overflow:hidden}
  .schedule,.schedule tbody,.schedule tr{width:100%;max-width:100%;min-width:0}
  .schedule tr{overflow:hidden}
  .schedule td{max-width:100%;min-width:0;overflow-wrap:anywhere}
  .widget{overflow:hidden}
  .widget iframe{width:100%!important;max-width:100%!important;min-width:0!important}
}

@media(max-width:560px){
  .container{width:calc(100% - 20px);max-width:calc(100% - 20px)}
  .header-inner{min-width:0}
  .brand{min-width:0;max-width:100%}
  .brand span{min-width:0;overflow-wrap:anywhere}
  .content{padding-left:16px;padding-right:16px}
  .widget{padding-left:8px;padding-right:8px}
  .schedule tr{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .sticky{left:14px;right:14px;transform:none;width:auto;max-width:none}
}
