/* =========================================
   StudyIn / Philippine LP — 完全版CSS
   (模範レイアウトを忠実再現 + 最小カスタム)
   last update: 2025-09-19
   ========================================= */

/* ========== Base / Reset ========== */
@charset "UTF-8";

:root{
  /* Brand */
  --pink: #D93657;
  --pink-weak: #FFFAFB;
  --yellow: #F9DC5C;
  --ink: #000;
  --gray: #606060;
  --light: #fff;
  --bg-soft: #FFF5F7;

  /* Layout */
  --bp-sp: 768px;
  --container-pc: 12.5vw;

  /* CTA (ワーホリ丸パクリ) */
  --cta-grad-1:#2fd47e;
  --cta-grad-2:#21b76c;
  --cta-grad-3:#179e5c;
  --cta-shadow:#0b7a42;

  /* FV 0円POP（テキスト帯を使う場合） */
  --ribbon-pc-w: clamp(340px, 30vw, 460px);
  --ribbon-left: clamp(16px, 3.6vw, 72px);
  --ribbon-top:  clamp(14px, 5vw, 96px);

  /* FV 0円POP（<picture>画像帯を使う場合のPC幅） */
  --ribbon-pic-w-pc: 30vw;  /* ←「少し小さく」 */
}

*,
*::before,
*::after{
  box-sizing: border-box;
  margin:0; padding:0; border:0; outline:0;
  background: transparent;
  list-style: none;
}

html{ scroll-behavior:smooth; }
picture{ display:block; }

img, video{
  display:block; width:100%; max-width:100%; height:auto;
  font-size:0; line-height:0; vertical-align:bottom;
}

body{
  font-family: "Noto Sans JP", Helvetica, Arial, "Hiragino Sans", YuGothic, "Yu Gothic medium", sans-serif;
  -webkit-text-size-adjust:100%;
  text-rendering: optimizeLegibility;
  word-wrap: break-word;
  overflow-wrap: break-word;
  color: var(--ink);
  font-size: 1.406vw;   /* 18px相当@1280 */
  line-height: 2.16;
  letter-spacing: .08em;
  display:flex; flex-direction:column; min-height:100vh; min-height:100dvh;
}
@media (max-width:768px){
  body{ font-size:3.255vw; line-height:1.92; }
}

a{ color: currentColor; text-decoration:none; }
a[href^="tel:"]{ pointer-events:none; }
@media (max-width:768px){ a[href^="tel:"]{ pointer-events:auto; } }

small{ font-weight:normal; }
strong{ font-weight:900; }

/* Utils */
.pink{ color:var(--pink); }
.yellow{ color:var(--yellow); }
.aligncenter{ text-align:center !important; }
@media (min-width:769px){ .pc_hide{ display:none !important; } }
@media (max-width:768px){ .sp_hide{ display:none !important; } }

/* =========================================
   Header / Footer
   ========================================= */
.fwh-header{
  display:flex; align-items:center; justify-content:center;
  height: min(6.25vw, 80px);
}
@media (max-width:768px){ .fwh-header{ height:12.5vw; } }

.fwh-header_logo{ width:min(11.875vw,152px); line-height:0; }
@media (max-width:768px){ .fwh-header_logo{ width:31.25vw; } }

.fwh-footer{ margin-top:auto; }
.fwh-footer_copyright{
  text-align:center; background:var(--pink); color:#fff;
  padding:.32em 0; letter-spacing:.04em;
}
@media (max-width:768px){ .fwh-footer_copyright{ font-size:2.344vw; } }
.fwh-footer_copyright small{ display:block; }

/* 右下の固定画像CTA（模範同等） */
.fwh-footer_cta{
  position:fixed; right:0; bottom:0; width:13.281vw; opacity:0;
  transform: translate3d(0, 100%, 0);
  transition:.8s; z-index:100; pointer-events:auto; overflow:hidden;
}
@media (max-width:768px){ .fwh-footer_cta{ width:26.042vw; } }
.fwh-footer_cta picture{ transition:.4s; }
.fwh-footer_cta:hover picture{ opacity:.8; }
.body_sticky .fwh-footer_cta{ opacity:1; transform:translateY(0); }
.fixed_btn_remove .fwh-footer_cta{ opacity:0; pointer-events:none; }

/* 画像上に緑CTAを透明オーバー（クリックだけ通す） */
.fwh-footer_cta .btn_cta{
  position:absolute; inset:0; opacity:0 !important;
  background:transparent !important; box-shadow:none !important; pointer-events:auto !important;
}

/* =========================================
   Hero / First View（模範コピー + 最小上書き）
   ========================================= */
.fwh-fv{
  position:relative; overflow:hidden; min-height:42vw;
  background: url("../images/ph_air1_4r.png") no-repeat center/cover;
}
.webp .fwh-fv{ background-image:url("../images/ph_air1_4.png"); }

@media (max-width:768px){
  .fwh-fv{
    min-height:115.625vw;
    background: url("../images/ph_sp_neture2.png") no-repeat center bottom/100%;
  }
  .webp .fwh-fv{ background-image:url("../images/ph_sp_neture2.png"); }
}

.fwh-fv_header{
  padding: 6.875vw 0 0 var(--container-pc);
  position:relative; z-index:1;
}

/* ===== 0円POP：<picture>帯を使う場合（模範のまま・PCだけ少し小さく） ===== */
.fwh-fv_header > picture{
  display:block;
  width:auto;
}
@media (min-width:769px){
  .fwh-fv_header > picture img{ width: var(--ribbon-pic-w-pc); height:auto; }
}

/* ===== テキスト版（.fv-ribbon）を使う場合もサポート ===== */
#fwh-fv{ position:relative; }
#fwh-fv .fv-ribbon{
  position:absolute; z-index:3;
  display:flex; align-items:center; gap:clamp(8px,1.2vw,14px);
  background:linear-gradient(135deg,#6a5cf6 0%,#ff5ea8 100%);
  color:#fff; border-radius:12px; box-shadow:0 6px 18px rgba(0,0,0,.18);
  padding:clamp(10px,1.2vw,16px) clamp(14px,1.6vw,22px);
  width: var(--ribbon-pc-w);
  left: var(--ribbon-left);
  top:  var(--ribbon-top);
}
#fwh-fv .fv-ribbon__left{ display:flex; flex-direction:column; gap:.36em; line-height:1.2; }
#fwh-fv .fv-ribbon__label{ font-weight:700; opacity:.95; font-size:clamp(12px,1.05vw,14px); }
#fwh-fv .fv-ribbon__ttl  { font-weight:900; letter-spacing:.02em; font-size:clamp(16px,1.8vw,22px); }
#fwh-fv .fv-ribbon__fee{
  display:flex; align-items:center; gap:.45em;
  background:rgba(255,255,255,.16); border:2px solid rgba(255,255,255,.7);
  padding:.36em .7em; border-radius:10px; line-height:1;
}
#fwh-fv .fv-ribbon__num{ font-weight:900; font-size:clamp(28px,2.8vw,40px); }
#fwh-fv .fv-ribbon__yen{ font-weight:800; font-size:clamp(11px,1.1vw,14px); }

/* h1 の被り回避（帯のぶん下げ） */
.fwh-fv_header::before{ content:""; display:block; height: clamp(60px, 8vw, 110px); }

/* 見出し（赤帯） */
.fwh-fv_header h1{
  font-size:2.656vw; line-height:1.44; letter-spacing:.08em; margin-top:.64em;
}
.fwh-fv_header h1 .span1{
  display:table; color:#fff; background:var(--pink);
  padding:0 .32em; margin:.32em 0;
}
.fwh-fv_header h1 .span1:first-of-type{ padding-right:0; }
.fwh-fv_header h1 .span2{ font-size:80%; }

/* 右下の人物/背景イラスト */
.fwh-fv_picture{ position:absolute; width:54.766vw; right:3.125vw; bottom:0; }
@media (max-width:768px){ .fwh-fv_picture{ width:115vw; right:-6vw; bottom:0; } }

/* 白い実績ボックス */
.fwh-fv_footer{
  position:absolute; right: var(--container-pc); bottom:4.375vw;
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-size:1.25vw; font-weight:bold; line-height:1.52; background:#fff;
  border:.273vw solid #fff;
  box-shadow: 0 0 0 .156vw var(--pink) inset, 0 .313vw .313vw rgba(0,0,0,.24);
  width:35.859vw; height:7.5vw;
}
.fwh-fv_footer dt{ width:13.125vw; margin-right:1.6em; }

/* ===== SP（≤768px）模範準拠レイアウト ===== */
@media (max-width:768px){
  /* 帯：画面上部に横断幕（pictureでも.ribonでもOK） */
  .fwh-fv_header::before{ height:92px; }

  /* 赤い短冊の位置 */
  .fwh-fv_header h1{
    position:absolute; left:6px; top:118px;
    font-size:24px; line-height:1.12; margin:0;
  }

  /* 白ボックスは段落として下に回す */
  .fwh-fv_footer{
    position:relative !important; right:auto !important; bottom:auto !important;
    width:auto; height:auto; margin: 12px 16px 0;
    font-size:2.865vw; border:.456vw solid #fff;
    box-shadow: 0 0 0 .26vw var(--pink) inset, 0 .521vw .521vw rgba(0,0,0,.24);
    padding:17px 12px;
  }
  .fwh-fv_footer dt{ width:33.333vw; }
  .fwh-fv_footer .pink{ font-size:112%; }
}

/* =========================================
   CTA（ワーホリの緑ボタン 丸パクリ）
   ========================================= */
.fwh-sec01_cta, .fwh-cta_footer{
  text-align:center; display:flex; flex-direction:column; align-items:center;
}
.fwh-sec01_cta_btn, .fwh-cta_footer_btn{
  position:relative; display:flex; justify-content:center;
  width:min(1200px, 92vw); margin-inline:auto;
}

/* ボタン本体（中央1行・「＼ ／」・下に小さな飛行機） */
.btn_cta{
  --cta-h: 72px;        /* PC */
  --cta-h-sp: 58px;     /* SP */

  display:flex; align-items:center; justify-content:center;
  width:100%; height:var(--cta-h);
  padding:0 28px; color:#fff; font-weight:900; letter-spacing:.08em;
  text-align:center; text-decoration:none; border-radius:34px;
  background: linear-gradient(180deg,var(--cta-grad-1) 0%, var(--cta-grad-2) 52%, var(--cta-grad-3) 100%);
  box-shadow: 0 14px 0 var(--cta-shadow), inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .05s ease, filter .2s ease;
  position:relative; overflow:hidden;
}

/* 斜めのキラッ */
.btn_cta.ani--bright::before{
  content:""; position:absolute; top:-160%; left:-30%;
  width:110px; height:360%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.9) 45%,transparent);
  transform: rotate(25deg);
  animation: ctaShine 4.6s linear infinite; pointer-events:none;
}
@keyframes ctaShine{
  0%{ left:-30%; } 28%{ left:130%; } 100%{ left:130%; }
}

/* 中央下の飛行機 */
.btn_cta::after{
  content:"";
  position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
  width:22px; height:22px; opacity:.95;
  background: url('../images/icon_plane_1.svg') no-repeat center/contain;
}

/* 「＼ 文言 ／」の括り */
.btn_cta > span, .btn_cta > strong{ pointer-events:none; }
.btn_cta > .cta_label::before{ content:"＼"; margin-right:.4em; }
.btn_cta > .cta_label::after { content:"／"; margin-left:.4em; }

/* echo/サブ行は使わない（模範どおり1行） */
.fwh-sec01_cta_btn .echo{ display:none; }

.btn_cta:hover{ filter:brightness(1.03); transform: translateY(1px);
  box-shadow: 0 12px 0 var(--cta-shadow), inset 0 1px 0 rgba(255,255,255,.35); }
.btn_cta:active{ transform: translateY(3px);
  box-shadow: 0 8px 0 var(--cta-shadow), inset 0 1px 0 rgba(255,255,255,.35); }

@media (max-width:768px){
  .btn_cta{ height: var(--cta-h-sp); border-radius:999px; }
}

/* =========================================
   Section 01（模範）
   ========================================= */
