@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Antonio:wght@100..700&family=Noto+Sans+JP:wght@100..900&display=swap');
*, ::before, ::after {
  box-sizing: border-box;
}

html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
  vertical-align: baseline;
  margin: 0;
  border: 0;
  padding: 0;
}

header, footer, nav, section, article, main, aside, figure, figcaption {
  display: block;
}

ol, ul {
  list-style: none;
  list-style-type: none;
}

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

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  background-color: transparent;
  padding: 0;
}

*, ::before, ::after {
  box-sizing: border-box;
}

img {
  vertical-align: top;
  max-width: 100%;
  height: auto;
  width: 100%;
}

figure {
  margin: 0;
}

a, button, [role=tab] {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

address {
  font-style: normal;
}

/* スクリーンリーダーオンリー */
.sr-only {
  position: absolute;
  margin: -1px;
  padding: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border-width: 0;
  white-space: nowrap;
}
html {
  font-size: 62.5%;
  line-height: 1;
  font-family: 'Noto Sans JP', sans-serif !important;
}
body{
  color: #333;
}

.l-advanced_inner {
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
  max-width: 1140px;
}
@media screen and (max-width: 767px) {
  .l-advanced_inner {
    padding: 0 30px;
  }
}
@media screen and (min-width: 768px) {
  .pcOnly { display: block;}
  .spOnly { display: none;}
}
@media screen and (max-width: 767px) {
  .pcOnly { display: none;}
  .spOnly { display: block;}
}


/* ===============================
KV Major Section
=============================== */
.kv-major {
  position: relative;
  overflow: hidden;
  padding: clamp(40px, 8vw, 60px) 0 clamp(80px, 15vw, 126px);
  display: flex;
  align-items: center;
  background: url(../../img/advanced/bg_kv.webp) no-repeat;
  background-size: 100% 100%;
  background-position: center;
}
@media screen and (max-width: 767px) {
  .kv-major{
    padding: clamp(47px, 12.5vw, 60px) 0 clamp(93px, 24.8vw, 120px);
    min-height: unset;
  }
}

/* 背景・あしらい画像 */
.kv-major__ashirai {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1390px;
  height: 100%;
  z-index: 0;
}
.kv-major__ashirai img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media screen and (max-width: 767px) {
  .kv-major__ashirai img{
    object-fit: cover;
  }
}

.kv-major .l-advanced_inner {
  position: relative;
  z-index: 10;
}
@media screen and (max-width: 767px) {
  .kv-major .l-advanced_inner{
    padding: 0 24px;
  }
}

/* メインエリア */
.kv-major__main {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
  gap: clamp(20px, 6vw, 70px);
  margin-bottom: clamp(24px, 5vw, 31px);
  transform: translateX(clamp(-53px, -3vw, -53px));
}

@media screen and (max-width: 767px) {
  .kv-major__main {
    flex-direction: column;
    transform: translateX(0);
    gap: clamp(8px, 2.2vw, 30px);
  }
}
.kv-major__right{
  padding-top: 20px;
}
@media screen and (max-width: 767px) {
  .kv-major__right{
    padding-top: 0;
  }
}
/* 縦書きテキスト共通 */
.kv-major__vertical-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: clamp(1.8rem, 2vw, 2.2rem);
  line-height: 1.8;
  letter-spacing: 0.1em;
  font-weight: 400;
  position: relative;
}
@media screen and (max-width: 767px) {
  .kv-major__vertical-text{
    writing-mode: unset;
    font-size: clamp(1.4rem, 3.7vw, 1.8rem);
    line-height: 1.4;
    text-align: center;
  }
  .kv-major__vertical-text .pcOnly{
    display: none !important;
  }
}
.kv-major__vertical-text--bold {
  font-weight: 700;
  font-size: clamp(2.4rem, 3vw, 3rem);
}
@media screen and (max-width: 767px){
  .kv-major__vertical-text--bold{
    text-align: center;
    font-size: clamp(2.4rem, 6.4vw, 3rem);
    display: inline-block;
    border-bottom: 2px solid #333;
    line-height: 1.3;
    letter-spacing: -0.09em;
  }
  .kv-major__vertical-text--bold::before{
    position: absolute;
    width: clamp(190px, 50.6vw, 260px);
    height: 2px;
    content: "";
    background: #333;
    top: 1.2em;
    left: 48%;
    transform: translateX(-50%);
  }
}

/* ライン装飾 */
.vertical-line-right, .vertical-line-left {
  background: #333;
  width: 2px;
  position: absolute;
  top: 0;
  display: block;
}
.vertical-line-right {
  height: clamp(200px, 20vw, 245px);
  right: 0;
}
.vertical-line-left {
  height: clamp(280px, 30vw, 342px);
  right: clamp(40px, 4vw, 56px);
}

@media screen and (max-width: 767px) {
  .vertical-line-right, .vertical-line-left {
    display: none;
  }
}

/* 左側の配置 */
.kv-major__left {
  position: relative;
  display: flex;
  align-items: center;
  padding-right: clamp(40px, 7vw, 100px);
  margin-top: -35px;
}
@media screen and (max-width: 767px) {
  .kv-major__left{
    margin-top: 0;
  }
}
.kv-major__line {
  position: absolute;
  right: clamp(-100px, -8vw, -60px);
  top: 25%;
  width: clamp(100px, 15vw, 188px);
  z-index: 2;
}

@media screen and (max-width: 767px) {
  .kv-major__left {
    padding-right: 0;
    order: 1;
  }
  .kv-major__line {
    display: none;
  }
}

/* 中央円柱エリア */
.kv-major__cylinder {
  position: relative;
  width: clamp(280px, 40vw, 440px);
}

@media screen and (max-width: 767px) {
  .kv-major__cylinder {
    /* 375pxで 250px */
    width: clamp(250px, 66.6vw, 400px);
    order: 3;
    margin-top: clamp(22px, 4.2vw, 30px);
  }
}
.kv-major__cylinder-line{
  display: none;
}
@media screen and (max-width: 767px){
  .kv-major__cylinder-line{
    display: block;
    position: absolute;
    height: clamp(39px, 10vw, 75px);
    top: clamp(-65px, -7vw, -26px);
    width: auto;
  }
  .kv-major__cylinder-line img{
    height: 100%;
    width: auto;
  }
}

.kv-major__cylinder-img img {
  width: 100%;
  height: auto;
}

