
/* ===== ベース(スタンドアロンプレビュー用) ===== */
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto;display:block}
body{margin:0;font-family:sans-serif;background:#F8E9EE}

/* ===== ベース(リセット・#sv-topスコープ) ===== */
#sv-top{font-family:sans-serif}
#sv-top *,#sv-top *::before,#sv-top *::after{box-sizing:border-box}
#sv-top img{max-width:100%;height:auto;display:block}

/* ===== テーマCSS打ち消しガード =====
   WordPress貼り付け時にテーマ(SWELL)の .post_content 向け見出し・表・リスト装飾が
   セクション内の実テキストへ及ぶのを防ぐ。revertはブラウザ標準値に戻すため、
   単体プレビュー(index.html)での見た目は変わらない。
   セクション側のクラス指定(#sv-top .sv-*)はこれより詳細度が高いので常に優先される。 */
#sv-top h1,#sv-top h2,#sv-top h3,#sv-top h4,#sv-top h5,#sv-top h6,
#sv-top p,#sv-top ul,#sv-top ol,#sv-top li,#sv-top dl,#sv-top dt,#sv-top dd,
#sv-top table,#sv-top thead,#sv-top tbody,#sv-top tr,#sv-top th,#sv-top td,
#sv-top blockquote,#sv-top figure,#sv-top section,#sv-top a,#sv-top em,#sv-top strong{
  margin:revert;padding:revert;border:revert;background:revert;
  font:revert;color:revert;text-align:revert;letter-spacing:revert;
  text-decoration:revert;text-shadow:revert;border-radius:revert;box-shadow:revert;
  list-style:revert;vertical-align:revert;
}
#sv-top table{border-collapse:revert;border-spacing:revert;width:revert;max-width:revert}
#sv-top h1,#sv-top h2,#sv-top h3,#sv-top h4,#sv-top h5,#sv-top h6,
#sv-top p,#sv-top ul,#sv-top ol,#sv-top li,#sv-top dl,#sv-top dt,#sv-top dd,
#sv-top table,#sv-top thead,#sv-top tbody,#sv-top tr,#sv-top th,#sv-top td,
#sv-top blockquote,#sv-top figure,#sv-top section,#sv-top a,#sv-top em,#sv-top strong{
  box-sizing:border-box;
}

/* ================================================
   セクション01 ファーストビュー(FV) (01_hero.html)
   ================================================ */
/* ===== 01 ファーストビュー(FV) ===== */
#sv-top .sv-sec.sv-hero{
  font-family:sans-serif;
  background:#fff;
  overflow:hidden;
}
#sv-top .sv-hero *,
#sv-top .sv-hero *::before,
#sv-top .sv-hero *::after{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

/* ---------- ヒーロービジュアル(モバイル) ---------- */
#sv-top .sv-hv{
  position:relative;
}
#sv-top .sv-hero{overflow:hidden;}
/* ピンク帯(斜め) */
#sv-top .sv-hv-band{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:105.2vw;
  background:linear-gradient(100deg,#ED5087 0%,#DE3A76 45%,#C7235A 100%);
  clip-path:polygon(0 19.9vw,100% 10.9vw,100% 105.2vw,55.5vw 105.2vw,55.5vw 98.6vw,0 103.6vw);
}
#sv-top .sv-hv-photo{
  position:absolute;
  display:block;
  height:auto;
}
#sv-top .sv-hv-photo-m{
  top:11.1vw;
  right:0;
  width:50.7vw;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 6vw);
  mask-image:linear-gradient(to right,transparent 0,#000 6vw);
}
#sv-top .sv-hv-photo-p{
  display:none;
}
/* 上部帯(白地) */
#sv-top .sv-hv-head{
  position:absolute;
  top:2.6vw;
  left:4.2vw;
  transform:rotate(-3deg);
  transform-origin:left top;
  z-index:3;
}
#sv-top .sv-hv-badges{
  display:flex;
  align-items:center;
  line-height:1;
}
#sv-top .sv-hv-badge{
  display:inline-block;
  background:#ED5087;
  color:#fff;
  font-size:3.2vw;
  font-weight:700;
  padding:1.15vw 1.7vw;
  margin-right:2px;
  white-space:nowrap;
}
#sv-top .sv-hv-senmon{
  font-style:normal;
  color:#1a1a1a;
  font-size:3.7vw;
  font-weight:700;
  margin-left:1.2vw;
}
#sv-top .sv-hv-cat{
  margin-top:1.7vw;
  color:#1a1a1a;
  font-size:4.9vw;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1;
}
/* キャッチコピー */
#sv-top .sv-hv-catch{
  position:absolute;
  top:23.4vw;
  left:4vw;
  z-index:2;
  transform:rotate(-3deg);
  transform-origin:left top;
  color:#fff;
  font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif;
  font-weight:800;
  line-height:1;
}
#sv-top .sv-hv-l1{
  display:block;
  font-size:5.6vw;
  letter-spacing:.14em;
  margin-left:5.7vw;
}
#sv-top .sv-hv-l2{
  display:block;
  font-size:24.5vw;
  letter-spacing:.06em;
  margin-top:1.8vw;
}
#sv-top .sv-hv-l3{
  display:block;
  margin-top:2.2vw;
}
#sv-top .sv-hv-route{
  font-size:9.4vw;
  letter-spacing:.04em;
}
#sv-top .sv-hv-wa{
  font-size:5.8vw;
}
#sv-top .sv-hv-tsuku{
  display:block;
  position:relative;
  width:-moz-fit-content;
  width:fit-content;
  font-size:8.7vw;
  letter-spacing:.05em;
  margin-top:2.8vw;
  margin-left:3vw;
  z-index:1;
}
#sv-top .sv-hv-tsuku::before{
  content:"";
  position:absolute;
  left:-4%;
  right:-2%;
  bottom:.02em;
  height:.48em;
  background:#FEDA28;
  border-radius:.24em/50%;
  transform:rotate(-1.2deg);
  z-index:-1;
}

/* ---------- 設計図式(白地) ---------- */
#sv-top .sv-hv-in{
  padding-top:105.1vw;
}
#sv-top .sv-plan{
  position:relative;
  background:#fff;
  padding:3.6vw 4vw 4vw;
}
#sv-top .sv-plan-rot{
  transform:rotate(-2.5deg);
  transform-origin:center top;
}
#sv-top .sv-plan-copy{
  color:#1a1a1a;
  font-size:3.75vw;
  font-weight:700;
  letter-spacing:.01em;
  line-height:1.4;
  text-align:center;
  white-space:nowrap;
}
#sv-top .sv-pink{
  color:#ED5087;
}
#sv-top .sv-plan-line{
  height:2px;
  background:#1a1a1a;
  margin:2vw 0 0;
}
#sv-top .sv-plan-body{
  display:flex;
  align-items:flex-start;
  margin-top:4vw;
}
#sv-top .sv-plan-teacher{
  display:block;
  width:24.5vw;
  height:auto;
  flex:0 0 auto;
  margin-right:1.5vw;
}
#sv-top .sv-plan-txt{
  flex:1 1 auto;
  min-width:0;
  text-align:center;
}
#sv-top .sv-plan-formula{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.6vw;
  line-height:1;
  white-space:nowrap;
}
#sv-top .sv-fbox{
  display:inline-flex;
  align-items:center;
  gap:1vw;
  border:2px solid #1a1a1a;
  border-radius:.8vw;
  background:#fff;
  color:#1a1a1a;
  font-size:3.5vw;
  font-weight:700;
  padding:1.5vw 1.8vw;
}
#sv-top .sv-fbox svg{
  width:3.6vw;
  height:3.6vw;
  flex:0 0 auto;
}
#sv-top .sv-fx{
  color:#ED5087;
  font-size:4.6vw;
  font-weight:700;
}
#sv-top .sv-fkara{
  color:#1a1a1a;
  font-size:3.5vw;
  font-weight:700;
}
#sv-top .sv-plan-aim{
  margin-top:2.8vw;
  color:#1a1a1a;
  font-size:3.8vw;
  font-weight:700;
  line-height:1.3;
  white-space:nowrap;
}
#sv-top .sv-plan-aim strong{
  color:#ED5087;
  font-size:4.8vw;
  letter-spacing:.02em;
}
#sv-top .sv-plan-pro{
  margin-top:1.8vw;
  line-height:1;
}
#sv-top .sv-plan-pro span{
  display:inline-block;
  background:#FEDA28;
  color:#1a1a1a;
  font-size:6.4vw;
  font-weight:800;
  letter-spacing:.04em;
  padding:.8vw 1.6vw 1vw;
}

/* ---------- CTA(クリーム背景) ---------- */
#sv-top .sv-hero-cta{
  background:#FFF9D3;
  padding:5.5vw 2.6vw 5vw;
}
#sv-top .sv-hero-cta-in{
  max-width:100%;
  margin:0 auto;
}
#sv-top .sv-cta-bubble{
  position:relative;
  display:inline-block;
  background:#fff;
  border:2px solid #1a1a1a;
  color:#1a1a1a;
  font-size:3.8vw;
  font-weight:700;
  line-height:1;
  padding:1.6vw 3.2vw;
  margin-left:1.6vw;
  transform:rotate(-2deg);
  z-index:2;
}
#sv-top .sv-cta-bubble::after{
  content:"";
  position:absolute;
  left:38%;
  bottom:-1.5vw;
  width:2.4vw;
  height:2.4vw;
  background:#fff;
  border-right:2px solid #1a1a1a;
  border-bottom:2px solid #1a1a1a;
  transform:rotate(45deg);
}
#sv-top .sv-cta-consult{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:16.3vw;
  margin-top:-1vw;
  border-radius:8.2vw;
  background:linear-gradient(180deg,#54C279 0%,#27B35E 20%,#1E9A4F 48%,#147031 100%);
  box-shadow:0 1vw 2vw rgba(25,90,45,.35),inset 0 -1.2vw 0 rgba(0,0,0,.16),inset 0 .5vw .6vw rgba(255,255,255,.35);
  text-decoration:none;
  line-height:1;
  white-space:nowrap;
}
#sv-top .sv-cta-consult-em{
  color:#FEDA28;
  font-size:6.4vw;
  font-weight:800;
  letter-spacing:.02em;
}
#sv-top .sv-cta-consult-tx{
  color:#fff;
  font-size:5.4vw;
  font-weight:700;
}
#sv-top .sv-cta-arrow{
  position:absolute;
  right:3.2vw;
  top:50%;
  transform:translateY(-50%);
  width:7.4vw;
  height:7.4vw;
  background:#fff;
  border-radius:50%;
}
#sv-top .sv-cta-arrow::after{
  content:"";
  position:absolute;
  left:41%;
  top:50%;
  transform:translateY(-50%);
  border-style:solid;
  border-width:1.7vw 0 1.7vw 2.6vw;
  border-color:transparent transparent transparent #1E9A4F;
}
#sv-top .sv-cta-line{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.6vw;
  height:13.6vw;
  margin-top:7vw;
  background:#fff;
  border:2px solid #03BB4E;
  border-radius:6.8vw;
  text-decoration:none;
  line-height:1;
  white-space:nowrap;
  padding:0 8vw 0 3vw;
}
#sv-top .sv-line-icon{
  display:block;
  width:9vw;
  height:9vw;
  flex:0 0 auto;
}
#sv-top .sv-line-icon svg{
  display:block;
  width:100%;
  height:100%;
}
#sv-top .sv-line-tx{
  color:#1a1a1a;
  font-size:4.3vw;
  font-weight:800;
  letter-spacing:.01em;
}
#sv-top .sv-line-tx em{
  font-style:normal;
  color:#06C755;
  font-size:5.1vw;
}
#sv-top .sv-line-free{
  display:inline-block;
  border:2px solid #F0669A;
  border-radius:1vw;
  color:#ED5087;
  background:#fff;
  font-size:3.6vw;
  font-weight:700;
  padding:.9vw 1.2vw;
}
#sv-top .sv-line-arrow{
  position:absolute;
  right:2.6vw;
  top:50%;
  transform:translateY(-50%);
  width:6.4vw;
  height:6.4vw;
  background:#06C755;
  border-radius:50%;
}
#sv-top .sv-line-arrow::after{
  content:"";
  position:absolute;
  left:44%;
  top:50%;
  transform:translateY(-50%);
  border-style:solid;
  border-width:1.4vw 0 1.4vw 2.2vw;
  border-color:transparent transparent transparent #fff;
}
#sv-top .sv-cta-note{
  margin-top:2.8vw;
  color:#222;
  font-size:3.4vw;
  text-align:center;
  letter-spacing:.02em;
}

/* ================= PC ================= */
@media (min-width:701px){
  #sv-top .sv-hv{
    height:687px;
    background:linear-gradient(#fff 300px,#F1EFEF 300px);
  }
  #sv-top .sv-hv-band{
    height:100%;
    background:linear-gradient(100deg,#E84C8B 0%,#D62E72 55%,#BE0A55 100%);
    clip-path:polygon(0 134px,100% 82px,100% 495px,calc(100% - 566px) 495px,calc(100% - 566px) 433px,0 458px);
  }
  #sv-top .sv-hv-photo-m{
    display:none;
  }
  #sv-top .sv-hv-photo-p{
    display:block;
    top:70px;
    right:0;
    width:590px;
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 24px);
    mask-image:linear-gradient(to right,transparent 0,#000 24px);
  }
  #sv-top .sv-hv-in{
    position:relative;
    max-width:1170px;
    height:100%;
    margin:0 auto;
    padding-top:0;
  }
  #sv-top .sv-hv-head{
    top:22px;
    left:42px;
    transform:rotate(-2.5deg);
  }
  #sv-top .sv-hv-badge{
    font-size:25px;
    padding:9px 13px;
  }
  #sv-top .sv-hv-senmon{
    font-size:29px;
    margin-left:9px;
  }
  #sv-top .sv-hv-cat{
    margin-top:12px;
    font-size:31px;
  }
  #sv-top .sv-hv-catch{
    top:132px;
    left:83px;
    transform:rotate(-2.5deg);
  }
  #sv-top .sv-hv-l1{
    font-size:38px;
    letter-spacing:.12em;
    margin-left:50px;
  }
  #sv-top .sv-hv-l2{
    font-size:178px;
    letter-spacing:.05em;
    margin-top:22px;
  }
  #sv-top .sv-hv-l3{
    margin-top:18px;
    margin-left:90px;
    white-space:nowrap;
  }
  #sv-top .sv-hv-route{
    font-size:45px;
  }
  #sv-top .sv-hv-wa{
    font-size:31px;
  }
  #sv-top .sv-hv-tsuku{
    display:inline;
    font-size:41px;
    margin:0 0 0 8px;
  }
  #sv-top .sv-hv-tsuku::before{
    left:0;
    right:2%;
    bottom:-.28em;
    height:.24em;
    background:#E1B61E;
    border-radius:.12em/50%;
    transform:rotate(-1deg);
  }
  /* 設計図式:PCはヒーロー内に絶対配置 */
  #sv-top .sv-plan{
    position:absolute;
    margin:0;
    padding:0;
    background:none;
    left:352px;
    top:472px;
    width:700px;
  }
  #sv-top .sv-plan-rot{
    transform:none;
  }
  #sv-top .sv-plan-copy{
    font-size:24px;
  }
  #sv-top .sv-plan-line{
    margin-top:10px;
  }
  #sv-top .sv-plan-body{
    display:block;
    margin-top:22px;
  }
  #sv-top .sv-plan-teacher{
    position:absolute;
    left:-177px;
    top:-22px;
    width:182px;
    height:auto;
    margin:0;
    transform:rotate(2.5deg);
  }
  #sv-top .sv-plan-formula{
    gap:12px;
  }
  #sv-top .sv-fbox{
    font-size:22px;
    border-radius:5px;
    gap:7px;
    padding:9px 12px;
  }
  #sv-top .sv-fbox svg{
    width:22px;
    height:22px;
  }
  #sv-top .sv-fx{
    font-size:28px;
  }
  #sv-top .sv-fkara{
    font-size:22px;
  }
  #sv-top .sv-plan-aim{
    margin-top:16px;
    font-size:25px;
  }
  #sv-top .sv-plan-aim strong{
    font-size:32px;
  }
  #sv-top .sv-plan-pro{
    margin-top:26px;
  }
  #sv-top .sv-plan-pro span{
    font-size:45px;
    padding:6px 12px 8px;
  }
  /* CTA */
  #sv-top .sv-hero-cta{
    padding:44px 15px 36px;
  }
  #sv-top .sv-hero-cta-in{
    max-width:640px;
  }
  #sv-top .sv-cta-bubble{
    font-size:20px;
    padding:9px 18px;
    margin-left:10px;
  }
  #sv-top .sv-cta-bubble::after{
    bottom:-8px;
    width:13px;
    height:13px;
  }
  #sv-top .sv-cta-consult{
    height:86px;
    margin-top:-6px;
    border-radius:43px;
    box-shadow:0 5px 10px rgba(25,90,45,.35),inset 0 -6px 0 rgba(0,0,0,.16),inset 0 3px 3px rgba(255,255,255,.35);
  }
  #sv-top .sv-cta-consult-em{
    font-size:34px;
  }
  #sv-top .sv-cta-consult-tx{
    font-size:28px;
  }
  #sv-top .sv-cta-arrow{
    right:17px;
    width:40px;
    height:40px;
  }
  #sv-top .sv-cta-arrow::after{
    border-width:9px 0 9px 14px;
  }
  #sv-top .sv-cta-line{
    gap:10px;
    height:70px;
    margin-top:34px;
    border-width:3px;
    border-radius:35px;
    padding:0 44px 0 16px;
  }
  #sv-top .sv-line-icon{
    width:46px;
    height:46px;
  }
  #sv-top .sv-line-tx{
    font-size:23px;
  }
  #sv-top .sv-line-tx em{
    font-size:27px;
  }
  #sv-top .sv-line-free{
    font-size:19px;
    border-radius:5px;
    padding:5px 7px;
  }
  #sv-top .sv-line-arrow{
    right:14px;
    width:34px;
    height:34px;
  }
  #sv-top .sv-line-arrow::after{
    border-width:7px 0 7px 11px;
  }
  #sv-top .sv-cta-note{
    margin-top:15px;
    font-size:15px;
  }
}

/* ================================================
   セクション02 CTAバー(PC専用) (02_ctabar.html)
   ================================================ */
/* ===== 02 CTAバー(PC専用) ===== */
#sv-top .sv-sec.sv-ctabar{
  display:none; /* モバイルでは非表示 */
}
@media (min-width:701px){
  #sv-top .sv-sec.sv-ctabar{
    display:block;
    background:#fdf7dd;
    font-family:sans-serif;
    padding:46px 15px 20px;
    box-sizing:border-box;
  }
  #sv-top .sv-ctabar *,