.fwh-sec01{ padding:1.875vw 0; overflow:hidden; }
@media (max-width:768px){ .fwh-sec01{ padding:4.167vw 0 7.292vw; } }
.fwh-sec01_cta_btn{ margin-bottom:.781vw; }
@media (max-width:768px){ .fwh-sec01_cta_btn{ margin-bottom:1.563vw; } }
.fwh-sec01_cta_note{ color:#0D7E23; }
.fwh-sec01_cta_note small{ display:block; font-size:1.094vw; }
@media (max-width:768px){ .fwh-sec01_cta_note small{ font-size:3.125vw; } }

.fwh-sec01_media{ width:53.281vw; margin: 1.875vw auto; }
.fwh-sec01_swiper{ margin-top:6.25vw; }
.fwh-sec01_swiper .swiper-wrapper{ transition-timing-function: linear; }

/* =========================================
   Section 02（Problem）模範
   ========================================= */
.fwh-sec02{
  background:
    url("../images/img_fwh-sec02_1.jpg") no-repeat center top/100%,
    url("../images/img_fwh-sec02_2.jpg") repeat center bottom/100%;
  padding:5vw var(--container-pc) 6.25vw; overflow:hidden; color:#fff;
}
@media (max-width:768px){
  .fwh-sec02{
    padding:4.167vw 10.417vw 9.375vw;
    background-size: 240%, 166.667vw;
  }
}
.webp .fwh-sec02{
  background-image: url("../images/img_fwh-sec02_1.webp"), url("../images/img_fwh-sec02_2.jpg");
}
.fwh-sec02_header{ text-align:center; }
.fwh-sec02_header h2{ width:35.625vw; margin:auto; }
@media (max-width:768px){ .fwh-sec02_header h2{ width:59.375vw; } }

.fwh-sec02_header p{
  font-weight:bold; display:flex; flex-direction:column; align-items:center;
  font-size:1.875vw; line-height:1.36; margin:2.813vw 0;
}
@media (max-width:768px){
  .fwh-sec02_header p{ font-size:3.906vw; margin:6.25vw 0 5.208vw; }
}
.fwh-sec02_header p .span1{
  background:url("../images/icon_deco_1.svg") no-repeat center bottom/100%;
  width:29.375vw; padding-bottom:2.5vw; margin-bottom:1.25vw;
}
@media (max-width:768px){
  .fwh-sec02_header p .span1{
    width:66.992vw; padding-bottom:5.208vw; margin-bottom:2.083vw;
  }
}
.fwh-sec02_header p .span2{ font-size:136%; font-weight:900; }

.fwh-sec02_header ul{
  display:flex; flex-wrap:wrap; justify-content:space-between;
  font-weight:900; line-height:1.44; font-size:1.328vw;
}
@media (max-width:768px){ .fwh-sec02_header ul{ font-size:2.734vw; } }

.fwh-sec02_header li{
  width:24%; min-height:10vw; display:flex; justify-content:center; align-items:center;
  background: rgba(0,0,0,.32); border:2px solid;
}
@media (max-width:768px){
  .fwh-sec02_header li{
    width:48.5%; min-height:16.667vw; margin:1.042vw 0; border-width:1px;
  }
}

/* 白帯のインフォ */
.fwh-sec02_inside{
  margin:3.125vw 0; background:#fff; color:#000; text-align:center;
  font-size:1.563vw; line-height:2; padding:1.563vw 0 2.5vw; position:relative;
}
.fwh-sec02_inside::before{
  content:"▼"; line-height:1.04; position:absolute; left:50%; top:100%;
  transform: translate(-50%, -48%) scaleX(1.2); color:#fff; font-size:3.125vw;
}
@media (max-width:768px){
  .fwh-sec02_inside{ margin:5.208vw 0; font-size:3.125vw; line-height:2.56; padding:4.167vw 0 5.208vw; }
  .fwh-sec02_inside::before{ font-size:5.208vw; }
}
.fwh-sec02_inside h3{ width:30.625vw; margin:0 auto 1.875vw; }
@media (max-width:768px){ .fwh-sec02_inside h3{ width:56.771vw; margin-bottom:3.125vw; } }
.fwh-sec02_inside p{ margin-top:1em; }
.fwh-sec02_inside p strong{
  font-weight:900; background: linear-gradient(0deg, var(--yellow) .8em, rgba(249,220,92,0) .8em);
  padding-bottom:.1em;
}

/* 落とし穴 */
.fwh-sec02_miss, .fwh-sec02_trap{ font-size:1.875vw; line-height:1.84; }
@media (max-width:768px){ .fwh-sec02_miss, .fwh-sec02_trap{ font-size:3.125vw; } }

.fwh-sec02_miss{ margin:4.375vw 0 3.125vw; }
@media (max-width:768px){ .fwh-sec02_miss{ margin:5.208vw 0; } }

.fwh-sec02_miss h3{
  text-align:center; font-size:2.5vw; font-weight:900; margin:1em 0;
}
@media (max-width:768px){
  .fwh-sec02_miss h3{ text-align:left; font-size:5.208vw; margin-bottom:.64em; }
}

.fwh-sec02_miss_content{
  display:flex; flex-wrap:wrap; align-items:center; position:relative;
}
@media (max-width:768px){ .fwh-sec02_miss_content{ flex-direction:column; } }

.fwh-sec02_miss_content::before{
  content:""; background:url("../images/img_fwh-sec02_5.png") no-repeat center/contain;
  width:19.844vw; height:10.938vw; position:absolute; left:-9.375vw; top:-5vw;
}
@media (max-width:768px){
  .fwh-sec02_miss_content::before{
    width:33.073vw; height:18.229vw; right:-11.458vw; top:-8.333vw; left:auto; transform:rotate(32deg);
  }
}

.fwh-sec02_miss_content picture{ width:37.5vw; height:22.188vw; overflow:hidden; }
.fwh-sec02_miss_content picture img{ max-width:none; width:40.625vw; height:100%; object-fit:cover; }
@media (max-width:768px){
  .fwh-sec02_miss_content picture{ width:100%; height:auto; margin-bottom:7.292vw; }
  .fwh-sec02_miss_content picture img{ width:100%; }
}

.fwh-sec02_miss_content_text{
  width: calc(100% - 37.5vw); padding-left:2.5vw; position:relative;
}
@media (max-width:768px){ .fwh-sec02_miss_content_text{ width:100%; padding:0; position:static; } }

.fwh-sec02_miss_content_text h4{
  font-weight:900; font-size:3.125vw; line-height:1.36; margin-bottom:.64em; white-space:nowrap;
}
@media (max-width:768px){
  .fwh-sec02_miss_content_text h4{
    font-size:5.208vw; position:absolute; left:3.125vw; top:3.125vw;
  }
}
.fwh-sec02_miss_content_text h4 .span1{
  position:absolute; left:-15.625vw; color:#000; display:flex; align-items:center;
}
.fwh-sec02_miss_content_text h4 .span1::after{
  content:""; height:1px; width:1.76em; background:#000; margin-left:-.4em;
}
@media (max-width:768px){
  .fwh-sec02_miss_content_text h4 .span1{ position:static; color:#fff; flex-direction:column; align-items:flex-start; }
  .fwh-sec02_miss_content_text h4 .span1::after{
    background:#fff; margin:.32em .533em; width:1px; height:15.625vw;
  }
}

/* トラップ図 */
@media (max-width:768px){ .fwh-sec02_trap p{ padding-right:30.208vw; } }
.fwh-sec02_trap picture{ margin-top:-11.875vw; }
@media (max-width:768px){
  .fwh-sec02_trap picture{ width:93.229vw; margin:-47.917vw -5.208vw 0 -3.125vw; }
}

/* =========================================
   CTAセクション（背景/見出し/特典）模範
   ========================================= */
.webp .fwh-cta{ background-image:url(../images/img_fwh-cta_1.webp); }
.fwh-cta{ background:url(../images/img_fwh-cta_1.jpg) no-repeat center/cover; }
.fwh-cta_inner{ background:url("../images/img_fwh-cta_1.jpg") no-repeat center/cover; }
.webp .fwh-cta_inner{ background-image:url("../images/img_fwh-cta_1.webp"); }

.fwh-cta_header{ padding:5vw var(--container-pc) 6.875vw; }
@media (max-width:768px){ .fwh-cta_header{ padding:6.25vw 5.208vw 22.083vw; } }

.fwh-cta_header h2{ display:flex; align-items:center; margin: 0 0 -10vw 7.5vw; }
.fwh-cta_header h2::after{
  content:""; background:url("../images/icon_plane_1.svg") no-repeat center/contain;
  width:8.75vw; height:8.75vw; margin: 0 0 1.875vw 2.5vw;
}
.fwh-cta_header h2 img{ width:31.25vw; }
@media (max-width:768px){
  .fwh-cta_header h2{ margin:0 0 -7.292vw 0; }
  .fwh-cta_header h2::after{ width:14.583vw; height:14.583vw; margin:0 0 1.563vw 3.125vw; }
  .fwh-cta_header h2 img{ width:55.208vw; }
}

/* 特典ボックス */
.fwh-cta_benefits{
  width:75vw; margin:0 auto 1.375vw; text-align:center; color:#fff; position:relative;
  border-style:solid; border-width:0 1px 1px; white-space:nowrap;
}
.fwh-cta_benefits::before,.fwh-cta_benefits::after{
  content:""; height:1px; width:15vw; background:#fff; position:absolute; top:0;
}
.fwh-cta_benefits::before{ left:0; } .fwh-cta_benefits::after{ right:0; }

@media (max-width:768px){
  .fwh-cta_benefits{ width:89.583vw; margin-bottom:9.375vw; }
  .fwh-cta_benefits::before, .fwh-cta_benefits::after{ width:13.542vw; }
}
.fwh-cta_benefits h3{
  font-size:2.656vw; line-height:1.28; display:flex; justify-content:center; align-items:center;
  letter-spacing:.16em; position:absolute; left:50%; top:0; transform:translate(-50%, -55%);
  flex-direction:column;
}
@media (max-width:768px){
  .fwh-cta_benefits h3{ font-size:6.51vw; letter-spacing:.08em; transform:translate(-50%,-74%); }
}
.fwh-cta_benefits h3 .span1{ text-align:right; margin-right:.64em; }
@media (max-width:768px){ .fwh-cta_benefits h3 .span1{ margin:0 0 20% 0; font-weight:900; } }
.fwh-cta_benefits h3 .span2{ font-size:85%; padding-top:3%; }
@media (max-width:768px){ .fwh-cta_benefits h3 .span2{ font-size:70%; padding-top:17%; position:absolute; } }

.fwh-cta_benefits_content{
  display:flex; justify-content:space-between;
  padding:5.625vw 4.375vw 1.25vw; line-height:1.44; font-weight:bold; font-size:1.875vw;
}
@media (max-width:768px){
  .fwh-cta_benefits_content{
    flex-direction:column; padding:10.458vw 7.292vw 0; font-size:3.125vw;
  }
  .benefits_content_img{ width:84%; align-self:center; margin-bottom:3vw; }
  .fwh-cta_benefits_content_list img{ position:relative; width:100%; height:auto; z-index:1; }
}
.fwh-cta_benefits_content_list{ width:47%; display:flex; flex-direction:column; align-items:center; }
.fwh-cta_benefits_content_list:last-of-type{ width:49%; align-self:center; }
@media (max-width:768px){
  .fwh-cta_benefits_content_list{ width:37.37vw; }
  .fwh-cta_benefits_content_list:last-of-type{ width:100%; text-align:left; }
}
.fwh-cta_benefits_content p{ margin:.4em 0; width:61vw; }
@media (max-width:768px){ .fwh-cta_benefits_content p{ width:auto; } }

.fwh-cta_benefits_p{ line-height:1.44; font-weight:bold; font-size:2vw; margin:.4em 0; padding-bottom:1.25vw; }
@media (max-width:768px){ .fwh-cta_benefits_p{ font-size:4.4vw; } }

.fwh-cta_benefits_b{
  color:#fff; width:75vw; margin:0 auto; font-size:1.2rem; padding-bottom:5vw; text-align:center;
}
@media (max-width:768px){
  .fwh-cta_benefits_b{ width:89.583vw; font-size:.70rem; padding-bottom:10.083vw; }
}

/* 吹き出し色（上書き可） */
:root{ --balloon-bg:#fff5cc; --balloon-fg:#000; }
h4.balloon{
  background:var(--balloon-bg) !important; color:var(--balloon-fg) !important;
  border-radius:12px; padding:10px 16px; display:inline-block; position:relative; line-height:1.4;
}
.fwh-sec01 h4.balloon::after,
.fwh-cta .fwh-cta_footer h4.balloon::after,
.fwh-sec12 .fwh-cta_footer h4.balloon::after{ content:none !important; }
h4.balloon::before{
  content:""; position:absolute; left:50%; bottom:-12px; transform:translateX(-50%);
  width:0; height:0; border:12px solid transparent; border-top-color:var(--balloon-bg);
}

.fwh-cta_footer{
  background:rgba(255,255,255,.88); text-align:center;
  display:flex; flex-direction:column; align-items:center; padding-bottom:1.25vw;
}
@media (max-width:768px){ .fwh-cta_footer{ padding-bottom:3.125vw; } }
.fwh-cta_footer_btn{ margin:.781vw 0; }
@media (max-width:768px){ .fwh-cta_footer_btn{ margin:3.125vw 0 1.563vw; } }

/* =========================================
   Section 04（失敗しない〜）模範
   ========================================= */
.fwh-sec04{
  position:relative; padding:4.375vw 0;
  background-image: repeating-linear-gradient(-36deg, #FFFBFC, #FFFBFC 2.5vw, #fff 0, #fff 6.25vw);
}
@media (max-width:768px){
  .fwh-sec04{
    padding:7.292vw 0 0;
    background-image: repeating-linear-gradient(-40deg, #FFFBFC, #FFFBFC 4.167vw, #fff 0, #fff 10.417vw);
  }
}
.fwh-sec04 h2{
  text-align:center; display:flex; flex-direction:column; align-items:center; line-height:1.36; font-size:1.563vw;
}
@media (max-width:768px){ .fwh-sec04 h2{ font-size:3.906vw; } }

/* 画像フキダシ（幅だけ可変） */
:root{ --sec04-bubble-w-pc: 70vw; --sec04-bubble-w-sp: 102vw; }
.fwh-sec04 h2 .span1.span1-wide{
  display:block !important; flex:0 0 auto !important;
  background: url("../images/img_fwh-sec04_1.svg") no-repeat 0 0 / 100% 60% !important;
  width: var(--sec04-bubble-w-pc) !important;
  aspect-ratio: 3.318 / 1 !important; height:auto !important;
  margin-inline:auto !important; white-space:nowrap !important; ; color:#fff; letter-spacing:.06em; padding-top:1.25vw;
}
@media (max-width:768px){
  .fwh-sec04 h2 .span1.span1-wide{
    background-image:url("../images/img_fwh-sec04_2.svg") !important;
    width: var(--sec04-bubble-w-sp) !important; aspect-ratio: 5.129 / 1 !important; padding-top:2vw;
  }
}
.fwh-sec04 h2 .span2{ font-size:144%; font-weight:900; color:#000; letter-spacing:.1em; }
@media (max-width:768px){ .fwh-sec04 h2 .span2{ font-size:136%; } }
.fwh-sec04 h2 .span3{ font-size:144%; }
@media (max-width:768px){ .fwh-sec04 h2 .span3{ font-size:160%; } }

.fwh-sec04_content{
  width:33.125vw; margin:4.375vw 0 0 var(--container-pc);
  border:1px solid var(--pink); box-shadow:-.625vw .625vw 0 var(--pink);
}
@media (max-width:768px){
  .fwh-sec04_content{ width:auto; margin:5.208vw 5.208vw 8.333vw; border:none; box-shadow:none; }
  .fwh-sec04_content picture img{ height:46.875vw; object-fit:cover; }
}
.fwh-sec04_content_text{
  font-size:1.875vw; font-weight:500; line-height:2.08; padding:1em 1.28em; background:#fff;
}
@media (max-width:768px){
  .fwh-sec04_content_text{
    font-size:3.385vw; line-height:1.92; margin:-11.458vw 5.208vw 0; border:1px solid var(--pink);
    position:relative; box-shadow:-1.042vw 1.042vw 0 var(--pink);
  }
}
.fwh-sec04_footer{
  position:absolute; right:1.875vw; bottom:0; width:48.828vw;
}
@media (max-width:768px){ .fwh-sec04_footer{ position:static; margin-left:auto; width:89.974vw; } }

/* =========================================
   Section 05（3つの理由）模範
   ========================================= */
.fwh-sec05{ background:var(--bg-soft); padding:3.75vw 0 5vw; }
@media (max-width:768px){ .fwh-sec05{ padding:8.333vw 0 0; } }
.fwh-sec05_header{ text-align:center; margin-bottom:7.5vw; }
@media (max-width:768px){ .fwh-sec05_header{ margin-bottom:8.333vw; } }
.fwh-sec05_header h2{ width:31.875vw; margin:auto; }
@media (max-width:768px){ .fwh-sec05_header h2{ width:65.625vw; } }

.fwh-sec05_header h3{
  display:flex; flex-direction:column; align-items:center;
  font-size:2.188vw; white-space:nowrap; letter-spacing:.1em; line-height:1.36; margin:3.75vw 0;
}
@media (max-width:768px){
  .fwh-sec05_header h3{ font-size:3.906vw; margin:6.25vw 0; }
}
.fwh-sec05_header h3 .span1{
  background:url("../images/icon_deco_2.svg") no-repeat center bottom/100%;
  width:25vw; padding-bottom:3.125vw;
}
@media (max-width:768px){ .fwh-sec05_header h3 .span1{ width:41.667vw; padding-bottom:5.208vw; } }
.fwh-sec05_header h3 .span2{ font-size:256%; font-weight:900; }
@media (max-width:768px){ .fwh-sec05_header h3 .span2{ font-size:300%; } }
.fwh-sec05_header h3 .span3{ font-size:64%; }

.fwh-sec05_reason{
  padding-left: var(--container-pc);
  display:flex; align-items:flex-start; flex-wrap:wrap; margin-top:6.25vw;
}
@media (max-width:768px){
  .fwh-sec05_reason{ padding:0; margin:0; flex-direction:column; border-bottom:1.042vw solid var(--pink); }
}
.fwh-sec05_reason picture{ position:relative; width:38.203vw; }
@media (max-width:768px){ .fwh-sec05_reason picture{ width:100%; } }
.fwh-sec05_reason picture::before{
  content:""; background:url("../images/icon_num_1.svg") no-repeat center/contain;
  width:9.141vw; height:9.141vw; left:0; top:0; transform:translate(-50%,-50%);
  position:absolute;
}
@media (max-width:768px){
  .fwh-sec05_reason picture::before{
    background-image:url("../images/icon_num_4.png"); transform:translate(16%,16%);
    width:15.234vw; height:15.234vw;
  }
}
.fwh-sec05_reason_content{ width:41.563vw; margin:0 0 0 -8.125vw; position:relative; }
@media (max-width:768px){
  .fwh-sec05_reason_content{ width:100%; margin:0; background:#fff; padding:0 9.896vw 8.333vw; }
}
.fwh-sec05_reason_content h4{
  text-align:center; color:var(--pink); font-weight:900; font-size:2.969vw; line-height:1.36;
  position:relative; display:table; max-width:100%; margin:4.375vw auto 1.25vw; padding-left:3.75vw;
}
@media (max-width:768px){ .fwh-sec05_reason_content h4{ font-size:7.292vw; margin:5.208vw auto; } }
.fwh-sec05_reason_content h4 .img1{ position:absolute; width:9.375vw; left:-4.375vw; top:-7.5vw; }
@media (max-width:768px){ .fwh-sec05_reason_content h4 .img1{ width:15.625vw; left:-11.458vw; top:-12.5vw; } }
.fwh-sec05_reason_content h4 .img2{ width:2.4em; vertical-align:-.32em; margin:-1.6em .1em 0 .2em; }
@media (max-width:768px){ .fwh-sec05_reason_content h4 .img2{ width:1.92em; } }
.fwh-sec05_reason_content_text{
  background:#fff; border-radius:1.563vw; padding:2.5vw; line-height:1.76; letter-spacing:.1em;
}
@media (max-width:768px){
  .fwh-sec05_reason_content_text{ background:var(--bg-soft); border-radius:2.604vw; padding:4.167vw; }
}
.fwh-sec05_reason.reason2 picture::before{ background-image:url("../images/icon_num_2.svg"); }
@media (max-width:768px){ .fwh-sec05_reason.reason2 picture::before{ background-image:url("../images/icon_num_5.png"); } }
.fwh-sec05_reason.reason3 picture::before{ background-image:url("../images/icon_num_3.svg"); }
@media (max-width:768px){ .fwh-sec05_reason.reason3 picture::before{ background-image:url("../images/icon_num_6.png"); } }
.fwh-sec05_reason.reason3 .fwh-sec05_reason_content h4{ padding-left:0; margin:1.25vw 1.25vw 1.25vw auto; }
@media (max-width:768px){ .fwh-sec05_reason.reason3 .fwh-sec05_reason_content h4{ margin:5.208vw auto; } }
.fwh-sec05_reason.reason3 .fwh-sec05_reason_content h4 .img1{ left:-5.625vw; top:-5.625vw; }
@media (max-width:768px){ .fwh-sec05_reason.reason3 .fwh-sec05_reason_content h4 .img1{ left:-5.208vw; top:-11.458vw; } }

/* =========================================
   Section 06（キャンセル料）模範
   ========================================= */
.fwh-sec06{
  background:url("../images/img_fwh-sec06_1.jpg") no-repeat center/100% 100%;
  padding:1.875vw var(--container-pc) 4.375vw; overflow:hidden;
}
.webp .fwh-sec06{ background-image:url("../images/img_fwh-sec06_1.webp"); }
@media (max-width:768px){ .fwh-sec06{ padding:8.333vw 0; } }

.fwh-sec06_header{ position:relative; padding:0 0 2.5vw 8.125vw; }
@media (max-width:768px){ .fwh-sec06_header{ padding:0 0 8.333vw 7.292vw; } }
.fwh-sec06_header_title{ position:relative; z-index:1; width:32.578vw; }
@media (max-width:768px){ .fwh-sec06_header_title{ width:61.393vw; } }
.fwh-sec06_header_image{ position:absolute; right:3.125vw; bottom:0; width:29.688vw; }
@media (max-width:768px){ .fwh-sec06_header_image{ right:-12.5vw; width:64.583vw; } }

.fwh-sec06_content{
  background:#fff; padding:1.875vw 3.125vw; display:flex; flex-wrap:wrap; align-items:center;
}
@media (max-width:768px){ .fwh-sec06_content{ background:none; padding:0; flex-direction:column; } }
.fwh-sec06_content figure{ width:32.5vw; }
@media (max-width:768px){ .fwh-sec06_content figure{ width:100%; background:#fff; padding:3.125vw 7.292vw; } }
.fwh-sec06_content_text{ width:calc(100% - 32.5vw); padding-left:3.125vw; }
@media (max-width:768px){
  .fwh-sec06_content_text{ width:100%; padding:0 10.417vw; }
  .fwh-sec06_content_text p{ margin-top:1.6em; }
  .fwh-sec06_content_text .span1{ display:block; margin-top:1.6em; }
}

/* =========================================
   Section 07（Voice / Swiper）模範
   ========================================= */
.fwh-sec07{
  padding:6.25vw 0 3.125vw; overflow:hidden;
  background: radial-gradient(var(--pink-weak) 19%, rgba(255,255,255,0) 20%) space center/5vw 5vw;
}
@media (max-width:768px){
  .fwh-sec07{ padding:10.417vw 0 7.292vw; background: radial-gradient(var(--pink-weak) 19%, rgba(255,255,255,0) 20%) space center/6.25vw 6.25vw; }
}
.fwh-sec07_header{ text-align:center; }
.fwh-sec07_header h2{ width:28.75vw; margin:auto; }
@media (max-width:768px){ .fwh-sec07_header h2{ width:47.917vw; } }
.fwh-sec07_header h3{ font-size:3.906vw; margin-top:.4em; }
@media (max-width:768px){ .fwh-sec07_header h3{ font-size:6.51vw; } }

.fwh-sec07_voice{ border:1px solid var(--pink); box-shadow:-.625vw .625vw 0 var(--pink); background:#fff; }
@media (max-width:768px){ .fwh-sec07_voice{ box-shadow:-1.042vw 1.042vw 0 var(--pink); } }
.fwh-sec07_voice_header{ display:flex; align-items:center; }
@media (max-width:768px){ .fwh-sec07_voice_header{ padding:3.125vw 0 0 3.125vw; } }
.fwh-sec07_voice_header picture img{ width:auto; height:12.891vw; }
@media (max-width:768px){ .fwh-sec07_voice_header picture img{ height:28.906vw; } }
.fwh-sec07_voice_header h4{
  font-size:1.719vw; color:#606060; font-weight:500; line-height:1.2; margin-top:.4em;
}
@media (max-width:768px){ .fwh-sec07_voice_header h4{ font-size:3.646vw; margin:0 0 0 1.28em; } }
.fwh-sec07_voice_header h4 .span1{ display:block; font-size:128%; font-weight:bold; color:#000; margin-top:.4em; }

.fwh-sec07_voice_text{ margin:0 2.969vw 2.5vw; }
@media (max-width:768px){ .fwh-sec07_voice_text{ margin:0 4.688vw 5.208vw; line-height:2.16; font-size:3.125vw; } }
.fwh-sec07_voice_text::before{
  content:""; display:block; height:1px;
  background: repeating-linear-gradient(90deg, var(--pink), var(--pink) .938vw, transparent 0, transparent 1.875vw) no-repeat left bottom/100% 1px;
  margin-bottom:1.25vw;
}
@media (max-width:768px){
  .fwh-sec07_voice_text::before{
    background: repeating-linear-gradient(90deg, var(--pink), var(--pink) 1.563vw, transparent 0, transparent 3.125vw) no-repeat left bottom/100% 1px;
    margin-bottom:4.688vw;
  }
}

.fwh-sec07_voice.voice1 .fwh-sec07_voice_header{ padding-left:1.25vw; }
@media (max-width:768px){ .fwh-sec07_voice.voice1 .fwh-sec07_voice_header{ padding-left:3.125vw; } }
.fwh-sec07_voice.voice3 .fwh-sec07_voice_header{ padding-left:2.5vw; }
@media (max-width:768px){ .fwh-sec07_voice.voice3 .fwh-sec07_voice_header{ padding-left:3.125vw; } }
.fwh-sec07_voice.voice3 .fwh-sec07_voice_header h4{ margin-left:1.875vw; }
@media (max-width:768px){ .fwh-sec07_voice.voice3 .fwh-sec07_voice_header h4{ margin-left:1.28em; } }

.fwh-sec07_swiper{ position:relative; }
.fwh-sec07_swiper .swiper-wrapper{ transition-timing-function: cubic-bezier(0.06, 0.43, 0.17, 1); }
.fwh-sec07_swiper .swiper-slide{ padding:.625vw 1.25vw 3.75vw; height:auto; }
@media (max-width:768px){ .fwh-sec07_swiper .swiper-slide{ padding:4.167vw 2.604vw 9.375vw; } }
.fwh-sec07_swiper .swiper-pagination{ line-height:0; bottom:0 !important; }
.fwh-sec07_swiper .swiper-pagination-bullet{
  width:.938vw; height:.938vw; margin:0 .469vw !important; background:#000;
}
@media (max-width:768px){
  .fwh-sec07_swiper .swiper-pagination-bullet{
    width:min(2.604vw, 18px); height:min(2.604vw, 18px);
    margin:0 min(1.302vw, 8px) !important;
  }
}

/* =========================================
   Section 09（想い）模範
   ========================================= */
.fwh-sec09{
  padding:2.5vw 0 8.75vw;
  background:url("../images/img_fwh-sec09_1.jpg") no-repeat center/cover;
}
@media (max-width:768px){
  .fwh-sec09{ padding:6.25vw 10.417vw 17.708vw; background-image:url("../images/img_fwh-sec09_2.jpg"); }
}
.fwh-sec09 h2{ text-align:center; color:#fff; font-size:2.5vw; font-weight:900; margin-bottom:.4em; }
@media (max-width:768px){ .fwh-sec09 h2{ font-size:6.51vw; } }

.fwh-sec09_content{ width:60vw; margin:auto; }
@media (max-width:768px){ .fwh-sec09_content{ width:100%; } }
.fwh-sec09_content_header{ position:relative; overflow:hidden; }
.fwh-sec09_content_header picture{ height:30vw; }
@media (max-width:768px){ .fwh-sec09_content_header picture{ height:auto; } }
.fwh-sec09_content_header picture img{ height:100%; object-fit:cover; object-position:top; }
.fwh-sec09_content_header h3{ position:absolute; top:0; right:3.125vw; width:7.5vw; }
@media (max-width:768px){ .fwh-sec09_content_header h3{ right:3.125vw; width:14.583vw; } }
.fwh-sec09_content_header p{ position:absolute; left:1.875vw; bottom:1.25vw; width:26.263vw; }
@media (max-width:768px){ .fwh-sec09_content_header p{ left:2.083vw; bottom:2.083vw; width:37.802vw; } }
.fwh-sec09_content_text{ background:#fff; padding:2.344vw; font-size:1.172vw; line-height:1.52; }
@media (max-width:768px){ .fwh-sec09_content_text{ padding:3.906vw; font-size:3.125vw; line-height:1.84; } }
.fwh-sec09_content_text p + p{ margin-top:1.28em; }

/* =========================================
   Section 10（FAQ / Toggle）模範
   ========================================= */
.fwh-sec10{ padding:4.375vw var(--container-pc) 6.25vw; background:var(--bg-soft); }
@media (max-width:768px){ .fwh-sec10{ padding:15.625vw 5.208vw 13.542vw; } }
.fwh-sec10_header{ text-align:center; }
.fwh-sec10_header h2{ width:18.398vw; margin:auto; }
@media (max-width:768px){ .fwh-sec10_header h2{ width:31.51vw; } }
.fwh-sec10_header h3{ font-size:2.5vw; }
@media (max-width:768px){ .fwh-sec10_header h3{ font-size:4.167vw; } }

.fwh-sec10_qa{ margin:1.875vw 0 0; }
@media (max-width:768px){ .fwh-sec10_qa{ margin:6.25vw 0 0; } }

.fwh-sec10_qa h4{
  color:#fff; background:var(--pink);
  border-radius:1.563vw 1.563vw 0 0; font-size:1.563vw; line-height:1.6;
  position:relative; padding:1em 7.5vw;
}
@media (max-width:768px){
  .fwh-sec10_qa h4{
    border-radius:2.604vw 2.604vw 0 0; font-size:3.255vw; padding:1em 10.417vw 1em 18.75vw;
  }
}
.fwh-sec10_qa h4::before{
  content:""; background:url("../images/img_fwh-sec10_2.svg") no-repeat center/contain;
  width:2.16em; height:2.16em; position:absolute; left:1.875vw; top:50%; transform:translateY(-50%);
}
@media (max-width:768px){
  .fwh-sec10_qa h4::before{ left:3.125vw; width:3.36em; height:3.36em; }
}

/* Toggle icon */
.fwh-sec10_qa h4.toggle_js{ cursor:pointer; border-radius:1.563vw; transition:.4s; }
@media (max-width:768px){ .fwh-sec10_qa h4.toggle_js{ border-radius:2.604vw; } }
.fwh-sec10_qa h4.toggle_js .toggle_icon{
  width:1.875vw; height:1.875vw; right:1.875vw; top:50%; transform:translateY(-50%);
  transition: transform .4s; position:absolute;
}
@media (max-width:768px){
  .fwh-sec10_qa h4.toggle_js .toggle_icon{
    width:4.688vw; height:4.688vw; right:3.125vw;
  }
}
.fwh-sec10_qa h4.toggle_js .toggle_icon::before,
.fwh-sec10_qa h4.toggle_js .toggle_icon::after{
  content:""; width:100%; height:max(1px, min(.391vw, 3px)); background:#fff;
  position:absolute; left:50%; top:50%; transition: transform .4s;
}
.fwh-sec10_qa h4.toggle_js .toggle_icon::before{ transform:translate(-50%,-50%); }
.fwh-sec10_qa h4.toggle_js .toggle_icon::after{ transform:translate(-50%,-50%) rotate(-90deg); }
.fwh-sec10_qa h4.toggle_js.show{ border-radius:1.563vw 1.563vw 0 0; }
@media (max-width:768px){ .fwh-sec10_qa h4.toggle_js.show{ border-radius:2.604vw 2.604vw 0 0; } }
.fwh-sec10_qa h4.toggle_js.show .toggle_icon{ transform: translateY(-50%) rotate(90deg); }
.fwh-sec10_qa h4.toggle_js.show .toggle_icon::before{ transform:translate(-50%,-50%) rotate(90deg); }

.fwh-sec10_qa_a{
  background:#fff; color:#767676;
  border-radius:0 0 1.563vw 1.563vw; padding:1.875vw; line-height:1.76;
}
@media (max-width:768px){
  .fwh-sec10_qa_a{ border-radius:0 0 2.604vw 2.604vw; padding:3.125vw 5.208vw; font-size:3.516vw; }
}
@media (max-width:768px){ .fwh-sec10_qa_a p + p{ margin-top:1.28em; } }

/* =========================================
   Section 11（クロージング）模範
   ========================================= */
.fwh-sec11{ position:relative; }
.fwh-sec11 p{
  position:absolute; left:22.5vw; top:50%; transform:translateY(-50%);
  white-space:nowrap; font-weight:bold; font-size:2.188vw;
  display:flex; flex-direction:column; align-items:flex-start;
}
@media (max-width:768px){
  .fwh-sec11 p{
    left:5.208vw; bottom:5.208vw; top:auto; transform:translate(0,0); font-size:3.776vw;
  }
}
.fwh-sec11 p .span1{ color:#fff; background:var(--pink); margin:.2em 0; padding:0 .4em; }

/* =========================================
   Thank You（フォーム送信後ページ）模範
   ========================================= */
.thanx_sec{ padding:2rem 7rem 5rem; }
.thanx_sec h3{ text-align:center; font-size:1.6rem; line-height:1.8; margin-bottom:10px; }
.thanx_sec p{ text-align:center; line-height:1.8; }
.thanx_contact{ text-align:center; margin-top:40px; background:#f8f9fa; padding:1.5rem; }
.thanx_contact h3{ font-size:1.2rem; color:#333; }
.thanx_btn{
  text-align:center; margin:40px auto 0; border:1px solid; border-radius:30px;
  width:30%; padding:5px; color:#888; transition: .15s ease-in-out;
}
.thanx_btn:hover{ color:#fff; background:#888; border-color:#888; }
.thanx_sec img{ display:block; margin:0 auto 2rem; width:10%; height:auto; }
.thanx_contact .mail_color{ color:#0522c4; }
@media (max-width:768px){
  .thanx_sec{ padding:2rem; }
  .thanx_sec h3{ font-size:1.4rem; }
  .thanx_sec img{ width:30%; margin-bottom:1.5rem; }
  .thanx_contact h3{ font-size:1.0rem; }
  .thanx_btn{ width:60%; padding:8px; margin-top:30px; border-radius:20px; }
}

/* =========================================
   微調整（競合回避）
   ========================================= */
/* FV旧実装の帯画像を強制非表示にしたい場合は↓を有効化
.fwh-fv_header > picture{ display:none !important; }
*/

/* 右下固定バナーは画像を表示・緑CTAは透明オーバレイ */
.fwh-footer_cta{ display:block; opacity:1; }

/* END */

/* =========================================
   v-WH-CTA Override（ワーホリLPの緑CTAを完全移植）
   末尾貼り付け用：HTMLは <a class="btn_cta">……</a> のままでOK
   ========================================= */

/* コンテナ（中央寄せ＆幅ピン留め） */
.fwh-sec01_cta_btn,
.fwh-cta_footer_btn{
  position: relative;
  display: flex;
  justify-content: center;
  width: min(1200px, 92vw);
  margin-inline: auto;
}

/* 緑CTA本体（丸パクリ） */
.fwh-sec01_cta_btn .btn_cta,
.fwh-cta_footer_btn .btn_cta,
.btn_cta{
  --cta-h: 72px;                 /* PC高さ */
  --cta-h-sp: 58px;              /* SP高さ */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;                   /* 親の幅いっぱい（上で1200px上限） */
  height: var(--cta-h);
  padding: 0 28px;
  color: #fff !important;
  font-weight: 900;
  letter-spacing: .08em;
  text-align: center;
  text-decoration: none;
  border-radius: 34px !important;
  background: linear-gradient(180deg,#2fd47e 0%, #21b76c 52%, #179e5c 100%) !important;
  box-shadow:
    0 14px 0 #0b7a42,            /* 下の土台影（太め） */
    inset 0 1px 0 rgba(255,255,255,.35);
  transition: transform .05s ease, filter .2s ease;
  position: relative;
  overflow: hidden;
}

/* 斜めのキラッ（常時有効） */
.fwh-sec01_cta_btn .btn_cta::before,
.fwh-cta_footer_btn .btn_cta::before,
.btn_cta::before{
  content:"";
  position:absolute;
  top:-160%;
  left:-30%;
  width:110px;
  height:360%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.9) 45%,transparent);
  transform: rotate(25deg);
  animation: ctaShine 4.6s linear infinite;
  pointer-events:none;
}

@keyframes ctaShine{
  0%{ left:-30%; }
  28%{ left:130%; }
  100%{ left:130%; }
}

/* ちいさな飛行機（下中央） */
.fwh-sec01_cta_btn .btn_cta::after,
.fwh-cta_footer_btn .btn_cta::after,
.btn_cta::after{
  content:"";
  position:absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 24px;
  background: url('images/icon_plane_1.svg') no-repeat center/contain !important;
  opacity: .95;
}

/* ホバー／押し込み */
.fwh-sec01_cta_btn .btn_cta:hover,
.fwh-cta_footer_btn .btn_cta:hover,
.btn_cta:hover{
  filter: brightness(1.03);
  transform: translateY(1px);
  box-shadow: 0 12px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35);
}
.fwh-sec01_cta_btn .btn_cta:active,
.fwh-cta_footer_btn .btn_cta:active,
.btn_cta:active{
  transform: translateY(3px);
  box-shadow: 0 8px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35);
}

/* SPサイズ最適化 */
@media (max-width:768px){
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta,
  .btn_cta{
    height: var(--cta-h-sp);
    border-radius: 999px !important;
    font-size: 4.2vw;               /* テキストの視認性を確保 */
  }
}


/* もし固定バナー内に .btn_cta が残っていて“画像の上に緑が乗る”場合は透明化
   （このLPは #fwh-footer_btn01 の画像クリックなので基本不要。念のため保険） */
.fwh-footer_cta .btn_cta{
  position:absolute; inset:0;
  opacity:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  pointer-events:auto !important;
}


/* ボタン本体 */
.fwh-sec01_cta_btn .btn_cta,
.fwh-cta_footer_btn .btn_cta,
.btn_cta{
  --h:72px;                /* PC高さ */
  --h-sp:58px;             /* SP高さ */
  display:flex;
  align-items:center;
  justify-content:center;
  width:85%;
  height:var(--h);
  padding:0 28px;
  color:#fff !important;
  font-weight:900;
  letter-spacing:.06em;
  text-align:center;
  text-decoration:none;
  border-radius:3px !important;
  background:linear-gradient(180deg,#2fd47e 0%, #21b76c 52%, #179e5c 100%) !important;
  box-shadow:0 8px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35) !important;
  position:relative;
  overflow:hidden;
}

/* 旧echoなどは非表示にして干渉させない */
.fwh-sec01_cta_btn .echo{ display:none !important; }

/* 斜めのキラッ（太さ調整して主張を控えめに） */
.fwh-sec01_cta_btn .btn_cta::before,
.fwh-cta_footer_btn .btn_cta::before,
.btn_cta::before{
  content:"";
  position:absolute;
  top:-140%;
  left:-30%;
  width:70px;                  /* 細め */
  height:320%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.9) 45%,transparent);
  transform:rotate(25deg);
  animation:ctaShine 4.6s linear infinite;
  pointer-events:none;
}
@keyframes ctaShine{ 0%{left:-30%} 28%{left:130%} 100%{left:130%} }


/* ラベルを包む場合：＼ ／の装飾（無ければ何も付かない＝テキストだけでもOK） */
.btn_cta .cta_label{ position:relative; z-index:1; display:inline-block; }
.btn_cta .cta_label::before,
.btn_cta .cta_label::after{
  position:relative;
  top:-.06em;
  opacity:.98;
  font-weight:900;
  font-size:1em;
}
.btn_cta .cta_label::before{ content:"＼"; margin-right:.45em; }
.btn_cta .cta_label::after { content:"／"; margin-left:.45em; }

/* もし前回の巨大な＼／指定が残っていたら打ち消す */
.btn_cta > .cta_label::before,
.btn_cta > .cta_label::after{ font-size:inherit; }

/* 押し込み */
.btn_cta:hover{ filter:brightness(1.03); transform:translateY(1px);
  box-shadow:0 12px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35); }
.btn_cta:active{ transform:translateY(3px);
  box-shadow:0 8px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35); }

/* SP */
@media (max-width:768px){
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta,
  .btn_cta{
    height:var(--h-sp);
    border-radius:999px !important;
    font-size:4.2vw;           /* テキストの読みやすさ優先 */
  }
  .btn_cta::after{ bottom:8px; width:16px; height:16px; }
}

/* 固定画像バナー上の緑CTAは“見た目だけ”透明化（クリックは可） */
.fwh-footer_cta .btn_cta{
  position:absolute; inset:0;
  opacity:0 !important; background:transparent !important; box-shadow:none !important;
  pointer-events:auto !important;
}


/* SPの上書き */
@media (max-width:768px){
  :is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn){
    --cta-sub-size: 12px;
    --cta-main-size: 19px;
    --cta-gap: 3px;
  }
}

/* 文字サイズ＆行間を変数で強制 */
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_layer{
  gap: var(--cta-gap) !important;
  line-height: 1.1 !important;
}
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_sub{
  font-size: var(--cta-sub-size) !important;
  white-space: nowrap !important;
}
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_main{
  font-size: var(--cta-main-size) !important;
  white-space: nowrap !important;
}

/* ＼ ／ を完全に消す（どこで付けられていても無効化） */
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_label::before,
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_label::after,
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_main::before,
:is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn) .btn_cta .cta_main::after{
  content:none !important;
}



/* 押し込み */
.btn_cta:hover{ filter:brightness(1.03); transform:translateY(1px);
  box-shadow:0 12px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35); }
.btn_cta:active{ transform:translateY(3px);
  box-shadow:0 8px 0 #0b7a42, inset 0 1px 0 rgba(255,255,255,.35); }


/* 1行ラベル + 「＼ ／」を自動付与 */
.btn_cta .cta_main{
  position:relative; z-index:1;              /* 文字を最前面 */
}
.btn_cta .cta_main::before{ content:"＼"; margin-right:.45em; }
.btn_cta .cta_main::after { content:"／"; margin-left:.45em; }

/* 飛行機は<img class="cta_icon">を使う（下中央・小さめ） */
.btn_cta .cta_icon{
  position:absolute; z-index:0;
  bottom:10px; left:50%; transform:translateX(-50%);
  width:18px; height:18px; opacity:.95; pointer-events:none;
  display:block !important;
}

/* モバイル */
@media (max-width:768px){
  .btn_cta{ height:58px !important; border-radius:999px !important; font-size:16px !important; }
  .btn_cta .cta_icon{ bottom:8px; width:16px; height:16px; }
}



/* 固定画像バナー内だけは見た目非表示（クリック可） */
.fwh-footer_cta .btn_cta{
  position:absolute; inset:0;
  opacity:0 !important; background:transparent !important; box-shadow:none !important;
  pointer-events:auto !important;
}



/* SP */
@media (max-width:768px){
  .fwh-sec01_cta_btn, .fwh-cta_footer_btn{ width:92vw; }
  .fwh-sec01_cta_btn .btn_cta, .fwh-cta_footer_btn .btn_cta{
    height:56px !important; border-radius:14px !important; padding:0 48px 0 16px !important;
  }
  .btn_cta .cta_sub{ font-size:12px; }
  .btn_cta .cta_main{ font-size:1px; }
  .btn_cta .cta_icon{ right:12px; width:24px; height:24px; }
}

/* 内側（上:サブ、下:メイン） */
.btn_cta .cta_layer{
  display:flex; flex-direction:column; align-items:center;
  gap:4px; line-height:1.1; width:100%; pointer-events:none;
}
.btn_cta .cta_sub{
  font-size:10px; font-weight:700; opacity:.95; white-space:nowrap;
  /* ※テキストに＼ ／はHTML側で入れてある想定（画像と同じ） */
}
.btn_cta .cta_main{
  font-size:22px; font-weight:900; white-space:nowrap;
}


/* ホバー／押し込み */
.fwh-sec01_cta_btn .btn_cta:hover,
.fwh-cta_footer_btn .btn_cta:hover{
  filter:brightness(1.03);
  transform:translateY(1px);
  box-shadow:0 7px 0 #0b7a42;
}
.fwh-sec01_cta_btn .btn_cta:active,
.fwh-cta_footer_btn .btn_cta:active{
  transform:translateY(3px);
  box-shadow:0 5px 0 #0b7a42;
}

/* スマホ最適化 */
@media (max-width:768px){
  .fwh-sec01_cta_btn,
  .fwh-cta_footer_btn{ width:92vw; }
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    height:56px; border-radius:14px; padding:0 48px 0 16px;
  }
  .btn_cta .cta_sub{ font-size:12px; }
  .btn_cta .cta_main{ font-size:18px; }
  .btn_cta .cta_icon{ right:12px; width:22px; }
}

/* 右下の固定画像バナー内だけは“見た目透明のクリックレイヤー”を維持 */
.fwh-footer_cta .btn_cta{
  all: unset;
  position:absolute; inset:0;
  opacity:0; pointer-events:auto;
}

  /* 赤短冊：3行固定（.span1 を3つ＝各行） */
  .fwh-fv_header h1{
    position:absolute !important; z-index:3 !important;
    left:var(--sp-hero-left) !important;
    bottom:var(--sp-h1-bottom) !important; top:auto !important;
    margin:0 !important;
    font-size:5.8vw; line-height:1.12; letter-spacing:.06em;
  }
  .fwh-fv_header h1 .span1{
    display:block;                 /* ←各行に分ける */
    background:#D93657; color:#fff;
    padding:.08em .32em;
    margin:calc(var(--sp-h1-gap)/2) 0;
    white-space:nowrap;
  }
  .fwh-fv_header h1 .span2{ font-size:.8em; }


/* ===== SP HERO 完全一致パッチ（紫帯 / 3行短冊 / 白ボックス下寄せ） ===== */
@media (max-width:768px){
  /* ノブ（ここだけ触れば調整OK） */
  :root{
    --sp-side: 4.5vw;          /* 左右余白 */
    --sp-ribbon-top: 6vw;      /* 紫帯の上からの距離（小さいほど上） */
    --sp-h1-bottom: 28vw;      /* 赤短冊の“下から”の距離（小さいほど下） */
    --sp-footer-bottom: -1vw;  /* 白ボックスの“下から”の距離（0～-2vwで下に密着） */
  }

  /* ① 紫の0円帯：テキスト版 .fv-ribbon をSPでバナー化して強制表示 */
  .fwh-fv_header > picture{ display:none !important; }     /* PC用画像帯はSPでは隠す */
  #fwh-fv .fv-ribbon{
    position:absolute !important; z-index:3 !important;
    left:50%; top:var(--sp-ribbon-top); transform:translateX(-50%);
    display:flex !important; align-items:center; gap:10px;
    width:94vw; padding:12px 16px; border-radius:14px;
    background:linear-gradient(90deg,#3A7BFF 0%, #F05CAB 100%);
    color:#fff; box-shadow:0 8px 18px rgba(0,0,0,.12);
  }

/* ===== SP HERO 完コピ上書き v4 ===== */
@media (max-width:768px){

  /* 微調整用（数値だけ調整すればOK） */
  :root{
    --sp-left: 1.0vw;          /* 左揃えの基準（赤短冊/白ボックス） */
    --sp-ribbon-top: 1.vw;    /* 紫帯の上端 */
    --sp-h1-bottom: 24vw;      /* 赤短冊ブロックの下からの距離（大=上へ） */
    --sp-footer-bottom: 1.4vw;  /* 白ボックスの下からの距離（大=上へ） */
    --w1: 38vw;                /* 1行目の長さ */
    --w2: 25vw;                /* 2行目（ホンキの）最短 */
    --w3: 42vw;                /* 3行目の長さ */
  }

  /* 干渉を無効化 */
  #fwh-fv{ position:relative; }
  .fwh-fv_header{ padding:0 !important; position:static !important; }
  .fwh-fv_header::before{ display:none !important; }
  /* もし紫帯が画像(<picture>)ならSPでは隠す（テキスト帯を使う） */
  .fwh-fv_header > picture{ display:none !important; }

  /* ── 紫帯：画面幅いっぱい＆右に大きな「0円」 ── */
  #fwh-fv .fv-ribbon{
    position:absolute; z-index:3;
    left:0; right:0; top:var(--sp-ribbon-top);
    width:100vw; border-radius:14px;
    padding:2.0vw 10.7vw;
    display:flex; align-items:center; gap:3vw;
    background:linear-gradient(90deg,#3b63e6 0%, #e74d93 100%) !important;
  }
  #fwh-fv .fv-ribbon__left{ order:1; line-height:1.1; }
  #fwh-fv .fv-ribbon__label{ font-size:5.2vw; letter-spacing:.08em; }
  #fwh-fv .fv-ribbon__ttl{ font-size:8.2vw; font-weight:900; letter-spacing:.06em; }
  #fwh-fv .fv-ribbon__fee{
    order:2; margin-left:auto;
    display:flex; align-items:baseline; gap:1.1vw;
    background:#fff; color:#ff5ea8; border:0; line-height:1;
    border-radius:4.6vw; padding:1.2vw 3.8vw 1.1vw;
  }
  #fwh-fv .fv-ribbon__num{ font-size:15.8vw; font-weight:900; line-height:1; }
  #fwh-fv .fv-ribbon__yen{ font-size:5.0vw; font-weight:900; }

  /* ── 赤短冊：3行＆2行目を最短に、全体を少し下へ ── */
  .fwh-fv_header h1{
    position:absolute !important;
    left:var(--sp-left) !important; bottom:var(--sp-h1-bottom) !important; top:auto !important;
    z-index:3 !important; margin:0 !important;
    font-size:5.0vw; line-height:1.12; letter-spacing:.06em;
  }
  .fwh-fv_header h1 .span1{
    display:block !important; background:#D93657; color:#fff;
    padding:.12em .46em; margin:.21em 0; border-radius:6px; text-align:left;
  }
  .fwh-fv_header h1 .span1:nth-of-type(1){ width:var(--w1) !important; }
  .fwh-fv_header h1 .span1:nth-of-type(2){ width:var(--w2) !important; } /* ホンキの を短く */
  .fwh-fv_header h1 .span1:nth-of-type(3){ width:var(--w3) !important; }

  /* ── 白い実績ボックス：もう少し下に（可変） ── */
  .fwh-fv_footer{
    position:absolute !important; z-index:3 !important;
    left:var(--sp-left) !important; right:var(--sp-left) !important;
    bottom:var(--sp-footer-bottom) !important; top:auto !important;
    width:auto !important; height:auto !important; margin:0 !important;
    padding:4px 10px !important; background:#fff !important; border-color:#fff !important;
    border-width:.9vw !important; font-size:3.0vw !important; line-height:1.4 !important;
    box-shadow:0 0 0 .6vw #D93657 inset, 0 1.6vw 2.2vw rgba(0,0,0,.18) !important;
  }
  .fwh-fv_footer dt{ width:43vw !important; margin-right:10px !important; }
}
@media (max-width:768px){
  :root{
    --sp-ribbon-x: 50vw;     /* 左右オフセット（+で右 / -で左） */
    --sp-ribbon-w: 100vw;   /* 幅（例: 94vw など） */
  }
  #fwh-fv .fv-ribbon{
    left: var(--sp-ribbon-x);
    right: auto;
    width: var(--sp-ribbon-w);
  }
 }

/* ==== SP：紫帯＆赤帯の角丸をゼロに（四角） ==== */
@media (max-width:768px){
  /* 角丸の調整用（必要なら数値を変えて再利用可） */
  :root{
    --sp-ribbon-radius: 0px;   /* 紫帯 */
    --sp-redstrip-radius: 0px; /* 赤帯（3本） */
  }

  /* 紫帯（テキスト版 .fv-ribbon を使用しているケース） */
  #fwh-fv .fv-ribbon{
    border-radius: var(--sp-ribbon-radius) !important;
  }

  /* 万一、帯を <picture> 画像で出している場合の保険 */
  .fwh-fv_header > picture,
  .fwh-fv_header > picture img{
    border-radius: var(--sp-ribbon-radius) !important;
  }

  /* 赤帯（h1 内の赤い短冊3本） */
  .fwh-fv_header h1 .span1{
    border-radius: var(--sp-redstrip-radius) !important;
  }
}


/* ===== CTA 飛行機 位置・サイズ 完全上書き（CSSの一番下に置く） ===== */


/* 疑似要素の飛行機は完全オフ（干渉排除） */
.btn_cta::after{ content:none !important; }

/* ボタンの右側にアイコン分の余白を確保（左右どちらでも安全） */
.btn_cta{
  position:relative !important;
  padding-left: var(--cta-pad-x) !important;
  padding-right: calc(var(--cta-pad-x) + 
                      (max(var(--cta-icon-size),0px)) + 
                      (max(var(--cta-icon-right),0px))) !important;
}

/* 飛行機：左右＆縦位置＆サイズを変数で制御。過去の !important を上書き */
.btn_cta .cta_icon{
  position:absolute !important;
  right: var(--cta-icon-right) !important;
  left:  var(--cta-icon-left)  !important;
  top:   var(--cta-icon-top)   !important;
  transform: translateY(-50%) !important;
  width: var(--cta-icon-size) !important;
  height:auto !important;
  pointer-events:none !important;
  display:block !important;
}

/* SPの既定（必要に応じて調整） */
@media (max-width:768px){
  :is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn){
    --cta-pad-x: 16px;
    --cta-icon-size: 34px;
    --cta-icon-top: 55%;
    --cta-icon-right: -38px;   /* ←右に置く場合 */
    --cta-icon-left:  auto;   /* ←左に置く場合は数値、右は auto に */
  }
}

/* ===== CTA：2段テキストの左右位置を自在に調整（最終上書き） ===== */

/* 親の強い指定を無効化して変数を通す */
.btn_cta{ font-size: inherit !important; } /* 親の固定font-size:17px を殺す */
.btn_cta .cta_layer{
  position: relative;
  left: var(--cta-text-dx);
  top:  var(--cta-text-dy, 0px);
  display: flex;
  flex-direction: column;
  align-items: var(--cta-align);
  text-align: var(--cta-text-align);
  gap: var(--cta-gap);
  width: max-content;          /* 収縮させて左右の寄せを効かせる */
  pointer-events: none;
}

/* 上段・下段を個別に移動＆サイズ調整 */
.btn_cta .cta_sub{
  position: relative; left: var(--cta-sub-dx);
  font-size: var(--cta-sub-size) !important;
  white-space: nowrap;
}
.btn_cta .cta_main{
  position: relative; left: var(--cta-main-dx);
  font-size: var(--cta-main-size) !important;
  white-space: nowrap;
}

/* もし下段に「＼ ／」が残ってたら完全オフ */
.btn_cta .cta_main::before,
.btn_cta .cta_main::after{ content:none !important; }

/* SPの既定値（必要ならここも上書きOK） */
@media (max-width:768px){
  :is(.fwh-sec01_cta_btn,.fwh-cta_footer_btn){
    --cta-text-dx: 0px;
    --cta-sub-dx:  15px;
    --cta-main-dx: 15px;
    --cta-align: center;
    --cta-text-align: center;
    --cta-gap: 4px;
    --cta-sub-size: 12px;
    --cta-main-size: 18px;
  }
}

/* 行ボックスに余裕を持たせて切れないように */
.fwh-sec05_reason_content h4{
  line-height: 1.18 !important;
  overflow: visible !important;
}

/* PC時のサイズ調整 */
@media (min-width:769px){
  .fwh-sec05_reason_content h4 .img2{
    width: 9.6vw !important;
    margin: -0.08em .22em 0 .26em !important;
  }
}

/* 万一どこかで display:none; が当たっていたときの保険 */
.fwh-sec05_reason_content h4 img.img2[style*="display:none"]{
  display:inline-block !important;
}

/* ===== 手数料0円 見出しの安定パッチ（消えない＋下端そろえ） ===== */
:root{
  --fee-font: clamp(22px, 7.6vw, 56px); /* 見出し全体のサイズ */
  --fee0-h: -111.10em;                     /* 「0」の高さ（h4のem基準） */
  --fee0-shift: -1.06em;                /* 「0」の上下微調整（-で上 / +で下） */
  --fee-gap: .18em;                     /* 「手数料」/「0」/「円」のすき間 */
}

.fwh-sec05_reason_content h4{
  font-size: var(--fee-font) !important;
  line-height: 1 !important;            /* 下端を合わせやすくする */
  white-space: nowrap !important;       /* 折り返し防止 */
  overflow: visible !important;         /* 切れ防止 */
  letter-spacing: .02em;                /* お好みで */
}

/* 0 の画像（.img2）をインライン化＆サイズ/位置を安全側に */
.fwh-sec05_reason_content h4 .img2{
  display: inline-block !important;
  width: 22vw !important;          /* SPの見え方に合わせた基準幅 */
  height: 65px !important;

  visibility: visible !important;
 }
}


/* =========================================================
   PC HERO 完コピ・可変ノブ付き（≥769px）
   対象：紫帯（fv-ribbon / picture帯）・赤短冊h1・白い実績ボックス
         緑CTA（セクション内ボタン）
   ========================================================= */
@media (min-width:769px){
  :root{
    /* ── 紫帯（中心配置） */
    --pc-ribbon-top: 7.2vw;      /* 画面上からの距離 */
    --pc-ribbon-w:   29vw;       /* 帯の横幅（中央寄せ） */
    --pc-ribbon-pad: 1.3vw 1.1vw;  /* 内側余白 */

    /* 各行の長さ（幅） */
    --pc-h1-w1: 26vw;      /* 1行目 */
    --pc-h1-w2: 15vw;      /* 2行目（「ホンキの」を短めに）*/
    --pc-h1-w3: 31vw;      /* 3行目 */

    /* ── 白い実績ボックス */
    --pc-white-right: 7.5vw;     /* 右余白（大きいほど左へ） */
    --pc-white-bottom: 1.6vw;     /* 下余白（大きいほど上へ） */
    --pc-white-font: 1.7vw;       /* 本文サイズ */
    --pc-white-pad:  1.2vw 1.1vw; /* 内側余白 */
    --pc-white-dt-w: 13.2vw;      /* 左側（実績数字）ブロック幅 */

    /* ── 緑CTA（セクションのボタン） */
    --pc-cta-wrap-w:  min(360px, 82vw); /* ボタン容器の横幅 */
    --pc-cta-mt: .8vw;                 /* 余白（上） */
    --pc-cta-mb: .8vw;                 /* 余白（下） */
    --pc-cta-h:  52px;                 /* 高さ */
    --pc-cta-pad-x: 38px;              /* 左右パディング(左) */
    --pc-cta-sub-size: 11px;           /* 1段目文字 */
    --pc-cta-main-size: 44px;          /* 2段目文字 */
    --pc-cta-gap: 4px;                 /* 1段目↕2段目の間隔 */
    --pc-cta-text-dy: 2px;             /* 文字の上下微調整 */
    --pc-cta-icon-size: 39px;          /* 飛行機アイコンの大きさ */
    --pc-cta-icon-right: 16px;         /* ボタン右端からの距離 */
    --pc-cta-icon-top: 65%;            /* 上からの位置（%） */
  }

  /* 干渉リセット */
  #fwh-fv{ position:relative; }
  .fwh-fv_header::before{ display:none !important; }

  /* ============ 紫帯（どちらの実装でもOK） ============ */
  /* ① テキスト版 .fv-ribbon を使う場合 */
  #fwh-fv .fv-ribbon{
    position:absolute; z-index:3;
    left:50%; top:var(--pc-ribbon-top); transform:translateX(-50%);
    width:var(--pc-ribbon-w); padding:var(--pc-ribbon-pad);
    border-radius:0 !important;              /* 角丸なし */
  }
  #fwh-fv .fv-ribbon__fee{ border-radius:0 !important; }
  #fwh-fv .fv-ribbon__num{ font-size:var(--pc-ribbon-0-size); line-height:1; font-weight:900; }
  #fwh-fv .fv-ribbon__yen{ font-size:var(--pc-ribbon-yen);   font-weight:900; }

  /* ② 画像帯 <picture> を使う場合（同じ座標で中央寄せ） */
  .fwh-fv_header > picture{
    position:absolute; left:50%; top:var(--pc-ribbon-top);
    transform:translateX(-50%); width:var(--pc-ribbon-w);
    border-radius:0 !important;
  }

  /* ============ 赤短冊（3行） ============ */
  .fwh-fv_header h1{
    position:absolute; z-index:3;
    left:var(--pc-h1-left); top:var(--pc-h1-top); margin:0;
    font-size:var(--pc-h1-font); line-height:1.14; letter-spacing:.06em;
  }
  .fwh-fv_header h1 .span1{
    display:block; margin:var(--pc-h1-gap) 0; padding:.1em .45em;
    background:#D93657; color:#fff; border-radius:0 !important; /* 四角 */
  }
  .fwh-fv_header h1 .span1:nth-of-type(1){ width:var(--pc-h1-w1); }
  .fwh-fv_header h1 .span1:nth-of-type(2){ width:var(--pc-h1-w2); }
  .fwh-fv_header h1 .span1:nth-of-type(3){ width:var(--pc-h1-w3); }

  /* ============ 白い実績ボックス ============ */
  .fwh-fv_footer{
    position:absolute !important; z-index:3 !important;
    right:var(--pc-white-right) !important; bottom:var(--pc-white-bottom) !important;
    left:auto !important; top:auto !important;
    width:auto; height:auto; padding:var(--pc-white-pad) !important;
    font-size:var(--pc-white-font) !important; line-height:1.46 !important;
    background:#fff !important; border-color:#fff !important; border-width:.22vw !important;
    border-radius:0 !important;               /* 四角 */
    box-shadow:0 0 0 .16vw #D93657 inset, 0 .36vw .36vw rgba(0,0,0,.22) !important;
  }
  .fwh-fv_footer dt{ width:var(--pc-white-dt-w) !important; margin-right:1.6em !important; }

  /* ============ 緑CTA（セクション） ============ */
  /* コンテナ幅＆センタリング */
  .fwh-sec01_cta_btn, .fwh-cta_footer_btn{
    width:var(--pc-cta-wrap-w) !important;
    margin:var(--pc-cta-mt) auto var(--pc-cta-mb) !important;
    display:flex !important; justify-content:center !important;
  }

/* 右端の飛行機（変数で自由に） */
  .btn_cta .cta_icon{
    position:absolute; right:var(--pc-cta-icon-right);
    top:var(--pc-cta-icon-top); transform:translateY(-50%);
    width:var(--pc-cta-icon-size); height:auto; pointer-events:none;
    display:block; filter:none;
  }
}

/* ===== PC最終上書き：効かない原因を潰してノブを通す（≥769px） ===== */
@media (min-width:769px){
  /* 0) リセット：h1の絶対配置基準を #fwh-fv にする */
  #fwh-fv{ position:relative; }
  .fwh-fv_header{ padding:0 !important; position:static !important; } /* ←ここ重要 */

  /* 0-b) 画像帯の幅は <picture> に合わせる（内側imgの固定幅を殺す） */
  .fwh-fv_header > picture img{ width:100% !important; height:auto !important; }

  /* 1) 紫帯ノブ（左右オフセット追加） */
  :root{
    --pc-ribbon-dx: -21vw; /* 中央基準の左右オフセット（+で右 / -で左） */
  }
  /* テキスト帯 */
  #fwh-fv .fv-ribbon{
    left:50%; transform:translateX(calc(-50% + var(--pc-ribbon-dx)));
    top:var(--pc-ribbon-top); width:var(--pc-ribbon-w); padding:var(--pc-ribbon-pad);
    border-radius:0 !important;
  }
  /* 画像帯 */
  .fwh-fv_header > picture{
    position:absolute; left:50%;
    transform:translateX(calc(-50% + var(--pc-ribbon-dx)));
    top:var(--pc-ribbon-top); width:var(--pc-ribbon-w) !important; border-radius:0 !important;
  }

  /* 2) 赤短冊（上/左を素直に効かせる） */
  .fwh-fv_header h1{
    position:absolute; z-index:3; margin:0 !important;
    left:var(--pc-h1-left); top:var(--pc-h1-top );
    font-size:var(--pc-h1-font); line-height:1.14; letter-spacing:.06em;
  }
  .fwh-fv_header h1 .span1{
    display:block; margin:var(--pc-h1-gap) 0; padding:.1em .45em;
    background:#D93657; color:#fff; border-radius:0 !important;
  }
  .fwh-fv_header h1 .span1:nth-of-type(1){ width:var(--pc-h1-w1); }
  .fwh-fv_header h1 .span1:nth-of-type(2){ width:var(--pc-h1-w2); }
  .fwh-fv_header h1 .span1:nth-of-type(3){ width:var(--pc-h1-w3); }

  /* 3) 白い実績ボックス（既存のpx固定に勝つ） */
  .fwh-fv_footer{
    position:absolute !important; z-index:3 !important;
    right:var(--pc-white-right) !important; bottom:var(--pc-white-bottom) !important;
    left:auto !important; top:auto !important; width:auto !important; height:auto !important;
    padding:var(--pc-white-pad) !important; font-size:var(--pc-white-font) !important; line-height:1.46 !important;
    background:#fff !important; border-color:#fff !important; border-width:.22vw !important; border-radius:0 !important;
    box-shadow:0 0 0 .16vw #D93657 inset, 0 .36vw .36vw rgba(0,0,0,.22) !important;
  }
  .fwh-fv_footer dt{ width:var(--pc-white-dt-w) !important; margin-right:1.6em !important; }

  /* 4) 緑CTA：2段テキストのサイズ＆左右、飛行機の左右を変数で制御 */
  :root{
    --pc-cta-text-dx: 25px;   /* 2段まとめて左右オフセット */
    --pc-cta-sub-dx:  0px;   /* 1段目だけ左右 */
    --pc-cta-main-dx: 0px;   /* 2段目だけ左右 */
    --pc-cta-icon-left: 277px;/* 左に置くときは数値、右にするなら auto */
    /* 既存の --pc-cta-***（サイズ類）はそのまま使う */
  }
  /* ボタン本体（高さ/パディング） */
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    height:var(--pc-cta-h) !important;
    padding:0 calc(var(--pc-cta-pad-x) + var(--pc-cta-icon-size) + var(--pc-cta-icon-right))
             0 var(--pc-cta-pad-x) !important;
    border-radius:16px !important; position:relative !important;
    width:100% !important; /* 古い width:85% を打ち消して中央基準に */
  }

  /* 文字2段：サイズ＆左右位置 */
  .btn_cta .cta_layer{
    position:relative; top:var(--pc-cta-text-dy); left:var(--pc-cta-text-dx);
    display:flex; flex-direction:column; align-items:center;
    gap:var(--pc-cta-gap); line-height:1.1; width:auto; pointer-events:none;
  }
  .btn_cta .cta_sub { font-size:var(--pc-cta-sub-size) !important;  white-space:nowrap; left:var(--pc-cta-sub-dx); position:relative; }
  .btn_cta .cta_main{ font-size:var(--pc-cta-main-size) !important; white-space:nowrap; left:var(--pc-cta-main-dx); position:relative; }
  .btn_cta .cta_main::before,
  .btn_cta .cta_main::after{ content:none !important; } /* 「＼／」は消す */

  /* 飛行機：右or左どちらでも置ける */
  .btn_cta .cta_icon{
    position:absolute; top:var(--pc-cta-icon-top); transform:translateY(-50%);
    right:var(--pc-cta-icon-right); left:var(--pc-cta-icon-left);
    width:var(--pc-cta-icon-size); height:auto; pointer-events:none; display:block;
  }
}

/* ===== 最終ミニパッチ：PCのノブを数値で効かせる（≥769px） ===== */
@media (min-width:769px){
  :root{
    /* ── 緑CTA（サイズ & 文字サイズ） ── */
    --pc-cta-wrap-w:  min(360px, 82vw); /* コンテナ幅（外側） */
    --pc-cta-h:       65px;             /* ボタン高さ */
    --pc-cta-pad-x:   3px;             /* 左右パディング（左側の値） */
    --pc-cta-radius:  16px;             /* 角丸 */
    --pc-cta-sub-size: 23px;            /* 1段目（上） */
    --pc-cta-main-size:44px;            /* 2段目（下） */
  }

  /* 基準の相対位置を整える（重要） */
  #fwh-fv{ position:relative; }
  .fwh-fv_header{ padding:0 !important; position:static !important; }

  /* ── 緑CTA：コンテナ幅 + ボタン本体サイズ ── */
  .fwh-sec01_cta_btn,
  .fwh-cta_footer_btn{
    width: var(--pc-cta-wrap-w) !important;
    margin-left:auto !important; margin-right:auto !important;
    display:flex !important; justify-content:center !important;
  }
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    width:100% !important;                         /* 古い width を潰す */
    height:var(--pc-cta-h) !important;
    padding:0 calc(var(--pc-cta-pad-x) + var(--pc-cta-icon-size,0px) + var(--pc-cta-icon-right,0px))
             0 var(--pc-cta-pad-x) !important;
    border-radius:var(--pc-cta-radius) !important;
    font-size:inherit !important;                  /* 固定px指定の影響を断つ */
  }
  /* 1段目/2段目の文字サイズ（個別に効く） */
  .btn_cta .cta_layer{ gap: var(--pc-cta-gap, 4px) !important; line-height:1.1 !important; }
  .btn_cta .cta_sub { font-size: var(--pc-cta-sub-size)  !important; white-space:nowrap !important; }
  .btn_cta .cta_main{ font-size: var(--pc-cta-main-size) !important; white-space:nowrap !important; }

  /* ── 赤帯：上下左右の位置（数値で動く） ── */
  .fwh-fv_header h1{
    position:absolute !important; z-index:3 !important; margin:0 !important;
    left:var(--pc-h1-left) !important; top:var(--pc-h1-top) !important;
    font-size:var(--pc-h1-font, 3.4vw) !important;
    line-height:1.14 !important; letter-spacing:.06em !important;
  }
  .fwh-fv_header h1 .span1{
    display:block !important;
    margin:var(--pc-h1-gap,.34em) 0 !important;
    padding:.1em .45em !important;
    background:#D93657 !important; color:#fff !important; border-radius:0 !important;
  }
}










