/* ===== CONCEPT ===== */
.concept-catch { text-align: center; margin-bottom: 48px; }
.concept-catch h3 { font-size: clamp(28px, 3.5vw, 40px); font-weight: 700; color: #005eb8; line-height: 1.55; }
.concept-lead { font-size: clamp(15px, 1.4vw, 18px); line-height: 2; color: #333; text-align: center; margin-bottom: 56px; }
.concept-lead p { margin: 0; }
.concept-hero-img { position: relative; margin-bottom: 56px; border-radius: 6px; overflow: hidden; }
.concept-hero-img img { width: 100%; height: auto; display: block; }
.concept-hero-img__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 2vw, 20px);
  padding: 20px;
  background: transparent;
}
.concept-hero-img__overlay p {
  color: #fff;
  font-size: clamp(14px, 1.8vw, 28px);
  font-weight: 700;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
  line-height: 1.4;
}
.concept-row { display: flex; gap: 40px; align-items: flex-start; margin-bottom: 56px; }
.concept-row__img { width: 300px; flex-shrink: 0; border-radius: 6px; object-fit: cover; }
.concept-row__text h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; margin-bottom: 20px; line-height: 1.55; }
.concept-row__text p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; }
.concept-system-img {
  display: block;
  background: #fff;
  border-radius: 8px;
  padding: 32px;
  margin-top: 32px;
}
.concept-system-img img { width: 100%; height: auto; display: block; }

.concept-block { margin-top: 40px; margin-bottom: 56px; }
.concept-block h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; margin-bottom: 16px; line-height: 1.5; }
.concept-block p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; }

