
:root{--blue:#073b74;--blue2:#03a9f4;--yellow:#ffd42a;--bg:#eef4f9;--text:#061b34;--muted:#68798f;--line:#dbe5ef;--green:#009a49;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);padding-bottom:84px}a{color:inherit}.container{max-width:1180px;margin:auto;padding:0 20px}
.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.nav{height:78px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800}.brand img{width:46px;height:46px;border:0;border-radius:10px;display:block}.brand small{display:block;color:var(--muted);font-weight:500}.links{display:flex;gap:20px;margin-left:auto}.links a{text-decoration:none;font-weight:700}.buy-mini{background:var(--yellow);padding:13px 18px;border-radius:12px;text-decoration:none;font-weight:800}
.hero{padding:24px 0 18px}.hero-grid{display:grid;grid-template-columns:1fr 1.06fr;gap:20px;align-items:stretch}.hero-copy,.hero-photo,.card,.widget-card,.content-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 8px 30px rgba(6,27,52,.04)}.hero-copy{padding:30px}.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:#0b73ce;font-weight:800}.hero h1{font-size:34px;line-height:1.08;margin:8px 0 14px}.lead{font-size:15px;line-height:1.5;color:#4a5e77;margin:0 0 10px}.facts{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.fact{background:#f4f8fb;padding:12px 14px;border-radius:13px;font-weight:700}.facts-compact{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fact-box{background:#f3f7fb;border-radius:15px;padding:16px 16px 14px;min-height:96px}.fact-box b{display:block;font-size:13px;margin-bottom:6px}.fact-box span{font-size:14px;line-height:1.35;color:#1c3553}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-block;background:var(--yellow);padding:15px 22px;border-radius:13px;text-decoration:none;font-weight:900;border:0}.btn.secondary{background:#1e88e5;color:#fff}.hero-photo{min-height:280px;background:#d9e6ef center/cover no-repeat;position:relative}.hero-photo:after{display:none}.compact-photo{min-height:280px}
section{padding:18px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-head h2{font-size:32px;margin:0}.section-head p{color:var(--muted);margin:6px 0 0}.widget-card{padding:22px}.city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.city{height:220px;border-radius:20px;overflow:hidden;position:relative;background:#ccd9e5 center/cover no-repeat;text-decoration:none}.city:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(2,17,33,.78))}.city span{position:absolute;z-index:2;left:18px;bottom:16px;color:#fff;font-size:21px;font-weight:900}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.info{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.info h3{margin-top:0}.route-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.route-list a{background:#fff;border:1px solid var(--line);padding:15px;border-radius:14px;text-decoration:none;font-weight:700}.route-list a:hover{border-color:#87b9e8}
.footer{margin-top:36px;background:#06284f;color:#dfeaf6;padding:38px 0 110px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer a{color:#fff}.sticky-buy{position:fixed;z-index:50;left:50%;bottom:16px;transform:translateX(-50%);background:var(--yellow);color:#061b34;text-decoration:none;font-weight:900;padding:18px 38px;border-radius:16px;box-shadow:0 12px 34px rgba(0,0,0,.25);min-width:280px;text-align:center}
.breadcrumbs{padding:22px 0 0;color:var(--muted);font-size:14px}.breadcrumbs a{text-decoration:none;color:#0b73ce}.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;padding:18px 0 32px}.maincol,.sidecol{min-width:0}.content-card{padding:26px;margin-bottom:18px}.content-card h1{font-size:36px;margin:0 0 12px}.content-card h2{font-size:28px}.actual{display:inline-flex;align-items:center;gap:8px;background:#effff3;border:1px solid #78d99a;color:#007d38;padding:8px 13px;border-radius:999px;font-weight:800;font-size:14px}.actual:before{content:"•";font-size:20px}.schedule{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:18px}.schedule th{background:#eaf6ff;text-align:left;padding:14px;font-size:12px;color:#536d88}.schedule td{padding:14px;border-top:1px solid var(--line)}.schedule tr:first-child td{border-top:0}.time{font-size:18px;font-weight:900}.table-buy{background:var(--yellow);display:inline-block;padding:10px 14px;border-radius:12px;text-decoration:none;font-weight:900;white-space:nowrap}.sidebar-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;margin-bottom:16px}.sidebar-card h3{margin-top:0}.search{width:100%;padding:15px 16px;border:1px solid #b7c8da;border-radius:14px;font-size:16px;margin-bottom:14px}.faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:10px}.faq summary{font-weight:800;cursor:pointer}.muted{color:var(--muted)}.note{background:#fff7d5;border:1px solid #f1d470;border-radius:14px;padding:14px 16px;font-size:14px}.tour-wrap{margin-top:18px}.map iframe{width:100%;height:360px;border:0;border-radius:18px}
@media(max-width:900px){.links{display:none}.hero-grid,.page-grid{grid-template-columns:1fr}.hero h1{font-size:32px}.city-grid{grid-template-columns:repeat(2,1fr)}.info-grid,.route-list{grid-template-columns:1fr 1fr}.sidecol{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sidebar-card{margin:0}.footer-grid{grid-template-columns:1fr}.hero-photo{min-height:260px}.facts-compact{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:620px){.container{padding:0 14px}.nav{height:68px}.brand small{display:none}.buy-mini{display:none}.hero{padding:18px 0 10px}.hero-copy{padding:22px}.hero h1{font-size:30px}.city-grid,.info-grid,.route-list,.sidecol,.facts-compact{grid-template-columns:1fr}.city{height:205px}.section-head h2{font-size:27px}.content-card{padding:18px}.content-card h1{font-size:30px}.schedule,.schedule tbody,.schedule tr,.schedule td{display:block;width:100%}.schedule thead{display:none}.schedule tr{padding:12px 14px;border-top:1px solid var(--line)}.schedule tr:first-child{border-top:0}.schedule td{border:0!important;padding:5px 0}.schedule td:before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;color:#74869a;font-weight:800;margin-bottom:3px}.table-buy{width:100%;text-align:center;margin-top:6px;padding:14px}.sticky-buy{bottom:10px;min-width:calc(100% - 28px);padding:16px}.footer{padding-bottom:100px}}

/* Compact main-page hero aligned with the marathon reference sites */
.hero{padding:24px 0 16px}
.hero-grid{display:grid;grid-template-columns:1fr 1.06fr;gap:20px;align-items:stretch}
.hero-copy{padding:28px 30px}
.hero .eyebrow{font-size:13px;letter-spacing:.12em;font-weight:900}
.hero h1{font-size:38px;line-height:1.08;margin:8px 0 12px}
.hero .lead{font-size:16px;line-height:1.45;margin:0;color:#425773}
.hero-facts{display:grid;grid-template-columns:1.35fr 1fr 1.05fr;gap:10px;margin:18px 0}
.hero-facts .fact{padding:12px 13px;min-height:78px;font-weight:500;display:flex;flex-direction:column;justify-content:flex-start}
.hero-facts .fact-title{display:block;font-size:13px;font-weight:900;margin-bottom:4px;color:#061b34}
.hero-facts .fact span:not(.fact-title),.hero-facts .fact a{font-size:14px;line-height:1.3;color:#183655;text-decoration:none}
.hero .actions{gap:10px}
.hero .btn{padding:14px 18px}
.hero-photo{min-height:300px;background:none}
.hero-photo img{width:100%;height:100%;min-height:300px;display:block;object-fit:cover;object-position:center center}
.hero-photo:after{display:none!important}
.brand img{border:0!important;border-radius:0!important;box-shadow:none!important}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero-facts{grid-template-columns:repeat(3,1fr)}
  .hero-photo,.hero-photo img{min-height:300px}
}
@media(max-width:620px){
  .hero{padding:16px 0 8px}
  .hero-copy{padding:22px}
  .hero h1{font-size:31px}
  .hero-facts{grid-template-columns:1fr}
  .hero-photo,.hero-photo img{min-height:220px}
  .brand img{width:42px;height:42px}
}

/* Mobile route schedule — aligned with the approved marathon reference */
@media(max-width:620px){
  .content-card .section-head{
    display:block;
    margin-bottom:14px;
  }
  .content-card .section-head>div{
    min-width:0;
  }
  .content-card .section-head h2{
    font-size:24px;
    line-height:1.12;
    margin:0;
  }
  .content-card .section-head p{
    font-size:14px;
    line-height:1.35;
    margin:4px 0 0;
  }
  .content-card .actual{
    display:inline-flex;
    width:auto;
    max-width:100%;
    margin-top:12px;
    padding:7px 11px;
    gap:5px;
    border-radius:999px;
    font-size:12px;
    line-height:1.1;
    white-space:nowrap;
  }
  .content-card .actual:before{
    font-size:16px;
    line-height:1;
  }

  .schedule{
    display:block;
    width:100%;
    margin-top:12px;
    border:0;
    border-radius:0;
    overflow:visible;
    background:transparent;
  }
  .schedule thead{display:none}
  .schedule tbody{
    display:grid;
    width:100%;
    gap:16px;
  }
  .schedule tr,
  .schedule tr:first-child{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    width:100%;
    padding:14px 16px 16px;
    background:#fff;
    border:1px solid var(--line)!important;
    border-radius:18px;
    overflow:hidden;
  }
  .schedule td{
    display:block;
    width:auto!important;
    min-width:0;
    padding:7px 0!important;
    border:0!important;
    font-size:14px;
    line-height:1.25;
  }
  .schedule td:before{
    content:attr(data-label);
    display:block;
    margin-bottom:4px;
    color:#74869a;
    font-size:10px;
    line-height:1.1;
    font-weight:900;
    letter-spacing:.02em;
    text-transform:uppercase;
  }
  .schedule td:nth-child(1){
    padding-right:14px!important;
    border-right:1px solid #e3eaf2!important;
  }
  .schedule td:nth-child(2){
    padding-left:14px!important;
  }
  .schedule td:nth-child(3),
  .schedule td:nth-child(4),
  .schedule td:nth-child(5){
    grid-column:1 / -1;
    border-top:1px solid #e3eaf2!important;
    margin-top:7px;
    padding-top:13px!important;
  }
  .schedule td:nth-child(5){
    padding-top:14px!important;
  }
  .schedule td:nth-child(5):before{display:none}
  .schedule .time{
    font-size:20px;
    line-height:1.05;
    font-weight:900;
  }
  .schedule .table-buy{
    display:block;
    width:100%;
    margin:0;
    padding:14px 16px;
    border-radius:13px;
    text-align:center;
    font-size:16px;
    line-height:1.15;
  }
}

/* Breadcrumb spacing polish */
.breadcrumbs{
  padding-top:13px;
  padding-bottom:8px;
  line-height:1.5;
  font-size:13px;
}
.page-grid{
  padding-top:6px;
}
@media(max-width:620px){
  .breadcrumbs{
    padding-top:10px;
    padding-bottom:8px;
    padding-left:14px;
    padding-right:14px;
    line-height:1.5;
  }
  .page-grid{
    padding-top:5px;
  }
}