.kv-major__cylinder-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding-bottom: 5%;
  padding-top: 10%;
}

.kv-major__cylinder-top,
.kv-major__cylinder-bottom {
  height: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.kv-major__cylinder-top{
  padding-top: 12px;
}
@media screen and (max-width: 767px){
  padding-top: 7px;
}
.kv-major__cylinder-bottom{
  padding-top: 24px;
}

.kv-major__cylinder-label {
  background: #fff;
  border-radius: 50px;
  width: clamp(160px, 20vw, 230px);
  height: clamp(38px, 5vw, 53px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 0.8em;
  font-size: clamp(1.8rem, 2.5vw, 2.6rem);
  letter-spacing: 0.8em;
  margin-bottom: clamp(10px, 2vw, 21px);
  box-shadow: 0 0 21px rgba(0,0,0,0.03);
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .kv-major__cylinder-label{
    /* 375pxで 1.5rem / 110px / 25px */
    font-size: clamp(1.5rem, 4vw, 2rem);
    width: clamp(110px, 29.3vw, 180px);
    height: clamp(25px, 6.6vw, 40px);
    padding-left: 0.5em;
    margin-bottom: clamp(10px, 2.6vw, 15px);
  }
}
.kv-major__cylinder-label--pink { color: #F29988; }

.kv-major__cylinder-desc {
  font-size: clamp(1.1rem, 1.2vw, 1.3rem);
  line-height: 1.5;
  padding: 0 10px;
}
@media screen and (max-width: 767px) {
  .kv-major__cylinder-desc{
    font-size: clamp(1rem, 2.6vw, 1.2rem);
  }
}

/* フッターエリア */
.kv-major__footer {
  text-align: center;
}
.kv-major__lead {
  font-size: clamp(1.4rem, 1.5vw, 1.6rem);
}
@media screen and (max-width: 767px) {
  .kv-major__lead{
    font-size: clamp(1.3rem, 3.4vw, 1.6rem);
  }
}
.kv-major__catch {
  max-width: 680px;
  margin: 14px auto 12px;
  width: 90%;
}
@media screen and (max-width: 767px){
  .kv-major__catch{
    width: 100%;
    max-width: 500px;
    margin: 14px auto 8px;
  }
}
.kv-major__text {
  font-size: clamp(1.2rem, 1.3vw, 1.3rem);
  line-height: 1.8;
}
@media screen and (max-width: 767px) {
  .kv-major__text{
    font-size: clamp(1.3rem, 3.4vw, 1.6rem);
  }
}

/* ===============================
Intro Section
=============================== */
.intro {
  /* PC: 138px/85px -> SP: 60px/40px */
  padding: clamp(47px, 10vw, 138px) 0 clamp(40px, 6vw, 85px);
  background: url("../../img/advanced/bg_intro.webp") no-repeat center center / 100% 100%;
  min-height: clamp(800px, 80vw, 1000px);
}

.intro__container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

@media screen and (max-width: 1024px) {
  .intro__container {
    flex-direction: column;
    gap: 20px;
  }
}
.intro__head{
  width: 90%;
  position: relative;
}
/* 左側タイトル */
.intro__sub-title {
  display: block;
  color: #98E26A;
  /* 375px(1rem) -> 1366px(1.2rem) */
  font-size: clamp(1rem, 0.2vw + 0.9rem, 1.2rem);
  font-weight: 700;
  font-family: "Antonio", sans-serif;
}
@media screen and (max-width: 768px){
  .intro__sub-title{
    position: absolute;
    top: 1.7em;
  }
}
.f-oswald{
  font-family: "Oswald", sans-serif;
  font-size: 5.6rem;
}
@media screen and (max-width: 768px){
  .f-oswald{
    font-size: 3.1rem;
  }
}
.intro__main-title {
  /* 375px(3rem) -> 1366px(5rem) */
  font-size: clamp(3rem, 2vw + 2.2rem, 5rem);
  font-weight: 700;
  display: inline-block;
}
@media screen and (max-width: 768px){
  .intro__main-title{
    padding-left: 62px;
  }
}

/* 右側コンテンツ */
.intro__content {
  width: 100%;
  /* 375px(100%) -> 1366px(580px) */
  max-width: clamp(100%, 42vw, 580px);
  padding-top: clamp(0px, 6vw, 70px);
  position: relative;
}

@media screen and (max-width: 1024px) {
  .intro__content {
    max-width: 100%;
    padding-top: 0;
  }
}

.intro__lead-title {
  /* 375px(2.4rem) -> 1366px(3.2rem) */
  font-size: clamp(2.4rem, 1.2vw + 1.5rem, 3.2rem);
  line-height: 1.5;
  margin-bottom: clamp(5px, 2vw, 20px);
  font-weight: 400;
}
.intro__lead-text {
  /* 375px(1.3rem) -> 1366px(1.5rem) */
  font-size: clamp(1.3rem, 0.1vw + 1.35rem, 1.5rem);
  line-height: 2.1;
  margin-bottom: clamp(40px, 5.5vw, 89px);
}
@media screen and (max-width: 767px){
  .intro__lead-text{
    margin-bottom: 50px;
    line-height: 1.7;
  }
}

.intro__ashirai {
  position: absolute;
  /* 375px(150px) -> 1366px(308px) */
  width: clamp(150px, 22vw, 308px);
  bottom: clamp(50px, 6vw, 76px);
  left: clamp(-494px, -33vw, -469px);
  z-index: 1;
}


@media screen and (max-width: 767px) {
  .intro__ashirai {
    display: none;
  }
}

/* ポイントエリア共通 */
.intro-points__title-wrap{
  position: relative;
  display: flex;
  align-items: flex-end;
  margin-bottom: clamp(25px, 4.5vw, 40px);
}
.intro-points__point{
  color: #98E26A;
  font-size: clamp(1.2rem, 0.6vw + 1.4rem, 2.2rem);
  font-family: "Antonio", sans-serif;
}
@media screen and (max-width: 768px){
  .intro-points__point{
    top: 3px;
    font-size: 1.2rem;
  }
}
.intro-points__label {
  /* 375px(1.6rem) -> 1366px(2.2rem) */
  font-size: clamp(1.4rem, 0.6vw + 1.4rem, 1.6rem);
  padding-left: 8px;
  position: relative;
  z-index: 2;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  .intro-points__label{
    font-size: 1.4rem;
  }
}

/* 各ポイント項目 */
.intro-point {
  display: flex;
  align-items: center;
  /* 375px(20px) -> 1366px(39px) */
  gap: clamp(20px, 2.8vw, 39px);
  padding-bottom: clamp(30px, 2.7vw, 44px);
  margin-bottom: clamp(30px, 2.9vw, 51px);
  border-bottom: 1px solid #D1D1D1;
}
@media screen and (max-width: 767px) {
  .intro-point{
    padding-bottom: 1.6rem;
    margin-bottom: 1.5rem;
  }
  .intro-point:last-child{
    border-bottom: none;
  }
}

/* アイコン側 */
.intro-point__icon-area {
  flex-shrink: 0;
  /* 375px(60px) -> 1366px(81px) */
  width: clamp(60px, 6vw, 81px);
  text-align: center;
  padding-left: clamp(12px, 1.2vw, 17px);
}
.intro-point__icon {
  width: 100%;
  max-width: 64px;
  margin: 0 auto;
}

/* テキスト側 */
.intro-point__body {
  flex-grow: 1;
}

.intro-point__title-wrap {
  position: relative;
  margin-bottom: clamp(8px, 1.1vw, 8px);
  padding-top: 5px;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 768px){
  .intro-point__title-wrap{
    align-items: flex-start;
  }
}
.intro-point__number {
  font-size: 1.2rem;
  font-weight: 700;
  color: #98E26A;
  z-index: 1;
  font-family: "Antonio", sans-serif;
  border-bottom: 1px solid #98E26A;
  padding-bottom: 1px;
  line-height: 1.2;
}
@media screen and (max-width: 768px){
  .intro-point__number{
    font-size: 1rem;
    padding-top: 1rem;
  }
}

.intro-point__title {
  position: relative;
  z-index: 2;
  /* 375px(1.8rem) -> 1366px(2.2rem) */
  font-size: clamp(1.8rem, 0.4vw + 1.6rem, 2.2rem);
  font-weight: 400;
  padding-left: 10px;
  line-height: 1.7;
}
@media screen and (max-width: 768px){
  .intro-point__title{
    line-height: 1.5;
  }
}

.intro-point__text {
  /* 375px(1.3rem) -> 1366px(1.5rem) */
  font-size: clamp(1.3rem, 0.2vw + 1.2rem, 1.5rem);
  line-height: 1.8;
}

/* ===============================
Reason Section
=============================== */
.reason {
  position: relative;
  padding: clamp(48px, 12vw, 155px) 0 clamp(80px, 11vw, 140px);
  overflow: hidden;
  background: url(../../img/advanced/bg_reason.webp) no-repeat;
  background-size: cover;
}
@media screen and (max-width: 767px){
  .reason{
    background: none;
  }
}
.reason .l-advanced_inner {
  position: relative;
  z-index: 2;
}

/* あしらい画像（絶対配置） */
.reason__ashirai {
  position: absolute;
  z-index: 5;
  pointer-events: none;
}
.reason__ashirai--top {
  top: -6px;
  /* 50%からの距離をclampで維持 */
  left: calc(50% - clamp(250px, 32vw, 480px));
  width: clamp(60px, 7.5vw, 98px);
}
@media screen and (max-width: 767px){
  .reason__ashirai--top{
    display: none;
  }
}
.reason__ashirai--right {
  top: 9px;
  right: clamp(-80px, -1vw, -36px);
  width: clamp(100px, 12vw, 166px);
}
@media screen and (max-width: 767px){
  .reason__ashirai--right{
    right: clamp(-30px, -2vw, -20px);
    width: clamp(80px, 12vw, 166px);
    top: 40px;
  }
}
.reason__ashirai--left-bottom {
  bottom: clamp(30px, 6vw, 80px);
  left: clamp(-100px, -7vw, -87px);
  width: clamp(78px, 12vw, 155px);
}
@media screen and (max-width: 767px){
  .reason__ashirai--left-bottom{
    left: clamp(-10px, -2vw, -17px);
    bottom: clamp(-30px, -2vw, -80px);
  }
}

/* セクションタイトル */
.reason__title {
  position: relative;
  z-index: 10;
  /* SP: 2.8rem -> PC: 4.5rem */
  font-size: clamp(2.8rem, 4vw, 4.5rem);
  font-weight: 700;
  margin-bottom: clamp(24px, 3vw, 38px);
  letter-spacing: 0.01em;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
@media screen and (max-width: 767px){
  .reason__title{
    display: block;
    text-align: center;
    line-height: 1.1;
  }
}
.reason__title-num {
  font-size: clamp(5rem, 6vw, 7rem);
  color: #98E26A;
  line-height: 1;
  margin-left: 8px;
  font-family: "Antonio", sans-serif;
  padding-bottom: 10px;
}

/* メインボックス */
.reason__box {
  position: relative;
  z-index: 3;
  background: url(../../img/advanced/bg_reason_inner.webp) no-repeat;
  background-size: 100% 100%;
  border-radius: 8px;
  /* SPパディング: 24px / PCパディング: 60px 60px 60px 97px */
  padding: clamp(34px, 5vw, 60px) clamp(20px, 5vw, 60px) clamp(34px, 5vw, 60px) clamp(20px, 8vw, 97px);
  border: 1px solid #DDDDDD;
  box-shadow: 0 0px 25px rgba(0,0,0,0.06);
}
@media screen and (max-width: 1010px){
  .reason__box{
    padding: clamp(29px, 5vw, 60px) clamp(20px, 5vw, 60px) clamp(34px, 5vw, 60px) clamp(20px, 5vw, 60px);
    background: url(../../img/advanced/bg_reason_sp.webp) no-repeat;
    background-size: 100% 100%;
  }
}

.reason__box-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .reason__box-inner {
    flex-direction: column;
    align-items: center;
  }
}

/* 左側：縦書き */
.reason__vertical {
  width: 36px;
  height: 100%;
  display: flex;
  align-items: center;
  margin-top: 20px;
}
@media screen and (max-width: 1010px){
  .reason__vertical{
    margin-right: 15px;
    margin-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .reason__vertical {
    width: 100%;
    justify-content: center;
    margin-bottom: clamp(30px, 8vw, 40px);
    margin-right: 0;
  }
}

.reason__vertical-text {
  writing-mode: vertical-rl;
  /* SP: 1.8rem -> PC: 2.2rem */
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  font-weight: 500;
  line-height: 1;
  position: relative;
  padding-right: 14px;
}

@media screen and (max-width: 767px) {
  .reason__vertical-text {
    writing-mode: unset;
    padding-right: 0;
    text-align: center;
    line-height: 1.6;
    display: inline-block;
  }
}

.reason__vertical-text::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 2px;
  height: 100%;
  background-color: #333333;
}

@media screen and (max-width: 767px) {
  .reason__vertical-text::before {
    right: 50%;
    top: 1.4em;
    width: clamp(268px, 64vw, 300px);
    height: 1.5px;
    transform: translateX(50%);
  }
  .reason__vertical-text .underline{
    position: relative;
  }
  .reason__vertical-text .underline::before{
    content: "";
    position: absolute;
    left: 0;
    bottom: -3px;
    width: 90%;
    height: 1.5px;
    background-color: #333333;
  }
}

/* 理由リスト */
.reason__list {
  /* PC: calc(100% - 120px) -> SP: 100% */
  width: clamp(100%, 75vw, calc(100% - 120px));
  max-width: 810px;
}

@media screen and (max-width: 767px) {
  .reason__list {
    width: 100%;
  }
}

.reason-item {
  display: flex;
  align-items: center;
  /* SP: 24px -> PC: 50px */
  gap: clamp(24px, 4vw, 50px);
  margin-bottom: clamp(40px, 4.5vw, 50px);
}
.reason-item:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .reason-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
}

/* アイコン（白背景の角丸ボックス） */
.reason-item__img {
  /* SP: 100% / PC: 300px */
  width: clamp(100%, 25vw, 300px);
  /* SP: 180px -> PC: 220px */
  height: clamp(180px, 18vw, 220px);
  background: #fff;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 767px) {
  .reason-item__img {
    width: 100%;
    height: 86px;
  }
}

.reason-item__img img {
  /* SP: 90px -> PC: 117px */
  width: clamp(90px, 9vw, 117px);
  height: auto;
}
@media screen and (max-width: 767px){
  .reason-item__img img{
    width: auto;
    height: 60px;
  }
}

/* コンテンツ側 */
.reason-item__content {
  flex-grow: 1;
  width: clamp(154%, 50vw, 460px);
}
@media screen and (max-width: 767px){
  .reason-item__content{
    width: 100%;
  }
}

.reason-item__header {
  position: relative;
  margin-bottom: clamp(11px, 1.5vw, 17px);
  display: flex;
  align-items: flex-start;
  padding-top: 10px;
}
@media screen and (max-width: 767px){
  .reason-item__header{
    flex-direction: column;
    margin-bottom: 5px;
  }
}
.reason-item__number {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.2;
  color: #98E26A;
  z-index: 1;
  font-family: "Antonio", sans-serif;
  border-bottom: 1px solid #98E26A ;
  margin-top: 8px;
}
@media screen and (max-width: 767px){
  .reason-item__number{
    position: static;
    display: block;
    margin-top: 0;
    font-size: 1rem;
  }
}

.reason-item__title {
  position: relative;
  z-index: 2;
  /* SP: 1.8rem -> PC: 2.2rem */
  font-size: clamp(1.8rem, 1.8vw, 2.2rem);
  line-height: 1.4;
  font-weight: 400;
  padding-left: 12px;
}
@media screen and (max-width: 767px){
  .reason-item__title{
    padding: 9px 0 0 0;
  }
}

.reason-item__text {
  /* SP: 1.3rem -> PC: 1.5rem */
  font-size: clamp(1.3rem, 1.2vw, 1.5rem);
  line-height: 2;
  letter-spacing: .01em;
}
@media screen and (max-width: 767px){
  .reason-item__text{
    line-height: 1.8;
  }
}

/* ===============================
Course Section
=============================== */
.course {
  padding: 40px 0 clamp(70px, 11vw, 148px);
  background: url("../../img/advanced/bg_course.webp") no-repeat center top / 100% 100%;
  overflow: hidden;
}
.course .l-advanced_inner{
  position: relative;
}

/* あしらい画像（3箇所） */
.course__ashirai {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.course__ashirai img { width: 100%; height: auto; }

/* あしらいの位置もclampで制御 */
.course__ashirai--1 {
  top: 24px;
  left: clamp(-164px, -10vw, -100px);
  width: clamp(97px, 14vw, 192px);
}
@media screen and (max-width: 767px){
  .course__ashirai--1{
    left: -46px;
    top: 120px;
  }
}
.course__ashirai--2 {
  top: -17px;
  left: clamp(50px, 15vw, 178px);
  width: clamp(49px, 6vw, 85px);
}
@media screen and (max-width: 767px){
  .course__ashirai--2{
    top: -2px;
    left: 75px;
  }
}
.course__ashirai--3 {
  top: -62px;
  right: clamp(-140px, -12vw, -100px);
  width: clamp(95px, 14vw, 184px);
}
@media screen and (max-width: 767px){
  .course__ashirai--3{
    top: -53px;
  }
}

.course__head {
  text-align: center;
  margin-bottom: clamp(28px, 4vw, 46px);
}
.course__title {
  /* SP: 2.4rem -> PC: 4.5rem */
  font-size: clamp(2.4rem, 4vw, 4.5rem);
  font-weight: 700;
  margin-bottom: clamp(12px, 3vw, 34px);
  letter-spacing: 0.05em;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
@media screen and (max-width: 767px){
  .course__title{
    display: block;
    font-size: 2.8rem;
    margin-bottom: 1rem;
    line-height: 1.4;
  }
}
.course__title-num {
  /* SP: 5.0rem -> PC: 7.0rem */
  font-size: clamp(5rem, 6vw, 7rem);
  color: #98E26A;
  font-family: "Antonio", sans-serif;
  margin-bottom: -4px;
}
.course__sub-title {
  /* SP: 1.4rem -> PC: 3.2rem */
  font-size: clamp(1.4rem, 3.5vw, 3.2rem);
  line-height: 1.4;
}
@media screen and (max-width: 767px){
  .course__sub-title{
    font-size: 1.6rem;
  }
}

/* カード全体 */
.course-card {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: center;
  background: #fff;
  border-radius: 8px;
  /* SP: 34px 24px 40px / PC: 65px 60px 60px */
  padding: clamp(34px, 5vw, 60px) clamp(24px, 5vw, 60px) clamp(40px, 5vw, 53px);
  margin-bottom: clamp(24px, 4vw, 24px);
  border: 1px solid #C7C7C7;
  box-shadow: 0 0px 25px rgba(0,0,0,0.06);
  min-height: 368px;
}
@media screen and (max-width: 767px){
  .course-card{
    gap: 36px;
    padding: clamp(28px, 5vw, 60px) clamp(20px, 5vw, 60px) clamp(30px, 5vw, 53px);
  }
}
.course-card:first-child{
  padding: clamp(34px, 5vw, 33px) clamp(24px, 5vw, 60px) clamp(40px, 4vw, 80px);
}
@media screen and (max-width: 767px){
  .course-card:first-child{
  padding: clamp(34px, 5vw, 33px) clamp(24px, 5vw, 60px) clamp(28px, 4vw, 80px);
}
}

.course-card:first-child .course-card__btn-area {
  margin-top: 50px;
}
@media screen and (max-width: 900px) {
  .course-card:first-child .course-card__btn-area {
    margin-top: -13px;
  }
}
.course-card:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 900px) {
  .course-card {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* カード左側：テキストコンテンツ */
.course-card__content {
  width: clamp(65%, 65vw, 98%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

@media screen and (max-width: 900px) {
  .course-card__content {
    width: 100%;
  }
}

.course-card__number {
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1.2;
  color: #98E26A;
  font-weight: 700;
  margin-bottom: 8px;
  position: relative;
  font-family: "Antonio", sans-serif;
  border-bottom: 1px solid #98E26A;
}
@media screen and (max-width: 767px){
  .course-card__number{
    margin-bottom: 11px;
    font-size: 1rem;
  }
}

.course-card__title-area {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.5vw, 16px);
  margin-bottom: clamp(18px, 3vw, 32px);
  flex-wrap: wrap; /* タグが落ちないように */
}
@media screen and (max-width: 767px){
  .course-card__title-area{
    gap: 0 10px;
  }
}
.course-card__title {
  /* SP: 1.8rem -> PC: 3.2rem */
  font-size: clamp(1.8rem, 3vw, 3.2rem);
  font-weight: 500;
}
.course-card__tag {
  background: #98E26A;
  color: #fff;
  /* SP: 1.2rem -> PC: 1.6rem */
  font-size: clamp(1.2rem, 1.5vw, 1.6rem);
  padding: 4px clamp(10px, 1.5vw, 20px);
  border-radius: 5px;
}
@media screen and (max-width: 767px){
  .course-card__tag{
    padding: 5px 9px;
    line-height: 1.2;
  }
}
.course-card__tag--new {
  font-size: clamp(1.6rem, 1.5vw, 2rem);
  background: none;
  color: #98E26A;
  padding: 4px 0; /* 新設タグはパディングなし */
}
@media screen and (max-width: 767px){
  .course-card__tag--new{
    padding: 0;
  }
}

.course-card__lead {
  /* SP: 1.6rem -> PC: 2.2rem */
  font-size: clamp(1.6rem, 2vw, 2.2rem);
  line-height: 1.4;
  font-weight: 500;
  margin-bottom: clamp(11px, 2vw, 14px);
}
.course-card__text {
  /* SP: 1.4rem -> PC: 1.5rem */
  font-size: clamp(1.4rem, 1.2vw, 1.5rem);
  line-height: 2;
}

/* カード右側：ボタンエリア */
.course-card__btn-area {
  width: clamp(30%, 30vw, 64%);
  text-align: center;
  margin-top: 35px;
}

@media screen and (max-width: 900px) {
  .course-card__btn-area {
    width: 100%;
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px){
  .course-card__btn-area{
    margin-top: -13px;
  }
}

.course-card__btn-label {
  /* SP: 1.3rem -> PC: 1.5rem */
  font-size: clamp(1.3rem, 1.2vw, 1.5rem);
  margin-bottom: clamp(16px, 2vw, 27px);
  position: relative;
  display: inline-block;
}
/* 装飾の斜線 */
.course-card__btn-label::before,
.course-card__btn-label::after {
  width: 20px;
  height: clamp(30px, 3vw, 41px);
  background-size: contain;
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.course-card__btn-label::before {
  background: url(../../img/advanced/line_course_left.svg) no-repeat;
  left: -25px;
}
.course-card__btn-label::after {
  background: url(../../img/advanced/line_course_right.svg) no-repeat;
  right: -25px;
}

.course-card__btn {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 300px; /* SPで広がりすぎないよう制限 */
  margin: 0 auto;
  aspect-ratio: 300 / 167;
  text-align: center;
  background: url("../../img/advanced/bg_button.webp") no-repeat center center / 100% 100%;
  transition: opacity 0.3s;
  border: 1px solid #CCCCCC;
  border-radius: 84px;
}
@media screen and (max-width: 767px){
  .course-card__btn{
    aspect-ratio: 265 / 120;
    background: url("../../img/advanced/bg_button_sp.webp") no-repeat center center / 100% 100%;
  }
}
.course-card__btn:hover {
  opacity: 0.8;
}
.course-card__btn-text {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
}
.course-card__btn-arrow {
  position: absolute;
  /* SP: 15px -> PC: 24px */
  bottom: clamp(15px, 2vw, 24px);
  right: 50%;
  transform: translateX(50%);
  width: 12px;
}

/* ===============================
FAQ Section
=============================== */
.faq {
  position: relative;
  padding: 40px 0 0 0;
  overflow: hidden;
}
@media screen and (max-width: 767px){
  .faq{
    padding-top: 55px;
  }
}
/* あしらい画像（5箇所） */
.faq__ashirai {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.faq__ashirai img { width: 100%; height: auto; }

/* あしらいの位置とサイズをclamp化 */
.faq__ashirai--1 {
  top: -49px;
  left: clamp(-50px, -5vw, -5%);
  width: clamp(81px, 12vw, 155px);
}
@media screen and (max-width: 767px){
  .faq__ashirai--1{
    top: -55px;
    left: -3px;
  }
}
.faq__ashirai--2 {
  top: 17px;
  left: 22%;
  width: clamp(37px, 8vw, 98px);
}
@media screen and (max-width: 767px){
  .faq__ashirai--2{
    left: 50px;
    top: 31px;
  }
}
.faq__ashirai--3 {
  top: -14px;
  right: 17px;
  width: clamp(86px, 15vw, 200px);
}
@media screen and (max-width: 767px){
  .faq__ashirai--3{
    top: 13px;
    right: -13px;
  }
}
.faq__ashirai--4 {
  top: 50%;
  right: clamp(-120px, -10vw, -80px);
  width: clamp(73px, 12vw, 156px);
}
@media screen and (max-width: 767px){
  .faq__ashirai--4{
    right: -36px;
    top: 38%;
  }
}
.faq__ashirai--5 {
  bottom: 19%;
  left: clamp(-122px, -10vw, -80px);
  width: clamp(86px, 15vw, 211px);
}
@media screen and (max-width: 767px){
  .faq__ashirai--5{
    left: -42px;
    bottom: 28%;
  }
}

.faq__inner {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1140px;
  padding: 0 20px;
  margin: 0 auto;
}
@media screen and (max-width: 767px){
  .faq__inner{
    padding: 0 30px;
  }
}
.faq__head {
  text-align: center;
  margin-bottom: clamp(30px, 2vw, 30px);
}
.faq__sub-title {
  color: #98E26A;
  font-weight: 700;
  /* SP: 1.4rem -> PC: 1.8rem */
  font-size: clamp(1.4rem, 1.5vw, 1.8rem);
  font-family: "Antonio", sans-serif;
}
.faq__main-title {
  /* SP: 3.0rem -> PC: 5.0rem */
  font-size: clamp(2.8rem, 4vw, 5rem);
  font-weight: 700;
  line-height: 1.4;
}
@media screen and (max-width: 767px){
  .faq__main-title{
    line-height: 1.2;
  }
}

/* 青枠のボックス */
.faq__box {
  border: 1px solid #C7C7C7;
  /* SP: 40px 20px -> PC: 82px 77px 102px 83px */
  padding: clamp(40px, 6vw, 82px) clamp(20px, 6vw, 77px) clamp(40px, 8vw, 102px) clamp(20px, 6vw, 83px);
  border-radius: 8px;
  box-shadow: 0 0 25px rgba(0,0,0,0.06);
  background: #fff;
}
@media screen and (max-width: 767px){
  .faq__box{
    padding: 40px 0 46px;
  }
}

.faq-item {
  margin-bottom: clamp(25px, 4vw, 46px);
  padding-bottom: clamp(32px, 4vw, 39px);
  border-bottom: 2px dotted #CECECE;
}
@media screen and (max-width: 767px){
  .faq-item{
    padding: 0 25px 25px;
  }
}
.faq-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

/* Q & A 共通ラベルスタイル */
.faq-item__label {
  display: inline-block;
  /* SP: 1.8rem -> PC: 3.0rem */
  font-size: clamp(1.8rem, 2.5vw, 3rem);
  font-weight: 700;
  color: #98E26A;
  margin-right: clamp(11px, 2.8vw, 35px);
  line-height: 1;
  vertical-align: middle;
  flex-shrink: 0;
  font-family: "Antonio", sans-serif;
  margin-top: -4px;
}
@media screen and (max-width: 767px){
  .faq-item__label{
    padding-top: 7px;
  }
}

.faq-item__q {
  /* SP: 1.5rem -> PC: 1.8rem */
  font-size: clamp(1.5rem, 1.5vw, 1.8rem);
  color: #98E26A;
  margin-bottom: clamp(17px, 2.5vw, 30px);
  display: flex;
  align-items: flex-start;
  line-height: 1.5;
}

.faq-item__a {
  display: flex;
  align-items: flex-start;
}

.faq-item__a-body {
  flex: 1;
  /* SP: 1.3rem -> PC: 1.5rem */
  font-size: clamp(1.3rem, 1.2vw, 1.5rem);
  line-height: clamp(1.5, 2, 2);
  margin-top: -14px;
}
@media screen and (max-width: 767px){
  .faq-item__a-body{
    line-height: 1.8;
    margin-top: 0;
  }
}
.faq-item__a-body.not-margin{
  margin-top: 0;
}

/* FAQ内のテーブル */
.faq-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: clamp(1.4rem, 1.2vw, 1.5rem);
  line-height: clamp(1.7, 2, 2);
  table-layout: fixed;
}

.faq-table th, .faq-table td {
  border: 1px solid #CECECE;
  text-align: left;
  /* SP: 12px -> PC: 30px */
  padding: clamp(12px, 2.2vw, 30px) clamp(12px, 2.2vw, 24px) clamp(12px, 2.2vw, 30px) clamp(12px, 2.2vw, 30px);
}
.faq-table th {
  background-color: #ECFCFC;
  /* PC: 250px -> SP: 100px相当 */
  width: clamp(100px, 20vw, 360px);
  padding: clamp(10px, 1.2vw, 14px);
  text-align: center;
  font-weight: 400;
  vertical-align: middle;
}
.faq-table th.first{
  width: 40%;
  min-width: 360px;
}
.faq-table th.second{
  width: 30%;
  min-width: 285px;
}
.faq-table th.third{
  width: 30%;
  min-width: 285px;
}
@media screen and (max-width: 1070px) {
  .faq-table th.first{
    min-width: 30vw;
  }
  .faq-table th.second{
    min-width: 25vw;
  }
  .faq-table th.third{
    min-width: 25vw;
  }
}
.faq-table td .txt-small{
  font-size: 1.2rem;
}
.faq-table__txt-bottom{
  font-size: clamp(1.3rem, 1.2vw, 1.5rem);
  line-height: clamp(1.7, 2, 2);
}
@media screen and (max-width: 767px){
  .faq-table__txt-bottom{
    line-height: 1.7;
  }
}
/* スケジュールテーブル */
.faq-table--schedule th.u-bg-gray {
  text-align: center;
}
.faq-table--schedule td {
  text-align: center;
  /* SP: 10px -> PC: 30px */
  padding: clamp(10px, 2.2vw, 30px);
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .faq-list__wrapper{
    margin-top: 16px;
  }
  .faq-list{
    border-bottom: 1px solid #CECECE;
    padding: 18px 0;
  }
  .faq-list dt{
    font-size: 1.5rem;
    margin-bottom: 12px;
  }
  .faq-list dd{
    font-size: 1.3rem;
    line-height: 1.8;
  }
  .faq-list dd .txt-small{
    font-size: 1rem;
    margin-top: 17px;
  }
  .faq-table-sp__title{
    font-size: 1.5rem;
  }
  .faq-table-sp__title:not(:first-of-type){
    margin-top: 14px;
  }
  .faq-table-sp table{
    margin: 12px 0 0 0;
    width: 100%;
    border-collapse: collapse;
  }
  .faq-table-sp table th{
    background-color: #ECFCFC;
    padding: 9px 13px;
    text-align: center;
    font-weight: 400;
    vertical-align: middle;
    width: 100%;
    border-bottom: 1px solid #CECECE;
    font-size: 1.3rem;
  }
  .faq-table-sp table th:first-of-type{
    width: 25.5%;
    border-right: 1px solid #CECECE;
  }
  .faq-table-sp table td {
    text-align: center;
    padding: 12px 16px;
    vertical-align: middle;
    border-bottom: 1px solid #CECECE;
    font-size: 1.3rem;
  }
  .faq-table-sp table td:first-of-type{
    border-right: 1px solid #CECECE;
  }
}

/* リンクエリア */
.faq-link-area {
  margin-top: clamp(20px, 2.5vw, 30px);
}
@media screen and (max-width: 767px) {
  .faq-link-area{
    margin-top: 34.5px;
  }
}
.faq-link {
  color: #98E26A;
  text-decoration: underline;
  /* SP: 1.5rem -> PC: 1.8rem */
  font-size: clamp(1.5rem, 1.5vw, 1.8rem);
  display: block;
  margin-bottom: clamp(12px, 2vw, 26px);
}

/* ユーティリティ */
.u-mt-20 { margin-top: clamp(12px, 1.5vw, 20px); }

@media screen and (max-width: 767px) {
  .faq-table th, .faq-table td {
    font-size: 1.2rem;
    line-height: 1.4;
  }
}

/* ===============================
Pattern Section
=============================== */
.pattern {
  position: relative;
  padding: clamp(118px, 14vw, 187px) 0 clamp(57px, 12vw, 155px);
  background: url("../../img/advanced/bg_patterns.webp") no-repeat center center / 100% 100%;
  overflow: hidden;
}
@media screen and (max-width: 767px){
  .pattern{
    background: url("../../img/advanced/bg_patterns_sp.webp") no-repeat;
    background-position: top;
    background-size: cover;
  }
}
.pattern .l-advanced_inner{
  position: relative;
}

/* あしらい画像（3箇所） */
.pattern__ashirai {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.pattern__ashirai img { width: 100%; height: auto; }

.pattern__ashirai--cube {
  top: 5px;
  left: clamp(-50px, -2vw, -22px);
  width: clamp(76px, 12vw, 164px);
}
@media screen and (max-width: 767px){
  .pattern__ashirai--cube{
    left: -14px;
    top: -76px;
  }
}
.pattern__ashirai--wave {
  top: 84px;
  right: clamp(10px, 2.5vw, 34px);
  width: clamp(50px, 5.5vw, 75px);
}
@media screen and (max-width: 767px){
  .pattern__ashirai--wave{
    width: 50px;
    right: 37px;
    top: -46px;
  }
}
.pattern__ashirai--cylinder {
  top: clamp(150px, 18vw, 250px);
  right: clamp(-50px, 0vw, -11px);
  width: clamp(80px, 12vw, 165px);
}
@media screen and (max-width: 767px){
  .pattern__ashirai--cylinder{
    right: 7px;
    top: 270px;
  }
}

.pattern__head {
  text-align: center;
  margin-bottom: 55px;
}
@media screen and (max-width: 767px){
  .pattern__head{
    margin-bottom: 48px;
  }
}
.pattern__title {
  /* SP: 2.8rem -> PC: 4.5rem */
  font-size: clamp(2.8rem, 4vw, 4.5rem);
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: clamp(1.5rem, 3vw, 3.5rem);
}
@media screen and (max-width: 767px){
  .pattern__title{
    margin-bottom: 31px;
    line-height: 1.5;
  }
}
.pattern__lead-sub {
  /* SP: 1.5rem -> PC: 3.2rem */
  font-size: clamp(1.5rem, 2.3vw, 3.2rem);
  font-weight: 500;
  margin-bottom: clamp(1.2rem, 2.1vw, 2.9rem);
}
@media screen and (max-width: 767px){
  .pattern__lead-sub{
    text-align: left;
  }
}
.pattern__lead-text {
  /* SP: 1.3rem -> PC: 1.5rem */
  font-size: clamp(1.3rem, 1.1vw, 1.5rem);
  line-height: 1.8;
  font-weight: 500;
}
@media screen and (max-width: 767px){
  .pattern__lead-text{
    text-align: left;
  }
}

.pattern__example-label {
  /* SP: 1.5rem -> PC: 2.2rem */
  font-size: clamp(1.5rem, 1.6vw, 2.2rem);
  margin-bottom: clamp(12px, 1.7vw, 23px);
  text-align: left;
}
@media screen and (max-width: 767px){
  .pattern__example-label{
    text-align: center;
  }
}

/* 各ボックス */
.pattern-box {
  margin-bottom: clamp(20px, 1.8vw, 24px);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 0 25px rgba(0,0,0,0.06);
  background: url(../../img/advanced/bg_pattern.webp) no-repeat;
  background-size: 100% 100%;
  border: 2px solid #DDDDDD;
}
@media screen and (max-width: 767px){
  .pattern-box{
    background: url(../../img/advanced/bg_pattern_sp.webp) no-repeat;
    background-size: 100% 100%;
  }
}
.pattern-box:last-child {
  margin-bottom: 0;
}

.pattern-box__inner {
  /* SP: 34px 20px -> PC: 46px 20px 48px */
  padding: clamp(30px, 4vw, 41px) clamp(14px, 1.5vw, 20px) clamp(31px, 4vw, 40px);
  text-align: center;
}

/* 白丸ラベル */
.pattern-box__label {
  display: inline-block;
  background: #fff;
  /* SP: 8px 20px -> PC: 12px 32px */
  padding: clamp(5px, 1vw, 10px) clamp(10px, 2.3vw, 32px);
  border-radius: 50px;
  /* SP: 1.2rem -> PC: 2rem */
  font-size: clamp(1.2rem, 1.5vw, 2rem);
  margin-bottom: clamp(16px, 2vw, 22px);
  border: 1px solid #DDDDDD;
  line-height: 1.2;
}
@media screen and (max-width: 767px){
  .pattern-box__label{
    width: 100%;
    display: block;
  }
}

/* タイトルエリア（名前 × 名前） */
.pattern-box__title-area {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(14px, 1.1vw, 15px);
  margin-bottom: clamp(14px, 2vw, 17px);
}

@media screen and (max-width: 767px) {
  .pattern-box__title-area {
    flex-direction: column; /* SPカンプのように縦に積む */
    gap: 12px;
  }
}

.pattern-box__name {
  /* SP: 2.4rem -> PC: 3.2rem */
  font-size: clamp(2.4rem, 2.4vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.pattern-box__cross {
  width: 28px;
  height: auto;
}

.pattern-box__text {
  /* SP: 1.3rem -> PC: 1.5rem */
  font-size: clamp(1.3rem, 1.1vw, 1.5rem);
  line-height: 1.6;
  margin: 0 auto;
}
@media screen and (max-width: 767px){
  .pattern-box__text{
    text-align: left;
    padding: 0 11px;
  }
}

/* ===============================
CTA Section
=============================== */
.cta {
  /* SP: 70px/50px -> PC: 112px/70px */
  padding: clamp(53px, 8vw, 112px) 0 clamp(50px, 5vw, 70px);
  background: url("../../img/advanced/bg_cta.webp") no-repeat center center / cover;
}

@media screen and (max-width: 767px) {
  .cta {
    background: url("../../img/advanced/bg_cta_sp.webp") no-repeat center center / cover;
  }
}
.cta .l-advanced_inner{
  padding: 0 30px;
}

.cta__head {
  text-align: center;
  margin-bottom: clamp(14px, 4vw, 35px);
}

.cta__title {
  /* SP: 2.8rem -> PC: 4.5rem */
  font-size: clamp(2.8rem, 3.5vw, 4.5rem);
  font-weight: 700;
  line-height: 1.4;
  /* SP: 12px -> PC: 35px */
  margin-bottom: clamp(12px, 2.5vw, 27px);
}

/* 句読点等のカーニング調整用 */
.cta__title .letter-spacing {
  letter-spacing: -0.4em;
}

/* チェックリスト */
.cta__check-list {
  display: flex;
  justify-content: center;
  gap: clamp(15px, 5vw, 57px);
  margin-bottom: clamp(18px, 2.5vw, 17px);
}

@media screen and (max-width: 767px) {
  .cta__check-list {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}

.cta__check-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  /* SP: 1.6rem -> PC: 2.0rem */
  font-size: clamp(1.6rem, 1.5vw, 2rem);
  font-weight: 700;
  text-align: left;
}
@media screen and (max-width: 767px){
  .cta__check-item{
    line-height: 1.4;
    align-items: flex-start;
  }
}
.cta__check-item .txt-small{
  font-size: clamp(1.3rem, 1vw, 1.5rem);
}
@media screen and (max-width: 767px){
  .cta__check-item .txt-small{
    margin-left: 6px;
  }
}
.cta__check-icon {
  /* SP: 20px -> PC: 33px */
  width: clamp(20px, 2.5vw, 33px);
  height: auto;
}

.cta__lead-text {
  /* SP: 1.5rem -> PC: 2.0rem */
  font-size: clamp(1.5rem, 1.5vw, 2rem);
  line-height: 1.6;
}
@media screen and (max-width: 767px){
  .cta__lead-text{
    text-align: left;
  }
}

/* ボタンレイアウト */
.cta__container {
  display: flex;
  justify-content: center;
  /* SP: 20px -> PC: 30px */
  gap: clamp(20px, 2.2vw, 30px);
  max-width: 1100px;
  margin: 0 auto;
}

@media screen and (max-width: 767px) {
  .cta__container {
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
}

/* ボタン共通設定 */
.cta__btn {
  position: relative;
  display: block;
  border-radius: 8px;
  overflow: hidden;
  background: url("../../img/advanced/bg_cta_btn.webp") no-repeat center center / cover;
  transition: transform 0.3s ease, border-color 0.3s ease;
  border: 3px solid #fff;
  width: 100%;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
.cta__btn:after{
  position: absolute;
  display: block;
  content: "";
  background: url("../../img/advanced/icon_arrow_02.svg") no-repeat;
  background-size: 100% 100%;
  top: 0;
  bottom: 0;
  margin: auto;
  /* SP: 20px -> PC: 30px */
  right: clamp(20px, 2.2vw, 30px);
  /* SP: 20px -> PC: 29px */
  width: clamp(20px, 2.2vw, 29px);
  height: clamp(20px, 2.2vw, 29px);
}

.cta__btn:hover {
  transform: translateY(-5px);
  border-color: #A3D39C;
}

.cta__btn-inner {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* SP: 30px 15px -> PC: 40px */
  padding: clamp(30px, 3.5vw, 40px) 15px;
  text-align: center;
}

/* 左側の大きなボタン */
.cta__btn--large {
  max-width: 535px;
  /* SP高さ: 220px -> PC高さ: 360px (SPカンプに合わせて最小値を確保) */
  height: clamp(220px, 26vw, 360px);
}

@media screen and (max-width: 767px) {
  .cta__btn--large {
    max-width: 100%;
    height: auto;
    min-height: 144px;
  }
}

/* 右側のグループ */
.cta__btn-group {
  display: flex;
  flex-direction: column;
  /* SP: 15px -> PC: 30px */
  gap: clamp(15px, 2.2vw, 30px);
  width: 100%;
  max-width: 535px;
}

.cta__btn-group .cta__btn {
  /* SP高さ: 140px -> PC高さ: 165px */
  height: clamp(140px, 12vw, 165px);
}

@media screen and (max-width: 767px) {
  .cta__btn-group {
    max-width: 100%;
    width: 100%;
  }
  .cta__btn-group .cta__btn {
    height: auto;
    min-height: 144px;
    align-items: center;
    display: flex;
    justify-content: center;
    width: 100%;
  }
}

/* テキストと矢印 */
.cta__btn-text {
  font-weight: 700;
  line-height: 1.5;
  /* SP: 1.7rem -> PC: 2.1rem */
  font-size: clamp(1.7rem, 1.8vw, 2.1rem);
  color: #333;
}

.cta__btn-sub {
  display: block;
  margin-top: 5px;
  /* SP: 1.2rem -> PC: 1.7rem */
  font-size: clamp(1.2rem, 1.3vw, 1.7rem);
  font-weight: 500;
}

.cta__btn-arrow {
  position: absolute;
  /* SP: 20px -> PC: 30px */
  right: clamp(20px, 2.2vw, 30px);
  top: 50%;
  transform: translateY(-50%);
  /* SP: 20px -> PC: 29px */
  width: clamp(20px, 2.2vw, 29px);
}