#sv-top .sv-ctabar *::before,
#sv-top .sv-ctabar *::after{
    box-sizing:border-box;
  }
  #sv-top .sv-ctabar-inner{
    max-width:950px;
    margin:0 auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:15px;
    padding:0 16px;
  }
  /* ---- 左:無料相談ボタン ---- */
  #sv-top .sv-ctabar-btn-consult{
    position:relative;
    flex:1 1 440px;
    min-width:0;
    height:76px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:38px;
    background:linear-gradient(180deg,#83c287 0%,#5aac63 13%,#4b9e54 26%,#3d8542 60%,#2b5d28 100%);
    box-shadow:inset 0 2px 2px rgba(255,255,255,.35),0 3px 6px rgba(90,100,50,.4);
    text-decoration:none;
    line-height:1;
    white-space:nowrap;
  }
  #sv-top .sv-ctabar-btn-consult:hover{opacity:.9;}
  #sv-top .sv-ctabar-consult-em{
    font-size:35px;
    font-weight:700;
    color:#f8de4b;
    letter-spacing:.01em;
  }
  #sv-top .sv-ctabar-consult-txt{
    font-size:28px;
    font-weight:700;
    color:#fff;
    letter-spacing:.01em;
  }
  /* 吹き出し「今からでも間に合う?」 */
  #sv-top .sv-ctabar-balloon{
    position:absolute;
    top:-27px;
    left:34px;
    background:#fff;
    color:#111;
    font-size:19px;
    font-weight:700;
    line-height:1;
    padding:9px 16px 10px;
    transform:rotate(-2.5deg);
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.12));
    white-space:nowrap;
    z-index:1;
  }
  #sv-top .sv-ctabar-balloon::after{
    content:"";
    position:absolute;
    left:84px;
    bottom:-8px;
    width:0;
    height:0;
    border-left:8px solid transparent;
    border-right:8px solid transparent;
    border-top:9px solid #fff;
  }
  /* 白丸+緑の再生矢印(左ボタン) */
  #sv-top .sv-ctabar-play{
    position:absolute;
    right:21px;
    top:50%;
    transform:translateY(-50%);
    width:24px;
    height:24px;
    border-radius:50%;
    background:#fff;
  }
  #sv-top .sv-ctabar-play::after{
    content:"";
    position:absolute;
    left:9px;
    top:7px;
    width:0;
    height:0;
    border-top:5px solid transparent;
    border-bottom:5px solid transparent;
    border-left:8px solid #418944;
  }
  /* ---- 右:LINEボタン ---- */
  #sv-top .sv-ctabar-btn-line{
    flex:1 1 461px;
    min-width:0;
    height:72px;
    display:flex;
    align-items:center;
    background:#fff;
    border:2px solid #4f9654;
    border-radius:36px;
    padding:0 20px 0 24px;
    box-shadow:0 3px 5px rgba(120,120,80,.3);
    text-decoration:none;
    line-height:1;
    white-space:nowrap;
  }
  #sv-top .sv-ctabar-btn-line:hover{opacity:.9;}
  #sv-top .sv-ctabar-lineicon{
    flex:0 0 40px;
    display:block;
  }
  #sv-top .sv-ctabar-line-copy{
    display:flex;
    align-items:baseline;
    margin-left:16px;
  }
  #sv-top .sv-ctabar-line-em{
    font-size:25px;
    font-weight:700;
    color:#5db966;
    letter-spacing:.02em;
  }
  #sv-top .sv-ctabar-line-sm{
    font-size:18px;
    font-weight:700;
    color:#5db966;
  }
  #sv-top .sv-ctabar-line-txt{
    font-size:20px;
    font-weight:700;
    color:#111;
    letter-spacing:.02em;
  }
  #sv-top .sv-ctabar-free{
    margin-left:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:50px;
    height:30px;
    border:2px solid #db5c92;
    border-radius:8px;
    background:#fff;
    color:#db5c92;
    font-size:18px;
    font-weight:700;
  }
  /* 緑丸+白の再生矢印(右ボタン) */
  #sv-top .sv-ctabar-play-g{
    position:relative;
    margin-left:auto;
    flex:0 0 24px;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#4fa658;
  }
  #sv-top .sv-ctabar-play-g::after{
    content:"";
    position:absolute;
    left:9px;
    top:7px;
    width:0;
    height:0;
    border-top:5px solid transparent;
    border-bottom:5px solid transparent;
    border-left:8px solid #fff;
  }
  /* ---- 下のキャプション ---- */
  #sv-top .sv-ctabar-note{
    margin:16px 0 0;
    text-align:center;
    font-size:15px;
    color:#111;
    line-height:1.4;
  }
}

/* ================================================
   セクション03 論述式中心の編入・院試は「正解」が見えにくい (03_dark.html)
   ================================================ */
#sv-top .sv-dark{
  background:#414141 url(assets/sv-dark-04.png) repeat left top;
  background-size:270px 70px;
  padding:0 0 34px;
  font-family:sans-serif;
  line-height:1.5;
}
#sv-top .sv-dark *{margin:0;padding:0;box-sizing:border-box}
#sv-top .sv-dark .sv-dark-serif{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif}

/* ---------- intro (dark block + exam lead strip) ---------- */
#sv-top .sv-dark-introBlock{
  max-width:800px;
  margin:0 auto;
  container-type:inline-size;
}
#sv-top .sv-dark-introMain{
  position:relative;
  z-index:2;
  background:#2e2e2e;
  min-height:49.5cqw;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 5.7cqw),50% 100%,0 calc(100% - 5.7cqw));
  overflow:hidden;
}
#sv-top .sv-dark-introPhoto{
  position:absolute;
  left:0;top:0;
  width:40%;height:100%;
  object-fit:cover;
  object-position:top;
  -webkit-mask-image:linear-gradient(90deg,#000 62%,transparent 96%);
  mask-image:linear-gradient(90deg,#000 62%,transparent 96%);
}
#sv-top .sv-dark-introMain::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:36%;height:30%;
  background:linear-gradient(180deg,rgba(46,46,46,0) 0%,#2e2e2e 80%);
}
#sv-top .sv-dark-introTxt{
  position:relative;
  margin-left:34%;
  padding:6.6cqw 3cqw 9cqw 0;
  text-align:center;
}
#sv-top .sv-dark-title{font-weight:400}
#sv-top .sv-dark-titleSub{
  display:block;
  color:#fff;
  font-size:21px;font-size:3.74cqw;
  font-weight:700;
  line-height:1.45;
  letter-spacing:0.25cqw;
}
#sv-top .sv-dark-titleMain{
  display:inline-block;
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:27px;font-size:4.85cqw;
  font-weight:600;
  line-height:1.45;
  letter-spacing:0.3cqw;
  border-bottom:2px solid #fff;
  padding-bottom:1.2cqw;
  margin-top:0.5cqw;
}
#sv-top .sv-dark-dakara{
  color:#fff;
  font-size:17px;font-size:3cqw;
  font-weight:500;
  line-height:1.95;
  letter-spacing:0.3cqw;
  margin-top:4.3cqw;
}
#sv-top .sv-dark-examLead{
  background:#e9eef4 url(assets/sv-dark-02.png) center/cover no-repeat;
  margin-top:-5.7cqw;
  padding:12.9cqw 2cqw 2.2cqw;
  text-align:center;
  color:#1c1c1c;
  font-size:24px;font-size:4.27cqw;
  font-weight:600;
  letter-spacing:0.15cqw;
}

/* ---------- 2col : colA(boxes) / colB(shikamo) ---------- */
#sv-top .sv-dark-2col{max-width:1240px;margin:0 auto}
#sv-top .sv-dark-colA{
  container-type:inline-size;
  background:#eef1f5 url(assets/sv-dark-03.png) center/cover no-repeat;
  text-align:center;
  padding:3.4cqw 2cqw 3.2cqw;
}
#sv-top .sv-dark-boxRow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2.6cqw;
}
#sv-top .sv-dark-box{
  display:inline-block;
  background:#fff;
  border:1px solid #4c4c4c;
  color:#1f1f1f;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:27px;font-size:4.8cqw;
  font-weight:600;
  letter-spacing:0.25cqw;
  line-height:1;
  padding:1.85cqw 3.2cqw;
}
#sv-top .sv-dark-plus{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:8.2cqw;height:8.2cqw;
  border-radius:50%;
  background:#686868;
  color:#fff;
  font-size:26px;font-size:5.4cqw;
  font-weight:500;
  line-height:1;
}
#sv-top .sv-dark-shiken{
  margin-top:2.9cqw;
  color:#1f1f1f;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:30px;font-size:5.35cqw;
  font-weight:600;
  letter-spacing:0.4cqw;
}
#sv-top .sv-dark-colB{
  container-type:inline-size;
  text-align:center;
  padding:0 2cqw 4cqw;
}
#sv-top .sv-dark-shikamo{
  display:inline-block;
  background:#333;
  color:#fff;
  font-size:20px;font-size:3.56cqw;
  font-weight:500;
  letter-spacing:0.6cqw;
  padding:1.3cqw 4.3cqw;
}
#sv-top .sv-dark-netLine{
  margin-top:6.9cqw;
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:29px;font-size:5.2cqw;
  font-weight:500;
  letter-spacing:0.15cqw;
  line-height:1.55;
}
#sv-top .sv-dark-crimson{
  font-style:normal;
  background:#bf1a51;
  color:#fff;
  padding:0.7cqw 1.2cqw;
  margin:0 0.9cqw;
}
#sv-top .sv-dark-hotondo{
  margin-top:2.4cqw;
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:39px;font-size:6.9cqw;
  font-weight:500;
  letter-spacing:0.1cqw;
  line-height:1.4;
}
#sv-top .sv-dark-hotondo span{
  display:inline-block;
  border-bottom:1px solid #dadada;
  padding:0 1cqw 2.6cqw;
}

/* ---------- walls heading ---------- */
#sv-top .sv-dark-wallsHead{
  container-type:inline-size;
  max-width:620px;
  margin:10px auto 0;
  text-align:center;
}
#sv-top .sv-dark-wallsSub{
  color:#fff;
  font-size:17px;font-size:3cqw;
  font-weight:500;
  letter-spacing:0.5cqw;
}
#sv-top .sv-dark-wallsTitle{
  margin-top:1.2cqw;
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","MS PMincho",serif;
  font-size:31px;font-size:5.5cqw;
  font-weight:600;
  letter-spacing:0.35cqw;
  line-height:1.4;
}
#sv-top .sv-dark-goldline{
  background:linear-gradient(transparent calc(100% - 1.8cqw),#9e8f35 calc(100% - 1.8cqw));
  padding:0 0.4cqw 0.9cqw;
}
#sv-top .sv-dark-wallsHead::after{
  content:"";
  display:block;
  width:1px;height:8cqw;
  background:#a6a6a6;
  margin:3.6cqw auto 0;
}

/* ---------- 4 wall cards ---------- */
#sv-top .sv-dark-grid{max-width:1240px;margin:0 auto}
#sv-top .sv-dark-card{
  position:relative;
  overflow:hidden;
  container-type:inline-size;
  background:#646464;
}
#sv-top .sv-dark-card1{aspect-ratio:562/284}
#sv-top .sv-dark-card2{aspect-ratio:562/382}
#sv-top .sv-dark-card3{aspect-ratio:562/272}
#sv-top .sv-dark-card4{aspect-ratio:562/366}
#sv-top .sv-dark-cardBg{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
#sv-top .sv-dark-cardNum{
  position:absolute;
  color:#fff;
  font-family:"Times New Roman","Hiragino Mincho ProN",serif;
  font-size:66px;font-size:11.7cqw;
  font-weight:400;
  line-height:1;
  letter-spacing:0.4cqw;
}
#sv-top .sv-dark-card1 .sv-dark-cardNum{left:4.4cqw;top:7.3cqw}
#sv-top .sv-dark-card2 .sv-dark-cardNum{right:8cqw;top:5.3cqw}
#sv-top .sv-dark-card3 .sv-dark-cardNum{left:3.9cqw;top:-0.7cqw}
#sv-top .sv-dark-card4 .sv-dark-cardNum{right:0.5cqw;top:-1cqw}
#sv-top .sv-dark-cardTxt{position:absolute}
#sv-top .sv-dark-card1 .sv-dark-cardTxt{left:37.7cqw;top:13.9cqw;right:1cqw}
#sv-top .sv-dark-card2 .sv-dark-cardTxt{left:4.1cqw;top:21cqw;right:1cqw}
#sv-top .sv-dark-card3 .sv-dark-cardTxt{left:38cqw;top:5cqw;right:0.5cqw}
#sv-top .sv-dark-card4 .sv-dark-cardTxt{left:3.7cqw;top:17.5cqw;right:1cqw}
#sv-top .sv-dark-cardTxt h3{font-weight:700}
#sv-top .sv-dark-cardTxt h3 span{
  display:table;
  background:#fff;
  color:#111;
  font-size:23px;font-size:4.1cqw;
  line-height:1.4;
  letter-spacing:0.1cqw;
  padding:0.6cqw 2.3cqw;
}
#sv-top .sv-dark-cardTxt h3 span + span{margin-top:0.6cqw}
#sv-top .sv-dark-cardTxt p{
  color:#fff;
  font-size:22px;font-size:3.9cqw;
  font-weight:500;
  line-height:1.62;
  letter-spacing:0.05cqw;
  padding-left:0.4cqw;
}
#sv-top .sv-dark-card1 .sv-dark-cardTxt p{margin-top:2.6cqw}
#sv-top .sv-dark-card2 .sv-dark-cardTxt p{margin-top:2.3cqw}
#sv-top .sv-dark-card3 .sv-dark-cardTxt p{margin-top:5cqw}
#sv-top .sv-dark-card4 .sv-dark-cardTxt p{margin-top:3cqw}
#sv-top .sv-dark-cardTxt em{
  font-style:normal;
  color:#f5e68d;
  font-weight:700;
}

/* ---------- PC ---------- */
@media (min-width:701px){
  #sv-top .sv-dark{padding:56px 40px 64px}
  #sv-top .sv-dark-introBlock{margin-bottom:40px}
  #sv-top .sv-dark-2col{
    display:flex;
    flex-wrap:wrap;
    gap:32px;
    justify-content:center;
    align-items:center;
    margin-bottom:44px;
  }
  #sv-top .sv-dark-colA,
#sv-top .sv-dark-colB{
    flex:1 1 440px;
    min-width:340px;
    max-width:590px;
  }
  #sv-top .sv-dark-wallsHead{margin:0 auto 36px}
  #sv-top .sv-dark-wallsHead::after{height:7cqw;margin-top:3.2cqw}
  #sv-top .sv-dark-grid{
    display:flex;
    flex-wrap:wrap;
    gap:26px;
    justify-content:center;
    align-items:flex-start;
  }
  #sv-top .sv-dark-card{
    flex:1 1 calc(50% - 26px);
    min-width:360px;
    max-width:590px;
    border-radius:8px;
  }
}

/* ================================================
   セクション04 その「わからない」一つひとつに、答えを提示します (04_answers.html)
   ================================================ */
#sv-top .sv-answers{background:#FFF7E9;padding:0 0 48px;font-family:sans-serif;color:#101010;}
#sv-top .sv-answers *,
#sv-top .sv-answers *::before,
#sv-top .sv-answers *::after{box-sizing:border-box;}
/* ---- header ---- */
#sv-top .sv-ans-head{margin:0 auto 36px;}
#sv-top .sv-ans-band{margin:0;position:relative;background:linear-gradient(90deg,#ED5087,#C21E55);color:#fff;font-size:16px;line-height:1.2;letter-spacing:.05em;text-align:center;padding:10px 10px 11px;}
#sv-top .sv-ans-band strong{font-weight:700;}
#sv-top .sv-ans-band::after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:10px solid #D7366D;}
#sv-top .sv-ans-panel{background-color:#fff;background-image:linear-gradient(#D6E4F4 1px,transparent 1px),linear-gradient(90deg,#D6E4F4 1px,transparent 1px);background-size:34px 34px;min-height:127px;display:flex;align-items:center;justify-content:center;padding:24px 12px;}
#sv-top .sv-ans-panel h2{margin:0;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho",serif;font-weight:600;font-size:25px;line-height:1.3;color:#101010;letter-spacing:.04em;text-align:center;}
#sv-top .sv-ans-big{position:relative;display:inline-block;font-size:45px;font-weight:700;line-height:1;letter-spacing:.02em;}
#sv-top .sv-ans-big img{position:absolute;left:-13px;bottom:-14px;width:105px;height:15px;max-width:none;}
/* ---- cards ---- */
#sv-top .sv-ans-list{margin:0;padding:0;}
#sv-top .sv-ans-item{margin:0 0 36px;}
#sv-top .sv-ans-item:last-child{margin-bottom:0;}
#sv-top .sv-ans-label{display:flex;align-items:center;gap:14px;min-height:40px;margin:0 0 20px;}
#sv-top .sv-ans-badge{flex:none;width:106px;height:40px;background:linear-gradient(90deg,#ED5087,#C42057);clip-path:polygon(0 0,86% 0,100% 55%,78% 100%,0 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding-right:16px;line-height:1;}
#sv-top .sv-ans-badge-s{font-size:13px;}
#sv-top .sv-ans-badge-n{font-size:22px;font-weight:700;margin-left:2px;}
#sv-top .sv-ans-title{margin:0;font-size:20px;font-weight:700;line-height:1.3;letter-spacing:.02em;color:#101010;}
#sv-top .sv-ans-card{background:#fff;margin:0 15px;padding:22px 18px 26px;}
#sv-top .sv-ans-lead{margin:0 0 12px;text-align:center;color:#E43270;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho",serif;font-weight:600;font-size:25px;line-height:1.6;letter-spacing:.03em;}
#sv-top .sv-ans-photo{margin:0;position:relative;}
#sv-top .sv-ans-photo img{display:block;width:100%;height:auto;}
#sv-top .sv-ans-tlabel{position:absolute;bottom:5.5%;background:#fff;color:#101010;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho",serif;font-weight:600;font-size:15px;line-height:1;letter-spacing:.02em;white-space:nowrap;padding:4px 7px 5px;}
#sv-top .sv-ans-tlabel small{font-size:10px;}
#sv-top .sv-ans-tlabel--1{left:5.5%;}
#sv-top .sv-ans-tlabel--2{left:41.5%;}
#sv-top .sv-ans-tlabel--3{left:75%;}
#sv-top .sv-ans-text{margin:20px 0 0;font-size:15px;line-height:1.7;letter-spacing:.02em;color:#101010;}
#sv-top .sv-ans-text strong{font-weight:700;}
/* ---- PC ---- */
@media (min-width:701px){
  #sv-top .sv-answers{padding-bottom:56px;}
  #sv-top .sv-ans-head{max-width:440px;margin-bottom:44px;}
  #sv-top .sv-ans-list{display:flex;flex-wrap:wrap;justify-content:center;column-gap:18px;row-gap:44px;max-width:1200px;margin:0 auto;padding:0 20px;}
  #sv-top .sv-ans-item{display:flex;flex-direction:column;width:calc((100% - 36px)/3);margin:0;}
  #sv-top .sv-ans-card{flex:1;margin:0;}
}

/* ================================================
   セクション05 合否を分けるのは才能ではなく戦略 (05_strategy.html)
   ================================================ */
