/* =============================================
   BIG FACTORING - PRODUCTION CSS (v2)
   ============================================= */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Noto+Serif+JP:wght@700;900&family=Poppins:wght@600;700;800;900&display=swap');
:root{
  --navy:#212C60;--navy-dark:#171F45;--navy-light:#2A3875;--navy-pale:#F0F2F8;
  --cta-red:#D94032;--cta-red-h:#C03028;--cta-green:#06C755;--cta-green-h:#05A847;
  --white:#FFF;--g50:#F8F9FA;--g100:#F0F1F3;--g200:#E2E4E8;--g300:#CED1D8;
  --g400:#9CA3AF;--g500:#6B7280;--g700:#374151;--g900:#1A1D2E;
  --font:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;
  --en:'Poppins',sans-serif;
  --max:1120px;--py:100px;
  --sh-s:none;--sh-m:none;--sh-l:none;
  --r-s:0;--r-m:0;--r-l:0;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--g900);background:var(--white);font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration:none}
.c{max-width:var(--max);margin:0 auto;padding:0 24px}

/* BTN - シャープ / 楕円なし / letter-spacing付き */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:700;border:none;border-radius:0;cursor:pointer;transition:all .25s;text-decoration:none;line-height:1;white-space:nowrap;letter-spacing:.5px}
.btn-cta{background:var(--cta-red);color:#fff;padding:16px 40px;font-size:16px}
.btn-cta:hover{background:var(--cta-red-h);transform:translateY(-2px);box-shadow:0 6px 20px rgba(217,64,50,.25)}
.btn-ol{background:0 0;color:var(--navy);border:2px solid var(--navy);padding:14px 32px;font-size:15px}
.btn-ol:hover{background:var(--navy);color:#fff}
.btn-wh{background:#fff;color:var(--navy);padding:16px 40px;font-size:16px;font-weight:700}
.btn-wh:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.1)}
.btn-sm{padding:14px 32px;font-size:15px}

/* HEADER */
.hd{background:#fff;position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--g200)}
.hd-in{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;max-width:var(--max);margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo img{display:block;height:38px;width:auto}
.logo-m{width:40px;height:40px;background:var(--navy);border-radius:0;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--en);font-weight:800;font-size:18px}
.logo-t{font-size:13px;font-weight:700;color:var(--navy);line-height:1.3}
.logo-t small{font-size:10px;color:var(--g500);font-weight:500;display:block}
.ft .logo-img{display:block;height:32px;width:auto;margin-bottom:14px;opacity:.95}
.hd-r{display:flex;align-items:center;gap:20px}
.hd-ph .num{font-family:var(--en);font-size:22px;font-weight:700;color:var(--navy);letter-spacing:.5px}
.hd-ph .hrs{font-size:11px;color:var(--g500);text-align:right}
.hd-btns{display:flex;gap:8px}
.nv{background:var(--navy)}
.nv-in{display:flex;justify-content:center;max-width:var(--max);margin:0 auto}
.nv a{color:rgba(255,255,255,.85);font-size:14px;font-weight:500;padding:14px 24px;transition:all .2s;letter-spacing:.5px}
.nv a:hover{color:#fff;background:rgba(255,255,255,.06)}

/* PAGE HERO — upgraded to match design system */
.pg-hero{background:
  linear-gradient(100deg,transparent 40%,rgba(217,64,50,.18) 60%,rgba(217,64,50,.05) 78%,transparent 92%),
  linear-gradient(135deg,#131A3E 0%,#212C60 45%,#2A3875 100%);
  color:#fff;padding:72px 0 84px;text-align:center;position:relative;overflow:hidden}
.pg-hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.pg-hero::after{content:'BIG';position:absolute;bottom:-90px;right:-20px;font-family:var(--en);font-size:320px;font-weight:900;color:rgba(255,255,255,.07);line-height:.85;letter-spacing:-.06em;font-style:italic;pointer-events:none}
.pg-hero .accent-bg{position:absolute;top:0;right:0;width:60%;height:100%;background:linear-gradient(135deg,rgba(217,64,50,.22),rgba(217,64,50,.04) 50%,transparent 75%);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.pg-hero .slash-bg{position:absolute;top:10%;right:8%;width:2px;height:80%;background:linear-gradient(180deg,transparent,#D94032 30%,#D94032 70%,transparent);transform:rotate(20deg);opacity:.3;pointer-events:none}
.pg-hero .c,.pg-hero > .sub,.pg-hero > h1,.pg-hero > p{position:relative;z-index:1}
.pg-hero > .sub,.pg-hero > h1,.pg-hero > p{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px;box-sizing:border-box}
.pg-hero > p{max-width:calc(640px + 48px)}
.pg-hero .sub{font-family:var(--en);font-size:11px;font-weight:800;color:rgba(255,255,255,.5);letter-spacing:5px;text-transform:uppercase;margin-bottom:16px;display:inline-flex;align-items:center;justify-content:center;gap:12px}
.pg-hero .sub::before{content:'';width:36px;height:1px;background:var(--cta-red)}
.pg-hero .sub::after{content:'';width:36px;height:1px;background:var(--cta-red)}
.pg-hero h1{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:46px;font-weight:900;line-height:1.25;margin-bottom:18px;letter-spacing:-.02em;color:#fff;text-align:center}
.pg-hero h1 .acc{position:relative;display:inline-block;color:var(--cta-red)}
.pg-hero h1 .acc::after{content:'';position:absolute;left:2%;right:2%;bottom:3px;height:5px;background:var(--cta-red);opacity:.3;z-index:-1}
.pg-hero p{font-size:15px;color:rgba(255,255,255,.82);line-height:1.9;max-width:640px;margin-left:auto;margin-right:auto}
.pg-hero p strong{color:#fff;font-weight:700;border-bottom:1px solid rgba(217,64,50,.7);padding-bottom:1px}
.pg-hero-wide{padding:72px 0;text-align:left}
.pg-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;max-width:var(--max);margin:0 auto;padding:0 24px}
@media(max-width:768px){
  .pg-hero{padding:48px 0 56px}
  .pg-hero h1{font-size:28px}
  .pg-hero::after{font-size:180px}
}

/* BREADCRUMB */
.bc{padding:14px 24px;font-size:12px;color:var(--g500);background:#fff;border-bottom:1px solid var(--g100);max-width:var(--max);margin:0 auto;letter-spacing:.5px}
.bc a{color:var(--g400)}.bc a:hover{color:var(--navy)}

/* SECTION */
.sec{padding:var(--py) 0;position:relative;overflow:hidden}
.sec-g{background:var(--g50)}
.sec-accent{background:var(--navy-pale);position:relative}
.sec-accent::before{content:'';position:absolute;top:-60px;right:-80px;width:400px;height:400px;background:var(--navy);opacity:.04;border-radius:50%}
.sec-accent::after{content:'';position:absolute;bottom:-40px;left:-60px;width:300px;height:300px;background:var(--navy);opacity:.03;border-radius:50%}
.sec-dark{background:var(--navy);color:#fff;position:relative}
.sec-dark::before{content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:var(--navy-light);clip-path:polygon(30% 0,100% 0,100% 100%,0 100%)}
.sec-dark .sh h2{color:#fff}
.sec-dark .sh p{color:rgba(255,255,255,.6)}
.sec-dark .sh .lb{color:rgba(255,255,255,.4)}
.sec-dark .cmp td{color:var(--g900)}
.sec-dark .cmp .cb{color:var(--navy)}

/* SECTION HEADER - upgraded: 明朝体見出し + 赤下線キッカー */
.sh{margin-bottom:56px;position:relative}
.sh .lb{display:inline-flex;align-items:center;gap:12px;font-family:var(--en);font-size:11px;font-weight:800;color:var(--cta-red);letter-spacing:4px;margin-bottom:14px;text-transform:uppercase;opacity:1}
.sh .lb::before{content:'';width:36px;height:1px;background:var(--cta-red)}
.sh h2{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:38px;font-weight:900;margin-bottom:14px;line-height:1.3;color:var(--g900);letter-spacing:-.015em}
.sh h2 .a{color:var(--cta-red)}.sh h2 .h{color:var(--cta-red);position:relative;display:inline-block}
.sh h2 .h::after{content:'';position:absolute;left:2%;right:2%;bottom:3px;height:5px;background:var(--cta-red);opacity:.3;z-index:-1}
.sh p{font-size:14px;color:var(--g500);margin-top:10px;font-weight:400}
.sh-c{text-align:center}

/* TRUST */
.trust{background:#fff;border-bottom:1px solid var(--g200);padding:14px 0}
.trust-in{display:flex;justify-content:center;gap:32px}
.trust-i{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--navy)}
.trust-i::before{content:'';width:8px;height:8px;background:var(--navy);border-radius:0;flex-shrink:0}

/* SPEC TABLE */
.spec{width:100%;border-collapse:collapse;font-size:14px}
.spec th,.spec td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--g200)}
.spec th{background:var(--g50);font-weight:700;width:200px;color:var(--g900)}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:none}

/* COMPARE TABLE */
.cmp-w{max-width:800px;margin:0 auto;border-radius:0;overflow:hidden;background:#fff}
.cmp{width:100%;border-collapse:collapse;font-size:14px}
.cmp thead th{background:var(--navy);color:#fff;padding:14px;font-weight:700}
.cmp thead .cb{background:var(--navy-light);color:#fff}
.cmp td{padding:14px;border-bottom:1px solid var(--g100);text-align:center}
.cmp td:first-child{text-align:left;font-weight:700;background:var(--g50)}
.cmp .cb{background:var(--navy-pale);font-weight:700;color:var(--navy)}
.cmp .hl td{background:var(--navy-pale)}.cmp .hl .cb{background:#DDE0EE}

/* CARD - フラット */
.card{background:#fff;border:none;border-radius:0;padding:32px;transition:all .3s}
.card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(33,44,96,.08)}

/* FAQ */
.faq-l{max-width:800px;margin:0 auto}
.faq-i{border-bottom:1px solid var(--g200);overflow:hidden}
.faq-q{font-size:16px;font-weight:700;display:flex;gap:12px;cursor:pointer;padding:22px 0;align-items:flex-start;user-select:none}
.faq-q .q{background:var(--navy);color:#fff;font-family:var(--en);font-size:12px;font-weight:700;padding:4px 10px;border-radius:0;flex-shrink:0;margin-top:1px;letter-spacing:1px}
.faq-q .arrow{margin-left:auto;transition:transform .2s;flex-shrink:0;color:var(--g400)}
.faq-i.open .faq-q .arrow{transform:rotate(180deg)}
.faq-a{font-size:14px;color:var(--g700);padding:0 0 22px 46px;line-height:1.9;display:none}
.faq-i.open .faq-a{display:block}

/* CTA SEC — upgraded to match design system */
.cta-s{position:relative;padding:88px 0;color:#fff;overflow:hidden;background:linear-gradient(135deg,#131A3E 0%,#212C60 55%,#2A3875 100%)}
.cta-s::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px;pointer-events:none}
.cta-s::after{content:'BIG';position:absolute;bottom:-100px;right:-40px;font-family:var(--en);font-size:360px;font-weight:900;color:rgba(255,255,255,.04);line-height:.85;letter-spacing:-.06em;font-style:italic;pointer-events:none}
.cta-s .accent-shape{position:absolute;top:0;right:0;width:55%;height:100%;background:linear-gradient(135deg,rgba(217,64,50,.22),rgba(217,64,50,.04) 50%,transparent 75%);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.cta-s .cta-bg{display:none}
.cta-s .c{position:relative;z-index:1;text-align:center}
.cta-s::before + .c,.cta-s > .c:first-child{text-align:center}
.cta-s .cta-kicker{font-family:var(--en);font-size:11px;font-weight:800;color:var(--cta-red);letter-spacing:5px;margin-bottom:14px;display:inline-flex;align-items:center;gap:12px}
.cta-s .cta-kicker::before,.cta-s .cta-kicker::after{content:'';width:28px;height:1px;background:var(--cta-red)}
.cta-s h2{font-family:'Noto Serif JP',serif;font-size:38px;font-weight:900;margin-bottom:18px;line-height:1.35;letter-spacing:-.01em}
.cta-s h2 .acc{color:var(--cta-red)}
.cta-s .lead{font-size:15px;opacity:.82;margin-bottom:36px;line-height:1.9}
.cta-bs{display:flex;justify-content:center;gap:16px;margin-bottom:20px}
@media(max-width:768px){
  .cta-s{padding:56px 0}
  .cta-s h2{font-size:24px}
  .cta-s::after{font-size:200px}
}

/* FOOTER */
.ft{background:var(--g900);color:rgba(255,255,255,.7);padding:56px 0 32px}
.ft-g{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.ft h4{color:#fff;font-size:13px;font-weight:700;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1);letter-spacing:1px}
.ft a{color:rgba(255,255,255,.6);font-size:13px;display:block;padding:4px 0;transition:color .15s}
.ft a:hover{color:#fff}
.ft-br p{font-size:13px;line-height:1.8;opacity:.6;margin-top:12px}
.ft-bt{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;text-align:center;font-size:12px;opacity:.4;letter-spacing:1px}
@media(max-width:768px){.ft{padding-bottom:72px}}

/* FLOATING CTA - SP only */
.fl-cta{position:fixed;bottom:0;left:0;right:0;background:var(--navy-dark);padding:10px 24px;display:none;justify-content:center;gap:12px;z-index:9999;box-shadow:0 -4px 20px rgba(0,0,0,.25);border-top:2px solid var(--cta-red);transform:translateY(100%);transition:transform .3s}
.fl-cta.show{transform:translateY(0)}

/* ICON */
.ic{width:56px;height:56px;background:var(--navy-pale);border-radius:0;display:flex;align-items:center;justify-content:center}
.ic svg{width:26px;height:26px;stroke:var(--navy);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* PHOTO */
.ph-round{border-radius:0;overflow:hidden}
.ph-round img{width:100%;height:100%;object-fit:cover}

/* GRID */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* FLOW (shared w/ top page) */
.flow-g{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.flow-s{text-align:center;position:relative;background:#fff;border:none;border-radius:0;padding:40px 24px 32px;transition:all .3s}
.flow-s:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(33,44,96,.08)}
.flow-n{width:44px;height:44px;background:var(--navy);color:#fff;font-family:var(--en);font-weight:700;font-size:18px;border-radius:0;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;letter-spacing:1px}
.flow-p{width:100%;height:120px;border-radius:0;overflow:hidden;margin:0 0 16px;border:none}
.flow-p img{width:100%;height:100%;object-fit:cover}
.flow-s h4{font-family:'Noto Serif JP','Yu Mincho',serif;font-size:18px;font-weight:900;margin-bottom:8px;color:var(--g900)}
.flow-s .st{font-size:12px;color:var(--g500);line-height:1.7}
.flow-s .tm{display:inline-block;font-size:12px;color:var(--navy);font-weight:700;margin-top:14px;letter-spacing:.5px;padding:4px 12px;background:var(--navy-pale)}
.flow-s:not(:last-child)::after{content:'→';position:absolute;top:50%;right:-18px;font-size:20px;color:var(--g300);transform:translateY(-50%);z-index:2}
@media(max-width:768px){
  .flow-g{grid-template-columns:1fr 1fr;gap:16px}
  .flow-s:not(:last-child)::after{display:none}
}
@media(max-width:480px){.flow-g{grid-template-columns:1fr}}

/* SIDEBAR LAYOUT */
.layout-2col{display:grid;grid-template-columns:1fr 300px;gap:32px}
.sidebar-cta{background:var(--cta-red);border-radius:0;padding:24px;color:#fff;text-align:center}
.sidebar-cta p{margin-bottom:12px}
.sidebar-cta .btn{width:100%}
.sidebar-box{background:var(--g50);border-radius:0;padding:24px;margin-top:20px}
.sidebar-box h3{font-size:15px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--cta-red);font-weight:900}
.sidebar-box a{display:block;padding:8px 0;font-size:13px;color:var(--g700);border-bottom:1px solid var(--g200);transition:color .15s}
.sidebar-box a:hover{color:var(--cta-red)}

/* FORM */
.form-group{margin-bottom:20px}
.form-group label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.form-group .req{background:var(--cta-red);color:#fff;font-size:10px;padding:2px 6px;border-radius:0;margin-left:8px;letter-spacing:1px}
.form-input,.form-select,.form-textarea{width:100%;border:2px solid var(--g200);border-radius:0;padding:12px 14px;font-size:15px;font-family:var(--font);transition:border .2s;outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--navy)}
.form-textarea{min-height:120px;resize:vertical}

/* STEP */
.step-n{width:48px;height:48px;background:var(--cta-red);color:#fff;font-family:var(--en);font-weight:700;font-size:20px;border-radius:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-line{width:3px;background:var(--cta-red);margin:0 0 0 23px;height:32px}

/* SCROLL REVEAL */
.reveal{opacity:0;transform:translateY(30px);transition:all .7s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* UTILITY */
.tc{text-align:center}.tl{text-align:left}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mt32{margin-top:32px}.mt40{margin-top:40px}
.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.mb24{margin-bottom:24px}
.fw9{font-weight:900}.fw7{font-weight:700}
.fs-sm{font-size:13px}.fs-xs{font-size:12px}.fs-lg{font-size:18px}
.clr-navy{color:var(--navy)}.clr-red{color:var(--cta-red)}.clr-green{color:var(--cta-green)}.clr-g5{color:var(--g500)}.clr-g7{color:var(--g700)}

/* =============================================
   V2 UPGRADES — design system improvements
   ============================================= */

/* V2 PAGE HERO — BIGウォーターマーク + スラッシュ + 赤アクセント */
.pg-hero-v2{background:linear-gradient(135deg,#131A3E 0%,#212C60 45%,#2A3875 100%);color:#fff;padding:72px 0 84px;position:relative;overflow:hidden;text-align:left}
.pg-hero-v2::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px}
.pg-hero-v2 .bg-t{position:absolute;bottom:-80px;right:-30px;font-family:var(--en);font-size:340px;font-weight:900;color:rgba(255,255,255,.04);line-height:.85;letter-spacing:-.06em;font-style:italic;pointer-events:none}
.pg-hero-v2 .accent{position:absolute;top:0;right:0;width:60%;height:100%;background:linear-gradient(135deg,rgba(217,64,50,.22),rgba(217,64,50,.04) 50%,transparent 75%);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.pg-hero-v2 .slash{position:absolute;top:10%;right:8%;width:2px;height:80%;background:linear-gradient(180deg,transparent,#D94032 30%,#D94032 70%,transparent);transform:rotate(20deg);opacity:.3;pointer-events:none}
.pg-hero-v2 .c{position:relative;z-index:2}
.pg-hero-v2 .kicker{font-size:11px;color:rgba(255,255,255,.45);margin-bottom:16px;letter-spacing:5px;font-family:var(--en);font-weight:800;display:flex;align-items:center;gap:12px}
.pg-hero-v2 .kicker::before{content:'';width:36px;height:1px;background:var(--cta-red)}
.pg-hero-v2 h1{font-family:'Noto Serif JP','Yu Mincho',serif;font-weight:900;margin:0 0 20px;line-height:1.15;letter-spacing:-.02em;font-size:52px;color:#fff}
.pg-hero-v2 h1 .l1{font-size:28px;display:block;opacity:.85;margin-bottom:6px;font-weight:700}
.pg-hero-v2 h1 .acc{position:relative;display:inline-block;color:var(--cta-red)}
.pg-hero-v2 h1 .acc::after{content:'';position:absolute;left:2%;right:2%;bottom:4px;height:6px;background:var(--cta-red);opacity:.35;z-index:-1}
.pg-hero-v2 .lead{font-size:16px;font-weight:500;opacity:.82;max-width:640px;letter-spacing:.02em;line-height:1.9;color:rgba(255,255,255,.85)}
.pg-hero-v2 .lead strong{color:#fff;font-weight:700;border-bottom:1px solid rgba(217,64,50,.7);padding-bottom:1px}
.pg-hero-v2 .hero-row{display:flex;gap:32px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);max-width:680px}
.pg-hero-v2 .hero-stat{flex:1;position:relative;padding-left:14px}
.pg-hero-v2 .hero-stat::before{content:'';position:absolute;left:0;top:2px;bottom:14px;width:2px;background:linear-gradient(180deg,var(--cta-red),rgba(217,64,50,.2))}
.pg-hero-v2 .hero-stat .kk{font-family:var(--en);font-size:9px;font-weight:800;color:var(--cta-red);letter-spacing:3px;margin-bottom:6px;display:flex;align-items:center;gap:6px}
.pg-hero-v2 .hero-stat .kk::after{content:'';flex:1;height:1px;background:rgba(217,64,50,.3)}
.pg-hero-v2 .hero-stat .n{font-family:var(--en);font-size:40px;font-weight:900;line-height:1;letter-spacing:-.03em;color:#fff;position:relative;display:inline-block}
.pg-hero-v2 .hero-stat .n small{font-size:16px;font-weight:700;color:var(--cta-red);margin-left:3px}
.pg-hero-v2 .hero-stat .n .jp{font-family:'Noto Serif JP',serif;font-size:30px;letter-spacing:.05em}
.pg-hero-v2 .hero-stat .l{font-size:10px;color:rgba(255,255,255,.55);margin-top:10px;letter-spacing:2px;font-family:var(--en);font-weight:700}

/* V2 SECTION HEADER — 数字キッカー + 赤下線 */
.sh-v2{margin-bottom:64px;position:relative}
.sh-v2 .num{font-family:var(--en);font-size:11px;font-weight:800;color:var(--cta-red);letter-spacing:4px;margin-bottom:14px;display:inline-flex;align-items:center;gap:12px}
.sh-v2 .num::after{content:'';width:48px;height:1px;background:var(--cta-red)}
.sh-v2 h2{font-size:40px;font-weight:900;line-height:1.25;margin-bottom:14px;letter-spacing:-.015em;color:var(--g900);font-family:'Noto Serif JP',serif}
.sh-v2 h2 .acc{position:relative;display:inline-block;color:var(--cta-red)}
.sh-v2 h2 .acc::after{content:'';position:absolute;left:2%;right:2%;bottom:3px;height:5px;background:var(--cta-red);opacity:.3;z-index:-1}
.sh-v2 p{font-size:15px;color:var(--g500);line-height:1.9;max-width:640px}
.sh-v2.tc{text-align:center}
.sh-v2.tc p{margin-left:auto;margin-right:auto}
.sh-v2.tc .num{display:inline-flex}
.sec-dark .sh-v2 h2{color:#fff}
.sec-dark .sh-v2 p{color:rgba(255,255,255,.7)}

/* V2 STRENGTH ITEM — 強みブロック(大きな番号 + 構造化) */
.str-item{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:40px 0;position:relative}
.str-item.rev{direction:rtl}
.str-item.rev > *{direction:ltr}
.str-item + .str-item{border-top:1px solid var(--g200)}
.str-item .str-num{font-family:var(--en);font-size:96px;font-weight:900;color:transparent;-webkit-text-stroke:1.5px var(--g300);line-height:1;letter-spacing:-.03em;margin-bottom:12px;display:block}
.str-item h3{font-size:26px;font-weight:900;line-height:1.4;margin-bottom:14px;color:var(--g900);font-family:'Noto Serif JP',serif;letter-spacing:-.01em}
.str-item h3 .acc{color:var(--cta-red)}
.str-item p{font-size:15px;color:var(--g700);line-height:1.9}
.str-item .tag{display:inline-block;font-family:var(--en);font-size:10px;font-weight:800;color:var(--cta-red);letter-spacing:3px;padding:5px 0;border-top:1px solid var(--cta-red);border-bottom:1px solid var(--cta-red);margin-bottom:20px;text-transform:uppercase}
.str-item .ph-round{height:320px}

/* V2 STATS ROW - 数字のKPI行 */
.stats-v2{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--navy);border-bottom:2px solid var(--navy);padding:36px 0}
.stats-v2 .s-item{text-align:center;padding:0 16px;border-right:1px solid var(--g200)}
.stats-v2 .s-item:last-child{border-right:none}
.stats-v2 .s-item .kk{font-family:var(--en);font-size:10px;font-weight:800;color:var(--cta-red);letter-spacing:3px;margin-bottom:12px}
.stats-v2 .s-item .n{font-family:var(--en);font-size:52px;font-weight:900;color:var(--navy);letter-spacing:-.03em;line-height:1;position:relative;display:inline-block}
.stats-v2 .s-item .n small{font-size:18px;font-weight:700;color:var(--cta-red);margin-left:3px}
.stats-v2 .s-item .n .jp{font-family:'Noto Serif JP',serif;font-size:40px;letter-spacing:.05em}
.stats-v2 .s-item .l{font-size:12px;color:var(--g500);margin-top:14px;letter-spacing:1px;font-weight:700}

/* V2 CTA — 強化版 */
.cta-v2{position:relative;padding:96px 0;text-align:left;color:#fff;overflow:hidden;background:linear-gradient(135deg,#131A3E 0%,#212C60 55%,#2A3875 100%)}
.cta-v2::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:40px 40px}
.cta-v2 .bg-t{position:absolute;bottom:-100px;right:-40px;font-family:var(--en);font-size:360px;font-weight:900;color:rgba(255,255,255,.04);line-height:.85;letter-spacing:-.06em;font-style:italic;pointer-events:none}
.cta-v2 .accent{position:absolute;top:0;right:0;width:55%;height:100%;background:linear-gradient(135deg,rgba(217,64,50,.22),rgba(217,64,50,.04) 50%,transparent 75%);clip-path:polygon(28% 0,100% 0,100% 100%,0 100%);pointer-events:none}
.cta-v2 .c{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.cta-v2 .kicker{font-size:11px;color:rgba(255,255,255,.45);margin-bottom:16px;letter-spacing:5px;font-family:var(--en);font-weight:800;display:inline-flex;align-items:center;gap:12px}
.cta-v2 .kicker::before{content:'';width:36px;height:1px;background:var(--cta-red)}
.cta-v2 h2{font-family:'Noto Serif JP',serif;font-size:42px;font-weight:900;margin-bottom:16px;line-height:1.3;letter-spacing:-.01em}
.cta-v2 h2 .acc{color:var(--cta-red)}
.cta-v2 .lead{font-size:15px;opacity:.8;line-height:1.9}
.cta-v2 .cta-bs{display:flex;flex-direction:column;gap:12px}
.cta-v2 .cta-bs .btn{width:100%;padding:20px 32px;font-size:15px;font-weight:700}
.cta-v2 .cta-bs .note{font-size:11px;color:rgba(255,255,255,.55);text-align:center;letter-spacing:1px;margin-top:4px;font-family:var(--en);font-weight:600}

/* V2 COMPARE TABLE — 強化版 */
.cmp-v2{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;background:#fff}
.cmp-v2 thead th{background:var(--g50);color:var(--g500);padding:16px 14px;font-weight:700;font-size:12px;letter-spacing:2px;text-transform:uppercase;border-bottom:1px solid var(--g200);font-family:var(--en)}
.cmp-v2 thead th.cb{background:var(--navy);color:#fff;position:relative;letter-spacing:3px;font-weight:800}
.cmp-v2 thead th.cb::before{content:'';position:absolute;top:-3px;left:0;right:0;height:3px;background:var(--cta-red)}
.cmp-v2 td{padding:18px 14px;border-bottom:1px solid var(--g100);text-align:center;color:var(--g700)}
.cmp-v2 td:first-child{text-align:left;font-weight:700;color:var(--g900);background:var(--g50);font-size:13px}
.cmp-v2 td.cb{background:rgba(33,44,96,.04);font-weight:700;color:var(--navy);font-size:15px}
.cmp-v2 tr:last-child td{border-bottom:none}
.cmp-v2 .yes{color:var(--cta-green);font-weight:900;font-size:18px}
.cmp-v2 .no{color:var(--g400);font-weight:700}

/* V2 MONO KICKER — シンプルなEN Kicker */
.mk{font-family:var(--en);font-size:11px;font-weight:800;color:var(--cta-red);letter-spacing:4px;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px}
.mk::before{content:'';width:28px;height:1px;background:var(--cta-red)}

/* RESPONSIVE V2 */
@media(max-width:1024px){
  .pg-hero-v2 h1{font-size:40px}
  .pg-hero-v2 h1 .l1{font-size:22px}
  .str-item{grid-template-columns:1fr;gap:20px;padding:32px 0}
  .str-item.rev{direction:ltr}
  .str-item .ph-round{height:240px;order:-1}
  .cta-v2 .c{grid-template-columns:1fr;gap:32px}
  .cta-v2 h2{font-size:32px}
  .stats-v2{grid-template-columns:1fr 1fr;border:none}
  .stats-v2 .s-item{border:1px solid var(--g200);padding:20px 12px}
  .sh-v2 h2{font-size:30px}
}
@media(max-width:768px){
  .pg-hero-v2{padding:48px 0 56px}
  .pg-hero-v2 h1{font-size:30px}
  .pg-hero-v2 h1 .l1{font-size:18px}
  .pg-hero-v2 .bg-t{font-size:200px}
  .pg-hero-v2 .hero-row{flex-direction:column;gap:20px;max-width:none}
  .pg-hero-v2 .hero-stat .n{font-size:32px}
  .sh-v2 h2{font-size:24px}
  .str-item h3{font-size:20px}
  .str-item .str-num{font-size:64px}
  .cta-v2{padding:56px 0}
  .cta-v2 h2{font-size:24px}
}

/* RESPONSIVE */
@media(max-width:1024px){
  .pg-hero-grid{grid-template-columns:1fr}
  .g3{grid-template-columns:1fr 1fr}
  .g4{grid-template-columns:1fr 1fr}
  .layout-2col{grid-template-columns:1fr}
}
@media(max-width:768px){
  :root{--py:64px}
  .hd-ph,.hd-btns,.nv{display:none}
  .hd-in{padding:10px 16px}
  .sh h2{font-size:26px}
  .pg-hero h1{font-size:28px}
  .g2,.g3{grid-template-columns:1fr}
  .g4{grid-template-columns:1fr 1fr}
  .ft-g{grid-template-columns:1fr 1fr}
  .cta-bs{flex-direction:column;align-items:center}
  .fl-cta{display:flex;padding:8px 12px;gap:8px}
  .fl-cta .btn{padding:10px 16px;font-size:12px}
  .spec th{width:120px;font-size:13px}
  .cmp-w{overflow-x:auto}
  .trust-in{flex-wrap:wrap;gap:12px 24px;justify-content:center}
}
@media(max-width:480px){
  .g4{grid-template-columns:1fr}
}

/* V2 SECTION ORNAMENT — 下線アンダーライン */
.sh-v2.has-ord{padding-bottom:22px;border-bottom:2px solid var(--navy-dark);position:relative;margin-bottom:48px}
.sh-v2.has-ord::after{content:'';position:absolute;left:0;bottom:-2px;width:80px;height:2px;background:var(--cta-red)}
.sh-v2 .ord{display:none}
.sec-dark .sh-v2.has-ord{border-bottom-color:rgba(255,255,255,.25)}


/* =============================================
   FAQ UNIFIED — graduation gr-faq base, applied to .faq-v2 and .fq-list
   ============================================= */
.faq-v2,.fq-list{border-top:1px solid var(--g200) !important;border-bottom:none !important;background:transparent !important;margin-top:8px}
.faq-v2 .fq-i,.fq-list .fq-i{border-bottom:1px solid var(--g200) !important;transition:.2s;background:#fff !important;padding:0 !important}
.faq-v2 .fq-i:hover,.fq-list .fq-i:hover{background:var(--g50) !important}
.faq-v2 .fq-i.open,.fq-list .fq-i.open{background:var(--g50) !important}
.faq-v2 .fq-q,.fq-list .fq-q{display:grid !important;grid-template-columns:64px 1fr 32px !important;align-items:center !important;padding:22px 24px !important;cursor:pointer;gap:16px !important;transition:.2s}
.faq-v2 .fq-q:hover,.fq-list .fq-q:hover{background:transparent !important}
.faq-v2 .fq-q .q,.faq-v2 .fq-q .qn,.fq-list .fq-q .q,.fq-list .fq-q .qn{font-family:var(--en) !important;font-size:13px !important;font-weight:900 !important;color:var(--cta-red) !important;letter-spacing:2px !important;line-height:1 !important;padding-top:2px}
.faq-v2 .fq-q .qt,.fq-list .fq-q .qt{font-family:'Noto Serif JP',serif !important;font-size:16px !important;font-weight:700 !important;color:var(--navy-dark) !important;line-height:1.6 !important;letter-spacing:-.005em}
.faq-v2 .fq-q .ar,.fq-list .fq-q .ar{font-family:inherit !important;font-size:14px !important;color:var(--g400) !important;transition:transform .2s !important;text-align:right !important;font-weight:700 !important;line-height:1 !important;transform:none !important}
.faq-v2 .fq-i.open .ar,.fq-list .fq-i.open .ar{transform:rotate(180deg) !important;color:var(--cta-red) !important}
.faq-v2 .fq-a,.fq-list .fq-a{display:none !important;grid-template-columns:64px 1fr 32px !important;padding:0 24px 24px !important;gap:16px !important;background:transparent !important;font-size:13px !important;line-height:2 !important;color:var(--g700) !important}
.faq-v2 .fq-i.open .fq-a,.fq-list .fq-i.open .fq-a{display:grid !important;padding-top:0 !important}
.faq-v2 .fq-a .a,.faq-v2 .fq-a .an,.fq-list .fq-a .a,.fq-list .fq-a .an{font-family:var(--en) !important;font-size:13px !important;font-weight:900 !important;color:var(--navy-dark) !important;letter-spacing:2px !important}
.faq-v2 .fq-a .at,.fq-list .fq-a .at{font-size:13px !important;color:var(--g700) !important;line-height:2 !important;font-family:inherit !important;background:transparent !important;padding:0 !important}
.faq-v2 .fq-a .at strong,.fq-list .fq-a .at strong{color:var(--navy-dark) !important;font-weight:700 !important;border-bottom:1px dashed var(--cta-red) !important;padding-bottom:1px}
@media(max-width:768px){
  .faq-v2 .fq-q,.fq-list .fq-q{grid-template-columns:48px 1fr 28px !important;padding:18px 16px !important;gap:12px !important}
  .faq-v2 .fq-q .qt,.fq-list .fq-q .qt{font-size:14px !important}
  .faq-v2 .fq-a,.fq-list .fq-a{grid-template-columns:48px 1fr 28px !important;padding:0 16px 18px !important;gap:12px !important}
}


/* =============================================
   SECTION HEADING UNIFIED
   Apply to: .sec-head, .gr-vs-head, .gr-faq-head, .gr-rm-head, .gr-st-head,
             .st-sh, .md-sh, and .sh-v2 (legacy)
   Markup contract: <div class="HEADCLASS"><div><h2>...</h2></div><div class="meta">01 / KEY</div></div>
   ============================================= */
.sec-head,.gr-vs-head,.gr-faq-head,.gr-rm-head,.gr-st-head,.st-sh,.md-sh,.sim-head,.fq-sec-h{display:grid !important;grid-template-columns:1fr auto !important;align-items:end !important;border-bottom:2px solid var(--navy-dark) !important;padding:0 0 18px 0 !important;margin-bottom:36px !important;position:relative !important;background:transparent !important;text-align:left !important}
.sec-head::after,.gr-vs-head::after,.gr-faq-head::after,.gr-rm-head::after,.gr-st-head::after,.st-sh::after,.md-sh::after,.sim-head::after,.fq-sec-h::after{content:'' !important;position:absolute !important;left:0 !important;bottom:-2px !important;width:80px !important;height:2px !important;background:var(--cta-red) !important;display:block !important}
.sec-head .kk,.gr-vs-head .kk,.gr-faq-head .kk,.gr-rm-head .kk,.gr-st-head .kk,.st-sh .kk,.md-sh .kk,.sim-head .kk,.fq-sec-h .kk{font-family:var(--en) !important;font-size:10px !important;font-weight:800 !important;letter-spacing:3px !important;color:var(--cta-red) !important;margin-bottom:10px !important}
.sec-head h2,.gr-vs-head h2,.gr-faq-head h2,.gr-rm-head h2,.gr-st-head h2,.st-sh h2,.md-sh h2,.sim-head h2,.fq-sec-h h2{font-family:'Noto Serif JP',serif !important;font-size:36px !important;font-weight:900 !important;color:var(--navy-dark) !important;margin:0 !important;line-height:1.2 !important;letter-spacing:-.02em !important}
.sec-head h2 .acc,.gr-vs-head h2 .acc,.gr-faq-head h2 .acc,.gr-rm-head h2 .acc,.gr-st-head h2 .acc,.st-sh h2 .acc,.md-sh h2 .acc,.sim-head h2 .acc,.fq-sec-h h2 .acc{color:var(--cta-red) !important;font-style:italic !important}
.sec-head .meta,.gr-vs-head .meta,.gr-faq-head .meta,.gr-rm-head .meta,.gr-st-head .meta,.st-sh .meta,.md-sh .meta,.sim-head .meta,.fq-sec-h .meta{font-family:var(--en) !important;font-size:10px !important;font-weight:800 !important;color:var(--g500) !important;letter-spacing:2px !important;white-space:nowrap !important}
@media(max-width:768px){
  .sec-head,.gr-vs-head,.gr-faq-head,.gr-rm-head,.gr-st-head,.st-sh,.md-sh,.sim-head,.fq-sec-h{margin-bottom:24px !important;padding-bottom:14px !important}
  .sec-head h2,.gr-vs-head h2,.gr-faq-head h2,.gr-rm-head h2,.gr-st-head h2,.st-sh h2,.md-sh h2,.sim-head h2,.fq-sec-h h2{font-size:24px !important}
  .sec-head .meta,.gr-vs-head .meta,.gr-faq-head .meta,.gr-rm-head .meta,.gr-st-head .meta,.st-sh .meta,.md-sh .meta,.sim-head .meta,.fq-sec-h .meta{font-size:9px !important;letter-spacing:1.5px !important}
}

/* =============================================
   CASE MINI — unified format used across pages.
   Markup:
   <article class="case-mini">
     <div class="case-mini-tags"><span class="t-red">建設業</span><span>2社間</span></div>
     <h3>2営業日で500万円。<br>翌月には卒業できました。</h3>
     <table class="case-mini-tbl"><tr><th>業種</th><td>建設業<small>（内装工事）</small></td></tr>...</table>
     <blockquote>...</blockquote>
     <div class="case-mini-sig">K.SATO 様 ／ 建設業・代表取締役</div>
   </article>
   ============================================= */
.case-mini{background:#fff;border:1px solid var(--g200);padding:28px 26px;display:flex;flex-direction:column;gap:18px;transition:all .3s;position:relative}
.case-mini:hover{border-color:var(--navy);box-shadow:0 12px 32px rgba(33,44,96,.08);transform:translateY(-2px)}
.case-mini-tags{display:flex;flex-wrap:wrap;gap:6px}
.case-mini-tags span{display:inline-block;font-family:var(--en);font-size:10px;font-weight:800;letter-spacing:2px;padding:5px 10px;background:var(--g100);color:var(--g700);white-space:nowrap}
.case-mini-tags .t-red{background:var(--cta-red);color:#fff}
.case-mini > h3{font-family:'Noto Serif JP',serif;font-size:20px;font-weight:900;color:var(--g900);line-height:1.5;letter-spacing:-.01em;margin:0}
.case-mini-tbl{width:100%;border-collapse:collapse;font-size:13px}
.case-mini-tbl tr{border-bottom:1px solid var(--g200)}
.case-mini-tbl tr:first-child{border-top:1px solid var(--g200)}
.case-mini-tbl th{text-align:left;font-weight:700;color:var(--g600);font-size:12px;width:34%;padding:10px 0;letter-spacing:.04em;background:transparent;vertical-align:middle}
.case-mini-tbl td{padding:10px 0;font-family:'Noto Serif JP',serif;font-weight:900;color:var(--navy);font-size:18px;line-height:1.2;letter-spacing:-.01em}
.case-mini-tbl td small{font-size:12px;font-weight:700;color:var(--g700);font-family:var(--font);margin-left:2px}
.case-mini-tbl td .strike{text-decoration:line-through;color:var(--g500);font-size:14px;margin-right:6px;font-weight:700}
.case-mini > blockquote{margin:0;font-family:'Noto Serif JP',serif;font-size:14px;font-weight:500;line-height:1.95;color:var(--g800);letter-spacing:.01em;padding-left:14px;border-left:3px solid var(--cta-red);position:relative}
.case-mini-sig{font-size:12px;color:var(--g600);font-weight:700;letter-spacing:.04em;padding-top:2px}
@media(max-width:768px){
  .case-mini{padding:22px 20px;gap:14px}
  .case-mini > h3{font-size:17px}
  .case-mini-tbl th{font-size:11px;width:36%}
  .case-mini-tbl td{font-size:16px}
  .case-mini > blockquote{font-size:13px}
}
