@layer page {
  .program-body {
    padding-bottom: 7.5rem;
  }
  @media screen and (max-width: 767px) {
    .program-body {
      padding-bottom: 20.5128205128vw;
    }
  }
  .program-lead {
    line-height: 2;
  }
  @media screen and (min-width: 768px) {
    .program-lead {
      margin-top: 4.375rem;
      margin-bottom: 2.5rem;
      font-size: 1.125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .program-lead {
      margin-top: 10.2564102564vw;
      margin-bottom: 7.6923076923vw;
      font-size: 4.1025641026vw;
    }
  }
  @media screen and (min-width: 768px) {
    .program-sec {
      display: grid;
      grid-template-columns: 15rem 1fr;
      gap: 3.75rem;
      padding: 3.75rem 0;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec {
      padding-top: 10.2564102564vw;
    }
  }
  .program-sec + .program-sec {
    margin-top: 3.75rem;
    border-top: 1px solid var(--accent);
  }
  .program-sec__ttl {
    font-size: 1.75rem;
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    .program-sec__ttl {
      font-size: 5.1282051282vw;
      margin-bottom: 10.2564102564vw;
    }
  }
  @media screen and (min-width: 768px) {
    .program-sec__img-wrap img.is-pop {
      display: block;
      width: 9.625rem;
      margin: 0 auto;
    }
    .program-sec__img-wrap img.is-samurai {
      display: block;
      width: 15rem;
      margin: 0 auto;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec__img-wrap img.is-pop {
      width: 30.7692307692vw;
    }
    .program-sec__img-wrap img.is-samurai {
      width: 49.2307692308vw;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec__img-wrap {
      text-align: center;
    }
    .program-sec__img-wrap img {
      width: 41.0256410256vw;
    }
  }
  .program-sec__btn-wrap {
    margin-top: 2.5rem;
  }
  @media screen and (min-width: 768px) {
    .program-sec__btn-wrap {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.25rem;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec__btn-wrap {
      display: flex;
      margin-top: 10.2564102564vw;
      flex-direction: column;
      align-items: center;
      gap: 5.1282051282vw;
    }
  }
  .program-sec__btn-wrap .c-btn {
    text-align: center;
  }
  @media screen and (min-width: 768px) {
    .program-sec__btn-wrap .c-btn {
      width: 30rem;
      min-height: 5rem;
      font-size: 1rem;
      padding-bottom: 1.875rem;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1.5rem 3.75rem;
      box-sizing: border-box;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec__btn-wrap .c-btn {
      padding: 5.1282051282vw;
      width: 79.4871794872vw;
    }
  }
  .program-sec__btn-wrap .c-btn.is-samurai {
    line-height: 1.4;
  }
  @media screen and (min-width: 768px) {
    .program-sec__btn-wrap .c-btn.is-samurai {
      width: 40rem;
    }
  }
  @media screen and (max-width: 767px) {
    .program-sec__btn-wrap .c-btn.is-samurai {
      width: 89.7435897436vw;
    }
  }
  .program-sec__btn-wrap .c-btn span {
    display: block;
    font-weight: normal;
    margin-top: 0.6em;
    font-size: 0.75rem;
  }
  .program-sec__btn-wrap .p-icon-blank {
    width: 1rem;
    height: 1rem;
  }
  .program-text {
    margin-top: 1.875rem;
    font-size: 0.875rem;
  }
  @media screen and (max-width: 767px) {
    .program-text {
      margin-top: 7.6923076923vw;
      font-size: 4.1025641026vw;
    }
  }
  .program-link-items {
    margin-top: 2.25rem;
  }
  @media screen and (min-width: 768px) {
    .program-link-items {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.25rem;
    }
  }
  @media screen and (max-width: 767px) {
    .program-link-items {
      font-weight: 500;
      display: flex;
      flex-direction: column;
      gap: 2.5641025641vw;
      font-size: 4.1025641026vw;
    }
  }
  .program-link-items a {
    border: 1px solid #C9CACE;
    display: grid;
    align-items: center;
    grid-template-columns: 1fr 1rem;
    gap: 1rem;
    padding: 1.25rem;
    transition: 0.25s color;
  }
  @media (hover: hover) {
    .program-link-items a:hover {
      color: var(--accent);
    }
  }
  .program-dl {
    margin-top: 4.75rem;
    border-bottom: 1px solid #DFE5EA;
  }
  @media screen and (max-width: 767px) {
    .program-dl {
      border: 1px solid #DFE5EA;
      margin-top: 7.6923076923vw;
    }
  }
  @media screen and (min-width: 768px) {
    .program-dl > div {
      display: grid;
      grid-template-columns: 7.5rem 1fr;
    }
  }
  .program-dl dt, .program-dl dd {
    padding: 1.25rem;
    border-top: 1px solid #DFE5EA;
  }
  @media screen and (max-width: 767px) {
    .program-dl dt, .program-dl dd {
      padding: 2.5641025641vw 5.1282051282vw;
    }
  }
  .program-dl dt {
    background: #F0F4F7;
  }
  @media screen and (min-width: 768px) {
    .program-dl dt {
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }
  @media screen and (max-width: 767px) {
    .program-dl dd {
      padding: 3.5897435897vw 5.1282051282vw;
      font-size: 3.5897435897vw;
    }
  }
  .program-dl dd ol {
    list-style: decimal;
    margin-left: 20px;
  }
  .program-dl a {
    text-decoration: underline;
  }
  @media (hover: hover) {
    .program-dl a:hover {
      text-decoration: none;
    }
  }
  .program-dl .is-pdf {
    width: 1rem;
    margin: 0 0.5em;
  }
  @media screen and (max-width: 767px) {
    .program-dl .is-pdf {
      width: 4.1025641026vw;
    }
  }
  .program-note {
    font-size: 0.75rem;
    margin-top: 0.3em;
  }
  .program-note p {
    text-indent: -1em;
    margin-left: 1em;
  }
  .program-note .is-pdf {
    width: 0.75rem;
  }
  @media screen and (max-width: 767px) {
    .program-note .is-pdf {
      width: 3.0769230769vw;
    }
  }
  .program-link-text {
    margin-top: 1em;
    font-size: 0.875rem;
  }
  @media screen and (max-width: 767px) {
    .program-link-text {
      font-size: 3.5897435897vw;
    }
  }
  .program-link-text a {
    text-decoration: underline;
  }
  @media (hover: hover) {
    .program-link-text a:hover {
      text-decoration: none;
    }
  }
  .program-link-text svg {
    fill: var(--accent);
    vertical-align: middle;
  }
}