/* ===== 05: 戦略セクション ===== */
#sv-top .sv-strategy{
  position:relative;
  font-family:sans-serif;
  color:#333;
  text-align:center;
  background-color:#fff;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 1100' preserveAspectRatio='xMidYMid slice'><g fill='none' stroke='%23bcd9f8' stroke-width='1.3'><path d='M-30 90 L120 30 L60 190 L-30 90 M120 30 L250 120 L60 190 M250 120 L180 260 L60 190' opacity='.55'/><path d='M-40 480 L90 420 L140 560 L-10 620 Z M90 420 L230 470 L140 560' opacity='.45'/><path d='M40 880 L170 950 L60 1060 Z M170 950 L300 1010' opacity='.4'/><path d='M1240 40 L1380 110 L1300 220 Z M1380 110 L1470 60 M1380 110 L1450 230' opacity='.5'/><path d='M1330 500 L1440 580 L1290 640 Z M1440 580 L1470 700' opacity='.4'/><path d='M1180 950 L1320 890 L1400 1010 L1250 1080 Z M1320 890 L1400 1010' opacity='.5'/></g><g fill='%23a8d0f7' opacity='.6'><circle cx='120' cy='30' r='5'/><circle cx='60' cy='190' r='4'/><circle cx='250' cy='120' r='6'/><circle cx='180' cy='260' r='3.5'/><circle cx='90' cy='420' r='5'/><circle cx='140' cy='560' r='4'/><circle cx='230' cy='470' r='3.5'/><circle cx='-10' cy='620' r='4'/><circle cx='170' cy='950' r='5'/><circle cx='60' cy='1060' r='3.5'/><circle cx='300' cy='1010' r='4'/><circle cx='1240' cy='40' r='4'/><circle cx='1380' cy='110' r='6'/><circle cx='1300' cy='220' r='4'/><circle cx='1450' cy='230' r='3.5'/><circle cx='1330' cy='500' r='4'/><circle cx='1440' cy='580' r='5'/><circle cx='1290' cy='640' r='3.5'/><circle cx='1180' cy='950' r='4'/><circle cx='1320' cy='890' r='5'/><circle cx='1400' cy='1010' r='4'/><circle cx='1250' cy='1080' r='3.5'/></g></svg>");
  background-size:cover;
  background-position:center top;
  padding:44px 0 0;
  overflow:hidden;
}
#sv-top .sv-strategy-title{
  margin:0;
  padding:0 15px;
  line-height:1;
}
#sv-top .sv-strategy-badge{
  display:inline-block;
  background:linear-gradient(90deg,#e75085 0%,#ba144c 100%);
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.05em;
  line-height:1;
  padding:5px 12px;
}
#sv-top .sv-strategy-sub{
  display:block;
  margin-top:13px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:36px;
  letter-spacing:.05em;
  line-height:1.15;
  color:#111;
}
#sv-top .sv-strategy-main{
  display:block;
  margin-top:8px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:108px;
  letter-spacing:.3em;
  text-indent:.3em;
  line-height:1.05;
  color:#7f7737;
  background:linear-gradient(180deg,#4e4c4f 0%,#5c595b 18%,#6b6758 55%,#7c744a 80%,#857b33 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
#sv-top .sv-strategy-points{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:11px;
  list-style:none;
  margin:19px auto 0;
  padding:0 21px;
  max-width:560px;
}
#sv-top .sv-strategy-point{
  width:calc(50% - 5.5px);
  box-sizing:border-box;
  background:#fbfbfb;
  border:1px solid #ddd;
  padding:17px 4px 15px;
}
#sv-top .sv-strategy-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#897e29;
  color:#fff;
  font-size:12px;
  font-weight:700;
  line-height:1;
}
#sv-top .sv-strategy-point-title{
  margin:8px 0 0;
  font-size:13px;
  font-weight:500;
  line-height:1.7;
  color:#333;
}
#sv-top .sv-strategy-photo{
  margin:80px 0 0;
}
#sv-top .sv-strategy-photo img{
  display:block;
  width:100%;
  height:auto;
}

@media (min-width:701px){
  #sv-top .sv-strategy{
    padding:70px 0 0;
  }
  #sv-top .sv-strategy-badge{
    font-size:26px;
    padding:14px 60px;
  }
  #sv-top .sv-strategy-sub{
    margin-top:22px;
    font-size:72px;
    letter-spacing:.06em;
  }
  #sv-top .sv-strategy-main{
    margin-top:6px;
    font-size:clamp(150px,15.5vw,228px);
    letter-spacing:.5em;
    text-indent:.5em;
  }
  #sv-top .sv-strategy-points{
    gap:20px 49px;
    max-width:1244px;
    margin-top:56px;
    padding:0 30px;
  }
  #sv-top .sv-strategy-point{
    width:calc((100% - 98px)/3);
    padding:33px 10px 28px;
  }
  #sv-top .sv-strategy-num{
    width:45px;
    height:45px;
    font-size:24px;
  }
  #sv-top .sv-strategy-point-title{
    margin:22px 0 0;
    font-size:21px;
    line-height:1.75;
  }
  #sv-top .sv-strategy-photo{
    margin-top:95px;
  }
}

/* ================================================
   セクション06 科目ごとのプロ講師チームで合格をサポート (06_teachers.html)
   ================================================ */
/* ===== 06 科目ごとのプロ講師チーム ===== */
#sv-top .sv-teachers{
  --u: calc(100vw / 375);
  background:#fff;
  font-family:sans-serif;
  color:#222;
  padding:0 0 calc(26 * var(--u));
  overflow:hidden;
}
#sv-top .sv-teachers .sv-thero{position:relative;}
#sv-top .sv-teachers .sv-tpc{display:none;}

/* ピンク帯バッジ */
#sv-top .sv-teachers .sv-tbadge{
  margin:calc(-6 * var(--u)) calc(12 * var(--u)) 0;
  background:linear-gradient(90deg,#e65185 0%,#c6295e 100%);
  transform:skewX(-14deg);
  position:relative;
  z-index:2;
}
#sv-top .sv-teachers .sv-tbadge span{
  display:block;
  transform:skewX(14deg);
  color:#fff;
  font-weight:bold;
  font-size:calc(15 * var(--u));
  letter-spacing:calc(1 * var(--u));
  text-align:center;
  padding:calc(7 * var(--u)) calc(4 * var(--u));
}

/* 見出し */
#sv-top .sv-teachers .sv-ttitle{
  margin:calc(14 * var(--u)) 0 0;
  font-family:"Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-weight:600;
  color:#111;
  text-align:center;
}
#sv-top .sv-teachers .sv-tline1{
  display:block;
  font-size:calc(23 * var(--u));
  line-height:1.7;
  letter-spacing:calc(1 * var(--u));
}
#sv-top .sv-teachers .sv-tem{
  -webkit-text-emphasis:filled dot #e0517f;
  text-emphasis:filled dot #e0517f;
}
#sv-top .sv-teachers .sv-tsm{font-size:0.72em;}
#sv-top .sv-teachers .sv-tline2{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:calc(6 * var(--u));
  margin-top:calc(4 * var(--u));
  white-space:nowrap;
}
#sv-top .sv-teachers .sv-tlaurel{
  width:calc(46 * var(--u));
  height:calc(111 * var(--u));
}
#sv-top .sv-teachers .sv-tlaurel-r{transform:scaleX(-1);}
#sv-top .sv-teachers .sv-tgold{
  font-size:calc(55 * var(--u));
  line-height:1;
  color:#b39a4a;
  background:linear-gradient(180deg,#dbc57c 0%,#c2a95e 45%,#a08636 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
#sv-top .sv-teachers .sv-twosapo{
  font-size:calc(24 * var(--u));
  letter-spacing:calc(1 * var(--u));
  color:#111;
  transform:translateY(12%);
}

/* 受験分野・志望系統 */
#sv-top .sv-teachers .sv-tfit{
  position:relative;
  margin:calc(30 * var(--u)) calc(16 * var(--u)) calc(62 * var(--u));
}
#sv-top .sv-teachers .sv-ttags{
  display:flex;
  align-items:center;
  margin:0;
  position:relative;
  z-index:2;
}
#sv-top .sv-teachers .sv-ttag{
  display:inline-block;
  background:#e65183;
  color:#fff;
  font-weight:bold;
  font-size:calc(14 * var(--u));
  letter-spacing:calc(1 * var(--u));
  padding:calc(5 * var(--u)) calc(15 * var(--u));
  border-radius:calc(3 * var(--u));
  margin-right:calc(8 * var(--u));
}
#sv-top .sv-teachers .sv-tni{
  font-size:calc(15 * var(--u));
  font-weight:bold;
  color:#111;
  margin-left:calc(4 * var(--u));
}
#sv-top .sv-teachers .sv-ttxt{
  position:relative;
  z-index:2;
  margin:calc(13 * var(--u)) 0 0;
  font-size:calc(15 * var(--u));
  line-height:1.5;
  color:#222;
}
#sv-top .sv-teachers .sv-tsuit-sp{
  position:absolute;
  top:calc(-57 * var(--u));
  right:calc(-16 * var(--u));
  width:calc(111 * var(--u));
  height:calc(198 * var(--u));
  z-index:1;
}

/* 専門講師チーム例 */
#sv-top .sv-teachers .sv-ttname{
  display:flex;
  align-items:center;
  gap:calc(14 * var(--u));
  margin:0 calc(15 * var(--u));
  font-size:calc(17 * var(--u));
  font-weight:bold;
  letter-spacing:calc(4 * var(--u));
  color:#222;
}
#sv-top .sv-teachers .sv-ttname::before,
#sv-top .sv-teachers .sv-ttname::after{
  content:"";
  flex:1;
  height:1px;
  background:#555;
}
#sv-top .sv-teachers .sv-ttable{
  width:calc(100% - 30 * var(--u));
  margin:calc(14 * var(--u)) calc(15 * var(--u)) 0;
  border-collapse:collapse;
  background:#fff;
}
#sv-top .sv-teachers .sv-ttable th,
#sv-top .sv-teachers .sv-ttable td{
  border:1px solid #8f8f8f;
  vertical-align:middle;
}
#sv-top .sv-teachers .sv-ttable th{
  width:calc(34 * var(--u));
  background:#f0f0f0;
  color:#333;
  font-weight:500;
  font-size:calc(13 * var(--u));
  letter-spacing:calc(2 * var(--u));
  -ms-writing-mode:tb-rl;
  writing-mode:vertical-rl;
  text-align:center;
  padding:calc(6 * var(--u)) 0;
}
#sv-top .sv-teachers .sv-ttable td{
  font-size:calc(14.5 * var(--u));
  line-height:1.55;
  color:#222;
  padding:calc(12 * var(--u)) calc(4 * var(--u)) calc(12 * var(--u)) calc(11 * var(--u));
}

/* 「さらに」帯はセクション07(roster)側の冒頭に存在するため、重複回避でこちらには置かない */

/* ============ PC ============ */
@media (min-width:701px){
  #sv-top .sv-teachers{
    --u: calc(min(100vw, 1448px) / 1448);
    background:#f9f9f9;
    padding-bottom:calc(70 * var(--u));
  }
  #sv-top .sv-teachers .sv-tinner{max-width:1448px;margin:0 auto;}
  #sv-top .sv-teachers .sv-tpc{display:block;}
  #sv-top .sv-teachers .sv-tsp{display:none;}
  #sv-top .sv-teachers .sv-thero{height:calc(660 * var(--u));}
  #sv-top .sv-teachers .sv-tcollage{
    position:absolute;
    left:0;
    top:calc(60 * var(--u));
    width:calc(688 * var(--u));
    height:calc(596 * var(--u));
  }
  #sv-top .sv-teachers .sv-tsuit-pc{
    position:absolute;
    top:calc(420 * var(--u));
    right:0;
    width:calc(376 * var(--u));
    height:calc(350 * var(--u));
    z-index:3;
  }
  #sv-top .sv-teachers .sv-thead{
    position:absolute;
    left:calc(688 * var(--u));
    right:0;
    top:0;
    padding-right:calc(52 * var(--u));
    text-align:center;
  }
  #sv-top .sv-teachers .sv-tbadge{
    display:inline-block;
    margin:calc(56 * var(--u)) 0 0;
  }
  #sv-top .sv-teachers .sv-tbadge span{
    font-size:calc(28 * var(--u));
    letter-spacing:calc(2 * var(--u));
    padding:calc(10 * var(--u)) calc(34 * var(--u));
  }
  #sv-top .sv-teachers .sv-ttitle{margin-top:calc(10 * var(--u));}
  #sv-top .sv-teachers .sv-tline1{
    font-size:calc(52 * var(--u));
    line-height:1.55;
  }
  #sv-top .sv-teachers .sv-tline2{
    gap:calc(10 * var(--u));
    margin-top:calc(6 * var(--u));
  }
  #sv-top .sv-teachers .sv-tlaurel{
    width:calc(83 * var(--u));
    height:calc(200 * var(--u));
  }
  #sv-top .sv-teachers .sv-tgold{font-size:calc(150 * var(--u));}
  #sv-top .sv-teachers .sv-twosapo{
    font-size:calc(46 * var(--u));
    letter-spacing:calc(4 * var(--u));
  }
  #sv-top .sv-teachers .sv-tfit{
    margin:calc(58 * var(--u)) 0 0 calc(52 * var(--u));
    text-align:left;
  }
  #sv-top .sv-teachers .sv-ttag{
    font-size:calc(26 * var(--u));
    letter-spacing:calc(2 * var(--u));
    padding:calc(8 * var(--u)) calc(22 * var(--u));
    margin-right:calc(28 * var(--u));
  }
  #sv-top .sv-teachers .sv-tni{
    font-size:calc(30 * var(--u));
    margin-left:0;
  }
  #sv-top .sv-teachers .sv-ttxt{
    font-size:calc(28 * var(--u));
    line-height:1.45;
    margin-top:calc(18 * var(--u));
  }
  #sv-top .sv-teachers .sv-ttname{
    max-width:calc(830 * var(--u));
    margin:calc(40 * var(--u)) auto 0;
    gap:calc(24 * var(--u));
    font-size:calc(30 * var(--u));
    letter-spacing:calc(8 * var(--u));
  }
  #sv-top .sv-teachers .sv-ttable{
    width:calc(1286 * var(--u));
    margin:calc(30 * var(--u)) auto 0;
  }
  #sv-top .sv-teachers .sv-ttable th{
    width:calc(256 * var(--u));
    font-size:calc(28 * var(--u));
    letter-spacing:calc(4 * var(--u));
    -ms-writing-mode:lr-tb;
    writing-mode:horizontal-tb;
    padding:0;
  }
  #sv-top .sv-teachers .sv-ttable td{
    font-size:calc(29 * var(--u));
    padding:calc(20 * var(--u)) calc(20 * var(--u)) calc(20 * var(--u)) calc(44 * var(--u));
  }
  #sv-top .sv-teachers .sv-tbr-sp{display:none;}
}

/* ================================================
   セクション07 200名を超える講師が在籍(roster) (07_roster.html)
   ================================================ */
/* ===== 07: 200名を超える講師が在籍セクション ===== */
#sv-top .sv-roster{
  font-family:sans-serif;
  color:#333;
  text-align:center;
}
#sv-top .sv-roster ul{list-style:none;margin:0;padding:0;}

/* --- 導入(薄ブルー) --- */
#sv-top .sv-roster-intro{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#fefeff 0%,#f4f9fe 38%,#e2eefb 100%);
  padding:18px 15px 34px;
}
#sv-top .sv-roster-intro::before{
  content:"";
  position:absolute;
  left:-30%;top:-30%;width:160%;height:160%;
  background:conic-gradient(rgba(157,201,242,.22) 25%,transparent 0 50%,rgba(157,201,242,.11) 0 75%,transparent 0);
  background-size:44px 44px;
  transform:rotate(38deg);
  pointer-events:none;
}
#sv-top .sv-roster-intro::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 28%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.5) 55%,rgba(255,255,255,0) 100%);
  pointer-events:none;
}
#sv-top .sv-roster-intro > *{position:relative;z-index:1;}
#sv-top .sv-roster-sarani{
  display:inline-block;
  margin:0;
  background:#6b6b6b;
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:.15em;
  line-height:1;
  padding:8px 20px 17px;
  clip-path:polygon(0 0,100% 0,100% 62%,50% 100%,0 62%);
}
#sv-top .sv-roster-lead{
  margin:13px 0 0;
  font-size:15px;
  font-weight:500;
  color:#222;
  letter-spacing:.04em;
}
#sv-top .sv-roster-copy{
  margin:6px 0 0;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:23px;
  line-height:1.55;
  letter-spacing:.02em;
  color:#111;
}
#sv-top .sv-roster-copy em{
  font-style:normal;
  background:#d8477e;
  color:#fff;
  padding:1px 6px 2px;
  margin:0 3px;
}
#sv-top .sv-roster-sub{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:20px 0 0;
  font-size:15px;
  font-weight:700;
  letter-spacing:.1em;
  color:#333;
}
#sv-top .sv-roster-sub::before,
#sv-top .sv-roster-sub::after{
  content:"";
  width:32px;
  height:1px;
  background:#444;
}

/* --- 講師カード --- */
#sv-top .sv-roster-cards{
  display:grid;
  gap:12px;
  margin:20px auto 0;
  max-width:520px;
}
#sv-top .sv-roster-card{
  display:flex;
  align-items:center;
  gap:16px;
  background:#fff;
  border:2px solid #ee9ebe;
  border-radius:10px;
  padding:11px;
  text-align:left;
}
#sv-top .sv-roster-photo{
  width:29%;
  max-width:133px;
  height:auto;
  flex-shrink:0;
  border-radius:4px;
}
#sv-top .sv-roster-name{
  margin:0;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:700;
  font-size:21px;
  letter-spacing:.06em;
  color:#111;
}
#sv-top .sv-roster-tags{
  margin-top:9px;
  font-size:14px;
  line-height:1.9;
  color:#444;
}
#sv-top .sv-roster-tags li{
  position:relative;
  padding-left:14px;
}
#sv-top .sv-roster-tags li::before{
  content:"";
  position:absolute;
  left:0;
  top:.75em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#e0497f;
}

