/* ちょうどスマホ代 — 青と白を基調に、電波の同心円と蛍光ペンを全ページ共通のモチーフにする
   (変数名 --green / --ledger は旧デザインの名残。値は青系) */
:root{
  --paper:#ffffff; --ledger:#eef3fb; --ledger-deep:#cddcf3; --line:#d3e2f6;
  --ink:#15202b; --ink-soft:#4a5968; --rule:#d6e2f2;
  --green:#0b3f91; --green-dark:#072c69; --marker:#ffdc5a; --stop:#b42318;
  --cta:#ffc93c; --cta-dark:#d39e00;
  --font:"Zen Maru Gothic","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --wide:72rem; --text:44rem;
  --head-h:4rem; --head-line:2px;   /* サイトのヘッダーの高さと下線。固定する見出し(掲載プランの表)の位置もここから計算する */
  --arcs:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='900' viewBox='0 0 900 900' fill='none' stroke='%23d3e2f6' stroke-width='2'%3E%3Ccircle cx='450' cy='450' r='120'/%3E%3Ccircle cx='450' cy='450' r='200'/%3E%3Ccircle cx='450' cy='450' r='280'/%3E%3Ccircle cx='450' cy='450' r='360'/%3E%3Ccircle cx='450' cy='450' r='440'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.85;font-feature-settings:"palt" 1;overflow-wrap:anywhere}
