@charset "UTF-8";

:root {
  /* カラー */
  --color-text: #1b1b1b;
  --color-heading: #333333;
  --color-primary: #d81c24;
  --color-rule-red: #e03538;
  --color-white: #ffffff;

  /* コースカラー */
  --color-course-kodomo: #f26890;
  --color-course-english: #009c74;
  --color-course-airline: #f6494c;
  --color-course-hotel: #8874b9;

  /* タイポ */
  --text-body-lh: 30px;
  --text-body-ls: 0.075em;

  /* レイアウト */
  --container-max: 1000px;
  --section-gap: 100px;
  --radius-btn: 5px;
}

a {
  color: inherit;
  text-decoration: none;
}

/* ---------- ページ全体 ---------- */
.page {
  display: flex;
  flex-direction: column;
  gap: var(--section-gap);
  box-sizing: border-box;
}

/* ---------- 本文テキスト ---------- */
.lead {
  /* Figma実測: リード文→セクション1の間隔は72px(セクション間100pxより28px狭い) */
  margin-bottom: -28px;
}

.lead,
.body-text {
  line-height: var(--text-body-lh);
  letter-spacing: var(--text-body-ls);
  color: var(--color-text);
}

/* ---------- セクション ---------- */
.section {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.section-body {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.section-body--center {
  align-items: center;
}

.section-body--center>.body-text,
.section-body--center>.requirements {
  align-self: stretch;
}

/* ---------- 認定要件 ---------- */
.requirements {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.requirements__title {
  font-size: 18px;
  font-weight: 700;
  line-height: 27px;
  color: var(--color-text);
}

.requirements__list li {
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
  letter-spacing: var(--text-body-ls);
  color: var(--color-text);
  padding-left: 1.6em;
  text-indent: -1.6em;
}

.requirements__list li::before {
  content: "◆ ";
  color: var(--color-primary);
}

/* ---------- CTAボタン ---------- */
.cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: min(575px, 100%);
  height: 90px;
  background: var(--color-white);
  border: 4px solid var(--color-primary);
  box-sizing: border-box;
  transition: opacity 0.3s;
}

.cta-btn:hover {
  opacity: 0.7;
}

.cta-btn__label {
  font-size: 20px;
  font-weight: 700;
  line-height: 29px;
  color: var(--color-primary);
}

.cta-btn__icon {
  width: 25px;
  height: 24px;
}

/* ---------- コース見出し(赤バー+破線) ---------- */
.sub-heading {
  position: relative;
  font-size: 20px;
  font-weight: 700;
  line-height: 29px;
  color: var(--color-text);
  padding-left: 20px;
  padding-bottom: 20px;
  border-bottom: 1px dotted var(--color-heading);
}

.sub-heading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 5px;
  height: 22px;
  background: var(--color-primary);
}

/* ---------- コース ---------- */
.courses {
  gap: 40px;
}

.course {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.course__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.course-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  height: 50px;
  border-radius: var(--radius-btn);
  font-size: 12px;
  font-weight: 700;
  line-height: 17px;
  letter-spacing: var(--text-body-ls);
  text-align: center;
  color: var(--color-white);
  transition: opacity 0.2s;
}

.course-btn:hover {
  opacity: 0.85;
}

.course-btn--no-link {
  pointer-events: none;
  cursor: default;
}

.course-btn:hover .course-btn__chevron {
  transform: translateY(-50%) translateX(5px);
}

.course-btn__chevron {
  display: block;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 15px;
  object-fit: contain;
  transition: all 0.3s;
}

.course-btn--tall {
  height: 64px;
}

.course-btn--kodomo {
  background: var(--color-course-kodomo);
}

.course-btn--english {
  background: var(--color-course-english);
}

.course-btn--airline {
  background: var(--color-course-airline);
}

.course-btn--hotel {
  background: var(--color-course-hotel);
}

/* ---------- リンクリスト ---------- */
.link-list li a {
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
  letter-spacing: var(--text-body-ls);
  color: var(--color-text);
  text-decoration: underline;
}

.link-list li a img {
  width: 14px;
  height: 14px;
  margin-left: 4px;
  vertical-align: middle;
}

.link-list li a:hover {
  /* color: var(--color-primary); */
  opacity: 0.7;
}

.info-block {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.h3.mb0 {
  margin-bottom: 0;
}

/* ---------------全デバイス共通(PC)-end--------------------- */


/*----------------------------------------------------------*/
/* tablet用のCSS */
/*----------------------------------------------------------*/
@media screen and (max-width: 959px) {

  /* tablet */

  /* -------------------tablet END------------------------- */
}

@media screen and (max-width: 559px) {

  /* sp */
  :root {
    --text-body-lh: 1.8;
  }

  .lead {
    margin-bottom: 0;
  }

  .page {
    --section-gap: 30px;
    margin-top: 30px;
    padding: 0 15px;
  }

  .section {
    gap: 20px;
  }

  .section-title {
    font-size: 22px;
    line-height: 32px;
  }

  .course-btn {
    width: 100%;
  }

  .cta-btn {
    width: min(575px, 100%);
    height: 50px;
    gap: 10px;
    border: 2px solid var(--color-primary);
    transition: opacity 0s;
  }

  .cta-btn__label {
    font-size: 16px;
  }

  .cta-btn__icon {
    width: 15px;
    height: auto;
  }

  .link-list li a {
    line-height: 1.6;
  }

  .sub-heading {
    font-size: 16px;
    line-height: 1.2;
    padding-left: 10px;
    padding-bottom: 15px;
  }

  .sub-heading::before {
    top: 0px;
    height: calc(100% - 15px);
  }
}