/* ===== CTA/赤帯：PCの最終上書き（必ずCSSの一番下） ===== */
@media (min-width:769px){
  :root{
    /* ここだけ触ればOK（数値ノブ） */
    --pc-cta-wrap-w:  min(350px, 122vw); /* ボタン外枠幅 */
    --pc-cta-h:       65px;             /* ボタン高さ */
    --pc-cta-pad-x:   35px;             /* 左右パディング(左) */
    --pc-cta-radius:  16px;

    --pc-cta-sub-size: 14px;            /* 1段目 */
    --pc-cta-main-size: 22px;           /* 2段目 */
    --pc-cta-gap: 3px;                  /* 行間 */

    --pc-h1-left:  14.5vw;               /* 赤帯：左 */
    --pc-h1-top:   20.1vw;               /* 赤帯：上 */
    --pc-h1-font:  3.6vw;               /* 必要なら文字サイズ */
    --pc-h1-gap:   .34em;               /* 行間 */
  }

  /* CTAコンテナ＆本体（サイズ系） */
  .fwh-sec01_cta_btn, .fwh-cta_footer_btn{
    width:var(--pc-cta-wrap-w) !important;
    margin: .8vw auto !important;
    display:flex !important; justify-content:center !important;
  }
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    width:100% !important;
    height:var(--pc-cta-h) !important;
    padding:0 calc(var(--pc-cta-pad-x) + var(--pc-cta-icon-size,0px) + var(--pc-cta-icon-right,0px))
             0 var(--pc-cta-pad-x) !important;
    border-radius:var(--pc-cta-radius) !important;
    font-size:inherit !important; /* 親の固定px対策 */
  }

  /* 1段目/2段目の文字サイズを“変数で”強制 */
  .fwh-sec01_cta_btn .btn_cta .cta_layer,
  .fwh-cta_footer_btn .btn_cta .cta_layer{ gap:var(--pc-cta-gap) !important; line-height:1.1 !important; }
  .fwh-sec01_cta_btn .btn_cta .cta_sub,
  .fwh-cta_footer_btn .btn_cta .cta_sub,
  .btn_cta .cta_sub{ font-size:var(--pc-cta-sub-size) !important; white-space:nowrap !important; }
  .fwh-sec01_cta_btn .btn_cta .cta_main,
  .fwh-cta_footer_btn .btn_cta .cta_main,
  .btn_cta .cta_main{ font-size:var(--pc-cta-main-size) !important; white-space:nowrap !important; }

  /* 赤帯（H1）上下左右の位置 */
  #fwh-fv{ position:relative; }
  .fwh-fv_header{ padding:0 !important; position:static !important; } /* 基準化が重要 */
  .fwh-fv_header h1{
    position:absolute !important; z-index:3 !important; margin:0 !important;
    left:var(--pc-h1-left) !important; top:var(--pc-h1-top) !important;
    font-size:var(--pc-h1-font) !important; line-height:1.14 !important; letter-spacing:.06em !important;
  }
  .fwh-fv_header h1 .span1{
    display:block !important; margin:var(--pc-h1-gap) 0 !important; padding:.1em .45em !important;
    background:#D93657 !important; color:#fff !important; border-radius:0 !important;
  }
}

