/* =========================================================================
   JEWELRY DUNGEON — design system v2（構成・配置・動きは monster-strike.com を手本に、
   トンマナは JD：白ベース × 紺(#0E1B33) × 金(#C9A227) × 赤アクセント(#B23A38)）
   書体: Shippori Mincho B1 のみ（和文・欧文・数字とも）。斜体は使用しない
   ========================================================================= */
:root{
  --ground:#FFFFFF; --wash:#F8F3E8; --wash-2:#F1E8D6;
  --ink:#141A24; --ink-2:#4A5568; --ink-3:#646C7A;
  --navy:#0E1B33; --navy-2:#16294A; --navy-3:#1E3560; --navy-deep:#08111F; --navy-line:#2A3D64;
  --on-navy:#EAF0FB; --on-navy-2:#A9B8D3;
  --gold:#856616; --gold-bright:#C9A227; --gold-light:#E4C866; --gold-soft:#F6EFD8; --gold-line:#E6D5A3;
  --red:#B23A38; --red-soft:#FBEFEE;
  --blue:#3C63B0; --blue-soft:#EEF3FC;
  --line:#E7E0D0; --line-2:#D9CFB9;
  --orn:rgba(160,124,40,.42); --orn-on-dark:rgba(224,190,104,.50);
  --shadow:0 20px 50px -24px rgba(14,27,51,.32);
  --shadow-sm:0 10px 26px -16px rgba(14,27,51,.28);
  --serif:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",YuMincho,"Yu Mincho S",serif;
  --sans:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic Medium",YuGothic,"Meiryo",sans-serif;
  --maxw:1200px; --narrow:820px; --hd:80px;
  --r:10px; --r-lg:14px;
  --ease:cubic-bezier(.2,.7,.2,1); --ease-in-out:cubic-bezier(.77,0,.175,1); --back:cubic-bezier(.175,.885,.32,1.275);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hd) + 16px)}
html.js{scroll-behavior:smooth}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--sans);
  font-weight:400;font-size:15px;line-height:1.85;letter-spacing:.012em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-wrap:break-word;word-break:normal;line-break:strict;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
:focus-visible{outline:3px solid var(--gold-bright);outline-offset:3px;border-radius:4px}
.faq-q{cursor:pointer}
.nb{white-space:nowrap;display:inline}
/* 和文の折返しを文節単位に（対応ブラウザ）。単語途中の分断を防ぐ */
h1,h2,h3,h4,.display,.exp-h,.kv-title,.kv-sub,.sh .ja,.ph .ja,.ph-lead,.sh-lead,.st-t1,.st-t2,.st-sub,
.ni-title,.rb b,.rb .sub,.bb b,.bb span,.tile,.mn-tile,.gcard h4,.gcard p,.orb-name,.orb-desc,.orb-rate-k,
.step h4,.step p,.faq-q,.gnav-btn .ja,.mnav-list a,.event-info h3,.line-banner b,.line-banner span,
.numbered .n h4,.risk-grid .rc h4,.gloss .gi .kw b,.chr h4,.guide-card h4,.callout-bar,.lead,.card h4{
  word-break:auto-phrase;
}
/* 金額・数値・英字ラベルは絶対に途中で折らない */
.sim-table td,.sim-table th,.orb-stat .v,.calc-row .v,.flow3 .fc .v,.orb-rate,.date,.period,.bdg,.cat{
  word-break:keep-all;overflow-wrap:normal;
}
.sim-table .yen,.orb-stat .v,.calc-row .v{white-space:nowrap}
.en{font-family:var(--serif)}
.jost{font-family:var(--serif)}
.center{text-align:center}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:var(--narrow);margin:0 auto;padding:0 24px}
main{display:block}

