:root{
  --ink:#1c2b24;
  --moss:#3a5a40;
  --moss-d:#2d4632;
  --pine:#588157;
  --sky:#7eb09b;
  --mist:#dfe9e3;
  --cream:#f6f3ec;
  --gold:#c08a2d;
  --gold-l:#e0b562;
  --snow:#fbfaf6;
  --rock:#5a6660;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
img{max-width:100%;}
.wrap{width:100%;margin:0 auto;background:var(--snow);}
section{padding:72px 22px;}
section.chatbot{padding:0;}
.inner{max-width:1140px;margin:0 auto;}

/* ---------- HERO SLIDER ---------- */
.hero{position:relative;height:50vh;min-height:520px;overflow:hidden;background:var(--moss-d);}
.slides{position:absolute;inset:0;}
.slide{
  position:absolute;inset:0;opacity:0;
  background-size:cover;background-position:center;
  animation:fade 18s infinite;
}
.slide:nth-child(1){animation-delay:0s;}
.slide:nth-child(2){animation-delay:6s;}
.slide:nth-child(3){animation-delay:12s;}
@keyframes fade{
  0%{opacity:0;transform:scale(1.08);}
  6%{opacity:1;}
  28%{opacity:1;transform:scale(1.0);}
  36%{opacity:0;}
  100%{opacity:0;}
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,43,36,.30) 0%,rgba(28,43,36,.05) 40%,rgba(28,43,36,.72) 100%);
  z-index:2;
}
.hero-inner{
  position:absolute;z-index:3;left:0;right:0;bottom:0;
  color:#fff;
  padding:20px;
}
.hero-inner .inner{padding:34px 26px 48px;}
.hero-tag{
  display:inline-block;font-size:13px;letter-spacing:.18em;
  background:var(--gold);color:#fff;padding:5px 14px;border-radius:2px;
  margin-bottom:16px;font-weight:700;
}
.hero h1{
  font-size:clamp(25px,6.5vw,42px);line-height:1.3;font-weight:800;
  text-shadow:0 2px 20px rgba(0,0,0,.5);letter-spacing:.02em;
}
.hero h1 .lead{
  display:block;font-size:clamp(14px,3.6vw,18px);font-weight:600;
  color:var(--gold-l);letter-spacing:.16em;margin-bottom:10px;
}
.hero .sub{margin-top:14px;font-size:clamp(13px,3.4vw,16px);opacity:.95;text-shadow:0 1px 8px rgba(0,0,0,.6);}
.dots{position:absolute;z-index:4;bottom:16px;right:22px;display:flex;gap:7px;}
.dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);display:block;}
.dots i:first-child{background:#fff;}

@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6);}50%{opacity:1;transform:scaleY(1);}}

/* ---------- INTRO ---------- */
.intro{background:var(--cream);text-align:center;}
.intro .ja-h{
  font-size:clamp(20px,5vw,28px);font-weight:800;color:var(--moss-d);
  letter-spacing:.04em;margin-bottom:8px;
}
.intro .en-h{font-size:12px;letter-spacing:.3em;color:var(--gold);font-weight:700;margin-bottom:24px;}
.intro p{font-size:15px;color:var(--rock);max-width:560px;margin:0 auto;}
.intro .points{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:34px;}
.point{
  flex:1 1 160px;max-width:220px;background:#fff;border-radius:14px;padding:24px 18px;
  box-shadow:0 8px 26px rgba(58,90,64,.10);border-top:4px solid var(--pine);
}
.point .ico{font-size:30px;margin-bottom:10px;}
.point b{display:block;font-size:15px;color:var(--moss-d);margin-bottom:6px;}
.point small{font-size:12.5px;color:var(--rock);line-height:1.6;}

/* ---------- SECTION HEADING ---------- */
.sec-head{text-align:center;margin-bottom:34px;}
.sec-head .en{font-size:11px;letter-spacing:.32em;color:var(--gold);font-weight:700;}
.sec-head .ja{font-size:clamp(20px,5vw,26px);font-weight:800;color:var(--moss-d);margin-top:6px;letter-spacing:.04em;}
.sec-head .ja::after{content:"";display:block;width:48px;height:3px;background:var(--gold);margin:14px auto 0;border-radius:2px;}