/* --- 在籍アピール(濃ピンク・桜) --- */
#sv-top .sv-roster-appeal{
  position:relative;
  color:#fff;
  padding:26px 0 46px;
  background-color:#c93264;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 780'><defs><path id='p' d='M0 -34 C14 -20 16 2 0 16 C-16 2 -14 -20 0 -34 Z' fill='%23ffffff'/><g id='f'><use href='%23p' transform='translate(0 -20)'/><use href='%23p' transform='rotate(72) translate(0 -20)'/><use href='%23p' transform='rotate(144) translate(0 -20)'/><use href='%23p' transform='rotate(216) translate(0 -20)'/><use href='%23p' transform='rotate(288) translate(0 -20)'/></g></defs><use href='%23f' transform='translate(1070 120) scale(1.55)' opacity='.22'/><use href='%23f' transform='translate(1140 420) scale(.9) rotate(20)' opacity='.14'/><use href='%23f' transform='translate(120 560) scale(1.25) rotate(-15)' opacity='.18'/><use href='%23f' transform='translate(60 90) scale(.8) rotate(30)' opacity='.2'/><use href='%23p' transform='translate(300 60) rotate(-35) scale(1.1)' opacity='.3'/><use href='%23p' transform='translate(880 70) rotate(40)' opacity='.35'/><use href='%23p' transform='translate(960 300) rotate(-60) scale(.9)' opacity='.16'/><use href='%23p' transform='translate(200 280) rotate(70) scale(.8)' opacity='.2'/><use href='%23p' transform='translate(80 700) rotate(-20) scale(1.2)' opacity='.22'/><use href='%23p' transform='translate(420 730) rotate(45) scale(.85)' opacity='.13'/><use href='%23p' transform='translate(1000 690) rotate(-50)' opacity='.18'/><use href='%23p' transform='translate(760 740) rotate(15) scale(.7)' opacity='.15'/></svg>"),linear-gradient(90deg,#ec568b 0%,#be255a 100%);
  background-size:cover,100% 100%;
  background-position:center,center;
}
#sv-top .sv-roster-label{
  display:inline-block;
  margin:0;
  background:#fff;
  color:#d44074;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  padding:9px 22px;
  border-radius:999px;
}
#sv-top .sv-roster-big{
  margin:13px 0 0;
  padding:0 15px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:26px;
  line-height:1.5;
  letter-spacing:.04em;
  color:#fff;
}
#sv-top .sv-roster-num{
  font-size:37px;
  line-height:1;
}
#sv-top .sv-roster-grid{
  display:block;
  width:100%;
  height:auto;
  margin:20px auto 0;
}
#sv-top .sv-roster-badges{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:22px 0 0;
  padding:0 10px;
}
#sv-top .sv-roster-badge{
  display:flex;
  align-items:center;
  gap:7px;
  background:#fff;
  border-radius:8px;
  box-shadow:0 2px 3px rgba(0,0,0,.15);
  padding:9px 10px;
}
#sv-top .sv-roster-badge svg{
  width:26px;
  height:26px;
  flex-shrink:0;
}
#sv-top .sv-roster-badge span{
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.02em;
  color:#222;
  text-align:left;
}
#sv-top .sv-roster-made{
  font-size:13px;
  font-weight:700;
  color:#fff;
}
#sv-top .sv-roster-support1{
  margin:24px 0 0;
  padding:0 15px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:18px;
  letter-spacing:.06em;
  color:#fff;
}
#sv-top .sv-roster-support2{
  margin:4px 0 0;
  padding:0 15px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:600;
  font-size:23px;
  letter-spacing:.06em;
  color:#fff;
}
#sv-top .sv-roster-mk{
  position:relative;
  z-index:0;
  font-style:normal;
  font-size:28px;
  padding:0 6px;
  margin:0 2px;
}
#sv-top .sv-roster-mk::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:8px;
  background:#e7d230;
  border-radius:4px;
  transform:rotate(-1.6deg);
  z-index:-1;
}
#sv-top .sv-roster-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:24px 15px 0;
  min-height:56px;
  background:#fff;
  border-radius:10px;
  text-decoration:none;
  font-size:17px;
  font-weight:700;
  letter-spacing:.05em;
  color:#111;
}
#sv-top .sv-roster-btnarw{
  position:absolute;
  right:13px;
  top:50%;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  border-radius:50%;
  background:#e6538a;
}
#sv-top .sv-roster-btnarw::after{
  content:"";
  position:absolute;
  left:11px;
  top:8px;
  border-left:8px solid #fff;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}

/* ===== PC ===== */
@media (min-width:701px){
  #sv-top .sv-roster-intro{padding:16px 15px 40px;}
  #sv-top .sv-roster-sarani{font-size:22px;padding:12px 40px 26px;}
  #sv-top .sv-roster-lead{margin-top:16px;font-size:19px;}
  #sv-top .sv-roster-copy{margin-top:4px;font-size:42px;line-height:1.4;letter-spacing:.05em;}
  #sv-top .sv-roster-intro::before{background-size:58px 58px;}
  #sv-top .sv-roster-copy em{padding:2px 10px 3px;margin:0 5px;}
  #sv-top .sv-roster-sub{margin-top:22px;font-size:20px;gap:22px;}
  #sv-top .sv-roster-sub::before,
#sv-top .sv-roster-sub::after{width:64px;}
  #sv-top .sv-roster-cards{grid-template-columns:repeat(3,1fr);gap:13px;margin-top:32px;max-width:1058px;}
  #sv-top .sv-roster-card{gap:18px;padding:12px;}
  #sv-top .sv-roster-photo{width:40%;}
  #sv-top .sv-roster-name{font-size:25px;}
  #sv-top .sv-roster-tags{margin-top:12px;font-size:15px;line-height:2;}
  #sv-top .sv-roster-sponly{display:none;}
  #sv-top .sv-roster-appeal{padding:22px 0 30px;}
  #sv-top .sv-roster-label{font-size:21px;padding:14px 34px;}
  #sv-top .sv-roster-big{margin-top:14px;font-size:45px;}
  #sv-top .sv-roster-num{font-size:60px;}
  #sv-top .sv-roster-grid{margin-top:16px;max-width:624px;width:auto;}
  #sv-top .sv-roster-badges{margin-top:20px;gap:19px;}
  #sv-top .sv-roster-badge{gap:12px;padding:14px 24px;border-radius:9px;}
  #sv-top .sv-roster-badge svg{width:36px;height:36px;}
  #sv-top .sv-roster-badge span{font-size:19px;}
  #sv-top .sv-roster-made{font-size:18px;}
  #sv-top .sv-roster-support1{margin-top:24px;font-size:24px;}
  #sv-top .sv-roster-support2{margin-top:6px;font-size:31px;}
  #sv-top .sv-roster-mk{font-size:39px;padding:0 8px;margin:0 4px;}
  #sv-top .sv-roster-mk::after{height:10px;bottom:1px;}
  #sv-top .sv-roster-btn{width:550px;margin:24px auto 0;min-height:74px;font-size:20px;border-radius:8px;}
  #sv-top .sv-roster-btnarw{right:20px;width:29px;height:29px;}
  #sv-top .sv-roster-btnarw::after{left:12px;top:9px;border-left-width:9px;border-top-width:6px;border-bottom-width:6px;}
}

/* ================================================
   セクション08 合格実績 (08_achievements.html)
   ================================================ */
/* ===== 08 合格実績セクション ===== */
#sv-top .sv-achievements{
  font-family:sans-serif;
  background:#fff;
  color:#111;
  overflow:hidden;
}
#sv-top .sv-achievements .sv-ach-serif{
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
}

/* ---- 写真帯+円形バッジ ---- */
#sv-top .sv-ach-photos{
  position:relative;
  margin-bottom:19vw;
}
#sv-top .sv-ach-photorow{
  display:flex;
}
#sv-top .sv-ach-photorow picture,
#sv-top .sv-ach-photorow img{
  display:block;
  width:33.3334%;
  height:auto;
}
#sv-top .sv-ach-photorow picture img{width:100%;}
#sv-top .sv-ach-badges{
  list-style:none;
  margin:0;
  padding:0;
}
#sv-top .sv-ach-badge{
  position:absolute;
  bottom:-2.4vw;
  transform:translate(-50%,50%);
  width:25vw;
  height:25vw;
  background:#fff;
  border:1px solid #f6bdd1;
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  z-index:2;
}
#sv-top .sv-ach-badge:nth-child(1){left:20%;}
#sv-top .sv-ach-badge:nth-child(2){left:50.1%;}
#sv-top .sv-ach-badge:nth-child(3){left:80.2%;}
#sv-top .sv-ach-badge img{
  display:block;
  width:4.8vw;
  height:auto;
  margin-bottom:1vw;
}
#sv-top .sv-ach-badge-l1{
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  font-size:4.4vw;
  font-weight:600;
  color:#333;
  line-height:1.25;
}
#sv-top .sv-ach-badge-l2{
  font-size:2.9vw;
  color:#555;
  letter-spacing:.25em;
  text-indent:.25em;
  line-height:1.4;
}

/* ---- 導入見出し ---- */
#sv-top .sv-ach-intro{
  padding:0 16px;
  text-align:center;
}
#sv-top .sv-ach-title{
  margin:0 0 14px;
  font-size:24px;
  font-weight:600;
  color:#111;
  line-height:1.55;
}
#sv-top .sv-ach-title-em{
  color:#e23a72;
  font-size:33px;
  margin:0 2px;
}
#sv-top .sv-ach-title-em sup{
  font-size:12px;
  color:#444;
  vertical-align:top;
  position:relative;
  top:2px;
}
#sv-top .sv-ach-lead{
  margin:0;
  font-size:13.5px;
  line-height:1.8;
  color:#111;
}
#sv-top .sv-ach-note{
  margin:0;
  font-size:11px;
  color:#98968f;
  text-align:center;
}
#sv-top .sv-ach-note-sp{
  margin-top:14px;
}

/* ---- 下部(合格率+合格者数) ---- */
#sv-top .sv-ach-lower{
  display:flex;
  flex-direction:column;
  margin-top:26px;
  background:
    radial-gradient(circle at 12% 12%, rgba(255,255,255,.75), rgba(255,255,255,0) 34%),
    radial-gradient(circle at 88% 55%, rgba(255,255,255,.55), rgba(255,255,255,0) 30%),
    linear-gradient(180deg,#fcf6ea 0%,#faf1dd 100%);
  padding:26px 0 34px;
}
#sv-top .sv-ach-gold{order:1;}
#sv-top .sv-ach-results{order:2;}

/* ---- 合格率見出し ---- */
#sv-top .sv-ach-title2{
  margin:0 0 18px;
  text-align:center;
  font-size:22px;
  font-weight:600;
  color:#111;
  line-height:1.5;
}
#sv-top .sv-ach-marker{
  font-size:30px;
  margin:0 3px;
  background:linear-gradient(180deg,rgba(0,0,0,0) 58%,#f4cb02 58%,#f4cb02 94%,rgba(0,0,0,0) 94%);
  padding:0 4px;
}

/* ---- ゴールド額縁カード ---- */
#sv-top .sv-ach-rates{
  list-style:none;
  margin:0;
  padding:0 12px;
}
#sv-top .sv-ach-rate{
  position:relative;
  margin:0 auto 26px;
  max-width:420px;
  padding-top:10px;
}
#sv-top .sv-ach-ribbon{
  position:absolute;
  top:0;
  left:0;
  z-index:2;
  margin:0;
  width:66%;
  height:40px;
  background:#ea407c;
  color:#fff;
  font-weight:600;
  font-size:16px;
  letter-spacing:.1em;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  line-height:1;
}
#sv-top .sv-ach-ribbon svg{
  display:block;
  width:20px;
  height:15px;
  flex:0 0 auto;
}
#sv-top .sv-ach-ribbon::after{
  content:"";
  position:absolute;
  left:0;
  top:100%;
  width:10px;
  height:12px;
  background:#8f6f26;
  clip-path:polygon(0 0,100% 0,100% 100%);
}
#sv-top .sv-ach-ratebox{
  position:relative;
  height:140px;
  background:#fdfaf1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
#sv-top .sv-ach-ratebox::before{
  content:"";
  position:absolute;
  inset:0;
  border:40px solid transparent;
  border-image:url("assets/sv-achievements-07.png") 46 stretch;
  pointer-events:none;
}
#sv-top .sv-ach-laurel{
  display:block;
  width:auto;
  height:106px;
  flex:0 0 auto;
}
#sv-top .sv-ach-laurel-l{transform:scaleX(-1);}
#sv-top .sv-ach-rate-num{
  margin:0;
  font-size:58px;
  font-weight:600;
  color:#d6295e;
  line-height:1;
  padding-top:8px;
}
#sv-top .sv-ach-rate-num span{
  font-size:28px;
  margin-left:2px;
}
#sv-top .sv-ach-gold-note{
  font-size:11px;
  line-height:1.7;
  color:#8f8d86;
  margin:2px 12px 30px;
}

/* ---- 合格者数カード ---- */
#sv-top .sv-ach-results-label{display:none;}
#sv-top .sv-ach-results-grid{
  padding:0 16px;
}
#sv-top .sv-ach-result{
  position:relative;
  background:#fff;
  border-radius:8px;
  padding:16px 12px 18px;
  text-align:center;
  margin-bottom:16px;
  box-shadow:0 1px 4px rgba(180,150,90,.12);
}
#sv-top .sv-ach-result-laurel{
  position:absolute;
  top:50%;
  height:96px;
  width:auto;
  transform:translateY(-50%);
  opacity:.45;
}
#sv-top .sv-ach-result-laurel-l{
  left:14px;
  transform:translateY(-50%) scaleX(-1);
}
#sv-top .sv-ach-result-laurel-r{right:14px;}
#sv-top .sv-ach-result-title{
  margin:0 0 2px;
  font-size:16px;
  font-weight:600;
  color:#111;
}
#sv-top .sv-ach-result-num{
  margin:0;
  font-size:52px;
  font-weight:600;
  color:#d6295e;
  line-height:1.15;
}
#sv-top .sv-ach-result-num span{
  font-size:22px;
  margin-left:3px;
}
#sv-top .sv-ach-result-sub{
  margin:2px 0 0;
  font-size:12px;
  color:#222;
}
#sv-top .sv-ach-note-sp2{
  margin-top:6px;
}

/* 改行制御 */
#sv-top .sv-ach-br-pc{display:none;}

/* ===================== PC ===================== */
@media (min-width:701px){
  #sv-top .sv-ach-br-pc{display:inline;}
  #sv-top .sv-ach-br-sp{display:none;}

  /* 写真帯 */
  #sv-top .sv-ach-photos{margin-bottom:5.8vw;}
  #sv-top .sv-ach-badge{
    width:9.8vw;
    height:9.8vw;
    max-width:150px;
    max-height:150px;
    bottom:.78vw;
    border-width:2px;
  }
  #sv-top .sv-ach-badge:nth-child(1){left:22.2%;}
  #sv-top .sv-ach-badge:nth-child(2){left:50.3%;}
  #sv-top .sv-ach-badge:nth-child(3){left:77.3%;}
  #sv-top .sv-ach-badge img{
    width:1.85vw;
    max-width:28px;
    margin-bottom:.35vw;
  }
  #sv-top .sv-ach-badge-l1{
    font-size:1.6vw;
  }
  #sv-top .sv-ach-badge-l2{
    font-size:1.05vw;
  }

  /* 導入 */
  #sv-top .sv-ach-title{
    font-size:44px;
    margin-bottom:16px;
  }
  #sv-top .sv-ach-title-em{
    font-size:60px;
    margin:0 8px;
  }
  #sv-top .sv-ach-title-em sup{
    font-size:20px;
    top:0;
  }
  #sv-top .sv-ach-lead{
    font-size:17px;
    line-height:1.65;
  }
  #sv-top .sv-ach-note-sp{display:none;}
  #sv-top .sv-ach-note-sp2{display:none;}

  /* 下部:PCは合格者数ストリップ→ゴールド帯の順 */
  #sv-top .sv-ach-lower{
    margin-top:20px;
    padding:0;
    background:none;
  }
  #sv-top .sv-ach-results{order:1;}
  #sv-top .sv-ach-gold{
    order:2;
    background:
      radial-gradient(circle at 12% 12%, rgba(255,255,255,.75), rgba(255,255,255,0) 34%),
      radial-gradient(circle at 88% 55%, rgba(255,255,255,.55), rgba(255,255,255,0) 30%),
      linear-gradient(180deg,#fcf6ea 0%,#faf1dd 100%);
    padding:16px 0 56px;
    margin-top:10px;
  }

  /* 合格者数ストリップ */
  #sv-top .sv-ach-results{
    background:#fdf7ef;
    border-radius:12px;
    max-width:1320px;
    margin:0 auto;
    width:calc(100% - 80px);
    padding:14px 0 26px;
  }
  #sv-top .sv-ach-results-label{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    margin:0 0 8px;
    font-size:16px;
    color:#e23a72;
  }
  #sv-top .sv-ach-results-label::before,
#sv-top .sv-ach-results-label::after{
    content:"";
    height:1px;
    background:#e9739c;
    flex:0 1 400px;
  }
  #sv-top .sv-ach-results-grid{
    display:flex;
    padding:0;
  }
  #sv-top .sv-ach-result{
    flex:1;
    background:none;
    border-radius:0;
    box-shadow:none;
    padding:0 10px;
    margin:0;
  }
  #sv-top .sv-ach-result-laurel{display:none;}
  #sv-top .sv-ach-result-title{
    font-size:25px;
    margin-bottom:0;
  }
  #sv-top .sv-ach-result-num{
    font-size:82px;
    line-height:1.05;
  }
  #sv-top .sv-ach-result-num span{
    font-size:30px;
    margin-left:4px;
  }
  #sv-top .sv-ach-result-sub{
    font-size:16px;
    margin-top:0;
  }

  /* 合格率見出し */
  #sv-top .sv-ach-title2{
    font-size:35px;
    margin-bottom:14px;
  }
  #sv-top .sv-ach-marker{
    font-size:58px;
    margin:0 8px;
    padding:0 6px;
  }

  /* ゴールドカード列 */
  #sv-top .sv-ach-rates{
    display:flex;
    justify-content:center;
    gap:52px;
    padding:0 20px;
    max-width:1290px;
    margin:0 auto;
  }
  #sv-top .sv-ach-rate{
    flex:0 1 379px;
    margin:0;
    padding-top:13px;
    max-width:379px;
  }
  #sv-top .sv-ach-ribbon{
    width:78%;
    height:56px;
    font-size:31px;
    gap:12px;
  }
  #sv-top .sv-ach-ribbon svg{
    width:30px;
    height:22px;
  }
  #sv-top .sv-ach-ribbon::after{
    width:12px;
    height:15px;
  }
  #sv-top .sv-ach-ratebox{
    height:184px;
    gap:14px;
  }
  #sv-top .sv-ach-ratebox::before{
    border-width:46px;
  }
  #sv-top .sv-ach-laurel{height:132px;}
  #sv-top .sv-ach-rate-num{
    font-size:88px;
    padding-top:14px;
  }
  #sv-top .sv-ach-rate-num span{
    font-size:42px;
    margin-left:3px;
  }
  #sv-top .sv-ach-gold-note{
    font-size:16px;
    margin:22px 20px 0;
  }
}
@media (min-width:1537px){
  #sv-top .sv-ach-badge-l1{font-size:25px;}
  #sv-top .sv-ach-badge-l2{font-size:16px;}
  #sv-top .sv-ach-badge img{width:28px;}
}

/* ================================================
   セクション09 合格体験記 (09_voices.html)
   ================================================ */
/* ===== 09: 合格体験記セクション ===== */
#sv-top .sv-voices{
  font-family:sans-serif;
  color:#111;
  background:#fef6eb;
  overflow:hidden;
  padding-top:24px;
  padding-bottom:40px;
}
#sv-top .sv-voices *,
#sv-top .sv-voices *::before,
#sv-top .sv-voices *::after{box-sizing:border-box;}