/* PC（≥769px） */
@media (min-width:769px){
  :root{
    /* ←ここだけ数値を変えればOK（単位はvwやpxどちらでも） */
    --pc-rib-label: 1.9vw;   /* 左の小ラベル */
    --pc-rib-ttl:   2.9vw;    /* 左のメイン見出し */
    --pc-rib-num:   6.8vw;    /* 右の「0」 */
    --pc-rib-yen:   2.4vw;    /* 「円」など */
    --pc-rib-gap:   .38em;    /* ラベル↕タイトルの間隔 */
    --pc-rib-line:  1.14;     /* 左ブロックの行間 */
  }
  /* 強制上書き（どこでclampされていても勝つ） */
  #fwh-fv .fv-ribbon{ gap:clamp(8px, var(--pc-rib-gap), 3vw) !important; }
  #fwh-fv .fv-ribbon__left{ line-height:var(--pc-rib-line) !important; }
  #fwh-fv .fv-ribbon__label{ font-size:var(--pc-rib-label) !important; }
  #fwh-fv .fv-ribbon__ttl  { font-size:var(--pc-rib-ttl)   !important; }
  #fwh-fv .fv-ribbon__num  { font-size:var(--pc-rib-num)   !important; line-height:1 !important; }
  #fwh-fv .fv-ribbon__yen  { font-size:var(--pc-rib-yen)   !important; }
}

