  :root{
    --ink:#15263B; --navy:#0F3562; --indigo:#2C5A8C;
    --cream:#FBF7EF; --cream-2:#F5EEDF; --sand:#E9DFCB;
    /* メインカラー＝パデボ・コーポレートカラー #0F3562。
       サブは①同系の青(濃淡)で全体を統一＝特定政党色を避けつつ信頼感、
       ②差し色はシャンパンゴールド＝中立で上品・CTAを引き立てる、
       ③背景はクール寄りの白／淡グレーで余白を生かし「洗練・見やすい」印象に。 */
    --pink:#1E4E7E; --pink-deep:#0F3562; --pink-soft:#E1EAF3; --pink-pale:#F1F6FB;
    --ivory:#FBB161; --ivory-deep:#E0942E; --ivory-soft:#FDE9CD; --ivory-ink:#1C2433;
    --sky:#5C82B5;
    --muted:#5E6C82; --line:#E2E8F1;
    --bg:#FFFFFF;
    --agree:#2E9E6B; --agree-bg:#E5F4EC;
    --neutral:#C98A1E; --neutral-bg:#FBF1DD;
    --against:#D34D69; --against-bg:#FCE6EB;
    --ad-bg:#FBF9F2; --ad-line:#DCCBA0; --ad-label:#A9851F;
    --shadow:0 14px 40px rgba(18,23,51,.13); --shadow-sm:0 4px 16px rgba(18,23,51,.07);
    /* フォントは Noto Sans JP に統一（最も一般的で読みやすい和文ゴシック）。
       未読み込み環境ではOS標準ゴシックにフォールバック。 */
    --font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Meiryo",system-ui,sans-serif;
    --min:var(--font);
    --disp:var(--font);
    --body:var(--font);
    --mono:var(--font);
    --max:1140px;
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth; scroll-padding-top:100px; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
  body{margin:0; font-family:var(--body); color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased; line-height:1.75; word-break:auto-phrase; line-break:strict; text-wrap:pretty;}
  /* 日本語の改行を文節単位に。リード文は行のバランスも整える（語の途中での折り返しを防ぐ） */
  .sec-sub,.cycle-sub,.hero-d,.mem-d,.doc-meta,.sec-sub2{text-wrap:balance;}
  a{color:inherit}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 22px;}
  .eyebrow{font-family:var(--mono); font-size:13.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--pink-deep);}
  h2.sec{font-family:var(--min); font-weight:800; font-size:clamp(26px,3.6vw,38px); color:var(--navy); letter-spacing:.02em; margin:10px 0 8px; line-height:1.3;}
  .sec-sub{color:var(--muted); font-size:16.5px; max-width:600px; margin:0 0 34px;}
  :focus-visible{outline:2px solid var(--pink); outline-offset:3px; border-radius:4px;}
  /* 仕上げの細部（プロUI）：ブランド配色の選択ハイライト・スマホのタップ青フラッシュ除去・押下フィードバック */
  ::selection{background:rgba(15,53,98,.16);}
  *{-webkit-tap-highlight-color:transparent;}
  .btn:active{transform:translateY(0);}
  .btn.primary:active{transform:translateY(0); box-shadow:0 6px 16px rgba(200,149,28,.34);}
  .submit:active{transform:scale(.99);}
  html.js .reveal{opacity:0; transform:translateY(18px);}
  html.js .reveal.in{opacity:1; transform:none; transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
  html.js .reveal.d1.in{transition-delay:.08s} html.js .reveal.d2.in{transition-delay:.16s}
  html.js .reveal.d3.in{transition-delay:.24s} html.js .reveal.d4.in{transition-delay:.32s}

  .nav{position:sticky; top:0; z-index:40; background:rgba(255,255,255,.82); backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s;}
  .nav.scrolled{border-color:var(--line); box-shadow:0 4px 20px rgba(18,23,51,.05);}
  .nav .inner{max-width:none; margin:0 auto; padding:14px clamp(24px,5vw,96px); display:flex; align-items:center; gap:16px;}
  .brand{display:flex; align-items:center; gap:10px; font-family:var(--disp); font-weight:900; font-size:22px; color:var(--navy); text-decoration:none;}
  .brand b{color:var(--pink-deep)}
  .brand-logo{height:34px; width:auto; display:block;}
  .brand .dot{width:31px;height:31px;border-radius:9px;background:var(--pink-soft); border:1.5px solid #CBDBEC; display:grid; place-items:center; font-size:18.5px;}
  .nav .links{display:flex; gap:26px; margin-left:26px;}
  .nav .links a{font-size:17px; font-weight:600; color:#33405e; text-decoration:none; transition:color .2s, border-color .2s; padding:3px 1px; border-bottom:2px solid transparent;}
  .nav .links a:hover{color:var(--pink-deep); border-bottom-color:var(--pink-soft);}
  .nav .links a.cur{color:var(--pink-deep); border-bottom-color:var(--pink);}
  .nav .btn.primary{font-size:16.5px; padding:12px 24px;}
  .nav .spacer{flex:1}
  .navtog{display:none; width:44px; height:42px; flex:0 0 auto; align-items:center; justify-content:center; padding:0; margin-left:4px; border:1px solid var(--line); background:#fff; border-radius:11px; color:var(--navy); cursor:pointer; transition:background .15s, border-color .15s;}
  .navtog:hover{background:var(--pink-pale); border-color:#CBDBEC;}
  .navtog svg{width:23px; height:23px; display:block;}
  .navtog .ico-close{display:none;}
  .btn{font-family:var(--body); font-weight:700; font-size:15.5px; cursor:pointer; border:none; border-radius:12px; padding:11px 19px; text-decoration:none; display:inline-block; text-align:center; transition:transform .15s, filter .2s;}
  /* 目立たせる主要CTA（さがす等）は鮮やかなゴールド＋黒系文字で高コントラスト */
  .btn.primary{color:var(--ivory-ink); background:var(--ivory); border:1.5px solid var(--ivory-deep); box-shadow:0 8px 22px rgba(200,149,28,.34);}
  .btn.primary:hover{transform:translateY(-1px); background:var(--ivory-deep); box-shadow:0 10px 24px rgba(200,149,28,.42);}

  /* フルブリード：全面に画像、左に暗いグラデを重ねて文章を載せる */
  .hero{position:relative; overflow:hidden; color:#fff; background:#0C2748; height:66.67vw; max-height:940px; min-height:520px; display:flex;}
  .hero .hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; z-index:0;}
  /* ネイビー塗りはやめ、左側を白グラデで明るくしてダーク文字を読みやすく（右側は画像をそのまま見せる） */
  .hero .hero-ov{position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.92) 30%, rgba(255,255,255,.72) 48%, rgba(255,255,255,.28) 62%, rgba(255,255,255,0) 77%);}
  .hero::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:64px; z-index:2; background:linear-gradient(180deg,rgba(244,247,251,0),var(--cream));}
  .hero .inner{position:relative; z-index:3; width:100%; max-width:none; margin:0 auto; padding:74px clamp(24px,5vw,96px) 64px; display:flex; align-items:flex-start;}
  .hbadge{display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.22); color:#fff; padding:7px 14px; border-radius:999px;}
  .hbadge .ok{color:#7BE6AE; font-size:10.5px}
  h1.hero-t{font-family:var(--min); font-weight:800; font-size:clamp(31px,3.6vw,45px); line-height:1.26; letter-spacing:.005em; text-align:left; text-indent:0; margin:0 0 16px; color:var(--navy); text-shadow:0 1px 2px rgba(255,255,255,.92),0 0 18px rgba(255,255,255,.6);}
  h1.hero-t .ht-l{display:block; white-space:nowrap;}
  h1.hero-t .sp-br{display:none;}
  h1.hero-t .ht-break{display:none;}
  /* 1行目が収まらない幅では「政治と暮らしを」の後で改行（語の途中で折り返さない） */
  @media (max-width:1180px){ h1.hero-t .sp-br{display:inline;} }
  h1.hero-t .accent{color:var(--navy); position:relative;}
  h1.hero-t .accent::after{content:""; position:absolute; left:0; right:0; bottom:.02em; height:.18em; background:var(--ivory-deep); border-radius:3px; z-index:-1;}
  .hero-d{font-size:18.5px; color:#283450; max-width:560px; margin:0 0 22px; line-height:1.85;}
  .hero-copy{position:relative; max-width:640px;}
  /* 法律意見書バッジ（サンバースト型の印章） */
  .legal-badge{margin:0 0 16px;}
  .lb-burst{width:124px; height:124px; border-radius:50%; display:grid; place-items:center; background:repeating-conic-gradient(var(--ivory-deep) 0 9deg, var(--ivory) 9deg 18deg); box-shadow:0 10px 24px rgba(15,53,98,.22);}
  .lb-core{width:96px; height:96px; border-radius:50%; background:#FFFDF6; border:2px solid #fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:1px; box-shadow:inset 0 0 0 1px var(--ivory-deep);}
  .lb-ic{font-size:20px; line-height:1; margin-bottom:1px;}
  .lb-main{font-family:var(--disp); font-weight:900; font-size:16.5px; color:var(--navy); line-height:1.1;}
  .lb-sub{font-size:12px; font-weight:700; color:#8a6d12; line-height:1.15;}
  .hero-d{text-shadow:0 1px 2px rgba(255,255,255,.9),0 0 10px rgba(255,255,255,.55);}
  .hero-cta{display:inline-block; margin-top:8px; font-size:17.5px; padding:15px 32px;}
  /* ヒーローの郵便番号ボックス（最短で「自分の議員」へ） */
  .hero-zip{max-width:480px; margin-top:8px;}
  .hz-label{display:block; font-size:14.5px; font-weight:700; color:#283450; margin-bottom:9px; text-shadow:0 1px 2px rgba(255,255,255,.9);}
  .hz-row{display:flex; gap:9px; max-width:100%;}
  .hz-input{flex:1; min-width:0; box-sizing:border-box; font-family:inherit; font-size:17px; padding:14px 16px; border:1.5px solid #c4d0e4; border-radius:13px; background:rgba(255,255,255,.96); color:var(--ink); box-shadow:0 4px 16px rgba(15,53,98,.12);}
  .hz-input:focus{outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(15,53,98,.16);}
  .hz-btn{white-space:nowrap; font-size:16.5px; padding:14px 22px;}
  .hz-note{min-height:18px; margin-top:8px; font-size:13px; font-weight:700; color:var(--against); text-shadow:0 1px 2px rgba(255,255,255,.9);}
  .hz-alt{display:inline-block; margin-top:6px; font-size:13.5px; font-weight:700; color:var(--navy); text-decoration:none; text-shadow:0 1px 2px rgba(255,255,255,.9);}
  .hz-alt:hover{text-decoration:underline;}
  @media (max-width:480px){ .hz-row{flex-direction:column;} .hz-btn,.hz-input{width:100%; max-width:100%; box-sizing:border-box;} }
  /* ===== 今週の国会ダイジェスト（kw） ===== */
  .kw-band{background:linear-gradient(180deg,#fff 0%,#F4F7FB 100%); border-bottom:1px solid var(--line); padding:46px 0 50px;}
  .kw-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:22px;}
  .kw-title{font-family:var(--min); font-weight:800; font-size:clamp(22px,3vw,30px); color:var(--navy); margin:0; line-height:1.3;}
  .kw-note{margin:7px 0 0; font-size:12.5px; color:var(--muted); line-height:1.6; max-width:560px;}
  .kw-date{display:inline-flex; align-items:center; gap:10px; font-size:15px; font-weight:700; color:#4a5468; white-space:nowrap;}
  .kw-new{font-size:11.5px; font-weight:800; letter-spacing:.08em; color:#fff; background:linear-gradient(135deg,var(--ivory),var(--ivory-deep)); border-radius:999px; padding:4px 11px; box-shadow:0 4px 12px rgba(200,149,28,.3);}
  .kw-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .kw-card{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:16px; padding:16px 17px; box-shadow:0 6px 18px rgba(15,53,98,.06); border-top:4px solid var(--indigo); transition:transform .18s cubic-bezier(.2,.7,.2,1), box-shadow .18s;}
  .kw-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(15,53,98,.14);}
  .kw-theme{font-family:var(--min); font-size:19px; font-weight:800; line-height:1.3; margin:0 0 9px; color:var(--navy);}
  .kw-card.t-edu{border-top-color:#2A9E82;} .kw-card.t-edu .kw-theme{color:#1f7d66;}
  .kw-card.t-bosai{border-top-color:#3E78C9;} .kw-card.t-bosai .kw-theme{color:#2f5fa8;}
  .kw-card.t-econ{border-top-color:#C0901C;} .kw-card.t-econ .kw-theme{color:#94700f;}
  .kw-card.vote{border-top-color:#0F3562;} .kw-card.vote .kw-theme{color:#0F3562;}
  .kw-sum{font-size:14px; line-height:1.85; color:#4a5468; margin:0 0 12px; flex:1;}
  .kw-sum b{color:var(--navy); font-weight:800;}
  .kw-foot{margin-top:auto; padding-top:11px; border-top:1px dashed var(--line); display:flex; flex-direction:column; gap:4px;}
  .kw-people{font-size:13px; color:#56607a;}
  .kw-people a{color:var(--indigo); font-weight:700; text-decoration:none;}
  .kw-people a:hover{color:var(--navy); text-decoration:underline;}
  .kw-meta{font-size:11.5px; color:var(--muted);}
  .kw-srcline{display:inline-block; margin-top:3px;}
  .kw-src{color:var(--indigo); font-weight:700; text-decoration:none;}
  .kw-src:hover{color:var(--navy); text-decoration:underline;}
  /* ダイジェストの立場表明（あなたはどう思う？） */
  .kw-stance{margin-top:12px; padding-top:12px; border-top:1px dashed var(--line);}
  .kws-q{font-size:13px; font-weight:700; color:var(--navy); margin-bottom:7px;}
  .kws-btns{display:flex; gap:6px;}
  .kws-b{flex:1; font-family:inherit; font-weight:700; font-size:13.5px; padding:8px 4px; border-radius:9px; border:1.5px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; transition:.15s;}
  .kws-b:hover{border-color:var(--navy);}
  .kws-b.agree.sel{background:var(--agree-bg); border-color:var(--agree); color:var(--agree);}
  .kws-b.neutral.sel{background:var(--neutral-bg); border-color:var(--neutral); color:var(--neutral);}
  .kws-b.against.sel{background:var(--against-bg); border-color:var(--against); color:var(--against);}
  .kws-res{margin-top:8px; min-height:16px;}
  .kws-note{font-size:12px; color:var(--muted);}
  .kws-h{font-size:12px; font-weight:700; color:var(--navy); margin-bottom:5px;}
  .kws-leg{display:flex; gap:10px; margin-top:6px; font-size:12px; font-weight:700;}
  .kws-leg .agree{color:var(--agree);} .kws-leg .neutral{color:var(--neutral);} .kws-leg .against{color:var(--against);}
  .kws-dis{margin-top:7px; font-size:11px; color:var(--muted); line-height:1.5;}
  .kw-votetag{display:inline-block; font-size:11px; font-weight:700; color:var(--navy); background:#EAF1F8; border-radius:6px; padding:2px 8px; margin-bottom:9px;}
  .kw-flow{display:block; text-align:center; margin-top:12px; font-size:15.5px; font-weight:800; color:#fff; text-decoration:none; background:var(--indigo); padding:12px 16px; border-radius:11px; box-shadow:0 5px 14px rgba(44,90,140,.28); transition:.15s;}
  .kw-flow:hover{background:var(--navy); transform:translateY(-1px); box-shadow:0 7px 18px rgba(15,53,98,.34);}
  /* シェアボタン */
  .share-box{display:flex; align-items:center; flex-wrap:wrap; gap:8px;}
  .share-box .sh-label{font-size:13px; font-weight:700; color:var(--muted);}
  .sh-btn{font-family:inherit; font-weight:700; font-size:13px; padding:7px 13px; border-radius:9px; border:1.5px solid var(--line); background:#fff; color:var(--navy); cursor:pointer; text-decoration:none; line-height:1; display:inline-flex; align-items:center;}
  .sh-btn:hover{filter:brightness(.97); border-color:var(--navy);}
  .sh-btn.x{background:#111; color:#fff; border-color:#111;}
  .sh-btn.line{background:#06C755; color:#fff; border-color:#06C755;}
  .mp-share-wrap{margin-top:14px; padding-top:13px; border-top:1px dashed var(--line);}
  /* 3問診断 */
  .quiz-band{background:#fff;}
  .quiz-card{max-width:620px; margin:8px auto 0; background:var(--cream); border:1px solid var(--line); border-radius:18px; padding:26px 26px 28px; box-shadow:var(--shadow-sm);}
  .qz-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .qz-step{font-size:12.5px; font-weight:700; color:var(--muted);}
  .qz-dots{display:flex; gap:6px;}
  .qz-dot{width:8px; height:8px; border-radius:50%; background:var(--line);}
  .qz-dot.on{background:var(--ivory-deep);}
  .qz-q{font-family:var(--min); font-size:20px; font-weight:800; color:var(--navy); margin:0 0 16px; line-height:1.5;}
  .qz-opts{display:flex; flex-direction:column; gap:10px;}
  .qz-opt{font-family:inherit; font-size:15.5px; font-weight:700; text-align:left; padding:14px 18px; border:1.5px solid var(--line); border-radius:13px; background:#fff; color:var(--ink); cursor:pointer; transition:.15s;}
  .qz-opt:hover{border-color:var(--navy); background:#F8FAFE; transform:translateY(-1px);}
  .qz-result{text-align:center;}
  .qz-r-emoji{font-size:40px; line-height:1;}
  .qz-r-lead{font-size:14px; color:var(--muted); margin-top:10px;}
  .qz-r-theme{font-family:var(--min); font-size:26px; font-weight:800; color:var(--navy); margin:2px 0 8px;}
  .qz-r-d{font-size:14.5px; color:#5a6480; line-height:1.8; margin:0 0 16px;}
  /* 診断結果の主役CTA：関心テーマの「みんなの声」へ */
  .qz-voice{display:flex; align-items:center; gap:13px; max-width:430px; margin:0 auto 14px; text-align:left; text-decoration:none; background:var(--navy); color:#fff; border-radius:16px; padding:15px 18px; box-shadow:0 10px 26px rgba(15,53,98,.22); transition:transform .15s, box-shadow .15s;}
  .qz-voice:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(15,53,98,.28);}
  .qz-voice-ic{font-size:26px; line-height:1; flex:none;}
  .qz-voice-tx{flex:1; min-width:0;} .qz-voice-tx b{display:block; font-size:16px; font-weight:800; line-height:1.4;} .qz-voice-tx small{display:block; font-size:12px; color:#cfe0f2; margin-top:2px;}
  .qz-voice-go{flex:none; font-size:20px; font-weight:800; color:var(--ivory);}
  .qz-r-links{display:flex; flex-direction:column; gap:9px; text-align:left; max-width:430px; margin:0 auto 18px;}
  .qz-link{display:block; padding:12px 16px; border:1.5px solid var(--line); border-radius:12px; background:#fff; color:var(--navy); font-weight:700; font-size:14.5px; text-decoration:none; transition:.15s;}
  .qz-link:hover{border-color:var(--ivory-deep); background:#FFFDF6;}
  .qz-again{font-family:inherit; font-size:13.5px; font-weight:700; color:var(--muted); background:none; border:0; cursor:pointer; text-decoration:underline;}
  /* 声の手応え（送信後の件数表示） */
  .thx-stat{margin:14px auto 0; max-width:460px; font-size:14px; line-height:1.75; color:var(--navy); background:#F8FAFE; border:1px solid var(--line); border-radius:12px; padding:13px 16px;}
  .thx-stat:empty{display:none;} .thx-stat b{color:var(--ivory-deep);}
  /* 声フォーム：公開オプトイン */
  .checkrow.optin .optin-note{display:block; font-size:12px; color:var(--against); margin-top:3px;}
  .thx-pub{margin:12px auto 0; max-width:470px; font-size:13.5px; line-height:1.75; color:var(--navy); background:#FFFCF4; border:1px solid #F1E4C0; border-radius:12px; padding:12px 16px;}
  .thx-pub a{color:var(--indigo); font-weight:700; text-decoration:none;}
  /* みんなの声フィード */
  .vf-viz{margin-bottom:26px;}
  .vf-viz-h{font-size:19px; font-weight:800; color:var(--navy); margin:0 0 6px;}
  .vf-viz-d{font-size:13px; line-height:1.7; color:var(--muted); margin:0 0 14px; max-width:660px;}
  .vf-chart{background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); padding:10px 14px;}
  .vf-chart svg{display:block; width:100%; height:auto;}
  .vf-bub{cursor:pointer;}
  .vf-bub circle{transition:filter .15s, stroke .15s;}
  .vf-bub:hover circle{filter:brightness(1.07);}
  .vf-bub:focus{outline:none;}
  .vf-bub.sel circle, .vf-bub:focus circle{stroke:var(--navy); stroke-width:3;}
  .vf-bar{display:flex; justify-content:space-between; align-items:center; gap:12px 18px; flex-wrap:wrap; margin-bottom:20px;}
  .vf-filter{display:flex; flex-wrap:wrap; gap:8px; flex:1 1 auto;}
  .vf-sort{display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--muted); white-space:nowrap; flex:0 0 auto;}
  .vf-sort select{font-family:inherit; font-size:13px; font-weight:700; color:var(--ink); padding:7px 12px; border-radius:999px; border:1.5px solid var(--line); background:#fff; cursor:pointer;}
  .vf-sort select:hover{border-color:var(--navy);}
  .vf-chip{font-family:inherit; font-size:13px; font-weight:700; padding:7px 14px; border-radius:999px; border:1.5px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; transition:.15s;}
  .vf-chip:hover{border-color:var(--navy);} .vf-chip.on{background:var(--navy); color:#fff; border-color:var(--navy);}
  .vf-feed{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
  .vf-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 20px; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;}
  .vf-top{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
  .vf-theme{font-size:11.5px; font-weight:800; color:var(--navy); background:#EAF1F8; border-radius:999px; padding:3px 11px;}
  .vf-attr{font-size:12px; color:var(--muted);}
  .vf-body{font-size:14.5px; line-height:1.85; color:#2b3550; margin:0 0 14px; overflow-wrap:anywhere;}
  .vf-foot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px dashed var(--line);}
  .vf-date{font-size:12px; color:var(--muted);}
  .vf-support{font-family:inherit; font-size:13px; font-weight:700; color:var(--muted); background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:6px 14px; cursor:pointer; transition:.15s;}
  .vf-support .vf-heart{color:#cfd6e2;}
  .vf-support:hover{border-color:var(--against);}
  .vf-support.on{color:var(--against); border-color:var(--against); background:var(--against-bg);}
  .vf-support.on .vf-heart{color:var(--against);}
  .vf-empty, .vf-loading{grid-column:1/-1; text-align:center; color:var(--muted); font-size:14px; padding:30px 0; line-height:1.9;}
  .vf-empty a{color:var(--indigo); font-weight:700;}
  .vf-more-wrap{text-align:center; margin-top:20px;}
  @media (max-width:680px){ .vf-feed{grid-template-columns:1fr;} }
  .kw-res{display:flex; justify-content:space-between; align-items:baseline; margin:2px 0 6px;}
  .kw-res .y{color:var(--navy); font-size:18px; font-weight:800;}
  .kw-res .n{color:#6b7488; font-size:15px; font-weight:700;}
  .kw-bar{height:12px; border-radius:7px; background:#E7EBF2; overflow:hidden; display:flex; margin:0 0 4px;}
  .kw-yes{background:var(--navy);} .kw-no{background:#C0C8D6;}
  .kw-more{text-align:center; margin-top:26px;}
  .kw-more .btn{font-size:16px; padding:13px 30px;}
  @media (max-width:920px){ .kw-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:540px){ .kw-grid{grid-template-columns:1fr;} }
  /* スマホ＝1枚表示の横スクロール（カルーセル）＋位置ドット */
  .kw-dots{display:none; justify-content:center; gap:7px; margin-top:14px;}
  .kw-dot{width:8px; height:8px; border-radius:50%; background:#C9D3E2; border:none; padding:0; cursor:pointer; transition:transform .2s, background .2s;}
  .kw-dot.on{background:var(--indigo); transform:scale(1.3);}
  @media (max-width:640px){
    .kw-grid{display:flex; grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:2px 4px 6px; margin:0 -4px; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
    .kw-grid::-webkit-scrollbar{display:none;}
    .kw-grid>.kw-card{flex:0 0 86%; scroll-snap-align:center; min-width:0;}
    .kw-card:hover{transform:none; box-shadow:0 6px 18px rgba(15,53,98,.06);}
    .kw-dots{display:flex;}
  }
  /* 検索バー（旧ヒーロー右のピッカーを直下へ移設） */
  .findband{background:var(--cream); padding:34px 0 8px; position:relative; z-index:5;}
  .findband .wrap{max-width:780px;}
  .do-list{display:flex; flex-wrap:wrap; gap:9px;}
  .do-pill{display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:600; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.16); padding:8px 14px; border-radius:11px;}

  .picker{background:#fff; color:var(--ink); border-radius:22px; box-shadow:var(--shadow); padding:20px; position:relative; box-sizing:border-box; max-width:100%;}
  .pk-asahi{display:flex; gap:11px; align-items:center; margin-bottom:13px;}
  .ava{flex:none; border-radius:50%; display:grid; place-items:center; background:var(--pink-soft); border:1.5px solid #CBDBEC;}
  .ava.lg{width:52px;height:52px;font-size:27px} .ava.md{width:42px;height:42px;font-size:22px} .ava.sm{width:31px;height:31px;font-size:17.5px}
  .pk-asahi .t{font-size:14.5px; color:#2b3550; font-weight:700} .pk-asahi .t b{color:var(--pink-deep)}
  .pk-tabs{display:flex; gap:6px; background:#F2F4FB; padding:5px; border-radius:14px; margin-bottom:15px;}
  .pk-tabs button{flex:1; font-family:var(--body); font-weight:700; font-size:15px; cursor:pointer; border:none; background:none; color:var(--muted); padding:10px; border-radius:10px; transition:.2s; white-space:nowrap;}
  .pk-tabs button.on{background:#fff; color:var(--navy); box-shadow:var(--shadow-sm);}
  @media (max-width:520px){ .pk-tabs button{font-size:13px; padding:9px 4px;} }
  .pk-pane{display:none} .pk-pane.on{display:block; animation:fade .3s ease}
  .zip-row{display:flex; gap:9px; max-width:100%}
  .zip-row input{flex:1; min-width:0; box-sizing:border-box; font-family:var(--body); font-size:16.5px; padding:13px 14px; border:1px solid var(--line); border-radius:12px;}
  .zip-row .btn{flex:none;}
  .pk-note{font-size:13px; color:var(--muted); margin:10px 2px 0}
  .map-wrap{position:relative}
  /* 地図タイル（地方→都道府県を地図から選ぶ。北海道=右上→九州=左下の色相グラデーション） */
  .tilemap{display:grid; gap:9px; justify-content:center;}
  .region-map{grid-template-columns:repeat(5,1fr); max-width:560px; margin:0 auto;}
  .pref-map{grid-template-columns:repeat(3,1fr); max-width:380px; margin:6px auto 0;}
  .tile{border:1.5px solid transparent; border-radius:14px; padding:13px 6px; text-align:center; cursor:pointer; font-weight:800; font-size:15.5px; line-height:1.25; color:#2a3346; background:#fff; box-shadow:0 4px 12px rgba(15,53,98,.06); transition:transform .16s cubic-bezier(.2,.7,.2,1), box-shadow .16s, background .16s, color .16s;}
  .tile small.cnt{display:block; font-weight:600; font-size:10px; letter-spacing:.04em; opacity:.72; margin-top:3px;}
  .tile:hover{transform:translateY(-3px); box-shadow:0 10px 22px rgba(15,53,98,.14);}
  .tile:active{transform:translateY(-1px);}
  .tile.sel{box-shadow:0 12px 24px rgba(15,53,98,.22); transform:translateY(-2px);}
  .ds-label{font-size:12.5px; font-weight:700; color:var(--muted); margin:2px 0 7px; text-align:center;}
  .ds-chips{display:flex; flex-wrap:wrap; gap:7px; justify-content:center;}
  @media (max-width:560px){
    .region-map{max-width:100%;} .pref-map{max-width:320px;}
    .tile{font-size:13px; padding:11px 3px; border-radius:12px;}
    .tile small.cnt{font-size:9px;}
    .tilemap{gap:6px;}
  }
  .jpmap{width:100%; height:auto; display:block}
  .region{cursor:pointer;}
  .region rect{fill:#EAF1F8; stroke:#CBDBEC; stroke-width:1.4; transition:fill .18s, stroke .18s;}
  .region text{font-family:var(--body); font-size:12.5px; font-weight:700; fill:#3a4366; text-anchor:middle; dominant-baseline:middle; pointer-events:none;}
  .region:hover rect, .region.sel rect{fill:var(--pink); stroke:var(--pink-deep);}
  .region:hover text, .region.sel text{fill:#fff;}
  .region.sel{filter:drop-shadow(0 6px 12px rgba(15,53,98,.35));}
  .pref-step{display:none; margin-top:12px;}
  .pref-step.on{display:block; animation:fade .25s ease}
  .pref-head{display:flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--navy); margin-bottom:8px;}
  .pref-back{font-size:13px; color:var(--indigo); background:#F2F4FB; border:1px solid var(--line); border-radius:8px; padding:3px 10px; cursor:pointer;}
  .pref-chips{display:flex; flex-wrap:wrap; gap:7px;}
  .pchip{font-size:14px; padding:7px 12px; border-radius:999px; border:1px solid var(--line); background:#fff; color:#3a4258; cursor:pointer; transition:.15s;}
  .pchip:hover,.pchip.sel{background:var(--navy); color:#fff; border-color:var(--navy);}
  .map-out{margin-top:11px; font-size:14.5px; color:var(--navy); min-height:22px} .map-out b{color:var(--pink-deep)}
  .map-go{display:none; margin-top:10px;}
  .map-go.on{display:block; animation:fade .25s ease}

  section.block{padding:72px 0;}
  .life{background:var(--cream);}
  .cards3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  .fcard{background:#fff; border:1px solid var(--sand); border-radius:20px; padding:24px; box-shadow:0 6px 18px rgba(120,98,40,.06); transition:transform .25s, box-shadow .25s;}
  .fcard:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(120,98,40,.12);}
  .fcard .ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:25px; background:var(--pink-soft); margin-bottom:14px;}
  .fcard h3{font-family:var(--disp); font-weight:700; font-size:19.5px; color:var(--navy); margin:0 0 7px;}
  .fcard p{font-size:15px; color:#6f6552; margin:0;}

  /* ===== origin (目安箱の由来) ===== */
  section.origin{background:#fff; position:relative; padding:86px 0;}
  .og-grid{display:grid; grid-template-columns:1fr 92px 1fr; gap:28px; align-items:stretch; max-width:1080px; margin:10px auto 0;}
  .og-card{border-radius:26px; padding:38px 36px; position:relative; overflow:hidden; box-shadow:var(--shadow-sm);}
  .og-card.edo{background:linear-gradient(165deg,#F8F2E2,#F1E6CB); border:1px solid #E2D3A8;}
  .og-card.now{background:linear-gradient(165deg,#11355C,#0C2748); border:1px solid #244974; color:#fff;}
  .og-illus{height:152px; margin:-8px 0 20px; display:flex; align-items:center; justify-content:center;}
  .og-illus svg{height:100%; width:auto; max-width:100%;}
  .og-card.edo .og-illus{filter:drop-shadow(0 9px 16px rgba(94,63,34,.16));}
  .og-card.now .og-illus{filter:drop-shadow(0 9px 18px rgba(0,0,0,.3));}
  .og-era{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:14px; font-weight:700; letter-spacing:.1em; padding:5px 14px; border-radius:999px; margin-bottom:16px;}
  .edo .og-era{color:#7a6322; background:#fff; border:1px solid #E2D3A8;}
  .now .og-era{color:#F4E6BC; background:rgba(230,180,58,.18); border:1px solid rgba(230,180,58,.45);}
  .og-card h3{font-weight:900; font-size:31px; margin:0 0 15px; letter-spacing:.02em;}
  .edo h3{color:#4a3c14;} .now h3{color:#fff;}
  .og-card p{font-size:17px; line-height:1.92; margin:0 0 13px;}
  .edo p{color:#5e512c;} .now p{color:#D4DCF1;}
  .og-card .pt{font-size:15.5px; font-weight:700; line-height:1.8; border-radius:13px; padding:14px 17px; margin-top:8px;}
  .edo .pt{color:#6a5a1e; background:#FFFDF4; border:1px dashed #DCC98F;}
  .now .pt{color:#F4E6BC; background:rgba(230,180,58,.12); border:1px dashed rgba(230,180,58,.5);}
  .og-mid{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px;}
  .og-line{flex:1; width:0; border-left:2px dashed #CBDBEC;}
  .og-arrow{flex:none; width:56px; height:56px; border-radius:50%; background:var(--pink-soft); border:2px solid var(--navy); display:grid; place-items:center; color:var(--pink-deep); font-size:26px; font-weight:800; box-shadow:0 7px 16px rgba(15,53,98,.16);}
  .og-mid .yr{writing-mode:vertical-rl; font-weight:700; font-size:14.5px; color:var(--muted); letter-spacing:.22em;}
  .og-re{max-width:1080px; margin:26px auto 0; text-align:center; font-size:17px; line-height:1.85; color:#54607A; background:var(--cream); border:1px solid var(--sand); border-radius:16px; padding:19px 24px;}
  .og-re b{color:var(--pink-deep); font-weight:900;}

  .loop-band{background:var(--cream);}
  .loop-card{background:#fff; border:1px solid var(--sand); border-radius:24px; padding:34px 26px; box-shadow:var(--shadow-sm); text-align:center;}
  .loop-card .k{font-family:var(--min); font-weight:800; font-size:clamp(22px,3vw,30px); color:var(--navy); letter-spacing:.03em; margin:0 0 6px;}
  .loop-card .ks{color:var(--muted); font-size:15.5px; margin:0 0 22px;}
  .loopsvg{width:100%; max-width:760px; height:auto; margin:0 auto; display:block;}
  .lp-node-l{fill:#2b3550} .lp-node-t{font-family:var(--disp); font-weight:700; fill:#fff}
  .lp-path{fill:none; stroke:var(--pink); stroke-width:2.4; stroke-linecap:round;}
  html.js .lp-path{stroke-dasharray:1; stroke-dashoffset:1;}
  html.js .loop-card.in .lp-path{animation:draw 1.6s ease forwards;}
  @keyframes draw{to{stroke-dashoffset:0}}
  .lp-cap{font-family:var(--body); font-weight:700; font-size:13.5px; fill:var(--indigo)}

  .feat-band{background:#F4F7FB;}
  .feat-band .wrap{padding:70px 22px;}
  /* 見出し：中央寄せのピル＋ゴールド下線（添付イメージ準拠） */
  .feat-head{text-align:left; margin-bottom:40px;}
  .feat-head .eyebrow{display:inline-block; background:var(--pink-soft); color:var(--pink-deep); padding:6px 18px; border-radius:999px; margin-bottom:14px;}
  .feat-head h2.sec{color:var(--navy); margin:0;}
  .feat-head h2.sec::after{content:""; display:block; width:64px; height:3px; border-radius:2px; background:var(--ivory-deep); margin:16px 0 0;}
  .feat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:0;}
  /* カード：縦構成（スラッシュ見出し → イラスト → 本文 → 大きな番号） */
  .feat{position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; background:#fff; border:1px solid var(--line); border-radius:20px; padding:32px 30px 28px; box-shadow:0 10px 30px rgba(15,53,98,.06); overflow:hidden; transition:transform .2s, box-shadow .2s;}
  .feat:hover{transform:translateY(-3px); box-shadow:0 18px 42px rgba(15,53,98,.11);}
  .ft-title{position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:14px; margin:0; font-family:var(--disp); font-weight:800; font-size:21px; color:var(--navy); line-height:1.4;}
  .ft-sl{flex:none; width:3px; height:24px; border-radius:2px; background:var(--navy);}
  .ft-sl.l{transform:rotate(-20deg);} .ft-sl.r{transform:rotate(20deg);}
  .ft-illus{position:relative; z-index:1; width:130px; height:130px; margin:16px 0 18px; display:grid; place-items:center; border-radius:50%; background:#EEF3FA;}
  .ft-illus svg{width:98px; height:98px; display:block;}
  .feat p{position:relative; z-index:1; margin:0; font-size:16px; line-height:1.85; color:#46506a; text-align:left;}
  .ft-num{position:absolute; left:16px; top:6px; z-index:0; font-family:var(--mono); font-weight:800; font-size:96px; line-height:1; color:rgba(15,53,98,.06); letter-spacing:-.04em; pointer-events:none;}

  .spons{background:var(--cream-2);}
  .spons .wrap{padding:46px 22px;}
  .sp-row{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:14px;}
  .sp-card{position:relative; background:var(--ad-bg); border:1px dashed var(--ad-line); border-radius:16px; padding:20px 16px; text-align:center;}
  .sp-card .tag{position:absolute; top:9px; left:11px; font-family:var(--mono); font-size:11.5px; font-weight:700; letter-spacing:.1em; color:var(--ad-label); background:#fff; border:1px solid var(--ad-line); padding:2px 7px; border-radius:6px;}
  .sp-card .ah{font-size:15.5px; font-weight:700; color:#6f5a23; margin:8px 0 3px;}
  .sp-card .ad-d{font-size:13px; color:#947c46;}
  .sp-note{text-align:center; max-width:780px; margin:48px auto 0; font-size:19.5px; line-height:2; color:#3f4a63; font-weight:500;}
  .sp-note b{color:var(--navy); font-weight:800; text-decoration:underline; text-decoration-color:var(--ivory-deep); text-decoration-thickness:2.5px; text-underline-offset:5px;}

  /* ===== 協賛社 ティア =====
     枠内には企業のバナー画像が入るため、枠自体は色を付けず白で統一。
     序列は「大きさ・余白・影の深さ・ラベルの格」で表現し、Platinumを最も際立たせる。 */
  .sp-band{padding:62px 0 16px;} .plat-band{background:var(--cream);}
  .sponsors{background:var(--cream-2); padding:56px 0;}
  .sponsors .wrap{max-width:1080px;}
  /* ティア見出し：各ティアの金属色で囲んだラベル。横幅はバナー枠と同じ（全幅）に */
  .sp-tier-label{display:block; margin:40px 0 14px;}
  .sp-tier-label.plat{margin:0 0 14px;}
  .sponsors .sp-tier-label.plat{margin-top:30px;}
  .sp-tier-label span{display:flex; align-items:center; justify-content:center; gap:10px; width:100%; box-sizing:border-box; padding:12px 20px; border-radius:13px; font-family:var(--mono); font-weight:800; letter-spacing:.2em; line-height:1.1;}
  .sp-tier-label span::before{content:"\25C6"; font-size:.78em; letter-spacing:0; opacity:.9;}
  .sp-tier-label.plat span{font-size:16.5px; background:linear-gradient(135deg,#F4F6FA,#CFD6E3); color:#293650; border:1px solid #C2CBDB; box-shadow:0 12px 26px rgba(15,53,98,.18);}
  .sp-tier-label.gold span{font-size:15.5px; background:linear-gradient(135deg,#EAC86B,#C5971C); color:#4a3804; box-shadow:0 10px 22px rgba(176,138,31,.28);}
  .sp-tier-label.silver span{font-size:15px; background:linear-gradient(135deg,#DFE4EC,#B3BBCA); color:#323b49; box-shadow:0 9px 20px rgba(70,80,100,.18);}
  .sp-tier-label.bronze span{font-size:14.5px; background:linear-gradient(135deg,#D6A572,#A6713B); color:#fff; box-shadow:0 9px 20px rgba(140,92,50,.28);}
  /* グリッド（すべて横長スロット） */
  .sp-grid{display:grid; gap:14px;}
  .sp-grid.g2{grid-template-columns:repeat(2,1fr);}
  .sp-grid.g3{grid-template-columns:repeat(3,1fr);}
  .sp-grid.g6{grid-template-columns:repeat(3,1fr); gap:12px;}
  .sp-grid.g9{grid-template-columns:repeat(3,1fr); gap:10px;}
  /* スロット共通：白地＝バナー画像が入る場所。今はプレースホルダ表示 */
  .sp-slot{position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; transition:transform .18s, box-shadow .18s;}
  .sp-slot:hover{transform:translateY(-2px);}
  .sp-slot .sp-tag{position:absolute; top:9px; left:11px; font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.12em; color:var(--muted); background:rgba(15,53,98,.05); padding:2px 7px; border-radius:6px;}
  .sp-slot .sp-ph{font-family:var(--disp); font-weight:700; font-size:14.5px; color:#9aa3b5; letter-spacing:.04em;}
  /* Platinum：最大・最も深い影・かすかなリングでひときわ際立たせる */
  .sp-slot.platinum{min-height:232px; border:1.5px solid #C9D3E6; box-shadow:0 0 0 4px rgba(15,53,98,.035), 0 30px 60px rgba(15,53,98,.18);}
  .sp-slot.platinum .sp-ph-lg{font-family:var(--disp); font-weight:900; font-size:clamp(19px,2.4vw,26px); color:var(--navy); letter-spacing:.05em;}
  .sp-slot.platinum .sp-ph-sub{font-size:14px; color:#7a8398; margin-top:3px;}
  /* Gold / Silver / Bronze：大きさと影の深さだけで段階をつける（枠の色は使わない） */
  .sp-slot.gold{min-height:150px; box-shadow:0 12px 26px rgba(15,53,98,.09);}
  .sp-slot.silver{min-height:108px; box-shadow:0 7px 16px rgba(15,53,98,.06);}
  .sp-slot.bronze{min-height:80px; box-shadow:0 3px 10px rgba(15,53,98,.045);}
  .sp-slot.bronze .sp-ph{font-size:13.5px;} .sp-slot.bronze .sp-tag{font-size:10.5px; top:7px; left:9px;}
  /* 実バナー：枠に入れた画像はトリミングせず中央に収める（ロゴ・横長バナーどちらも崩れない） */
  .sp-slot img{display:block; width:100%; height:100%; object-fit:contain; padding:16px 18px;}
  .sp-slot.platinum img{padding:26px 30px;}
  a.sp-slot{text-decoration:none;}
  /* 採用（仲間募集）バナー：プラチナ枠と同サイズ・Re目安箱の自社枠として配色を区別 */
  .rc-band{background:var(--cream); padding:18px 0 64px;}
  .rc-card + .rc-card{margin-top:18px;}
  .rc-card{position:relative; overflow:hidden; display:block; border-radius:20px; padding:48px 52px; min-height:320px; text-decoration:none; box-shadow:0 26px 56px rgba(11,30,55,.30); background-color:#0C2E54; background-size:cover; background-position:right center; background-repeat:no-repeat; transition:transform .2s, box-shadow .2s;}
  .rc-card::before{content:""; position:absolute; inset:0; background:linear-gradient(95deg, rgba(11,34,62,.96) 0%, rgba(11,34,62,.88) 32%, rgba(11,34,62,.5) 54%, rgba(11,34,62,.08) 76%, rgba(11,34,62,0) 100%);}
  .rc-card:hover{transform:translateY(-2px); box-shadow:0 34px 68px rgba(11,30,55,.40);}
  .rc-inner{position:relative; z-index:1; max-width:560px;}
  .rc-tag{display:inline-block; font-family:var(--mono); font-size:12px; font-weight:800; letter-spacing:.3em; color:var(--ivory); margin-bottom:15px;}
  .rc-h{font-family:var(--min); font-weight:800; font-size:clamp(20px,2.4vw,27px); color:#fff; line-height:1.52; letter-spacing:.01em; margin:0 0 14px; text-shadow:0 1px 12px rgba(11,30,55,.4);}
  .rc-d{font-size:14.5px; line-height:1.95; color:#d4ddec; margin:0 0 18px;}
  .rc-roles{display:flex; flex-wrap:wrap; gap:8px;}
  .rc-roles span{font-size:12.5px; font-weight:700; color:#eef2f9; border:1px solid rgba(255,255,255,.30); border-radius:999px; padding:6px 15px;}
  .rc-cta{display:inline-block; margin-top:20px; background:var(--ivory); color:var(--ivory-ink); font-weight:800; font-size:15px; padding:14px 28px; border-radius:12px; box-shadow:0 12px 26px rgba(230,180,58,.32); white-space:nowrap; transition:.15s;}
  .rc-card:hover .rc-cta{background:var(--ivory-deep); color:#fff;}
  @media (max-width:760px){ .rc-card{padding:34px 26px; min-height:0; background-position:74% center;} .rc-card::before{background:linear-gradient(180deg, rgba(11,34,62,.90) 0%, rgba(11,34,62,.88) 100%);} .rc-inner{max-width:none;} }
  /* スマホ最適化 */
  @media (max-width:760px){
    .sp-grid.g2{grid-template-columns:1fr;}
    .sp-grid.g3{grid-template-columns:1fr;}
    .sp-grid.g6{grid-template-columns:1fr 1fr;}
    .sp-grid.g9{grid-template-columns:1fr 1fr 1fr;}
    .sp-slot.platinum{min-height:162px;}
    .sp-slot.gold{min-height:104px;}
    .sp-slot.silver{min-height:82px;}
    .sp-slot.bronze{min-height:60px;}
    .sponsors{padding:40px 0;} .sponsors .wrap{padding:0 22px;}
    .sp-tier-label{margin:28px 0 12px; font-size:12.5px; letter-spacing:.16em;}
  }

  /* wide PR banner */
  .ad-wideband{background:#fff; padding:0 0 8px;}
  .ad-wide{position:relative; max-width:var(--max); margin:0 auto; background:var(--ad-bg); border:1px dashed var(--ad-line); border-radius:18px; padding:24px 20px; text-align:center;}
  .ad-wide .tag{position:absolute; top:10px; left:13px; font-family:var(--mono); font-size:11.5px; font-weight:700; letter-spacing:.1em; color:var(--ad-label); background:#fff; border:1px solid var(--ad-line); padding:2px 7px; border-radius:6px;}
  .ad-wide .ah{font-size:16.5px; font-weight:700; color:#6f5a23; margin:6px 0 3px;}
  .ad-wide .ad-d{font-size:13.5px; color:#947c46;}

  .demo{background:var(--cream);}
  .demo .wrap{padding:70px 22px;}
  .browser{background:#fff; border:1px solid var(--sand); border-radius:20px; box-shadow:var(--shadow); overflow:hidden; margin-top:8px;}
  .br-bar{display:flex; align-items:center; gap:7px; padding:11px 15px; background:#F4EEE1; border-bottom:1px solid var(--sand);}
  .br-bar .dotr{width:11px;height:11px;border-radius:50%} .br-bar .r1{background:#F0827E}.br-bar .r2{background:#F4C150}.br-bar .r3{background:#7FCB86}
  .br-url{flex:1; margin-left:8px; font-family:var(--mono); font-size:13.5px; color:#9a8e72; background:#fff; border:1px solid var(--sand); border-radius:8px; padding:5px 11px;}
  .br-body{padding:24px;}
  .seg{display:inline-flex; gap:5px; background:#F2F4FB; border:1px solid var(--line); padding:5px; border-radius:14px; margin:0 0 22px; flex-wrap:wrap;}
  .seg button{font-family:var(--body); font-weight:700; font-size:15px; cursor:pointer; border:none; background:none; color:var(--muted); padding:9px 15px; border-radius:10px; transition:.2s;}
  .seg button.on{background:linear-gradient(120deg,var(--pink),var(--pink-deep)); color:#fff;}
  .panel{display:none} .panel.on{display:block; animation:fade .3s ease}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .panel-head{font-family:var(--disp); font-weight:700; font-size:20px; color:var(--navy); margin:0 0 4px}
  .panel-sub{color:var(--muted); font-size:15px; margin:0 0 18px}
  .asahi{display:flex; gap:10px; align-items:flex-start; background:var(--pink-pale); border:1px solid #D7E0F2; border-radius:14px; padding:11px 13px; margin:0 0 16px; max-width:700px;}
  .asahi .bub{font-size:15px; color:#2b3550;} .asahi .bub b{color:var(--pink-deep)}
  .district{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 16px;}
  .badge{font-size:13px; font-weight:700; padding:4px 11px; border-radius:999px;}
  .badge.ok{color:#1d6b46; background:var(--agree-bg);} .badge.scope{font-size:13.5px; color:var(--navy); background:#fff; border:1px solid var(--line);}
  .grid-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
  .card{background:#fff; border:1px solid var(--line); border-radius:18px; padding:16px; box-shadow:var(--shadow-sm);}
  .m-top{display:flex; align-items:center; gap:11px;}
  .m-photo{width:46px;height:46px;border-radius:12px;background:#EAEEF7;display:grid;place-items:center;color:#9aa4ba;font-size:11.5px;flex:none;text-align:center;}
  .m-name{font-family:var(--disp); font-weight:700; font-size:17.5px; color:var(--navy);}
  .m-meta{font-size:13.5px; color:var(--muted);}
  .quote{background:#F8FAFE; border-left:3px solid var(--indigo); border-radius:0 10px 10px 0; padding:9px 11px; margin:11px 0 8px; font-size:15px; color:#2b3550;}
  .src{font-size:12.5px; color:var(--muted);} .src a{color:var(--indigo)}
  .m-actions{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;}
  .lk{font-size:14px; text-decoration:none; padding:7px 11px; border-radius:10px; cursor:pointer; border:1px solid var(--line);}
  .lk.sns{color:#fff; background:var(--navy); border-color:var(--navy);} .lk.sns .v{font-size:12px; opacity:.85}
  .lk.ghost{color:var(--navy); background:#fff;}
  .term{color:var(--indigo); border-bottom:1.5px dotted var(--pink); cursor:pointer;}
  .voice-banner{display:flex; align-items:center; gap:13px; cursor:pointer; max-width:700px; background:linear-gradient(120deg,var(--pink),var(--pink-deep)); color:#fff; border-radius:18px; padding:15px 17px; margin:18px 0 0; box-shadow:0 12px 24px rgba(15,53,98,.3); transition:transform .15s;}
  .voice-banner:hover{transform:translateY(-2px)}
  .voice-banner .ava{background:#fff5;border-color:#fff8;}
  .vb-t{font-weight:700; font-size:16.5px;} .vb-d{font-size:13.5px; opacity:.92;} .vb-arrow{margin-left:auto; font-size:22px;}
  .ad{position:relative; background:var(--ad-bg); border:1px dashed var(--ad-line); border-radius:14px; padding:18px 14px; margin:18px 0; text-align:center; max-width:700px;}
  .ad .tag{position:absolute; top:8px; left:10px; font-family:var(--mono); font-size:11.5px; font-weight:700; letter-spacing:.1em; color:var(--ad-label); background:#fff; border:1px solid var(--ad-line); padding:2px 7px; border-radius:6px;}
  .ad .ah{font-size:15px; font-weight:700; color:#6f5a23; margin:6px 0 2px;} .ad .ad-d{font-size:13px; color:#947c46;}
  .vbox{max-width:700px}
  .vote-q{font-family:var(--disp); font-weight:700; color:var(--navy); font-size:17.5px; margin:2px 0 2px;}
  .vote-opts{display:flex; gap:9px; margin:11px 0;}
  .vote-opts button{flex:1; font-family:var(--body); font-weight:700; font-size:15.5px; padding:13px 4px; border-radius:12px; cursor:pointer; border:1.5px solid var(--line); background:#fff; color:var(--ink); transition:.15s;}
  .vote-opts button.agree.sel{background:var(--agree-bg);border-color:var(--agree);color:var(--agree);}
  .vote-opts button.neutral.sel{background:var(--neutral-bg);border-color:var(--neutral);color:var(--neutral);}
  .vote-opts button.against.sel{background:var(--against-bg);border-color:var(--against);color:var(--against);}
  .tally{display:none; margin-top:8px;} .tally.show{display:block;}
  .bar-row{display:flex; align-items:center; gap:9px; margin:8px 0; font-size:14px;}
  .bar-row .lab{width:38px; color:var(--muted); font-weight:700;}
  .track{flex:1; height:13px; background:#EEF1F7; border-radius:8px; overflow:hidden;}
  .fill{height:100%; width:0; border-radius:8px; transition:width .6s cubic-bezier(.2,.7,.2,1);}
  .fill.agree{background:var(--agree)} .fill.neutral{background:var(--neutral)} .fill.against{background:var(--against)}
  .bar-row .pct{width:40px; text-align:right; font-weight:700; color:var(--ink);}
  .gate{font-size:14px; color:var(--muted); background:#F4F6FB; border-radius:10px; padding:10px 12px;}
  .gap{background:#fff; border:1px solid var(--line); border-radius:14px; padding:13px; margin-top:13px;}
  .gap h3{margin:0 0 8px; font-size:14.5px; color:var(--navy);}
  .gap .line{display:flex; justify-content:space-between; font-size:14.5px; padding:3px 0;}
  .gap .verdict{margin-top:8px; font-size:14.5px; font-weight:700; color:var(--pink-deep); background:var(--pink-soft); border-radius:10px; padding:9px 11px;}
  .ailabel{display:inline-block; font-family:var(--mono); font-size:12px; font-weight:700; color:#fff; background:var(--indigo); padding:2px 7px; border-radius:6px; letter-spacing:.04em; margin-right:6px;}
  .formwrap{max-width:700px}
  .lockbar{display:flex; gap:9px; align-items:flex-start; background:#EEF3FF; border:1px solid #D7E1F7; border-radius:13px; padding:12px; margin:0 0 18px; font-size:14px; color:var(--indigo);}
  .lockbar .ic{font-size:18.5px; display:inline-flex;} .lockbar .ic svg{width:18px; height:18px; display:block;} .lockbar a{color:var(--indigo); font-weight:700}
  .lockbar.note{background:var(--against-bg); border-color:#F0C2CE; color:#8d3a52; margin-top:-8px;}
  .lockbar.note b{color:#b23253;}
  .field{margin:0 0 14px;}
  .field label{display:block; font-size:13.5px; color:var(--muted); margin:0 0 6px; font-weight:700;}
  .field label .req{color:var(--pink-deep); font-size:12px; margin-left:5px; border:1px solid var(--pink); border-radius:5px; padding:0 5px;}
  .field input,.field select,.field textarea{width:100%; font-family:var(--body); font-size:15.5px; color:var(--ink); padding:11px 12px; border:1px solid var(--line); border-radius:11px; background:#fff;}
  .field textarea{min-height:112px; resize:vertical; line-height:1.65;}
  .field input,.field select,.field textarea{transition:border-color .15s, box-shadow .15s;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--pink); box-shadow:0 0 0 3px rgba(30,78,126,.14);}
  .field input::placeholder,.field textarea::placeholder{color:#9AA6B6;}
  .field .hint{font-size:13px; color:var(--muted); margin:6px 1px 0; display:flex; justify-content:space-between; gap:10px;}
  .charcount{font-family:var(--mono); color:var(--indigo); font-weight:700;}
  .row2{display:flex; gap:11px;} .row2>.field{flex:1}
  .chips{display:flex; flex-wrap:wrap; gap:8px;}
  .chip{font-size:14px; padding:7px 12px; border-radius:999px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; user-select:none; transition:.15s;}
  .chip.sel{background:var(--navy); color:#fff; border-color:var(--navy);}
  .checkrow{display:flex; gap:9px; align-items:flex-start; margin:6px 0 16px; font-size:14px; color:#3a4258;}
  .checkrow input{margin-top:3px; width:16px; height:16px;} .checkrow a{color:var(--indigo); font-weight:700}
  .submit{width:100%; font-family:var(--body); font-weight:700; font-size:16.5px; color:var(--ivory-ink); cursor:pointer; background:var(--ivory); border:1.5px solid var(--ivory-deep); padding:15px; border-radius:14px; box-shadow:0 10px 22px rgba(200,149,28,.32); transition:.2s;}
  .submit:not(:disabled):hover{transform:translateY(-1px)}
  .submit:disabled{opacity:1; color:#9AA6B6; background:#EEF1F5; border-color:#E2E8F1; box-shadow:none; cursor:not-allowed;}
  .thanks{display:none; text-align:center; padding:30px 10px; max-width:700px;}
  .thanks.show{display:block; animation:fade .35s ease;}
  .thanks .big{font-family:var(--min); font-size:20px; font-weight:800; color:var(--navy); margin:12px 0 5px;}
  .thanks .sm{font-size:14.5px; color:var(--muted);}
  .thanks .thx-msg{max-width:540px; margin:22px auto 4px; padding:18px 24px; background:var(--pink-pale); border:1px solid var(--pink-soft); border-radius:16px; font-size:16.5px; line-height:1.95; color:var(--navy); text-align:center;}
  .thanks .thx-msg b{color:var(--pink-deep); font-weight:800;}
  .thanks .again{margin-top:18px; font-size:14.5px; color:var(--navy); background:#fff; border:1px solid var(--line); padding:9px 15px; border-radius:11px; cursor:pointer; display:inline-block;}
  .learn-card{display:flex; gap:11px; align-items:center; background:var(--pink-pale); border:1px solid #D7E0F2; border-radius:14px; padding:13px; margin:0 0 14px; cursor:pointer; max-width:700px;}
  .learn-card .lc-h{font-family:var(--disp); font-weight:700; font-size:15.5px; color:var(--pink-deep);}
  .learn-card .lc-d{font-size:13.5px; color:#5a6480;} .learn-card .arr{margin-left:auto; color:var(--pink); font-size:20px;}
  .g-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; max-width:900px;}
  .g-item{display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; text-align:left; font-family:inherit; background:#fff; border:1px solid var(--line); border-radius:13px; padding:13px 14px;}
  .gw{font-family:var(--disp); font-weight:700; color:var(--navy); font-size:15.5px; display:flex; align-items:baseline; gap:7px; flex-wrap:wrap;}
  .gw-r{font-family:var(--body); font-weight:500; font-size:12.5px; color:var(--muted);}
  .gx{flex:none; width:24px; height:24px; border-radius:50%; background:var(--pink-pale); color:var(--pink-deep); font-size:17.5px; line-height:1; display:grid; place-items:center; transition:background .15s, color .15s, transform .15s;}
  .gsearch{max-width:900px; margin:0 0 16px} .gsearch input{width:100%; font-family:var(--body); font-size:15.5px; padding:11px 13px; border:1px solid var(--line); border-radius:12px;}
  /* よく調べられている用語ランキング */
  .g-rank{max-width:900px; margin:0 0 26px; background:var(--pink-pale); border:1px solid #D7E0F2; border-radius:16px; padding:16px 18px;}
  .gr-h{font-family:var(--disp); font-weight:900; color:var(--navy); font-size:16.5px; display:flex; align-items:center; gap:7px; margin-bottom:13px;}
  .gr-h b{color:var(--pink-deep);} .gr-fire{font-size:19.5px;}
  /* 1〜5を左の列に縦並び、6〜10を右の列に縦並び（column方向に流す） */
  .gr-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(5,auto); grid-auto-flow:column; column-gap:14px; row-gap:8px;}
  .gr-item{display:flex; align-items:center; gap:10px; width:100%; font-family:inherit; text-align:left; background:#fff; border:1px solid var(--line); border-radius:11px; padding:9px 12px; cursor:pointer; transition:transform .15s, box-shadow .15s, border-color .15s;}
  .gr-item:hover{border-color:#CBDBEC;}
  .gr-item:hover{transform:translateY(-1px); box-shadow:var(--shadow-sm);}
  .gr-n{flex:none; width:24px; height:24px; border-radius:50%; background:var(--navy); color:#fff; font-family:var(--mono); font-weight:700; font-size:14.5px; display:flex; align-items:center; justify-content:center;}
  .gr-item.top .gr-n{background:var(--ivory-deep); color:var(--navy);}
  .gr-w{font-family:var(--disp); font-weight:700; color:var(--navy); font-size:15px;}
  .gr-r{color:var(--muted); font-size:12.5px; margin-left:auto; white-space:nowrap;}
  .g-sec-h{font-family:var(--disp); font-weight:900; color:var(--navy); font-size:16.5px; max-width:900px; margin:0 0 12px; padding-bottom:7px; border-bottom:2px solid var(--ivory-deep);}
  .g-item{cursor:pointer; transition:box-shadow .15s, border-color .15s, transform .15s;}
  .g-item:hover{box-shadow:var(--shadow-sm); border-color:#CBDBEC; transform:translateY(-1px);}
  .g-item:hover .gx{background:var(--ivory-soft); color:var(--ivory-deep); transform:rotate(90deg);}
  /* 用語集のレスポンシブ：タブレットは2列、スマホは1列。ランキングはスマホで1〜10の縦1列に。 */
  @media (max-width:820px){ .g-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .g-grid{grid-template-columns:1fr;} }
  @media (max-width:860px){ .gr-list{grid-template-columns:1fr; grid-template-rows:auto; grid-auto-flow:row;} }
  .annot{font-size:13px; color:#7a6a3f; background:#FBF7EA; border:1px solid #ECE0BE; border-radius:11px; padding:10px 12px; margin:16px 0 2px; max-width:700px;} .annot b{color:#6a5a2c;}

  .faq{background:#fff;}
  .qa{max-width:780px; border:1px solid var(--line); border-radius:14px; margin-bottom:10px; overflow:hidden; background:#fff; box-shadow:var(--shadow-sm);}
  .qa button.q{display:flex; align-items:center; gap:11px; width:100%; text-align:left; font-family:var(--disp); font-weight:700; font-size:16.5px; color:var(--navy); background:none; border:none; cursor:pointer; padding:15px 17px;}
  .qa .mark{flex:none; width:26px; height:26px; border-radius:8px; background:var(--pink-soft); color:var(--pink-deep); display:grid; place-items:center; font-weight:800;}
  .qa .tg{margin-left:auto; color:var(--pink); font-size:19.5px; transition:transform .25s;}
  .qa.open .tg{transform:rotate(45deg);}
  .qa .a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .qa.open .a{max-height:600px;}
  .qa .a-in{padding:0 17px 15px 54px; font-size:15px; color:#3a4258;}

  footer.ft{background:#0E1330; color:#AEB7DA; padding:46px 22px 30px;}
  footer.ft .inner{max-width:var(--max); margin:0 auto;}
  footer.ft .brand{color:#fff} footer.ft .brand b{color:#F0E2B6}
  footer.ft .brand-logo{height:30px; filter:brightness(0) invert(1);}
  .ft .tag{font-family:var(--min); font-size:16.5px; color:#E6E9F6; margin:14px 0 0; letter-spacing:.04em;}
  .ft .links{display:flex; gap:18px; flex-wrap:wrap; margin-top:16px; font-size:14px;}
  .ft .links a{color:#AEB7DA; text-decoration:none;} .ft .links a:hover{color:#F0E2B6}
  .ft .disc{font-size:13px; color:#7e88b5; margin-top:14px; line-height:1.7;}

  .totop{position:fixed; right:18px; bottom:18px; z-index:45; width:44px; height:44px; border-radius:50%; border:none; cursor:pointer; color:#fff; font-size:19.5px; background:linear-gradient(120deg,var(--pink),var(--pink-deep)); box-shadow:0 10px 22px rgba(15,53,98,.35); opacity:0; pointer-events:none; transition:opacity .3s, transform .2s;}
  .totop.show{opacity:1; pointer-events:auto;} .totop:hover{transform:translateY(-2px)}

  .overlay{position:fixed; inset:0; background:rgba(8,20,38,.52); backdrop-filter:saturate(140%) blur(5px); -webkit-backdrop-filter:saturate(140%) blur(5px); display:none; z-index:60; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .22s ease;}
  .overlay.show{display:flex; opacity:1;}
  body.noscroll{overflow:hidden;}
  .sheet{position:relative; background:#fff; width:100%; max-width:560px; max-height:88vh; overflow-y:auto; border-radius:22px; padding:30px 30px 28px; box-shadow:var(--shadow); border-top:4px solid var(--ivory-deep); transform:translateY(14px) scale(.97); opacity:0; transition:transform .28s cubic-bezier(.2,.85,.25,1), opacity .28s ease;}
  .overlay.show .sheet{transform:none; opacity:1;}
  .sheet .sh-cat{font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ivory-deep);}
  .sheet .sh-w{font-family:var(--disp); font-weight:900; color:var(--navy); font-size:23px; line-height:1.3; margin:4px 0 0;}
  .sheet .sh-r{font-size:14px; color:var(--muted); margin-top:3px;}
  .sheet .sh-fig{display:none; margin:16px 0 2px; padding:16px; background:#F2F5FA; border:1px solid var(--line); border-radius:14px;}
  .sheet .sh-fig svg{display:block; width:100%; max-width:440px; height:auto; margin:0 auto;}
  .sheet .sh-fig .fig-cap{margin-top:10px; font-size:13.5px; color:var(--muted); text-align:center; line-height:1.6;}
  .sheet .sh-d{font-size:16.5px; color:#2f3c54; line-height:1.95; margin-top:16px; padding-top:16px; border-top:1px solid var(--line);}
  .sheet .sh-d b{color:var(--indigo); font-weight:700;}
  .sheet .sh-x{position:absolute; top:13px; right:13px; width:34px; height:34px; border:none; background:var(--pink-pale); color:var(--navy); border-radius:50%; font-size:19px; line-height:1; cursor:pointer; display:grid; place-items:center; transition:background .15s, transform .15s;}
  .sheet .sh-x:hover{background:var(--pink-soft); transform:rotate(90deg);}

  @media (max-width:860px){
    .hero{height:auto; min-height:clamp(460px,72vh,560px);}
    .hero .inner{padding:66px 22px 48px; box-sizing:border-box; display:block;}
    .hero-copy{width:100%; max-width:100%; box-sizing:border-box;}
    h1.hero-t .sp-br{display:inline;}
    .lb-burst{width:108px; height:108px;} .lb-core{width:84px; height:84px;}
    .lb-main{font-size:15px;} .lb-sub{font-size:11px;} .lb-ic{font-size:18.5px;}
    .legal-badge{margin-bottom:14px;}
    /* スマホ：文字の行だけに「ほぼ透明＋少しグレー」の下地を敷いて読みやすく（画像はそのまま見せる） */
    .hero .hero-bg{object-position:60% 22%;}
    .hero .hero-ov{background:linear-gradient(180deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.06) 45%, rgba(255,255,255,0) 100%);}
    .hero .inner{align-items:flex-start;}
    .hero-copy{background:none; border:none; box-shadow:none; padding:0; -webkit-backdrop-filter:none; backdrop-filter:none;}
    h1.hero-t .ht-break{display:inline;}
    h1.hero-t{line-height:1.52; text-shadow:0 1px 2px rgba(255,255,255,.7);}
    h1.hero-t .ht-l{display:inline; white-space:normal; -webkit-box-decoration-break:clone; box-decoration-break:clone; background:rgba(255,255,255,.55); color:var(--navy); padding:.04em .3em; border-radius:6px;}
    h1.hero-t .accent{color:var(--navy);} h1.hero-t .accent::after{display:none;}
    .hero-d{display:inline; white-space:normal; -webkit-box-decoration-break:clone; box-decoration-break:clone; background:rgba(255,255,255,.55); color:#20304c; line-height:2.05; padding:.08em .34em; border-radius:6px; text-shadow:0 1px 2px rgba(255,255,255,.65);}
    .hero-zip{margin-top:18px;}
    .hz-label{display:inline; -webkit-box-decoration-break:clone; box-decoration-break:clone; background:rgba(255,255,255,.55); color:#20304c; line-height:1.95; padding:.08em .34em; border-radius:6px; text-shadow:0 1px 2px rgba(255,255,255,.6);}
    .hz-row{margin-top:10px;}
    .hz-note{display:inline-block; background:rgba(255,255,255,.72); color:var(--against); padding:.1em .55em; border-radius:6px; text-shadow:none;}
    .hz-alt{display:inline; -webkit-box-decoration-break:clone; box-decoration-break:clone; background:rgba(255,255,255,.55); color:var(--navy); padding:.04em .3em; border-radius:6px; text-shadow:none;}
    .findband{padding:26px 0 6px;}
    .navtog{display:inline-flex;}
    .nav .inner{flex-wrap:wrap; row-gap:0;}
    .nav .links{display:none;}
    .nav.open .links{display:flex; flex-direction:column; order:9; width:100%; margin:10px 0 0; padding-top:6px; border-top:1px solid var(--line);}
    .nav.open .links a{font-size:17px; padding:14px 2px; border-bottom:1px solid var(--line);}
    .nav.open .links a:last-child{border-bottom:none;}
    .nav.open .navtog .ico-open{display:none;}
    .nav.open .navtog .ico-close{display:block;}
    .cards3,.feat-grid,.grid-cards{grid-template-columns:1fr;}
    .sp-row{grid-template-columns:1fr 1fr;}
    .og-grid{grid-template-columns:1fr; gap:16px;}
    .og-mid{flex-direction:row; padding:4px 0;}
    .og-mid .yr{writing-mode:horizontal-tb; letter-spacing:.14em;}
    .og-arrow{transform:rotate(90deg);}
    .og-line{flex:1; height:0; width:auto; border-left:none; border-top:2px dashed #CBDBEC;}
    .og-illus{height:128px; margin:-4px 0 16px;}
    section.block{padding:54px 0;}
    .br-body{padding:18px;}
  }
  @media (max-width:560px){ .sp-row{grid-template-columns:1fr;} }
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important; transition:none!important; scroll-behavior:auto!important;}
    html.js .reveal{opacity:1!important; transform:none!important;}
    html.js .lp-path{stroke-dasharray:none!important; stroke-dashoffset:0!important;}
  }

  /* ===== members page (議員検索) ===== */
  .mem-hero{position:relative; overflow:hidden; color:#fff;
    background:
      radial-gradient(820px 480px at 82% -12%, rgba(240,226,182,.40) 0, rgba(240,226,182,0) 60%),
      radial-gradient(700px 620px at 4% 112%, rgba(110,132,216,.42) 0, rgba(110,132,216,0) 60%),
      linear-gradient(158deg,#08203A 0,#0F3562 54%,#1C4E82 100%);}
  .mem-hero .inner{max-width:var(--max); margin:0 auto; padding:46px 22px 52px;}
  h1.mem-t{font-family:var(--min); font-weight:800; font-size:clamp(28px,4.4vw,44px); line-height:1.35; letter-spacing:.03em; margin:16px 0 12px;}
  .mem-t .accent2{color:#F0E2B6;}
  .mem-d{font-size:16.5px; color:#D7DCF1; max-width:560px; margin:0;}
  .mem-body{background:var(--cream);}
  .mem-controls{background:#fff; border:1px solid var(--sand); border-radius:18px; padding:16px; box-shadow:var(--shadow-sm); margin-bottom:18px;}
  .mem-filters{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:11px;}
  .mem-party{font-family:var(--body); font-size:15px; font-weight:700; color:var(--navy); padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer;}
  .mem-count{font-size:14px; color:var(--muted); margin-top:11px; font-weight:700;}
  .mem-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
  .mcard{display:block; text-decoration:none; color:inherit; background:#fff; border:1px solid var(--line); border-radius:15px; padding:13px 14px; box-shadow:var(--shadow-sm); transition:transform .15s, box-shadow .15s, border-color .15s;}
  .mcard:hover{transform:translateY(-3px); box-shadow:0 12px 26px rgba(18,23,51,.1); border-color:#CBDBEC;}
  .mc-top{display:flex; gap:11px; align-items:center;}
  .mc-photo{flex:none; width:50px; height:50px; border-radius:13px; object-fit:cover; object-position:top center; background:#EAEEF7; border:1px solid var(--line);}
  .mc-photo.ph{display:grid; place-items:center; color:#b4bccd; font-size:24px;}
  .mc-id{min-width:0;}
  .mc-arrow{margin-left:auto; color:var(--pink); font-size:20px; font-weight:700;}
  /* 政党バッジは全政党で同一の中立色（特定政党の色を連想させない） */
  .party-pill{flex:none; min-width:34px; min-height:34px; border-radius:10px; display:grid; place-items:center; padding:7px 9px; font-size:13.5px; font-weight:700; color:#3A4258; background:#EEF0F4; border:1px solid #DFE3EC; letter-spacing:.02em; text-align:center;}
  .mc-chip.party{color:#3A4258; background:#EEF0F4; border:1px solid #DFE3EC;}
  .house-chip.shu{color:var(--navy); background:#EEF1FB;}
  .house-chip.san{color:var(--navy); background:#EEF1FB;}
  .mc-name{font-family:var(--disp); font-weight:700; font-size:17px; color:var(--navy); line-height:1.4;}
  .mc-kana{font-size:12.5px; color:var(--muted);}
  .mc-meta{display:flex; flex-wrap:wrap; gap:5px; margin-top:9px;}
  .mc-chip{font-size:13px; font-weight:700; color:#3a4258; background:#F2F4FB; border-radius:7px; padding:3px 8px;}
  .mc-chip.dist{color:var(--pink-deep); background:var(--pink-pale);}
  .mc-chip.terms{color:#6f5a23; background:#FBF1DD;}
  .mem-empty{text-align:center; font-size:15.5px; color:var(--muted); background:#fff; border:1px dashed var(--line); border-radius:15px; padding:34px 16px;}
  .area-banner{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:linear-gradient(120deg,var(--pink-pale),#fff); border:1.5px solid #CBDBEC; border-radius:15px; padding:13px 16px; margin-bottom:14px;}
  .area-banner .ab-main{font-family:var(--disp); font-weight:700; font-size:16.5px; color:var(--navy);}
  .area-banner .ab-main b{color:var(--pink-deep);}
  .area-banner .ab-sub{flex:1 1 100%; order:3; font-size:13.5px; color:var(--muted);}
  .area-banner .ab-clear{margin-left:auto; font-family:var(--body); font-size:13.5px; font-weight:700; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:9px; padding:7px 12px; cursor:pointer;}
  .ab-districts{flex:1 1 100%; order:4; display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
  .dchip{font-family:var(--body); font-size:13.5px; font-weight:700; padding:6px 11px; border-radius:999px; border:1px solid var(--line); background:#fff; color:#3a4258; cursor:pointer; transition:.15s;}
  .dchip:hover{border-color:var(--pink);}
  .dchip.on{background:var(--pink-deep); color:#fff; border-color:var(--pink-deep);}
  @media (max-width:860px){ .mem-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .mem-grid{grid-template-columns:1fr;} }

  /* ===== member detail page (議員詳細) ===== */
  .member-hero .inner{padding:30px 22px 38px;}
  .mp-back{display:inline-block; font-size:14.5px; font-weight:700; color:#D7DCF1; text-decoration:none; margin-bottom:16px;}
  .mp-back:hover{color:#fff;}
  .mp-head{display:flex; gap:20px; align-items:center;}
  .mp-photo{flex:none; width:92px; height:92px; border-radius:18px; object-fit:cover; background:#EAEEF7; border:2px solid rgba(255,255,255,.25);}
  .mp-photo.ph{display:grid; place-items:center; color:#9aa4ba; font-size:12.5px; text-align:center; line-height:1.4; background:#fff;}
  .house-tag{display:inline-block; font-size:13px; font-weight:700; padding:3px 11px; border-radius:999px; margin-bottom:8px;}
  .house-tag.shu{color:#fff; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3);}
  .house-tag.san{color:#fff; background:rgba(110,132,216,.45); border:1px solid rgba(255,255,255,.3);}
  h1.mp-name{font-family:var(--min); font-weight:800; font-size:clamp(26px,4vw,38px); margin:0; letter-spacing:.03em;}
  .mp-kana{font-size:14.5px; color:#C9D0EC; margin-top:4px;}
  .mp-tags{display:flex; flex-wrap:wrap; gap:7px; margin-top:11px;}
  .mp-tag{font-size:13.5px; font-weight:700; color:#E6E9F6; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:8px; padding:4px 11px;}
  .mp-tag.party{color:#fff; background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.55);}

  .member-body{background:var(--cream);}
  .mp-grid{display:grid; grid-template-columns:1fr 320px; gap:18px; align-items:start;}
  .mp-grid>*{min-width:0;}  /* グリッド内の最小幅0＝モバイルで横はみ出しを防ぐ */
  .mp-card{background:#fff; border:1px solid var(--sand); border-radius:18px; padding:20px 22px; box-shadow:var(--shadow-sm); margin-bottom:16px;}
  .mp-card-h{font-family:var(--disp); font-weight:700; font-size:18.5px; color:var(--navy); margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line);}
  .mp-row{display:flex; gap:14px; padding:8px 0; border-bottom:1px dashed var(--line); font-size:15.5px;}
  .mp-row:last-child{border-bottom:none;}
  .mp-k{flex:none; width:96px; color:var(--muted); font-weight:700; font-size:14px;}
  .mp-v{color:var(--ink); font-weight:500;}
  .mp-career{margin-top:14px; background:var(--cream); border-radius:12px; padding:13px 15px;}
  .mp-career-h{font-size:13.5px; font-weight:700; color:var(--muted); margin-bottom:5px;}
  .mp-career p{margin:0; font-size:14.5px; color:#5a5340; line-height:1.7;}

  .sns-row{display:flex; flex-wrap:wrap; gap:9px;}
  .sns-link{display:inline-flex; align-items:center; gap:6px; font-size:14.5px; font-weight:700; padding:9px 14px; border-radius:11px; text-decoration:none;}
  .sns-link.official{color:#fff; background:var(--navy);}
  .sns-link.official:hover{filter:brightness(1.1);}
  .sns-link.social{color:var(--navy); background:#EAF1F8; border:1px solid var(--line);}
  .sns-link.social:hover{background:#dCe7f4; border-color:var(--navy);}
  .sns-link.pending{color:#9aa4ba; background:#F2F4FB; border:1px dashed var(--line); cursor:default;}
  .sns-link .v{font-size:12px; font-weight:700; color:#b8a06a; background:#FBF1DD; border-radius:5px; padding:1px 6px;}
  .mp-note{font-size:13px; color:var(--muted); margin:13px 0 0; line-height:1.7;}
  .mp-sub{font-size:14.5px; color:var(--muted); margin:0 0 14px; line-height:1.7;}
  .mp-todo{font-size:13.5px; color:#7a6a3f; background:#FBF7EA; border:1px solid #ECE0BE; border-radius:11px; padding:11px 13px; line-height:1.7;}

  .sp-loading,.sp-empty,.sp-found{font-size:14.5px; color:var(--muted); padding:6px 0;}
  .sp-found{font-weight:700; color:var(--indigo); margin-bottom:8px;}
  .sp-empty{background:var(--cream); border-radius:12px; padding:16px; line-height:1.8;}
  .sp-item{border:1px solid var(--line); border-radius:14px; padding:15px 16px; margin-bottom:13px; background:#fff;}
  .sp-meta{font-size:13.5px; color:var(--muted); font-weight:700; margin-bottom:8px;}
  .sp-group{margin-left:8px; color:var(--indigo); background:#EEF1FB; border-radius:6px; padding:2px 8px; font-size:12.5px;}
  .sp-body{font-size:15.5px; color:#2b3550; line-height:1.85; background:#F8FAFE; border-left:3px solid var(--indigo); border-radius:0 10px 10px 0; padding:11px 13px;}
  .sp-src{font-size:13px; color:var(--muted); margin:8px 0 0;}
  .sp-src a{color:var(--indigo); font-weight:700;}
  /* AI要約（参考）＝原文の上に併記 */
  .ai-sum{background:var(--pink-pale); border:1px solid var(--pink-soft); border-left:4px solid var(--ivory-deep); border-radius:12px; padding:13px 15px; margin-bottom:10px;}
  .ai-sum-h{display:flex; align-items:center; gap:8px; font-weight:800; color:var(--navy); font-size:14px; margin-bottom:8px;}
  .ai-badge{display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:800; letter-spacing:.06em; color:#fff; background:linear-gradient(135deg,var(--ivory),var(--ivory-deep)); border-radius:6px; padding:3px 8px;}
  .ai-sum ul{margin:0; padding-left:1.2em;}
  .ai-sum li{font-size:14.5px; line-height:1.8; margin:4px 0; color:#26304a;}
  .ai-sum .disc{font-size:12px; color:var(--muted); margin-top:10px; padding-top:8px; border-top:1px dashed var(--pink-soft); display:flex; flex-wrap:wrap; gap:5px 14px; align-items:center;}
  .ai-sum .disc a{color:var(--indigo); font-weight:700; text-decoration:none;}
  .ai-loading{font-size:13px; color:var(--muted);}
  /* 発言の原文（折りたたみ可・常時併記） */
  .orig{margin:0;}
  .orig>summary{cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; font-size:13px; color:var(--navy); font-weight:700; padding:2px 0;}
  .orig>summary::-webkit-details-marker{display:none;}
  .orig>summary::before{content:"▾"; color:var(--ivory-deep);}
  .orig:not([open])>summary::before{content:"▸";}
  .orig .orig-label{font-size:11px; color:var(--muted); background:#EEF2F8; border-radius:5px; padding:2px 7px; letter-spacing:.03em;}
  .orig-body{margin-top:7px; font-size:15px; color:#2b3550; line-height:1.95; white-space:pre-wrap; background:#F8FAFE; border-left:3px solid var(--indigo); border-radius:0 10px 10px 0; padding:11px 14px; max-height:280px; overflow-y:auto;}
  /* 議員ページ「次の一歩」 */
  .mp-next{list-style:none; margin:0; padding:0;}
  .mp-next li{margin:9px 0; font-size:14.5px; line-height:1.5;}
  .mp-next a{color:var(--indigo); font-weight:700; text-decoration:none;}
  .mp-next a:hover{color:var(--navy); text-decoration:underline;}
  .mp-next a::before{content:"→ "; color:var(--ivory-deep); font-weight:800;}
  /* 本文中の用語リンク（その場でポップアップ） */
  .gloss-link{display:inline; background:none; border:0; margin:0; padding:0; font:inherit; color:inherit; cursor:help; border-bottom:1px dashed rgba(200,149,28,.75); -webkit-appearance:none; appearance:none;}
  .gloss-link:hover,.gloss-link:focus-visible{color:var(--ivory-deep); border-bottom-color:var(--ivory-deep); outline:none;}
  /* Cookie同意バナー */
  .cookie-bar{position:fixed; left:16px; bottom:16px; z-index:300; max-width:540px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 34px rgba(15,53,98,.20); padding:15px 17px;}
  .cookie-bar .cb-text{font-size:13px; color:#3a4660; line-height:1.65;}
  .cookie-bar a{color:var(--indigo); font-weight:700; text-decoration:none;}
  .cookie-bar a:hover{text-decoration:underline;}
  .cookie-bar .cb-btns{display:flex; gap:8px; justify-content:flex-end; margin-top:11px;}
  .cookie-bar button{font-family:inherit; font-weight:700; font-size:13.5px; padding:8px 17px; border-radius:9px; cursor:pointer; border:0; transition:.15s;}
  .cookie-bar .cb-ok{background:var(--navy); color:#fff;} .cookie-bar .cb-ok:hover{filter:brightness(1.12);}
  .cookie-bar .cb-deny{background:#eef2fa; color:var(--navy);} .cookie-bar .cb-deny:hover{background:#e2e9f5;}
  .cookie-bar .cb-more{align-self:center; font-size:13px; font-weight:700; color:var(--indigo); text-decoration:none;} .cookie-bar .cb-more:hover{text-decoration:underline;}
  /* プライバシーポリシーの計測オプトアウト */
  .ga-optout{margin-top:12px; padding:12px 14px; background:#F8FAFE; border:1px solid var(--line); border-radius:10px; font-size:13px;}
  .ga-optout button{font-family:inherit; font-weight:700; font-size:13px; padding:7px 15px; border-radius:8px; border:1.5px solid var(--navy); background:#fff; color:var(--navy); cursor:pointer;}
  .ga-optout button:hover{background:var(--navy); color:#fff;}
  .ga-optout .st{margin-left:10px; color:var(--muted);}
  @media (max-width:560px){ .cookie-bar{left:10px; right:10px; bottom:10px; max-width:none;} }

  .st-wrap{margin-top:13px; padding-top:13px; border-top:1px dashed var(--line);}
  .st-q{font-size:14.5px; font-weight:700; color:var(--navy); margin-bottom:9px;}
  .st-opts{display:flex; gap:8px;}
  .st-btn{flex:1; font-family:var(--body); font-weight:700; font-size:15px; padding:10px 4px; border-radius:11px; cursor:pointer; border:1.5px solid var(--line); background:#fff; color:var(--ink); transition:.15s;}
  .st-btn.agree.sel{background:var(--agree-bg); border-color:var(--agree); color:var(--agree);}
  .st-btn.neutral.sel{background:var(--neutral-bg); border-color:var(--neutral); color:var(--neutral);}
  .st-btn.against.sel{background:var(--against-bg); border-color:var(--against); color:var(--against);}
  .st-msg{font-size:13px; color:var(--muted); margin-top:9px; line-height:1.6;}
  .st-msg b.agree{color:var(--agree);} .st-msg b.neutral{color:var(--neutral);} .st-msg b.against{color:var(--against);}
  /* 全国集計（立場表明） */
  .st-res{margin-top:10px;} .st-res:empty{display:none;}
  .st-collecting{font-size:12.5px; color:var(--muted); background:#F8FAFE; border:1px dashed var(--line); border-radius:9px; padding:8px 11px; line-height:1.6;}
  .st-collecting b{color:var(--navy);} .st-note{color:#9aa3b5;}
  .st-res-h{font-size:12.5px; font-weight:700; color:var(--navy); margin-bottom:6px;}
  .st-bar{display:flex; height:14px; border-radius:7px; overflow:hidden; background:#eef1f6;}
  .st-bar .seg{height:100%;} .st-bar .seg.agree{background:var(--agree);} .st-bar .seg.neutral{background:var(--neutral);} .st-bar .seg.against{background:var(--against);}
  .st-legend{display:flex; gap:14px; margin-top:7px; font-size:12.5px; font-weight:700;}
  .st-legend .agree{color:var(--agree);} .st-legend .neutral{color:var(--neutral);} .st-legend .against{color:var(--against);}

  .mp-card.side{padding:18px;}
  .voice-side{text-align:center; background:linear-gradient(160deg,#fff,var(--pink-pale)); border-color:#D7E0F2;}
  .vs-emoji{display:flex; justify-content:center; color:var(--indigo);} .vs-emoji svg{width:32px; height:32px; display:block;}
  .vs-t{font-family:var(--disp); font-weight:700; font-size:16.5px; color:var(--navy); margin:6px 0 4px;}
  .vs-d{font-size:14px; color:#5a6480; margin-bottom:13px;}
  .vs-btn{width:100%;}
  @media (max-width:860px){
    /* スマホは1カラム化し、カードを並べ替え可能に（声を届けるを最上部へ） */
    .mp-grid{display:flex; flex-direction:column;}
    .mp-col-main, .mp-col-side{display:contents;}
    .mp-card{min-width:0; width:100%; max-width:100%; box-sizing:border-box;}
    .voice-side{order:-1;}        /* ★最強み「声を届ける」を議員名の直下＝一番上に */
    .mp-head{gap:15px;}
    .mp-photo{width:74px; height:74px;}
  }

  /* ===== legal / doc pages (プライバシー・運営者情報) ===== */
  .doc-hero{background:linear-gradient(158deg,#141C40,#22306B); color:#fff;}
  .doc-hero .inner{max-width:820px; margin:0 auto; padding:38px 22px 30px;}
  .doc-hero .eyebrow{color:#F0E2B6;}
  h1.doc-t{font-family:var(--min); font-weight:800; font-size:clamp(24px,3.4vw,34px); margin:8px 0 6px; letter-spacing:.02em;}
  .doc-hero .doc-meta{font-size:14px; color:#C9D0EC;}
  .doc-body{background:var(--cream);}
  .doc-body .inner{max-width:820px; margin:0 auto; padding:40px 22px 60px;}
  .doc-draft{display:flex; gap:10px; align-items:flex-start; background:#FBF7EA; border:1px solid #ECE0BE; border-radius:13px; padding:13px 15px; margin:0 0 26px; font-size:14px; color:#7a6a3f; line-height:1.8;}
  .doc-draft .ic{font-size:18.5px;}
  .doc-section{background:#fff; border:1px solid var(--sand); border-radius:16px; padding:22px 24px; margin:0 0 16px; box-shadow:var(--shadow-sm);}
  .doc-section h2{font-family:var(--disp); font-weight:700; font-size:18.5px; color:var(--navy); margin:0 0 12px;}
  .doc-section h3{font-family:var(--disp); font-weight:700; font-size:16px; color:var(--indigo); margin:16px 0 7px;}
  .doc-section p{font-size:15.5px; color:#3a4258; line-height:1.9; margin:0 0 10px;}
  .doc-section ul{margin:0 0 10px; padding-left:1.2em;}
  .doc-section li{font-size:15.5px; color:#3a4258; line-height:1.9; margin:3px 0;}
  .doc-section .ph{color:var(--pink-deep); font-weight:700; background:var(--pink-pale); border-radius:5px; padding:1px 6px;}
  .doc-table{width:100%; border-collapse:collapse; margin:6px 0 12px; font-size:15px;}
  .doc-table th,.doc-table td{border:1px solid var(--line); padding:9px 11px; text-align:left; vertical-align:top;}
  .doc-table th{background:#F2F4FB; color:var(--navy); font-weight:700; width:34%;}
  .doc-updated{font-size:13.5px; color:var(--muted); margin-top:20px;}

  /* ===== できること アイコン（視認性UP） ===== */
  .fcard .ic{width:62px; height:62px; border-radius:18px; display:grid; place-items:center; color:#fff; background:linear-gradient(160deg,#235C90,#0F3562); box-shadow:0 8px 18px rgba(15,53,98,.22); margin-bottom:16px;}
  .fcard .ic svg{width:30px; height:30px; display:block;}
  .fcard .ic span{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));}

  /* ===== 特別協賛枠（ヒーロー直下の最上位の1枠） ===== */
  .premium-adband{background:var(--cream); padding:26px 0 6px;}
  .premium-ad{position:relative; max-width:var(--max); margin:0 auto; min-height:200px; display:flex; align-items:center; background:linear-gradient(135deg,#FFFDF6,#F6ECCF); border:1.5px solid var(--ivory-deep); border-radius:20px; padding:34px 28px; box-shadow:0 14px 34px rgba(15,53,98,.10);}
  .premium-ad .tag{position:absolute; top:12px; left:15px; font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:.12em; color:#8a6d12; background:#fff; border:1px solid var(--ivory-deep); padding:3px 9px; border-radius:7px;}
  .premium-ad .pa-body{display:flex; align-items:center; gap:18px; width:100%;}
  .premium-ad .pa-mark{flex:none; width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:24px; color:#fff; background:linear-gradient(150deg,#E2C871,#C9A23E); box-shadow:0 6px 14px rgba(176,140,40,.35);}
  .premium-ad .pa-h{font-family:var(--disp); font-weight:700; font-size:19.5px; color:var(--navy);}
  .premium-ad .pa-d{font-size:14.5px; color:#6f5a23; margin-top:3px;}

  /* ===== 由来内の循環（声→政策の往復） ===== */
  .cycle{max-width:980px; margin:30px auto 0;}
  .cycle-head{text-align:center; margin-bottom:22px;}
  .cycle-t{font-family:var(--min); font-weight:800; font-size:clamp(20px,2.8vw,26px); color:var(--navy); margin:0 0 8px;}
  .cycle-t .cy-accent{color:var(--indigo); position:relative;}
  .cycle-sub{font-size:15.5px; color:#5a5340; max-width:640px; margin:0 auto; line-height:1.85;}
  .cycle-steps{display:flex; align-items:stretch; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:8px;}
  .cstep{position:relative; flex:1 1 0; min-width:170px; max-width:248px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 20px 22px; text-align:center; box-shadow:0 10px 30px rgba(15,53,98,.07); transition:transform .2s, box-shadow .2s;}
  .cstep:hover{transform:translateY(-3px); box-shadow:0 16px 38px rgba(15,53,98,.12);}
  /* ステップ番号：カード右上に控えめなゴースト数字＋アイコン上の小バッジで階層を整理 */
  .cstep .cs-n{position:absolute; top:14px; right:18px; font-family:var(--mono); font-weight:800; font-size:34px; line-height:1; color:rgba(15,53,98,.10); letter-spacing:-.02em;}
  .cstep .cs-ic{position:relative; width:60px; height:60px; margin:2px auto 15px; border-radius:50%; background:linear-gradient(160deg,#2A5C92,#0F3562); color:#fff; display:grid; place-items:center; box-shadow:0 10px 22px rgba(15,53,98,.26);}
  .cstep .cs-ic svg{width:28px; height:28px; display:block;}
  .cstep h4{font-family:var(--disp); font-weight:800; font-size:17px; color:var(--navy); margin:0 0 6px;}
  .cstep p{font-size:14px; color:#5a6480; margin:0; line-height:1.75;}
  .cs-arrow{display:flex; align-items:center; color:#B4C0D8; font-size:20px; font-weight:700;}
  .cycle-loop{margin-top:14px; background:#fff; border:1px solid var(--sand); border-radius:20px; padding:22px 18px 16px; box-shadow:var(--shadow-sm); text-align:center;}
  .cycle-back{display:flex; flex-direction:column; align-items:center; gap:11px; max-width:620px; margin:28px auto 0; text-align:center; background:var(--pink-pale); border:1px solid var(--pink-soft); border-radius:18px; padding:20px 24px 22px;}
  .cycle-back .cb-loop{flex:none; width:46px; height:46px; border-radius:50%; background:var(--navy); color:#fff; display:grid; place-items:center; font-size:24px; box-shadow:0 8px 18px rgba(15,53,98,.28);}
  .cycle-back .cb-text{margin:0; font-family:var(--disp); font-weight:700; font-size:clamp(15px,2vw,17px); line-height:1.85; color:var(--navy);}
  .cycle-back .cb-text b{color:var(--pink-deep); border-bottom:2.5px solid var(--navy); padding-bottom:1px;}
  @media (max-width:860px){
    .cycle-steps{flex-direction:column; align-items:stretch;}
    .cstep{max-width:none;}
    .cs-arrow{justify-content:center; transform:rotate(90deg); margin:2px 0;}
  }

  /* ===== 議員ページのファーストビューに置くピッカー ===== */
  .mem-hero .inner{max-width:760px;}
  .mem-picker{max-width:620px; margin:22px auto 0; text-align:left;}
  .mem-picker .map-out{color:var(--navy);}
  @media (max-width:620px){ .mem-picker{margin-top:18px;} }

  /* ===== 声を届ける フローティングボタン（常設導線） ===== */
  .voice-fab{position:fixed; right:18px; bottom:18px; z-index:46; display:inline-flex; align-items:center; gap:8px; white-space:nowrap; font-family:var(--body); font-weight:700; font-size:15.5px; color:#fff; text-decoration:none; background:linear-gradient(120deg,var(--indigo),var(--navy)); padding:13px 18px; border-radius:999px; box-shadow:0 12px 28px rgba(15,53,98,.34); transition:transform .15s, box-shadow .2s;}
  .voice-fab:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(15,53,98,.42);}
  .voice-fab .fab-ic{display:inline-flex; line-height:1;}
  .voice-fab .fab-ic svg{width:18px; height:18px; display:block;}
  .totop.up{bottom:80px;}
  @media (max-width:560px){
    .voice-fab{right:14px; bottom:14px; padding:12px 16px; font-size:15px;}
    .totop.up{bottom:74px; right:14px;}
  }

  /* 地域バナー内の「この地域に声を届ける」ボタン */
  .ab-voice{flex:1 1 100%; order:5; margin-top:4px;}
  .ab-voice a{display:inline-flex; align-items:center; gap:7px; font-size:14.5px; font-weight:700; color:#fff; text-decoration:none; background:linear-gradient(120deg,var(--indigo),var(--navy)); padding:10px 16px; border-radius:11px; box-shadow:0 8px 18px rgba(15,53,98,.22);}
  .ab-voice a:hover{filter:brightness(1.08);}

  /* 議員詳細の声を届けるCTA（高意図） */
  .voice-side .vs-btn.send{background:linear-gradient(120deg,var(--indigo),var(--navy)); color:#fff; border:none; box-shadow:0 8px 20px rgba(15,53,98,.28);}
  .voice-side .vs-btn.send:hover{background:linear-gradient(120deg,var(--indigo),var(--navy)); filter:brightness(1.06); box-shadow:0 10px 24px rgba(15,53,98,.34);}

  /* 選挙区チップの見出し・調べ方ガイド */
  .dchip-label{flex:1 1 100%; order:3; font-size:14px; font-weight:700; color:var(--navy); margin:2px 0 4px;}
  .dchip-help{flex:1 1 100%; order:6; font-size:13.5px; color:var(--muted); margin-top:8px; line-height:1.7;}
  .dchip-help a{color:var(--indigo); font-weight:700;}

  /* 地図ピッカー3段目：小選挙区チップ */
  .dist-step{display:none; margin-top:12px;}
  .dist-step.on{display:block; animation:fade .25s ease;}
  .ds-label{font-size:14px; font-weight:700; color:var(--navy); margin-bottom:8px;}
  .ds-chips{display:flex; flex-wrap:wrap; gap:7px; max-height:200px; overflow:auto;}
  .dchip2{font-family:var(--body); font-size:14px; font-weight:700; padding:7px 12px; border-radius:999px; border:1px solid var(--line); background:#fff; color:#3a4258; cursor:pointer; text-decoration:none; transition:.15s;}
  .dchip2:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