/* --- ヘッダー(写真+コピー) --- */
#sv-top .sv-voices-hero{
  position:relative;
  height:243px;
}
#sv-top .sv-voices-photo{
  position:absolute;
  top:0;
  right:0;
  height:243px;
  width:auto;
}
#sv-top .sv-voices-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#fef6eb 20%,rgba(254,246,235,0) 60%),
    linear-gradient(0deg,#fef6eb 2%,rgba(254,246,235,0) 22%);
  pointer-events:none;
}
#sv-top .sv-voices-badge{
  position:relative;
  z-index:2;
  display:inline-block;
  margin:2px 0 0 -14px;
  padding:10px 26px 11px 32px;
  background:linear-gradient(100deg,#e1437e 0%,#cc2460 100%);
  color:#fff;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:700;
  font-size:19px;
  letter-spacing:.15em;
  line-height:1;
  transform:rotate(-5deg);
  transform-origin:left top;
}
#sv-top .sv-voices-title{
  position:relative;
  z-index:2;
  margin:22px 0 0 18px;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:700;
  font-size:26px;
  line-height:47px;
  letter-spacing:.08em;
  color:#111;
  text-shadow:
    0 0 6px #fff,0 0 6px #fff,0 0 10px #fff,
    1px 1px 2px #fff,-1px -1px 2px #fff,1px -1px 2px #fff,-1px 1px 2px #fff;
}
#sv-top .sv-voices-t1{display:inline-block;font-size:31px;}

/* --- 体験記カード --- */
#sv-top .sv-voices-list{
  padding:0 15px;
}
#sv-top .sv-voices-card{
  position:relative;
  margin-top:80px;
  background:#fff;
  border-radius:4px;
}
#sv-top .sv-voices-card:first-child{margin-top:3px;}
#sv-top .sv-voices-stamp{
  position:absolute;
  top:-32px;
  right:9px;
  width:46px;
  height:70px;
  z-index:2;
}
#sv-top .sv-voices-tag{
  position:absolute;
  bottom:100%;
  left:0;
  margin:0;
  background:#f8f0ba;
  color:#111;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  padding:5px 12px 6px;
  border-radius:2px 2px 0 0;
}
#sv-top .sv-voices-head{
  padding:12px 56px 10px 24px;
  border-radius:4px 4px 0 0;
}
#sv-top .sv-voices-univ{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  margin:0;
  font-family:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-weight:700;
  font-size:20px;
  letter-spacing:.04em;
  color:#111;
  line-height:1.3;
}
#sv-top .sv-voices-arw{
  flex-shrink:0;
  width:16px;
  height:14px;
  margin:0 9px 0 2px;
  align-self:center;
}
#sv-top .sv-voices-univ small{
  font-size:12px;
  font-weight:600;
  color:#555;
  margin-left:8px;
  letter-spacing:.06em;
}
#sv-top .sv-voices-panel{
  display:grid;
  grid-template-columns:87px 1fr;
  column-gap:15px;
  background:#fdf1f3;
  padding:13px 16px 0;
  border-radius:0 0 4px 4px;
}
#sv-top .sv-voices-face{
  grid-column:1;
  width:87px;
  height:87px;
  border-radius:50%;
}
#sv-top .sv-voices-intro{
  grid-column:2;
  margin-top:2px;
}
#sv-top .sv-voices-name{
  margin:0;
  font-size:13px;
  font-weight:600;
  color:#666;
  letter-spacing:.05em;
}
#sv-top .sv-voices-name::before{
  content:"・";
  color:#db2669;
  font-weight:700;
}
#sv-top .sv-voices-quote{
  margin:6px 0 0;
  font-size:16px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:0;
  color:#db2669;
}
#sv-top .sv-voices-text{
  grid-column:1 / -1;
  margin:12px 14px 0 0;
  font-size:14px;
  line-height:1.79;
  letter-spacing:.02em;
  color:#111;
}
#sv-top .sv-voices-btn{
  grid-column:1 / -1;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:15px -16px 0;
  min-height:47px;
  background:#eb4d84;
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:700;
  letter-spacing:.08em;
  border-radius:0 0 4px 4px;
}
#sv-top .sv-voices-btnarw{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:24px;
  border-radius:50%;
  background:#fff;
}
#sv-top .sv-voices-btnarw::after{
  content:"";
  position:absolute;
  left:9px;
  top:7px;
  border-left:8px solid #eb4d84;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}

/* --- 一覧ボタン --- */
#sv-top .sv-voices-more{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:33px 15px 0;
  min-height:57px;
  background:#fff;
  border:2px solid #e53170;
  border-radius:8px;
  color:#111;
  text-decoration:none;
  font-size:16px;
  font-weight:700;
  letter-spacing:.06em;
}
#sv-top .sv-voices-morearw{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:30px;
  height:30px;
  border-radius:50%;
  background:#e4487e;
}
#sv-top .sv-voices-morearw::after{
  content:"";
  position:absolute;
  left:12px;
  top:9px;
  border-left:9px solid #fff;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
}

/* ===== PC ===== */
@media (min-width:701px){
  #sv-top .sv-voices{padding-bottom:21px;}
  #sv-top .sv-voices-hero{
    max-width:992px;
    margin:0 auto;
    height:376px;
  }
  #sv-top .sv-voices-photo{
    height:376px;
  }
  #sv-top .sv-voices-hero::after{
    inset:auto;
    top:0;
    right:0;
    width:388px;
    height:376px;
    background:
      linear-gradient(90deg,#fef6eb 0%,rgba(254,246,235,0) 22%),
      linear-gradient(0deg,#fef6eb 0%,rgba(254,246,235,0) 9%);
  }
  #sv-top .sv-voices-badge{
    margin:52px 0 0 26px;
    font-size:34px;
    letter-spacing:.24em;
    padding:15px 30px 16px 38px;
  }
  #sv-top .sv-voices-title{
    margin:33px 0 0 60px;
    font-size:52px;
    line-height:75px;
    letter-spacing:.13em;
  }
  #sv-top .sv-voices-t1{padding-left:22px;font-size:56px;}
  #sv-top .sv-voices-list{
    max-width:992px;
    margin:0 auto;
    padding:0 27px;
  }
  #sv-top .sv-voices-card{
    margin-top:27px;
    border-radius:10px;
  }
  #sv-top .sv-voices-card:first-child{margin-top:0;}
  #sv-top .sv-voices-stamp{
    top:-45px;
    right:12px;
    width:96px;
    height:146px;
  }
  #sv-top .sv-voices-tag{
    position:static;
    flex-shrink:0;
    font-size:22px;
    padding:11px 17px 12px;
    border-radius:0;
  }
  #sv-top .sv-voices-head{
    display:flex;
    align-items:center;
    min-height:83px;
    padding:0 110px 0 14px;
    border-radius:10px 10px 0 0;
  }
  #sv-top .sv-voices-univ{font-size:36px;}
  #sv-top .sv-voices-arw{
    width:30px;
    height:26px;
    margin:0 14px 0 18px;
  }
  #sv-top .sv-voices-univ small{font-size:16px;margin-left:12px;}
  #sv-top .sv-voices-panel{
    grid-template-columns:152px 1fr;
    column-gap:26px;
    padding:11px 14px 12px 24px;
    border-radius:0 0 10px 10px;
  }
  #sv-top .sv-voices-face{
    grid-row:1 / 3;
    width:152px;
    height:152px;
    margin-left:0;
  }
  #sv-top .sv-voices-intro{margin-top:6px;}
  #sv-top .sv-voices-name{font-size:16px;}
  #sv-top .sv-voices-quote{
    margin-top:8px;
    font-size:24px;
    letter-spacing:0;
  }
  #sv-top .sv-voices-brsp{display:none;}
  #sv-top .sv-voices-text{
    grid-column:2;
    margin:9px 0 0;
    font-size:14px;
    line-height:1.85;
    letter-spacing:.01em;
  }
  #sv-top .sv-voices-btn{
    margin:17px -2px 0 -10px;
    min-height:58px;
    border-radius:8px;
    font-size:21px;
    letter-spacing:.1em;
  }
  #sv-top .sv-voices-btnarw{
    right:20px;
    width:32px;
    height:32px;
  }
  #sv-top .sv-voices-btnarw::after{
    left:12px;
    top:9px;
    border-left-width:11px;
    border-top-width:7px;
    border-bottom-width:7px;
  }
  #sv-top .sv-voices-more{
    width:calc(100% - 30px);
    max-width:698px;
    margin:22px auto 0;
    min-height:65px;
    border-radius:12px;
    font-size:22px;
  }
  #sv-top .sv-voices-morearw{
    right:16px;
    width:34px;
    height:34px;
  }
  #sv-top .sv-voices-morearw::after{
    left:13px;
    top:10px;
    border-left-width:11px;
    border-top-width:7px;
    border-bottom-width:7px;
  }
}

/* ================================================
   セクション10 料金プラン(タブ切替) (10_pricing.html)
   ================================================ */
/* ===== Section 10: 料金プラン(タブ切替) ===== */
#sv-top .sv-pricing{
  background:#fff;
  padding:44px 0 0;
  font-family:sans-serif;
  color:#101010;
  line-height:1.5;
}
#sv-top .sv-pricing *,
#sv-top .sv-pricing *::before,
#sv-top .sv-pricing *::after{box-sizing:border-box;}
#sv-top .sv-pricing h2,
#sv-top .sv-pricing h3,
#sv-top .sv-pricing p{margin:0;}
#sv-top .sv-pricing-inner{
  max-width:562px;
  margin:0 auto;
  padding:0 15px;
}

/* ---- 見出し ---- */
#sv-top .sv-pricing-title{text-align:center;}
#sv-top .sv-pricing-t1{
  display:inline-block;
  position:relative;
  font-size:20px;
  font-weight:700;
  color:#101010;
  padding-bottom:14px;
  letter-spacing:.02em;
}
#sv-top .sv-pricing-t1 em{
  font-style:normal;
  font-size:24px;
}
#sv-top .sv-pricing-t1::before,
#sv-top .sv-pricing-t1::after{
  content:"";
  position:absolute;
  bottom:7px;
  height:1px;
  background:#3a3a3a;
}
#sv-top .sv-pricing-t1::before{left:0;width:43%;}
#sv-top .sv-pricing-t1::after{left:calc(43% + 11px);right:0;}
#sv-top .sv-pricing-tick{
  position:absolute;
  left:43%;
  bottom:7px;
  width:12px;
  height:1px;
  background:#3a3a3a;
  transform:rotate(40deg);
  transform-origin:left top;
}
#sv-top .sv-pricing-t2{
  display:block;
  margin-top:10px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  font-weight:700;
  font-size:30px;
  letter-spacing:.04em;
  color:#d7376e;
  background:linear-gradient(90deg,#ed5087 0%,#bf1a51 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* ---- リード ---- */
#sv-top .sv-pricing-lead{
  margin-top:20px;
  text-align:center;
  font-size:16px;
  font-weight:700;
  line-height:1.9;
}
#sv-top .sv-pricing-hl{
  background:#f8edae;
  color:#101010;
  padding:2px 1px;
  display:inline-block;
  white-space:nowrap;
  font-size:clamp(12.5px,4.15vw,16px);
}

/* ---- 料金表ヘッダー帯 ---- */
#sv-top .sv-pricing-band{
  position:relative;
  margin-top:26px;
  background:linear-gradient(90deg,#ed5087 0%,#bf1a51 100%);
  text-align:center;
  padding:11px 6px;
}
#sv-top .sv-pricing-band-txt{
  color:#fff;
  font-size:15px;
  font-weight:700;
}
#sv-top .sv-pricing-band-txt strong{
  font-size:19px;
}
#sv-top .sv-pricing-band::after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  border-left:15px solid transparent;
  border-right:15px solid transparent;
  border-top:11px solid #d7376e;
}

/* ---- タブ ---- */
#sv-top .sv-pricing-tabs{
  margin-top:24px;
}
#sv-top .sv-pricing-radio{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
#sv-top .sv-pricing-tabrow{
  display:flex;
  gap:4px;
}
#sv-top .sv-pricing-tablabel{
  flex:1 1 0;
  display:flex;
  align-items:center;
  justify-content:center;
  height:54px;
  background:#fff;
  border:2px solid #f39cba;
  border-bottom:none;
  border-radius:6px 6px 0 0;
  color:#101010;
  font-size:clamp(11px,3.8vw,14px);
  font-weight:700;
  text-align:center;
  cursor:pointer;
  white-space:nowrap;
}
#sv-top #sv-pricing-tab1:checked ~ .sv-pricing-tabrow .sv-pricing-tablabel1,
#sv-top #sv-pricing-tab2:checked ~ .sv-pricing-tabrow .sv-pricing-tablabel2,
#sv-top #sv-pricing-tab3:checked ~ .sv-pricing-tabrow .sv-pricing-tablabel3{
  background:#ec4f86;
  border-color:#ec4f86;
  color:#fff;
}
#sv-top .sv-pricing-radio:focus-visible ~ .sv-pricing-tabrow{
  outline:2px solid #ec4f86;
  outline-offset:3px;
}

/* ---- 料金表カード ---- */
#sv-top .sv-pricing-panel{
  display:none;
  background:#fff;
  border:2px solid #f39cba;
  border-radius:8px;
  padding:2px 14px 6px;
}
#sv-top #sv-pricing-tab1:checked ~ .sv-pricing-panel1,
#sv-top #sv-pricing-tab2:checked ~ .sv-pricing-panel2,
#sv-top #sv-pricing-tab3:checked ~ .sv-pricing-panel3{
  display:block;
}
#sv-top .sv-pricing-table{
  width:100%;
  border-collapse:collapse;
}
#sv-top .sv-pricing-table tr + tr th,
#sv-top .sv-pricing-table tr + tr td{
  border-top:1px solid #dadada;
}
#sv-top .sv-pricing-table th{
  text-align:left;
  font-weight:500;
  font-size:15px;
  color:#101010;
  padding:16px 0;
  white-space:nowrap;
}
#sv-top .sv-pricing-sub{
  font-size:12px;
  font-weight:400;
  color:#7a7a7a;
  margin-left:2px;
}
#sv-top .sv-pricing-table td{
  text-align:right;
  color:#ec4f86;
  font-weight:700;
  padding:16px 0;
  white-space:nowrap;
}
#sv-top .sv-pricing-num{font-size:20px;}
#sv-top .sv-pricing-unit{font-size:13px;}

/* ---- 料金シミュレーションCTA ---- */
#sv-top .sv-pricing-sim{
  position:relative;
  margin-top:44px;
  background:linear-gradient(90deg,#ed5087 0%,#bf1a51 100%);
  padding:58px 15px 40px;
  text-align:center;
}
#sv-top .sv-pricing-sim::before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  border-left:52px solid transparent;
  border-right:52px solid transparent;
  border-top:26px solid #fff;
}
#sv-top .sv-pricing-sim-inner{
  max-width:562px;
  margin:0 auto;
}
#sv-top .sv-pricing-sim-title{
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.6);
  padding-bottom:13px;
}
#sv-top .sv-pricing-sim-t1{
  display:block;
  font-size:17px;
  letter-spacing:.05em;
}
#sv-top .sv-pricing-sim-t2{
  display:block;
  margin-top:4px;
  font-size:24px;
  letter-spacing:.06em;
}
#sv-top .sv-pricing-sim-badges{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px;
  color:#fff;
  font-size:14px;
  font-weight:700;
}
#sv-top .sv-pricing-badge{
  background:#f8edae;
  color:#ec4f86;
  padding:3px 8px;
}
#sv-top .sv-pricing-sim-note{
  margin-top:8px;
  color:#fff;
  font-size:15px;
  font-weight:700;
}
#sv-top .sv-pricing-sim-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  height:62px;
  padding-left:74px;
  border-radius:10px;
  border:1px solid #1f9842;
  background:linear-gradient(180deg,#b2e1b4 0%,#34b767 30%,#219f50 55%,#116f2c 100%);
  color:#fff;
  font-size:17px;
  font-weight:700;
  text-decoration:none;
  letter-spacing:.02em;
  box-shadow:0 3px 6px rgba(0,0,0,.25);
}
#sv-top .sv-pricing-sim-btn-ic{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:74px;
  background:#fff;
  border-radius:9px 34px 34px 9px / 9px 30px 30px 9px;
  display:flex;
  align-items:center;
  justify-content:center;
}
#sv-top .sv-pricing-sim-btn-ic img{
  width:42px;
  height:42px;
  display:block;
}
#sv-top .sv-pricing-sim-btn-ar{
  flex:none;
  position:relative;
  width:26px;
  height:26px;
  margin-left:10px;
  border-radius:50%;
  background:#fff;
}
#sv-top .sv-pricing-sim-btn-ar::before{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  border-left:8px solid #219f50;
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}

/* ===== PC ===== */
@media (min-width:701px){
  #sv-top .sv-pricing{padding-top:64px;}
  #sv-top .sv-pricing-inner{padding:0 22px;}
  #sv-top .sv-pricing-t1{font-size:27px;padding-bottom:18px;}
  #sv-top .sv-pricing-t1 em{font-size:32px;}
  #sv-top .sv-pricing-t1::before,
#sv-top .sv-pricing-t1::after{bottom:9px;}
  #sv-top .sv-pricing-tick{bottom:9px;}
  #sv-top .sv-pricing-t2{font-size:46px;margin-top:12px;}
  #sv-top .sv-pricing-lead{font-size:22px;margin-top:26px;line-height:1.75;}
  #sv-top .sv-pricing-hl{font-size:clamp(16px,2.7vw,22px);}
  #sv-top .sv-pricing-band{margin-top:32px;padding:13px 6px;}
  #sv-top .sv-pricing-band-txt{font-size:20px;}
  #sv-top .sv-pricing-band-txt strong{font-size:26px;}
  #sv-top .sv-pricing-band::after{
    border-left-width:19px;
    border-right-width:19px;
    border-top-width:13px;
  }
  #sv-top .sv-pricing-tabs{margin-top:30px;}
  #sv-top .sv-pricing-tablabel{height:74px;font-size:20px;}
  #sv-top .sv-pricing-panel{padding:4px 20px 10px;}
  #sv-top .sv-pricing-table th{font-size:22px;padding:19px 0;}
  #sv-top .sv-pricing-sub{font-size:16px;}
  #sv-top .sv-pricing-table td{padding:19px 0;}
  #sv-top .sv-pricing-num{font-size:26px;}
  #sv-top .sv-pricing-unit{font-size:17px;}
  #sv-top .sv-pricing-sim{
    max-width:562px;
    margin:48px auto 0;
    padding:88px 21px 70px;
  }
  #sv-top .sv-pricing-sim::before{
    border-left-width:73px;
    border-right-width:73px;
    border-top-width:45px;
  }
  #sv-top .sv-pricing-sim-title{padding-bottom:16px;}
  #sv-top .sv-pricing-sim-t1{font-size:26px;}
  #sv-top .sv-pricing-sim-t2{font-size:40px;margin-top:6px;}
  #sv-top .sv-pricing-sim-badges{margin-top:26px;font-size:20px;gap:10px;}
  #sv-top .sv-pricing-badge{padding:4px 11px;}
  #sv-top .sv-pricing-sim-note{font-size:21px;margin-top:10px;}
  #sv-top .sv-pricing-sim-btn{
    margin-top:24px;
    height:90px;
    padding-left:120px;
    border-radius:12px;
    font-size:26px;
  }
  #sv-top .sv-pricing-sim-btn-ic{
    width:120px;
    border-radius:11px 52px 52px 11px / 11px 44px 44px 11px;
  }
  #sv-top .sv-pricing-sim-btn-ic img{width:62px;height:62px;}
  #sv-top .sv-pricing-sim-btn-ar{width:36px;height:36px;margin-left:14px;}
  #sv-top .sv-pricing-sim-btn-ar::before{
    left:14px;
    top:11px;
    border-left-width:11px;
    border-top-width:7px;
    border-bottom-width:7px;
  }
}