/* === SP：固定オレンジCTAを必ずタップ可能にする最終パッチ === */
@media (max-width:768px){
  /* 画像はタッチ無視（下のaにイベントを通す） */
  .fwh-footer_cta picture,
  .fwh-footer_cta img{
    pointer-events: none !important;
  }

  /* クリックレイヤー（a.btn_cta）を常に最前面＆フルサイズに */
  .fwh-footer_cta .btn_cta{
    /* 以前の `all: unset` の影響を打ち消す */
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    z-index: 2 !important;

    opacity: 0 !important;               /* 見た目は透明のまま */
    background: transparent !important;
    box-shadow: none !important;

    pointer-events: auto !important;      /* タップ可 */
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  /* 念のため土台も最前面に */
  .fwh-footer_cta{
    z-index: 9999 !important;
    pointer-events: auto !important;
  }
}

/* === PCだけ：Section04 吹き出しサイズ調整ノブ === */
@media (min-width:769px){
  :root{
    --sec04-bubble-w-pc: 40vw;    /* 横幅（小さくしたいなら数値を下げる） */
    --sec04-bubble-ar-pc: 2.5/1;  /* 縦横比：小さくすると“低く”なる */
    --sec04-bubble-bgH-pc: 46%;   /* 背景画像の高さ（尾の見え方の微調整） */
    --sec04-bubble-padT-pc: 1.5vw;/* 文字の上パディング（行の余白） */
  }

  .fwh-sec04 h2 .span1.span1-wide{
    width: var(--sec04-bubble-w-pc) !important;
    aspect-ratio: var(--sec04-bubble-ar-pc) !important;    /* 高さコントロール */
    background-size: 100% var(--sec04-bubble-bgH-pc) !important; /* 影/三角の見え方 */
    padding-top: var(--sec04-bubble-padT-pc) !important;   /* 中のテキスト位置 */
  }
}

/* === PC：Section04 吹き出しの縦位置ノブ === */
@media (min-width:769px){
  :root{
    --sec04-head-shift-pc: -3.8vw;   /* 見出し(h2)全体を下へ。+で下 / -で上 */
    --sec04-bubble-only-pc: 3vw;    /* 吹き出しだけ個別に下げたい時に使う */
    --sec04-head-after-gap: 0vw;    /* h2の下の余白（任意） */
  }

  /* h2 全体を下げる（中のテキストも一緒に動く） */
  .fwh-sec04 h2{
    margin-top: var(--sec04-head-shift-pc) !important;
    margin-bottom: var(--sec04-head-after-gap) !important;
  }

  /* 吹き出しだけを更に微調整したい場合（必要な時だけ数値を入れて） */
  .fwh-sec04 h2 .span1.span1-wide{
    margin-top: var(--sec04-bubble-only-pc) !important;
  }
}

/* === PC：Section04 吹き出しまわりの縦間ノブ === */
@media (min-width:769px){
  :root{
    /* 吹き出し（h2）の下の余白 → 小さくすると詰まる */
    --sec04-bubble-gap-pc: 1.6vw;

    /* セクション内の次要素(.fwh-sec04_content)の上マージン
       必要ならここも詰める（既定は4.375vwだった） */
    --sec04-content-mt-pc: 1.2vw;

    /* Section04 全体の下パディング（次セクションとの間） */
    --sec04-pad-bottom-pc: .8vw;

    /* さらに全体を強制的に近づけたい時の最終手段（負の値OK）
       .fwh-sec04の直後のブロックを上へ引き寄せる */
    --sec04-next-pull-pc: 0vw; /* 例: -2vw とするとグッと詰まる */
  }

  /* h2（吹き出し）直下の余白 */
  .fwh-sec04 h2{ margin-bottom: var(--sec04-bubble-gap-pc) !important; }

  /* セクション内の次ブロックを詰める */
  .fwh-sec04_content{ margin-top: var(--sec04-content-mt-pc) !important; }

  /* セクション下端の余白を調整（次セクションとの間） */
  .fwh-sec04{ padding-bottom: var(--sec04-pad-bottom-pc) !important; }

  /* 次セクション全体を引き上げたい場合だけ有効（安全な即隣指定） */
  .fwh-sec04 + *{ margin-top: var(--sec04-next-pull-pc) !important; }
}

/* === PCだけ：吹き出し(.span1)の直下の余白を数値で制御 === */
@media (min-width:769px){
  :root{
    /* 吹き出し画像の直下（.span1→次行）を詰める */
    --sec04-bubble-mb-pc: -8.6vw;  /* ここを小さくするとギュッと詰まる */

    /* （念のため）次行の上マージン側からも詰める */
    --sec04-sub-mt-pc:    0.2vw;  /* 0～0.6vw くらいが目安 */
  }

  /* 吹き出し要素そのものの“下マージン”を操作 */
  .fwh-sec04 h2 .span1.span1-wide{
    margin-bottom: var(--sec04-bubble-mb-pc) !important;
  }

  /* 吹き出しの次行（見出しの黒文字など）がある場合は上マージンも調整 */
  .fwh-sec04 h2 .span2{ margin-top: var(--sec04-sub-mt-pc) !important; }
  .fwh-sec04 h2 .span3{ margin-top: calc(var(--sec04-sub-mt-pc) * .6) !important; }
}

@media (max-width:768px){
  :root{
    /* 吹き出し画像の直下（.span1→次行）を詰める */
    --sec04-bubble-mb-pc: -8.6vw;  /* ここを小さくするとギュッと詰まる */

    /* （念のため）次行の上マージン側からも詰める */
    --sec04-sub-mt-pc:    0.2vw;  /* 0～0.6vw くらいが目安 */
  }

  /* 吹き出し要素そのものの“下マージン”を操作 */
  .fwh-sec04 h2 .span1.span1-wide{
    margin-bottom: var(--sec04-bubble-mb-pc) !important;
  }

  /* 吹き出しの次行（見出しの黒文字など）がある場合は上マージンも調整 */
  .fwh-sec04 h2 .span2{ margin-top: var(--sec04-sub-mt-pc) !important; }
  .fwh-sec04 h2 .span3{ margin-top: calc(var(--sec04-sub-mt-pc) * .6) !important; }
}

/* ==== PC：Section05 見出しの「0」を必ず表示させる ==== */
@media (min-width:769px){
  :root{
    --fee0-w: 9.6vw;      /* 0の横幅（お好みで） */
    --fee0-dy: -0.06em;   /* 0の上下微調整（-で上） */
    --fee-gap: .22em;     /* 前後余白 */
  }

  /* 行内レイアウトを前提に整える */
  .fwh-sec05_reason_content h4{
    white-space: nowrap;
    line-height: 1.1;
  }

  /* ←ここが肝。全体リセットを打ち消し、必ず行内表示にする */
  .fwh-sec05_reason_content h4 .img2{
    display: inline-block !important;
    width: var(--fee0-w) !important;
    height: auto !important;
    max-width: none !important;        /* img{max-width:100%} を無効化 */
    vertical-align: var(--fee0-dy) !important;
    margin: 0 var(--fee-gap) 0 var(--fee-gap) !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}

@media (min-width:769px){ .fwh-sec02_header h2{ width:40.375vw; } }

.fwh-sec02_header p{
  font-weight:bold; display:flex; flex-direction:column; align-items:center;
  font-size:1.875vw; line-height:1.36; margin:2.813vw 0;
}
@media (min-width:769px){
  .fwh-sec02_header p{ font-size:1.906vw; margin:4.25vw 0 3.208vw; }
}
.fwh-sec02_header p .span1{
  background:url("../images/icon_deco_1.svg") no-repeat center bottom/60%;
  width:29.375vw; padding-bottom:2.5vw; margin-bottom:1.25vw;
}
@media (min-width:769px){
  .fwh-sec02_header p .span1{
    width:66.992vw; padding-bottom:3.208vw; margin-bottom:1.083vw;
  }
}
.fwh-sec02_header p .span2{ font-size:136%; font-weight:900; }

/* ====== 中間幅だけのCTA横伸び対策（PCを縮めたとき専用） ====== */
/* 例：幅600～900pxの時にだけ有効。スマホ実機には当てない */
@media (min-width: 600px) and (max-width: 900px) and (hover: hover) and (pointer: fine) {
  :root{
    /* 好きなサイズに調整してOK */
    --cta-mid-maxw: 480px;  /* この幅でキャップ（例: 440～520pxあたりが無難） */
    --cta-mid-h:    58px;   /* 高さも固定して比率を守る */
  }

  /* ラッパー幅をキャップ（セクション/フッター両方） */
  .fwh-sec01_cta_btn,
  .fwh-cta_footer_btn{
    width: var(--cta-mid-maxw) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* ボタン本体の高さと丸みを固定（横長化防止） */
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    height: var(--cta-mid-h) !important;
    border-radius: 999px !important;
    padding: 0 48px 0 16px !important;  /* 右アイコン分の余白 */
    width: 100% !important;             /* 伸縮はラッパーに任せる */
  }

  /* 飛行機アイコンのはみ出し防止 */
  .btn_cta .cta_icon{
    right: 12px !important;
    width: 22px !important;
    height: 22px !important;
  }
}

/* PCを狭めたときだけ：CTAの横長化をキャップ（スマホ実機は除外） */
@media (min-width:600px) and (max-width:920px) and (hover:hover) and (pointer:fine) {
  /* ラッパーの幅をキャップ（SPの width:92vw を打ち消す） */
  .fwh-sec01_cta_btn.fwh-sec01_cta_btn,
  .fwh-cta_footer_btn.fwh-cta_footer_btn{
    width: clamp(360px, 62vw, 480px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  /* ボタン本体：高さ固定＋丸み。横比率が崩れないように */
  .fwh-sec01_cta_btn .btn_cta,
  .fwh-cta_footer_btn .btn_cta{
    height: 58px !important;
    width: 100% !important;
    border-radius: 999px !important;
    padding: 0 48px 0 16px !important; /* 右アイコンぶんの余白 */
    font-size: inherit !important;
  }
  /* 右の飛行機がはみ出ないように */
  .btn_cta .cta_icon{
    right: 12px !important;
    width: 22px !important;
    height: 22px !important;
  }
}

/* ↑DevToolsの「Responsive」環境で hover 値が取れず当たらないケースの保険 */
@media (min-width:600px) and (max-width:920px) {
  .fwh-sec01_cta_btn.fwh-sec01_cta_btn,
  .fwh-cta_footer_btn.fwh-cta_footer_btn{
    width: clamp(360px, 60vw, 480px) !important;
  }
}

/* ヒーロー土台 */


/* 背景 + 白がけ（背景専用レイヤー） */
.only-bg-wash::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;             /* ← 背景：一番後ろ */
  background:
    /* 上→下で白が薄くなるグラデ（数値は好みで調整） */
    linear-gradient(to bottom, rgba(255,255,255,.45), rgba(255,255,255,.12)),
    var(--bg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* 前景（人物やテキスト）は前面に */
.fv > *{
  position: relative;
  z-index: 1;
}

/* 人物の配置例：右下寄せ・高さフィット */
.fwh-fv_picture{
  position: absolute;
  right: -1%;
  bottom: 0;
  height: 90%;
}
.fwh-fv_picture img{
  display: block;
  height: 100%;
  width: auto;
}

@media (max-width:768px){
/* 人物の配置例：右下寄せ・高さフィット */
.fwh-fv_picture{
  position: absolute;
  right: -16%;
  bottom: 0;
  height: 70%;
}
.fwh-fv_picture img{
  display: block;
  height: 100%;
  width: auto;
}
}

@media (min-width:768px){
/* 「0円」の並び（ベースライン合わせ + 余白） */
.fv-ribbon__fee{
  display: inline-flex;
  align-items: baseline;
  gap: .12em;          /* 0 と 円の間隔。好みで */
}

/* 円だけを上下左右に微調整できるようにする */
.fv-ribbon{
  /* ここでデフォルト値（必要に応じて上書き） */
  --yen-x: .06em;      /* → 正 / ← 負 */
  --yen-y: .7em;     /* ↓ 正 / ↑ 負 */
}
.fv-ribbon__yen{
  position: relative;
  left: var(--yen-x);
  top:  var(--yen-y);
  display: inline-block;   /* Safari対策 */
  font-size: .28em;        /* 0 に対する相対サイズ。お好みで */
  font-weight: 800;
}
}
/* 例：SPだけ微調整したいとき */
@media (max-width: 640px){
  .fv-ribbon{
    --yen-x: .04em;
    --yen-y: -.03em;
  }
}