/* ---------- motion（scroll-anim / keyframes） ---------- */
.js .sa{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s var(--ease)}
.js .sa.is-entered{opacity:1;transform:none}
.js .sa-x{opacity:0;transform:translateX(-40px);transition:opacity .6s ease,transform .6s var(--ease)}
.js .sa-x.is-entered{opacity:1;transform:none}
.js .sa-scale{opacity:0;transform:scale(.6);transition:opacity .3s ease,transform .6s var(--back)}
.js .sa-scale.is-entered{opacity:1;transform:none}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes floatSlow{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes glow{0%,100%{filter:drop-shadow(0 0 6px rgba(201,162,39,.35))}50%{filter:drop-shadow(0 0 22px rgba(201,162,39,.85))}}
@keyframes shine{0%{transform:translateX(-140%) skewX(-20deg)}60%,100%{transform:translateX(240%) skewX(-20deg)}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes jump{0%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .sa,.js .sa-x,.js .sa-scale{opacity:1;transform:none}
}

/* ---------- section heading（EN大 + JA小 skew） ---------- */
.sh{text-align:center;margin:0 0 44px;position:relative}
.sh .en{display:block;font-weight:700;font-size:clamp(32px,4.4vw,52px);line-height:1;letter-spacing:.04em;color:var(--navy)}
.sh .ja{display:inline-block;font-weight:700;font-size:clamp(16px,1.9vw,23px);color:var(--ink-2);margin-top:12px;transform:skew(-6deg);padding:0 18px;position:relative}
.sh .ja::before,.sh .ja::after{content:"";position:absolute;top:50%;width:12px;height:2px;background:var(--gold-bright)}
.sh .ja::before{left:0}.sh .ja::after{right:0}
.sh.white .en{color:#fff}.sh.white .ja{color:var(--on-navy-2)}
.sh.left{text-align:left}
.sh-lead{max-width:720px;margin:18px auto 0;color:var(--ink-2);font-size:15.5px;line-height:1.95}
.sh.left .sh-lead{margin-left:0}
.sh2{display:flex;align-items:center;gap:14px;font-size:clamp(20px,2.4vw,28px);font-weight:700;color:var(--navy);margin:0 0 24px;line-height:1.3}
.sh2::before{content:"";width:6px;height:1em;border-radius:2px;background:linear-gradient(180deg,var(--gold-light),var(--gold))}
.sh2 .cnt{font-family:var(--serif);font-size:13px;font-weight:600;color:var(--ink-3);letter-spacing:.08em;margin-left:auto}
h1,h2,h3,h4{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;letter-spacing:.01em;line-height:1.35;margin:0}
.display{font-weight:800;font-size:clamp(26px,3.8vw,40px);color:var(--navy);margin:0 0 14px}
.display .g{color:var(--gold)}
.lead{font-size:clamp(14.5px,1.6vw,16px);color:var(--ink-2);margin:0;line-height:1.95}
.eyebrow{font-family:var(--serif);font-weight:600;font-size:12px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin:0 0 12px;display:block}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-width:240px;height:56px;padding:0 28px;border-radius:6px;
  font-weight:700;font-size:15px;line-height:1.2;border:2px solid transparent;cursor:pointer;position:relative;overflow:hidden;
  transition:transform .15s ease,box-shadow .2s ease,background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-o{background:#fff;border-color:var(--line-2);color:var(--navy)}
.btn-o:hover{border-color:var(--navy);background:var(--navy);color:#fff}
.btn-o.on-dark{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.btn-o.on-dark:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-g{background:linear-gradient(180deg,#DFC05C,#C9A227 55%,#B48E1E);color:#2B2005;box-shadow:0 12px 26px -12px rgba(201,162,39,.75);border-color:#D2AE36}
.btn-g::after{content:"";position:absolute;top:0;bottom:0;left:0;width:36%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shine 3.6s ease-in-out infinite}
.btn-n{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-n:hover{background:var(--navy-3)}
.btn-line{background:#06C755;color:#fff;border-color:#06C755}
.btn-r{background:var(--red);color:#fff;border-color:var(--red)}
.btn-sm{min-width:0;height:44px;padding:0 20px;font-size:13.5px}
.btn-lg{height:64px;font-size:17px;min-width:280px}
.btn .arw{transition:transform .2s}
.btn:hover .arw{transform:translateX(4px)}
.btn .ext{font-family:var(--serif);font-size:10px;opacity:.6;margin-left:4px}
.btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.more{text-align:center;margin-top:36px}

/* ---------- header（fixed 80px / 2行ラベル / ドロップダウン） ---------- */
.hd{position:fixed;top:0;left:0;right:0;height:var(--hd);z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);transition:transform .35s var(--ease),box-shadow .3s}
.hd.is-hide{transform:translateY(-100%)}
.hd.is-scrolled{box-shadow:0 8px 24px -18px rgba(14,27,51,.45)}
.hd-in{max-width:1400px;margin:0 auto;height:100%;display:flex;align-items:center;padding:0 18px;gap:12px}
.hd-logo{display:block;flex:none}
.hd-logo img{height:46px;width:auto}
.gnav{display:flex;margin:0 auto;gap:0;height:100%;flex:0 0 auto}
.gnav-item{position:relative;height:100%}
.gnav-btn{display:grid;height:100%;align-content:center;justify-items:center;padding:0 11px;background:none;border:0;cursor:pointer;color:var(--navy);text-align:center}
.gnav-btn .ja{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink-3);transform:skew(-6deg);transition:color .2s;line-height:1;white-space:nowrap}
.gnav-btn .en{display:block;font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.04em;line-height:1;margin-top:5px;transition:color .2s;white-space:nowrap}
.gnav-btn .tri{position:absolute;right:2px;top:50%;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--ink-3);transform:translateY(-50%);transition:transform .3s,border-color .2s}
.gnav-item:hover .gnav-btn .en,.gnav-item.open .gnav-btn .en,.gnav-item.current .gnav-btn .en{color:var(--gold)}
.gnav-item:hover .gnav-btn .ja,.gnav-item.open .gnav-btn .ja{color:var(--gold)}
.gnav-item:hover .tri,.gnav-item.open .tri{transform:translateY(-50%) rotate(180deg);border-top-color:var(--gold)}
.gnav-btn::after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:3px;background:var(--gold-bright);transform:scaleX(0);transition:transform .3s var(--ease)}
.gnav-item.current .gnav-btn::after{transform:scaleX(1)}
.gnav-sub{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:236px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold-bright);
  box-shadow:var(--shadow);border-radius:0 0 10px 10px;padding:10px;opacity:0;visibility:hidden;transition:opacity .25s,transform .3s var(--ease),visibility .25s}
.gnav-item:hover .gnav-sub,.gnav-item.open .gnav-sub{opacity:1;visibility:visible;transform:translate(-50%,0)}
.gnav-sub a{display:flex;align-items:center;gap:10px;padding:11px 14px 11px 18px;font-size:14px;font-weight:700;color:var(--ink);border-radius:6px;position:relative;overflow:hidden;white-space:nowrap;transition:color .2s,padding .3s var(--ease)}
.gnav-sub a::before{content:"";position:absolute;left:-30px;top:50%;width:20px;height:2px;background:var(--gold-bright);transition:left .3s var(--ease)}
.gnav-sub a:hover{color:var(--gold);padding-left:40px}
.gnav-sub a:hover::before{left:12px}
.gnav-sub a .ext{font-family:var(--serif);font-size:10px;color:var(--ink-3);margin-left:auto}
.hd-badges{display:flex;gap:8px;flex:none}
.bdg{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:134px;height:54px;font-weight:700;font-size:13px;color:#fff;isolation:isolate;line-height:1.15;transition:transform .15s}
.bdg:hover{transform:translateY(-2px)}
.bdg::before{content:"";position:absolute;inset:0;transform:skew(-12deg);border-radius:4px;z-index:-1;background:var(--navy);box-shadow:0 8px 18px -10px rgba(14,27,51,.6)}
.bdg small{font-family:var(--serif);font-size:9.5px;font-weight:600;letter-spacing:.04em;opacity:.85;margin-bottom:1px;line-height:1}
.bdg.gold{color:#2B2005}
.bdg.gold::before{background:linear-gradient(180deg,#E0C15E,#C9A227 60%,#B48E1E);box-shadow:0 8px 18px -10px rgba(201,162,39,.8)}
.bdg.line::before{background:#06C755}
/* mobile menu button */
.menu-btn{display:none;position:fixed;top:14px;right:14px;z-index:130;width:52px;height:52px;border:0;border-radius:6px;background:var(--navy);color:#fff;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 8px 18px -10px rgba(14,27,51,.7)}
.menu-btn span.bar{display:block;width:20px;height:2px;background:var(--gold-light);transition:.3s}
.menu-btn .lbl{font-family:var(--serif);font-size:9px;letter-spacing:.14em;font-weight:600;margin-top:3px}
.menu-btn .lbl.close{display:none}
.menu-btn.open .bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn.open .bar:nth-child(2){opacity:0}
.menu-btn.open .bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-btn.open .lbl.menu{display:none}.menu-btn.open .lbl.close{display:block}
/* mobile full-screen nav */
.mnav{position:fixed;inset:0;z-index:120;background:#fff;overflow-y:auto;visibility:hidden;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path .45s var(--ease-in-out),visibility .45s}
.mnav.open{visibility:visible;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.mnav-in{padding:22px 16px 40px;opacity:0;transition:opacity .4s .2s}
.mnav.open .mnav-in{opacity:1}
.mnav-logo img{height:40px;width:auto}
.mnav-sec{margin-top:30px}
.mnav-title{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;color:var(--navy);opacity:.75;line-height:1}
.mnav-title .en{font-size:20px;font-weight:700;letter-spacing:.06em}
.mnav-title .ja{font-size:12px;font-weight:700;transform:skew(-6deg)}
.mnav-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;list-style:none;margin:12px 0 0;padding:0}
.mnav-list a{display:flex;align-items:center;padding:14px 14px;font-size:14px;font-weight:700;color:var(--navy);background:var(--wash);border:1px solid var(--line);border-radius:6px;position:relative;line-height:1.2}
.mnav-list a::after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateY(-50%) rotate(-45deg)}
.mnav-list a.full{grid-column:1/-1}
.mnav-cta{display:grid;gap:10px;margin-top:28px}
.mnav-cta .btn{width:100%;min-width:0}
.mnav-sns{display:flex;justify-content:center;margin-top:22px}
.mnav-sns a{display:flex;align-items:center;justify-content:center;width:100%;height:46px;border:2px solid var(--line-2);border-radius:6px;font-weight:700;font-size:14px;color:var(--navy)}
.mnav-legal{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:center;margin:26px 0 0;padding:0;list-style:none;font-size:11.5px;color:var(--ink-3)}
body.menu-open{overflow:hidden}

/* ---------- KV carousel（中央スライド＋左右チラ見せ） ---------- */
.kv{padding-top:var(--hd);padding-bottom:72px;position:relative;overflow:hidden;background:#fff}
.kv-carousel{position:relative;padding:26px 0 0}
.kv-viewport{overflow:hidden;width:100%}
.kv-track{display:flex;will-change:transform;transition:transform .65s var(--ease)}
.kv-track.no-anim{transition:none}
.kv-slide{flex:none;width:var(--slide-w,min(1200px,84vw));margin:0 var(--slide-gap,12px);aspect-ratio:2.5/1;border-radius:14px;overflow:hidden;position:relative;
  transform:scale(.94);opacity:.5;transition:transform .65s var(--ease),opacity .65s;box-shadow:0 30px 60px -30px rgba(14,27,51,.55);background:var(--navy)}
.kv-slide.active{transform:scale(1);opacity:1}
.kv-slide a{position:absolute;inset:0;display:block}
.kv-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.32}
.kv-grad{position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,17,31,.92) 0%,rgba(14,27,51,.78) 48%,rgba(14,27,51,.25) 100%)}
.kv-slide.s-gold .kv-grad{background:linear-gradient(100deg,rgba(43,32,5,.92) 0%,rgba(90,66,12,.78) 48%,rgba(120,90,20,.25) 100%)}
.kv-slide.s-red .kv-grad{background:linear-gradient(100deg,rgba(40,10,10,.94) 0%,rgba(110,34,32,.8) 48%,rgba(178,58,56,.3) 100%)}
.kv-slide.s-light{background:#fff}
.kv-slide.s-light .kv-grad{background:linear-gradient(100deg,rgba(255,255,255,.98) 0%,rgba(245,247,251,.92) 50%,rgba(237,240,246,.6) 100%)}
.kv-copy{position:absolute;left:6%;top:50%;transform:translateY(-50%);width:52%;color:#fff;z-index:2}
.kv-slide.s-light .kv-copy{color:var(--navy)}
.kv-tag{display:inline-block;font-family:var(--serif);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);border:1px solid rgba(201,162,39,.6);padding:5px 12px;border-radius:3px;margin-bottom:14px}
.kv-slide.s-light .kv-tag{color:var(--gold);border-color:var(--gold-line)}
.kv-title{font-size:clamp(20px,3.4vw,44px);font-weight:800;line-height:1.28;margin:0;text-shadow:0 4px 24px rgba(0,0,0,.35)}
.kv-slide.s-light .kv-title{text-shadow:none}
.kv-title .g{color:var(--gold-light)}
.kv-slide.s-light .kv-title .g{color:var(--gold)}
.kv-sub{font-size:clamp(11px,1.2vw,15px);margin:12px 0 0;opacity:.9;line-height:1.75}
.kv-btn{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:clamp(11px,1.05vw,13.5px);font-weight:700;color:var(--gold-light);border-bottom:1px solid rgba(228,200,102,.6);padding-bottom:3px}
.kv-slide.s-light .kv-btn{color:var(--gold);border-color:var(--gold-line)}
.kv-art{position:absolute;right:5%;top:0;bottom:0;margin:auto;transform:none;height:82%;width:auto;z-index:1;filter:drop-shadow(0 24px 40px rgba(0,0,0,.45))}
.kv-art.float{animation:float 5s ease-in-out infinite}
.kv-art.glow{animation:glow 3.2s ease-in-out infinite}
.kv-art-3{position:absolute;right:4%;top:50%;transform:translateY(-50%);height:72%;display:flex;align-items:center;gap:2%;z-index:1}
.kv-art-3 img{height:100%;width:auto;filter:drop-shadow(0 16px 26px rgba(0,0,0,.5))}
.kv-art-3 img:nth-child(1){animation:float 4.6s ease-in-out infinite}
.kv-art-3 img:nth-child(2){animation:float 5.4s ease-in-out infinite .4s;height:112%}
.kv-art-3 img:nth-child(3){animation:float 5s ease-in-out infinite .8s}
.kv-ctl{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;border:2px solid rgba(14,27,51,.15);background:rgba(255,255,255,.9);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;backdrop-filter:blur(6px)}
.kv-ctl:hover{background:var(--navy);border-color:var(--navy)}
.kv-ctl::before{content:"";width:10px;height:10px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transition:border-color .2s}
.kv-ctl:hover::before{border-color:#fff}
.kv-ctl.prev{left:max(12px,calc((100% - var(--slide-w,min(1200px,84vw))) / 2 - 24px))}
.kv-ctl.prev::before{transform:rotate(135deg);margin-left:4px}
.kv-ctl.next{right:max(12px,calc((100% - var(--slide-w,min(1200px,84vw))) / 2 - 24px))}
.kv-ctl.next::before{transform:rotate(-45deg);margin-right:4px}
.kv-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}
.kv-dots button{width:34px;height:4px;border-radius:2px;border:0;background:var(--line-2);cursor:pointer;padding:0;transition:background .3s,width .3s}
.kv-dots button.on{background:var(--gold-bright);width:52px}
.kv-cta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:30px 0 0;position:relative;z-index:3}
.kv-note{text-align:center;font-size:12px;color:var(--ink-3);margin:14px 0 0;position:relative;z-index:3;padding:0 20px}

/* ---------- PICK UP 帯（斜めカット・紺） ---------- */
.pickup{position:relative;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff;margin-top:-56px;padding:120px 0 84px;
  clip-path:polygon(0 56px,100% 0,100% 100%,0 100%);overflow:hidden}
.pickup::before{content:"";position:absolute;left:0;right:0;top:0;height:200%;background:
  repeating-linear-gradient(115deg,transparent 0 46px,rgba(201,162,39,.05) 46px 48px);pointer-events:none}
.pickup-ghost{position:absolute;left:3%;top:52px;font-family:var(--serif);font-weight:700;font-size:clamp(56px,10vw,150px);line-height:1;color:rgba(255,255,255,.055);letter-spacing:.04em;white-space:nowrap;pointer-events:none;user-select:none}
.pickup .sh{margin-bottom:34px}
.pickup-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center;position:relative}
.pickup-card{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:radial-gradient(circle at 30% 40%,#24406F,#0B1730 70%);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center}
.pickup-card img{height:84%;width:auto;animation:float 6s ease-in-out infinite}
.pickup-card .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 22px;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);font-weight:700;font-size:15px}
.pickup-card .cap small{display:block;font-family:var(--serif);font-size:10px;letter-spacing:.2em;color:var(--gold-light);margin-bottom:4px}
.pickup-card .play{position:absolute;right:18px;top:18px;font-family:var(--serif);font-size:10px;letter-spacing:.14em;background:var(--red);color:#fff;padding:5px 10px;border-radius:3px;font-weight:600}
.pickup-txt h3{font-size:clamp(22px,2.6vw,32px);font-weight:800;line-height:1.4;color:#fff;margin:0 0 14px}
.pickup-txt h3 .g{color:var(--gold-light)}
.pickup-txt p{color:var(--on-navy-2);font-size:15px;margin:0 0 22px}
.pickup-txt .btn-row{justify-content:flex-start}

/* ---------- おすすめバナー（3列×2） ---------- */
.rb-wrap{padding:56px 0 20px}
.rb{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rb a{position:relative;aspect-ratio:2.5/1;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:0 22px;color:#fff;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .25s;isolation:isolate}
.rb a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.rb small{font-family:var(--serif);font-size:10px;letter-spacing:.2em;font-weight:600;opacity:.8;margin-bottom:6px}
.rb b{font-size:clamp(16px,1.6vw,21px);font-weight:800;line-height:1.3;max-width:62%}
.rb .sub{font-size:11.5px;opacity:.85;margin-top:4px;max-width:62%}
.rb img{position:absolute;right:4%;top:50%;transform:translateY(-50%);height:82%;width:auto;filter:drop-shadow(0 10px 16px rgba(0,0,0,.4));transition:transform .4s var(--ease);z-index:-1}
.rb a:hover img{transform:translateY(-50%) scale(1.06)}
.t-red{background:linear-gradient(110deg,#5B1E1D,#B23A38)}
.t-silver{background:linear-gradient(110deg,#1B2A47,#4C6390)}
.t-gold{background:linear-gradient(110deg,#5A420C,#C9A227)}
.t-navy{background:linear-gradient(110deg,var(--navy-deep),var(--navy-3))}
.t-ink{background:linear-gradient(110deg,#0B0F17,#2B3446)}
.t-wash,.rb a.t-wash,.th.t-wash{background:linear-gradient(110deg,#F5F7FB,#E4E9F2);color:var(--navy)}
.t-wash small{color:var(--gold)}

/* ---------- NEWS ---------- */
.news{padding:96px 0 60px}
.news-block{margin-bottom:64px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 20px}
.ni{display:block;position:relative;transition:transform .2s}
.ni:hover{transform:translateY(-3px)}
.ni-thumb{aspect-ratio:2.5/1;border-radius:8px;overflow:hidden;background:var(--wash);position:relative;border:1px solid var(--line)}
.th{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:0 18px;color:#fff}
.th img{height:72%;width:auto;filter:drop-shadow(0 8px 14px rgba(0,0,0,.35))}
.th .tt{font-weight:800;font-size:clamp(14px,1.3vw,18px);line-height:1.3;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.th.t-wash .tt{color:var(--navy);text-shadow:none}
.ni-title{font-size:15px;font-weight:700;line-height:1.55;margin:12px 0 8px;color:var(--ink);transition:color .2s}
.ni:hover .ni-title{color:var(--gold)}
.ni-meta{display:flex;align-items:center;gap:10px;font-size:12px;flex-wrap:wrap}
.cat{border:1px solid var(--line-2);border-radius:4px;padding:1px 9px;font-weight:700;color:var(--ink-2);font-size:11.5px;white-space:nowrap;background:#fff}
.date{font-family:var(--serif);color:var(--ink-3);letter-spacing:.04em;font-size:12.5px}
.new{background:var(--red);color:#fff;font-family:var(--serif);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;letter-spacing:.1em;line-height:1.4}
.chk{position:absolute;left:10px;top:10px;z-index:2;background:var(--gold-bright);color:#2B2005;font-family:var(--serif);font-size:10px;font-weight:600;letter-spacing:.14em;padding:3px 9px;border-radius:3px}
/* list page: nav + filter */
.news-nav{display:flex;justify-content:center;gap:0;margin:0 auto 34px;max-width:560px;border:2px solid var(--line-2);border-radius:8px;overflow:hidden}
.news-nav a{flex:1;text-align:center;padding:14px 10px;font-weight:700;font-size:15px;color:var(--ink-2);background:#fff;transition:.2s}
.news-nav a.on,.news-nav a:hover{background:var(--navy);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 40px}
.chips button{border:2px solid var(--line-2);background:#fff;color:var(--ink-2);font-weight:700;font-size:13px;padding:8px 16px;border-radius:999px;cursor:pointer;transition:.2s;white-space:nowrap}
.chips button.on,.chips button:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
.news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 20px}
.news-list .ni.hide{display:none}
.pager{display:flex;justify-content:center;gap:8px;margin-top:44px;font-family:var(--serif);font-weight:600}
.pager span,.pager a{min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:2px solid var(--line-2);border-radius:6px;font-size:14px;color:var(--ink-2);padding:0 12px}
.pager .on{background:var(--navy);border-color:var(--navy);color:#fff}
.empty{text-align:center;color:var(--ink-3);font-size:14px;padding:40px 0}
/* article */
.article-head{padding:calc(var(--hd) + 44px) 0 28px;border-bottom:1px solid var(--line)}
.article-head .ni-meta{margin-bottom:14px}
.article-head h1{font-size:clamp(22px,3vw,34px);font-weight:800;color:var(--navy);line-height:1.45}
.article-body{padding:40px 0 60px}
.back-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--ink-2);font-size:14px}
.back-link:hover{color:var(--gold)}

/* ---------- EVENT ---------- */
.event{padding:40px 0 96px}
.event-card{display:grid;grid-template-columns:1.1fr 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
.event-img{position:relative;aspect-ratio:16/9;background:radial-gradient(circle at 60% 40%,#25416F,#0B1730 70%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.event-img img{height:80%;width:auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));animation:floatSlow 6s ease-in-out infinite}
.event-img .ev-lbl{position:absolute;left:18px;top:18px;font-family:var(--serif);font-size:11px;letter-spacing:.2em;font-weight:600;color:var(--gold-light);border:1px solid rgba(228,200,102,.6);padding:5px 12px;border-radius:3px}
.event-info{padding:36px 40px;display:flex;flex-direction:column;justify-content:center}
.event-info h3{font-size:clamp(20px,2.2vw,26px);font-weight:800;color:var(--navy);line-height:1.45;margin:0 0 12px}
.period{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:600;font-size:14px;color:var(--ink-2);letter-spacing:.03em;margin-bottom:14px}
.period::before{content:"";width:18px;height:18px;border:2px solid var(--gold);border-radius:3px;border-top-width:5px;flex:none}
.event-info p{color:var(--ink-2);font-size:14px;margin:0 0 22px}
.event-info .btn-row{justify-content:flex-start}
.event-list{display:grid;gap:14px;margin-top:24px}
.ev-row{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;padding:20px 24px;border:1px solid var(--line);border-radius:10px;background:#fff}
.ev-row .period{margin:0;font-size:13px}
.ev-row h4{font-size:16px;font-weight:700;color:var(--navy)}
.ev-row .st{font-family:var(--serif);font-size:11px;letter-spacing:.14em;font-weight:600;color:var(--ink-3);border:1px solid var(--line-2);padding:4px 10px;border-radius:3px;white-space:nowrap}

/* ---------- ABOUT（紺ステージ + エフェクト + START帯 + タイル + ガイドスワイパー） ---------- */
.about{padding:96px 0 0;position:relative;overflow:hidden}
.about-body{background:linear-gradient(180deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;position:relative;margin-top:36px;padding:0 0 0}
.about-body::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,rgba(201,162,39,.16),transparent 55%),radial-gradient(ellipse at 15% 85%,rgba(60,99,176,.18),transparent 50%);pointer-events:none}
.stage{position:relative;max-width:var(--maxw);margin:0 auto;height:560px;padding:0 24px}
.fx{position:absolute;border-radius:50%;pointer-events:none;transition:transform .7s var(--ease-in-out)}
.js .fx{transform:scale(0)}
.fx1{width:420px;height:420px;left:-120px;top:-100px;background:radial-gradient(circle,rgba(201,162,39,.28),transparent 66%);transform-origin:0 60%}
.fx2{width:520px;height:520px;right:-140px;top:40px;background:radial-gradient(circle,rgba(228,200,102,.22),transparent 64%);transform-origin:100% 0}
.fx3{width:360px;height:360px;left:38%;bottom:-160px;background:radial-gradient(circle,rgba(60,99,176,.28),transparent 66%);transform-origin:0 100%}
.stage.is-entered .fx{transform:scale(1)}
.st-copy{position:absolute;left:24px;top:64px;width:56%;z-index:6}
.st-t1,.st-t2{margin:0;font-weight:800;line-height:1.25;text-shadow:0 6px 30px rgba(0,0,0,.45);transition:opacity .45s var(--ease),transform .55s var(--ease)}
.st-t1{font-size:clamp(26px,3.7vw,50px);color:#fff;transition-delay:.15s}
.st-t2{font-size:clamp(26px,3.7vw,50px);color:var(--gold-light);transition-delay:.25s;margin-top:10px}
.js .st-t1{opacity:0;transform:translate(90px,20px)}
.js .st-t2{opacity:0;transform:translate(-110px,20px)}
.st-t1 .dot,.st-t2 .dot{color:var(--red);opacity:.9}
.stage.is-entered .st-t1,.stage.is-entered .st-t2{opacity:1;transform:none}
.st-sub{margin:22px 0 0;max-width:520px;color:var(--on-navy-2);font-size:15px;line-height:1.9;transition:opacity .5s .4s,transform .5s .4s var(--ease)}
.js .st-sub{opacity:0;transform:translateY(24px)}
.stage.is-entered .st-sub{opacity:1;transform:none}
.st-board{position:absolute;right:20px;top:60px;width:min(440px,36%);transition:opacity .4s .3s,transform .8s .3s var(--back);z-index:2}
.js .st-board{opacity:0;transform:translate(60px,40px) scale(.8)}
.stage.is-entered .st-board{opacity:1;transform:none}
.st-board img{width:100%;animation:floatSlow 7s ease-in-out infinite;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.st-orb{position:absolute;width:74px;transition:opacity .2s,transform .55s var(--back);z-index:3;filter:drop-shadow(0 10px 16px rgba(0,0,0,.6))}
.js .st-orb{opacity:0;transform:scale(0)}
.st-orb.o1{right:44%;top:40px;transition-delay:.55s}
.st-orb.o2{right:8%;top:20px;transition-delay:.7s;width:64px}
.st-orb.o3{right:40%;bottom:110px;transition-delay:.85s;width:80px}
.stage.is-entered .st-orb{opacity:1;transform:scale(1)}
.st-orb img{animation:float 4.5s ease-in-out infinite,glow 3s ease-in-out infinite}
.st-orb.o2 img{animation-delay:.6s,.4s}.st-orb.o3 img{animation-delay:1.2s,.9s}
.st-char{position:absolute;bottom:0;height:300px;width:auto;transition:opacity .35s .5s,transform .7s .5s var(--ease);z-index:4;filter:drop-shadow(0 12px 20px rgba(0,0,0,.6))}
.st-char.c1{left:57%;height:270px}
.st-char.c2{right:2%;transition-delay:.6s}
.js .st-char.c1{opacity:0;transform:translate(-80px,80px)}
.js .st-char.c2{opacity:0;transform:translate(80px,80px)}
.stage.is-entered .st-char{opacity:1;transform:none}
.st-badge{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E7CC6A,#B48E1E 70%);color:#2B2005;font-weight:800;font-size:14px;line-height:1.25;text-align:center;box-shadow:0 14px 30px -14px rgba(201,162,39,.9);transition:opacity .1s,transform .5s var(--back);z-index:5}
.js .st-badge{opacity:0;transform:scale(1.6)}
.st-badge small{font-family:var(--serif);font-size:10px;font-weight:600;letter-spacing:.1em;opacity:.8}
.st-badge.b1{left:24px;bottom:28px;transition-delay:.7s}
.st-badge.b2{left:150px;bottom:10px;transition-delay:.85s}
.st-badge.b3{left:276px;bottom:28px;transition-delay:1s}
.stage.is-entered .st-badge{opacity:1;transform:scale(1)}
/* START belt */
.belt{background:var(--navy-deep);transform-origin:top;transition:transform .45s var(--ease-in-out);position:relative}
.js .belt{transform:scaleY(0)}
.belt.is-entered{transform:scaleY(1)}
.belt-in{max-width:var(--maxw);margin:0 auto;padding:34px 24px 38px;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;transition:opacity .4s .35s,transform .4s .35s var(--ease)}
.js .belt-in{opacity:0;transform:translateY(16px)}
.belt.is-entered .belt-in{opacity:1;transform:none}
.belt-lbl{font-family:var(--serif);font-size:34px;font-weight:700;letter-spacing:.14em;color:var(--gold-light);line-height:1;display:flex;flex-direction:column;align-items:center}
.belt-lbl small{font-family:var(--serif);font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--on-navy-2);margin-top:6px}
.belt-note{width:100%;text-align:center;font-size:11.5px;color:var(--on-navy-2);margin:6px 0 0;opacity:.85}
/* about menu tiles */
.about-menu{background:var(--navy-2);padding:44px 0 64px;position:relative}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{position:relative;background:#fff;color:var(--navy);border-radius:10px;padding:22px 16px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;font-weight:700;font-size:15px;text-align:center;transition:transform .2s,box-shadow .25s;overflow:hidden}
.tile:hover{transform:translateY(-4px);box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.tile img{height:64px;width:auto}
.tile .en{font-size:12px;letter-spacing:.14em;color:var(--gold);font-weight:700}
.tile::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--gold-light),var(--gold))}
.line-banner{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(110deg,#0F1D3A,#1B3160);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:20px 28px;color:#fff;flex-wrap:wrap}
.line-banner b{font-size:18px;font-weight:800}
.line-banner span{font-size:13px;color:var(--on-navy-2)}
/* guide swiper */
.about-guide{padding:56px 0 72px;background:var(--navy-2);color:#fff;border-top:1px solid rgba(255,255,255,.08)}
.about-guide .sh2{color:#fff}
.about-guide .sh2 .cnt{color:var(--on-navy-2)}
.gswipe{position:relative}
.gtrack{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 20px;scrollbar-width:none}
.gtrack::-webkit-scrollbar{display:none}
.gcard{flex:0 0 300px;scroll-snap-align:start;background:#fff;color:var(--ink);border-radius:10px;overflow:hidden;transition:transform .2s}
.gcard:hover{transform:translateY(-4px)}
.gcard .gthumb{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative}
.gcard .gthumb img{height:70%;width:auto;filter:drop-shadow(0 8px 12px rgba(0,0,0,.35))}
.gcard .gthumb .num{position:absolute;left:12px;top:10px;font-family:var(--serif);font-size:11px;letter-spacing:.14em;font-weight:600;color:#fff;background:rgba(0,0,0,.35);padding:3px 8px;border-radius:3px}
.gcard .gb{padding:14px 16px 18px}
.gcard .gtag{font-size:10.5px;font-weight:700;color:var(--gold);letter-spacing:.06em}
.gcard h4{font-size:15px;font-weight:700;color:var(--navy);line-height:1.5;margin:4px 0 6px}
.gcard p{font-size:12.5px;color:var(--ink-2);margin:0;line-height:1.7}
.gctl{position:absolute;top:38%;z-index:3;width:44px;height:44px;border-radius:50%;background:#fff;border:0;cursor:pointer;box-shadow:0 10px 20px -8px rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center}
.gctl::before{content:"";width:9px;height:9px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy)}
.gctl.prev{left:-14px}.gctl.prev::before{transform:rotate(135deg);margin-left:3px}
.gctl.next{right:-14px}.gctl.next::before{transform:rotate(-45deg);margin-right:3px}

/* ---------- WORLD / EXPANSION（5項目・交互レイアウト） ---------- */
.exp{padding:96px 0 80px}
.exp-list{display:grid;gap:72px;list-style:none;margin:0;padding:0}
.exp-item{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.exp-item:nth-child(even) .exp-thumb{order:2}
.exp-label{font-family:var(--serif);font-size:clamp(34px,4.4vw,54px);font-weight:700;color:var(--gold);line-height:1;letter-spacing:.06em;display:flex;align-items:center;gap:18px}
.exp-label::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--gold-line),transparent)}
.exp-thumb{aspect-ratio:16/9;border-radius:14px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.exp-thumb img{height:80%;width:auto;filter:drop-shadow(0 20px 28px rgba(0,0,0,.5));transition:transform .5s var(--ease)}
.exp-item:hover .exp-thumb img{transform:scale(1.05)}
.exp-thumb .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35}
.exp-thumb.orbs3 img{height:60%}
.exp-thumb.orbs3 img:nth-child(2){height:74%;margin:0 -2%}
.exp-h{font-size:clamp(22px,2.6vw,32px);font-weight:800;color:var(--navy);margin:16px 0 10px;line-height:1.4}
.exp-p{color:var(--ink-2);font-size:15px;margin:0 0 22px}
.exp-item .btn{min-width:200px}

/* ---------- OFFICIAL ACCOUNT / SNS ---------- */
.sns{padding:72px 0;background:var(--wash)}
.sns-list{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.sns-list a{display:flex;flex-direction:column;align-items:center;justify-content:center;width:112px;height:112px;border-radius:14px;border:2px solid var(--line-2);background:#fff;font-weight:700;font-size:13px;color:var(--navy);gap:8px;position:relative;transition:.2s}
.sns-list a:hover{border-color:var(--gold);transform:translateY(-3px)}
.sns-list .ic{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:12px;color:#fff;background:var(--navy)}
.sns-list .ic.ln{background:#06C755}
.sns-list .soon{position:absolute;top:-8px;right:-8px;background:var(--ink-3);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px}
.sns-list a.pending{opacity:.6;pointer-events:none}

/* ---------- bottom banners ---------- */
.bb-wrap{padding:64px 0 96px}
.bb{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.bb a{display:flex;align-items:center;gap:18px;padding:22px 26px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s,border-color .2s}
.bb a:hover{transform:translateY(-3px);border-color:var(--gold-line)}
.bb img{height:58px;width:auto;flex:none}
.bb b{display:block;font-size:17px;font-weight:800;color:var(--navy);line-height:1.35}
.bb span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:3px}
.bb .go{margin-left:auto;font-family:var(--serif);font-weight:600;color:var(--gold);white-space:nowrap;font-size:13px}

/* ---------- floating badge（Webショップ相当） ---------- */
.fbadge{position:fixed;right:20px;bottom:24px;z-index:90;width:250px;background:#fff;border:2px solid var(--gold-line);border-radius:14px;box-shadow:var(--shadow);padding:14px 16px 14px 92px;transform:translateY(160%);transition:transform .45s var(--ease);overflow:visible}
.fbadge.show{transform:none}
.fbadge img{position:absolute;left:8px;bottom:0;height:118px;width:auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.3))}
.fbadge b{display:block;font-size:14px;font-weight:800;color:var(--navy);line-height:1.35}
.fbadge span{display:block;font-size:11px;color:var(--ink-2);margin-top:3px}
.fbadge .tag{position:absolute;top:-12px;left:14px;background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.06em}
.fbadge .x{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;border:0;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}

/* ---------- footer ---------- */
.ft{background:var(--navy);color:var(--on-navy-2);padding:64px 0 32px;position:relative;overflow:hidden}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold))}
.ft-top{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:36px;border-bottom:1px solid var(--navy-line)}
.ft-top .logo img{height:64px;width:auto}
.ft-top .btn-row{justify-content:flex-end}
.ft-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;padding:40px 0 36px;border-bottom:1px solid var(--navy-line)}
.ft-t{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;line-height:1}
.ft-t .en{font-size:22px;font-weight:700;letter-spacing:.06em;color:var(--gold-light)}
.ft-t .ja{font-size:11.5px;font-weight:700;color:var(--on-navy-2);transform:skew(-6deg)}
.ft-cols a{display:block;font-size:13.5px;color:var(--on-navy-2);padding:5px 0;transition:color .2s}
.ft-cols a:hover{color:var(--gold-light)}
.ft-note{font-size:11.5px;color:var(--on-navy-2);line-height:1.85;margin:24px 0 0;opacity:.85}
.ft-legal{display:flex;flex-wrap:wrap;gap:6px 18px;margin:22px 0 0;padding:0;list-style:none;font-size:12px}
.ft-legal a{color:var(--on-navy-2)}.ft-legal a:hover{color:var(--gold-light)}
.ft-bot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:22px;font-family:var(--serif);font-size:11.5px;letter-spacing:.05em;color:var(--on-navy-2);opacity:.8}
.ft-corp{font-size:13px;color:var(--on-navy);margin:18px 0 0;font-weight:700}

/* ---------- sticky mobile bar ---------- */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;gap:10px;padding:10px 14px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.sticky-bar a{flex:1;text-align:center;font-weight:700;font-size:14px;padding:13px;border-radius:8px;white-space:nowrap}
.sticky-bar .sb-line{background:#06C755;color:#fff}
.sticky-bar .sb-reg{background:linear-gradient(180deg,#DFC05C,#C9A227);color:#2B2005}

/* ======================= 下層ページ共通 ======================= */
.ph{padding:calc(var(--hd) + 56px) 0 36px;text-align:center;position:relative}
.ph .en{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(40px,6vw,68px);line-height:1;letter-spacing:.04em;color:var(--navy)}
.ph .ja{display:inline-block;font-weight:700;font-size:clamp(15px,1.8vw,21px);color:var(--ink-2);margin-top:12px;transform:skew(-6deg);padding:0 18px;position:relative}
.ph .ja::before,.ph .ja::after{content:"";position:absolute;top:50%;width:12px;height:2px;background:var(--gold-bright)}
.ph .ja::before{left:0}.ph .ja::after{right:0}
.ph-lead{max-width:760px;margin:22px auto 0;color:var(--ink-2);font-size:15.5px;line-height:1.95}
.ptabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:30px 0 0}
.ptabs a{padding:11px 22px;border:2px solid var(--line-2);border-radius:999px;font-weight:700;font-size:14px;color:var(--navy);background:#fff;transition:.2s;white-space:nowrap}
.ptabs a:hover,.ptabs a.on{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
section.sec{padding:80px 0}
section.sec.tight{padding:56px 0}
.tint{background:var(--wash)}
.band-navy{background:linear-gradient(180deg,var(--navy),var(--navy-deep));color:var(--on-navy)}
.band-navy .display{color:#fff}.band-navy .lead{color:var(--on-navy-2)}
.band-navy .sh .en{color:#fff}.band-navy .sh .ja{color:var(--on-navy-2)}
.band-navy .card{background:var(--navy-2);border-color:var(--navy-line);box-shadow:none;color:var(--on-navy)}
/* この記事でわかること */
.tldr{background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:12px;padding:22px 26px;margin:0 auto;max-width:var(--narrow)}
.tldr h4{margin:0 0 10px;color:var(--navy);font-size:15px;display:flex;align-items:center;gap:10px}
.tldr h4::before{content:"";width:10px;height:10px;background:var(--gold-bright);transform:rotate(45deg)}
.tldr ul{margin:0;padding-left:1.25em;font-size:14px;color:var(--ink);line-height:1.9}
/* もっと知る nav */
.mn{background:var(--wash);padding:56px 0;border-top:1px solid var(--line)}
.mn h3{text-align:center;font-size:16px;font-weight:700;color:var(--navy);margin:0 0 22px}
.mn-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mn-tile{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;display:flex;align-items:center;gap:14px;font-weight:700;color:var(--navy);font-size:14.5px;transition:.2s;position:relative}
.mn-tile:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.mn-tile img{height:44px;width:auto;flex:none}
.mn-tile .en{display:block;font-size:11px;letter-spacing:.14em;color:var(--gold);font-weight:700}
.mn-tile::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:translateY(-50%) rotate(-45deg)}

/* ---------- cards / grids ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow-sm)}
.grid{display:grid;gap:20px}
.g-2{grid-template-columns:repeat(2,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}.g-5{grid-template-columns:repeat(5,1fr)}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feat .f{text-align:center;padding:26px 18px}
.feat .f img{height:52px;margin:0 auto 12px;width:auto}
.feat .f h4{margin:0 0 6px;font-size:16px;color:var(--navy)}
.feat .f p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.75}
.numbered{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.numbered .n{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 26px;box-shadow:var(--shadow-sm)}
.numbered .n .k{font-family:var(--serif);font-weight:600;color:var(--gold);letter-spacing:.14em;font-size:13px}
.numbered .n h4{font-size:19px;color:var(--navy);margin:8px 0 10px;line-height:1.5}
.numbered .n p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.85}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.two-col h4{font-size:18px;color:var(--navy);padding-bottom:10px;border-bottom:2px solid var(--navy);margin:0 0 14px}
.two-col h4.gold{color:var(--gold);border-color:var(--gold)}
.two-col ul{list-style:none;margin:0;padding:0}
.two-col li{padding:10px 0 10px 22px;position:relative;font-size:14.5px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.two-col li::before{content:"";position:absolute;left:4px;top:19px;width:8px;height:8px;background:var(--gold-bright);transform:rotate(45deg)}
.big-statement{text-align:center;padding:20px 0}
.big-statement h3{font-size:clamp(28px,4.4vw,52px);font-weight:800;color:var(--navy);line-height:1.4;position:relative;display:inline-block;padding-bottom:20px}
.big-statement h3::after{content:"";position:absolute;left:50%;bottom:0;width:120px;height:3px;background:var(--gold-bright);transform:translateX(-50%)}
.big-statement p{color:var(--ink-2);font-size:16px;margin:22px auto 0;max-width:640px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.split .media{border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#25416F,#0B1730 70%);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.split .media img{height:78%;width:auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5))}
.split .media.photo img{height:100%;width:100%;object-fit:cover}
.pill{display:inline-block;background:var(--blue-soft);color:var(--navy);font-weight:700;font-size:12.5px;padding:6px 16px;border-radius:999px;margin-bottom:14px}

/* ---------- step flow ---------- */
.steps{display:flex;gap:14px;align-items:stretch}
.steps.s7{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.step{position:relative;flex:1 1 0;min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 18px;text-align:center;box-shadow:var(--shadow-sm)}
.si{width:46px;height:46px;border-radius:12px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:20px}
.step .n{width:38px;height:38px;border-radius:50%;background:var(--navy);color:var(--gold-light);font-family:var(--serif);font-weight:600;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:16px}
.step h4{margin:0 0 6px;font-size:15.5px;color:var(--navy)}
.step p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.7}
.step .ico{height:54px;margin:4px auto 12px;width:auto}
.steps.s7 .step{padding:18px 8px}
.steps.s7 .step h4{font-size:13.5px}
.steps.s7 .step p{font-size:11.5px}
.step-arrow{flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:22px}
.flow3{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:stretch}
.flow3 .fc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 24px;box-shadow:var(--shadow-sm)}
.flow3 .fc .k{font-family:var(--serif);font-size:12px;letter-spacing:.18em;font-weight:600;color:var(--gold)}
.flow3 .fc h4{font-size:24px;color:var(--navy);margin:4px 0 8px}
.flow3 .fc p{font-size:13.5px;color:var(--ink-2);margin:0 0 12px;line-height:1.75}
.flow3 .fc .v{font-family:var(--serif);font-weight:600;font-size:34px;color:var(--navy);line-height:1}
.flow3 .fc .v small{font-family:var(--serif);font-size:12px;font-weight:700;margin-left:6px}
.flow3 .ar{display:flex;align-items:center;color:var(--gold);font-size:22px}
.callout-bar{background:var(--blue-soft);border-radius:10px;padding:18px 22px;text-align:center;font-weight:700;color:var(--navy);font-size:15px;margin-top:18px}

/* ---------- orb cards ---------- */
.orbs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.orb-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px 26px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;overflow:hidden}
.orb-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px}
.orb-card.red::before{background:linear-gradient(90deg,#7A2624,var(--red))}
.orb-card.silver::before{background:linear-gradient(90deg,#3B4D74,#7E93BF)}
.orb-card.gold::before{background:linear-gradient(90deg,var(--gold),var(--gold-light))}
.orb-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.orb-img{height:130px;margin:6px auto 14px;width:auto;filter:drop-shadow(0 16px 24px rgba(14,27,51,.3));animation:float 5s ease-in-out infinite}
.orb-card.silver .orb-img{animation-delay:.5s}.orb-card.gold .orb-img{animation-delay:1s}
.orb-en{font-family:var(--serif);font-weight:700;font-size:30px;letter-spacing:.08em;color:var(--ink);margin:0;line-height:1}
.orb-name{font-size:15px;font-weight:700;color:var(--navy);margin:6px 0 10px}
.orb-desc{font-size:13px;color:var(--ink-2);margin:0 0 18px;line-height:1.75;min-height:44px}
.orb-rate{font-family:var(--serif);font-weight:600;font-size:44px;color:var(--navy);line-height:1;margin:2px 0 4px}
.orb-rate small{font-size:16px;margin-left:4px}
.orb-rate-k{font-size:12px;color:var(--ink-3);margin-bottom:14px}
.orb-stat{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-top:1px solid var(--line);font-size:13px}
.orb-stat .k{color:var(--ink-2)}
.orb-stat .v{font-family:var(--serif);font-weight:600;font-size:16px;color:var(--navy)}
.orb-stat.hi .v{color:var(--red)}
.red .orb-en{color:var(--red)} .silver .orb-en{color:#5A6F9E} .gold .orb-en{color:var(--gold)}
.calc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.calc .c{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow-sm)}
.calc .c h4{margin:0 0 14px;font-size:15px;color:var(--navy);display:flex;align-items:center;gap:8px}
.calc .c h4 img{height:30px;width:auto}
.calc-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.calc-row .k{color:var(--ink-2)}.calc-row .v{font-family:var(--serif);font-weight:500;color:var(--ink)}
.calc-row.res{border-top:2px solid var(--line-2);margin-top:4px;padding-top:12px}
.calc-row.res .k{font-weight:700;color:var(--navy)}.calc-row.res .v{font-weight:600;font-size:18px;color:var(--gold)}
.sim-table{width:100%;border-collapse:collapse;font-size:14px}
.sim-table th,.sim-table td{padding:13px 12px;text-align:right;border-bottom:1px solid var(--line)}
.sim-table th:first-child,.sim-table td:first-child{text-align:left}
.sim-table thead th{font-family:var(--serif);font-size:12px;letter-spacing:.08em;color:var(--ink-2);background:var(--wash);text-transform:uppercase}
.sim-table .yen{font-family:var(--serif);font-weight:500}
.sim-table .col-gold{background:var(--gold-soft)}
.disclaimer{font-size:12px;color:var(--ink-3);margin:16px 0 0;line-height:1.75}
.band-navy .disclaimer{color:var(--on-navy-2)}

/* ---------- reasons / safety / channels ---------- */
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.reasons .r{background:var(--navy-2);border:1px solid var(--navy-line);border-radius:var(--r);padding:24px}
.reasons .r .rn{font-family:var(--serif);color:var(--gold-light);font-size:13px;letter-spacing:.14em}
.reasons .r h4{color:#fff;margin:8px 0 8px;font-size:17px}
.reasons .r p{color:var(--on-navy-2);font-size:13.5px;margin:0;line-height:1.75}
.safety{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.s{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.s .si{width:46px;height:46px;border-radius:12px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:20px}
.s h4{margin:0 0 8px;font-size:15.5px;color:var(--navy)}
.s p{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.75}
.trust{display:flex;gap:22px;align-items:center;flex-wrap:wrap;justify-content:space-between;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:var(--r-lg);padding:28px;margin-top:24px}
.trust h4{margin:0 0 6px;color:var(--navy);font-size:17px}
.trust p{margin:0;font-size:13.5px;color:var(--ink-2)}
.trust ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.trust li{font-size:13.5px;padding-left:24px;position:relative;color:var(--ink)}
.trust li::before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.channels{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.channels .ch{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;transition:.2s}
.channels .ch:hover{border-color:var(--gold);transform:translateY(-2px)}
.channels .ch .chi{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none;font-weight:700;font-size:12px;color:#fff;font-family:var(--serif)}
.channels .ch.line .chi{background:#06C755}.channels .ch.mail .chi{background:var(--navy)}.channels .ch.online .chi{background:var(--gold)}
.channels .ch h4{margin:0;font-size:15px;color:var(--navy)} .channels .ch p{margin:2px 0 0;font-size:12.5px;color:var(--ink-2)}
.guide-card{display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.gc-tag{align-self:flex-start;font-size:11px;font-weight:700;color:var(--gold);background:var(--gold-soft);border-radius:999px;padding:4px 12px;margin-bottom:12px}
.guide-card h4{margin:0 0 8px;font-size:16px;color:var(--navy);line-height:1.55}
.guide-card p{margin:0 0 14px;font-size:13px;color:var(--ink-2);line-height:1.75;flex:1}
.guide-card .more-l{font-size:13px;font-weight:700;color:var(--gold)}
.guide-card .gthumb{aspect-ratio:16/9;border-radius:8px;display:flex;align-items:center;justify-content:center;margin:-8px -8px 14px;position:relative}
.guide-card .gthumb img{height:70%;width:auto;filter:drop-shadow(0 8px 12px rgba(0,0,0,.35))}

/* ---------- FAQ accordion ---------- */
.faq-list{max-width:860px;margin:0 auto;display:grid;gap:10px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:box-shadow .2s,border-color .2s}
.faq-item.open{border-color:var(--gold-line);box-shadow:var(--shadow-sm)}
.faq-q{font-weight:700;color:var(--navy);font-size:14px;margin:0;cursor:pointer;display:flex;gap:12px;align-items:center;padding:18px 22px;user-select:none}
.faq-q::before{content:"Q";font-family:var(--serif);color:var(--gold);font-weight:700;flex:none;font-size:22px;line-height:1}
.faq-q .pm{margin-left:auto;width:22px;height:22px;position:relative;flex:none;transition:transform .3s;border:2px solid var(--gold-line);border-radius:50%}
.faq-item.open .faq-q .pm{transform:rotate(180deg);background:var(--gold-soft)}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--gold);border-radius:2px}
.faq-q .pm::before{top:8px;left:5px;right:5px;height:2px}
.faq-q .pm::after{left:8px;top:5px;bottom:5px;width:2px;transition:opacity .3s}
.faq-item.open .faq-q .pm::after{opacity:0}
.faq-a{display:none}
.faq-item.open > .faq-a{display:block;animation:faqIn .28s var(--ease) both}
@keyframes faqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.faq-a .inner{padding:0 22px 20px 56px;font-size:14px;color:var(--ink-2);line-height:1.9;position:relative}
.faq-a .inner::before{content:"A";position:absolute;left:22px;top:-2px;font-family:var(--serif);font-weight:700;color:var(--red);font-size:22px;line-height:1}
.faq-a a{color:var(--gold);border-bottom:1px solid var(--gold-line)}
.faq-cat{max-width:860px;margin:44px auto 14px;font-family:var(--serif);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px}
.faq-cat::after{content:"";flex:1;height:1px;background:var(--gold-line)}
.faq-cat .ja{font-family:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:16px;font-weight:700;letter-spacing:.02em;color:var(--navy);text-transform:none}
.faq-cat:first-of-type{margin-top:0}
.faq-jump{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 auto 40px;max-width:860px}
.faq-jump a{border:2px solid var(--line-2);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;color:var(--navy);background:#fff;white-space:nowrap}
.faq-jump a:hover{border-color:var(--gold);color:var(--gold)}

/* ---------- risk box ---------- */
.risk-box{background:#fff;border:1px solid var(--line-2);border-radius:var(--r-lg);padding:34px 32px}
.risk-box h3{margin:0 0 6px;color:var(--navy);font-size:22px}
.risk-list{display:grid;gap:12px;margin:22px 0 0;padding:0;list-style:none}
.risk-list li{padding:16px 18px 16px 56px;background:var(--wash);border:1px solid var(--line);border-radius:10px;position:relative;font-size:13.5px;color:var(--ink-2);line-height:1.75}
.risk-list li b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.risk-list li .rn{position:absolute;left:18px;top:16px;font-family:var(--serif);font-weight:600;color:var(--red);font-size:14px}
.risk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.risk-grid .rc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 26px}
.risk-grid .rc .k{font-family:var(--serif);font-weight:600;color:var(--gold);letter-spacing:.14em;font-size:13px}
.risk-grid .rc h4{font-size:19px;color:var(--navy);margin:6px 0 8px}
.risk-grid .rc p{margin:0;font-size:14px;color:var(--ink-2);line-height:1.85}

/* ---------- glossary（WORLD 用語解説） ---------- */
.gloss{display:grid;gap:18px}
.gloss .gi{display:grid;grid-template-columns:150px 1fr;gap:24px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 28px;align-items:start;box-shadow:var(--shadow-sm)}
.gloss .gi .kw{font-family:var(--serif);font-size:12px;letter-spacing:.2em;font-weight:600;color:var(--gold)}
.gloss .gi .kw b{display:block;font-family:var(--serif);font-size:20px;letter-spacing:.02em;color:var(--navy);margin-top:6px;line-height:1.4}
.gloss .gi p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.9}
.gloss .gi img{height:56px;width:auto;margin-top:10px}
.chars{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.chr{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 14px 18px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s}
.chr:hover{transform:translateY(-4px)}
.chr img{height:170px;width:auto;margin:0 auto 12px;filter:drop-shadow(0 10px 14px rgba(14,27,51,.25))}
.chr .role{font-family:var(--serif);font-size:10.5px;letter-spacing:.18em;color:var(--gold);font-weight:600}
.chr h4{font-size:15px;color:var(--navy);margin:4px 0 6px}
.chr p{font-size:12px;color:var(--ink-2);margin:0;line-height:1.7}
.world-intro{position:relative;background:radial-gradient(ellipse at 50% 0%,#1E3560,var(--navy-deep) 70%);color:#fff;border-radius:18px;padding:64px 40px;text-align:center;overflow:hidden;box-shadow:var(--shadow)}
.world-intro::before{content:"";position:absolute;inset:0;background:url('/assets/img/jd_bg_castle.jpg') center/cover;opacity:.18}
.world-intro>*{position:relative}
.world-intro .wi-t{font-size:clamp(24px,3.6vw,42px);font-weight:800;line-height:1.5;margin:0 0 18px}
.world-intro .wi-t .g{color:var(--gold-light)}
.world-intro p{color:var(--on-navy-2);font-size:15.5px;line-height:2;max-width:680px;margin:0 auto}
.world-intro img{height:180px;width:auto;margin:0 auto 24px;animation:floatSlow 7s ease-in-out infinite;filter:drop-shadow(0 20px 30px rgba(0,0,0,.6))}

/* ---------- prose（ガイド/コラム/法務） ---------- */
.prose{max-width:var(--narrow);margin:0 auto}
.prose h2{font-size:22px;color:var(--navy);margin:44px 0 14px;font-weight:700;line-height:1.5;padding-left:16px;border-left:4px solid var(--gold-bright)}
.prose h3{font-size:17px;color:var(--navy);margin:28px 0 10px;font-weight:700}
.prose p{font-size:15px;color:var(--ink);line-height:2;margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:1.4em}
.prose li{margin:8px 0;font-size:15px;color:var(--ink);line-height:1.9}
.prose a{color:var(--gold);border-bottom:1px solid var(--gold-line)}
.prose .callout{background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:12px;padding:20px 24px;margin:22px 0;font-size:14px;color:var(--ink);line-height:1.85}
.prose blockquote{border-left:3px solid var(--gold-line);background:var(--wash);margin:20px 0;padding:14px 20px;font-size:14px;color:var(--ink-2);border-radius:0 10px 10px 0}
.prose .fig{margin:24px 0;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#25416F,#0B1730 70%);aspect-ratio:16/7;display:flex;align-items:center;justify-content:center;gap:24px}
.prose .fig img{height:70%;width:auto;filter:drop-shadow(0 16px 24px rgba(0,0,0,.5))}
.article-meta{font-family:var(--serif);font-size:12px;letter-spacing:.06em;color:var(--ink-3);margin:0 0 6px}
.toc{background:var(--wash);border:1px solid var(--line);border-radius:12px;padding:22px 26px;margin:0 0 30px}
.toc b{display:block;font-size:14px;letter-spacing:.04em;margin-bottom:10px;color:var(--navy)}
.toc ol{margin:0;padding-left:1.3em}
.toc li{font-size:14px;margin:.35em 0;line-height:1.7}
.toc a{color:var(--ink-2);border:0}
.toc a:hover{color:var(--gold)}
.inline-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;background:var(--wash);border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;margin:44px 0 0;text-align:center;flex-direction:column;align-items:center}
.inline-cta p{margin:0 0 4px;font-weight:700;color:var(--navy);font-size:17px}
.inline-cta .sub{font-weight:400;color:var(--ink-2);font-size:13px;display:block;margin-top:4px}
.inline-cta .row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:10px}
/* legal doc */
.doc{max-width:var(--narrow);margin:0 auto}
.doc h2{font-size:19px;color:var(--navy);margin:44px 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.doc h2:first-of-type{margin-top:0}
.doc h3{font-size:16px;color:var(--navy);margin:24px 0 8px}
.doc p,.doc li{font-size:14.5px;line-height:1.95;color:var(--ink-2)}
.doc ol,.doc ul{padding-left:1.4em;margin:.6em 0}
.doc li{margin:.4em 0}
.doc strong{color:var(--ink)}
.doc a{color:var(--gold);border-bottom:1px solid var(--gold-line)}
.tbl{width:100%;border-collapse:collapse;margin:20px 0;font-size:14.5px}
.tbl th,.tbl td{border:1px solid var(--line);padding:14px 16px;text-align:left;vertical-align:top;line-height:1.85}
.tbl th{background:var(--wash);width:30%;font-weight:700;color:var(--navy)}
.tbl td{color:var(--ink-2);background:#fff}
.tbl-wrap{overflow-x:auto}
.ph-mark{color:var(--gold);background:var(--gold-soft);padding:1px 8px;border-radius:3px;font-size:13.5px;font-weight:600;white-space:nowrap}
.meta{font-size:13px;color:var(--ink-3);margin-top:40px;padding-top:18px;border-top:1px solid var(--line)}
.notice{border-left:3px solid var(--gold-bright);background:var(--gold-soft);padding:18px 22px;border-radius:0 10px 10px 0;margin:0 0 30px}
.notice p{margin:0;font-size:14px;color:var(--ink-2)}
.notice strong{color:var(--ink)}
.notice.red{border-color:var(--red);background:var(--red-soft)}
.legal-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 44px}
.legal-nav a{font-size:13px;font-weight:700;padding:9px 16px;border:2px solid var(--line-2);border-radius:999px;color:var(--navy);background:#fff;white-space:nowrap}
.legal-nav a.on,.legal-nav a:hover{border-color:var(--gold);color:var(--gold)}
/* contact */
.form{display:grid;gap:18px;max-width:720px;margin:0 auto}
.form label{display:block;font-weight:700;font-size:14px;color:var(--navy);margin-bottom:6px}
.form label .req{color:var(--red);font-size:11px;margin-left:6px}
.form input,.form textarea,.form select{width:100%;border:2px solid var(--line-2);border-radius:8px;padding:13px 14px;font:inherit;font-size:15px;color:var(--ink);background:#fff}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;border-color:var(--gold)}
.form textarea{min-height:160px;resize:vertical}
.form .agree{font-size:13px;color:var(--ink-2)}
.form .agree a{color:var(--gold)}
.company-tbl th{width:26%}

/* ================= responsive ================= */
@media (max-width:1180px){
  .g-5{grid-template-columns:repeat(3,1fr)}
  .gnav-btn{padding:0 11px}
  .gnav-btn .en{font-size:19px}
  .bdg{width:108px}
}
@media (max-width:980px){
  .gnav,.hd-badges{display:none}
  .menu-btn{display:flex}
  .hd-in{padding-right:80px}
  .stage{height:auto;padding:40px 24px 380px}
  .st-copy{position:static;width:auto}
  .st-sub{max-width:none;margin-top:18px}
  .st-board{right:12px;bottom:60px;top:auto;width:min(300px,50%)}
  .st-char{height:220px}
  .st-char.c1{left:14px}
  .st-badge{width:86px;height:86px;font-size:11px}
  .st-badge.b1{left:auto;right:calc(50% + 10px);top:auto;bottom:250px}
  .st-badge.b2{left:auto;right:calc(50% + 100px);top:auto;bottom:230px}
  .st-badge.b3{display:none}
  .st-orb.o1{right:auto;left:10%;top:auto;bottom:320px}
  .st-orb.o3{display:none}
  .pickup-grid,.event-card,.exp-item,.split,.two-col{grid-template-columns:1fr}
  .exp-item:nth-child(even) .exp-thumb{order:0}
  .exp-item{gap:24px}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .mn-tiles{grid-template-columns:repeat(2,1fr)}
  .chars{grid-template-columns:repeat(3,1fr)}
  .steps.s7{grid-template-columns:repeat(4,1fr)}
  .ft-cols{grid-template-columns:repeat(2,1fr)}
  .rb,.news-grid,.news-list{grid-template-columns:repeat(2,1fr)}
  .g-5{grid-template-columns:repeat(3,1fr)}
  .fbadge{display:none}
}
@media (max-width:768px){
  body{font-size:14.5px}
  :root{--hd:70px}
  .hd-logo img{height:38px}
  .menu-btn{top:9px}
  section.sec{padding:60px 0}
  .kv-slide{--slide-w:88vw;aspect-ratio:1.15/1;border-radius:12px}
  .kv-copy{left:7%;top:8%;transform:none;width:86%}
  .kv-title{font-size:clamp(20px,5.6vw,28px)}
  .kv-sub{font-size:12px;margin-top:8px}
  .kv-art{right:auto;left:50%;top:auto;bottom:-6%;transform:translateX(-50%);height:52%}
  .kv-art-3{right:auto;left:50%;top:auto;bottom:0;transform:translateX(-50%);height:44%}
  .kv-ctl{display:none}
  .pickup{margin-top:-30px;padding:80px 0 60px;clip-path:polygon(0 30px,100% 0,100% 100%,0 100%)}
  .pickup-ghost{top:30px}
  .rb,.news-grid,.news-list{grid-template-columns:1fr}
  .rb b,.rb .sub{max-width:64%}
  .news{padding:64px 0 30px}
  .event-info{padding:24px}
  .steps.s7,.orbs,.reasons,.safety,.feat,.channels,.g-3,.g-4,.g-2,.numbered,.calc,.risk-grid,.mn-tiles,.tiles,.bb,.chars{grid-template-columns:1fr}
  .steps{flex-direction:column}
  .step-arrow{transform:rotate(90deg);padding:2px 0}
  .flow3{grid-template-columns:1fr}
  .flow3 .ar{justify-content:center;transform:rotate(90deg)}
  .gloss .gi{grid-template-columns:1fr;gap:10px}
  .ev-row{grid-template-columns:1fr}
  .sticky-bar{display:flex}
  body{padding-bottom:66px}
  .ft-cols{grid-template-columns:1fr;gap:22px}
  .ft-top .btn-row{justify-content:flex-start}
  .btn{min-width:0;width:100%;max-width:360px}
  .exp-item .btn{width:auto}
  .sh .en{font-size:clamp(36px,11vw,48px)}
  .ph .en{font-size:clamp(36px,11vw,50px)}
  .ph{padding-top:calc(var(--hd) + 36px)}
  .about-menu,.about-guide{padding:36px 0 48px}
  .belt-in{gap:16px}
  .risk-box{padding:24px 18px}
  .faq-q{padding:16px 16px;font-size:14px}
  .faq-a .inner{padding:0 16px 18px 46px}
  .faq-a .inner::before{left:16px}
  .sim-table{font-size:12.5px}
  .sim-table th,.sim-table td{padding:10px 8px}
  .tbl th,.tbl td{display:block;width:100%}
  .tbl th{border-bottom:0}
  .tbl tr{display:block;margin-bottom:-1px}
  .world-intro{padding:44px 22px}
  .line-banner{padding:18px 20px}
}
@media (max-width:420px){
  .wrap,.wrap-narrow{padding:0 16px}
  .kv-slide{--slide-w:90vw}
}

/* ===== v2.1 追加：キャンペーン帯 / 大きな数字 / 石盤カード ===== */
.cmp{position:relative;overflow:hidden;display:block;border-radius:var(--r-lg);
  background:linear-gradient(115deg,#0A1428 0%,#16294B 46%,#2A1B08 100%);
  border:1px solid rgba(201,162,39,.42);box-shadow:0 18px 44px rgba(10,20,40,.30);color:#fff;text-decoration:none}
.cmp::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,39,.30);border-radius:calc(var(--r-lg) - 5px);pointer-events:none}
.cmp-in{position:relative;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:30px 34px}
.cmp-lbl{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);
  font-size:12px;letter-spacing:.22em;font-weight:700;color:var(--gold-bright);text-transform:uppercase}
.cmp-lbl::before{content:"";width:9px;height:9px;background:var(--gold-bright);transform:rotate(45deg)}
.cmp h3{margin:10px 0 0;font-size:clamp(20px,2.5vw,30px);line-height:1.42;color:#fff;word-break:auto-phrase}
.cmp h3 .g{background:linear-gradient(100deg,#F0D98A,#C9A227 60%,#F5E7B4);-webkit-background-clip:text;background-clip:text;color:transparent}
.cmp p{margin:12px 0 0;font-size:14px;line-height:1.85;color:rgba(255,255,255,.86);max-width:64ch;word-break:auto-phrase}
.cmp .cmp-note{margin-top:12px;font-size:11.5px;line-height:1.7;color:rgba(255,255,255,.60)}
.cmp-when{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:210px;
  padding:20px 22px;border:1px solid rgba(201,162,39,.42);border-radius:12px;background:rgba(255,255,255,.05)}
.cmp-when .k{font-family:var(--serif);font-size:11px;letter-spacing:.2em;color:var(--gold-bright)}
.cmp-when .d{font-family:var(--serif);font-size:38px;font-weight:700;line-height:1.05;color:#fff;white-space:nowrap}
.cmp-when .t{font-size:12.5px;color:rgba(255,255,255,.78);white-space:nowrap}
.cmp-img{display:block;width:100%;height:auto;border-radius:var(--r-lg)}
.cmp-figure{margin:0;padding:0;line-height:0}
.bignum{font-family:var(--serif);font-weight:700;
  font-size:clamp(38px,5vw,56px);line-height:1;color:var(--gold);letter-spacing:.01em;white-space:nowrap}
.bignum.red{color:#8B2020}.bignum.navy{color:#1F3A63}.bignum.green{color:#2C5138}
.bignum small{font-family:"Shippori Mincho B1","Hiragino Mincho ProN",serif;font-size:13px;font-weight:700;margin-left:4px}
.numlabel{display:block;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
.slab-head{display:inline-flex;align-items:center;justify-content:center;min-width:104px;padding:5px 14px;border-radius:6px;
  font-size:13px;font-weight:700;color:#fff;margin:0 auto 14px}
.slab-head.red{background:var(--red)}.slab-head.silver{background:#3E5C86}.slab-head.gold{background:#8A6A12}
.combo{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:14px;min-height:44px}
.combo img{height:38px;width:auto}
.combo span{color:var(--gold);font-size:17px}
@media (max-width:768px){
  .cmp-in{grid-template-columns:1fr;gap:20px;padding:24px 22px}
  .cmp-when{min-width:0;width:100%;flex-direction:row;gap:12px;flex-wrap:wrap;padding:16px 18px}
  .cmp-when .d{font-size:30px}
}

/* キャンペーンKVスライド：コピーが長いのでオーブを小さく右下へ寄せ、左のスクリムを濃くする */
.kv-slide.kv-cmp .kv-grad{background:linear-gradient(100deg,rgba(18,13,2,.97) 0%,rgba(40,30,5,.93) 40%,rgba(74,55,10,.72) 66%,rgba(120,90,20,.30) 100%)}
.kv-slide.kv-cmp .kv-art-3{right:3%;top:auto;bottom:7%;transform:none;height:50%;gap:1.5%}
.kv-slide.kv-cmp .kv-art-3 img{filter:drop-shadow(0 14px 26px rgba(0,0,0,.62))}
.kv-slide.kv-cmp .kv-copy{width:58%;top:46%}
@media (max-width:768px){
  /* コピーが3行になるとオーブに重なるので、小さく右下へ逃がす */
  .kv-slide.kv-cmp .kv-art-3{right:2%;left:auto;bottom:2%;transform:none;height:21%;gap:2%}
  .kv-slide.kv-cmp .kv-copy{width:88%;top:7%}
  .kv-slide.kv-cmp .kv-grad{background:linear-gradient(160deg,rgba(18,13,2,.97) 0%,rgba(40,30,5,.94) 52%,rgba(74,55,10,.80) 100%)}
}

/* =========================================================================
   v2.2 デザイン調整 — 説明会資料（更新版PDF）のデザイン言語を移植
   ・地色：クールグレー → 温かいアイボリー（トークン側で変更済み）
   ・枠：金の細い二重罫＋四隅のオーナメント（.orn）
   ・見出し：金のヘアライン＋中央の四芒星（.orn-rule / .sh / .ph に自動付与）
   ・リボン見出し（.slab-head）、金グラデの帯（.band）、✦ の箇条書き（.spark）
   ========================================================================= */

/* --- 四隅のオーナメント枠（カード・パネルに .orn を足すだけ） --- */
.orn,.step,.card.f,.orb-card{position:relative}
.orn::after,.step::after,.card.f::after,.orb-card::after{
  content:"";position:absolute;inset:7px;pointer-events:none;z-index:1;
  --c:var(--orn);
  background:
    linear-gradient(var(--c),var(--c)) 0 0/16px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 0/1px 16px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 0/16px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 0/1px 16px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 100%/16px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 100%/1px 16px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 100%/16px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 100%/1px 16px no-repeat;
}
.orn.on-dark::after,.cmp.orn::after{--c:var(--orn-on-dark)}

/* --- 金のヘアライン＋四芒星（見出し下の飾り罫） --- */
:root{
  --orn-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 0 7.15 4.85 12 6 7.15 7.15 6 12 4.85 7.15 0 6 4.85 4.85Z' fill='%23C9A227'/%3E%3C/svg%3E");
  --orn-rule:var(--orn-star) 50% 50%/12px 12px no-repeat,
    linear-gradient(90deg,transparent 0,var(--gold-line) 16%,var(--gold-line) 43%,transparent 43.5%,transparent 56.5%,var(--gold-line) 57%,var(--gold-line) 84%,transparent 100%) 0 50%/100% 1px no-repeat;
}
.orn-rule,
.sh:not(:has(.sh-lead))::after,
.sh > .sh-lead::before,
.ph > .ph-lead::before{
  content:"";display:block;height:12px;width:min(340px,64%);background:var(--orn-rule)
}
.orn-rule{margin:22px auto}
.sh:not(:has(.sh-lead))::after{margin:20px auto 0}
.sh > .sh-lead::before{margin:20px auto 22px}
.ph > .ph-lead::before{margin:18px auto 20px}
.sh.left:not(:has(.sh-lead))::after,.sh.left > .sh-lead::before{margin-left:0;width:min(300px,100%)}

/* --- リボン見出し（資料の「1オーブ」「基本報酬」帯） --- */
.slab-head{
  clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%);
  min-width:118px;padding:6px 20px;letter-spacing:.04em;
  background-image:linear-gradient(180deg,rgba(255,255,255,.22),transparent 55%)
}
.slab-head.red{background-color:#8B2020}
.slab-head.silver{background-color:#1F3A63}
.slab-head.gold{background-color:#8A6A12}
.slab-head.green{background-color:#2C5138}

/* --- 金グラデの帯見出し（資料の「基本報酬（…）」） --- */
.band{
  display:block;margin:0 0 20px;padding:12px 22px;border-radius:6px;
  background:linear-gradient(100deg,#6B5008,#8A6A12 55%,#74570B);
  color:#fff;font-size:16px;font-weight:700;letter-spacing:.03em;
  box-shadow:0 8px 20px -14px rgba(90,68,10,.9)
}
.band small{display:inline;font-size:12.5px;font-weight:500;opacity:.86;margin-left:8px}

/* --- ✦ の箇条書き（資料の注意事項ページ） --- */
.spark{list-style:none;margin:0;padding:0}
.spark li{
  position:relative;padding:16px 4px 16px 46px;font-size:14.5px;line-height:1.9;color:var(--ink);
  border-bottom:1px dotted var(--line-2)
}
.spark li:last-child{border-bottom:0}
.spark li::before{
  content:"";position:absolute;left:2px;top:calc(50% - 13px);width:26px;height:26px;border-radius:50%;
  border:1px solid var(--gold-line);
  background:var(--orn-star) 50% 50%/12px 12px no-repeat
}
.spark li b{display:block;color:var(--navy);font-size:15px;margin-bottom:2px}

/* --- キャンペーン帯：画像版 --- */
.cmp.has-img{background:linear-gradient(180deg,#0A1428,#140F04)}
.cmp.has-img .cmp-figure{overflow:hidden;border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0}
.cmp.has-img .cmp-img{display:block;width:100%;height:auto}
.cmp-bar{position:relative;display:flex;align-items:center;gap:22px;padding:18px 30px 20px;flex-wrap:wrap}
.cmp-chip{
  display:inline-flex;align-items:baseline;gap:10px;flex:0 0 auto;
  padding:10px 18px;border:1px solid rgba(201,162,39,.5);border-radius:8px;background:rgba(255,255,255,.06);
  color:#fff;font-size:15px;font-weight:700;white-space:nowrap
}
.cmp-chip small{font-family:var(--serif);font-size:11px;letter-spacing:.2em;color:var(--gold-bright)}
.cmp-bar .cmp-note{flex:1 1 320px;margin:0;font-size:11.5px;line-height:1.75;color:rgba(255,255,255,.62)}
@media (max-width:768px){
  .cmp-bar{padding:16px 18px 18px;gap:14px}
  .cmp-chip{font-size:13.5px;padding:9px 14px}
}

/* =========================================================================
   v2.3 クラフト調整 — 資料のカード表現に寄せる
   ========================================================================= */

/* --- 特徴カード：白い箱の羅列 → 資料と同じアイボリー＋金の隅飾り＋大きめのメダリオン --- */
.card.f{background:linear-gradient(180deg,#FFFDF8,var(--wash));padding:30px 20px 26px}
.card.f > img{height:62px;margin:2px auto 16px;width:auto;filter:drop-shadow(0 9px 16px rgba(20,15,4,.34))}
.card.f h4{font-size:15.5px;letter-spacing:.01em}
.card.f p{font-size:12.75px;line-height:1.95}

/* --- ステップカード：メダリオンを大きく、番号は金の環に --- */
.step .ico{height:62px;margin:4px auto 14px;filter:drop-shadow(0 9px 16px rgba(20,15,4,.34))}
.step .n{background:linear-gradient(160deg,#16294A,#0A1428);box-shadow:0 0 0 1px var(--gold-line),0 6px 14px -8px rgba(10,20,40,.6)}

/* --- オーブカード：見出しを資料のリボンに、値上げ率の数字を種類の色に --- */
.orb-en{
  display:inline-block;margin:0 auto 4px;padding:5px 22px;
  clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,9px 100%,0 50%);
  background-image:linear-gradient(180deg,rgba(255,255,255,.22),transparent 55%);
  color:#fff;font-family:var(--serif);
  font-size:13px;font-weight:700;letter-spacing:.22em;line-height:1.6
}
.orb-card.red .orb-en{background-color:#8B2020}
.orb-card.silver .orb-en{background-color:#1F3A63}
.orb-card.gold .orb-en{background-color:#8A6A12}
.orb-card.red .orb-rate{color:#8B2020}
.orb-card.silver .orb-rate{color:#1F3A63}
.orb-card.gold .orb-rate{color:#8A6A12}
.orb-card{background:linear-gradient(180deg,#FFFDF8,var(--wash))}

@media (max-width:768px){
  .g-5{grid-template-columns:repeat(2,1fr)}
  .card.f{padding:24px 14px 20px}
  .card.f > img,.step .ico{height:52px}
}

/* =========================================================================
   v3 LP — 等間隔カードをやめ、セクションごとに形の違う編集レイアウトへ
   claim（言い切り）／seq（ぶら下げ番号）／honest（暗転の告白）／
   tlist（罫線だけのリスト）／pull（代表の声）／tnav（テキストの導線）
   ========================================================================= */

/* --- 言い切りのセクション：左に大見出し、右に本文。カードを使わない --- */
.claim{padding:104px 0}
.claim .in{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,88px);align-items:start}
.claim .eyebrow{
  display:block;font-family:var(--serif);
  font-size:12px;letter-spacing:.28em;font-weight:700;color:var(--gold);margin:0 0 20px
}
.claim h2{
  margin:0;font-size:clamp(28px,4.4vw,52px);line-height:1.4;color:var(--navy);
  letter-spacing:.01em;word-break:auto-phrase
}
.claim h2 em{font-style:normal;position:relative;white-space:nowrap}
.claim h2 em::after{
  content:"";position:absolute;left:-.04em;right:-.04em;bottom:.08em;height:.34em;z-index:-1;
  background:linear-gradient(90deg,rgba(201,162,39,.30),rgba(201,162,39,.10))
}
.claim p{margin:0 0 1.35em;font-size:16px;line-height:2.15;color:var(--ink-2);word-break:auto-phrase}
.claim p:last-child{margin-bottom:0}
.claim p strong{color:var(--ink);font-weight:700}
.claim .in > div:last-child{padding-top:.7em}

/* --- ぶら下げ番号のシーケンス：枠なし、罫線だけ --- */
.seq{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-2)}
.seq > li{
  display:grid;grid-template-columns:clamp(76px,9vw,124px) 1fr;gap:clamp(20px,3vw,44px);
  align-items:baseline;padding:34px 0 32px;border-bottom:1px solid var(--line-2)
}
.seq .n{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(40px,5.6vw,74px);line-height:.85;color:var(--gold-line);letter-spacing:-.02em
}
.seq h3{margin:0 0 10px;font-size:clamp(20px,2.4vw,27px);color:var(--navy);line-height:1.45}
.seq p{margin:0;font-size:15px;line-height:2.05;color:var(--ink-2);max-width:60ch;word-break:auto-phrase}
.seq .meta{
  display:block;margin-top:12px;font-family:var(--serif);
  font-size:13px;letter-spacing:.1em;color:var(--gold)
}

/* --- 暗転して、損の話をする --- */
.honest{background:linear-gradient(168deg,#0A1428 0%,#12213D 58%,#0A1428 100%);color:#fff;padding:104px 0}
.honest .eyebrow{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.28em;font-weight:700;color:var(--gold-light);margin:0 0 20px}
.honest h2{margin:0 0 30px;font-size:clamp(26px,4vw,46px);line-height:1.45;color:#fff;word-break:auto-phrase}
.honest p{margin:0 0 1.3em;font-size:16px;line-height:2.15;color:rgba(255,255,255,.80);max-width:62ch;word-break:auto-phrase}
.honest p:last-of-type{margin-bottom:0}
.honest strong{color:var(--gold-light);font-weight:700}
.honest .tlist{border-color:rgba(255,255,255,.16)}
.honest .tlist > li{border-color:rgba(255,255,255,.16)}
.honest .tlist h4{color:#fff}
.honest .tlist p{color:rgba(255,255,255,.66);font-size:14px}
.honest .tlist .n{color:rgba(224,190,104,.55)}

/* --- 罫線だけのリスト（枠で囲わない） --- */
.tlist{margin:44px 0 0;padding:0;list-style:none;border-top:1px solid var(--line-2)}
.tlist > li{
  display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;
  padding:22px 0;border-bottom:1px solid var(--line-2)
}
.tlist .n{font-family:var(--serif);font-size:14px;font-weight:700;letter-spacing:.1em;color:var(--gold);min-width:2.2em}
.tlist h4{margin:0 0 6px;font-size:16.5px;color:var(--navy);line-height:1.5}
.tlist p{margin:0;font-size:14px;line-height:1.95;color:var(--ink-2);max-width:64ch;word-break:auto-phrase}

/* --- 代表の声 --- */
.pull{padding:96px 0}
.pull .in{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,4vw,56px);align-items:start;max-width:920px;margin:0 auto}
.pull .mark{font-family:var(--serif);font-size:clamp(72px,10vw,132px);line-height:.7;color:var(--gold-line)}
.pull blockquote{margin:0}
.pull blockquote p{margin:0 0 1.25em;font-size:clamp(16px,1.9vw,20px);line-height:2.05;color:var(--ink);word-break:auto-phrase}
.pull blockquote p:last-of-type{margin-bottom:0}
.pull cite{display:block;margin-top:26px;font-style:normal;font-size:14px;color:var(--ink-3);letter-spacing:.04em}
.pull cite b{color:var(--navy);font-size:15px;margin-left:6px}

/* --- お知らせ：サムネなしの罫線リスト --- */
.tnews{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-2)}
.tnews > li{border-bottom:1px solid var(--line-2)}
.tnews a{
  display:grid;grid-template-columns:104px 92px 1fr auto;gap:20px;align-items:baseline;
  padding:20px 4px;text-decoration:none;transition:background .18s,padding .18s
}
.tnews a:hover{background:var(--wash);padding-left:12px;padding-right:12px}
.tnews .date{font-family:var(--serif);font-size:14px;letter-spacing:.06em;color:var(--ink-3)}
.tnews .cat{justify-self:start;font-size:11.5px;padding:3px 12px;border:1px solid var(--gold-line);border-radius:2px;color:var(--gold);letter-spacing:.06em;white-space:nowrap}
.tnews .ttl{font-size:15.5px;color:var(--ink);line-height:1.7;word-break:auto-phrase}
.tnews a:hover .ttl{color:var(--navy);text-decoration:underline;text-underline-offset:4px}
.tnews .go{color:var(--gold);font-size:14px}

/* --- 導線：バナーの羅列をやめ、罫線で区切ったテキストに --- */
.tnav{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line-2)}
.tnav a{
  padding:30px 26px 28px;text-decoration:none;border-bottom:1px solid var(--line-2);
  border-right:1px solid var(--line-2);transition:background .18s
}
.tnav a:nth-child(4n){border-right:0}
.tnav a:hover{background:var(--wash)}
.tnav .en{display:block;font-family:var(--serif);font-size:11.5px;letter-spacing:.24em;color:var(--gold);margin-bottom:10px}
.tnav b{display:block;font-size:16px;color:var(--navy);margin-bottom:6px;line-height:1.5}
.tnav span{display:block;font-size:13px;color:var(--ink-2);line-height:1.8}

@media (max-width:980px){
  .claim .in{grid-template-columns:1fr;gap:26px}
  .claim .in > div:last-child{padding-top:0}
  .pull .in{grid-template-columns:1fr;gap:8px}
  .pull .mark{line-height:.9}
  .tnav{grid-template-columns:repeat(2,1fr)}
  .tnav a:nth-child(4n){border-right:1px solid var(--line-2)}
  .tnav a:nth-child(2n){border-right:0}
}
@media (max-width:768px){
  .claim,.honest{padding:66px 0}
  .pull{padding:60px 0}
  .seq > li{grid-template-columns:1fr;gap:4px;padding:26px 0}
  .seq .n{font-size:34px}
  .tnews a{grid-template-columns:1fr;gap:6px;padding:18px 4px}
  .tnews a:hover{padding-left:4px;padding-right:4px}
  .tnews .go{display:none}
  .tnav{grid-template-columns:1fr}
  .tnav a{border-right:0!important}
}

/* =========================================================================
   v3.1 KVカルーセル — 画面が狭まったとき「見切れる」不具合の修正
   原因1：中央寄せの計測に transform 込みの幅を使っていた → build.js を offsetWidth に
   原因2：スライド内の文字が vw 基準だったため、ブロックが縮んでも文字が縮まず溢れていた
          → コンテナクエリでスライド自身の幅を基準にする
   ========================================================================= */
.kv-slide{container-type:inline-size}
.kv-title{font-size:clamp(19px,4cqw,44px)}
.kv-sub{font-size:clamp(11px,1.4cqw,15px)}
.kv-btn{font-size:clamp(11px,1.2cqw,13.5px);margin-top:1.6cqw}
.kv-tag{font-size:clamp(9.5px,1.02cqw,11px);margin-bottom:1.3cqw;padding:0.5cqw 1.1cqw}
.kv-copy{width:54%}

/* 幅が狭まるほど横長をゆるめ、文字が入る縦を確保する */
@media (max-width:1120px){ .kv-slide{aspect-ratio:2.2/1} .kv-copy{width:56%} }
@media (max-width:920px){ .kv-slide{aspect-ratio:1.85/1} .kv-copy{width:58%} }
@media (max-width:820px){ .kv-slide{aspect-ratio:1.6/1} }

/* コンテナクエリ非対応ブラウザでも破綻しないよう、最低限の縮小を保証 */
@supports not (container-type:inline-size){
  .kv-title{font-size:clamp(19px,3.1vw,44px)}
  .kv-sub{font-size:clamp(11px,1.1vw,15px)}
}

/* --- 罫線リストのバリエーション：番号のかわりにメダリオン --- */
.tlist.icons > li{grid-template-columns:auto 1fr;gap:clamp(18px,2.6vw,30px);align-items:center;padding:24px 0}
.tlist.icons img{height:54px;width:auto;filter:drop-shadow(0 9px 15px rgba(20,15,4,.32))}
.tlist.icons h4{font-size:17px;margin-bottom:5px}

/* --- 本文の中に置く大きな数字（枠を使わずに数字を主役にする） --- */
.figs{margin:0;font-size:clamp(17px,2.1vw,22px);line-height:2.25;color:var(--ink);word-break:auto-phrase}
.figs b{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(30px,4.4vw,52px);line-height:1;color:var(--navy);letter-spacing:.01em;
  margin:0 .12em;white-space:nowrap;vertical-align:-.06em
}
.figs b.gold{color:var(--gold)}
.figs b small{font-family:inherit;font-size:.4em;font-weight:700;margin-left:.12em}
.figs .sep{display:inline-block;margin:0 .5em;color:var(--gold-line)}

/* --- 罫線リスト＋右端に数値（枠を使わずに比較させる） --- */
.tlist.val > li{grid-template-columns:auto 1fr auto;gap:clamp(14px,2.4vw,28px);align-items:center}
.tlist.val .v{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(30px,4vw,46px);line-height:1;color:var(--gold);white-space:nowrap;justify-self:end
}
.tlist.val .v small{font-size:.42em;font-weight:700;margin-left:.1em}
.tlist.val .v.red{color:#8B2020}.tlist.val .v.navy{color:#1F3A63}.tlist.val .v.green{color:#2C5138}
.tlist.val .orbset{display:flex;align-items:center;gap:6px;min-width:0}
.tlist.val .orbset img{height:34px;width:auto}
.tlist.val .orbset span{color:var(--gold);font-size:15px}
@media (max-width:640px){
  .tlist.val > li{grid-template-columns:auto 1fr;row-gap:10px}
  .tlist.val .v{grid-column:1/-1;justify-self:start;font-size:32px}
}

/* --- 横一本の細い罫の上に並べるタイムライン（箱を使わない7ステップ） --- */
.rail{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);position:relative}
.rail::before{content:"";position:absolute;left:7%;right:7%;top:19px;height:1px;background:var(--line-2)}
.rail > li{position:relative;text-align:center;padding:0 8px}
.rail .n{
  position:relative;z-index:1;display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;margin:0 auto 16px;border-radius:50%;
  background:var(--ground);border:1px solid var(--gold-line);
  font-family:var(--serif);font-weight:700;font-size:16px;color:var(--gold)
}
.rail > li:last-child .n{background:var(--navy);border-color:var(--navy);color:var(--gold-light)}
.rail h4{margin:0 0 6px;font-size:14.5px;color:var(--navy);line-height:1.5;word-break:auto-phrase}
.rail .t{display:block;font-size:12px;color:var(--ink-3);line-height:1.7;word-break:auto-phrase}
.tint .rail .n{background:var(--wash)}
@media (max-width:900px){
  .rail{grid-template-columns:1fr;text-align:left}
  .rail::before{left:19px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .rail > li{display:grid;grid-template-columns:38px 1fr;gap:18px;align-items:baseline;text-align:left;padding:0 0 26px}
  .rail > li:last-child{padding-bottom:0}
  .rail .n{margin:0}
  .rail h4{margin:8px 0 4px}
}

/* --- ガイド一覧：サムネカードをやめ、罫線のテキストリストに --- */
.tguide{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2)}
.tguide > li{border-bottom:1px solid var(--line-2)}
.tguide a{
  display:grid;grid-template-columns:170px 1fr auto;gap:24px;align-items:baseline;
  padding:24px 4px;text-decoration:none;transition:background .18s,padding .18s
}
.tguide a:hover{background:var(--wash);padding-left:14px;padding-right:14px}
.tguide .cat{
  font-family:var(--serif);font-size:12px;
  letter-spacing:.14em;color:var(--gold);white-space:nowrap
}
.tguide .ttl{font-size:17px;color:var(--navy);line-height:1.6;word-break:auto-phrase}
.tguide .ttl em{
  display:block;margin-top:7px;font-style:normal;font-size:13.5px;color:var(--ink-2);
  line-height:1.9;font-weight:400;max-width:66ch
}
.tguide a:hover .ttl{text-decoration:underline;text-underline-offset:5px}
.tguide .go{color:var(--gold);font-size:15px}
@media (max-width:768px){
  .tguide a{grid-template-columns:1fr;gap:8px;padding:20px 4px}
  .tguide a:hover{padding-left:4px;padding-right:4px}
  .tguide .go{display:none}
}

/* =========================================================================
   v3.3 書体 — Cormorant Garamond を全廃（数字が旧体で読みにくいため）
   ・和文も欧文も数字も Shippori Mincho B1（--serif）に統一
   ・斜体は全面禁止。<em> <i> <cite> なども立体で表示する
   ・数字はライニング数字＋等幅数字を強制（桁が揃う）
   ========================================================================= */
em,i,cite,address,dfn,var,q,blockquote,figcaption{font-style:normal}
*{font-synthesis-style:none}
.figs b,.bignum,.orb-rate,.tlist .v,.tlist.val .v,.seq .n,.rail .n,.pull .mark,
.sim-table td,.sim-table th,.sim-table .yen,.orb-stat .v,.calc-row .v,.flow3 .fc .v,
.tnews .date,.cmp-when .d,.date,.period{
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1
}
/* 見出し内の強調（<em>）は斜体ではなく、金の下線で示す */
.honest h2 em,.claim h2 em{font-style:normal;position:relative;white-space:nowrap}
.honest h2 em::after{
  content:"";position:absolute;left:-.04em;right:-.04em;bottom:.08em;height:.32em;z-index:-1;
  background:linear-gradient(90deg,rgba(228,200,102,.34),rgba(228,200,102,.12))
}


/* --- 14px化でナビが詰まったための調整 --- */
.gnav{flex:0 0 max-content}
.gnav-item{flex:0 0 auto}
.gnav-btn{white-space:nowrap}
.bdg{width:132px}

/* --- LP：説明と比較表の2カラム（インラインstyleだとメディアクエリで戻せないためクラス化） --- */
.lp-split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center;margin-top:52px}
@media (max-width:900px){ .lp-split{grid-template-columns:1fr;gap:28px;margin-top:36px} }

/* --- 320px対策：グリッド子要素が min-content で押し広げられないように --- */
.claim .in > *,.lp-split > *,.split > *,.seq > li > *,.tlist > li > *,.two-col > *{min-width:0}
.tbl-wrap{max-width:100%}
/* 狭い端末では大見出しを詰める（文節が1行に入らずグリッドを広げてしまうため） */
@media (max-width:420px){
  .claim h2,.honest h2{font-size:22px;line-height:1.5}
  .claim .eyebrow,.honest .eyebrow{letter-spacing:.18em}
  .seq h3{font-size:19px}
}

/* --- 英字見出しが単語の途中で折れないように（COMBINATION→MBINATIO/N の防止） --- */
.sh .en,.ph .en,.exp-label,.eyebrow,.cmp-lbl,.gnav-btn .en,.tnav .en,.tguide .cat{
  word-break:keep-all;overflow-wrap:normal;hyphens:none
}
@media (max-width:600px){
  .sh .en{font-size:clamp(24px,7.4vw,32px)}
  .ph .en{font-size:clamp(26px,8vw,36px)}
}
@media (max-width:380px){
  .sh .en{font-size:23px}
  .ph .en{font-size:25px}
}

/* --- 説明会カード：背景画像に対応（キャラクター画像の置き換え） --- */
.event-img .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.42}
.event-img img{position:relative;z-index:1;height:56%}
/* ABOUTステージ：キャラクターを外したので石盤とオーブを主役に */
.stage .st-board{width:min(430px,46%)}
@media (max-width:980px){ .stage{padding:40px 24px 320px} .stage .st-board{width:min(330px,58%)} }

/* --- 14px化でメニューボタンの CLOSE がはみ出すため調整（タップ領域も拡大） --- */
.menu-btn{width:60px;height:60px}
.menu-btn .lbl{letter-spacing:.06em;white-space:nowrap;line-height:1}
/* メニュー項目：右の矢印と文字が接触しないよう余白を確保 */
.mnav-list a{padding-right:32px}

/* =========================================================================
   v3.5 KVスマホ：縦横比の固定をやめ、本文の量に合わせて高さを決める
   14px下限化で文字量が増え、固定比率のスライドから本文がはみ出して
   overflow:hidden に切られていたため。
   ========================================================================= */
@media (max-width:768px){
  .kv-slide{aspect-ratio:auto;min-height:0}
  .kv-slide > a{position:relative;inset:auto;display:block;min-height:270px}
  .kv-copy{
    position:relative;left:auto;top:auto;transform:none;width:auto;
    padding:24px 20px 96px;z-index:2
  }
  .kv-title{font-size:clamp(20px,5.6vw,27px)}
  .kv-sub{font-size:14px;margin-top:10px}
  /* 装飾は右下に小さく固定。本文の下余白で重なりを防ぐ */
  .kv-art,.kv-slide.kv-cmp .kv-art-3,.kv-art-3{
    position:absolute;right:10px;bottom:10px;left:auto;top:auto;transform:none;height:76px;gap:3px
  }
  .kv-art{height:88px}
  .kv-ctl{display:none}
}
@media (max-width:420px){
  .kv-slide{--slide-w:90vw;aspect-ratio:auto}
  .kv-copy{padding:20px 16px 88px}
  .kv-art,.kv-art-3,.kv-slide.kv-cmp .kv-art-3{height:64px}
}

/* --- KVスマホ：.kv-copy は <span> なので block 化しないと親の高さを押し上げない --- */
@media (max-width:768px){
  .kv-copy,.kv-slide.kv-cmp .kv-copy{
    display:block;position:relative;left:auto;right:auto;top:auto;bottom:auto;
    transform:none;width:auto;max-width:none
  }
  .kv-slide > a{min-height:0;padding:0}
  .kv-slide{min-height:250px}
}

/* --- KVスマホ：右下の装飾が本文の下余白を超えないよう高さを揃える --- */
@media (max-width:768px){
  .kv-copy{padding-bottom:104px}
  .kv-art,.kv-art-3,.kv-slide.kv-cmp .kv-art-3{height:72px;bottom:12px}
}
@media (max-width:420px){
  .kv-copy{padding-bottom:94px}
  .kv-art,.kv-art-3,.kv-slide.kv-cmp .kv-art-3{height:62px;bottom:10px}
}
/* KVアート個別調整（インラインstyleだとメディアクエリで上書きできないためクラス化） */
.kv-art.kv-art-sm{height:78%;right:9%;opacity:.92}
.kv-art.kv-art-tall{height:96%;right:12%}
@media (max-width:768px){
  .kv-art.kv-art-sm,.kv-art.kv-art-tall{height:72px;right:10px;left:auto;top:auto;bottom:12px;transform:none}
}
@media (max-width:420px){
  .kv-art.kv-art-sm,.kv-art.kv-art-tall{height:62px;bottom:10px}
}

/* =========================================================================
   v3.6 書体の使い分け
   ・見出し／ボタン／バッジ／大きな数字 … Shippori Mincho B1（明朝）
   ・本文 … Noto Sans JP（ゴシック）
   ========================================================================= */
h1,h2,h3,h4,h5,h6,
.display,.kv-title,.kv-tag,.kv-btn,.exp-h,.exp-label,
.sh .en,.sh .ja,.sh2,.ph .en,.ph .ja,
.claim h2,.claim .eyebrow,.honest h2,.honest .eyebrow,.eyebrow,
.btn,.bdg,.gnav-btn .ja,.gnav-btn .en,.menu-btn .lbl,.mnav-title .en,.mnav-title .ja,
.slab-head,.band,.pill,.cmp-lbl,.cmp-chip,.cmp-when .d,.cmp-when .t,.cmp h3,
.bignum,.orb-rate,.orb-en,.orb-name,.figs b,.tlist .n,.tlist .v,.tlist h4,
.seq .n,.seq h3,.seq .meta,.rail .n,.rail h4,.tnav .en,.tnav b,.tguide .cat,.tguide .ttl,
.tnews .date,.tnews .cat,.tnews .ttl,.st-t1,.st-t2,.belt-lbl,.ev-lbl,.gc-tag,.gtag,
.faq-q,.faq-cat,.numlabel,.article-meta,.tldr h4,.risk-box h3,.risk-list .rn,
.sim-table thead th,.sim-table .yen,.orb-stat .v,.calc-row .v,.flow3 .fc .k,.flow3 .fc h4,.flow3 .fc .v,
.date,.period,.cat,.role,.n .k,.rn,.num,.cnt,.si,.mn-tile .en,.tile .en,.rb small,.rb b,.bb b{
  font-family:var(--serif)
}
/* 本文まわりは明示的にゴシックへ戻す（見出しセレクタに巻き込まれた要素の保険） */
p,li,dd,dt,td,th,figcaption,label,input,textarea,select,
.lead,.sh-lead,.ph-lead,.disclaimer,.faq-a,.faq-a .inner,.prose p,.prose li,
.tlist p,.seq p,.rail .t,.tnav span,.tguide .ttl em,.spark li,.cmp p,.cmp-note,
.step p,.card p,.orb-desc,.orb-rate-k,.orb-stat .k,.calc-row .k,.exp-p,.ni-title,
.belt-note,.meta,.notice p,.callout,.callout-bar,.mnav-list a,.gnav-sub a,.ft-col a,.ft-col li{
  font-family:var(--sans)
}
/* 数字は明朝でも桁を揃える */
.sim-table td,.sim-table th,.orb-stat .v,.calc-row .v,.bignum,.orb-rate,.figs b,.tlist .v,.tnews .date{
  font-variant-numeric:lining-nums tabular-nums
}
/* ゴシック本文は行間と字送りを少しだけ調整 */
.lead,.prose p,.tlist p,.seq p,.claim p,.honest p{line-height:2.0}

/* --- ロゴ（横長ワードマーク） --- */
.hd-logo img{height:auto;width:clamp(150px,15vw,208px);display:block}
.mnav-logo img{height:auto;width:200px;display:block}
.ft .logo img,.ft-logo img{height:auto;width:190px;display:block}
@media (max-width:980px){ .hd-logo img{width:150px} }
@media (max-width:420px){ .hd-logo img{width:132px} .mnav-logo img{width:168px} }

/* ===== 説明会：浮遊オーブ＋開催予定 ===== */
.event-img .ev-orbs{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:5%;width:78%}
.event-img .ev-orbs img{position:static;height:auto;width:30%;filter:drop-shadow(0 16px 26px rgba(0,0,0,.55))}
.event-img .ev-orbs img:nth-child(1){animation:floatSlow 6s ease-in-out infinite}
.event-img .ev-orbs img:nth-child(2){animation:floatSlow 6.8s ease-in-out infinite .5s;width:36%}
.event-img .ev-orbs img:nth-child(3){animation:floatSlow 6.4s ease-in-out infinite 1s}
.sched{border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:12px;padding:18px 22px;margin:0 0 22px}
.sched-h{margin:0 0 12px!important;font-size:13px;font-weight:700;color:var(--navy);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sched-h small{font-size:11.5px;font-weight:400;color:var(--ink-3)}
.sched-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sched-list li{display:flex;align-items:baseline;gap:14px;font-size:14px;border-top:1px solid var(--gold-line);padding-top:8px}
.sched-list li:first-child{border-top:0;padding-top:0}
.sched-list .d{flex:0 0 6.5em;color:var(--ink-2);font-size:13px}
.sched-list .t{font-weight:700;color:var(--navy);white-space:nowrap}
.sched-note{margin:12px 0 0!important;font-size:11.5px;color:var(--ink-3);line-height:1.7}
@media (max-width:420px){ .sched-list li{flex-direction:column;gap:2px} .sched-list .d{flex:none} }

/* ===== お知らせ：サムネ廃止・オーブ＋タイトルの一覧 ===== */
.news-list.rows,.news-grid.rows{display:flex!important;flex-direction:column;gap:0;grid-template-columns:none!important}
.news-list.rows .ni,.news-grid.rows .ni{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  padding:20px 4px;border-top:1px solid var(--line);background:transparent;border-radius:0;box-shadow:none;text-decoration:none;transition:background .2s ease}
.news-list.rows .ni:first-child,.news-grid.rows .ni:first-child{border-top:0}
.news-list.rows .ni:hover,.news-grid.rows .ni:hover{background:var(--wash)}
.news-list.rows .ni.hide,.news-grid.rows .ni.hide{display:none}
.rows .ni-orb{flex:0 0 auto;width:42px;height:42px;display:flex;align-items:center;justify-content:center}
.rows .ni-orb img{width:100%;height:auto;filter:drop-shadow(0 5px 10px rgba(0,0,0,.22))}
.rows .ni-body{min-width:0;display:flex;flex-direction:column;gap:6px}
.rows .ni-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.rows .ni-title{margin:0;font-size:15px;line-height:1.65;color:var(--ink);font-weight:700;word-break:auto-phrase}
.rows .ni:hover .ni-title{color:var(--navy)}
.rows .go{color:var(--gold);font-size:16px}
@media (max-width:768px){
  .news-list.rows .ni,.news-grid.rows .ni{gap:14px;padding:16px 2px}
  .rows .ni-orb{width:34px;height:34px}
  .rows .ni-title{font-size:14px}
  .rows .go{display:none}
}

/* =========================================================================
   v3.7 KVスマホ：装飾を「右下の豆粒」から「下部の帯」へ
   これまで 62〜72px に縮めて右下へ逃がしていたため、スライド下半分が空き、
   チケット・スマホモックなどが切れて見えていた。本文の下に余白を確保し、
   中央に実寸で置く（float は translateY のみなので margin:auto の中央寄せと共存する）。
   ========================================================================= */
@media (max-width:768px){
  .kv-copy,.kv-slide.kv-cmp .kv-copy{padding-bottom:150px}
  .kv-art,.kv-art.kv-art-sm,.kv-art.kv-art-tall{
    position:absolute;left:0;right:0;top:auto;bottom:10px;margin:0 auto;
    height:132px;width:auto;max-width:78%;object-fit:contain;transform:none;opacity:1
  }
  .kv-art-3,.kv-slide.kv-cmp .kv-art-3{
    position:absolute;left:0;right:0;top:auto;bottom:14px;transform:none;
    height:112px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px
  }
  .kv-art-3 img,.kv-art-3 img:nth-child(2){height:100%;width:auto}
}
@media (max-width:420px){
  .kv-copy,.kv-slide.kv-cmp .kv-copy{padding-bottom:132px}
  .kv-art,.kv-art.kv-art-sm,.kv-art.kv-art-tall{height:114px;bottom:8px}
  .kv-art-3,.kv-slide.kv-cmp .kv-art-3{height:96px;bottom:12px;gap:8px}
}
/* KVスマホ：スライドは flex で高さが揃うが <a> が伸びず、下端に背景の抜けが出ていた */
@media (max-width:768px){
  .kv-slide{display:flex;flex-direction:column}
  .kv-slide > a{flex:1 1 auto;display:block}
}

/* =========================================================================
   v3.8 デザインレビュー対応（致命傷 D〜H）
   ========================================================================= */

/* --- E. 見出しの主従を反転：日本語を主・英語を eyebrow に --- */
.ph .en,.sh .en{
  display:block;font-family:var(--serif);font-size:12px;letter-spacing:.2em;
  font-weight:700;line-height:1.5;color:#856616;text-transform:uppercase
}
.ph .ja{
  display:block;font-size:clamp(26px,3.6vw,40px);font-weight:800;color:var(--navy);
  line-height:1.34;margin-top:10px;transform:none;padding:0
}
.sh .ja{
  display:block;font-size:clamp(24px,3.1vw,36px);font-weight:700;color:var(--navy);
  line-height:1.4;margin-top:8px;transform:none;padding:0
}
.ph .ja::before,.ph .ja::after,.sh .ja::before,.sh .ja::after{display:none}
.sh.white .en{color:var(--gold-light)}.sh.white .ja{color:#fff}
.ph-lead,.sh-lead{font-size:16px;line-height:1.8}
.exp-label{font-size:12px;letter-spacing:.2em;font-weight:700;color:#856616;font-family:var(--serif)}
.exp-h{font-size:clamp(20px,2.2vw,28px);font-weight:700;line-height:1.45}
@media (max-width:768px){
  .ph .ja{font-size:26px}
  .sh .ja{font-size:24px}
  .ph .en,.sh .en{font-size:11px;letter-spacing:.16em}
  .exp-h{font-size:20px}
}

/* --- D-1. ヘッダーは隠さない。MENUボタンはヘッダー内へ（本文を隠していた） --- */
.hd.is-hide{transform:none!important}
@media (max-width:980px){
  /* menu-btn は <header> の兄弟要素なので fixed のまま。ヘッダーを隠さなくしたので
     ヘッダー帯の中に収まり、本文には重ならない。 */
  .menu-btn{
    position:fixed;top:calc((var(--hd) - 44px) / 2);right:12px;transform:none;
    width:44px;height:44px;border-radius:8px;z-index:120
  }
  .hd{position:fixed;transform:none!important}
  .hd-in{padding-right:68px}
}

/* --- D-2. スティッキーバーは600px以降だけ。法務ページでは出さない --- */
@media (max-width:768px){
  .sticky-bar{transform:translateY(100%);transition:transform .28s ease;will-change:transform}
  body.is-scrolled-600 .sticky-bar{transform:translateY(0)}
  body.no-sticky .sticky-bar{display:none}
  body{padding-bottom:calc(73px + env(safe-area-inset-bottom,0px))}
  body.no-sticky{padding-bottom:0}
}

/* --- D-3. トップ #about：SPで装飾オーブが見出し・本文に被る --- */
@media (max-width:980px){
  .stage .st-orb{display:none!important}
  .st-badge{
    position:static!important;transform:none!important;
    width:88px;height:88px;font-size:11px
  }
  .st-badge.b3{display:flex!important}
  .stage{display:flex;flex-direction:column;align-items:center;height:auto;padding:40px 20px 44px}
  .st-copy{order:1;width:100%}
  .st-board{order:2;position:static;width:60%;margin:24px auto 0}
  .st-badges-row{order:3;display:flex;gap:12px;justify-content:center;margin-top:24px}
}

/* --- F. テーブルがSPで切れる --- */
.tbl,.sim-table{table-layout:fixed;width:100%}
.tbl th{width:170px;white-space:nowrap}
.tbl td,.tbl th{word-break:normal;overflow-wrap:anywhere}
@media (max-width:768px){
  .tbl th{width:96px;white-space:normal;font-size:13px}
  .tbl td{font-size:14px}
  .tbl-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .tbl-wrap::after{
    content:"";position:sticky;right:0;top:0;float:right;width:24px;height:100%;
    background:linear-gradient(to left,#fff,transparent);pointer-events:none
  }
  .scroll-hint{display:block;font-size:12px;color:var(--ink-3);margin:0 0 8px}
}
.scroll-hint{display:none}

/* --- G. LINEボタンの文字色（親から淡色を継承して 1.13:1 になっていた） --- */
.btn-line{color:#fff!important;font-weight:700}
.line-banner .btn-line{background:#fff;color:#0B3D1F!important;border:2px solid #06C755}

/* --- H. 右下フローティングの画像が文字に被る --- */
.fbadge img{width:64px;height:64px;position:absolute;left:-8px;top:-8px;z-index:1}
.fbadge .tag{z-index:2;position:relative}
.fbadge > a,.fbadge .fb-body{padding-left:72px;position:relative;z-index:2}
@media (max-width:768px){ .fbadge{display:none!important} }

/* --- 11. 注記が小さすぎる（法的注記は13px以上） --- */
.kv-note,.cmp-note,.belt-note,.ft-note,.disclaimer{font-size:13px;line-height:1.7}
.cmp .cmp-note{color:rgba(255,255,255,.85)}
@media (max-width:768px){
  .kv-note,.cmp-note,.belt-note,.ft-note,.disclaimer{font-size:12px}
}

/* --- 7. SP本文の改行：auto-phrase は見出しだけに --- */
@media (max-width:600px){
  p,li,td,th,dd,dt,.faq-a .inner{word-break:normal}
}
/* 「まずはここだけ」のポイント枠（パンドラ流の要点提示） */
.claim-point{
  margin-top:22px;padding:14px 18px;border-left:3px solid var(--gold-bright);
  background:var(--gold-soft);border-radius:0 8px 8px 0;
  font-size:15px;line-height:1.8;color:var(--ink)
}
.claim-point strong{color:var(--navy)}
/* STEPバッジ：PCは従来どおり絶対配置、SPは本文下に横1列 */
.st-badges-row{display:contents}
@media (max-width:980px){
  .st-badges-row{display:flex;gap:12px;justify-content:center;order:3;margin-top:24px;width:100%}
}
/* F-2. SPでは定義表を縦積みに（96px列だと「販売事業/者」のように2文字で折れる） */
@media (max-width:600px){
  .tbl,.tbl tbody,.tbl tr,.tbl th,.tbl td{display:block;width:auto!important}
  .tbl tr{border-bottom:1px solid var(--line)}
  .tbl tr:last-child{border-bottom:0}
  .tbl th{
    background:var(--wash);padding:9px 14px;font-size:12.5px;font-weight:700;
    color:var(--navy);text-align:left;border:0;white-space:normal
  }
  .tbl td{padding:12px 14px 16px;border:0;font-size:14px;line-height:1.85}
  .tbl-wrap{overflow-x:visible}
  .tbl-wrap::after{display:none}
}

/* --- B. キャンペーン帯（KV上）とカルーセルの弱点対策 --- */
.cmp-strip{
  display:flex;align-items:center;justify-content:center;gap:14px;
  height:44px;background:var(--navy);color:var(--gold-light);
  font-size:14px;font-weight:700;text-decoration:none;letter-spacing:.02em;
  margin-top:var(--hd);position:relative;z-index:5
}
.cmp-strip .l{font-family:var(--serif);font-size:11.5px;letter-spacing:.2em}
.cmp-strip .go{font-size:11px}

.cmp-strip:hover{background:#16264a}
body:has(.cmp-strip) .kv{padding-top:28px}
@media (max-width:768px){
  .cmp-strip{height:40px;font-size:12px;gap:8px;padding:0 12px;white-space:nowrap;overflow:hidden}
  .cmp-strip .l{font-size:10px;letter-spacing:.14em}
}
/* 隣接スライドの「灰色の板」をやめる */
.kv-slide:not(.active){opacity:1;filter:brightness(.42);transform:scale(.94);transition:filter .5s ease,transform .5s ease}
.kv-slide.active{filter:none;transform:none}
.kv-pause{
  position:absolute;right:16px;bottom:16px;width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(255,255,255,.4);background:rgba(10,18,34,.55);color:#fff;
  font-size:11px;line-height:1;cursor:pointer;z-index:6;display:flex;align-items:center;justify-content:center
}
.kv-pause:hover{background:rgba(10,18,34,.85)}
@media (max-width:768px){ .kv-pause{right:10px;bottom:10px;width:28px;height:28px;font-size:10px} }
/* 3連オーブは見出しに被るので、右下に寄せて小さく（従来 kv-cmp だけの調整を全スライドへ） */
@media (min-width:769px){
  .kv-art-3{right:3%;top:auto;bottom:7%;transform:none;height:50%;gap:1.5%}
  .kv-art-3 img,.kv-art-3 img:nth-child(2){height:100%}
  .kv-art-3 img{filter:drop-shadow(0 14px 26px rgba(0,0,0,.62))}
  .kv-slide:has(.kv-art-3) .kv-grad{
    background:linear-gradient(100deg,rgba(8,15,28,.96) 0%,rgba(14,27,51,.92) 42%,rgba(20,36,66,.70) 68%,rgba(30,50,90,.30) 100%)
  }
  .kv-slide.s-gold:has(.kv-art-3) .kv-grad{
    background:linear-gradient(100deg,rgba(18,13,2,.97) 0%,rgba(40,30,5,.93) 42%,rgba(74,55,10,.72) 68%,rgba(120,90,20,.30) 100%)
  }
  .kv-slide:has(.kv-art-3) .kv-copy{width:56%}
}

/* --- 5. 数字の図解（3枚カード） --- */
.calc3{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:14px;align-items:stretch;margin-top:44px}
.calc3 .cc{background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:26px 22px;text-align:center;box-shadow:var(--shadow-sm)}
.calc3 .cc.hi{border-color:var(--gold-line);background:var(--gold-soft)}
.calc3 .k{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.18em;font-weight:700;color:#856616}
.calc3 .v{font-family:var(--serif);font-weight:700;font-size:clamp(28px,3.4vw,38px);color:var(--navy);line-height:1.1;margin:10px 0 8px;white-space:nowrap}
.calc3 .cc.hi .v{color:var(--gold)}
.calc3 .v small{font-size:14px;font-weight:700;margin-left:3px}
.calc3 .s{display:block;font-size:12.5px;color:var(--ink-2);line-height:1.65}
.calc3 .ar{display:flex;align-items:center;color:var(--gold);font-size:20px}
@media (max-width:768px){
  .calc3{grid-template-columns:1fr;gap:10px}
  .calc3 .ar{justify-content:center;transform:rotate(90deg)}
}

/* --- 1/2. CTAの主従：主＝金（登録）／副＝白地・緑枠（LINE） --- */
.btn-line2{background:#fff;color:#0B3D1F;border:2px solid #06C755;font-weight:700}
.btn-line2:hover{background:#06C755;color:#fff}
.btn-line2.on-dark{background:transparent;color:#fff;border-color:#06C755}
.btn-line2.on-dark:hover{background:#06C755;color:#fff}
.midcta{margin-top:52px;padding:30px 32px;background:#fff;border:1px solid var(--gold-line);border-radius:var(--r-lg);text-align:center}
.midcta p{margin:0 0 18px;font-size:17px;font-weight:700;color:var(--navy)}
.midcta .row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
@media (max-width:768px){ .midcta{padding:24px 20px} .midcta .row .btn{width:100%} }

/* --- 16. exp を2列カードグリッドに（縦積み2,187px → 圧縮） --- */
.exp-list.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.exp-list.grid2 .exp-item{display:block;grid-template-columns:none;gap:0;background:#fff;border:1px solid var(--line-2);border-radius:12px;overflow:hidden;transition:border-color .2s,transform .2s}
.exp-list.grid2 .exp-item:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.exp-list.grid2 .exp-thumb{aspect-ratio:auto;height:150px;border-radius:0}
.exp-list.grid2 .exp-item > div:last-child{padding:22px 24px 26px}
.exp-list.grid2 .exp-h{font-size:20px;margin:8px 0 10px}
.exp-list.grid2 .exp-p{font-size:14px;line-height:1.8}
.exp-list.grid2 .btn{margin-top:14px}
@media (max-width:768px){ .exp-list.grid2{grid-template-columns:1fr} .exp-list.grid2 .exp-thumb{height:130px} }

/* --- 19. 4カードにリンク感（矢印＋hover） --- */
.tnav a{position:relative;transition:border-color .2s,transform .2s}
.tnav a::after{content:"→";position:absolute;right:20px;bottom:18px;color:var(--gold);font-size:16px}
.tnav a:hover{border-color:var(--gold-bright);transform:translateY(-2px)}

/* --- 17. ヘッダーCTAの平行四辺形をやめて角丸に --- */
.bdg::before{transform:none;border-radius:6px}
.bdg{border-radius:6px}
/* 活用ガイド：記事と既存ページの区別 */
.gc-badge{
  display:inline-block;margin-left:10px;padding:2px 8px;border-radius:3px;
  border:1px solid var(--gold-line);background:var(--gold-soft);
  font-size:11px;font-weight:700;color:#856616;white-space:nowrap;vertical-align:2px
}

/* --- 13. 「次に読む」タイル --- */
.mn-tile.is-next{border-color:var(--gold-bright);background:var(--gold-soft)}
.mn-tile.is-next::before{content:"次に読む";position:absolute;top:8px;left:10px;font-size:10.5px;font-weight:700;color:#856616;letter-spacing:.1em}
.mn-tile{position:relative}

/* --- 21. 利用規約の目次 --- */
.terms-toc{border:1px solid var(--line-2);border-radius:12px;padding:20px 24px;margin:0 0 32px;background:var(--wash)}
.terms-toc b{display:block;font-size:14px;color:var(--navy);margin-bottom:10px}
.terms-toc ol{margin:0;padding-left:1.4em;columns:2;column-gap:28px}
.terms-toc li{font-size:14px;line-height:2;break-inside:avoid}
.terms-toc a{color:var(--ink-2);text-decoration:none}
.terms-toc a:hover{color:var(--gold);text-decoration:underline}
@media (max-width:768px){ .terms-toc ol{columns:1} }

/* --- 運営会社ブロック --- */
.orgcard{background:#fff;border:1px solid var(--gold-line);border-radius:var(--r-lg);padding:32px 34px}
.orgcard h3{margin:0 0 18px;font-size:24px;color:var(--navy)}
.orgcard dl{display:grid;grid-template-columns:96px 1fr;gap:8px 16px;margin:0 0 18px;font-size:15px}
.orgcard dt{color:var(--ink-2);font-size:13px;padding-top:2px}
.orgcard dd{margin:0;color:var(--ink)}
.org-note{font-size:13px;color:var(--ink-3);margin:0 0 20px}

/* --- ページ内タブ：SPは1行横スクロール（3段折り返しになっていた） --- */
@media (max-width:768px){
  .ptabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-bottom:6px;
    justify-content:flex-start;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .ptabs::-webkit-scrollbar{display:none}
  .ptabs a{flex:0 0 auto;height:40px;display:inline-flex;align-items:center}
}

/* --- 18. 余白リズムと行間 --- */
section.sec{padding:120px 0}
section.sec.tight{padding:80px 0}
p,li,dd{line-height:1.8}
@media (max-width:768px){
  section.sec{padding:64px 0}
  section.sec.tight{padding:44px 0}
}

/* =========================================================================
   v3.9 レビュー §6 の細部
   ========================================================================= */

/* 6-17. /how-to-start/ タイムライン：.t が1列目(38px)に落ちて2文字ずつ折れていた */
@media (max-width:900px){
  .rail > li h4,.rail > li .t{grid-column:2}
  .rail > li{align-items:start}
  .rail h4{font-size:16px;font-weight:700;margin:8px 0 4px}
  .rail .t{font-size:13px;color:var(--ink-3)}
  .rail{--rail-line:#D9CFB9}
}

/* 6-0. アクセシビリティ・操作性 */
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
.btn{min-height:48px}
@media (max-width:768px){ .btn{min-height:52px} }
:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}

/* 6-1. ヘッダーを低く／ナビは日本語を主に */
.hd{height:64px;--hd:64px}
:root{--hd:64px}
.gnav-btn .ja{font-size:14px;font-weight:700;color:var(--navy);order:1}
.gnav-btn .en{font-size:10px;font-weight:400;color:var(--ink-3);letter-spacing:.15em;order:2}
.gnav-btn{display:flex;flex-direction:column;align-items:center;gap:1px}
.hd.is-scrolled{box-shadow:0 1px 0 rgba(14,27,51,.08)}
@media (max-width:980px){ :root{--hd:56px} .hd{height:56px} }

/* 6-7. RISK の可読性 */
.honest .tlist .n{font-size:16px;color:var(--gold-light);opacity:1}
.honest .tlist h4{font-size:18px;font-weight:700}
.honest .tlist p{font-size:16px}
.honest .risk-close{border-left:3px solid var(--gold-bright);padding-left:16px}

/* 6-13. フッター */
.ft-note{font-size:13px;line-height:1.7}
.ft-cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ft-cols .ttl,.ft-cols h4{font-size:12px;white-space:nowrap}

/* 6-12/6-19. 画像の空箱対策（読み込み中の下地） */
.exp-thumb,.gthumb,.ni-thumb,.event-img,.split .media{background-image:linear-gradient(160deg,#F8F3E8,#EFE7D3)}

/* 6-16. /about/ 5つの特徴を2列グリッドに */
.featlist{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;list-style:none;margin:0;padding:0}
.featlist li{display:block;background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:22px 24px}
.featlist h4{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--navy)}
.featlist p{margin:0;font-size:14px;line-height:1.8;color:var(--ink-2)}
@media (max-width:768px){ .featlist{grid-template-columns:1fr} }

/* 6-21. FAQ の当たり判定を広く */
.faq-q{min-height:56px;display:flex;align-items:center}
/* 6-19. 値上げ率キャプション（数字の直下・非保証を併記） */
.orb-rate-k{margin:8px 0 0;font-size:13px;font-weight:700;color:var(--ink-2);line-height:1.7}
.orb-rate-k span{display:block;font-weight:400;font-size:12px;color:var(--ink-3);margin-top:2px}
/* 初期状態で開いているFAQは、JSを待たずCSSでも開いた状態にする */

/* =========================================================================
   v4.0 再レビュー対応
   ========================================================================= */

/* §2 float アニメが transform を丸ごと上書きしていた対策の総仕上げ
   （.kv-art は centering を transform から外したので float をそのまま使える） */
.kv-art.float{animation:float 5s ease-in-out infinite}

/* §1 ヘッダーのナビだけ上詰めになっていた（親が stretch） */
.gnav{align-items:center}
.gnav-btn{display:flex;flex-direction:column;justify-content:center;gap:6px;height:var(--hd)}

/* §4 右下ポップアップ：タグを出さず、幅を広げて改行を解消 */
.fbadge{width:290px}
.fbadge .tag{display:none}
.fbadge a b{font-size:14px}
.fbadge img{left:-4px;top:-4px}

/* §5 /partner/ の横スクロール80px：ph-mark が nowrap で440pxになっていた */
.ph-mark{display:inline;white-space:normal;word-break:break-word;overflow-wrap:anywhere;max-width:100%}

/* §10 12px未満の文字をなくす */
.disclaimer,.meta,.orb-rate-k span,.gc-badge,.cmp-strip .l,.tnews .date,.tnews .cat,
.ni-meta .cat,.ni-meta .date,.calc3 .k,.sched-note,.org-note,.numlabel{font-size:12px}
@media (max-width:768px){ .disclaimer,.meta,.sched-note{font-size:12px} }

/* 検証時と本番の差をなくす（アニメ有無で崩れ方が変わる事故の防止） */
html.noanim *,html.noanim *::before,html.noanim *::after{animation:none!important}
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important} }

/* §8 SPでは比較表を縦カードに（15セルが枠を超え、スクロールしても読み切れなかった） */
@media (max-width:600px){
  .sim-table.cmp-tbl thead{display:none}
  .sim-table.cmp-tbl,.sim-table.cmp-tbl tbody,.sim-table.cmp-tbl tr,.sim-table.cmp-tbl td{display:block;width:auto}
  .sim-table.cmp-tbl tr{border:1px solid var(--line-2);border-radius:12px;padding:14px 16px;margin-bottom:12px;background:#fff}
  .sim-table.cmp-tbl td{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    padding:9px 0;border-bottom:1px dashed rgba(20,26,36,.10);font-size:14px;text-align:right
  }
  .sim-table.cmp-tbl td::before{
    content:attr(data-label);color:var(--ink-3);font-size:12px;text-align:left;
    flex:0 0 auto;font-weight:700;white-space:nowrap
  }
  .sim-table.cmp-tbl td:last-child{border-bottom:0}
  .sim-table.cmp-tbl td:first-child{
    font-weight:700;color:var(--navy);font-size:16px;justify-content:flex-start;
    border-bottom:1px solid var(--line-2);padding-bottom:10px;margin-bottom:4px
  }
  .sim-table.cmp-tbl td:first-child::before{display:none}
  .sim-table.cmp-tbl .col-gold{background:transparent}
}
/* 比較表：PCは横スクロール可、SPはカード化（.cmp-tbl 側で切替） */
.cmp-card{overflow-x:auto;position:relative}
@media (min-width:601px){
  .cmp-card .cmp-tbl{table-layout:auto;min-width:900px}
  .cmp-card .cmp-tbl th,.cmp-card .cmp-tbl td{white-space:nowrap}
}
@media (max-width:600px){ .cmp-card{overflow-x:visible} .scroll-hint{display:none} }
/* §10 12px未満の文字をなくす（本文・ラベル・リンク） */
.exp-label,.eyebrow,.cmp-lbl,.gc-badge,.sh .en,.ph .en,.tnav .en,.tguide .cat,
.mn-tile .en,.ft-cols .en,.ni-meta .cat,.ni-meta .date,.tnews .cat,.tnews .date,
.gc-tag,.gtag,.article-meta,.back-link,.ft a,.ft-legal a,.mnav-legal a,
.sim-table td small,.calc-row small,.orb-stat small,.bignum small,
.sched-h small,.bdg small,.step .n,.rail .t{font-size:12px!important}
.gnav-btn .en{font-size:11px!important}
.menu-btn .lbl{font-size:10px!important}
/* フッターのナビ見出し・著作権表記も12pxに */
.ft-cols .en,.ft-cols .ja,.ft .copy,.ft .tagline,.ft-note,.ft small,.ft span{font-size:12px}
.claim-lines{list-style:none;margin:0;padding:0}
.claim-lines li{position:relative;padding-left:26px;margin-bottom:12px;font-size:16px;line-height:1.8}
.claim-lines li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--gold-bright)}
.claim-lines li:last-child{margin-bottom:0}
/* §6 KVの見出しと装飾画像が263〜300px重なっていた → 2カラムに分離 */
@media (min-width:769px){
  .kv-copy,.kv-slide.kv-cmp .kv-copy,.kv-slide:has(.kv-art-3) .kv-copy{left:6%;width:48%}
  .kv-art{right:3%;max-width:40%;height:78%;object-fit:contain}
  .kv-art-3,.kv-slide.kv-cmp .kv-art-3{right:3%;width:40%;max-width:40%;justify-content:flex-end;height:46%}
  .kv-art-3 img,.kv-art-3 img:nth-child(2){height:100%;width:auto;max-width:31%;object-fit:contain}
}

/* =========================================================================
   v4.1 照合レポート対応
   ========================================================================= */

/* 2. 説明会カードの高さ差191px（画像列が aspect-ratio に固定され本文列に追随しない） */
.event-card{align-items:stretch}
.event-img{aspect-ratio:auto;height:100%;min-height:339px}
@media (max-width:768px){ .event-img{aspect-ratio:16/9;height:auto;min-height:0} }

/* 3. チケット画像が縦に4%伸びる（height:78% と max-width:100% の競合） */
.split .media img{height:auto;width:auto;max-height:78%;max-width:88%;object-fit:contain}

/* 4. 説明会カードのオーブが左右14pxはみ出す（96%+gap10%=106%） */
.event-img .ev-orbs img{width:28%}
.event-img .ev-orbs img:nth-child(2){width:34%}

/* 5. expサムネの背景写真が縦52%切り落とし（2列グリッド化で 3.75:1 になっていた） */
.exp-list.grid2 .exp-thumb{aspect-ratio:16/9;height:auto}

/* 6. 石盤3枚の下端が10pxずれる（元画像の縦横比がばらばら） */
.grid.g-3 .card > img{width:140px;height:140px;object-fit:contain;display:block;margin:4px auto 14px}

/* 7. アンカーピルが右で切れているのに、スクロールできる手がかりがない */
.ptabs{position:relative}
@media (max-width:768px){
  .ptabs::after{
    content:"";position:sticky;right:0;top:0;flex:0 0 28px;align-self:stretch;
    background:linear-gradient(to left,var(--ground),transparent);pointer-events:none;margin-left:-28px
  }
  .tint .ptabs::after,.ph .ptabs::after{background:linear-gradient(to left,var(--wash),transparent)}
}

/* 12px未満の文字をSPで12pxに */
@media (max-width:768px){
  .disclaimer,.meta,.note,.ph-mark,.sim-table small,.calc3 .s,.numlabel,
  .risk-list b + *,.tbl td small,.tbl th small,small{font-size:12px}
}
/* 6. 石盤3枚：元画像の縦横比がばらばらなので枠を固定して下端を揃える */
.slab-fig{width:140px;height:140px;object-fit:contain;display:block;margin:4px auto 14px}
/* SPは12pxを下限に（英字ラベルも例外にしない） */
@media (max-width:768px){
  .en,.ja,.cat,.date,.tag,.lbl,figcaption,small,sub,sup{font-size:12px}
  .menu-btn .lbl{font-size:10px}   /* ボタンの装飾ラベルのみ例外 */
}
/* 残りの11px未満（KVタグ・NEWバッジ・ONLINEラベル・注記・矢印）をSPで12pxに */
@media (max-width:768px){
  .kv-tag,.new,.ev-lbl,.cmp-note,.go,.chk,.soon,.pill{font-size:12px}
}
/* 最終：SPで12px未満を残さない（記号グリフを含む） */
@media (max-width:768px){
  .cmp .cmp-note,.cmp-note,.go,.arw,.kv-pause,.sim-table small,.calc-row small,
  .flow3 .fc .v small,.bignum small,.orb-stat .v small,.ev-lbl,.chk{font-size:12px}
}
/* /partner/ の残り2セル（9px溢れ）：長い値は折り返す */
.sim-table td,.sim-table th{word-break:normal;overflow-wrap:anywhere}

/* =========================================================================
   v4.2 案内役の猫（マスコット）
   ========================================================================= */
.catguide{
  display:grid;grid-template-columns:180px 1fr;gap:28px;align-items:center;
  background:#fff;border:1px solid var(--gold-line);border-radius:var(--r-lg);padding:28px 32px
}
.catguide .cg-cat{width:180px;height:auto;display:block;filter:drop-shadow(0 12px 22px rgba(20,26,36,.16))}
.cg-say{margin:0 0 6px;font-size:18px;font-weight:700;color:var(--navy);line-height:1.6}
.cg-sub{margin:0 0 18px;font-size:14px;color:var(--ink-2);line-height:1.8}
.cg-row{display:flex;gap:14px;flex-wrap:wrap}
@media (max-width:768px){
  .catguide{grid-template-columns:1fr;gap:14px;text-align:center;padding:24px 20px}
  .catguide .cg-cat{width:132px;margin:0 auto}
  .cg-row{justify-content:center}
  .cg-row .btn{width:100%}
}
/* セクション見出しの脇に立つ小さな案内役 */
.cat-peek{position:absolute;right:0;bottom:0;width:120px;height:auto;pointer-events:none;
  filter:drop-shadow(0 10px 18px rgba(20,26,36,.18))}
.has-cat{position:relative}
@media (max-width:768px){ .cat-peek{width:84px} }
/* フロートバッジの猫 */
.fbadge img{width:74px;height:auto;left:-10px;top:-14px}
/* KV見出しが「を、」だけで折れるので、コピー列を少し広げ文字を詰める */
@media (min-width:769px){
  .kv-copy,.kv-slide.kv-cmp .kv-copy,.kv-slide:has(.kv-art-3) .kv-copy{width:53%}
  .kv-art-3,.kv-slide.kv-cmp .kv-art-3{width:36%;max-width:36%}
  .kv-title{font-size:clamp(20px,3vw,38px)}
}

/* 石盤カード：1オーブはオーブ単体、2オーブは2つ並べる */
.slab-fig.one{width:104px;height:104px;object-fit:contain;display:block;margin:16px auto 20px}
.slab-fig.two{display:flex;gap:8px;justify-content:center;align-items:center;margin:16px auto 20px;height:104px}
.slab-fig.two img{width:88px;height:88px;object-fit:contain}

/* 中盤CTA：猫を本文に被せず、横に並べる */
.midcta.with-cat{display:grid;grid-template-columns:150px 1fr;gap:26px;align-items:center;text-align:left}
.midcta.with-cat .cat-side{width:150px;height:auto;display:block;filter:drop-shadow(0 12px 22px rgba(20,26,36,.16))}
.midcta.with-cat p{margin:0 0 16px}
.midcta.with-cat .row{justify-content:flex-start}
@media (max-width:768px){
  .midcta.with-cat{grid-template-columns:1fr;text-align:center;gap:12px}
  .midcta.with-cat .cat-side{width:118px;margin:0 auto}
  .midcta.with-cat .row{justify-content:center}
}
/* ページヘッダーの右下に立つ案内役（本文には重ねない） */
.ph.has-cat{position:relative}
.ph .cat-corner{
  position:absolute;right:max(16px,calc(50% - var(--wrap)/2));bottom:-6px;
  width:112px;height:auto;pointer-events:none;
  filter:drop-shadow(0 10px 18px rgba(20,26,36,.16))
}
@media (max-width:980px){ .ph .cat-corner{width:84px;right:12px;bottom:-4px} }
@media (max-width:600px){ .ph .cat-corner{display:none} }
.lottery-fig{margin:32px auto;text-align:center;max-width:420px}
.lottery-fig img{width:100%;max-width:300px;height:auto;display:block;margin:0 auto 12px;
  filter:drop-shadow(0 16px 28px rgba(20,26,36,.18))}
.lottery-fig figcaption{font-size:13px;color:var(--ink-2);line-height:1.8}

/* キャラクター画像に、ニュースのカテゴリバッジ用 .cat の装飾が当たらないように */
.catguide .cg-cat,img.cat-peek,img.cat-side,img.cat-corner{
  border:0;padding:0;background:none;border-radius:0;box-sizing:content-box;white-space:normal
}
.catguide .cg-cat{width:180px;height:auto;display:block;filter:drop-shadow(0 12px 22px rgba(20,26,36,.16))}
@media (max-width:768px){ .catguide .cg-cat{width:132px;margin:0 auto} }

/* SPの12px未満（UNTILチップ・ONLINE SEMINARラベル） */
@media (max-width:768px){ .cmp-chip small,.ev-lbl,.cmp-when .k{font-size:12px} }
/* SP最小12px（後発ルールに負けていた3箇所を確実に上書き） */
@media (max-width:768px){
  .ev-lbl,.cmp-chip small,.cmp-when .k,.tnews .go,.rows .go,.go{font-size:12px!important}
}
@media (max-width:768px){ .belt-lbl small{font-size:12px!important} }

/* =========================================================================
   v4.3 FVコピー（隙間時間から始める、令和の新しいデジタル物販）
   ========================================================================= */
.kv-pre{
  display:block;font-size:clamp(15px,1.7vw,22px);font-weight:700;color:#fff;
  line-height:1.5;margin:0 0 2px;text-shadow:0 4px 18px rgba(0,0,0,.45);letter-spacing:.02em
}
.kv-slide.s-light .kv-pre{color:var(--navy);text-shadow:none}
.kv-steps{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 0
}
.kv-steps b{
  display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;
  border:1px solid rgba(228,200,102,.55);background:rgba(10,18,34,.35);
  font-size:13px;font-weight:700;color:var(--gold-light);white-space:nowrap
}
.kv-steps i{font-style:normal;color:var(--gold);font-size:13px}
@media (max-width:768px){
  .kv-pre{font-size:15px}
  .kv-steps{gap:6px;margin-top:12px}
  .kv-steps b{height:28px;padding:0 10px;font-size:12px}
  .kv-steps i{font-size:12px}
}
@media (max-width:420px){
  .kv-steps b{padding:0 8px;font-size:11.5px}
}

/* =========================================================================
   v5.0 視線誘導・CV導線の改善
   ========================================================================= */

/* --- 2. ヒーロー直下のCTA --- */
.hero-cta{display:flex;gap:12px;justify-content:center;margin:28px auto 0;flex-wrap:wrap}
.hero-cta .btn{min-width:220px}
.hero-cta--quiet .btn{min-width:260px}
@media (max-width:767px){
  .hero-cta{flex-direction:column;gap:10px;margin-top:22px;padding:0 16px}
  .hero-cta .btn{width:100%;min-width:0;min-height:52px}
}

/* --- 1. ページ内ナビ：SPは横スクロール、body側には出さない --- */
html,body{overflow-x:hidden}
.ptabs{max-width:100%}
@media (max-width:767px){
  .ptabs{
    display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding:0 16px 8px;
    justify-content:flex-start;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;margin-left:calc(-1 * var(--gut,16px));margin-right:calc(-1 * var(--gut,16px))
  }
  .ptabs::-webkit-scrollbar{display:none}
  .ptabs a{flex:0 0 auto;min-height:40px;padding:9px 14px;white-space:nowrap;scroll-snap-align:start}
}

/* --- 3. SPの縦を詰める --- */
@media (max-width:767px){
  section.sec{padding-top:44px;padding-bottom:44px}
  section.sec.tight{padding-top:32px;padding-bottom:32px}
  .sec-important,.honest,.kv,.claim{padding-top:64px;padding-bottom:64px}
  .step p,.card p,.f p,.rc p,.tlist p{font-size:14.5px;line-height:1.75}
  .sh{margin-bottom:28px}
  .catguide{padding:22px 18px}
}

/* --- 4. 準備中は冒頭の1ボックスに集約し、本文中は静かに --- */
.prep-box{
  border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:12px;
  padding:16px 20px;margin:0 0 28px
}
.prep-box p{margin:0;font-size:13.5px;line-height:1.85;color:var(--ink-2)}
.prep-box b{color:var(--navy)}
.ph-mark{
  color:var(--ink-3);background:transparent;border-bottom:1px dotted var(--line-2);
  padding:0;border-radius:0;font-size:13.5px;font-weight:400
}

/* --- 5. 見出しスケールの統一 --- */
.ph .ja{font-size:40px}
.sh .ja,.claim h2,.honest h2{font-size:38px}
.sh2,.exp-h,.display{font-size:26px}
.sh .en,.ph .en,.eyebrow,.exp-label,.cmp-lbl{color:#9A8350}
@media (max-width:767px){
  .ph .ja{font-size:26px}
  .sh .ja,.claim h2,.honest h2{font-size:24px}
  .sh2,.exp-h,.display{font-size:20px}
  h3{font-size:19px}
}
/* /world/ 実際の条件へのリンク */
.world-facts{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  margin:22px auto 0;padding:12px 18px;max-width:var(--narrow);
  border:1px solid var(--line-2);border-radius:999px;background:#fff
}
.world-facts span{font-size:13px;color:var(--ink-2)}
.world-facts a{
  font-size:13px;font-weight:700;color:var(--navy);text-decoration:none;
  padding:4px 12px;border-radius:999px;background:var(--wash)
}
.world-facts a:hover{background:var(--gold-soft);color:#7A5E12}
@media (max-width:767px){ .world-facts{border-radius:12px;gap:8px} .world-facts span{width:100%;text-align:center} }

/* KVの3チップ（会員間取引・登録無料・元本保証なし） */
.kv-chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:18px auto 0}
.kv-chips span{
  font-size:12.5px;font-weight:700;color:var(--ink-2);background:#fff;
  border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;white-space:nowrap
}
@media (max-width:767px){ .kv-chips{gap:6px;padding:0 12px} .kv-chips span{font-size:12px;padding:5px 11px} }

/* /system/ 3つの選択 */
.choice3-lead{margin:0 0 18px;font-size:16px;font-weight:700;color:var(--navy);text-align:center}
.choice3-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.choice3 .c3{background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:20px 18px;text-align:center}
.choice3 .k{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:var(--navy);color:var(--gold-light);font-family:var(--serif);font-size:13px;font-weight:700;margin-bottom:10px}
.choice3 b{display:block;font-size:18px;color:var(--navy);margin-bottom:6px}
.choice3 p{margin:0;font-size:13.5px;line-height:1.75;color:var(--ink-2)}
@media (max-width:767px){ .choice3-row{grid-template-columns:1fr;gap:10px} .choice3 .c3{text-align:left;display:grid;grid-template-columns:26px 1fr;gap:4px 12px} .choice3 .k{margin:0} .choice3 b,.choice3 p{grid-column:2} }

/* /guide/ 最初に読む3本 */
.first3{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.first3 a{display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:center;
  background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:18px 22px;text-decoration:none;transition:.2s}
.first3 a:hover{border-color:var(--gold-bright);transform:translateY(-2px)}
.first3 .n{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;
  background:var(--gold-soft);color:#7A5E12;font-family:var(--serif);font-weight:700;font-size:16px}
.first3 b{display:block;font-size:16.5px;color:var(--navy)}
.first3 .s{display:block;font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.7}

/* /faq/ カテゴリタブ */
.faq-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.faq-tabs a{font-size:13.5px;font-weight:700;color:var(--navy);text-decoration:none;
  border:1px solid var(--line-2);border-radius:999px;padding:8px 16px;background:#fff;transition:.2s}
.faq-tabs a:hover{border-color:var(--gold-bright);background:var(--gold-soft);color:#7A5E12}
@media (max-width:767px){
  .faq-tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding:0 16px 8px;
    margin-left:-16px;margin-right:-16px;scrollbar-width:none}
  .faq-tabs::-webkit-scrollbar{display:none}
  .faq-tabs a{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
}

/* /legal/terms/ 目次を追従、章末に戻るリンク */
@media (min-width:1024px){
  .terms-toc{position:sticky;top:calc(var(--hd) + 16px);z-index:2}
}

/* 折りたたみ（詳細はSPで畳む） */
.fold{border:1px solid var(--line-2);border-radius:12px;background:#fff;margin:22px 0 0}
.fold > summary{
  list-style:none;cursor:pointer;padding:16px 20px;font-size:15px;font-weight:700;color:var(--navy);
  display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px
}
.fold > summary::-webkit-details-marker{display:none}
.fold > summary::after{content:"＋";color:var(--gold);font-size:16px;font-weight:700}
.fold[open] > summary::after{content:"−"}
.fold > summary:hover{background:var(--wash)}
.fold-in{padding:4px 20px 22px;border-top:1px solid var(--line)}
@media (min-width:768px){
  .fold{border:0;background:transparent;margin-top:0}
  .fold > summary{display:none}
  .fold-in{padding:0;border-top:0}
}

/* 残っていた 96/80px のセクションもSPは44pxに */
@media (max-width:767px){
  section.exp,section.event,section.news,section.about,section.claim,section.honest,
  section.sns,section.mn,.pickup,.rb-wrap,.bb-wrap,.about-menu,.about-guide{
    padding-top:44px!important;padding-bottom:44px!important
  }
  .kv{padding-top:20px;padding-bottom:36px}
}
/* /guide/ 最初に読む3本：1fr が潰れて文字が縦積みになっていた */
.first3{grid-template-columns:1fr!important;width:100%}
.first3 li{min-width:0;width:100%}
.first3 a{width:100%;min-width:0;box-sizing:border-box}
.first3 a > span:last-child,.first3 b,.first3 .s{min-width:0}
/* .n / b / .s の3つを2列グリッドに置いていたため col2 が潰れていた */
.first3 a > b,.first3 a > .s{grid-column:2}
.first3 a{align-items:start}
.first3 .n{grid-row:1/span 2;align-self:center}
/* .s に他所の枠が当たっていたので打ち消す */
.first3 a > .s{border:0!important;background:none!important;padding:0!important;border-radius:0!important;
  text-align:left;display:block;font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.7}
.first3 a > b{text-align:left;font-size:16.5px;line-height:1.5}
.first3 a{gap:6px 16px;padding:16px 18px}

/* KVのオーブ単体：3連より大きく、余白に収める */
.kv-art.kv-art-orb{height:62%;max-width:32%;right:6%}
@media (max-width:768px){
  .kv-art.kv-art-orb{height:132px;max-width:52%;bottom:12px}
}
@media (max-width:420px){ .kv-art.kv-art-orb{height:116px} }

/* =========================================================================
   KVメディア（PC/SPで別素材を出し分け）
   素材を置くと、背景+装飾の代わりにこの1枚が敷かれる。文字はHTMLのまま上に乗る
   ========================================================================= */
.kv-media-wrap{position:absolute;inset:0;display:block;z-index:0}
.kv-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:0}
/* メディアがあるスライドは、既存の背景・グラデ・オーブを引っ込める */
.kv-slide:has(.kv-media) .kv-bg{display:none}
.kv-slide:has(.kv-media) .kv-art,
.kv-slide:has(.kv-media) .kv-art-3{display:none}
.kv-slide:has(.kv-media) .kv-grad{
  background:linear-gradient(100deg,rgba(8,15,28,.86) 0%,rgba(14,27,51,.62) 46%,rgba(14,27,51,.12) 100%);
  z-index:1
}
.kv-slide:has(.kv-media) .kv-copy{z-index:2}
@media (max-width:768px){
  /* SPは正方形。素材は4:5なので上下を切る。
     object-position を下寄りにして、主役（オーブ／抽選機）が下で切れないようにする */
  .kv-slide:has(.kv-media){aspect-ratio:1/1;min-height:0}
  .kv-slide:has(.kv-media) .kv-media{object-position:center 78%}
  /* 正方形は縦が2割短くなるぶん、コピーの余白を詰めて主役の上に空きを作る */
  .kv-slide:has(.kv-media) .kv-copy{padding-top:16px}
  .kv-slide:has(.kv-media) .kv-title{line-height:1.24}
  .kv-slide:has(.kv-media) .kv-sub{margin-top:6px;line-height:1.62}
  .kv-slide:has(.kv-media) .kv-steps{margin-top:8px}
  .kv-slide:has(.kv-media) .kv-btn{margin-top:4px;padding:4px 11px 3px}
  .kv-slide:has(.kv-media) > a{height:100%}
  .kv-slide:has(.kv-media) .kv-copy{padding-bottom:24px}
  .kv-slide:has(.kv-media) .kv-grad{
    background:linear-gradient(180deg,rgba(8,15,28,.30) 0%,rgba(8,15,28,.55) 46%,rgba(8,15,28,.88) 100%)
  }
}

/* =========================================================================
   v5.1 KV写真の上に乗る文字のコントラスト（2026-09-11 実素材投入にあわせて実測調整）
   実写KVを敷いた結果、オーブの発光やシャンデリアの上で文字が最悪1.9:1まで落ちていた。
   ベールを一律に濃くすると写真が死ぬので、
     ・グラデは「文字がある帯」だけ濃くし、主役（オーブ）の位置は逆に薄くする
     ・バッジ・ステップ・リンクは自前の下地を持たせ、写真の明るさに依存させない
   の2本立てで解いている。数値は3枚×各要素の最も明るいブロックで実測し、
   本文4.5:1 / 大見出し(21px以上のbold)3.0:1 を満たす最小値を採用。
   ========================================================================= */
.kv-slide:has(.kv-media) .kv-grad{
  background:linear-gradient(100deg,rgba(8,15,28,.88) 0%,rgba(14,27,51,.68) 48%,rgba(14,27,51,.13) 100%)
}
.kv-slide:has(.kv-media) .kv-tag{background:rgba(8,15,28,.72)}
.kv-slide:has(.kv-media) .kv-steps b{background:rgba(8,15,28,.72)}
.kv-slide:has(.kv-media) .kv-btn{
  background:rgba(8,15,28,.72);padding:6px 12px 5px;border-radius:3px;
  border-bottom-color:rgba(228,200,102,.75)
}
/* KV内の文字が11px前後まで落ちていた箇所を12pxで底打ちする（可読性の下限） */
.kv-tag{font-size:12px}
.kv-btn{font-size:clamp(12px,1.05vw,13.5px)}
@media (max-width:768px){
  /* 正方形にしたことで主役の発光が上に寄るため、文字帯のベールを再測定して打ち直した */
  .kv-slide:has(.kv-media) .kv-grad{
    background:linear-gradient(180deg,
      rgba(8,15,28,.52) 0%,
      rgba(8,15,28,.66) 24%,
      rgba(8,15,28,.70) 50%,
      rgba(8,15,28,.74) 66%,
      rgba(8,15,28,.42) 84%,
      rgba(8,15,28,.86) 100%)
  }
  .kv-steps b{font-size:12px}
}
@media (max-width:420px){
  .kv-steps b{font-size:12px}
}

/* =========================================================================
   v5.2 打消し表示の文字サイズ（景表法対応・2026-09-11）
   キャンペーンの注記と「登録も説明会も無料」が本文より小さく、
   打消し表示として認められない可能性があったため 14px に引き上げる。
   既存のSP用12px指定（!important含む）より後ろに置き、確実に上書きする。
   色は実測でコントラスト比を確認済みのため変更しない：
     .cmp-note  rgba(255,255,255,.62) on #08111F = 7.64:1
     .belt-lbl small  #A9B8D3 on #08111F        = 9.44:1
     --ink-3 #646C7A  on #FFFFFF 5.29:1 / on #F7F9FC 5.02:1
   ========================================================================= */
.cmp .cmp-note,
.cmp-bar .cmp-note{font-size:14px!important;line-height:1.75}
.belt-lbl small{font-size:14px!important;letter-spacing:.08em}
@media (max-width:768px){
  .cmp .cmp-note,
  .cmp-bar .cmp-note{font-size:14px!important}
  .belt-lbl small{font-size:14px!important}
}

/* ===== v5.3 説明資料からの切り出し素材の配置 ===== */
/* =========================================================================
   v5.2 説明資料からの切り出し素材（/assets/img/deck/）
   素材は75ppi。manifest.json の max_css_px_at_2x を超えて表示すると必ずぼける。
   そこで「素材ごとの上限px」と「配置ごとの指定px」を別々の変数に持たせ、
   実表示幅 = min(親の幅, 指定px, 上限px) の3者の最小値で必ず頭打ちにしている。
     ・親が狭ければ縮む     → SPで横スクロールが出ない
     ・親が広くても伸びない → 拡大によるボケが出ない
   既存の .split / .grid.g-3 / .slab-fig / .seq / .prose には一切触れず、
   deck- 接頭辞の新規クラスだけで完結させる（追加のみ・既存値の書き換えなし）。
   ========================================================================= */

/* ---------- 画像1枚の土台 ---------- */
.deck-fig{
  display:block;margin:0;width:100%;
  max-width:100%;                                                  /* min() 非対応環境のフォールバック */
  max-width:min(100%,var(--deck-w,100%),var(--deck-cap,100%))
}
.deck-fig > img{display:block;width:100%;height:auto;margin:0}
.deck-fig.deck-center{margin-left:auto;margin-right:auto}
/* 素材が無く空タグだけ残った場合も、場所を取らせない（min-heightは全箇所で不使用） */
.deck-fig:empty{display:none}

/* ---------- 素材ごとの上限px（manifest.json の max_css_px_at_2x をそのまま） ---------- */
.deck-fig-orb-pile{--deck-cap:200px}    /* release-orb-pile   400×250 */
.deck-fig-gate{--deck-cap:195px}        /* release-gate       390×415 */
.deck-fig-scale{--deck-cap:185px}       /* release-scale      370×310 */
.deck-fig-tablet-hero{--deck-cap:436px} /* tablet-hero        872×771 */
.deck-fig-tablet-1{--deck-cap:167px}    /* tablet-1           335×310 */
.deck-fig-tablet-2{--deck-cap:170px}    /* tablet-2           340×310 */
.deck-fig-tablet-3{--deck-cap:170px}    /* tablet-3           340×310 */
.deck-fig-ticket{--deck-cap:360px}      /* ticket-gold        720×440 */
.deck-fig-phone{--deck-cap:97px}        /* step-phone         195×350 */
.deck-fig-step-ticket{--deck-cap:140px} /* step-ticket        280×240 */
.deck-fig-roulette{--deck-cap:125px}    /* step-roulette      250×320 */
.deck-fig-crystal{--deck-cap:122px}     /* step-crystal       245×315 */
.deck-fig-hero-orbs{--deck-cap:450px}   /* hero-orbs-dungeon  900×381 */
.deck-fig-castle{--deck-cap:411px}      /* landscape-castle   822×941 */
.deck-fig-valley{--deck-cap:361px}      /* landscape-valley   722×941 */

/* ---------- (1)(3) 横並び3点 ---------- */
/* 列は minmax(0,1fr)。幅は画像側の max-width が決めるので、
   親がどれだけ狭くても列がはみ出さない（.g-3 のSP1列化とは無関係の独立グリッド）。
   縦横比がばらばらなので align-items:end で下端を揃える（.slab-fig の意図と同じ、ただし歪ませない） */
.deck-row{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(10px,2.2vw,24px);align-items:end;justify-items:center;margin:30px 0 6px
}
.deck-row > *{min-width:0}
/* 図の下にラベルを置きたいときだけ使う（無くてよい） */
.deck-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:9px;width:100%}
.deck-lbl{font-size:12px;line-height:1.5;letter-spacing:.04em;color:var(--ink-3);text-align:center;word-break:auto-phrase}

/* (1) /system/ 解放の流れ：180px → SPも3列のまま100px */
.deck-row-release .deck-fig{--deck-w:180px}
@media (max-width:768px){ .deck-row-release .deck-fig{--deck-w:140px} }
@media (max-width:600px){ .deck-row-release .deck-fig{--deck-w:100px} }

/* (3) /system/ 石盤1〜3個：160px → SPは3列のまま縮小 */
.deck-row-tablet .deck-fig{--deck-w:160px}
@media (max-width:768px){ .deck-row-tablet .deck-fig{--deck-w:120px} }
@media (max-width:600px){ .deck-row-tablet .deck-fig{--deck-w:96px} }

/* ---------- (2)(7) 本文の横に図を置く ---------- */
/* 図側の列を definite（minmax(0,固定px)）にしてあるので、
   中の width:100% が循環せず、auto列のように max-content まで広がる事故が起きない */
.deck-beside{
  --deck-aside:360px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--deck-aside));
  gap:clamp(24px,3.2vw,44px);align-items:center;margin:32px 0
}
.deck-beside > *{min-width:0}
.deck-beside-lg{--deck-aside:420px}
/* 図を左に置きたいとき（その場合は figure をDOMの先頭に書く） */
.deck-beside.deck-flip{grid-template-columns:minmax(0,var(--deck-aside)) minmax(0,1fr)}
@media (max-width:980px){ .deck-beside{--deck-aside:300px} .deck-beside-lg{--deck-aside:340px} }
@media (max-width:768px){
  .deck-beside,.deck-beside.deck-flip{grid-template-columns:minmax(0,1fr);gap:20px;justify-items:center}
}
.deck-tabhero{--deck-w:420px}   /* (2) tablet-hero */
.deck-land{--deck-w:400px}      /* (7) 風景（指示書の指定400px。landscape-castle の上限は411px） */

/* ---------- (4) /tickets/ チケット単独 ---------- */
.deck-ticket{--deck-w:320px;margin:28px auto}

/* ---------- (6) /world/ 冒頭のヒーロー ---------- */
.deck-hero{--deck-w:440px;margin:0 auto 30px}

/* ---------- (5) /how-to-start/ 各STEP見出しの横 ---------- */
/* .prose h2 の余白リズム(44px / 14px)は見出し行のラッパーが引き継ぐ。
   素材が無いSTEPは <picture> を出力しないだけでよく、空スロットは一切確保しない。
   min-height / aspect-ratio / 空divによる場所取りは、この節のどこにも無い */
.deck-step-head{display:flex;align-items:center;gap:20px;margin:44px 0 14px}
.prose .deck-step-head > h2{margin:0;flex:1 1 auto;min-width:0}
.deck-step-head .deck-fig{
  flex:0 0 auto;margin-left:auto;
  width:var(--deck-w);                       /* min() 非対応環境のフォールバック */
  width:min(var(--deck-w),var(--deck-cap))
}
.deck-step-head .deck-fig{--deck-w:120px}
.deck-step-head .deck-fig-phone{--deck-w:96px}
.deck-step-head .deck-fig-step-ticket{--deck-w:136px}
.deck-step-head .deck-fig-roulette{--deck-w:124px}
.deck-step-head .deck-fig-crystal{--deck-w:120px}
@media (max-width:768px){
  .deck-step-head{gap:14px}
  .deck-step-head .deck-fig-phone{--deck-w:72px}
  .deck-step-head .deck-fig-step-ticket{--deck-w:100px}
  .deck-step-head .deck-fig-roulette{--deck-w:92px}
  .deck-step-head .deck-fig-crystal{--deck-w:90px}
}
@media (max-width:600px){
  .deck-step-head .deck-fig-phone{--deck-w:64px}
  .deck-step-head .deck-fig-step-ticket{--deck-w:88px}
  .deck-step-head .deck-fig-roulette{--deck-w:80px}
  .deck-step-head .deck-fig-crystal{--deck-w:78px}
}

/* ---------- 保険：既存の「枠の中の画像」ルールに deck 画像を掴ませない ---------- */
/* .split .media img（max-width:88%）や .world-intro img（height:180px）が効くと
   上限pxを超えて拡大されるため、deck- 画像のときだけ打ち消す。既存markupの値は不変 */
.split .media .deck-fig > img,
.prose .fig .deck-fig > img,
.world-intro .deck-fig > img,
.card > .deck-fig > img{
  width:100%;height:auto;max-width:none;max-height:none;object-fit:contain;margin:0;filter:none
}


/* ===== v5.3 効果の上限バー（0円→300,000円→720,000円） ===== */
/* =========================================================================
   v5.2 効果の上限バー（/system #effect）— 画像を使わない横バー図
   ・0円 →「使用したオーブの合計金額」300,000円 → 720,000円（240%）を1本の帯で示す
   ・目盛りは実比率で置く。300,000円 は 300/720＝41.6667% の位置であって「中央」ではない
     （中央に置くと「残りも同じだけ」と読めて、240%という関係そのものが壊れるため）
   ・比率は grid の 300fr / 420fr に持たせる。数値を書き換えても図とズレない
   ・768px未満は縦組みへ。数字はすべてHTMLテキストで、画像は使わない
   ========================================================================= */
.capbar{
  max-width:840px;margin:36px auto 0;padding:30px 0 26px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.capbar-plot{
  display:grid;
  grid-template-columns:300fr 420fr;   /* 0→300,000 と 300,000→720,000 の実比率 */
  grid-template-rows:auto 16px;        /* 上＝目盛り／下＝帯 */
  align-items:end                      /* 目盛りの下端を帯にそろえる */
}
.capbar-rail{
  grid-column:1 / -1;grid-row:2;align-self:stretch;  /* align-items:end で高さが潰れるので明示 */
  position:relative;border-radius:3px;
  background:linear-gradient(90deg,var(--navy) 0%,var(--navy-3) 26%,var(--gold) 74%,var(--gold-bright) 100%)
}
/* 300,000円 の位置を帯の上にも刻む（＝中央ではないことが図でも分かる） */
.capbar-rail::before{
  content:"";position:absolute;top:0;bottom:0;left:41.6667%;width:2px;background:var(--ground)
}
.capbar-tick{grid-row:1;display:flex;flex-direction:column;line-height:1.2}
/* 目盛りから帯へ下ろすヘアライン。flexの最後の子なので align-items で左/中央/右にそろう */
.capbar-tick::after{content:"";width:1px;height:10px;margin-top:9px;background:var(--line-2)}
.capbar-tick.is-start{grid-column:1;justify-self:start;align-items:flex-start;text-align:left}
.capbar-tick.is-mid{grid-column:2;justify-self:start;align-items:center;text-align:center;transform:translateX(-50%)}
.capbar-tick.is-end{grid-column:2;justify-self:end;align-items:flex-end;text-align:right}
.capbar-v{
  font-family:var(--serif);font-weight:700;color:var(--navy);
  font-size:clamp(21px,2.5vw,30px);line-height:1.15;letter-spacing:.01em;
  font-variant-numeric:lining-nums tabular-nums;white-space:nowrap  /* 金額は絶対に折らない */
}
.capbar-v small{font-family:var(--serif);font-size:13px;font-weight:700;margin-left:3px}
.capbar-tick.is-start .capbar-v{font-size:clamp(16px,1.7vw,20px);color:var(--ink-2)}  /* 0円は静かに */
.capbar-tick.is-start .capbar-v small{font-size:12px}
.capbar-tick.is-end .capbar-v{color:var(--gold)}  /* --gold-bright は白地で約2.4:1。文字には使わない */
.capbar-k{
  margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--ink-2);
  white-space:nowrap;font-variant-numeric:lining-nums tabular-nums
}
.capbar-note{
  margin:16px 0 0;text-align:center;font-size:14px;line-height:1.8;color:var(--ink-2);
  word-break:auto-phrase
}
@media (max-width:767px){
  /* 横のままだと数字が潰れるので縦組みへ。比率（300fr/420fr）はそのまま行に移す */
  .capbar{padding:26px 2px 22px;margin-top:28px}
  .capbar-plot{
    grid-template-columns:12px minmax(0,1fr);
    grid-template-rows:300fr 420fr;
    column-gap:16px;row-gap:0;align-items:stretch;
    /* fr で高さを配分するため下限が要る。上下端の目盛りが枠外へ出ないぶんの余白も確保する */
    min-height:clamp(300px,80vw,344px);padding:28px 0
  }
  .capbar-rail{
    grid-column:1;grid-row:1 / -1;
    background:linear-gradient(180deg,var(--navy) 0%,var(--navy-3) 26%,var(--gold) 74%,var(--gold-bright) 100%)
  }
  .capbar-rail::before{top:41.6667%;left:0;right:0;bottom:auto;width:auto;height:2px}
  .capbar-tick{display:grid;grid-template-columns:14px minmax(0,1fr);column-gap:8px}
  .capbar-tick::after{grid-column:1;grid-row:1 / -1;align-self:center;justify-self:start;width:14px;height:1px;margin:0}
  .capbar-v,.capbar-k{grid-column:2}
  .capbar-tick.is-start,.capbar-tick.is-mid,.capbar-tick.is-end{
    grid-column:2;justify-self:stretch;align-items:center;text-align:left
  }
  .capbar-tick.is-start{grid-row:1;align-self:start;transform:translateY(-50%)}
  .capbar-tick.is-mid{grid-row:2;align-self:start;transform:translateY(-50%)}
  .capbar-tick.is-end{grid-row:2;align-self:end;transform:translateY(50%)}
  .capbar-v{font-size:clamp(20px,5.6vw,24px)}
  .capbar-v small{font-size:12px}
  .capbar-tick.is-start .capbar-v{font-size:clamp(15px,4.2vw,18px)}
  .capbar-k{margin-top:3px;font-size:12px}
  .capbar-note{text-align:left;padding-left:28px;font-size:13px;margin-top:10px}
}


/* ===== v5.3 チケットの使用例カード ===== */
/* =========================================================================
   チケットの使用例 — 3口予約したときの内訳（紺カード2枚 / #example 内）
   既存トークンのみ使用。追加専用ブロック（既存セレクタの値は書き換えていません）
   紺カードの型は .reasons .r（navy-2 / navy-line / on-navy）を踏襲、
   四隅の飾りは既存の .orn.on-dark をHTML側で付けるだけで賄っています。
   ========================================================================= */
.usecase{margin-top:clamp(28px,3.6vw,44px)}
.uc-head{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:0 0 18px;padding-left:16px}
.uc-head::before{content:"";position:absolute;left:0;top:.3em;width:6px;height:1em;border-radius:2px;background:linear-gradient(180deg,var(--gold-light),var(--gold))}
.uc-title{margin:0;font-size:clamp(18px,2.1vw,22px);font-weight:700;color:var(--navy);line-height:1.45;word-break:auto-phrase}
.uc-eq{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(13.5px,1.5vw,16px);letter-spacing:.02em;color:var(--ink-2);font-variant-numeric:lining-nums tabular-nums}
.uc-eq .uc-eqm{color:var(--gold);margin:0 .3em}

.uc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,20px);align-items:stretch}
.uc-card{display:flex;flex-direction:column;min-width:0;padding:26px 24px 24px;border:1px solid var(--navy-line);border-radius:var(--r-lg);background:var(--navy-2);color:var(--on-navy)}
.uc-card h4{margin:0 0 18px;font-size:17px;line-height:1.5;color:#fff;word-break:auto-phrase}

/* 数字が主役：小さなラベル＋大きな数字。使用＝白、返還＝金 */
.uc-nums{display:grid;grid-template-columns:1fr 1fr;margin:0 0 18px}
.uc-nums.solo{grid-template-columns:1fr}
.uc-n{min-width:0;padding:0 14px}
.uc-n:first-child{padding-left:0}
.uc-n+.uc-n{border-left:1px solid var(--navy-line)}
.uc-k{display:block;margin:0 0 4px;font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--on-navy-2)}
.uc-v{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(32px,5.2vw,46px);line-height:1.05;color:var(--on-navy);white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
.uc-v small{font-family:var(--serif);font-size:clamp(13px,1.5vw,16px);font-weight:700;letter-spacing:.02em;margin-left:.18em}
.uc-n.back .uc-v{color:var(--gold-light)}
.uc-nums.solo .uc-v{font-size:clamp(38px,6.4vw,56px)}
.uc-nums.solo .uc-v small{font-size:clamp(14px,1.7vw,18px)}

.uc-note{margin:auto 0 0;padding-top:15px;border-top:1px solid var(--navy-line);font-size:13.5px;line-height:1.9;color:var(--on-navy-2)}
@media (max-width:768px){
  .uc-grid{grid-template-columns:1fr}
  .uc-card{padding:22px 20px 20px}
  .uc-card h4{margin-bottom:14px}
  .uc-note{font-size:13px}
}
@media (max-width:420px){
  .uc-n{padding:0 12px}
}

/* =========================================================================
   v5.4 12px未満テキストの残り（2026-09-11 全31ページ実測で洗い出し）
   装飾英字ラベル（NEW / UNTIL / ONLINE SEMINAR / ▶ ❚❚）は対象外。
   下記4件は日本語の本文・注記なので12pxで底打ちする。
   ========================================================================= */
/* /partner/ 収入シミュレーション表の列見出し「直紹介 3名」等がPCで10px。
   .sim-table thead th{font-size:12px} にブラウザ既定の small{font-size:smaller}
   が掛かって0.833倍になっていた。計算例の前提条件＝打消し表示にあたる情報。 */
.sim-table thead th small{font-size:12px!important}
/* 「もっと知る」の「次に読む」バッジ。::before なので既存の一括上書きが当たらない */
.mn-tile.is-next::before{font-size:12px}
/* KVの本文。SP390=14px・PC1280=15pxだが clamp 下限が11pxで、
   幅769〜1023px（タブレット〜小型ノート）だけ11pxに落ちていた */
.kv-sub{font-size:clamp(12px,1.4cqw,15px)}
/* 追従バッジの補足文（PC 11px） */
.fbadge span{font-size:12px}

/* =========================================================================
   v5.5 <details class="fold"> の既定を「開いている」に反転（2026-09-11）
   HTML側に open を書いたので、JSが落ちてもPCで本文が消えない。
   SPでは JS が open を外すが、それまでの一瞬だけ開いて見えると
   読み込み時にガタつくため、head の早期スクリプトが付ける html.sp-fold で
   初回描画から中身を隠しておく。JSが閉じ終えた時点でクラスは外れる。
   ========================================================================= */
html.sp-fold details.fold[open] > .fold-in{display:none}

/* =========================================================================
   v5.6 公開前監査の指摘対応（2026-09-11）
   .channels は3列固定だが、/safety/ は枠が2つしかなく右1/3が空いていた。
   子が2つのときだけ2列にする。
   ========================================================================= */
@media (min-width:768px){
  .channels:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}
}

/* v5.7 キャンペーンを2枚並べるとき */
.cmp + .cmp{margin-top:22px}
@media(max-width:767px){.cmp + .cmp{margin-top:16px}}

/* v5.9 説明会：開催日程の画像をそのまま一枚で載せ、下に説明とボタンのバー */
.sched-embed{max-width:960px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}
.sched-embed-fig{margin:0;padding:0;line-height:0}
.sched-embed-fig img{display:block;width:100%;height:auto}
.sched-bar{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;padding:20px 28px;border-top:1px solid var(--line)}
.sched-bar .txt{flex:1 1 340px;min-width:0}
.sched-bar h3{margin:0 0 4px;font-size:18px;font-weight:800;line-height:1.45;color:var(--navy)}
.sched-bar p{margin:0;font-size:14px;line-height:1.85;color:var(--ink-2);word-break:auto-phrase}
.sched-bar p.sub{margin-top:2px;font-size:12.5px;color:var(--ink-3)}
.sched-bar .btn{flex:0 0 auto}
@media (max-width:767px){
  .sched-bar{padding:18px 20px}
  .sched-bar .btn{width:100%;justify-content:center}
}

/* v6.0 抽選の開催時間の図：横長で中に文字があるため、読める幅で見せる */
.lottery-fig.lottery-sched{max-width:860px}
.lottery-fig.lottery-sched picture{display:block}
.lottery-fig.lottery-sched img{max-width:100%;border-radius:12px;border:1px solid var(--line)}
.lottery-fig.lottery-sched figcaption{word-break:auto-phrase;max-width:44em;margin:0 auto}
/* 強制改行はPCのみ（スマホでは短い行ができるため自然な折り返しに任せる） */
@media (max-width:767px){ br.br-pc{display:none} }

/* v6.1 説明画像（スマホ=mobile_A / 768px以上=desktop_B） */
.explainer-visual{width:min(100%,1120px);margin:40px auto}
.explainer-visual picture,
.explainer-visual img{display:block;width:100%;height:auto}
.explainer-visual img{border-radius:12px}
.explainer-visual + .explainer-cap{margin:-24px auto 40px;max-width:44em;text-align:center;font-size:13px;line-height:1.8;color:var(--ink-2);word-break:auto-phrase}
@media (max-width:767px){ .explainer-visual{margin:28px auto} .explainer-visual + .explainer-cap{margin:-16px auto 28px} }
@media (max-width:767px){ .explainer-visual[style*="--ar-m"] img{aspect-ratio:var(--ar-m)} }
