/* =======================================
   共通リセット
======================================= */
body, h1, h2, h3, h4, p, ul, li, figure {
  margin: 0; padding: 0; list-style: none;
}
body {
  font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
  color: #333;
  line-height: 1.7;
  background-color: #fff;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }

/* =======================================
   ヒーロー
======================================= */
.os-hero {
  margin-top: var(--header-h-sp);
  width: 100%;
  background-color: var(--color-cyan);
}
@media (min-width: 768px) {
  .os-hero { margin-top: var(--header-h-pc); }
}
.os-hero img { width: 100%; }

/* =======================================
   共通インナー
======================================= */
.os-inner {
  max-width: 100rem;
  margin: 0 auto;
  padding: 0 1.6rem;
}
@media (min-width: 768px) {
  .os-inner { padding: 0 4rem; }
}

/* =======================================
   ご案内セクション（イントロ）
======================================= */
.os-intro {
  padding: 4rem 0 1rem;
}
.os-intro__title {
  color: var(--color-cyan);
  font-weight: bold;
  text-align: center;
  margin-bottom: 2.4rem;
}
@media (max-width: 767px) {
  .os-intro__title { font-size: 2.1rem; }
}
@media (min-width: 768px) {
  .os-intro__title { font-size: 2.4rem; }
}
.os-intro__text {
  line-height: 1.9;
}
@media (max-width: 767px) {
  .os-intro__text { font-size: 1.7rem; }
}
@media (min-width: 768px) {
  .os-intro__text { font-size: 1.5rem; }
}

/* =======================================
   セクション見出し画像（開催概要／お申し込み）
======================================= */
.os-heading {
  width: 100%;
  margin: 4rem 0 2.4rem;
}

/* =======================================
   開催概要
======================================= */
.os-overview {
  padding-bottom: 1rem;
}
.os-overview__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.os-overview__row {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.os-overview__label {
  width: 12rem;
}
.os-overview__content {
  line-height: 1.8;
}
@media (max-width: 767px) {
  .os-overview__content {
    font-size: 1.5rem;
    padding: 0 4rem;
  }
}
@media (min-width: 768px) {
  .os-overview__row {
    flex-direction: row;
    align-items: center;
    gap: 1.6rem;
  }
  .os-overview__label {
    width: 14rem;
    flex-shrink: 0;
  }
  .os-overview__content {
    font-size: 2.0rem;
    padding-left: 0;
  }
}

/* =======================================
   お申し込み・各種資料ダウンロード
======================================= */
.os-apply {
  padding-bottom: 5rem;
}
.os-apply__text {
  font-size: 1.5rem;
  line-height: 1.9;
  margin-bottom: 2rem;
}

/* タグ見出し（WEBでのお申込／用紙でのお申込） */
.os-tag {
  display: inline-block;
  background-color: var(--color-cyan);
  color: #fff;
  font-size: 1.6rem;
  font-weight: bold;
  padding: 0.9rem 2.8rem 0.9rem 1.6rem;
  margin-bottom: 2rem;
  clip-path: polygon(0 0, 85% 0, 100% 50%, 85% 100%, 0 100%);
}
@media (min-width: 768px) {
  .os-tag { font-size: 1.8rem; padding: 1rem 3.2rem 1rem 2rem; }
}

/* WEBでのお申込 */
.os-web {
  margin-bottom: 4rem;
}
/* プラスシード（生徒用）／WEB申込手順／プラスウィンド（教員用） */
.os-web__seed-wrap {
  font-size: 0; /* インラインブロック間の余白を詰める */
}
@media (max-width: 767px) {
  .os-web__seed-wrap {
    display: flex;
    flex-wrap: wrap;
  }
}
.os-web__seed-wrap > a {
  display: inline-block;
  vertical-align: middle;
  height: 9.6rem;
  margin: 0 1.2rem 1.2rem 0;
}
.os-web__seed-wrap .os-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
@media (max-width: 767px) {
  .os-web__seed-wrap .os-btn {
    width: 48%;
    min-width: 0;
    height: 6.6rem;
    padding: 1rem 1.2rem;
    font-size: 1.2rem;
  }
  .os-web__seed-wrap .os-btn--pink {
    width: calc((100% - 1.6rem) / 2);
    flex-shrink: 0;
  }
}
@media (min-width: 768px) {
  .os-web__seed-wrap > a { margin: 0 2rem 0 0; }
  .os-web__seed-wrap .os-btn { 
    width: auto; min-width: 22rem;
    height: 9.6rem; 
    padding: 1.2rem 1.6rem 1.2rem 2.2rem; 
    font-size: 1.7rem; 
  }
}

/* WEB申込手順（画像バッジ） */
.os-web__seed-wrap .os-web__guide {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.os-web__guide img {
  position: relative;
  top: 0.4rem;
  left: -0.5rem;
  max-height: 10.4rem;
}
@media (max-width: 767px) {
  .os-web__seed-wrap .os-web__guide {
    width: auto;
    max-width: 45%;
    height: 7.6rem;
    margin: 0 0.2rem 1.2rem 0;
  }
  .os-web__guide img {
    position: relative;
    top: -0.3rem;
    max-height: 10.4rem;
  }
}
@media (min-width: 768px) {
  .os-web__seed-wrap .os-web__guide {
    width: auto;
    height: 9.6rem;
  }
}

/* 用紙でのお申込 */
.os-paper__buttons {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}
.os-paper__navy-group {
  display: flex;
  flex-direction: row;
  gap: 1.6rem;
}
@media (min-width: 768px) {
  .os-paper__buttons {
    display: block;
  }
  .os-paper__navy-group {
    display: inline-block;
  }
}
.os-paper__navy-group .os-btn {
  flex: 1 1 0;
  min-width: 0;
  padding: 1.4rem 1rem;
}
@media (min-width: 768px) {
  .os-paper__buttons { flex-direction: row; flex-wrap: wrap; }
  .os-paper__navy-group .os-btn { flex: 0 0 auto; min-width: 22rem; padding: 1.4rem 2rem; }
  .os-btn--teachersummary { margin: 0 1.5rem 0 4rem; }
}
@media (max-width: 767px) {
  .os-btn.os-btn--studentform {
    max-width: auto;
  }
}

/* ボタン共通 */
.os-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  line-height: 1.5;
  border-radius: 0.6rem;
  padding: 1.4rem 2rem;
  min-width: 22rem;
  transition: opacity 0.3s;
}
.os-btn:hover { opacity: 0.8; }
.os-btn--pink { background-color: #e8478f; }
.os-btn--navy { background-color: var(--color-navy); }

@media (min-width: 768px) {
  .os-btn {
    font-size: 1.7rem;
  }
}


/* =======================================
   SP/PC 表示切り替え
======================================= */
.u-sp-only { display: inline; }
.u-pc-only { display: none; }
@media (min-width: 768px) {
  .u-sp-only { display: none; }
  .u-pc-only { display: inline; }
}