/* ================================================
   セクション11 4大特典+無料相談CTA (11_tokuten.html)
   ================================================ */
/* ===== 11: 4大特典 + 無料相談CTA ===== */
#sv-top .sv-tokuten{background:#fff;font-family:sans-serif;line-height:1.5;}
#sv-top .sv-tokuten *,
#sv-top .sv-tokuten *::before,
#sv-top .sv-tokuten *::after{box-sizing:border-box;}
#sv-top .sv-tokuten img{max-width:100%;}

/* --- 導入(白背景) --- */
#sv-top .sv-tokuten-intro{padding:52px 20px 60px;text-align:center;background:#fff;}
#sv-top .sv-tokuten-yobi{width:fit-content;margin:0 auto;padding:0 22px;}
#sv-top .sv-tokuten-yobi-txt{display:block;white-space:nowrap;font-size:20px;font-weight:700;color:#111;letter-spacing:.08em;}
#sv-top .sv-tokuten-yobi-line{display:flex;align-items:flex-start;margin-top:7px;}
#sv-top .sv-tokuten-yobi-line i{flex:1;border-top:2px solid #4d4d4d;}
#sv-top .sv-tokuten-yobi-line em{flex:none;width:13px;height:13px;border-right:2px solid #4d4d4d;border-bottom:2px solid #4d4d4d;transform:rotate(45deg);margin:-6px 2px 0;}
#sv-top .sv-tokuten-title{width:fit-content;margin:16px auto 0;white-space:nowrap;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho",serif;font-size:clamp(21px,7.2vw,29px);font-weight:700;letter-spacing:.02em;line-height:1.3;background:linear-gradient(180deg,#e2678f 0%,#d63a70 45%,#c22058 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
#sv-top .sv-tokuten-lead{margin:14px auto 0;font-size:15px;line-height:1.8;color:#222;}

/* --- 特典エリア(薄ピンク背景+桜) --- */
#sv-top .sv-tokuten-main{position:relative;padding:0 10px 24px;background:linear-gradient(180deg,#fde7f1 0%,#fdd5e6 55%,#fccce1 100%);}
#sv-top .sv-tokuten-petals{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
#sv-top .sv-tokuten-petals i{position:absolute;background:rgba(248,177,208,.4);border-radius:85% 0 60% 0;}
#sv-top .sv-tokuten-petals i:nth-child(1){left:-18px;top:44px;width:90px;height:90px;transform:rotate(20deg);}
#sv-top .sv-tokuten-petals i:nth-child(2){left:4%;top:34%;width:48px;height:48px;transform:rotate(-30deg);}
#sv-top .sv-tokuten-petals i:nth-child(3){left:1%;top:62%;width:70px;height:70px;transform:rotate(45deg);}
#sv-top .sv-tokuten-petals i:nth-child(4){left:8%;top:86%;width:40px;height:40px;transform:rotate(-15deg);}
#sv-top .sv-tokuten-petals i:nth-child(5){right:-14px;top:14%;width:80px;height:80px;transform:rotate(200deg);}
#sv-top .sv-tokuten-petals i:nth-child(6){right:5%;top:42%;width:44px;height:44px;transform:rotate(160deg);}
#sv-top .sv-tokuten-petals i:nth-child(7){right:1%;top:70%;width:88px;height:88px;transform:rotate(30deg);}
#sv-top .sv-tokuten-petals i:nth-child(8){right:10%;top:92%;width:46px;height:46px;transform:rotate(-40deg);}
#sv-top .sv-tokuten-inner{position:relative;display:flow-root;max-width:1176px;margin:0 auto;}

/* --- 特典ヘッダーバナー(濃ピンク) --- */
#sv-top .sv-tokuten-banner{position:relative;display:flow-root;margin:-36px auto 0;padding:0 12px 50px;text-align:center;}
#sv-top .sv-tokuten-banner::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,#e6538a 0%,#d63878 45%,#b81050 100%);clip-path:polygon(0 0,100% 0,100% calc(100% - 30px),50% 100%,0 calc(100% - 30px));}
#sv-top .sv-tokuten-add{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;margin-top:-18px;padding:5px 12px;background:#fff;box-shadow:0 2px 6px rgba(120,10,60,.18);}
#sv-top .sv-tokuten-add-line{background:#06c749;color:#fff;font-weight:700;font-size:14px;line-height:1;padding:5px 10px;border-radius:3px;letter-spacing:.05em;}
#sv-top .sv-tokuten-add-txt{color:#111;font-weight:700;font-size:16px;}
#sv-top .sv-tokuten-banner-body{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-end;margin-top:10px;}
#sv-top .sv-tokuten-num{font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho",serif;font-size:92px;line-height:.8;font-weight:600;color:#fff;margin-right:6px;}
#sv-top .sv-tokuten-banner-right{display:flex;flex-direction:column;align-items:flex-start;}
#sv-top .sv-tokuten-catch{display:flex;align-items:center;margin-bottom:5px;white-space:nowrap;}
#sv-top .sv-tokuten-catch-badge{position:relative;z-index:0;color:#da245c;font-weight:700;font-size:16px;padding:4px 10px;}
#sv-top .sv-tokuten-catch-badge::before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;transform:skewX(-10deg);}
#sv-top .sv-tokuten-catch-txt{color:#fff;font-weight:700;font-size:16px;margin-left:10px;}
#sv-top .sv-tokuten-banner-title{white-space:nowrap;font-family:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho",serif;font-size:clamp(24px,8vw,31px);font-weight:600;color:#fff;letter-spacing:.04em;line-height:1.1;}

/* --- 特典カード --- */
#sv-top .sv-tokuten-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;}
#sv-top .sv-tokuten-card{background:#fff;border-radius:4px;}
#sv-top .sv-tokuten-card h3{margin:0;color:#dd2255;font-weight:700;font-size:16px;line-height:1.4;}
#sv-top .sv-tokuten-card p{margin:4px 0 0;color:#222;font-size:13.5px;line-height:1.55;}
#sv-top .sv-tokuten-card--w{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:10px 12px;}
#sv-top .sv-tokuten-card--w img{flex:none;width:39%;height:auto;}
#sv-top .sv-tokuten-card--n{margin-top:26px;padding:0 8px 14px;text-align:center;}
#sv-top .sv-tokuten-card--n img{display:block;width:68%;height:auto;margin:-26px auto 10px;}
#sv-top .sv-tokuten-card--n h3{font-size:14px;}
#sv-top .sv-tokuten-card--n p{font-size:12.5px;}

/* --- 最終CTA --- */
#sv-top .sv-tokuten-cta{position:relative;display:flex;align-items:center;max-width:790px;height:70px;margin:24px auto 0;border-radius:10px;background:linear-gradient(180deg,#5fc084 0%,#2ba05c 35%,#1c8446 70%,#126b35 100%);box-shadow:0 4px 10px rgba(150,30,85,.28);text-decoration:none;}
#sv-top .sv-tokuten-cta-icon{flex:none;display:flex;align-items:center;justify-content:center;width:80px;height:calc(100% - 8px);margin-left:4px;background:#fff;border-radius:8px 30px 30px 8px / 8px 50% 50% 8px;}
#sv-top .sv-tokuten-cta-icon img{width:44px;height:44px;}
#sv-top .sv-tokuten-cta-txt{flex:1;text-align:center;color:#fff;font-weight:700;font-size:min(16px,4.4vw);letter-spacing:.02em;line-height:1;white-space:nowrap;}
#sv-top .sv-tokuten-cta-txt em{font-style:normal;color:#ffef16;font-size:1.16em;}
#sv-top .sv-tokuten-cta-arrow{flex:none;position:relative;width:27px;height:27px;margin-right:12px;background:#fff;border-radius:50%;}
#sv-top .sv-tokuten-cta-arrow::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-30%,-50%);border-left:10px solid #109941;border-top:6px solid transparent;border-bottom:6px solid transparent;}

/* ===== PC ===== */
@media (min-width:701px){
  #sv-top .sv-tokuten-intro{padding:16px 20px 88px;}
  #sv-top .sv-tokuten-yobi{padding:0 46px;}
  #sv-top .sv-tokuten-yobi-txt{font-size:28px;}
  #sv-top .sv-tokuten-yobi-line em{width:16px;height:16px;margin-top:-7px;}
  #sv-top .sv-tokuten-title{margin-top:14px;font-size:clamp(34px,6vw,64px);line-height:1.2;}
  #sv-top .sv-tokuten-lead{margin-top:16px;font-size:23px;line-height:1.6;}
  #sv-top .sv-tokuten-main{padding:0 20px 14px;}
  #sv-top .sv-tokuten-banner{max-width:766px;margin-top:-62px;padding:0 20px 50px;}
  #sv-top .sv-tokuten-banner::before{clip-path:polygon(0 0,100% 0,100% calc(100% - 56px),50% 100%,0 calc(100% - 56px));}
  #sv-top .sv-tokuten-add{margin-top:-6px;padding:6px 16px;gap:10px;}
  #sv-top .sv-tokuten-add-line{font-size:20px;padding:6px 14px;}
  #sv-top .sv-tokuten-add-txt{font-size:23px;}
  #sv-top .sv-tokuten-banner-body{margin-top:12px;}
  #sv-top .sv-tokuten-num{font-size:clamp(96px,13.8vw,142px);margin-right:10px;}
  #sv-top .sv-tokuten-catch{margin-bottom:7px;}
  #sv-top .sv-tokuten-catch-badge{font-size:clamp(18px,2.9vw,30px);padding:5px 16px;}
  #sv-top .sv-tokuten-catch-txt{font-size:clamp(18px,2.9vw,30px);margin-left:14px;}
  #sv-top .sv-tokuten-banner-title{font-size:clamp(36px,5.5vw,57px);}
  #sv-top .sv-tokuten-cards{grid-template-columns:1fr 1fr;gap:10px 23px;margin-top:0;}
  #sv-top .sv-tokuten-card--w{grid-column:auto;}
  #sv-top .sv-tokuten-card{display:flex;align-items:center;gap:28px;padding:8px 14px;text-align:left;}
  #sv-top .sv-tokuten-card img{flex:none;width:auto;height:auto;margin:0;display:block;}
  #sv-top .sv-tokuten-card--n{margin-top:0;padding:8px 14px;}
  #sv-top .sv-tokuten-card h3,
#sv-top .sv-tokuten-card--n h3{font-size:26px;line-height:1.35;}
  #sv-top .sv-tokuten-card p,
#sv-top .sv-tokuten-card--n p{font-size:20px;line-height:1.5;margin-top:6px;}
  #sv-top .sv-tokuten-cta{height:84px;margin-top:14px;}
  #sv-top .sv-tokuten-cta-icon{width:130px;border-radius:8px 40px 40px 8px / 8px 50% 50% 8px;}
  #sv-top .sv-tokuten-cta-icon img{width:68px;height:68px;}
  #sv-top .sv-tokuten-cta-txt{font-size:38px;}
  #sv-top .sv-tokuten-cta-arrow{width:38px;height:38px;margin-right:22px;}
  #sv-top .sv-tokuten-cta-arrow::after{border-left-width:14px;border-top-width:9px;border-bottom-width:9px;}
}

/* ================================================
   セクション12 ロゴ・無料相談・LINE・電話 (12_contact.html)
   ================================================ */
/* ============================================================
   12: ロゴ・無料相談・LINE・電話セクション (.sv-contact)
   モバイル = sohp-leftcol4.png(縦積み・白背景)
   PC      = 横並び gap28px
   ============================================================ */
#sv-top .sv-contact{
  background:#fff;
  font-family:sans-serif;
  padding:32px 16px 44px;
}
#sv-top .sv-contact *,
#sv-top .sv-contact *::before,
#sv-top .sv-contact *::after{box-sizing:border-box;}
#sv-top .sv-contact-inner{
  max-width:405px;
  margin:0 auto;
}

/* ---- ロゴ ---- */
#sv-top .sv-contact-logo{
  margin:0 0 25px;
  text-align:center;
}
#sv-top .sv-contact-logo img{
  width:100%;
  max-width:405px;
  height:auto;
  display:block;
  margin:0 auto;
}

/* ---- 無料相談を予約する(緑グラデボタン+吹き出し) ---- */
#sv-top .sv-contact-consult{
  position:relative;
  display:block;
  width:345px;
  max-width:100%;
  margin:0 auto 22px;
  padding-top:15px;
  text-decoration:none;
}
#sv-top .sv-contact-balloon{
  position:absolute;
  top:0;
  left:6px;
  z-index:2;
  display:inline-block;
  background:#fff;
  border:2px solid #39b864;
  border-radius:2px;
  padding:2px 15px 3px;
  color:#101010;
  font-size:14px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:.03em;
  white-space:nowrap;
  transform:rotate(-3deg);
}
#sv-top .sv-contact-balloon::after{
  content:"";
  position:absolute;
  left:70px;
  bottom:-7px;
  width:10px;
  height:10px;
  background:#fff;
  border-right:2px solid #39b864;
  border-bottom:2px solid #39b864;
  transform:rotate(45deg);
}
#sv-top .sv-contact-consult-body{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:70px;
  border-radius:35px;
  background:linear-gradient(180deg,#b0e1b2 0%,#86d398 11%,#3ebb6c 25%,#24aa57 39%,#1b8d42 68%,#116d2b 100%);
  box-shadow:inset 0 -2px 0 rgba(57,184,100,.85);
  color:#fff;
  font-size:26px;
  font-weight:700;
  line-height:1;
  transition:opacity .2s;
}
#sv-top .sv-contact-consult:hover .sv-contact-consult-body{opacity:.9;}
#sv-top .sv-contact-consult-em{color:#feda28;}
#sv-top .sv-contact-play{
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  background:#fff;
  border-radius:50%;
}
#sv-top .sv-contact-play::after{
  content:"";
  position:absolute;
  left:7px;
  top:5px;
  border-style:solid;
  border-width:4px 0 4px 6px;
  border-color:transparent transparent transparent #29a556;
}

/* ---- LINEボタン(白+緑枠) ---- */
#sv-top .sv-contact-line{
  margin:0 auto 35px;
  width:345px;
  max-width:100%;
}
#sv-top .sv-contact-linebtn{
  display:flex;
  align-items:center;
  height:51px;
  background:#fff;
  border:2px solid #1f9842;
  border-radius:26px;
  padding:0 9px 0 8px;
  text-decoration:none;
  transition:opacity .2s;
}
#sv-top .sv-contact-linebtn:hover{opacity:.85;}
#sv-top .sv-contact-lineicon{
  flex:none;
  width:31px;
  height:30px;
  display:block;
}
#sv-top .sv-contact-linetxt{
  margin-left:9px;
  white-space:nowrap;
  line-height:1;
}
#sv-top .sv-contact-line-big{
  font-size:20px;
  font-weight:700;
  color:#16c05b;
}
#sv-top .sv-contact-line-sm{
  font-size:13px;
  font-weight:700;
  color:#16c05b;
}
#sv-top .sv-contact-line-dark{
  font-size:15px;
  font-weight:700;
  color:#101010;
}
#sv-top .sv-contact-freebadge{
  flex:none;
  margin-left:auto;
  background:#fff;
  border:2px solid #ed5087;
  border-radius:4px;
  padding:2px 4px;
  color:#ed5087;
  font-size:13px;
  font-weight:700;
  line-height:1;
}
#sv-top .sv-contact-lineplay{
  position:relative;
  flex:none;
  margin-left:5px;
  width:16px;
  height:16px;
  background:#16c05b;
  border-radius:50%;
}
#sv-top .sv-contact-lineplay::after{
  content:"";
  position:absolute;
  left:6px;
  top:4px;
  border-style:solid;
  border-width:4px 0 4px 6px;
  border-color:transparent transparent transparent #fff;
}
#sv-top .sv-contact-linenote{
  margin:7px 0 0;
  text-align:center;
  font-size:12px;
  color:#101010;
  line-height:1.2;
}

/* ---- 電話 ---- */
#sv-top .sv-contact-tel{
  text-align:center;
}
#sv-top .sv-contact-telnum{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#ec4f86;
  font-size:28px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
}
#sv-top .sv-contact-telicon{
  display:inline-block;
  flex:none;
  width:24px;
  height:24px;
  margin:-3px;
  background:#ec4f86;
  transform:scale(.75);
  clip-path:path('M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z');
}
#sv-top .sv-contact-telnote{
  margin:8px 0 0;
  color:#101010;
  font-size:15px;
  font-weight:500;
  line-height:1.2;
}

/* ============================================================
   PC: 横並び(gap 28px)
   ============================================================ */
@media (min-width:701px){
  #sv-top .sv-contact{
    padding:40px 24px;
  }
  #sv-top .sv-contact-inner{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:28px;
    max-width:1240px;
  }
  #sv-top .sv-contact-logo{
    flex:none;
    width:200px;
    margin:0;
  }
  #sv-top .sv-contact-consult{
    flex:none;
    width:345px;
    margin:0;
  }
  #sv-top .sv-contact-line{
    flex:none;
    width:345px;
    margin:0;
  }
  #sv-top .sv-contact-tel{
    flex:none;
  }
}

/* ===== フッターリンク集(会社概要など・現行ページ .sohp-flinks 流用) ===== */
#sv-top .sv-flinks{background:#F7F8E8;padding:28px 20px 40px;text-align:center}
#sv-top .sv-flinks-inner{display:flex;flex-wrap:wrap;justify-content:center;
  gap:14px 40px;max-width:760px;margin:0 auto}
#sv-top .sv-flinks a{color:#8a8f2e;font-weight:700;font-size:16px;text-decoration:none;
  flex:0 0 auto;min-width:40%}
@media (min-width:701px){#sv-top .sv-flinks a{min-width:0;font-size:17px}
  #sv-top .sv-flinks-inner{gap:18px 56px;max-width:900px}}
#sv-top .sv-flinks a:hover{opacity:.7;text-decoration:underline}

/* ===== 画面に追従するフローティングCTA(現行ページ .sohp-floatcta 流用) ===== */
#sv-top .sv-floatcta{position:fixed;left:0;right:0;bottom:16px;z-index:99990;
  display:flex;justify-content:center;gap:10px;padding:0 14px;
  background:transparent;pointer-events:none}
@media (min-width:701px){
  #sv-top .sv-floatcta{max-width:640px !important;margin:0 auto !important}
}
/* 吹き出し+両ボタンをまとめて囲む、半透明の枠 */
#sv-top .sv-floatcta::before{content:"";position:absolute;left:0;right:0;
  top:-42px;bottom:-16px;background:rgba(15,15,15,.55);
  border-radius:0;z-index:-1}
#sv-top .sv-floatcta a{pointer-events:auto;text-decoration:none}
#sv-top .sv-pill{display:flex;align-items:center;justify-content:center;gap:7px;
  flex:1 1 0;min-width:0;padding:17px 8px;border-radius:999px;
  font-weight:800;font-size:15px;text-decoration:none;white-space:nowrap}