/* ===== FEATURES ===== */
.features-box { background: #f2f2f2; padding: clamp(24px, 3vw, 40px); border-radius: 6px; }
.features-box h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; text-align: center; margin-bottom: 20px; line-height: 1.5; }
.features-box p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; margin-bottom: 28px; }
.features-box img { width: 100%; height: auto; display: block; border-radius: 4px; }
.features-row { display: flex; gap: 40px; align-items: flex-start; margin-bottom: 56px; }
.features-row__img { width: 280px; flex-shrink: 0; border-radius: 6px; object-fit: cover; }
.features-row__text h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; margin-bottom: 20px; line-height: 1.55; }
.features-row__text p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; }
.features-qa-box { background: #fff; border: 1px solid #c7c7c7; padding: clamp(24px, 3vw, 40px); margin-bottom: 56px; border-radius: 6px; }
.features-qa-box h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; margin-bottom: 20px; line-height: 1.5; text-align: center; }
.txt-blue { color: #005eb8; }
.features-qa-box p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; margin-bottom: 28px; }
.features-qa-box img { width: 100%; height: auto; display: block; border-radius: 4px; }
.features-chart { background: #fff; border: 1px solid #c7c7c7; padding: clamp(24px, 3vw, 40px); margin-bottom: 8px; border-radius: 6px; }
.features-chart h3 { font-size: clamp(18px, 2vw, 28px); font-weight: 700; color: #333; text-align: center; margin-bottom: 24px; line-height: 1.5; }
.features-chart img { width: 100%; height: auto; display: block; border-radius: 4px; }

/* ===== TIMETABLE ===== */
.timetable-scroll-wrap { margin-bottom: 56px; border-radius: 6px; overflow: hidden; }
.timetable-main-img { width: 100%; height: auto; display: block; border-radius: 6px; }
.timetable-cards { display: flex; gap: 20px; margin-bottom: 56px; }
.timetable-card { flex: 1; border: 1px solid #c7c7c7; padding: 28px 20px; display: flex; flex-direction: column; gap: 14px; background: #fff; }
.timetable-card img { width: 100%; height: auto; display: block; border-radius: 4px; }
.timetable-card p { font-size: clamp(13px, 1.2vw, 16px); line-height: 1.85; color: #333; }
.timetable-card__head { text-align: center; }
.timetable-card p.timetable-card__en { font-size: 30px; font-weight: 700; color: #005eb8; margin-bottom: 4px; }
.timetable-card p.timetable-card__ja { font-size: clamp(13px, 1.3vw, 18px); font-weight: 700; color: #333; }
.timetable-info { display: flex; flex-direction: column; gap: 40px; }
.timetable-info-block h3, .timetable-info-block__title { font-size: clamp(16px, 1.8vw, 26px); font-weight: 700; color: #005eb8; margin-bottom: 14px; line-height: 1.5; }
.timetable-info-block__hr { border: none; border-top: 1px solid #c7c7c7; margin-bottom: 16px; }
.timetable-info-block p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; }

/* ===== PATH ===== */
.path-row { display: flex; gap: 40px; align-items: flex-start; margin-bottom: 40px; }
.path-row__img { width: 280px; flex-shrink: 0; border-radius: 6px; object-fit: cover; }
.path-row__text { flex: 1; min-width: 0; }
.path-catch { font-size: clamp(20px, 2.2vw, 30px); font-weight: 700; color: #333; line-height: 1.55; margin-bottom: 20px; }
.path-row__text p { font-size: clamp(14px, 1.4vw, 18px); line-height: 1.9; color: #333; }

/* ===== サブリンクボタン ===== */
.sub-link-wrap { display: flex; justify-content: center; margin-top: 24px; }
.sub-link { display: flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 700; color: #000; width: fit-content; transition: color 0.2s; }
.sub-link:hover { color: #005eb8; }
.sub-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #005eb8;
  color: #fff;
  flex-shrink: 0;
  transition: background 0.2s;
}
.sub-link:hover .sub-link__icon { background: #0047a0; }
.sub-link__icon .material-symbols-rounded { font-size: 22px; }

/* ===== RESPONSIVE ===== */
@media (max-width: 900px) {
  .concept-row, .features-row, .path-row { flex-direction: column; }
  .concept-row__img, .features-row__img, .path-row__img { width: 100%; max-width: 360px; }
}
@media (max-width: 767px) {
  .concept-catch h3,
  .concept-row__text h3,
  .concept-block h3,
  .features-box h3,
  .features-row__text h3,
  .features-qa-box h3,
  .features-chart h3,
  .path-catch { font-size: 24px; }
  .concept-lead,
  .concept-row__text p,
  .concept-block p,
  .features-box p,
  .features-row__text p,
  .features-qa-box p,
  .timetable-card p,
  .path-row__text p,
  .timetable-info-block p { font-size: 15px; }
  .timetable-info-block h3,
  .timetable-info-block__title { font-size: 20px; }
  .timetable-scroll-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #005eb8 #e0e0e0;
    border-radius: 6px;
  }
  .timetable-scroll-wrap::-webkit-scrollbar { height: 6px; }
  .timetable-scroll-wrap::-webkit-scrollbar-track { background: #e0e0e0; border-radius: 3px; }
  .timetable-scroll-wrap::-webkit-scrollbar-thumb { background: #005eb8; border-radius: 3px; }
  .timetable-scroll-wrap .timetable-main-img { width: auto; min-width: 640px; height: auto; border-radius: 0; }
  .concept-lead { text-align: left; }
  .br-pc-only { display: none; }
  .timetable-cards { flex-direction: column; gap: 16px; }
  .timetable-card { flex-direction: row; flex-wrap: wrap; gap: 12px; }
  .timetable-card__head { width: 100%; }
  .timetable-card img { width: 120px; flex-shrink: 0; }
  .timetable-card p { flex: 1; min-width: 0; font-size: 14px; }
}
@media (max-width: 640px) {
  .timetable-card { flex-direction: column; }
  .timetable-card img { width: 100%; }
  .concept-hero-img__overlay p { font-size: clamp(12px, 4vw, 18px); gap: 8px; }
}
