/* =====================================================================
   レイアウト：既存LP（joy-365-syokai2601）の750px設計をそのまま踏襲
   単位 u = 本体幅 / 750（既存CSSの calc(N * 100vw / 750) と同じ考え方）
   色　　：既存LPの配色の役割を、今回FV（POP）のトンマナに置き換え
     既存 #E04364（外側・フッター）    → メインブルー #0074B7
     既存 淡ピンク（期間帯）            → 淡ピンク #F6B6D1
     既存 マゼンタ（導入背景・枠・帯）  → メインピンク #E96B9F ／ 文字はピンク濃 #D9468A
     既存 黄（景品背景）                → メインブルー #0074B7
     既存 ミント（流れ・FAQ・フォーム）→ ライトブルー #CDE8F7
     既存 オレンジ（申込ボタン）        → ベリーレッド #A72D4B
   ===================================================================== */
:root{
  --u: calc(min(100vw, 430px) / 750);
  --blue:#0074B7; --blue-l:#CDE8F7; --blue-p:#EFF8FC;
  --pink:#E96B9F; --pink-d:#D9468A; --pink-l:#F8BED6; --pink-p:#FFF1F6;
  --yellow:#FFF15A; --berry:#A72D4B; --berry-h:#87223C;
  --ink:#262626; --sub:#595959; --line:#D5DFE5; --cream:#FFF7DE;
  --pop:"Mochiy Pop One","M PLUS Rounded 1c","Hiragino Maru Gothic ProN",sans-serif;
  --round:"M PLUS Rounded 1c","Noto Sans JP","Noto Sans CJK JP","Hiragino Maru Gothic ProN",sans-serif;
  --sans:"Noto Sans JP","Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blue);color:var(--ink);font-family:var(--sans);line-height:1.6;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:var(--blue)}
#wrap{width:100%;max-width:430px;margin:0 auto;background:#fff;overflow:hidden;position:relative}
.sec{position:relative}
h1,h2,h3,p{margin:0}

/* ---------- 初稿表示（公開時に削除） ---------- */
.draft-bar{background:var(--ink);color:#fff;font-size:11px;line-height:1.5;padding:6px 12px;text-align:center}
.draft-bar b{color:var(--yellow)}
.tbd{display:inline;background:#fff6a8;color:#6b3b00;border:1px dashed #c08a00;border-radius:3px;padding:0 3px;font-weight:700;font-size:.9em;font-family:var(--sans);letter-spacing:0;-webkit-text-stroke:0;text-shadow:none;box-decoration-break:clone;-webkit-box-decoration-break:clone;line-height:1.5}
.chk{display:inline-block;vertical-align:middle;background:#fff6a8;color:#6b3b00;border:1px dashed #c08a00;border-radius:3px;font-size:10px;line-height:1.4;padding:0 4px;margin-left:3px;font-weight:700;font-family:var(--sans);letter-spacing:0;white-space:nowrap;-webkit-text-stroke:0;text-shadow:none}
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed #b9c6cf;background:#fff;color:var(--sub);font-size:11px;line-height:1.45;font-weight:700}
.ph small{display:block;font-weight:500;font-size:10px;color:#767676}

/* ---------- 申込ボタン（既存 btn_apply 01/02 の形状を踏襲、色のみ変更） ---------- */
.cta-wrap{position:relative;width:calc(var(--u)*684);margin:0 auto}
.cta{display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*40);width:100%;height:calc(var(--u)*118);border-radius:999px;background:var(--berry);border:calc(var(--u)*4) solid #fff;
  box-shadow:0 calc(var(--u)*9) 0 var(--berry-h);color:#fff;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*44);letter-spacing:.08em;text-decoration:none;cursor:pointer;position:relative;z-index:1;transition:background-color .15s}
.cta::after{content:"";border-style:solid;border-width:calc(var(--u)*14) 0 calc(var(--u)*14) calc(var(--u)*20);border-color:transparent transparent transparent #fff}
.cta:hover{background:var(--berry-h)}
.cta:active{transform:translateY(calc(var(--u)*5));box-shadow:0 calc(var(--u)*4) 0 var(--berry-h)}
.cta:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.cta:disabled{background:#E5E7EB;color:#6B7280;box-shadow:0 calc(var(--u)*9) 0 #c9ccd2;cursor:not-allowed}
.cta:disabled::after{border-left-color:#6B7280}
.period .cta{padding-left:calc(var(--u)*60)}
.cta-wrap .peek{position:absolute;left:calc(var(--u)*215);top:calc(var(--u)*-96);width:calc(var(--u)*254);z-index:0}
.chance{position:absolute;left:calc(var(--u)*29);top:calc(var(--u)*-91);z-index:2;width:calc(var(--u)*170);height:auto}

/* ---------- FV ---------- */
/* FV：支給画像をそのまま使用。不透明部分(900×1246)を枠とし、はみ出たクマは下のセクションに重ねる */
.fv{position:relative;z-index:3;aspect-ratio:900/1410}
.fv img{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:900/1410;pointer-events:none}

/* ---------- 期間（既存KV下部 466/750） ---------- */
/* 期間：既存LP（img_kv下部）の寸法・書体を踏襲。色のみ今回のトンマナ */
.period{background:#F6B6D1;padding:calc(var(--u)*21) calc(var(--u)*41) calc(var(--u)*48)}
.period-label{display:flex;align-items:center}
.period-label .lb{display:block;background:#fff;padding:calc(var(--u)*5) calc(var(--u)*5) calc(var(--u)*5) calc(var(--u)*5);clip-path:polygon(0 0,calc(100% - calc(var(--u)*25)) 0,100% 50%,calc(100% - calc(var(--u)*25)) 100%,0 100%)}
.period-label .lb span{display:block;background:var(--ink);color:#fff;font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN",sans-serif;font-weight:900;font-size:calc(var(--u)*27);line-height:calc(var(--u)*40);letter-spacing:.02em;padding:0 calc(var(--u)*46) 0 calc(var(--u)*30);clip-path:polygon(0 0,calc(100% - calc(var(--u)*20)) 0,100% 50%,calc(100% - calc(var(--u)*20)) 100%,0 100%)}
.period-label::after{content:"";flex:1;height:calc(var(--u)*2);background:var(--ink)}
.period-date{height:calc(var(--u)*122);display:flex;align-items:center;justify-content:center;margin:0}
.period-date .pd{display:inline-flex;align-items:baseline;white-space:nowrap;font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN",sans-serif;font-weight:900;color:var(--blue);-webkit-text-stroke:calc(var(--u)*12) #fff;paint-order:stroke fill;line-height:1;transform-origin:center}
.period-date .y{font-size:calc(var(--u)*45);letter-spacing:-.03em}
.period-date .n{font-size:calc(var(--u)*92);letter-spacing:-.04em}
.period-date .w{display:inline-flex;align-items:center;justify-content:center;width:calc(var(--u)*37);height:calc(var(--u)*37);border-radius:50%;background:var(--berry);color:#fff;-webkit-text-stroke:0;font-size:calc(var(--u)*22);margin:0 calc(var(--u)*6) 0 calc(var(--u)*4);box-shadow:0 0 0 calc(var(--u)*5) #fff;transform:translateY(calc(var(--u)*-3))}
.period-date .arr{font-size:calc(var(--u)*26);letter-spacing:-.12em;margin:0 calc(var(--u)*8) 0 calc(var(--u)*2);transform:translateY(calc(var(--u)*-22));display:inline-block}
.period-date .made{font-size:calc(var(--u)*29);color:var(--blue)}
.period-line{height:calc(var(--u)*2);background:var(--ink);margin-bottom:calc(var(--u)*100)}

/* ---------- 導入（既存 img_about 750×1218） ---------- */
.about{background:var(--pink);padding:calc(var(--u)*50) calc(var(--u)*40) calc(var(--u)*50);overflow:hidden}
.about .stripe{position:absolute;height:calc(var(--u)*22);border-radius:calc(var(--u)*11);background:#F08CB6;transform:rotate(-35deg)}
.about-box{position:relative;z-index:1;background:#fff;border:calc(var(--u)*8) solid var(--pink-l);border-radius:calc(var(--u)*92);padding:calc(var(--u)*88) calc(var(--u)*22) 0;text-align:center;overflow:hidden}
.about-h{font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*58);line-height:1.38;letter-spacing:.02em}
.about-p{margin-top:calc(var(--u)*34);font-weight:700;font-size:calc(var(--u)*33);line-height:1.85;color:var(--ink)}
.about-p .mk{background:linear-gradient(transparent 58%,var(--yellow) 58%);padding:0 calc(var(--u)*6)}
.about-p .s{display:block;font-size:calc(var(--u)*22);font-weight:500;color:var(--sub);line-height:1.6;margin-top:calc(var(--u)*6)}
.about-low{display:block;width:calc(var(--u)*654);max-width:none;margin:calc(var(--u)*30) calc(var(--u)*-22) 0}
.about-plus{position:relative;height:calc(var(--u)*250);margin-top:calc(var(--u)*36);text-align:left}
.about-plus .sarani{position:absolute;left:calc(var(--u)*22);top:0;background:var(--pink-d);color:#fff;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*34);line-height:1;padding:calc(var(--u)*8) calc(var(--u)*18) calc(var(--u)*10);transform:rotate(-6deg);border-radius:calc(var(--u)*4)}
.about-plus .big{position:absolute;left:calc(var(--u)*36);top:calc(var(--u)*56);font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*54);line-height:1.3}
.about-plus .circle{position:absolute;right:calc(var(--u)*-6);top:calc(var(--u)*-26);width:calc(var(--u)*250);height:calc(var(--u)*250);border-radius:50%;box-shadow:calc(var(--u)*12) calc(var(--u)*10) 0 0 var(--pink-l);border:none;overflow:hidden}
.about-plus .circle.gun{background:#fff;border:calc(var(--u)*3) solid #eee;display:flex;align-items:center;justify-content:center}
.about-plus .circle.gun img{width:64%;height:auto;transform:translate(2%,2%)}
.mf{margin-right:.35em;letter-spacing:0}
.mf sup{font-size:.55em;vertical-align:.7em;line-height:0;margin-left:.05em}
.gun-img{width:calc(var(--u)*360);margin:0 auto calc(var(--u)*10)}
.gun-img img{width:100%;height:auto}
.all-ttl{text-align:center;margin:0 calc(var(--u)*40) calc(var(--u)*30)}
.all-ttl span{display:inline-block;background:#fff;color:var(--berry);font-family:var(--pop);font-size:calc(var(--u)*34);line-height:1.3;padding:calc(var(--u)*8) calc(var(--u)*28);border-radius:999px}
.plus.sm{width:calc(var(--u)*52);height:calc(var(--u)*52);margin:calc(var(--u)*22) auto}
.plus.sm::before{width:calc(var(--u)*26);height:calc(var(--u)*7)}.plus.sm::after{width:calc(var(--u)*7);height:calc(var(--u)*26)}
.bcard.opt{border-color:var(--yellow);background:#fff}

.opt-kicker{display:inline-block;background:var(--blue);color:#fff;font-family:var(--pop);font-size:calc(var(--u)*34);line-height:1.3;padding:calc(var(--u)*6) calc(var(--u)*26);border-radius:999px;margin-top:calc(var(--u)*6)}
.opt-to{font-weight:900;font-size:calc(var(--u)*34);color:var(--ink);margin:calc(var(--u)*18) 0 calc(var(--u)*-6)}
.opt-ill{display:flex;justify-content:center;align-items:flex-end;gap:calc(var(--u)*60);margin:calc(var(--u)*20) 0 calc(var(--u)*6)}
.opt-ill img{height:calc(var(--u)*200);width:auto}
.opt-pick{display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*12);margin:calc(var(--u)*14) 0 calc(var(--u)*6)}
.opt-pick .o{background:var(--blue-p);border:calc(var(--u)*3) solid var(--blue);border-radius:calc(var(--u)*16);color:var(--blue);font-family:var(--pop);font-size:calc(var(--u)*31);line-height:1.2;padding:calc(var(--u)*14) calc(var(--u)*20);min-width:calc(var(--u)*200)}
.opt-pick .or{font-family:var(--pop);color:var(--pink-d);font-size:calc(var(--u)*36)}
.opt3{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(var(--u)*12);margin:calc(var(--u)*24) calc(var(--u)*-14) calc(var(--u)*6)}
.opt3 .it{display:flex;flex-direction:column;align-items:center}
.opt3 img{height:calc(var(--u)*160);width:auto;max-width:100%;object-fit:contain;margin-bottom:calc(var(--u)*14)}
.opt3 .o{display:block;width:100%;background:var(--blue-p);border:calc(var(--u)*3) solid var(--blue);border-radius:calc(var(--u)*16);color:var(--blue);font-family:var(--pop);font-size:calc(var(--u)*26);line-height:1.2;padding:calc(var(--u)*14) 0;white-space:nowrap;text-align:center}
.opt-sub{font-weight:700;font-size:calc(var(--u)*26);color:var(--ink);margin-top:calc(var(--u)*30)}
.gun-lead{font-weight:500;font-size:calc(var(--u)*30);line-height:1.4;color:var(--ink);margin:calc(var(--u)*26) 0 calc(var(--u)*10)}
.about-plus .cond{position:absolute;left:calc(var(--u)*30);top:calc(var(--u)*206);font-size:calc(var(--u)*20);color:var(--sub)}
.bubbles{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--u)*12);margin:calc(var(--u)*30) calc(var(--u)*-12) 0;padding:0}
.bubble{position:relative;font-weight:500;font-size:calc(var(--u)*27);line-height:1.6;padding:0 calc(var(--u)*4) calc(var(--u)*26);min-height:calc(var(--u)*150);display:block}
.bubble::before,.bubble::after{content:"";position:absolute;bottom:calc(var(--u)*10);width:calc(var(--u)*3);height:calc(var(--u)*72);background:var(--ink)}
.bubble::before{left:calc(var(--u)*10);transform:rotate(-28deg)}
.bubble::after{right:calc(var(--u)*10);transform:rotate(28deg)}
.bubble.r{transform:rotate(4deg)}
.women{position:relative;height:calc(var(--u)*166);margin:calc(var(--u)*6) calc(var(--u)*-22) 0}
.women img{position:absolute;bottom:0}
.women .w1{left:calc(var(--u)*127);width:calc(var(--u)*146)}
.women .w2{left:calc(var(--u)*358);width:calc(var(--u)*180)}
.deco{position:absolute;z-index:2;pointer-events:none}

/* ---------- 景品（既存 img_present 750×3255） ---------- */
.present{background:var(--blue);padding:0 0 calc(var(--u)*60);overflow:hidden}
.present-head{position:relative;height:calc(var(--u)*300);text-align:center}
.present-head .ph-bg{position:absolute;left:0;top:0;width:calc(var(--u)*750);height:auto}
.ribbon{position:absolute;border-radius:50%;border:calc(var(--u)*10) solid;border-color:var(--yellow) transparent transparent transparent}
.conf{position:absolute;width:calc(var(--u)*16);height:calc(var(--u)*16)}
.present-head .bear{position:absolute;bottom:calc(var(--u)*56);height:calc(var(--u)*150);width:auto}
.present-head .bear.l{left:calc(var(--u)*22)}
.present-head .bear.r{right:calc(var(--u)*22)}
.present-head .pill{position:absolute;left:calc(var(--u)*160);top:calc(var(--u)*105);box-shadow:0 0 0 calc(var(--u)*5) #fff;width:calc(var(--u)*415);height:calc(var(--u)*74);display:flex;align-items:center;justify-content:center;white-space:nowrap;background:var(--yellow);border-radius:999px;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*32);color:var(--ink);z-index:2}
.present-head h2{position:absolute;left:calc(var(--u)*56);width:calc(var(--u)*638);top:calc(var(--u)*166);height:calc(var(--u)*102);display:flex;align-items:center;justify-content:center;background:#fff;border-radius:calc(var(--u)*51);box-shadow:0 calc(var(--u)*5) 0 rgba(0,40,80,.16);font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*64);line-height:1;letter-spacing:.01em;color:var(--pink-d);z-index:1;white-space:nowrap;padding-top:calc(var(--u)*4)}
.present-head h2 .k{color:var(--berry)}
.present-head h2 .y{color:var(--yellow)}
.cards{display:flex;flex-direction:column;gap:calc(var(--u)*66);padding:calc(var(--u)*20) calc(var(--u)*40) 0}
.card{position:relative;background:#fff;border:calc(var(--u)*6) solid var(--pink);border-radius:calc(var(--u)*40);overflow:visible}
.card-in{display:grid;grid-template-columns:calc(var(--u)*286) 1fr;align-items:end;gap:0 calc(var(--u)*6);padding:calc(var(--u)*22) calc(var(--u)*24) calc(var(--u)*14) calc(var(--u)*26);min-height:0}
.card-copy{position:relative;font-weight:500;font-size:calc(var(--u)*27);line-height:1.5;letter-spacing:-.02em;text-align:center;padding:calc(var(--u)*24) 0;margin:calc(var(--u)*72) 0 calc(var(--u)*6);white-space:nowrap;align-self:start}
.card-copy::before,.card-copy::after{content:"";position:absolute;left:36%;right:12%;height:calc(var(--u)*3);background:var(--ink)}
.card-copy::before{top:0;transform:rotate(7deg)}.card-copy::after{bottom:0;transform:rotate(-7deg)}
.card .pimg{display:block;width:auto;max-width:100%;height:calc(var(--u)*210);object-fit:contain;margin:0 auto 0 calc(var(--u)*6);transform:translateX(-3px)}
.card .pimg.refa{height:calc(var(--u)*220)}
.card .pimg.yogibo{height:calc(var(--u)*230)}
.card .ph{width:calc(var(--u)*240);height:calc(var(--u)*200);border-radius:calc(var(--u)*16);margin:0 0 calc(var(--u)*6) calc(var(--u)*6)}
.card-name{background:var(--berry);color:#fff;border-radius:0 0 calc(var(--u)*34) calc(var(--u)*34);text-align:center;padding:calc(var(--u)*10) calc(var(--u)*16) calc(var(--u)*14);font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*36);line-height:1.3;letter-spacing:.02em}
.card-name small{display:block;font-size:calc(var(--u)*24);font-weight:800}
.card-name sup{font-size:.5em;vertical-align:.8em;line-height:0}
.card-name small.note{font-family:var(--sans);font-weight:500;font-size:calc(var(--u)*20);line-height:1.5;margin-top:calc(var(--u)*4);letter-spacing:0}
.badge{position:absolute;right:calc(var(--u)*-34 - 3px);top:calc(var(--u)*-46);z-index:2;width:calc(var(--u)*158);height:calc(var(--u)*158);background:var(--berry);color:#fff;
  clip-path:polygon(50% 0,59% 6%,70% 4%,76% 13%,87% 15%,88% 26%,96% 33%,93% 44%,100% 50%,93% 56%,96% 67%,88% 74%,87% 85%,76% 87%,70% 96%,59% 94%,50% 100%,41% 94%,30% 96%,24% 87%,13% 85%,12% 74%,4% 67%,7% 56%,0 50%,7% 44%,4% 33%,12% 26%,13% 15%,24% 13%,30% 4%,41% 6%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--pop);font-weight:400;line-height:1}
.badge .bi{display:flex;flex-direction:column;align-items:center;line-height:1;transform:translateY(calc(var(--u)*2))}
.badge .n{font-size:calc(var(--u)*64);line-height:.95;letter-spacing:-.02em}.badge .n.l{font-size:calc(var(--u)*52);letter-spacing:-.04em}
.badge .u{font-size:calc(var(--u)*22);margin-top:calc(var(--u)*4)}
/* 順位（既存LPの「特賞」「1等」表記と同じ：ピンク文字＋白フチ＋影） */
.rank{position:absolute;left:calc(var(--u)*28);top:calc(var(--u)*16);z-index:2;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*58);line-height:1;color:var(--pink-d);-webkit-text-stroke:calc(var(--u)*8) #fff;paint-order:stroke fill;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}
.card.feature .card-in{grid-template-columns:1fr;padding:calc(var(--u)*40) calc(var(--u)*30) 0;min-height:0;gap:0}
.card.feature .card-copy{padding:0;margin:0 auto;font-size:calc(var(--u)*27);line-height:1.55}
.card.feature .card-copy::before,.card.feature .card-copy::after{top:calc(var(--u)*8);bottom:calc(var(--u)*8);left:auto;right:auto;width:calc(var(--u)*4);height:auto;background:var(--ink);transform:none}
.card.feature .card-copy::before{left:calc(var(--u)*-44);transform:rotate(-20deg)}
.card.feature .card-copy::after{right:calc(var(--u)*-44);transform:rotate(20deg)}
.card.feature .travel{display:block;width:calc(var(--u)*400);height:auto;margin:calc(var(--u)*18) auto 0}
.card.feature .card-copy{width:fit-content;margin:0 auto}
.card.feature .ph{width:calc(var(--u)*520);margin:0 auto;aspect-ratio:16/9}
.card.feature .card-name{font-size:calc(var(--u)*42);padding:calc(var(--u)*6) calc(var(--u)*16) calc(var(--u)*12)}
.card.feature .card-name .num{font-size:calc(var(--u)*96);line-height:.9;color:#fff;-webkit-text-stroke:0;margin:0 calc(var(--u)*4);display:inline-block;transform:translateY(calc(var(--u)*8))}
.plus{width:calc(var(--u)*64);height:calc(var(--u)*64);border-radius:50%;background:var(--pink);margin:calc(var(--u)*28) auto;position:relative}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;background:#fff;transform:translate(-50%,-50%);border-radius:calc(var(--u)*2)}
.plus::before{width:calc(var(--u)*34);height:calc(var(--u)*8)}.plus::after{width:calc(var(--u)*8);height:calc(var(--u)*34)}
.bcard{position:relative;background:#fff;border:calc(var(--u)*6) solid var(--pink);border-radius:calc(var(--u)*40);margin:0 calc(var(--u)*40);padding:calc(var(--u)*40) calc(var(--u)*36) calc(var(--u)*28);text-align:center}
.bcard.opt{padding-top:calc(var(--u)*96)}
.bbadge{position:absolute;left:calc(var(--u)*-30 - 3px);top:calc(var(--u)*-46);width:calc(var(--u)*170);height:calc(var(--u)*170);background:var(--berry);color:#fff;z-index:2;
  clip-path:polygon(50% 0,59% 6%,70% 4%,76% 13%,87% 15%,88% 26%,96% 33%,93% 44%,100% 50%,93% 56%,96% 67%,88% 74%,87% 85%,76% 87%,70% 96%,59% 94%,50% 100%,41% 94%,30% 96%,24% 87%,13% 85%,12% 74%,4% 67%,7% 56%,0 50%,7% 44%,4% 33%,12% 26%,13% 15%,24% 13%,30% 4%,41% 6%);
  display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*30);line-height:1.25;transform:rotate(-8deg)}
.bcard .ph{width:calc(var(--u)*420);aspect-ratio:1/1;margin:0 auto calc(var(--u)*24);border-radius:calc(var(--u)*16)}
.bcard-name{font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*46);line-height:1.3}
.bcard-name .or{color:var(--blue);margin:0 calc(var(--u)*8)}
.free{font-family:var(--pop);font-weight:400;color:var(--blue);font-size:calc(var(--u)*40);margin-top:calc(var(--u)*4)}
.free span{background:linear-gradient(transparent 72%,var(--yellow) 72%);padding:0 calc(var(--u)*6)}.free b{font-size:calc(var(--u)*84)}
.bcard-cond{margin-top:calc(var(--u)*14);font-size:calc(var(--u)*23);line-height:1.6;color:var(--sub);text-align:left}
.bcard-cond p{padding-left:1em;text-indent:-1em}
.present-notes{color:#fff;font-size:calc(var(--u)*26);line-height:1.65;margin:calc(var(--u)*40) calc(var(--u)*40) 0}

/* ---------- ご紹介の流れ（既存 img_benefit 750×3051） ---------- */
.flow{background:var(--blue-l);padding:calc(var(--u)*64) calc(var(--u)*40) calc(var(--u)*40)}
.flow-box{position:relative;background:#fff;border:calc(var(--u)*6) solid var(--blue);border-radius:calc(var(--u)*40);padding:calc(var(--u)*72) calc(var(--u)*50) calc(var(--u)*46)}
.flow-ttl{position:absolute;left:50%;top:calc(var(--u)*-34);transform:translateX(-50%);white-space:nowrap;background:var(--blue);color:#fff;border-radius:999px;padding:0 calc(var(--u)*50);height:calc(var(--u)*64);line-height:calc(var(--u)*64);font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*40)}
.step{position:relative;text-align:center}
.step-num{position:absolute;left:0;top:calc(var(--u)*-6);width:calc(var(--u)*100);text-align:center;font-family:var(--pop);font-weight:400;color:var(--blue);line-height:1}
.step-num small{display:block;font-size:calc(var(--u)*19);letter-spacing:.06em;margin-bottom:calc(var(--u)*6)}
.step-num span{position:relative;display:flex;align-items:center;justify-content:center;width:calc(var(--u)*96);height:calc(var(--u)*96);margin:0 auto;border-radius:50%;border:calc(var(--u)*6) solid var(--blue);font-size:calc(var(--u)*50)}
.step-num span::before,.step-num span::after{content:"";position:absolute;top:50%;width:calc(var(--u)*14);height:calc(var(--u)*16);background:#fff;transform:translateY(-50%)}
.step-num span::before{left:calc(var(--u)*-10)}.step-num span::after{right:calc(var(--u)*-10)}
.step-ill{display:block;margin:0 auto}
.step-h{margin-top:calc(var(--u)*4);font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*33);line-height:1.4;letter-spacing:-.01em}
.step-p{font-weight:700;font-size:calc(var(--u)*29);line-height:1.6;margin-top:calc(var(--u)*6)}
.step-p.note{font-weight:500;font-size:calc(var(--u)*25);text-align:left;display:inline-block;padding-left:1em;text-indent:-1em}
.step-p.small{font-weight:500;font-size:calc(var(--u)*24)}
.dots{width:calc(var(--u)*44);height:calc(var(--u)*28);margin:calc(var(--u)*34) auto;background:radial-gradient(circle,var(--blue) calc(var(--u)*2.4),transparent calc(var(--u)*2.8)) 0 0/calc(var(--u)*8.8) calc(var(--u)*7);clip-path:polygon(0 0,100% 0,50% 100%)}
.flow-plus{position:relative;margin-top:calc(var(--u)*44);border-top:calc(var(--u)*2) dashed #888;padding-top:calc(var(--u)*60);text-align:center}
.flow-plus .plus{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);margin:0}
.flow-plus .tag{position:absolute;left:calc(var(--u)*-30);top:calc(var(--u)*28);width:calc(var(--u)*112);height:calc(var(--u)*104);border-radius:50%;background:var(--pink-d);color:#fff;font-weight:900;font-size:calc(var(--u)*22);line-height:1.3;display:flex;align-items:center;justify-content:center;transform:rotate(-12deg)}
.flow-plus .tag::after{display:none;content:"";position:absolute;right:calc(var(--u)*-8);bottom:calc(var(--u)*12);border-style:solid;border-width:calc(var(--u)*10) 0 calc(var(--u)*10) calc(var(--u)*18);border-color:transparent transparent transparent var(--pink-d)}
.flow-plus .lead{font-weight:700;font-size:calc(var(--u)*28);margin:0 0 calc(var(--u)*6 + 10px) calc(var(--u)*60)}
.flow-plus .name{font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*40);line-height:1.4}
.flow-plus .name .or{color:var(--blue)}
.flow-plus .tag::before{content:"";position:absolute;right:calc(var(--u)*-12);top:56%;width:calc(var(--u)*26);height:calc(var(--u)*22);background:var(--pink-d);clip-path:polygon(0 0,100% 55%,0 100%);transform:rotate(12deg)}
.flow-plus .name-plus{font-family:var(--pop);color:var(--pink-d);font-size:calc(var(--u)*36);line-height:1;margin:calc(var(--u)*6) 0}
.flow-plus .name.opt{color:var(--blue);font-size:calc(var(--u)*36)}
.flow-plus .name-s{font-size:calc(var(--u)*26)}
.fp-notes{list-style:none;margin:calc(var(--u)*20) 0 0;padding:0;text-align:left}
.fp-notes li{font-size:calc(var(--u)*23);line-height:1.6;padding-left:1em;text-indent:-1em;margin-bottom:calc(var(--u)*4)}
.fp-notes li::before{content:"※"}
.flow-plus .txt{font-weight:700;font-size:calc(var(--u)*28);line-height:1.7;margin-top:calc(var(--u)*12)}
.flow-plus .s{font-weight:500;font-size:calc(var(--u)*24);line-height:1.6;margin-top:calc(var(--u)*14)}
.more{text-align:center;font-weight:700;font-size:calc(var(--u)*30);margin:calc(var(--u)*64) 0 calc(var(--u)*14)}
.bear-row{display:flex;justify-content:space-between;align-items:flex-end;height:calc(var(--u)*180);margin:0 calc(var(--u)*-20) calc(var(--u)*70)}
.bear-row img{height:100%;width:auto;min-width:0}

/* ---------- キャンペーン概要（既存 img_overview 750×2561） ---------- */
.overview{background:#fff;padding:calc(var(--u)*60) calc(var(--u)*40) calc(var(--u)*80)}
.ov-ttl{text-align:center;font-family:var(--pop);font-weight:400;color:var(--blue);font-size:calc(var(--u)*66);line-height:1.3;margin-bottom:calc(var(--u)*46)}
.ov dl{margin:0}
.ov dt{font-family:var(--pop);font-weight:400;color:var(--pink-d);font-size:calc(var(--u)*34);line-height:1.4}
.ov dd{margin:calc(var(--u)*28) 0 0;font-weight:500;font-size:calc(var(--u)*27);line-height:1.65;padding-bottom:calc(var(--u)*44);border-bottom:calc(var(--u)*2) solid var(--pink)}
.ov dd + dt{margin-top:calc(var(--u)*44)}
.ov dd .s{display:block;font-size:calc(var(--u)*24);padding-left:1em;text-indent:-1em}
.ov dd:last-of-type{border-bottom:none}
.caution{margin-top:calc(var(--u)*46);border:calc(var(--u)*6) solid var(--pink);border-radius:calc(var(--u)*40);padding:calc(var(--u)*40) calc(var(--u)*50) calc(var(--u)*44)}
.caution h3{text-align:center;font-weight:700;font-size:calc(var(--u)*38);margin-bottom:calc(var(--u)*20)}
.caution ul{margin:0;padding:0;list-style:none}
.caution li{font-size:calc(var(--u)*26);line-height:1.6;padding-left:1em;text-indent:-1em;margin-bottom:calc(var(--u)*4)}
.caution li::before{content:"・"}

/* ---------- FAQ（既存CSS #faq 準拠） ---------- */
#faq{background:var(--blue-l);padding:calc(var(--u)*80) 0 calc(var(--u)*80)}
.sec-ttl-dark{text-align:center;font-family:var(--pop);font-weight:400;color:var(--ink);font-size:calc(var(--u)*60);line-height:1.1;margin-bottom:calc(var(--u)*40)}
.qa{display:grid;gap:calc(var(--u)*20)}
.qa details{width:calc(var(--u)*670);margin:0 auto;background:var(--cream);border-radius:calc(var(--u)*20);padding:calc(var(--u)*30)}
.qa summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.qa summary::-webkit-details-marker{display:none}
.qa summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px;border-radius:6px}
.qa .q{position:relative;font-size:calc(var(--u)*27);font-weight:500;line-height:calc(var(--u)*50);padding-left:calc(var(--u)*70);width:calc(var(--u)*540)}
.qa .q::before{content:"Q.";position:absolute;left:0;top:0;font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*44);color:var(--pink-d);line-height:calc(var(--u)*52)}
.qa .ic{position:relative;width:calc(var(--u)*22);height:calc(var(--u)*22);flex:0 0 calc(var(--u)*22);margin-right:calc(var(--u)*10)}
.qa .ic::before,.qa .ic::after{content:"";position:absolute;left:50%;top:50%;background:var(--pink-d);border-radius:999px;transform:translate(-50%,-50%);transition:transform .28s,opacity .28s}
.qa .ic::before{width:calc(var(--u)*22);height:calc(var(--u)*4)}.qa .ic::after{width:calc(var(--u)*4);height:calc(var(--u)*22)}
.qa details[open] .ic::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.qa .a{position:relative;font-size:calc(var(--u)*28);font-weight:500;line-height:calc(var(--u)*52);padding:calc(var(--u)*30) 0 0 calc(var(--u)*70);width:calc(var(--u)*574)}
.qa .a::before{content:"A.";position:absolute;left:0;top:calc(var(--u)*30);font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*44);color:var(--blue);line-height:calc(var(--u)*52)}

/* ---------- 申込フォーム（既存CSS #apply 準拠） ---------- */
#apply{background:var(--blue-l);padding:0 calc(var(--u)*40) calc(var(--u)*50)}
#apply .inner{background:#fff;border-radius:calc(var(--u)*40);padding:calc(var(--u)*60) calc(var(--u)*40) calc(var(--u)*40)}
.form-alert{background:#fff6a8;border:1px dashed #c08a00;color:#6b3b00;border-radius:8px;font-size:12px;line-height:1.6;padding:8px 10px;margin-bottom:calc(var(--u)*24);font-weight:700}
.f-row label{display:flex;align-items:center;gap:calc(var(--u)*8);font-size:calc(var(--u)*30);font-weight:500}
.req{font-size:calc(var(--u)*20);background:var(--berry);color:#fff;border-radius:calc(var(--u)*4);padding:calc(var(--u)*2) calc(var(--u)*8);font-weight:700}
.f-note{font-size:13px;margin:calc(var(--u)*2) 0 0}
.f-row input,.f-row select{width:100%;border:calc(var(--u)*2) solid #707070;border-radius:calc(var(--u)*6);font-size:max(16px,calc(var(--u)*32));font-family:var(--sans);padding:calc(var(--u)*18) calc(var(--u)*16) calc(var(--u)*14);margin:calc(var(--u)*10) 0 calc(var(--u)*32);background:#fff;color:var(--ink);-webkit-appearance:none;appearance:none}
.f-row input::placeholder{color:#C6C6C6}
.f-radio .lbl{display:flex;align-items:center;flex-wrap:wrap;gap:calc(var(--u)*8);font-size:calc(var(--u)*30);font-weight:500;margin:0 0 calc(var(--u)*10)}
.f-radio .rd{display:flex;align-items:center;gap:calc(var(--u)*14);font-size:calc(var(--u)*30);font-weight:500;min-height:44px;margin:0 0 calc(var(--u)*6) calc(var(--u)*10);cursor:pointer}
.f-radio .rd::before{content:"└";color:#888;font-size:calc(var(--u)*26);margin-right:calc(var(--u)*-4)}
.f-row.f-radio input{-webkit-appearance:radio;appearance:auto;width:22px;height:22px;margin:0;padding:0;border:0;background:none;box-shadow:none;accent-color:var(--blue);flex:0 0 22px}
.f-radio .f-err{margin:calc(var(--u)*4) 0 calc(var(--u)*24)}
.f-row.f-radio input:focus{box-shadow:none;outline:2px solid rgba(0,116,183,.4);outline-offset:2px}
.f-radio{margin-bottom:calc(var(--u)*28)}
.f-row select{padding:calc(var(--u)*16);padding-right:calc(var(--u)*60)}
.f-row select:invalid{color:#9a9a9a}
.select-wrap{position:relative}
.select-wrap::after{content:"";position:absolute;width:calc(var(--u)*16);height:calc(var(--u)*16);border-right:calc(var(--u)*4) solid #000;border-bottom:calc(var(--u)*4) solid #000;transform:rotate(45deg);right:4%;top:27%;pointer-events:none}
.f-row input:focus,.f-row select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,116,183,.2)}
.f-row.err input,.f-row.err select{border-color:#B42318;background:#FFF4F2}
.f-err{display:none;color:#B42318;font-size:12px;font-weight:700;margin:calc(var(--u)*-26) 0 calc(var(--u)*24)}
.f-row.err .f-err{display:block}
.policy{text-align:center;font-size:calc(var(--u)*30);font-weight:500}
.policy label{display:inline-flex;align-items:center;gap:calc(var(--u)*20);cursor:pointer;min-height:44px}
.policy input{width:20px;height:20px;accent-color:var(--blue);margin:0}
.pp-link{text-align:center;margin:calc(var(--u)*3) 0 calc(var(--u)*50);font-size:calc(var(--u)*30)}
.pp-link a{margin:0 calc(var(--u)*24)}
#apply .cta{width:calc(var(--u)*598);height:calc(var(--u)*118);margin:0 auto}
.submit-note{text-align:center;font-size:12px;color:var(--sub);margin-top:calc(var(--u)*18)}
.form-result{display:none;margin-top:calc(var(--u)*30);border-radius:10px;padding:12px;font-size:13px;line-height:1.6;font-weight:700}
.form-result.show{display:block}
.form-result.ok{background:#fff6a8;border:1px dashed #c08a00;color:#6b3b00}
.form-result.ng{background:#FFF4F2;border:1px solid #B42318;color:#B42318}

/* ---------- 対象店舗一覧（既存 img_shop 750×1059 の組版を踏襲） ---------- */
.shop{background:#fff;padding:calc(var(--u)*36) calc(var(--u)*22) calc(var(--u)*56)}
.shop h3{font-family:var(--pop);font-weight:400;font-size:calc(var(--u)*44);line-height:1.2;margin:0 0 calc(var(--u)*6) calc(var(--u)*10)}
.shop h3.j{color:#C8102E}
.shop h3.f{color:#F58CBC;margin-top:calc(var(--u)*46)}
.store-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;column-gap:calc(var(--u)*14);font-size:calc(var(--u)*30);line-height:1.3;color:var(--ink)}
.store-list li{display:flex;align-items:center;gap:calc(var(--u)*4);white-space:nowrap;margin-bottom:calc(var(--u)*8)}
.store-list li::before{content:"";width:calc(var(--u)*22);height:calc(var(--u)*22);flex:0 0 calc(var(--u)*22);background:var(--sq)}
.sq-j24{--sq:#C8102E}.sq-jplus{--sq:#111}.sq-yoga{--sq:#00857F}.sq-fit{--sq:#F58CBC}
.shop .legend{margin-top:calc(var(--u)*24);font-size:calc(var(--u)*20);color:var(--sub);line-height:1.7}

/* ---------- フッター／ページトップ（既存CSS準拠） ---------- */
footer{background:var(--blue);text-align:center}
footer .copyright{padding:calc(var(--u)*24) 0 calc(var(--u)*60);font-size:calc(var(--u)*20);color:#fff}
#page-top{position:fixed;bottom:calc(var(--u)*10);right:calc(var(--u)*10);z-index:5;opacity:0;pointer-events:none;transition:opacity .2s}
#page-top.on{opacity:1;pointer-events:auto}
#page-top a{display:block;background:#fff;opacity:.85;text-decoration:none;color:var(--blue);width:80px;padding:12px 0;text-align:center;border:1px solid var(--blue);border-radius:5px;font-size:11px;font-weight:800}
@media (min-width:431px){#page-top{right:calc(50% - 215px + 10px);bottom:10px}}

/* ---------- Contact Form 7 用の調整（WordPress組み込み時に追加） ----------
   CF7 は入力欄を span.wpcf7-form-control-wrap で包み、エラーを span.wpcf7-not-valid-tip で出す */
#apply .wpcf7-form-control-wrap{display:block}
#apply .f-row .f-note{margin:calc(var(--u)*-22) 0 calc(var(--u)*24)}
#apply .f-row:has(.wpcf7-not-valid-tip) .f-note{margin-top:0}
#apply .wpcf7-not-valid-tip{display:block;color:#B42318;font-size:12px;font-weight:700;margin:calc(var(--u)*-26) 0 calc(var(--u)*24)}
#apply .f-row .wpcf7-not-valid{border-color:#B42318;background:#FFF4F2}
#apply .f-row select:has(option[value=""]:checked){color:#9a9a9a}
#apply .f-row select option{color:var(--ink)}
/* ラジオ（6ヶ月無料オプション） */
#apply .f-radio .wpcf7-list-item{display:block;margin:0}
#apply .f-radio .wpcf7-list-item label{display:flex;align-items:center;gap:calc(var(--u)*14);font-size:calc(var(--u)*30);font-weight:500;min-height:44px;margin:0 0 calc(var(--u)*6) calc(var(--u)*10);cursor:pointer}
#apply .f-radio .wpcf7-list-item label::before{content:"└";color:#888;font-size:calc(var(--u)*26);margin-right:calc(var(--u)*-4)}
#apply .f-radio .wpcf7-not-valid-tip{margin:calc(var(--u)*4) 0 calc(var(--u)*24)}
/* プライバシーポリシー同意 */
#apply .policy .wpcf7-list-item{margin:0}
#apply .policy .wpcf7-list-item-label{margin-left:calc(var(--u)*20)}
/* 送信ボタン：input には ::after を付けられないため、外側の .submit-wrap に▶を重ねる（見た目のみ・クリックはボタンへ通す） */
#apply input.cta{display:block;-webkit-appearance:none;appearance:none;text-align:center;padding:0 calc(var(--u)*60) 0 0}
#apply .submit-wrap{position:relative;width:calc(var(--u)*598);margin:0 auto}
#apply .submit-wrap::after{content:"";position:absolute;left:calc(50% + var(--u)*58);top:calc(var(--u)*59);transform:translateY(-50%);border-style:solid;border-width:calc(var(--u)*14) 0 calc(var(--u)*14) calc(var(--u)*20);border-color:transparent transparent transparent #fff;pointer-events:none;z-index:2}
#apply .submit-wrap:has(.cta:active)::after{transform:translateY(calc(-50% + var(--u)*5))}
#apply .submit-wrap:has(.cta:disabled)::after{border-left-color:#6B7280}
#apply .wpcf7-form:has(.policy input:checked) .submit-note{display:none}
#apply .wpcf7-spinner{display:block;margin:calc(var(--u)*20) auto 0}
#apply .wpcf7 form .wpcf7-response-output{margin:calc(var(--u)*30) 0 0;border-radius:10px;padding:12px;font-size:13px;line-height:1.6;font-weight:700}
#apply .wpcf7 form.invalid .wpcf7-response-output,#apply .wpcf7 form.unaccepted .wpcf7-response-output,#apply .wpcf7 form.failed .wpcf7-response-output{background:#FFF4F2;border:1px solid #B42318;color:#B42318}
#apply .wpcf7 form.sent .wpcf7-response-output{background:var(--blue-p);border:1px solid var(--blue);color:var(--blue)}