#sv-top .sv-pill-line{background:#fff;border:2px solid #06C755;color:#06C755}
#sv-top .sv-pill-line .sv-ic{width:24px;height:24px;border-radius:7px 7px 7px 2px;
  background:#06C755;position:relative;flex:0 0 24px}
#sv-top .sv-pill-line .sv-ic::before{content:"";position:absolute;left:19%;top:28%;
  width:62%;height:40%;background:#fff;border-radius:5px}
#sv-top .sv-pill-green{position:relative;background:linear-gradient(180deg,#3fd66a,#1fa843);color:#fff}
#sv-top .sv-arrow{width:19px;height:19px;border-radius:50%;background:rgba(255,255,255,.9);
  color:#1fa843;font-size:10px;display:flex;align-items:center;justify-content:center;flex:0 0 19px}
#sv-top .sv-pill-line .sv-arrow{background:#06C755;color:#fff}
#sv-top .sv-bubble{position:absolute;left:52%;bottom:100%;transform:translateX(-50%) rotate(-4deg);
  margin-bottom:10px;background:#fff;border:1.5px solid #222;color:#222;
  font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;white-space:nowrap}
#sv-top .sv-bubble::after{content:"";position:absolute;left:28%;top:100%;
  border:5px solid transparent;border-top-color:#222}
#sv-top .sv-bubble::before{content:"";position:absolute;left:28%;top:100%;
  transform:translateY(-1.5px);border:5px solid transparent;border-top-color:#fff;z-index:1}