/* ---------- PRICE / OVERVIEW ---------- */
.overview{background:var(--moss-d);color:#fff;}
.ov-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:28px 24px;}
.ov-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.ov-row:last-child{border-bottom:none;}
.ov-row .lbl{font-size:13px;color:var(--gold-l);font-weight:700;letter-spacing:.08em;flex-shrink:0;}
.ov-row .val{font-size:14.5px;text-align:right;}
.ov-row .val b{font-size:17px;}
.fare-title{font-size:14px;font-weight:800;color:var(--gold-l);letter-spacing:.06em;text-align:center;margin-bottom:18px;}
.fare-table{width:100%;border-collapse:collapse;max-width:440px;margin:0 auto;}
.fare-table td{border:1px solid rgba(255,255,255,.22);text-align:center;padding:16px 8px;font-size:15px;}
.fare-table .stn{background:rgba(192,138,45,.28);color:#fff;font-weight:800;font-size:14px;letter-spacing:.04em;}
.fare-table .fare{color:#fff;font-weight:800;font-size:16px;}
.fare-table .fare .child{display:block;font-size:12px;font-weight:600;color:var(--gold-l);margin-top:3px;}
.fare-table .diag{background:rgba(255,255,255,.04);color:rgba(255,255,255,.3);font-size:13px;}
.fare-table .blank{border:none;background:none;}
.fare-note{font-size:11.5px;color:var(--mist);opacity:.85;margin-top:16px;line-height:1.7;}
.fare-note b{color:var(--gold-l);}

/* ---------- CALENDAR ---------- */
.cal-wrap{background:var(--cream);}
.cal-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:22px;}
.cal-tabs button{
  flex:1;max-width:230px;padding:13px;border:2px solid var(--pine);background:#fff;color:var(--moss-d);
  font-size:14px;font-weight:700;border-radius:10px;cursor:pointer;transition:.2s;
}
.cal-tabs button.active{background:var(--pine);color:#fff;box-shadow:0 6px 16px rgba(88,129,87,.3);}
.cal-card{background:#fff;border-radius:16px;padding:22px 18px;box-shadow:0 10px 30px rgba(58,90,64,.10);}
.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.cal-nav button{background:none;border:none;color:var(--moss);font-size:14px;font-weight:700;cursor:pointer;padding:6px 10px;border-radius:8px;}
.cal-nav button:hover{background:var(--mist);}
.cal-nav h4{font-size:18px;color:var(--moss-d);font-weight:800;}
table.cal{width:100%;border-collapse:collapse;}
table.cal th{font-size:12px;color:var(--rock);padding:8px 0;font-weight:700;}
table.cal th:first-child{color:#c0563f;}
table.cal th:last-child{color:#3f6cc0;}
table.cal td{height:46px;text-align:center;vertical-align:middle;}
.day{
  width:38px;height:38px;line-height:38px;margin:0 auto;border-radius:50%;
  font-size:14px;font-weight:600;cursor:pointer;transition:.15s;position:relative;
}
.day.off{color:#c9cfca;cursor:default;}
.day.run{background:var(--mist);color:var(--moss-d);}
.day.run:hover{background:var(--pine);color:#fff;transform:scale(1.08);}
.cal-foot{font-size:11.5px;color:var(--rock);text-align:center;margin-top:18px;}

/* 便選択 */
.bin-select{margin-bottom:22px;}
.step-label{
  display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;
  color:var(--moss-d);margin-bottom:14px;letter-spacing:.04em;text-align:left;
}
.step-label .step-no{
  display:inline-block;background:var(--moss-d);color:#fff;font-size:12px;font-weight:800;
  padding:5px 12px;border-radius:6px;letter-spacing:.08em;flex-shrink:0;
}
.bin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.bin-btn{
  background:#fff;border:2px solid var(--mist);border-radius:12px;padding:14px 16px;cursor:pointer;
  text-align:left;transition:.18s;line-height:1.5;display:flex;flex-wrap:wrap;align-items:center;
}
.bin-btn:hover{border-color:var(--pine);}
.bin-btn.active{border-color:var(--pine);background:#f0f5ef;box-shadow:0 6px 16px rgba(88,129,87,.18);}
.bin-btn .bin-no{display:inline-block;font-size:11px;font-weight:800;color:#fff;background:var(--gold);border-radius:3px;padding:3px 9px;margin-right:12px;letter-spacing:.04em;flex-shrink:0;}
.bin-btn .bin-route{font-size:14px;font-weight:800;color:var(--moss-d);}
.bin-btn .bin-time{font-size:12.5px;color:var(--rock);margin-top:4px;flex-basis:100%;}
@media(max-width:560px){.bin-grid{grid-template-columns:1fr;}}

/* ---------- TIMETABLE ---------- */
.tt-block{margin-bottom:30px;}
.tt-block h4{
  font-size:15px;font-weight:800;color:#fff;background:var(--pine);
  padding:11px 16px;border-radius:10px 10px 0 0;letter-spacing:.04em;
}
table.tt{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--mist);border-top:none;border-radius:0 0 10px 10px;overflow:hidden;}
table.tt th{background:var(--cream);font-size:12px;color:var(--moss-d);padding:11px 6px;font-weight:700;border-bottom:1px solid var(--mist);}
table.tt td{padding:13px 6px;text-align:center;font-size:14px;border-bottom:1px solid var(--mist);font-weight:600;}
table.tt tr:last-child td{border-bottom:none;}
table.tt .dest{color:var(--gold);font-weight:800;}
.tt-note{font-size:12px;color:var(--rock);margin-top:10px;padding-left:2px;}
.tt-note span{color:#c0563f;}

/* ---------- STOPS ---------- */
.stops{background:var(--cream);}
.stop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
@media(max-width:560px){.stop-grid{grid-template-columns:1fr;}}
.stop-card{background:#fff;border-radius:14px;overflow:hidden;margin-bottom:18px;box-shadow:0 6px 20px rgba(58,90,64,.08);}
.stop-card h4{font-size:15px;font-weight:800;color:var(--moss-d);padding:16px 18px 6px;}
.stop-card p{font-size:13px;color:var(--rock);padding:0 18px 16px;}
.stop-map{height:200px;background:var(--mist) center/cover;}

/* ---------- DEST CARDS ---------- */
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:760px){.dest-grid{grid-template-columns:1fr;}}
.dest-card{position:relative;border-radius:18px;overflow:hidden;min-height:240px;display:flex;align-items:flex-end;box-shadow:0 12px 34px rgba(58,90,64,.16);}
.dest-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.dest-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(28,43,36,.86) 100%);z-index:1;}
.dest-card .txt{position:relative;z-index:2;color:#fff;padding:24px;}
.dest-card .txt .badge{display:inline-block;background:var(--gold);font-size:11px;font-weight:700;letter-spacing:.1em;padding:4px 11px;border-radius:3px;margin-bottom:10px;}
.dest-card .txt h4{font-size:21px;font-weight:800;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.dest-card .txt p{font-size:13.5px;margin-top:8px;opacity:.95;text-shadow:0 1px 8px rgba(0,0,0,.6);}

/* ---------- CTA ---------- */
.cta{background:linear-gradient(135deg,var(--moss-d),var(--pine));text-align:center;color:#fff;}
.cta h3{font-size:clamp(20px,5vw,26px);font-weight:800;margin-bottom:10px;}
.cta p{font-size:14px;opacity:.92;margin-bottom:26px;}
.cta-btn{
  display:inline-block;background:var(--gold);color:#fff;font-size:17px;font-weight:800;
  padding:18px 52px;border-radius:50px;text-decoration:none;letter-spacing:.06em;
  box-shadow:0 10px 30px rgba(192,138,45,.5);transition:.2s;
}
.cta-btn:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(192,138,45,.6);}

/* ---------- NOTICE ---------- */
.notice{background:var(--snow);}
.notice ul{max-width:620px;margin:0 auto;list-style:none;}
.notice li{font-size:13px;color:var(--rock);padding:11px 0 11px 26px;border-bottom:1px dashed var(--mist);position:relative;}
.notice li::before{content:"▶";position:absolute;left:0;top:11px;color:var(--pine);font-size:10px;}

.sister{background:var(--cream);}
.sister-card{
  display:block;position:relative;border-radius:18px;overflow:hidden;min-height:260px;
  display:flex;align-items:flex-end;text-decoration:none;
  box-shadow:0 12px 34px rgba(58,90,64,.16);transition:.22s;
}
.sister-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(58,90,64,.24);}
.sister-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.sister-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(28,43,36,.88) 100%);z-index:1;}
.sister-txt{position:relative;z-index:2;color:#fff;padding:28px;}
.sister-badge{display:inline-block;background:var(--gold);font-size:11px;font-weight:800;letter-spacing:.1em;padding:5px 13px;border-radius:3px;margin-bottom:12px;}
.sister-txt h4{font-size:clamp(20px,4.5vw,26px);font-weight:800;letter-spacing:.03em;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.sister-txt p{font-size:14px;margin-top:8px;opacity:.95;text-shadow:0 1px 8px rgba(0,0,0,.6);}
.sister-link{display:inline-block;margin-top:14px;font-size:15px;font-weight:800;color:var(--gold-l);letter-spacing:.04em;}
.bread {
    background: #ffffff;
}

ol.path {
    display: flex;
    gap: 10px;
    font-size: .8em;
    align-items: center;
    padding: 5px 5px 3px 5px;
    background: #ffffff;
    color: #333333;
    font-family: ArialMT, "Hiragino Kaku Gothic ProN", "ãƒ’ãƒ©ã‚®ãƒŽè§’ã‚´ ProN W3";
    max-width: 1140px;
    margin: auto;
}

ol.path li a {
    color: #0168b7;
}

ol.path li:last-child a {
    color: #333333;
}

ol.path li a:after {
    content: ">";
    display: inline-block;
    margin-left: 10px;
}

ol.path li:last-child a:after {
    content: none;
}
.cancel{background:var(--snow);}
.cancel-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--mist);border-radius:12px;overflow:hidden;}
.cancel-table th{background:var(--moss-d);color:#fff;font-size:13px;font-weight:800;padding:14px 16px;text-align:left;letter-spacing:.04em;}
.cancel-table th:last-child{text-align:right;}
.cancel-table td{font-size:14px;color:var(--ink);padding:14px 16px;border-bottom:1px solid var(--mist);}
.cancel-table td.fee{text-align:right;font-weight:800;color:var(--moss-d);white-space:nowrap;}
.cancel-table tr:last-child td{border-bottom:none;}
.cancel-table tbody tr:nth-child(odd){background:var(--cream);}
@media screen and (min-width: 769px) {
  .sp-only {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .pc-only {
    display: none;
  }
}