@charset "utf-8";
    :root {
      --blue:#1e5fae;
      --blue-dark:#164a88;
      --blue-light:#edf5ff;
      --sky:#f7fbff;
      --text:#1f2a37;
      --muted:#5b6573;
      --line:#d9e4f2;
      --accent:#ffb300;
      --shadow:0 12px 32px rgba(25,62,113,0.08);
      --max:1180px;
      --reserve:#eef1f5;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
      color:var(--text);
      line-height:1.75;
      background:#fff;
    }
    a{text-decoration:none;color:inherit}
    .container{width:min(calc(100% - 32px),var(--max));margin:0 auto}

    .site-header{
      position:sticky;
      top:0;
      z-index:100;
      background:rgba(255,255,255,.96);
      backdrop-filter:blur(8px);
      border-bottom:1px solid rgba(217,228,242,.8);
    }
    .header-inner{
      min-height:78px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      flex-wrap:nowrap;
    }
    .logo-wrap{
      display:flex;
      align-items:center;
      gap:14px;
      min-width:0;
      flex:1 1 auto;
    }
    .logo-placeholder{
      width:62px;
      height:62px;
      display:grid;
      place-items:center;
      color:var(--muted);
      font-size:12px;
      flex-shrink:0;
    }
    .logo-text{min-width:0}
    .site-title{
      font-size:21px;
      font-weight:700;
      letter-spacing:.02em;
      white-space:nowrap;
    }
    .site-sub{
      font-size:12px;
      color:var(--muted);
      margin-top:2px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      max-width:360px;
    }
    .global-nav{
      display:flex;
      gap:14px;
      align-items:center;
      flex-wrap:nowrap;
      white-space:nowrap;
      font-size:13px;
      font-weight:700;
      color:var(--blue-dark);
      margin-left:auto;
      margin-right:4px;
      flex:0 1 auto;
    }
    .header-contact{
      display:flex;
      align-items:center;
      gap:10px;
      flex-wrap:nowrap;
      justify-content:flex-end;
      flex:0 0 auto;
    }
    .phone-box{text-align:right;flex:0 0 auto}
    .phone-box small{
      display:block;
      color:var(--muted);
      font-size:11px;
      line-height:1.4;
      white-space:nowrap;
    }
    .phone-box strong{
      color:var(--blue-dark);
      font-size:22px;
      line-height:1.2;
      white-space:nowrap;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:48px;
      padding:0 22px;
      border-radius:999px;
      font-weight:700;
      border:1px solid transparent;
      cursor:pointer;
      transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    }
    .btn:hover{transform:translateY(-1px)}
    .btn-primary{background:var(--blue);color:#fff;box-shadow:var(--shadow)}
    .btn-secondary{background:#fff;color:var(--blue-dark);border-color:var(--line)}

    .page-hero{
      background:linear-gradient(135deg,rgba(30,95,174,.93),rgba(22,74,136,.9));
      color:#fff;
      padding:62px 0 58px;
    }
    .breadcrumb{font-size:13px;opacity:.9;margin-bottom:18px}
    .page-hero h1{margin:0;font-size:clamp(34px,4vw,50px);line-height:1.2}
    .page-hero p{max-width:50em;margin:16px 0 0;font-size:16px;opacity:.96}
    .quick-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
    .quick-links a{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:10px 16px;
      border-radius:999px;
      background:rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.24);
      color:#fff;
      font-size:14px;
      font-weight:700;
    }

    section{padding:0px 0}
    .section-heading{margin-bottom:28px}
    .section-heading .sub{
      color:var(--blue);
      font-weight:700;
      font-size:14px;
      letter-spacing:.06em;
      text-transform:uppercase;
      margin-bottom:8px;
    }
    .section-heading h2{margin:0;font-size:clamp(28px,3vw,38px);line-height:1.3}
    .section-heading p{margin:12px 0 0;color:var(--muted);max-width:58em;font-size:15px}

    .lead-box,.notice-box,.cta-box,.map-box,.summary-box,.route-box{
      background:#fff;
      border:1px solid var(--line);
      border-radius:22px;
      box-shadow:var(--shadow);
      padding:26px;
    }
    .lead-box,.route-box{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:stretch}
    .lead-box h3,.notice-box h3,.cta-box h3,.map-box h3,.summary-box h3,.route-box h3{
      margin:0 0 12px;
      color:var(--blue-dark);
      font-size:24px;
    }
    .lead-box p,.notice-box p,.cta-box p,.map-box p,.summary-box p,.summary-box li,.route-box p,.route-box li{
      margin:0;
      color:var(--muted);
      font-size:15px;
    }
    .summary-box ul,.route-box ul{margin:0;padding-left:1.2em}

    .route-stops{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      align-items:center;
      margin-top:16px;
    }
    .stop{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--line);
      color:var(--blue-dark);
      font-size:13px;
      font-weight:700;
    }
    .arrow{color:var(--muted);font-size:14px;font-weight:700}

    .table-wrap{
      background:#fff;
      border:1px solid var(--line);
      border-radius:22px;
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .table-head{
      padding:22px 24px 18px;
      border-bottom:1px solid var(--line);
      background:linear-gradient(180deg,#fff,#f8fbff);
    }
    .table-head h3{
      margin:0;
      color:var(--blue-dark);
      font-size:26px;
    }
    .table-head p{
      margin:8px 0 0;
      color:var(--muted);
      font-size:14px;
    }
    .scroll-table{overflow-x:auto}
    table{
      width:100%;
      border-collapse:collapse;
      min-width:920px;
    }
    th,td{
      padding:14px 12px;
      border-bottom:1px solid var(--line);
      text-align:center;
      vertical-align:middle;
      font-size:14px;
    }
    th{
      background:#f3f8ff;
      color:var(--blue-dark);
      font-weight:700;
      white-space:nowrap;
    }
    td:first-child, th:first-child{position:sticky;left:0;background:#fff;z-index:1}
    th:first-child{background:#f3f8ff;z-index:2}
    tr.reserve-row td{background:var(--reserve)}
    td.note-cell{
      text-align:left;
      color:var(--muted);
      font-weight:700;
      white-space:normal;
    }

    .legend{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      padding:18px 24px 24px;
      color:var(--muted);
      font-size:13px;
    }
    .legend-item{display:flex;align-items:center;gap:8px}
    .legend-box{width:18px;height:18px;border-radius:4px;border:1px solid var(--line);background:var(--reserve)}

    .image-placeholder{
      min-height:360px;
      border:2px dashed var(--line);
      border-radius:22px;
      background:linear-gradient(180deg,#fff,#f8fbff);
      display:grid;
      place-items:center;
      text-align:center;
      color:var(--muted);
      padding:24px;
    }

    .notice-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:18px;
      margin-top:18px;
    }
    .notice-item{
      border:1px solid var(--line);
      border-radius:18px;
      padding:20px;
      background:linear-gradient(180deg,#fff,#f8fbff);
    }
    .notice-item h4{
      margin:0 0 8px;
      color:var(--blue-dark);
      font-size:20px;
      line-height:1.4;
    }
    .notice-item p,.notice-item li{
      margin:0;
      color:var(--muted);
      font-size:14px;
    }
    .notice-item ul{margin:0;padding-left:1.2em}

    .cta-box{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:24px;
      background:linear-gradient(135deg,var(--blue),var(--blue-dark));
      color:#fff;
      border:none;
      box-shadow:0 18px 40px rgba(14,43,82,.18);
    }
    .cta-box h3,.cta-box p{color:#fff}
    .cta-actions{display:flex;flex-wrap:wrap;gap:12px}

    .site-footer{
      margin-top:72px;
      background:#0f2747;
      color:rgba(255,255,255,.92);
      padding:52px 0 30px;
    }
    .footer-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}
    .footer-grid h2,.footer-grid h3{margin-top:0;margin-bottom:12px}
    .footer-grid p,.footer-grid li{color:rgba(255,255,255,.8);font-size:14px}
    .footer-links{list-style:none;margin:0;padding:0;display:grid;gap:8px}
    .copyright{
      margin-top:22px;
      padding-top:18px;
      border-top:1px solid rgba(255,255,255,.14);
      font-size:12px;
      color:rgba(255,255,255,.68);
    }

    @media (max-width:1200px){.site-sub{max-width:220px}}
    @media (max-width:1180px){
      .header-inner{
        display:grid;
        grid-template-columns:1fr auto;
        grid-template-areas:"logo contact" "nav nav";
        align-items:center;
        gap:12px 16px;
        padding:12px 0;
      }
      .logo-wrap{grid-area:logo;min-width:0}
      .header-contact{grid-area:contact;justify-content:flex-end}
      .global-nav{grid-area:nav;margin:0;padding-top:4px;justify-content:flex-start;overflow-x:auto}
      .site-sub{display:none}
      .phone-box strong{font-size:20px}
    }
    @media (max-width:1024px){
      .lead-box,.route-box,.notice-grid,.footer-grid,.cta-box{grid-template-columns:1fr}
      .table-head h3{font-size:24px}
    }
    @media (max-width:768px){
      .header-inner{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:14px 0}
      .global-nav{width:100%;overflow-x:auto;padding-bottom:4px}
      .header-contact{width:100%;justify-content:space-between}
      .phone-box{text-align:left}
      .phone-box small,.phone-box strong{white-space:normal}
      section{padding:56px 0}
      .cta-box{flex-direction:column;align-items:flex-start}
      td:first-child,th:first-child{position:static}
      table{min-width:760px}
      .image-placeholder{min-height:280px}
    }
    .btn2 {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 0 13px;
      border-radius: 999px;
      font-weight: 700;
      border: 1px solid transparent;
      cursor: pointer;
      transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
    }
@media (max-width: 768px) {
  .btn2{
    font-size: 10px;
  }
}
@media (max-width: 768px) {
  #main-actions.top-actions {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  #main-actions .action-card {
    padding: 20px;
  }

  #main-actions .action-card .btn {
    width: 100%;
    min-height: 48px;
    padding: 0 18px;
    white-space: normal;
    text-align: center;
  }
  .phone-box small{
    font-size: 10px;
  }
}