/* ===== プランブロックを元デザイン画像に(ライブHPと同一デザイン) ===== */
#sv-top .sv-plan{padding:0 !important;}
#sv-top .sv-plan-full-sp{display:block;width:100%;height:auto;}
#sv-top .sv-plan-man,#sv-top .sv-plan-txt-pc{display:none;}
@media (min-width:701px){
  #sv-top .sv-plan{width:515px !important;left:354px !important;top:459px !important;}
  #sv-top .sv-plan-full-sp{display:none;}
  #sv-top .sv-plan-txt-pc{display:block;width:100%;height:auto;}
  #sv-top .sv-plan-man{display:block;position:absolute;left:-207px;top:-53px;width:210px;height:auto;}
}
/* ===== 修正R2: フッターリンクをフローティングCTAの黒帯より上に ===== */
#sv-top .sv-flinks{padding-bottom:200px !important;}
@media (min-width:701px){ #sv-top .sv-flinks{padding-bottom:180px !important;} }

/* ===== FVをHP実物画像に(キャッチ/アンダーライン/文字組みを完全一致)+バッジのみHTML上書き ===== */
#sv-top .sv-hv--img{position:relative;height:auto !important;background:none !important;overflow:hidden;}
#sv-top .sv-fv-pic{display:block;}
#sv-top .sv-fv-pic img{display:block;width:100%;height:auto;}
#sv-top .sv-fv-badgemask{position:absolute;top:0;left:-2%;width:104%;height:7.7%;background:#fff;z-index:1;transform:rotate(-3deg);transform-origin:left top;}
#sv-top .sv-hv-head--onimg{z-index:2;position:absolute;top:2.2%;left:3.6%;transform:rotate(-3deg);transform-origin:left top;}
#sv-top .sv-hv-head--onimg .sv-hv-badge{font-size:3.9vw;padding:1.3vw 2.1vw;}
#sv-top .sv-hv-head--onimg .sv-hv-senmon{font-size:4.4vw;margin-left:1.8vw;}
#sv-top .sv-hv-cat--onimg{display:inline-block;background:#fff;margin-top:1.4vw;padding:0 1vw 0.2vw 0;font-size:5.3vw;}
@media (min-width:701px){
  #sv-top .sv-fv-badgemask{width:43%;height:15.2%;}
  #sv-top .sv-hv-head--onimg{top:4.4%;left:3.4%;}
  #sv-top .sv-hv-head--onimg .sv-hv-badge{font-size:28px;padding:8px 13px;}
  #sv-top .sv-hv-head--onimg .sv-hv-senmon{font-size:31px;margin-left:11px;}
  #sv-top .sv-hv-cat--onimg{margin-top:9px;padding:0 6px 2px 0;font-size:35px;}
}

/* ===== 実績ヘッダーを大学編入のみ(単一写真・単一バッジ)に中央寄せ ===== */
#sv-top .sv-ach-photos--single .sv-ach-photorow{justify-content:center;}
#sv-top .sv-ach-photos--single .sv-ach-photorow picture{width:58%;max-width:300px;}
#sv-top .sv-ach-photos--single .sv-ach-badge:nth-child(1){left:50%;}
/* 合格者数が大学編入1件のみ: PCで中央寄せ・幅制限(全幅間延び防止) */
@media (min-width:701px){
  #sv-top .sv-ach-results-grid{justify-content:center;}
  #sv-top .sv-ach-results-grid .sv-ach-result{flex:0 1 420px;}
}

/* ===== FV下CTA(ライブHPと同一: spring-inline-cta) ===== */
#sv-top .sv-hero-cta{display:none !important;}
.spring-inline-cta { max-width: 760px; margin: 42px auto; padding: 24px; border-radius: 18px; box-shadow: rgba(131, 50, 86, 0.18) 0px 14px 34px; font-family: inherit; color: rgb(37, 48, 45); box-sizing: border-box; background: linear-gradient(100deg,#ED5087 0%,#DE3A76 45%,#C7235A 100%) !important; }
.spring-inline-cta, .spring-inline-cta * { box-sizing: border-box; }
.spring-inline-cta__badge { display: block; margin: 0px 0px 14px; color: rgb(255, 255, 255); text-align: center; font-weight: 800; font-size: 15px; letter-spacing: 0px; }
.spring-inline-cta__body { border-radius: 14px; padding: 24px 24px 22px; background: rgb(255, 255, 255) !important; }
.spring-inline-cta__title { margin: 0px 0px 10px !important; color: rgb(105, 112, 24) !important; font-size: 24px !important; line-height: 1.45 !important; font-weight: 900 !important; letter-spacing: 0px !important; }
.spring-inline-cta__lead { margin: 0px 0px 18px !important; color: rgb(68, 68, 68) !important; font-size: 15px !important; line-height: 1.8 !important; }
.spring-inline-cta__list { display: grid; gap: 10px; margin: 0px 0px 22px !important; padding: 0px !important; list-style: none !important; }
.spring-inline-cta__list li { position: relative; margin: 0px !important; padding: 0px 0px 0px 30px !important; color: rgb(51, 51, 51) !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.65 !important; }
.spring-inline-cta__list li::before { content: ""; position: absolute; left: 0px; top: 0.42em; width: 18px; height: 18px; border-radius: 50%; background: rgb(226, 130, 175); box-shadow: rgba(255, 255, 255, 0.55) 0px 0px 0px 5px inset; }
.spring-inline-cta__micro { text-align: center; margin: 0px 0px 12px !important; color: rgb(105, 112, 24) !important; font-size: 14px !important; font-weight: 800 !important; }
.spring-inline-cta__actions { display: grid; gap: 11px; max-width: 500px; margin: 0px auto; }
.spring-inline-cta__button { align-items: center; justify-content: center; width: 100%; min-height: 54px; border-radius: 999px; text-align: center; transition: transform 0.18s, box-shadow 0.18s, opacity 0.18s; display: flex !important; padding: 14px 18px !important; text-decoration: none !important; font-size: 17px !important; font-weight: 900 !important; line-height: 1.35 !important; }
.spring-inline-cta__button:hover { transform: translateY(-2px); opacity: 0.94; text-decoration: none !important; }
.spring-inline-cta__button--primary { box-shadow: rgb(8, 120, 75) 0px 5px 0px, rgba(17, 157, 98, 0.28) 0px 10px 22px; background: linear-gradient(rgb(24, 191, 118) 0%, rgb(17, 157, 98) 100%) !important; color: rgb(255, 255, 255) !important; }
.spring-inline-cta__button--secondary { border: 2px solid rgb(17, 157, 98); box-shadow: rgba(17, 157, 98, 0.12) 0px 4px 12px; background: rgb(255, 255, 255) !important; color: rgb(17, 157, 98) !important; }
.spring-inline-cta__note { text-align: center; margin: 14px 0px 0px !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 1.6 !important; }
#sv-top .sv-sec.spring-home-fv-cta-wrap { display: block !important; background: rgb(247, 248, 232) !important; padding: 34px 16px 38px !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta { max-width: 900px; margin: 0px auto !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__title { font-size: 22px !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__actions { grid-template-columns: 1fr 1fr; max-width: 680px; }
@media (max-width: 640px) {
  .spring-inline-cta { margin: 32px auto; padding: 16px; border-radius: 16px; }
  .spring-inline-cta__body { padding: 20px 17px 18px; }
  .spring-inline-cta__badge { font-size: 13px; }
  .spring-inline-cta__title { font-size: 20px !important; }
  .spring-inline-cta__lead, .spring-inline-cta__list li { font-size: 14px !important; }
  .spring-inline-cta__button { min-height: 50px; font-size: 16px !important; }
}
@media (max-width: 640px) {
  #sv-top .sv-sec.spring-home-fv-cta-wrap { padding: 26px 14px 30px !important; }
  #sv-top .spring-home-fv-cta-wrap .spring-inline-cta__actions { grid-template-columns: 1fr; }
}
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta { padding: 24px !important; border-radius: 18px !important; box-shadow: rgba(131, 50, 86, 0.18) 0px 14px 34px !important; background: linear-gradient(100deg,#ED5087 0%,#DE3A76 45%,#C7235A 100%) !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__micro, #sv-top .spring-home-fv-cta-wrap .spring-inline-cta__note { text-align: center !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__actions { align-items: center !important; gap: 18px !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button { position: relative !important; border-radius: 999px !important; text-align: center !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--primary { min-height: 70px !important; padding: 0px 54px 0px 24px !important; border: 0px !important; border-radius: 35px !important; background: linear-gradient(rgb(255, 240, 158) 0%, rgb(255, 226, 82) 12%, rgb(253, 208, 40) 46%, rgb(243, 187, 22) 74%, rgb(226, 166, 8) 100%) !important; box-shadow: rgb(194, 145, 6) 0px 7px 0px, rgb(163, 121, 4) 0px 8px 0px, rgba(140, 100, 0, 0.4) 0px 17px 26px, rgba(255, 255, 255, 0.75) 0px 2px 1px inset, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset !important; color: rgb(60, 42, 0) !important; font-size: 24px !important; font-weight: 800 !important; gap: 0px !important; transition: transform 0.12s, box-shadow 0.12s !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--primary:hover { transform: translateY(-2px) !important; box-shadow: rgb(194, 145, 6) 0px 9px 0px, rgb(163, 121, 4) 0px 10px 0px, rgba(140, 100, 0, 0.42) 0px 20px 30px, rgba(255, 255, 255, 0.75) 0px 2px 1px inset, rgba(255, 255, 255, 0.5) 0px 0px 0px 1px inset !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--primary:active { transform: translateY(4px) !important; box-shadow: rgb(194, 145, 6) 0px 3px 0px, rgb(163, 121, 4) 0px 4px 0px, rgba(140, 100, 0, 0.35) 0px 8px 14px, rgba(255, 255, 255, 0.7) 0px 2px 1px inset !important; }
#sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--secondary { min-height: 51px !important; padding: 0px 42px 0px 14px !important; border: 2px solid rgb(31, 152, 66) !important; border-radius: 26px !important; background: linear-gradient(rgb(255, 255, 255) 0%, rgb(238, 250, 241) 100%) !important; box-shadow: rgb(10, 166, 83) 0px 6px 0px, rgba(6, 199, 85, 0.28) 0px 14px 24px, rgba(255, 255, 255, 0.9) 0px 1px 0px inset !important; color: rgb(16, 16, 16) !important; font-size: 17px !important; font-weight: 700 !important; gap: 9px !important; }
#sv-top .spring-home-fv-cta__consult-em { color: rgb(196, 35, 90) !important; }
#sv-top .spring-home-fv-cta__consult-tx { color: rgb(58, 40, 0) !important; }
#sv-top .spring-home-fv-cta__play, #sv-top .spring-home-fv-cta__line-play { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); display: block; width: 22px; height: 22px; border-radius: 50%; background: rgb(255, 255, 255); box-shadow: rgba(120, 80, 0, 0.35) 0px 2px 3px, rgba(255, 255, 255, 0.9) 0px 1px 0px inset; }
#sv-top .spring-home-fv-cta__play::after { content: ""; position: absolute; left: 9px; top: 6px; border-style: solid; border-width: 5px 0px 5px 8px; border-color: transparent transparent transparent rgb(196, 35, 90); }
#sv-top .spring-home-fv-cta__line-play::after { content: ""; position: absolute; left: 9px; top: 6px; border-style: solid; border-width: 5px 0px 5px 8px; border-color: transparent transparent transparent rgb(41, 165, 86); }
#sv-top .spring-home-fv-cta__line-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 31px; width: 31px; height: 30px; border-radius: 7px 7px 7px 2px; background: rgb(22, 192, 91); font-size: 8px; font-weight: 900; line-height: 1; color: rgb(255, 255, 255) !important; }
#sv-top .spring-home-fv-cta__line-text { line-height: 1; white-space: nowrap; color: rgb(22, 192, 91) !important; }
#sv-top .spring-home-fv-cta__free { display: inline-flex; align-items: center; justify-content: center; border: 2px solid rgb(237, 80, 135); border-radius: 4px; padding: 2px 4px; font-size: 12px; font-weight: 700; line-height: 1; white-space: nowrap; color: rgb(237, 80, 135) !important; }
@media (max-width: 640px) {
  #sv-top .spring-home-fv-cta-wrap .spring-inline-cta { padding: 16px !important; border-radius: 16px !important; }
  #sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--primary { min-height: 64px !important; padding-left: 20px !important; font-size: 21px !important; }
  #sv-top .spring-home-fv-cta-wrap .spring-inline-cta__button--secondary { min-height: 54px !important; font-size: 16px !important; gap: 7px !important; }
  #sv-top .spring-home-fv-cta__line-icon { flex-basis: 28px; width: 28px; height: 28px; }
  #sv-top .spring-home-fv-cta__free { font-size: 11px; }
}


/* ==== テキスト版FV ==== */

/* 全セレクタに #sv-top を付けること: テンプレ側に #sv-top p 等の(1,0,1)リセットがあり、単一クラス(0,1,0)では負ける */
#sv-top .svx-fv{font-family:sans-serif;background:#fff;overflow:hidden}
#sv-top .svx-fv-badges{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:14px 18px 4px}
#sv-top .svx-fv-badge{background:#ED5087;color:#fff;font-weight:800;font-size:clamp(12px,3.2vw,17px);padding:3px 9px;letter-spacing:.04em}
#sv-top .svx-fv-badge+.svx-fv-badge{margin-left:2px}
#sv-top .svx-fv-senmon{color:#101010;font-weight:800;font-size:clamp(13px,3.4vw,18px);margin-left:4px}
#sv-top .svx-fv-cat{padding:0 18px 10px;color:#101010;font-weight:600;font-size:clamp(12px,3vw,16px);letter-spacing:.06em}
#sv-top .svx-fv-panel{position:relative;background:linear-gradient(115deg,#D31F5F 0%,#C7235A 70%,#B81A50 100%);padding:clamp(28px,7vw,64px) 18px clamp(46px,9vw,88px);clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
#sv-top .svx-fv-panel::after{content:"";position:absolute;right:-4%;top:-8%;width:52%;height:70%;background:radial-gradient(ellipse at 70% 30%,rgba(255,163,190,.35) 0%,rgba(255,163,190,0) 60%);pointer-events:none}
#sv-top .svx-fv-sakura{position:absolute;right:2%;top:4%;width:min(30vw,220px);opacity:.5;pointer-events:none}
#sv-top .svx-fv-copy{position:relative;z-index:1;max-width:1100px;margin:0 auto;color:#fff;font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif}
#sv-top .svx-fv-lead{font-size:clamp(20px,5.4vw,40px);font-weight:700;letter-spacing:.1em;margin:0 0 .1em}
#sv-top .svx-fv-big{font-size:clamp(72px,22vw,180px);font-weight:800;line-height:1.05;letter-spacing:.02em;margin:0}
#sv-top .svx-fv-sub{font-size:clamp(20px,5.6vw,42px);font-weight:700;letter-spacing:.08em;margin:.15em 0 0}
#sv-top .svx-fv-sub em{font-style:normal;background:linear-gradient(transparent 62%,#FFD700 62%);padding:0 .05em}
#sv-top .svx-fv-photo{position:absolute;right:0;bottom:0;width:min(46vw,560px);z-index:0}
#sv-top .svx-fv-photo img{width:100%;height:auto;display:block}
#sv-top .svx-fv-under{background:#F7F7F7;padding:clamp(20px,5vw,40px) 18px clamp(24px,5vw,44px);text-align:center;color:#101010}
#sv-top .svx-fv-u1{font-weight:700;font-size:clamp(14px,3.8vw,22px);margin:0 0 14px;border-bottom:2px solid #101010;display:inline-block;padding-bottom:4px}
#sv-top .svx-fv-u2{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700;font-size:clamp(14px,3.8vw,22px);margin:0 0 12px}
#sv-top .svx-fv-box{border:1.5px solid #101010;border-radius:6px;padding:4px 12px;background:#fff}
#sv-top .svx-fv-x{font-size:1.2em;font-weight:800}
#sv-top .svx-fv-u3{font-weight:700;font-size:clamp(15px,4.2vw,26px);margin:0 0 6px}
#sv-top .svx-fv-u3 strong{color:#ED5087;font-size:1.15em}
#sv-top .svx-fv-u4{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:800;font-size:clamp(22px,6vw,38px);margin:0}
#sv-top .svx-fv-u4 em{font-style:normal;background:linear-gradient(transparent 58%,#FFD700 58%);padding:0 .08em}
@media(min-width:701px){
  #sv-top .svx-fv-badges,#sv-top .svx-fv-cat{max-width:1100px;margin-left:auto;margin-right:auto}
  #sv-top .svx-fv-copy{padding-right:44%}
}


/* ===================================================================
   大学生専用オンライン家庭教師 — 独立サイト用の追加CSS
   テンプレの base.css に追記して assets/site.css を作る。
   base.css 側に #sv-top p 等(1,0,1)のリセットがあるため、
   本文系セレクタには必ず #sv-top プレフィックスを付ける。
   =================================================================== */

/* ---------------- ハンバーガーメニュー ---------------- */
#dk-navbtn{position:fixed;top:16px;right:16px;z-index:99999;width:54px;height:54px;border:none;border-radius:50%;background:#ED5087;box-shadow:0 4px 14px rgba(0,0,0,.22);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:background .2s}
#dk-navbtn:hover{background:#C7235A}
#dk-navbtn span{display:block;width:24px;height:2.5px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}
#dk-nav-overlay{position:fixed;inset:0;background:rgba(40,20,30,.5);z-index:99998;opacity:0;visibility:hidden;transition:opacity .3s}
#dk-nav-drawer{position:fixed;top:0;right:0;height:100%;width:310px;max-width:84vw;background:#fff;z-index:99999;box-shadow:-6px 0 24px rgba(0,0,0,.2);transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;overflow-y:auto}
#dk-nav.open #dk-nav-overlay{opacity:1;visibility:visible}
#dk-nav.open #dk-nav-drawer{transform:translateX(0)}
#dk-nav.open #dk-navbtn span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
#dk-nav.open #dk-navbtn span:nth-child(2){opacity:0}
#dk-nav.open #dk-navbtn span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
#dk-nav-drawer .dk-nav-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:20px 20px 16px;border-bottom:1px solid #eee}
#dk-nav-drawer .dk-nav-head b{font-size:14px;color:#ED5087;font-weight:700;letter-spacing:.02em}
#dk-nav-close{border:none;background:none;font-size:26px;line-height:1;color:#888;cursor:pointer;padding:0 4px}
#dk-nav-drawer ul{list-style:none;margin:0;padding:6px 0 32px}
#dk-nav-drawer li a{display:flex;align-items:center;gap:10px;padding:14px 22px;color:#1a1a1a;text-decoration:none;font-size:15px;font-weight:500;border-bottom:1px solid #f4f2f3;transition:background .15s;line-height:1.4}
#dk-nav-drawer li a:hover{background:#fdeef4;color:#C7235A}
#dk-nav-drawer li a::before{content:"";width:6px;height:6px;border-radius:50%;background:#f39cba;flex:none}
#dk-nav-drawer li.dk-nav-cur a{font-weight:700;color:#C7235A;background:#fdeef4}
#dk-nav-drawer li.dk-nav-ext a{font-size:13px;color:#666}
#dk-nav-drawer li.dk-nav-ext a::before{background:#ccc}
#dk-nav-drawer li.dk-nav-cta{padding:16px 20px 0}
#dk-nav-drawer li.dk-nav-cta a{justify-content:center;background:#06C755;color:#fff;border-radius:8px;font-weight:700;padding:14px;border-bottom:none}
#dk-nav-drawer li.dk-nav-cta a::before{display:none}
#dk-nav-drawer li.dk-nav-cta a:hover{background:#05b34c;color:#fff}
@media print{#dk-navbtn,#dk-nav-overlay,#dk-nav-drawer,#dk-gcta{display:none!important}}

/* ---------------- 下層ページ共通 ---------------- */
#sv-top .dk-page{background:#fff;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif}
#sv-top .dk-hd{background:linear-gradient(115deg,#D31F5F 0%,#C7235A 70%,#B81A50 100%);color:#fff;padding:clamp(26px,6vw,52px) 18px clamp(30px,6vw,58px);position:relative;overflow:hidden}
#sv-top .dk-hd::after{content:"";position:absolute;right:-6%;top:-14%;width:54%;height:80%;background:radial-gradient(ellipse at 70% 30%,rgba(255,163,190,.32) 0%,rgba(255,163,190,0) 62%);pointer-events:none}
#sv-top .dk-hd-in{max-width:960px;margin:0 auto;position:relative;z-index:1}
#sv-top .dk-crumb{font-size:12px;opacity:.9;margin:0 0 10px;color:#fff}
#sv-top .dk-crumb a{color:#fff;text-decoration:underline}
#sv-top .dk-hd h1{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(24px,6.4vw,42px);font-weight:800;line-height:1.35;letter-spacing:.03em;margin:0;color:#fff}
#sv-top .dk-hd .dk-hd-sub{font-size:clamp(13px,3.6vw,18px);font-weight:600;margin:.6em 0 0;color:#fff;opacity:.95}

#sv-top .dk-wrap{max-width:860px;margin:0 auto;padding:0 18px}
#sv-top .dk-sec{padding:clamp(30px,6.5vw,58px) 0}
#sv-top .dk-sec--gray{background:#F7F7F7}
#sv-top .dk-sec--pink{background:#F8E9EE}
#sv-top .dk-sec h2{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;font-size:clamp(21px,5.4vw,33px);font-weight:800;line-height:1.4;letter-spacing:.03em;margin:0 0 .8em;text-align:center;color:#101010}
#sv-top .dk-sec h2 em{font-style:normal;background:linear-gradient(transparent 60%,#FFD700 60%);padding:0 .06em}
#sv-top .dk-sec h3{font-size:clamp(16px,4.2vw,22px);font-weight:800;line-height:1.5;margin:1.6em 0 .6em;color:#101010;border-left:6px solid #ED5087;padding-left:.55em}
#sv-top .dk-sec h4{font-size:clamp(15px,3.9vw,19px);font-weight:700;margin:1.4em 0 .4em;color:#C7235A}
#sv-top .dk-sec p{font-size:clamp(14px,3.7vw,16.5px);line-height:1.95;margin:0 0 1.1em;color:#1a1a1a}
#sv-top .dk-sec p:last-child{margin-bottom:0}
#sv-top .dk-sec a{color:#C7235A}
#sv-top .dk-lead{font-size:clamp(15px,4vw,18px);font-weight:500}
#sv-top .dk-note{font-size:clamp(12px,3.2vw,13.5px);color:#666;line-height:1.8}
#sv-top .dk-sec ul,#sv-top .dk-sec ol{margin:0 0 1.2em;padding-left:1.4em}
#sv-top .dk-sec li{font-size:clamp(14px,3.7vw,16.5px);line-height:1.9;margin-bottom:.35em;color:#1a1a1a}

/* カード類 */
#sv-top .dk-cards{display:grid;gap:14px;margin:0 0 1.4em}
@media(min-width:701px){#sv-top .dk-cards--2{grid-template-columns:1fr 1fr}#sv-top .dk-cards--3{grid-template-columns:repeat(3,1fr)}}
#sv-top .dk-card{background:#fff;border:2px solid #f3cddb;border-radius:12px;padding:18px 18px 16px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
#sv-top .dk-card h3{margin:0 0 .5em;border:none;padding:0;font-size:clamp(15px,4vw,19px);color:#C7235A}
#sv-top .dk-card p{font-size:clamp(13.5px,3.5vw,15.5px);line-height:1.85}
#sv-top .dk-card ul{margin:0;padding-left:1.2em}
#sv-top .dk-card li{font-size:clamp(13.5px,3.5vw,15.5px);line-height:1.8}

/* 悩みカード(枠だけの簡素版) */
#sv-top .dk-worry{background:#fff;border:1px solid #e6dde1;border-radius:10px;padding:16px 18px}
#sv-top .dk-worry b{display:block;font-size:clamp(14px,3.7vw,17px);color:#C7235A;margin-bottom:.4em}

/* 定義リスト(指導内容など) */
#sv-top .dk-dl{margin:0 0 1.2em;border-top:1px solid #e8dfe3}
#sv-top .dk-dl dt{font-weight:700;font-size:clamp(15px,3.9vw,18px);color:#101010;padding:16px 0 6px;position:relative;padding-left:1.1em}
#sv-top .dk-dl dt::before{content:"";position:absolute;left:0;top:1.45em;width:.6em;height:.6em;border-radius:50%;background:#ED5087}
#sv-top .dk-dl dd{margin:0 0 4px;padding:0 0 16px 1.1em;border-bottom:1px solid #e8dfe3}
#sv-top .dk-dl dd p{margin:0;font-size:clamp(14px,3.6vw,16px)}

/* 料金表 */
#sv-top .dk-table{width:100%;border-collapse:collapse;margin:0 0 1em;background:#fff;font-size:clamp(13px,3.5vw,16px)}
#sv-top .dk-table th,#sv-top .dk-table td{border:1px solid #e8d6de;padding:11px 10px;text-align:center;line-height:1.6}
#sv-top .dk-table thead th{background:linear-gradient(90deg,#ed5087 0%,#bf1a51 100%);color:#fff;font-weight:700}
#sv-top .dk-table tbody th{background:#FCEFF4;font-weight:700;text-align:left;color:#101010}
#sv-top .dk-table .dk-price{font-weight:800;color:#C7235A;font-size:1.12em;white-space:nowrap}
#sv-top .dk-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ステップ */
#sv-top .dk-steps{list-style:none;margin:0 0 1.2em;padding:0;counter-reset:dkstep}
#sv-top .dk-steps li{counter-increment:dkstep;position:relative;padding:0 0 22px 58px;border-left:2px dashed #f3aec6;margin-left:20px}
#sv-top .dk-steps li:last-child{border-left-color:transparent;padding-bottom:0}
#sv-top .dk-steps li::before{content:"STEP " counter(dkstep);position:absolute;left:-21px;top:0;width:42px;height:42px;border-radius:50%;background:#ED5087;color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;flex-direction:column}
#sv-top .dk-steps b{display:block;font-size:clamp(15px,4vw,19px);font-weight:800;margin:.35em 0 .35em;color:#101010}
#sv-top .dk-steps p{margin:0;font-size:clamp(13.5px,3.5vw,15.5px)}

/* FAQ */
#sv-top .dk-faq{margin:0 0 1.2em}
#sv-top .dk-faq details{background:#fff;border:1px solid #ecdde3;border-radius:10px;margin-bottom:10px;overflow:hidden}
#sv-top .dk-faq summary{cursor:pointer;list-style:none;padding:15px 44px 15px 46px;font-weight:700;font-size:clamp(14px,3.7vw,17px);line-height:1.6;position:relative;color:#101010}
#sv-top .dk-faq summary::-webkit-details-marker{display:none}
#sv-top .dk-faq summary::before{content:"Q";position:absolute;left:14px;top:14px;width:24px;height:24px;border-radius:50%;background:#ED5087;color:#fff;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
#sv-top .dk-faq summary::after{content:"";position:absolute;right:18px;top:22px;width:9px;height:9px;border-right:2px solid #C7235A;border-bottom:2px solid #C7235A;transform:rotate(45deg);transition:transform .2s}
#sv-top .dk-faq details[open] summary::after{transform:rotate(-135deg)}
#sv-top .dk-faq .dk-faq-a{padding:0 18px 16px 46px;position:relative}
#sv-top .dk-faq .dk-faq-a::before{content:"A";position:absolute;left:14px;top:0;width:24px;height:24px;border-radius:50%;background:#F8E9EE;color:#C7235A;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
#sv-top .dk-faq .dk-faq-a p{font-size:clamp(13.5px,3.5vw,15.5px);margin:0 0 .7em}

/* ボタン */
#sv-top .dk-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:1.4em 0 0}
#sv-top .dk-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:700;border-radius:999px;padding:13px 24px;font-size:clamp(13.5px,3.6vw,16px);line-height:1.35;text-align:center;border:2px solid transparent}
#sv-top .dk-btn--consult{background:linear-gradient(100deg,#ED5087 0%,#DE3A76 45%,#C7235A 100%);color:#fff;box-shadow:0 3px 10px rgba(199,35,90,.28)}
#sv-top .dk-btn--consult em{font-style:normal;font-size:1.1em}
#sv-top .dk-btn--line{background:linear-gradient(180deg,#e7ffe3 0%,#8fe27a 45%,#0d6128 100%);color:#0b4d22;box-shadow:0 3px 10px rgba(13,97,40,.24)}
#sv-top .dk-btn--line .dk-btn-free{background:#fff;color:#0d6128;font-size:.8em;border-radius:999px;padding:1px 8px;margin-left:4px}
#sv-top .dk-btn--ghost{background:#fff;color:#C7235A;border-color:#ED5087}
#sv-top a.dk-btn:hover{opacity:.9}

/* 相互リンクカード */
#sv-top .dk-linkcards{display:grid;gap:12px}
@media(min-width:701px){#sv-top .dk-linkcards{grid-template-columns:repeat(3,1fr)}}
#sv-top .dk-linkcard{display:block;background:#fff;border:2px solid #f3cddb;border-radius:12px;padding:16px;text-decoration:none;color:#101010;transition:box-shadow .2s}
#sv-top .dk-linkcard:hover{box-shadow:0 4px 14px rgba(0,0,0,.1)}
#sv-top .dk-linkcard b{display:block;font-size:clamp(14.5px,3.8vw,17px);color:#C7235A;margin-bottom:.35em}
#sv-top .dk-linkcard span{display:block;font-size:clamp(12.5px,3.3vw,14.5px);line-height:1.75;color:#444}
#sv-top .dk-linkcard .dk-linkcard-price{color:#101010;font-weight:700;margin-top:.4em}

/* ===================================================================
   ファーストビュー(本体=大学編入と同じデザイン。写真は元FV画像から切り出し、
   文言はHTMLなので差し替え可能)
   =================================================================== */
#sv-top .dkfv{font-family:sans-serif;background:#fff;overflow:hidden}
#sv-top .dkfv-badges{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:13px 18px 3px;max-width:1100px;margin:0 auto}
#sv-top .dkfv-badge{background:#ED5087;color:#fff;font-weight:800;font-size:clamp(13px,3.5vw,26px);padding:2px 8px;letter-spacing:.03em;line-height:1.35}
#sv-top .dkfv-senmon{font-style:normal;color:#101010;font-weight:800;font-size:clamp(14px,3.7vw,29px);margin-left:5px;line-height:1.35}
#sv-top .dkfv-cat{padding:2px 18px 9px;color:#101010;font-weight:800;font-size:clamp(15px,4.2vw,33px);letter-spacing:.05em;max-width:1100px;margin:0 auto;line-height:1.25}

/* ---- ピンク帯 ---- */
#sv-top .dkfv-panel{position:relative;overflow:hidden;
  background:linear-gradient(100deg,#ED5087 0%,#DE3A76 45%,#C7235A 100%);
  clip-path:polygon(0 0,100% 0,100% 93%,0 100%);
  /* 写真(232x473)が収まる高さを確保: 41.3% × 473/232 = 84.2vw */
  min-height:84.2vw}
#sv-top .dkfv-photo{position:absolute;right:0;bottom:0;width:41.3%;z-index:1;line-height:0;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14%);
  mask-image:linear-gradient(to right,transparent 0,#000 14%)}
#sv-top .dkfv-photo img{display:block;width:100%;height:auto}
#sv-top .dkfv-copy{position:relative;z-index:2;max-width:1100px;margin:0 auto;
  padding:clamp(16px,4.4vw,44px) 18px clamp(30px,7.6vw,74px);
  color:#fff;font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","MS PMincho",serif}
#sv-top .dkfv-lead{font-size:clamp(19px,5.4vw,42px);font-weight:700;letter-spacing:.12em;margin:0 0 .06em;padding-left:.5em}
#sv-top .dkfv-big{font-size:clamp(78px,24vw,188px);font-weight:800;line-height:1;letter-spacing:.04em;margin:0}
#sv-top .dkfv-sub{font-size:clamp(23px,6.6vw,52px);font-weight:700;letter-spacing:.06em;margin:.16em 0 0;padding-left:.35em}
#sv-top .dkfv-sub em{font-style:normal;background:linear-gradient(transparent 66%,#FEDA28 66%);padding:0 .04em}

/* ---- 白地の設計図式 ---- */
#sv-top .dkfv-under{position:relative;background:#fff;padding:clamp(14px,3.6vw,30px) 18px clamp(16px,4vw,34px);text-align:center;color:#101010;overflow:hidden}
#sv-top .dkfv-under-in{max-width:1100px;margin:0 auto}
#sv-top .dkfv-teacher{position:absolute;left:1%;bottom:0;width:min(27vw,240px);height:auto;z-index:1}
#sv-top .dkfv-u1{font-weight:800;font-size:clamp(13px,3.6vw,25px);margin:0 auto 12px;border-bottom:2px solid #101010;display:inline-block;padding-bottom:3px;line-height:1.4}
#sv-top .dkfv-u2{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;font-weight:800;font-size:clamp(12px,3.4vw,23px);margin:0 0 9px}
#sv-top .dkfv-box{border:1.5px solid #101010;border-radius:4px;padding:3px 10px;background:#fff}
#sv-top .dkfv-x{font-size:1.15em;font-weight:800;color:#666}
#sv-top .dkfv-u3{font-weight:800;font-size:clamp(13px,3.7vw,25px);margin:0 0 5px;line-height:1.5}
#sv-top .dkfv-u3 strong{color:#ED5087;font-size:1.1em}
#sv-top .dkfv-u4{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:800;font-size:clamp(20px,5.6vw,40px);margin:0;line-height:1.35}
#sv-top .dkfv-u4 em{font-style:normal;background:linear-gradient(transparent 62%,#FEDA28 62%);padding:0 .08em}

/* 左下の講師写真ぶんだけ本文を右に寄せる */
#sv-top .dkfv-under-in{padding-left:min(26vw,230px)}
@media(min-width:701px){
  /* 本体(編入)実測: ピンク帯の高さ = 幅の30.5% */
  #sv-top .dkfv-panel{min-height:30.5vw}
  #sv-top .dkfv-copy{padding-top:1.6vw;padding-bottom:2.4vw}
  #sv-top .dkfv-photo{width:48.6%;mask-image:linear-gradient(to right,transparent 0,#000 10%);
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 10%)}
  #sv-top .dkfv-copy{padding-right:50%}
  #sv-top .dkfv-teacher{width:min(15vw,210px);left:3%}
  #sv-top .dkfv-under-in{padding-left:min(17vw,240px)}
}

/* ===================================================================
   ヘッダー(本体 spring-online.jp と同じ構成)
   赤インフォバー → キャッチフレーズ帯 → ロゴ＋グローバルナビ
   =================================================================== */
#sv-top .dk-infobar{background:#DD0000;color:#fff;text-align:center;font-size:13px;font-weight:700;padding:4px 10px;letter-spacing:.04em;line-height:1.4}
#sv-top .dk-header{background:#fff;border-bottom:1px solid #eee}
#sv-top .dk-header-bar{background:#DD0000;color:#fff}
#sv-top .dk-header-bar-in{max-width:1200px;margin:0 auto;padding:2px 18px;font-size:12px;font-weight:700;letter-spacing:.03em;line-height:1.5}
#sv-top .dk-header-in{max-width:1200px;margin:0 auto;padding:8px 18px;display:flex;align-items:center;gap:20px}
#sv-top .dk-logo{flex:0 0 auto;line-height:0}
#sv-top .dk-logo img{width:clamp(130px,17vw,205px);height:auto;display:block}
#sv-top .dk-gnav{flex:1 1 auto;min-width:0}
#sv-top .dk-gnav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px 20px}
#sv-top .dk-gnav li{font-size:14px;font-weight:600;line-height:1.4}
#sv-top .dk-gnav a{color:#1a1a1a;text-decoration:none;display:block;padding:6px 2px;transition:color .15s}
#sv-top .dk-gnav a:hover{color:#ED5087}
#sv-top .dk-gnav .dk-gnav-cur a{color:#ED5087}
#sv-top .dk-gnav .dk-gnav-ext a{font-size:12.5px;text-align:center;line-height:1.35}
/* スマホではナビを畳んでハンバーガーに任せる */
@media (max-width:900px){
  #sv-top .dk-gnav{display:none}
  #sv-top .dk-header-in{padding:7px 60px 7px 14px}
  #sv-top .dk-header-bar-in{padding:2px 14px;font-size:11px}
  #sv-top .dk-infobar{font-size:11.5px}
}
/* ハンバーガーはヘッダーに重ならない位置へ */
@media (min-width:901px){#dk-navbtn{display:none}}
