/* ===== KANKO TAXI HERO ===== */
.hero--kanko .hero__slide--1 { background-image: url('../images/kt-hero.webp'); background-position: center 55%; }
.hero--kanko .hero__slide--2 { background-image: url('../images/kt-hero-arrival.webp'); background-position: center; }
.hero--kanko .hero__title { font-size: clamp(1.5rem, 5.5vw, 3rem); white-space: nowrap; }

/* ===== KT INTRO ===== */
.kt-intro { background: #fff; text-align: center; }
.kt-intro__body { max-width: 760px; margin: 0 auto; }
.kt-intro__body .ja-body { margin-bottom: 28px; }

/* ===== KT MERIT ===== */
.kt-merit { background: var(--cream); }
.kt-merit__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border-block: 1px solid var(--line); }
.kt-merit__card { background: var(--cream); border-radius: 0; padding: 58px 40px; text-align: center; transition: var(--transition); }
.kt-merit__card:hover { background: var(--paper); }
.kt-merit__num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 50%;
  background: var(--accent); color: #fff;
  font-family: var(--font-en); font-weight: 700; font-size: 1.1rem;
  margin-bottom: 18px;
}
.kt-merit__title { color: var(--accent); margin-bottom: 12px; font-size: 1.25rem; }

/* ===== KT COURSE ===== */
.kt-course { background: #fff; }
.kt-course__lead { max-width: 720px; margin: 0 auto 82px; text-align: center; }
.kt-step { display: grid; grid-template-columns: minmax(340px, 440px) 1fr; gap: clamp(54px, 8vw, 100px); align-items: center; margin-bottom: clamp(80px, 10vw, 130px); }
.kt-step:last-of-type { margin-bottom: 40px; }
.kt-step__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.kt-step__media > img {
  border-radius: var(--radius); box-shadow: 0 24px 54px rgba(46,50,47,.11);
}
.kt-step__slider {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
  border-radius: var(--radius); box-shadow: 0 24px 54px rgba(46,50,47,.11);
}
.kt-step__slider::-webkit-scrollbar { display: none; }
.kt-step__slider img { flex: 0 0 100%; scroll-snap-align: center; }
.kt-step__dots { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
.kt-step__dot {
  width: 7px; height: 7px; border-radius: 50%; padding: 0; border: none;
  background: var(--primary-pale); cursor: pointer; transition: var(--transition);
}
.kt-step__dot.is-active { width: 20px; border-radius: 4px; background: var(--accent); }
.kt-step__head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.kt-step__num {
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%;
  background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-en); font-weight: 700;
}
.kt-step__title { color: var(--accent); font-size: 1.25rem; }

.kt-course__price {
  background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 48px 46px; text-align: center;
}
.kt-course__price-main { font-size: 1.15rem; font-weight: 700; color: var(--dark); margin-bottom: 8px; }
.kt-course__price-note { font-size: 0.85rem; color: var(--text-light); }

/* ===== KT AREA ===== */
.kt-area { background: var(--cream); }
.kt-area__lead { max-width: 760px; margin: 0 auto 76px; text-align: center; }
.kt-area__block { margin-bottom: 76px; }
.kt-area__block:last-of-type { margin-bottom: 0; }
.kt-area__title { color: var(--accent); font-size: 1.2rem; margin-bottom: 20px; }
.kt-area__marquee {
  display: flex; gap: 10px; overflow-x: auto; cursor: grab;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.kt-area__marquee::-webkit-scrollbar { display: none; }
.kt-area__marquee img {
  flex: 0 0 auto; width: 220px; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 8px;
}
.kt-area__note { margin-top: 40px; text-align: center; }

/* ===== レスポンシブ ===== */
@media (max-width: 900px) {
  .hero--kanko .hero__slide--1 { background-position: center 62%; }
  .hero--kanko .hero__slide--2 { background-position: center; }
  .kt-merit__grid { grid-template-columns: 1fr; }
  .kt-merit__card { padding: 46px 28px; }
  .kt-step { grid-template-columns: 1fr; gap: 32px; margin-bottom: 82px; }
  .kt-course__price { padding: 36px 24px; }
  .kt-area__marquee img { width: 150px; }
}