img,svg{max-width:100%}
a{color:var(--green-dark);text-underline-offset:.2em}
a:hover{color:var(--green)}
:focus-visible{outline:3px solid var(--marker);outline-offset:2px;box-shadow:0 0 0 1px var(--green-dark)}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 1.25rem}
@media (min-width:60rem){.wrap{padding:0 2.5rem}}
.prose{max-width:var(--text)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem 1rem;z-index:30}
.ico{width:1.5rem;height:1.5rem;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ledger-bg{background-color:var(--ledger)}
.hero.ledger-bg,.page-head.ledger-bg{background-image:var(--arcs);background-repeat:no-repeat;background-position:right -16rem top -9rem;background-size:56rem}
@media (max-width:47.99rem){.hero.ledger-bg,.page-head.ledger-bg{background-position:right -15rem top -12rem;background-size:32rem}}

/* ヘッダー */
.site-head{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:var(--head-line) solid var(--green)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--head-h)}
.brand{display:flex;align-items:center;gap:.55rem;min-height:2.75rem;white-space:nowrap;font-weight:700;font-size:1.08rem;color:var(--ink);text-decoration:none}
.brand svg{width:2.3rem;height:2.3rem;flex:none}
.brand span{padding:0;letter-spacing:.01em}
.menu-btn{display:inline-flex;align-items:center;gap:.4rem;font:inherit;font-size:.9rem;font-weight:700;background:#fff;border:1.5px solid var(--green);color:var(--green-dark);border-radius:6px;padding:.45rem .75rem;cursor:pointer}
.head-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:2px solid var(--green);padding:.5rem 1.25rem 1.25rem}
.head-nav.open{display:block}
.head-nav a{display:block;padding:.8rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);font-weight:700}
.head-nav a.go{background:var(--green);color:#fff;text-align:center;border-radius:6px;border:0;margin-top:1rem}
/* メニューの項目名が長くなったので、横並びにするのは幅1152px以上のときだけ。それより狭い画面ではメニューボタンで開閉する */
@media (min-width:72rem){
  .menu-btn{display:none}
  .head-nav{display:flex;position:static;align-items:center;gap:1.75rem;border:0;padding:0;background:none}
  .head-nav a{border:0;padding:.4rem 0;font-weight:400;font-size:.95rem;white-space:nowrap}
  .head-nav a[aria-current=page]{box-shadow:inset 0 -3px var(--marker);font-weight:700}
  .head-nav a.go{margin:0;padding:.6rem 1.3rem;font-weight:700}
}

/* 下層ページの見出し帯 */
.page-head{border-bottom:1px solid var(--rule)}
.page-head .wrap{display:grid;gap:1.5rem;align-items:center;padding-top:2.25rem;padding-bottom:2.25rem}
.crumb{font-size:.82rem;color:var(--ink-soft);margin:0 0 .6rem}
.crumb a{color:var(--ink-soft)}
.page-head h1{margin:0 0 .6rem}
.page-head .lead{margin:0;max-width:40rem}
.page-badge{display:none}
@media (min-width:48rem){
  .page-head .wrap{grid-template-columns:1fr auto;padding-top:3.25rem;padding-bottom:3.25rem}
  .page-badge{display:grid;place-items:center;width:8.5rem;height:8.5rem;border-radius:50%;background:#fff;border:2px solid var(--green);color:var(--green-dark);box-shadow:.5rem .5rem 0 var(--ledger-deep)}
  .page-badge .ico{width:4rem;height:4rem;stroke-width:1.4}
}

/* 見出しと本文 */
main{padding-bottom:0}
main>.wrap{padding-bottom:4.5rem}
h1{font-weight:900;font-size:clamp(1.6rem,4.2vw,2.6rem);line-height:1.45;margin:2.5rem 0 1.25rem;letter-spacing:.01em;word-break:auto-phrase;text-wrap:balance}
h2{font-weight:900;font-size:clamp(1.3rem,2.6vw,1.65rem);line-height:1.5;margin:3.5rem 0 1.1rem}
/* 見出しの下に短い黄色の棒を置く(ロゴ提案のトーンに合わせた共通の飾り) */
h2.bar,.section-head h2,.doc h2{position:relative;padding-bottom:.7rem;border-bottom:0}
h2.bar::after,.section-head h2::after,.doc h2::after{content:"";position:absolute;left:0;bottom:0;width:3.2rem;height:.32rem;border-radius:.2rem;background:var(--cta)}
h3{font-size:1.08rem;margin:2rem 0 .5rem;line-height:1.55}
p{margin:0 0 1.1rem}
.lead{font-size:1.06rem}
.note{font-size:.88rem;color:var(--ink-soft);line-height:1.75}
.marker{background:linear-gradient(transparent 58%,var(--marker) 58%);font-weight:700;padding:0 .08em}
/* 見出しの中では、見出しの太さ(900)をそのまま引き継ぐ。700に落とすと周りより細く見えてしまう */
h1 .marker,h2 .marker,.say .marker{font-weight:inherit}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"palt" 0;letter-spacing:0}
.nw{white-space:nowrap}
/* 折り返しの単位。このかたまりの途中では、できるだけ改行しない(収まらないときだけ中で折り返す) */
.ib{display:inline-block}
ul.plain,ol.plain{padding-left:1.3rem;margin:0 0 1.2rem}
ul.plain li,ol.plain li{margin-bottom:.45rem}
.section{padding:3.5rem 0}
.section>.wrap>h2:first-child{margin-top:0}
.section-head{max-width:var(--text);margin-bottom:2rem}
.section-head h2{margin:0 0 .6rem}
.section-head p{margin:0;color:var(--ink-soft)}
@media (min-width:60rem){.section{padding:5rem 0}}
.todo-fill{background:var(--marker);padding:0 .25em}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--cta);color:var(--green-dark);font:inherit;font-weight:900;border:0;border-radius:12px;padding:.95rem 1.7rem;text-decoration:none;cursor:pointer;text-align:center;min-height:3.2rem;box-shadow:0 4px 0 var(--cta-dark)}
.btn:hover{background:#ffd666;color:var(--green-dark)}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--cta-dark)}
.btn.wide{display:flex;width:100%}
.btn.ghost{background:#fff;color:var(--green-dark);border:2px solid var(--green);box-shadow:none}
.btn.ghost:hover{background:var(--ledger)}
.btn.big{font-size:1.1rem;padding:1.1rem 2.2rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}

/* トップ: メインビジュアル(説明｜3項目の入力欄｜結果のスマホ) */
.hero{overflow:hidden;border-bottom:1px solid var(--rule);position:relative}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6.5rem;background:#e3edfa}
.hero .wrap{position:relative;z-index:1;display:grid;gap:2rem;padding-top:2rem;padding-bottom:2.5rem}
.hero .tagline{display:inline-block;background:#fff;border:1.5px solid var(--green);color:var(--green);border-radius:6px;padding:.2rem .7rem;font-size:.8rem;font-weight:700;margin:0 0 1rem}
.hero h1{margin:0 0 1rem;font-size:clamp(1.85rem,3.4vw,2.5rem);line-height:1.45;text-wrap:wrap;word-break:normal}
.hero h1 .nw{white-space:nowrap}
/* 折り返しの単位。このかたまりの途中では、できるだけ改行しない(収まらないときだけ中で折り返す) */
.ib{display:inline-block}
.hero .sub{font-weight:700;font-size:1.12rem;line-height:1.7;margin:0 0 .6rem;color:var(--ink)}
.hero .lead{max-width:34rem;font-size:1rem;color:#36424f}
.hero .assure{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;gap:.55rem;font-size:.94rem;font-weight:500}
.hero .assure li{display:flex;gap:.55rem;align-items:center}
.hero .assure .ico{width:1.3rem;height:1.3rem;color:var(--green);stroke-width:2.3}
.quick{background:#fff;border:2px solid var(--green);border-radius:14px;padding:1.4rem;display:grid;gap:.95rem;box-shadow:.55rem .55rem 0 var(--ledger-deep);align-self:start}
.quick-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.quick-head{flex-wrap:wrap}
.quick-head b{font-size:clamp(1.08rem,4.6vw,1.25rem);font-weight:900;white-space:nowrap}
.quick-head span{font-size:.75rem;font-weight:700;color:var(--green);white-space:nowrap}
.quick .field{margin:0}
.quick label{font-size:.88rem}
.quick .n{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--green);color:#fff;font-size:.72rem;margin-right:.4rem;vertical-align:.08em}
.quick input[type=number]{font-weight:700;font-size:1.05rem}
.quick select,.quick .with-unit{min-height:3rem}
.quick .safe{display:flex;gap:.5rem;font-size:.78rem;line-height:1.7;color:#36424f;margin:0}
.quick .safe .ico{width:1.1rem;height:1.1rem;color:var(--green);margin-top:.15rem}
.hero-phone{display:none}
@media (min-width:48rem){.hero .wrap{grid-template-columns:1fr 23.5rem;align-items:start;gap:2.5rem;padding-top:3.25rem;padding-bottom:3.5rem}}
@media (min-width:68rem){
  .hero .wrap{grid-template-columns:minmax(0,1fr) 22rem 17rem;gap:2.25rem}
  .hero-phone{display:block;position:relative}
  .hero-phone::before{content:"";position:absolute;left:-2.1rem;top:14rem;width:1.6rem;height:1.3rem;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 24' fill='none' stroke='%230b3f91' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12h24M18 4l8 8-8 8'/%3E%3C/svg%3E")}
  .hero-phone .mv-phone{position:static;width:100%;transform:none;border-radius:2.8rem;padding:.65rem;background:var(--ink);box-shadow:none}
  .hero-phone .mv-phone::before{background:var(--ink)}
  .hero-phone .mv-screen{border-radius:2.2rem;padding:2.8rem 1.2rem 1.2rem;font-size:.8rem;min-height:33rem;display:flex;flex-direction:column;gap:.7rem}
  .hero-phone .mv-screen .big{font-size:1.3rem;font-weight:900;margin:0}
  .hero-phone .mv-screen .big em{font-size:1.25em}
}
.ph-top{display:flex;justify-content:space-between;align-items:center}
.ph-top b{font-size:.72rem;color:#fff;background:var(--green);border-radius:4px;padding:.1rem .5rem}
.ph-top span{font-size:.7rem;color:#5a6b7d}
.ph-rank{border-top:2px solid var(--ink);margin-top:.3rem}
.ph-rank div{display:grid;grid-template-columns:1.5rem 1fr auto;gap:.5rem;padding:.55rem 0;border-bottom:1px solid #e1e9f4;font-weight:700;font-size:.82rem}
.ph-rank div:first-child{background:#fff9e0}
.ph-rank div span:first-child{text-align:center;color:#5a6b7d}
.ph-rank div:first-child span:first-child{color:#8a5a00}
.ph-note{margin-top:auto;font-size:.68rem;line-height:1.6;color:#5a6b7d}
.mv{position:relative;max-width:31rem;margin:0 auto;width:100%;padding:1rem 0 10rem}
.mv-paper{background:#fff;border:1px solid var(--rule);border-radius:3px;padding:1.2rem 1.2rem 1rem;transform:rotate(-2.5deg);box-shadow:0 18px 40px -18px rgba(8,58,136,.45),0 2px 0 var(--ledger-deep);width:86%}
.mv-paper .ttl{display:flex;justify-content:space-between;font-weight:700;font-size:.9rem;border-bottom:2px solid var(--ink);padding-bottom:.4rem}
.mv-paper .ttl small{font-weight:400;color:var(--ink-soft)}
.mv-row{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.7rem 0;border-bottom:1px dashed var(--rule);font-size:.95rem}
.mv-row b{font-size:1.1rem}
.mv-row.hit b{margin-left:auto}
.mv-row.hit span{background:linear-gradient(transparent 50%,var(--marker) 50%);font-weight:700;padding:0 .15em}
.mv-sum{display:flex;justify-content:flex-start;gap:1.1rem;align-items:baseline;padding-top:.6rem;font-weight:700}
.mv-sum b{font-size:1.5rem}
.mv-callout{position:absolute;left:33%;top:5.15rem;display:flex;align-items:center;gap:.3rem;color:var(--green-dark);font-weight:700;font-size:.85rem;transform:rotate(-2.5deg)}
.mv-callout svg{width:2.6rem;height:1.6rem}
.mv-phone{position:absolute;right:0;bottom:0;width:44%;min-width:10.5rem;background:var(--green-dark);border-radius:1.6rem;padding:.55rem;transform:rotate(3deg);box-shadow:0 22px 44px -16px rgba(8,58,136,.6)}
.mv-phone::before{content:"";position:absolute;top:.95rem;left:50%;width:32%;height:.5rem;border-radius:1rem;background:var(--green-dark);transform:translateX(-50%);z-index:1}
.mv-screen{background:#fff;border-radius:1.15rem;padding:1.9rem .8rem 1rem;font-size:.72rem;line-height:1.5}
.mv-screen .k{color:var(--ink-soft)}
.mv-screen .big{font-size:1.02rem;font-weight:700;line-height:1.45;margin:.2rem 0 .7rem}
.mv-screen .big em{font-style:normal;background:linear-gradient(transparent 55%,var(--marker) 55%)}
.mv-bar{height:.8rem;border-radius:2px;background:var(--ledger-deep);margin:.15rem 0 .45rem}
.mv-bar{background:#c9d8ee}
.mv-bar.after{background:var(--green);width:71.1%}
.mv-screen .r{display:flex;justify-content:space-between}
.mv-pen{position:absolute;left:0;bottom:4.5rem;width:9.5rem;transform:rotate(-24deg)}

/* トップ: 約束の帯 */
.promise{background:#fff;border-bottom:1px solid var(--rule)}
.promise ul{list-style:none;margin:0;padding:1.5rem 0;display:grid;gap:1.1rem}
.promise li{display:flex;gap:.9rem;align-items:center;line-height:1.5}
.promise .pi{width:2.9rem;height:2.9rem;border-radius:50%;background:var(--ledger);color:var(--green);display:grid;place-items:center;flex:none}
.promise b{display:block}.promise span{font-size:.84rem;color:var(--ink-soft)}
@media (min-width:60rem){.promise ul{grid-template-columns:repeat(3,1fr);gap:2rem;padding:1.6rem 0}}
.brands{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.85rem;padding:1.1rem 0 1.4rem}
.brands b{margin-right:.4rem}
@media (max-width:47.99rem){.brands b{flex-basis:100%;margin:0 0 .15rem}}
.brands span{border:1px solid #c8d6ea;border-radius:999px;padding:.2rem .85rem;background:#fff}

/* 2つの診断の入口 */
.two-door{display:grid;gap:1.25rem}
@media (min-width:48rem){.two-door{grid-template-columns:1fr 1fr;gap:2rem}}
.door{display:grid;grid-template-rows:auto auto 1fr auto;gap:.5rem;text-decoration:none;color:var(--ink);background:#fff;border:2px solid var(--green);border-radius:6px;padding:1.5rem;box-shadow:.4rem .4rem 0 var(--ledger-deep);transition:transform .15s,box-shadow .15s}
.door:hover{transform:translate(-2px,-2px);box-shadow:.55rem .55rem 0 var(--ledger-deep);color:var(--ink)}
.door-ic{width:3.4rem;height:3.4rem;border-radius:50%;background:var(--ledger);color:var(--green-dark);display:grid;place-items:center}
.door-ic .ico{width:1.9rem;height:1.9rem}
.door b{font-size:1.25rem}
.door span{font-size:.95rem;color:var(--ink-soft);line-height:1.75}
.door em{font-style:normal;font-weight:700;color:var(--green-dark);text-decoration:underline;text-underline-offset:.2em;margin-top:.3rem}

/* 注意の囲み */
.notice{border:2px solid var(--marker);background:#fffbe3;border-radius:6px;padding:1.1rem 1.25rem;margin:2rem 0;max-width:var(--text)}
.notice b{display:flex;gap:.5rem;align-items:center;line-height:1.5;margin-bottom:.4rem}
.notice .ico{color:var(--green-dark)}
.notice p{margin:0;font-size:.95rem}
.notice.in-result{max-width:none;margin:0 0 1.5rem}

/* 日本語の改行を文節単位にして、1〜2文字だけの行を減らす(対応ブラウザのみ) */
.lead,.note,.hint,.cmp-list p,.sg-list p,.feature p,.steps p,.door span,.who li,.check-list span,.bill-row .what,.side-box,.notice p,.scope-col p,.promise span,.legend div{word-break:auto-phrase}

/* 端末の診断 */
.sg-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
@media (min-width:54rem){.sg-list{grid-template-columns:repeat(3,1fr)}}
.sg-list li{display:flex;flex-direction:column;background:#fff;border:1.5px solid var(--green);border-radius:6px;padding:.9rem 1rem;line-height:1.55}
.sg-list .lb{display:inline-block;align-self:flex-start;font-size:.75rem;font-weight:700;background:var(--marker);border-radius:3px;padding:0 .4rem;margin-bottom:.3rem}
.sg-list b{display:block;font-size:1.05rem}
.sg-list small{display:block;color:var(--ink-soft);font-size:.8rem}
.sg-list p{margin:.4rem 0 0;font-size:.86rem;color:var(--ink-soft);line-height:1.65}
.sg-rule{font-size:.82rem;color:var(--ink-soft);margin:.9rem 0 0;line-height:1.7}
.cand-grid{display:grid;gap:.5rem}
@media (min-width:40rem){.cand-grid{grid-template-columns:1fr 1fr}}
@media (min-width:64rem){.cand-grid{grid-template-columns:repeat(3,1fr)}}
.cand-grid label{display:grid;grid-template-columns:1.3rem 1fr;gap:.6rem;align-items:start;background:#fff;border:1.5px solid #8fa3bc;border-radius:4px;padding:.7rem .8rem;cursor:pointer;line-height:1.45}
.cand-grid input{accent-color:var(--green);width:1.15rem;height:1.15rem;margin:.2rem 0 0}
.cand-grid label:has(input:checked){border-color:var(--green);background:#f3f8ff;box-shadow:inset 0 0 0 1px var(--green)}
.cand-grid label:has(input:disabled){opacity:.45;cursor:not-allowed}
.cand-grid small{display:block;color:var(--ink-soft);font-size:.8rem}
.cmp-grid{display:grid;gap:1.5rem;margin:1.25rem 0}
@media (min-width:54rem){.cmp-grid.n2{grid-template-columns:1fr 1fr}.cmp-grid.n3{grid-template-columns:repeat(3,1fr)}}
.cmp-card{border:1px solid var(--rule);border-radius:6px;background:#fff;overflow:hidden;min-width:0}
.cmp-head{background:var(--green-dark);color:#fff;padding:1rem 1.1rem}
.cmp-head small{opacity:.85;font-size:.8rem;display:block}
.cmp-head b{font-size:1.15rem;line-height:1.4;display:block}
.cmp-tally{display:flex;gap:.4rem;margin-top:.6rem;font-size:.8rem;flex-wrap:wrap}
.cmp-tally span{background:rgba(255,255,255,.15);border-radius:2rem;padding:.05rem .6rem}
.cmp-warns{background:#fffbe3;border-bottom:1px solid var(--rule);padding:.75rem 1.1rem;display:grid;gap:.45rem;align-content:start}
.cmp-warns:has(.cmp-ok){background:#f3f8ff}
.cmp-warn,.cmp-ok{margin:0;font-size:.88rem;font-weight:700;line-height:1.6}
.cmp-ok{color:var(--green-dark)}
/* PCでは3枚のカードで同じ項目の行の高さをそろえる(subgrid)。見出し・注意・8項目・注記の計11行を共有する */
@supports (grid-template-rows:subgrid){@media (min-width:54rem){
  .cmp-grid{row-gap:0;grid-auto-rows:auto}
  .cmp-card{display:grid;grid-template-rows:subgrid;grid-row:span 11}
  .cmp-list{display:grid;grid-template-rows:subgrid;grid-row:span 8}
}}
.cmp-list{list-style:none;margin:0;padding:0}
.cmp-list li{display:grid;grid-template-columns:5.6rem 1fr;gap:.8rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--rule);align-items:start}
.cmp-list li:last-child{border-bottom:0}
.cmp-list li.mine{background:#f3f8ff}
.dir{display:inline-block;text-align:center;font-size:.76rem;font-weight:700;border-radius:3px;padding:.15rem 0;line-height:1.5;width:5.6rem;white-space:nowrap}
.dir.up{background:var(--green);color:#fff}.dir.same{background:var(--ledger-deep);color:var(--ink)}
.dir.down{background:#fff;color:var(--stop);border:1.5px solid var(--stop)}.dir.na{background:#fff;color:var(--ink-soft);border:1.5px dashed var(--ink-soft)}
.cmp-list b{display:block;line-height:1.5;font-size:.95rem}
.cmp-list p{margin:.1rem 0 0;font-size:.88rem;color:var(--ink-soft);line-height:1.7}
.cmp-list .you{font-size:.72rem;background:var(--marker);border-radius:3px;padding:0 .35rem;margin-left:.35rem;font-weight:700;vertical-align:.1em}
.cmp-foot{padding:.7rem 1.1rem;background:var(--ledger);font-size:.82rem;color:var(--ink-soft);line-height:1.6}

/* 使い方(3ステップ) */
.steps{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem;counter-reset:s}
.steps li{counter-increment:s;position:relative;background:#fff;border:1px solid var(--rule);border-radius:6px;padding:1.5rem 1.25rem 1.25rem}
.steps li::before{content:counter(s);position:absolute;top:-1rem;left:1.1rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--green);color:#fff;font-weight:700;display:grid;place-items:center}
.steps .pic{height:6.5rem;display:grid;place-items:center;color:var(--green-dark);background:var(--ledger);border-radius:4px;margin-bottom:1rem}
.steps .pic .ico{width:3.4rem;height:3.4rem;stroke-width:1.4}
.steps strong{display:block;font-size:1.05rem;margin-bottom:.3rem;line-height:1.5}
.steps p{margin:0;font-size:.94rem;color:var(--ink-soft);line-height:1.75}
@media (min-width:48rem){.steps{grid-template-columns:repeat(3,1fr);gap:1.75rem}}

/* 比べる範囲の図 */
.scope{display:grid;gap:1.5rem}
@media (min-width:54rem){.scope{grid-template-columns:1fr 1fr;gap:2rem}}
.scope-col{border:1px solid var(--rule);border-radius:6px;padding:1.4rem 1.25rem;background:#fff}
.scope-col.ours{border:2px solid var(--green)}
.scope-col h3{margin:0 0 1rem;font-size:1rem;display:flex;align-items:center;gap:.5rem}
.stack{display:grid;gap:4px}
.stack div{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.6rem .8rem;border-radius:3px;font-size:.9rem;line-height:1.4}
.stack .on{background:var(--green);color:#fff}
.stack .on.l2{background:#2e6bc9}.stack .on.l3{background:#6a97dd}.stack .on.l4{background:#a9c4ec;color:var(--ink)}
.stack .off{background:repeating-linear-gradient(135deg,#f2f5f9 0 8px,#e6ebf2 8px 16px);color:#7c8a99}
.scope-col p{font-size:.9rem;margin:1rem 0 0;color:var(--ink-soft)}

/* 特長 */
.features{display:grid;gap:0;border-top:1px solid var(--rule)}
.feature{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.4rem 0;border-bottom:1px solid var(--rule)}
.feature .fi{width:3.2rem;height:3.2rem;border-radius:50%;background:#fff;border:1.5px solid var(--green);color:var(--green-dark);display:grid;place-items:center}
.feature b{display:block;font-size:1.05rem;line-height:1.5;margin-bottom:.25rem}
.feature p{margin:0;font-size:.95rem;color:var(--ink-soft)}
@media (min-width:54rem){.features{grid-template-columns:1fr 1fr;column-gap:3rem}}

/* こんな人 */
.who{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.who li{display:flex;gap:.75rem;align-items:flex-start;background:#fff;border:1px solid var(--rule);border-left:5px solid var(--marker);border-radius:4px;padding:.9rem 1rem;line-height:1.6}
.who .ico{color:var(--green);margin-top:.1rem}

/* トップの「乗り換えの前に読む」: 1行ずつ(左に小さなサムネイル、右に題名と公開日)。件数が1でも3でも同じ形 */
.top-cols{list-style:none;padding:0;margin:0;display:grid;gap:.75rem;max-width:var(--text)}
.top-cols a{display:grid;grid-template-columns:6rem 1fr;gap:1rem;align-items:center;background:#fff;border:1px solid var(--rule);border-radius:6px;padding:.8rem;text-decoration:none;color:inherit}
.top-cols img{display:block;width:100%;height:auto;border-radius:4px;border:1px solid var(--rule)}
.top-cols b{display:block;line-height:1.5;word-break:auto-phrase;color:var(--green-dark);text-decoration:underline;text-underline-offset:.2em}
.top-cols small{display:block;margin-top:.3rem;color:var(--ink-soft)}
.top-cols a:hover b{color:var(--green)}
@media (min-width:48rem){.top-cols a{grid-template-columns:8rem 1fr;gap:1.25rem;padding:.9rem 1rem}}
.top-cols-more{max-width:var(--text);margin:1rem 0 0;text-align:right}
@media (min-width:48rem){.who{grid-template-columns:1fr 1fr}}
.cta-band{background:var(--green-dark);color:#fff;text-align:center;padding:3rem 0}
.cta-band h2{margin:0 0 .5rem;color:#fff}
.cta-band p{opacity:.9;margin-bottom:1.5rem}
.cta-band .btn{background:var(--cta);color:var(--green-dark);box-shadow:0 4px 0 var(--cta-dark)}
.cta-band .btn:hover{background:#ffec8a;color:var(--ink)}
.cta-box{background:var(--ledger);border:1px solid var(--rule);border-radius:6px;padding:1.5rem 1.25rem;margin:3rem 0 0}

/* 請求の明細 */
.bill{background:var(--ledger);border:1px solid var(--rule);border-radius:4px;padding:1.1rem 1.1rem .9rem;margin:1.75rem 0;max-width:var(--text)}
.bill-title{display:flex;justify-content:space-between;align-items:baseline;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:.4rem;margin-bottom:.2rem}
.bill-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:baseline;padding:.6rem 0;border-bottom:1px dashed var(--rule)}
.bill-row:last-child{border-bottom:0}
.bill-row .what{line-height:1.5}
.bill-row .what small{display:block;color:var(--ink-soft);font-size:.82rem;margin-top:.15rem}
.bill-row .yen{font-size:1.12rem;white-space:nowrap;font-weight:700;color:var(--green-dark)}
.bill-row .yen.minus{color:var(--stop)}

/* 流れ図 */
.flow{display:grid;gap:.6rem;margin:1.5rem 0;counter-reset:f}
.flow div{counter-increment:f;background:#fff;border:1.5px solid var(--green);border-radius:6px;padding:1rem;position:relative;line-height:1.55;font-size:.93rem}
.flow div b{display:block;font-size:1rem}
.flow div::before{content:counter(f);display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:.85rem;margin-bottom:.4rem}
.flow div.ng{border-style:dashed;border-color:var(--stop);background:#fff8f7}
.flow div.ng::before{content:"×";background:var(--stop)}
@media (min-width:54rem){.flow{grid-template-columns:repeat(4,1fr);gap:1.5rem}.flow div:not(:last-child)::after{content:"";position:absolute;right:-1.15rem;top:50%;width:.7rem;height:.7rem;border-top:2px solid var(--green);border-right:2px solid var(--green);transform:translateY(-50%) rotate(45deg)}}

/* 明細の見本(数字の探し方) */
.guide-grid{display:grid;gap:2rem;align-items:start}
@media (min-width:54rem){.guide-grid{grid-template-columns:20rem 1fr;gap:3.5rem}.guide-grid .sample{position:sticky;top:6rem}}
.sample{background:var(--green-dark);border-radius:1.8rem;padding:.6rem;max-width:20rem;margin:0 auto;width:100%;box-shadow:0 22px 44px -18px rgba(8,58,136,.55)}
.sample-screen{background:#fff;border-radius:1.3rem;padding:1.4rem 1rem 1.1rem;font-size:.85rem}
.sample-screen h3{margin:0 0 .6rem;font-size:.95rem;text-align:center}
.s-row{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem .5rem;border-bottom:1px solid var(--rule);align-items:center;line-height:1.4}
.s-row.pick{background:#fff9d6;outline:2px solid var(--marker);border-radius:3px;border-bottom-color:transparent}
.s-row.dim{color:#7c8a99}
.s-tag{display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:.78rem;margin-right:.35rem;flex:none}
.s-total{display:flex;justify-content:space-between;font-weight:700;padding:.7rem .5rem 0}
.keyed h3{display:flex;align-items:center;gap:.2rem}

/* 文書ページ */
.doc-layout{display:grid;gap:2rem;padding-top:1rem}
.doc-layout>.doc{min-width:0}   /* 本文の列が、中身(コラムの表など)の幅に引っ張られて広がらないように */
.doc h2{font-size:1.2rem;margin-top:2.75rem}
.doc h2:first-child{margin-top:1.5rem}
.doc dl{margin:1.5rem 0 0;border-top:1px solid var(--rule)}
.doc dl div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--rule)}
.doc dt{font-weight:700}.doc dd{margin:0}
.toc{display:none}
@media (min-width:60rem){.doc-layout{grid-template-columns:15rem 1fr;gap:4rem}
  .toc{display:block;position:sticky;top:6rem;align-self:start;font-size:.9rem;border-left:2px solid var(--ledger-deep);padding-left:1rem;margin-top:1.75rem}
  .toc b{display:block;margin-bottom:.5rem}.toc a{display:block;padding:.3rem 0;color:var(--ink-soft);text-decoration:none;line-height:1.5}.toc a:hover{color:var(--green-dark)}}

/* フォーム */
.shindan-layout{display:grid;gap:2rem;padding-top:1.5rem}
@media (min-width:62rem){.shindan-layout{grid-template-columns:minmax(0,1fr) 19rem;gap:3rem;align-items:start}
  .shindan-side{position:sticky;top:5.5rem}}
.shindan-side{display:grid;gap:1rem;order:-1}
@media (min-width:62rem){.shindan-side{order:0}}
.side-box{border:1px solid var(--rule);border-radius:6px;padding:1.1rem;background:#fff;font-size:.9rem;line-height:1.7}
.side-box h2{font-size:.98rem;margin:0 0 .6rem;display:flex;gap:.45rem;align-items:center}
.side-box .ico{color:var(--green)}
.side-box ol{margin:0;padding-left:1.2rem}.side-box li{margin-bottom:.25rem}
.side-box.safe{background:var(--ledger);border-color:var(--ledger-deep)}
.side-nav{display:none}
@media (min-width:62rem){.side-nav{display:block}}
.side-nav a{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px dashed var(--rule);text-decoration:none;color:var(--ink)}
.side-nav a small{color:var(--ink-soft)}
.form-block{background:var(--ledger);border:1px solid var(--rule);border-radius:14px;padding:1.25rem 1.1rem;margin:0 0 1.5rem}
@media (min-width:48rem){.form-block{padding:1.75rem}}
.form-block>h2{margin:0 0 1.1rem;font-size:1.15rem;display:flex;align-items:center;gap:.55rem}
.form-block>h2 .ico{color:var(--green);width:1.7rem;height:1.7rem}
.grid2{display:grid;gap:0 1.5rem}
@media (min-width:40rem){.grid2{grid-template-columns:1fr 1fr;align-items:end}}
.field{margin:0 0 1.35rem}
.field label,.field .lab{display:block;font-weight:700;line-height:1.5;margin-bottom:.3rem}
.field .hint{display:block;font-size:.85rem;color:var(--ink-soft);line-height:1.65;margin:-.05rem 0 .45rem;font-weight:400}
.req{font-size:.72rem;background:var(--green);color:#fff;border-radius:3px;padding:.1rem .4rem;margin-left:.4rem;vertical-align:.12em;font-weight:700}
input[type=number],input[type=text],input[type=month],select{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #8fa3bc;border-radius:6px;padding:.5rem .75rem;min-height:2.75rem;appearance:none;-webkit-appearance:none;text-align:left}
input[type=number]{font-variant-numeric:tabular-nums;-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 1.15rem) 55%,calc(100% - .8rem) 55%;background-size:.35rem .35rem;background-repeat:no-repeat;padding-right:2.2rem}
/* 単位つきの入力: 枠は外側に1つだけ。プルダウンと同じ幅・同じ高さになる */
.with-unit{display:flex;align-items:center;width:100%;background:#fff;border:1.5px solid #8fa3bc;border-radius:6px;min-height:2.75rem}
.with-unit input{flex:1;min-width:0;border:0;background:none;min-height:0;padding:.5rem .25rem .5rem .75rem;border-radius:6px}
.with-unit input:focus-visible{outline:0;box-shadow:none}
.with-unit:focus-within{outline:3px solid var(--marker);outline-offset:2px;box-shadow:0 0 0 1px var(--green-dark)}
.with-unit span{flex:none;padding:0 .8rem 0 .3rem;font-size:.92rem;color:var(--ink-soft);min-width:0}
.field.err .with-unit{border-color:var(--stop)}
/* 1列で置かれる入力欄は、横に伸びすぎないようにする */
.form-block>.field>select,.form-block>.field>.with-unit,.form-block>.field>input,details.more>.field>select,details.more>.field>.with-unit,details.more>.field>input{max-width:24rem}
.choice{display:flex;flex-wrap:wrap;gap:.5rem}
.choice label{font-weight:400;margin:0;display:flex;align-items:center;gap:.45rem;background:#fff;border:1.5px solid #8fa3bc;border-radius:6px;padding:.45rem .85rem;min-height:2.75rem;cursor:pointer}
.choice input{accent-color:var(--green);width:1.1rem;height:1.1rem;margin:0}
.choice label:has(input:checked){border-color:var(--green);background:#f3f8ff;box-shadow:inset 0 0 0 1px var(--green)}
.field.err input,.field.err select{border-color:var(--stop)}
.field .msg{display:none;color:var(--stop);font-size:.88rem;font-weight:700;margin-top:.3rem}
.field.err .msg{display:block}
details.more{border-top:1px solid var(--rule);margin-top:.5rem;padding-top:.25rem}
details.more.first{border-top:0;margin-top:0}
details.more>summary,details.calc>summary{cursor:pointer;list-style:none}
details.more>summary{font-weight:700;padding:.8rem 0;display:flex;justify-content:space-between;gap:1rem;align-items:center}
details.more>summary::-webkit-details-marker,details.calc>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:"開く";font-size:.8rem;font-weight:400;border:1px solid var(--green);border-radius:3px;padding:.15rem .6rem;color:var(--green-dark);background:#fff;white-space:nowrap}
details.more[open]>summary::after{content:"閉じる"}
details.more>summary small{display:block;font-weight:400;color:var(--ink-soft);font-size:.83rem}
.linklike{font:inherit;color:var(--green-dark);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.refine-head{margin:3rem 0 1.25rem;border-top:2px solid var(--green);padding-top:1.5rem}
.refine-head h2{margin:0 0 .4rem;display:flex;align-items:center;gap:.6rem}
.refine-head h2 small{font-size:.75rem;font-weight:700;background:var(--ledger-deep);border-radius:3px;padding:.1rem .5rem}
.refine-head p{margin:0;color:var(--ink-soft);font-size:.95rem}
.updated-flash{animation:flash 1s ease-out}
@keyframes flash{from{box-shadow:0 0 0 4px var(--marker)}to{box-shadow:0 0 0 0 transparent}}
#go-bar{margin-bottom:0}
.submit-bar{background:#fff;border:2px solid var(--green);border-radius:6px;padding:1.25rem;display:grid;gap:.75rem}
.submit-bar .btn-row{margin:0}

/* 入力中の試算(PCはサイドパネル、スマホは画面上部に固定) */
.live{background:var(--green-dark);color:#fff;border-radius:6px;padding:1rem 1.1rem;line-height:1.5}
.live-label{font-size:.78rem;opacity:.8;margin:0 0 .15rem}
.live-main{font-size:1.02rem;font-weight:700;margin:0}
.live[data-state=on] .live-main{font-size:1.75rem;font-variant-numeric:tabular-nums;font-feature-settings:"palt" 0}
.live-main small{font-size:.9rem;font-weight:400;margin-right:.2rem}
.live-main em{font-style:normal;color:var(--marker)}
.live-sub{font-size:.84rem;margin:.15rem 0 0;opacity:.92}
.meter{display:flex;align-items:center;gap:.25rem;margin:.7rem 0 0;font-size:.78rem}
.meter span{width:1.5rem;height:.4rem;border-radius:2px;background:rgba(255,255,255,.25);transition:background .3s}
.meter span.on{background:var(--marker)}
.meter b{font-weight:400;margin-left:.4rem;opacity:.9}
.live-why{font-size:.82rem;margin:.55rem 0 0;min-height:1.3em;color:var(--marker)}
.live-go{width:100%;margin-top:.8rem;background:var(--marker);color:var(--ink);box-shadow:0 3px 0 #c9ae2a;min-height:2.8rem;padding:.6rem 1rem}
.live-go:hover{background:#ffec8a;color:var(--ink)}
.live[data-state=empty] .live-go,.live[data-state=empty] .meter{display:none}
.live.bump .live-main{animation:bump .45s ease-out}
@keyframes bump{0%{transform:scale(1)}35%{transform:scale(1.06)}100%{transform:scale(1)}}
@media (max-width:61.99rem){
  .live{position:fixed;left:0;right:0;top:4.1rem;z-index:15;border-radius:0;padding:.55rem 1.25rem .6rem;display:grid;grid-template-columns:1fr auto;column-gap:.75rem;align-items:center;box-shadow:0 6px 14px -8px rgba(0,0,0,.5)}
  .live-label{grid-column:1/-1;margin:0}
  .live[data-state=on] .live-label{display:none}
  .live[data-state=on] .live-main{font-size:1.35rem}
  .live-main{font-size:.9rem}
  .live-sub{grid-column:1;font-size:.76rem;margin:0}
  .meter{grid-column:1;margin:.25rem 0 0}.meter span{width:1.1rem}
  .live-why{grid-column:1/-1;font-size:.76rem;margin:.2rem 0 0;min-height:0}
  .live-go{grid-column:2;grid-row:2/5;width:auto;margin:0;font-size:.85rem;padding:.5rem .8rem;min-height:2.6rem}
  .shindan-layout{padding-top:6.5rem}
}

/* 結果 */
#result[hidden]{display:none}
#result{margin-top:2.5rem}
.verdict{border-radius:6px;border:2px solid var(--green);padding:1.5rem 1.25rem;margin:0 0 1.5rem}
@media (min-width:48rem){.verdict{padding:2.25rem}}
.verdict .kicker{display:inline-block;font-size:.85rem;font-weight:700;background:var(--green);color:#fff;border-radius:3px;padding:.1rem .6rem;margin:0 0 .8rem}
.verdict .say{font-size:clamp(1.45rem,3.6vw,2.2rem);line-height:1.6;font-weight:700;margin:0 0 .6rem;word-break:auto-phrase}
.verdict .say .num{font-size:1.12em}
.verdict p:last-child{margin-bottom:0}
.verdict .rough{background:#fffbe3;border-left:4px solid var(--marker);padding:.5rem .8rem;font-size:.92rem}
.ba{display:grid;gap:.9rem;margin:1.5rem 0 0;background:#fff;border:1px solid var(--rule);border-radius:4px;padding:1rem}
.ba-row{display:grid;grid-template-columns:4.2rem 1fr;gap:.75rem;align-items:center;font-size:.88rem}
.ba-track{position:relative;height:2.4rem;background:repeating-linear-gradient(90deg,#eef3fa 0 1px,transparent 1px 10%)}
.ba-fill{height:100%;border-radius:0 3px 3px 0;display:flex;align-items:center;justify-content:flex-end;padding-right:.6rem;font-weight:700;color:var(--ink);background:var(--ledger-deep);min-width:5.5rem;white-space:nowrap;animation:grow .7s ease-out both;transform-origin:left}
.ba-fill.after{background:var(--green);color:#fff}
@keyframes grow{from{transform:scaleX(.2);opacity:.4}to{transform:none;opacity:1}}
.rank-list{list-style:none;margin:1rem 0 0;padding:0;border-top:2px solid var(--ink)}
.rank-list>li{border-bottom:1px solid var(--rule)}
.rank-list>li:first-child{background:#fffbe3}
details.calc>summary{display:grid;grid-template-columns:2.4rem 1fr auto;gap:.6rem;align-items:center;padding:.95rem .5rem}
details.calc>summary:hover{background:var(--ledger)}
.rk{font-weight:700;font-size:1rem;color:#fff;background:var(--green-dark);width:1.9rem;height:1.9rem;border-radius:50%;display:grid;place-items:center}
.pl b{display:block;line-height:1.45;font-size:1.05rem}
.pl small{color:var(--ink-soft);font-size:.82rem;display:block;line-height:1.5}
.amt{text-align:right;line-height:1.35}
.amt .num{font-size:1.15rem;font-weight:700;display:block}
.amt small{font-size:.8rem;color:var(--ink-soft)}
.amt small.minus{color:var(--stop)}
.amt small.open-hint{display:inline-block;font-size:.72rem;color:var(--green-dark);border:1px solid var(--green);border-radius:3px;padding:0 .4rem;margin:.25rem 0 0 .35rem;line-height:1.6;background:#fff}
details.calc[open] .open-hint{background:var(--green);color:#fff}
.calc-body{padding:.25rem .5rem 1.25rem 3.4rem;font-size:.92rem;max-width:44rem}
@media (max-width:30rem){.calc-body{padding-left:.5rem}}
.calc-body table{width:100%;border-collapse:collapse;margin:.2rem 0 .8rem}
.calc-body td{padding:.32rem 0;border-bottom:1px dashed var(--rule);vertical-align:top}
.calc-body td:last-child{text-align:right;white-space:nowrap;padding-left:1rem;font-variant-numeric:tabular-nums}
.calc-body tr.sum td{border-bottom:0;border-top:1px solid var(--ink);font-weight:700}
.tag{display:inline-block;font-size:.72rem;border:1px solid var(--ink-soft);border-radius:3px;padding:0 .35rem;margin-right:.3rem;color:var(--ink-soft);line-height:1.6;vertical-align:.1em}
.tag.ad{border-color:var(--stop);color:var(--stop)}
.ad-row{border-top:1px dashed var(--rule);margin-top:.6rem;padding-top:.6rem}
.ad-row p{margin:.2rem 0}
.ad-row a.off-link{display:inline-block;padding:.35rem 0;font-size:.9rem}
/* 「{ブランド名}で申し込む」のボタン。広告のあり・なしで見た目を同じにする。ブランド名と「で申し込む」の間は空けない */
.apply-btn{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.1rem 0;min-height:2.75rem;max-width:100%;padding:.5rem 1rem;border:2px solid var(--green);border-radius:8px;background:#fff;color:var(--green-dark);font-weight:700;font-size:.95rem;line-height:1.4;text-align:center;text-decoration:none;cursor:pointer}
.apply-btn:hover{background:var(--ledger);color:var(--green-dark)}
.apply-btn .apply-brand,.apply-btn .apply-code a{color:inherit;font-weight:700;text-decoration:none}
.apply-btn .apply-brand,.apply-btn .apply-code,.apply-btn .apply-label{white-space:nowrap}   /* ブランド名と「で申し込む」の途中では折らない(その間でだけ折れる) */
.apply-btn .tag.ad{margin:0 0 0 .45rem}
/* 広告のコードの a の押せる範囲を、ボタン全体に広げる(コードには class も style も足さず、外側のセレクタで指定する) */
.apply-btn .apply-code a::after{content:"";position:absolute;inset:0;border-radius:6px}
/* 1ピクセルの計測画像は、コードのまま残し、ボタンの隅に重ねてレイアウトに影響させない */
.apply-btn .apply-code img{position:absolute;left:0;top:0;width:1px;height:1px;pointer-events:none}
/* キーボードで選んだときの枠は、ボタン全体に出す */
.apply-btn .apply-code a:focus-visible{outline:none;box-shadow:none}
.apply-btn:focus-visible,.apply-btn.is-ad:has(a:focus-visible){outline:3px solid var(--marker);outline-offset:2px;box-shadow:0 0 0 1px var(--green-dark)}
/* 診断結果が「今のままで大丈夫」のときは、すべてのボタンを控えめにする(広告のあり・なしで同じ。［広告］と押せる範囲は変えない) */
#result-body.is-keep .apply-btn{border-width:1px;border-color:#8fa3bc;font-weight:400;font-size:.88rem}
#result-body.is-keep .apply-btn .apply-brand,#result-body.is-keep .apply-btn .apply-code a{font-weight:400}
.note.funding{margin:.4rem 0 .6rem}
.site-foot .funding{opacity:.85;font-size:.85rem;margin:1.5rem 0 0}
.excluded{font-size:.9rem;color:var(--ink-soft)}
.excluded li{margin-bottom:.3rem}
/* 申し込み前の確認: 見出しだけを並べた小さな囲み */
.tips{border:1px solid var(--rule);border-radius:10px;padding:1.1rem 1.2rem;margin:2rem 0 0;background:#fff}
.tips h2{font-size:1.05rem;margin:0 0 .5rem;padding:0}
.tips h2::after{display:none}
.tips .note{margin:0 0 .4rem}
.tip-list{list-style:none;margin:0;padding:0}
.tip-list li{border-top:1px dashed var(--rule)}
.tip-list li:first-child{border-top:0}
details.tip>summary{cursor:pointer;list-style:none;padding:.55rem 0;font-size:.93rem;font-weight:700;display:flex;justify-content:space-between;gap:.75rem;line-height:1.5}
details.tip>summary::-webkit-details-marker{display:none}
details.tip>summary::after{content:"＋";color:var(--green);font-weight:700;flex:none}
details.tip[open]>summary::after{content:"−"}
details.tip p{margin:0 0 .7rem;font-size:.88rem;color:var(--ink-soft);line-height:1.75}
details.more-tips{border-top:1px solid var(--rule);margin-top:.4rem}
details.more-tips>summary{font-weight:400;color:var(--ink-soft)}
details.more-tips .tip-list{padding-left:.8rem}
.check-list{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem}
@media (min-width:54rem){.check-list{grid-template-columns:1fr 1fr}}
.check-list li{display:grid;grid-template-columns:1.6rem 1fr;gap:.6rem;padding:.9rem;border:1px solid var(--rule);border-radius:4px;background:#fff}
.check-list li:has(input:checked){background:var(--ledger);color:var(--ink-soft)}
.check-list input{width:1.25rem;height:1.25rem;margin:.35rem 0 0;accent-color:var(--green)}
.check-list b{display:block;line-height:1.5}
.check-list span{font-size:.9rem;color:var(--ink-soft);line-height:1.7;display:block}
.device-grid{display:grid;gap:1rem;margin:1rem 0}
@media (min-width:40rem){.device-grid{grid-template-columns:1fr 1fr}}
@media (min-width:68rem){.device-grid{grid-template-columns:repeat(4,1fr)}}
.device-grid fieldset{border:1px solid var(--rule);border-radius:6px;padding:1rem;margin:0;background:#fff;min-width:0;display:flex;flex-direction:column}
.device-grid .device-out{margin-top:auto}
.device-grid fieldset>.note{margin-bottom:.8rem!important}
.device-grid legend{font-weight:700;padding:0 .3rem;line-height:1.45;font-size:.95rem}
.device-grid .field{margin-bottom:.8rem}
.device-grid .field label{font-weight:400;font-size:.88rem}
.device-out{border-top:1px solid var(--ink);padding-top:.5rem;font-size:.9rem;height:5.6rem;box-sizing:border-box;line-height:1.6}
.device-out .num{font-size:1.2rem;font-weight:700}
.device-grid fieldset.cheapest{border:2px solid var(--green);background:#fffbe3}

/* 表 */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 .5rem}
.filters button{min-height:2.75rem;font:inherit;font-size:.9rem;background:#fff;border:1.5px solid #8fa3bc;border-radius:2rem;padding:.35rem 1rem;cursor:pointer;color:var(--ink)}
.filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}
.table-scroll{overflow-x:auto;margin:1rem 0;border:1px solid var(--rule);border-radius:6px}
table.data{border-collapse:collapse;font-size:.88rem;min-width:78rem;width:100%}
table.data td:first-child{min-width:16rem}
table.data td:first-child b{display:block}
table.data td.nw,table.data th{white-space:nowrap}
table.data td.st{min-width:13rem}
table.data td.ds{min-width:11rem}
table.data th,table.data td{padding:.6rem .75rem;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;line-height:1.55}
table.data th{background:var(--green-dark);color:#fff;white-space:nowrap;font-weight:700;position:sticky;top:0}
table.data tbody tr:nth-child(even){background:#f5f9fe}
table.data td.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.data tr:last-child td{border-bottom:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 掲載プランの一覧(plans.html)。1152px 以上は表、768〜1151px は2列のカード、767px 以下は1列のカード。どれも横スクロールを出さない */
.plans-list{margin:1rem 0}
table.data.plans{min-width:0;width:100%;table-layout:fixed;font-size:.84rem;border:1px solid var(--rule)}
table.data.plans th,table.data.plans td{white-space:normal;padding:.55rem .5rem;overflow-wrap:anywhere}
table.data.plans th{top:calc(var(--head-h) + var(--head-line));z-index:5;line-height:1.35;vertical-align:bottom}   /* サイトのヘッダーのすぐ下に固定 */
table.data.plans td:first-child,table.data.plans td.ds{min-width:0}
table.data.plans td.n{white-space:normal}
table.data.plans .pl-name b{display:block}
table.data.plans .pn{display:block;color:var(--ink-soft);line-height:1.45}
table.data.plans .ck .st,table.data.plans .ck .dt{display:block}
table.data.plans .ck .dt{color:var(--ink-soft);font-variant-numeric:tabular-nums}
/* 表は 1152px 以上だけなので、表の幅は最大の 1072px。列の幅はその前提で配分する */
table.data.plans col.c-name{width:10%}
table.data.plans col.c-type{width:10.5%}   /* 回線の種類のタグ(いちばん長いのは「オンライン専用」)を1行に収める幅 */
table.data.plans col.c-tier{width:10.6%}
table.data.plans col.c-incl{width:8%}
table.data.plans col.c-opt{width:11%}
table.data.plans col.c-disc{width:12.3%}
table.data.plans col.c-other{width:12.5%}
table.data.plans col.c-check{width:10%}
table.data.plans col.c-link{width:15.1%}   /* 「ahamoで申し込む ［広告］」(約143px)が、8px 以上の余りをもって1行に収まる幅。足りないときは「で」のあとでだけ折れる */
/* 「無制限 +1,100円」「事務手数料 3,850円」などの1行は、途中で折らない */
table.data.plans .ln{white-space:nowrap}
table.data.plans .pt{white-space:nowrap;margin-right:0}   /* 回線の種類のタグは、単語の途中で折らない */
/* 掲載プランの一覧では、表でもカードでも、申し込みはボタンにせずテキストリンクにする(診断結果の内訳はボタン)。
   全プランに「公式サイトを見る」(公式サイトへのふつうのリンク)。提携中のプランだけ、その上に「ahamoで申し込む ［広告］」が加わる。
   押せる範囲は1行目の全体。幅が足りないときは「で」のあとでだけ折れる */
:is(#plans-table .lk,.col-ad) .apply-btn{display:block;min-height:0;margin:0;padding:.3rem 0;border:0;border-radius:0;background:none;color:var(--green-dark);
  font-weight:400;font-size:inherit;line-height:1.55;text-align:left;text-decoration:underline;text-underline-offset:.2em;white-space:nowrap}
/* 折れてよいのは「で」と「申し込む」の間だけ。ブランド名と「で」、「申し込む」と［広告］の間は、外側の nowrap で折らない */
:is(#plans-table .lk,.col-ad) .apply-btn .apply-label{white-space:normal}
:is(#plans-table .lk,.col-ad) .apply-btn .apply-verb{white-space:nowrap}
:is(#plans-table .lk,.col-ad) .apply-btn:hover{background:none;color:var(--green)}
:is(#plans-table .lk,.col-ad) .apply-btn .apply-code a{font-weight:400;text-decoration:underline;text-underline-offset:.2em;display:inline;padding:0;margin:0}
/* コードの中のリンクと計測画像の間の改行が、空白として描かれないようにする(「ahamoで申し込む」を続けて見せる) */
:is(#plans-table .lk,.col-ad) .apply-code{display:inline-flex}
:is(#plans-table .lk,.col-ad) .apply-btn .tag.ad{margin-left:.2rem;padding:0 .25rem;text-decoration:none}   /* 文字の大きさは変えず、余白だけ詰める */
:is(#plans-table .lk,.col-ad) .apply-btn .apply-code a::after{border-radius:0}
/* 「公式サイトを見る」は、全プランで同じ見た目のふつうのリンク */
:is(#plans-table .lk,.col-ad) a.off-link{display:inline-block;padding:.3rem 0;line-height:1.5}
:is(#plans-table .lk,.col-ad) .apply-btn+a.off-link{margin-top:.1rem}
table.data.plans td.lk{padding-left:.35rem;padding-right:.25rem}   /* 「ahamoで申し込む ［広告］」を1行に収めるため、リンクの列だけ左右の余白を詰める */
table.data.plans td.lk a.off-link{font-size:.8rem}
.plan-cards{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.plan-cards>li{border-bottom:1px solid var(--rule);padding:.95rem .5rem 1.1rem;display:flex;flex-direction:column}
.plan-cards>li[hidden]{display:none}   /* 絞り込みで隠したカードは、段組みからも外す(並びは左→右、上→下のまま詰まる) */
.plan-cards .pc-link{margin-top:auto;padding-top:.7rem}   /* 同じ行のカードで、リンクと広告の位置を下端に揃える */
@media (min-width:48rem){
  /* 768〜1151px は2列。CSS Grid で左→右、上→下に並べ、同じ行のカードは高さを揃える(align-items の既定の stretch) */
  .plan-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
}
.plan-cards .pc-head b{display:block;line-height:1.45;font-size:1.05rem}
.plan-cards .pc-head .pn{display:block;color:var(--ink-soft);font-size:.82rem;line-height:1.5}
.plan-cards .pc-head .pc-type{display:inline-block;margin-top:.35rem;border:1px solid var(--ink-soft);border-radius:3px;padding:0 .35rem;font-size:.72rem;line-height:1.6}
.plan-cards dl{margin:.6rem 0 0;font-size:.9rem}
.plan-cards dl>div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.75rem;padding:.4rem 0;border-bottom:1px dashed var(--rule)}
.plan-cards dt{color:var(--ink-soft);font-size:.82rem;line-height:1.6}
.plan-cards dd{margin:0;line-height:1.6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.plan-cards dd .st,.plan-cards dd .dt{display:block}
.plan-cards dd .dt{color:var(--ink-soft)}
.plan-cards .pc-link{font-size:.95rem}
.plan-cards .pc-link a.off-link{padding:.45rem 0}   /* カードでは、押しやすいように上下の余白を広めにとる */
.legend{display:grid;gap:1rem;margin:1.5rem 0}
@media (min-width:54rem){.legend{grid-template-columns:repeat(3,1fr)}}
.legend div{border:1px solid var(--rule);border-top:4px solid var(--green);border-radius:4px;padding:1rem;font-size:.92rem;background:#fff}
.legend div.l2{border-top-color:#6a97dd}.legend div.l3{border-top-color:var(--marker)}
.legend b{display:block;margin-bottom:.2rem}

/* フッター */
.site-foot{margin-top:0;color:#dbe6f7;background:#0a2a5e;font-size:.9rem;padding:3rem 0 2rem}
.foot-grid{display:grid;gap:2rem}
@media (min-width:54rem){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-foot .brand{color:#fff}.site-foot .brand span{background:none;padding:0}
.site-foot .catch{font-weight:700;font-size:1rem;opacity:1;color:var(--cta);margin:.9rem 0 0}
.site-foot .catch span{display:inline-block}   /* 幅が足りれば1行、足りなければ「、」のあとでだけ折る */
.site-foot p{opacity:.8;line-height:1.8;font-size:.86rem;margin:.75rem 0 0}
.site-foot h2{font-size:.9rem;margin:0 0 .6rem;color:var(--marker);border:0;padding:0}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin-bottom:.4rem}
.site-foot a{color:#fff;text-decoration:none}.site-foot a:hover{text-decoration:underline;color:#fff}
.site-foot small{display:block;border-top:1px solid rgba(255,255,255,.2);margin-top:2rem;padding-top:1.25rem;opacity:.75;line-height:1.7}
table.data td:last-child a{display:inline-block;padding:.6rem .4rem;margin:-.4rem 0}
/* コラム(columns.html と column-*.html)。記事のページは、文書のページと同じ「目次+本文」の型 */
.col-byline{display:flex;flex-wrap:wrap;gap:.2rem 1.1rem;margin:.9rem 0 0;font-size:.85rem;color:var(--ink-soft)}
.col-byline a{color:var(--ink-soft)}
.col-draft{background:var(--marker);color:var(--ink);padding:.5rem .75rem;border-radius:4px}
.col-ad-note{margin:1.5rem 0 0}
.emb-date{font-size:.85em;color:var(--ink-soft);white-space:nowrap}   /* 埋め込んだ料金の確認日(同じ料金は、記事の中で最初の1回だけ付く。日付の途中では折らない) */
.col-fig{margin:1.75rem 0}
.col-fig img{display:block;max-width:100%;height:auto;border:1px solid var(--rule);border-radius:4px}
/* 図(HTML に埋め込んだ SVG)。座標の横幅は 360 で描く。スマホではほぼ等倍、PC では 520px まで。図の中の文字も本文と同じフォント */
.col-fig svg{display:block;width:100%;max-width:520px;height:auto;margin:0 auto;overflow:visible}
.col-fig svg text{font-family:var(--font)}
.col-note{background:var(--ledger);border-left:4px solid var(--green);padding:.8rem 1.1rem;margin:1.5rem 0;border-radius:0 4px 4px 0}
.col-note p{margin:.35rem 0}
/* 記事の表: スマホでは表の枠の中だけ横に動く(ページの全体は動かない)。セルは折り返さないのが基本で、長い文のセルだけ最小の幅で折り返す。
   はみ出すときだけ(site.js が is-scroll を付ける)、1列目を左に固定し、続きがあるあいだ右端に薄い影を出す */
.col-table-box{position:relative;margin:1.5rem 0 .4rem}
.col-table-box .col-table-wrap{margin:0;overflow-x:auto;border:1px solid var(--rule);border-radius:6px}
.col-table-wrap:focus-visible{outline:3px solid var(--marker);outline-offset:2px}
table.col-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.9rem;font-variant-numeric:tabular-nums}
table.col-table th,table.col-table td{border-bottom:1px solid var(--rule);padding:.55rem .7rem;text-align:left;vertical-align:top;white-space:nowrap;background:#fff}
table.col-table tr:last-child td{border-bottom:0}
table.col-table th{background:var(--ledger);font-weight:700}
table.col-table .right{text-align:right}
table.col-table .center{text-align:center}
table.col-table .wrap{white-space:normal;min-width:11em}
table.col-table .emb-date{display:block;font-size:.78rem}   /* 表の中で個別に付く確認日は、金額の下の行に小さく出す(列の幅を広げない) */
table.col-table th,table.col-table td:first-child{word-break:keep-all;overflow-wrap:anywhere}   /* 見出しの行と1列目(短い名前)は、ブランド名とプラン名の間の空白で折り返す。言葉の途中では、収まらないときだけ折る */
.col-table-box.is-scroll th:first-child,.col-table-box.is-scroll td:first-child{position:sticky;left:0;z-index:1;box-shadow:inset -1px 0 var(--rule)}
.col-table-box::after{content:"";position:absolute;top:1px;right:1px;bottom:1px;width:1.4rem;border-radius:0 6px 6px 0;pointer-events:none;
  background:linear-gradient(to left,rgba(21,32,43,.16),rgba(21,32,43,0));opacity:0;transition:opacity .15s}
.col-table-box.has-more::after{opacity:1}
.col-table-note{margin:0 0 1.5rem}
/* 記事の最後の「この記事で使った料金と確認日」 */
.col-sources{margin:2.5rem 0 0;padding:0 1.25rem;border:1px solid var(--rule);border-radius:6px;font-size:.9rem}
.col-sources summary{padding:.8rem 0;font-weight:700;cursor:pointer;min-height:2.75rem}   /* 閉じた状態の見出し(件数つき)。押しやすい高さ */
.col-sources[open] summary{border-bottom:1px solid var(--rule);margin-bottom:.6rem}
.col-sources ul{margin:0 0 .6rem;padding-left:1.2rem}
.col-sources p:last-child{margin:0 0 1rem;color:var(--ink-soft)}
/* 記事の中の折りたたみ(+++ 見出し … +++)。中は前提・出典・補足だけ */
.col-fold{margin:1.25rem 0;padding:0 1.1rem;border:1px solid var(--rule);border-radius:6px}
.col-fold summary{padding:.75rem 0;font-weight:700;cursor:pointer;min-height:2.75rem}
.col-fold[open] summary{border-bottom:1px solid var(--rule);margin-bottom:.5rem}
.col-fold>:last-child{margin-bottom:1rem}
/* 記事の最後の、書いた人の短い紹介 */
.col-author{margin:1.5rem 0 0;padding:1rem 1.25rem;background:var(--ledger);border-radius:6px;font-size:.9rem}
.col-author p{margin:0}
.col-author-head{font-size:.8rem;color:var(--ink-soft)}
.col-author-name{font-weight:700;margin:.1rem 0 .3rem!important}
/* 記事の中の広告: plans ページと同じテキストリンク。押せる範囲は1行目の文字の幅まで */
.col-ad{margin:1.5rem 0;padding:.6rem 1.1rem;border:1px solid var(--rule);border-radius:6px}
#main .col-ad .apply-btn{width:fit-content;max-width:100%}
#main .col-ad a.off-link{padding:.55rem 0}   /* 指で押しやすい高さ(40px 以上) */
.col-cta{margin-top:3rem}
.col-list{list-style:none;margin:1.5rem 0 0;padding:0;border-top:1px solid var(--rule);max-width:var(--text)}
.col-list a{display:grid;gap:.75rem;padding:1.1rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
.col-list img{display:block;width:100%;height:auto;border-radius:6px;border:1px solid var(--rule)}   /* スマホはカードの上に横長のサムネイル */
@media (min-width:48rem){.col-list a{grid-template-columns:16rem 1fr;gap:1.5rem;align-items:start}}   /* PC は左にサムネイル、右に題名・説明文・日付 */
.col-list b{display:block;font-size:1.1rem;line-height:1.5;color:var(--green-dark);text-decoration:underline;text-underline-offset:.2em}
.col-list span{display:block;margin:.35rem 0;font-size:.92rem}
.col-list small{color:var(--ink-soft)}
.col-list a:hover b{color:var(--green)}
@media (min-width:54rem){.foot-grid.has-read{grid-template-columns:repeat(4,auto);column-gap:2.5rem}.foot-grid.has-read>:first-child{grid-column:1/-1}}
@media (min-width:64rem){.foot-grid.has-read{grid-template-columns:minmax(12rem,1.4fr) repeat(4,auto)}.foot-grid.has-read>:first-child{grid-column:auto}}   /* 公開の記事があるときだけ、フッターに「読む」の列が加わる */

@media print{
  .site-head,.site-foot,.page-head,.shindan-side,.live,.form-block,.submit-bar,#go-bar,#refine,.btn-row,.lead,.notice .btn,.ad-row .apply-btn,.ad-row .note{display:none!important}
  .shindan-layout{display:block;padding-top:0}
  #result{margin-top:0}
  body{font-size:11pt}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact;animation:none!important}
  .rank-list>li,.tips,.verdict{break-inside:avoid}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;color:#555;word-break:break-all}
  .apply-btn .apply-code a::after{content:none}
}
