/* =========================================================
   全スタイル（assets/sim.css）岡山市 追加給付シミュレーター
   ・.kbsim スコープ ── LP埋め込み時にLP側CSSと干渉しない
   ・単体表示のページ地（背景色・中央寄せ）は index.html / embed.html 側
   ・文字サイズ切替：.kbsim[data-size="sm|std|lg|xl"]（4段階）
   ・元: 検収用単一HTML(okayama.5)のstyleブロックからページ額縁を除いたもの
   ========================================================= */

.kbsim {
  --kb-primary:#166B48; --kb-primary-dark:#0f4f34; --kb-primary-ink:#0b3624;
  --kb-bg:#F2F7F4; --kb-card:#FFFFFF; --kb-text:#1B2130; --kb-muted:#54657A;
  --kb-border:#C6D3E2; --kb-border-ui:#64748B; --kb-soft:#E4F0EA; --kb-focus:#1a7a4f;
  --kb-warn-bg:#FBF4E4; --kb-warn-text:#6B5012; --kb-positive:#0E5C36;
  font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  font-size:16px; line-height:1.7; color:var(--kb-text);
  -webkit-font-smoothing:antialiased; box-sizing:border-box; width:100%; max-width:480px; margin:0 auto;
}
.kbsim *,.kbsim *::before,.kbsim *::after{box-sizing:border-box;}
.kbsim[data-size=sm]{font-size:14.5px}.kbsim[data-size=std]{font-size:16px}.kbsim[data-size=lg]{font-size:18.5px}.kbsim[data-size=xl]{font-size:21px}
.kbsim-card{background:var(--kb-card);border:1px solid var(--kb-border);border-radius:6px;overflow:hidden}
.kbsim-header{background:var(--kb-primary-dark);color:#fff;padding:.9em 1.1em 1em}
.kbsim-header .kbsim-org{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25em .6em;font-size:.78em;letter-spacing:.08em;opacity:.92}
.kbsim-header h1{margin:.25em 0 0;font-size:1.16em;line-height:1.45;font-weight:700;letter-spacing:.02em}
.kbsim-a11y{display:flex;align-items:center;gap:.4em;font-size:1em;flex:none;white-space:nowrap}
.kbsim-a11y .kbsim-a11y-label{opacity:.9}
.kbsim-a11y button{font:inherit;font-size:.95em;min-width:44px;min-height:44px;padding:.15em .55em;border-radius:4px;border:1px solid rgba(255,255,255,.65);background:transparent;color:#fff;cursor:pointer}
.kbsim-a11y button[aria-pressed=true]{background:#fff;color:var(--kb-primary-dark);font-weight:700}
.kbsim-body{padding:1.15em 1.1em 1.3em}
.kbsim-progress{margin-bottom:1.1em}
.kbsim-progress .kbsim-progress-label{font-size:.82em;color:var(--kb-muted);margin-bottom:.35em;font-weight:600}
.kbsim-progress .kbsim-progress-track{height:8px;background:var(--kb-soft);border-radius:999px;overflow:hidden}
.kbsim-progress .kbsim-progress-fill{height:100%;background:var(--kb-primary);border-radius:999px;transition:width .3s ease}
.kbsim-intro h2{margin:0 0 .5em;font-size:1.22em;line-height:1.5;color:var(--kb-primary-ink)}
.kbsim-intro p{margin:0 0 1em}
.kbsim-intro ul{margin:0 0 1.2em;padding:.8em 1em;list-style:none;background:var(--kb-soft);border-radius:6px;display:grid;gap:.45em}
.kbsim-intro ul li{font-size:.9em;color:var(--kb-muted);padding-left:1.3em;position:relative}
.kbsim-intro ul li::before{content:"";position:absolute;left:.2em;top:.62em;width:.5em;height:.5em;border-radius:50%;background:var(--kb-primary)}
.kbsim-q{animation:kbsim-slide .28s ease}
@media(prefers-reduced-motion:reduce){.kbsim-q{animation:none}}
@keyframes kbsim-slide{from{transform:translateX(14px)}to{transform:translateX(0)}}
.kbsim-q h2{margin:0 0 .4em;font-size:1.12em;line-height:1.55;color:var(--kb-primary-ink)}
.kbsim-help{margin:0 0 1em;font-size:.88em;color:var(--kb-muted)}
.kbsim-addon-label{margin:1.1em 0 .45em;font-size:.98em;font-weight:700;color:var(--kb-primary-ink)}
.kbsim-em{font-weight:700;color:var(--kb-text)}
.kbsim-options{display:grid;gap:.6em;margin:0}
.kbsim-option{font:inherit;display:flex;align-items:center;gap:.7em;width:100%;min-height:56px;padding:.7em 1em;text-align:left;background:var(--kb-card);border:2px solid var(--kb-border-ui);border-radius:6px;color:var(--kb-text);font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.kbsim-option:hover{border-color:var(--kb-primary);background:var(--kb-soft)}
.kbsim-option[aria-pressed=true]{border-color:var(--kb-primary);background:var(--kb-soft)}
.kbsim-option .kbsim-radio{flex:none;width:1.25em;height:1.25em;border-radius:50%;border:2px solid var(--kb-border-ui);position:relative}
.kbsim-option:hover .kbsim-radio,.kbsim-option[aria-pressed=true] .kbsim-radio{border-color:var(--kb-primary)}
.kbsim-option[aria-pressed=true] .kbsim-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--kb-primary)}
.kbsim h2:focus{outline:none}
.kbsim button:focus-visible,.kbsim select:focus-visible,.kbsim a:focus-visible{outline:3px solid var(--kb-focus);outline-offset:2px}
.kbsim-header button:focus-visible{outline-color:#fff}
.kbsim-mode-toggle{display:flex;margin-bottom:1em;border:1px solid var(--kb-border-ui);border-radius:6px;overflow:hidden}
.kbsim-mode-toggle button{font:inherit;font-size:.92em;flex:1;min-height:44px;border:0;background:var(--kb-card);color:var(--kb-muted);font-weight:600;cursor:pointer}
.kbsim-mode-toggle button[aria-pressed=true]{background:var(--kb-primary);color:#fff}
.kbsim-period-row{margin-bottom:.9em}
.kbsim-period-row .kbsim-period-label{display:block;font-size:.86em;font-weight:700;color:var(--kb-muted);margin-bottom:.3em}
.kbsim-period-selects{display:flex;gap:.5em}
.kbsim select{font:inherit;flex:1;min-height:48px;padding:.3em .6em;border:2px solid var(--kb-border-ui);border-radius:6px;background:var(--kb-card);color:var(--kb-text)}
.kbsim-invalid{margin:.2em 0 .8em;font-size:.88em;font-weight:700;color:#A4262C}
.kbsim-live{margin:1em 0;padding:.8em 1em;background:var(--kb-soft);border:1px dashed var(--kb-border);border-radius:6px}
.kbsim-live .kbsim-live-label{font-size:.8em;color:var(--kb-muted);font-weight:600}
.kbsim-live .kbsim-live-amount{font-size:1.35em;font-weight:700;color:var(--kb-primary-ink)}
.kbsim-live .kbsim-live-amount small{font-size:.62em;font-weight:600}
.kbsim-nav{display:flex;gap:.6em;margin-top:1.2em}
.kbsim-btn{font:inherit;font-weight:700;min-height:52px;padding:.6em 1.4em;border-radius:6px;cursor:pointer;border:2px solid var(--kb-primary)}
.kbsim-btn-primary{flex:1;background:var(--kb-primary);color:#fff}
.kbsim-btn-primary:hover{background:var(--kb-primary-dark);border-color:var(--kb-primary-dark)}
.kbsim-btn-primary:disabled,.kbsim-btn-primary[aria-disabled=true]{background:#5A6B7E;border-color:#5A6B7E;color:#fff;cursor:not-allowed}
.kbsim-btn-primary[aria-disabled=true]:hover{background:#5A6B7E;border-color:#5A6B7E}
.kbsim-btn-ghost{background:var(--kb-card);color:var(--kb-primary)}
.kbsim-btn-ghost:hover{background:var(--kb-soft)}
.kbsim-back{font:inherit;font-size:.88em;font-weight:600;margin-top:1.1em;padding:.3em .2em;background:none;border:0;color:var(--kb-muted);cursor:pointer;text-decoration:underline;text-underline-offset:.2em;display:block}
.kbsim-back:hover{color:var(--kb-primary)}
.kbsim-result{animation:kbsim-slide .28s ease}
@media(prefers-reduced-motion:reduce){.kbsim-result{animation:none}}
.kbsim-result-badge{display:inline-block;font-size:.78em;font-weight:700;letter-spacing:.06em;color:var(--kb-primary-dark);background:var(--kb-soft);border:1px solid var(--kb-border);border-radius:4px;padding:.15em .7em;margin-bottom:.7em}
.kbsim-result h2{margin:0 0 .55em;font-size:1.18em;line-height:1.5;color:var(--kb-primary-ink)}
.kbsim-result h2.kbsim-positive{color:var(--kb-positive)}
.kbsim-result .kbsim-result-sub{margin:0 0 1em;font-weight:600}
.kbsim-result p{margin:0 0 1em}
.kbsim-amount{margin:0 0 1em;padding:1.1em 1em 1.15em;text-align:center;background:var(--kb-soft);border:2px solid var(--kb-primary);border-radius:6px}
.kbsim-amount .kbsim-amount-label{font-size:.82em;font-weight:700;color:var(--kb-muted);margin-bottom:.2em}
.kbsim-amount .kbsim-amount-value{font-size:2em;font-weight:700;line-height:1.3;color:var(--kb-primary-ink);font-variant-numeric:tabular-nums}
.kbsim-amount .kbsim-amount-value small{font-size:.5em;font-weight:700}
.kbsim-amount .kbsim-amount-note{margin-top:.5em;font-size:.8em;color:var(--kb-muted);text-align:left}
.kbsim-assumptions{margin:0 0 1.2em;border:1px solid var(--kb-border);border-radius:6px;background:var(--kb-card)}
.kbsim-assumptions summary{padding:.7em 1em;font-size:.9em;font-weight:700;color:var(--kb-primary-dark);cursor:pointer}
.kbsim-assumptions .kbsim-assumptions-body{padding:0 1em .9em;font-size:.86em}
.kbsim-assumptions dl{margin:0 0 .8em;display:grid;grid-template-columns:auto 1fr;gap:.25em 1em}
.kbsim-assumptions dt{color:var(--kb-muted);font-weight:600}
.kbsim-assumptions dd{margin:0}
.kbsim-assumptions table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.kbsim-assumptions th,.kbsim-assumptions td{text-align:right;padding:.35em .4em;border-top:1px solid var(--kb-border)}
.kbsim-assumptions th:first-child,.kbsim-assumptions td:first-child{text-align:left;font-weight:600}
.kbsim-assumptions thead th{border-top:0;font-size:.9em;color:var(--kb-muted)}
.kbsim-assumptions .kbsim-source{margin:.5em 0 0;color:var(--kb-muted);font-size:.85em;line-height:1.5}
.kbsim-assumptions .kbsim-source a{color:var(--kb-primary)}
.kbsim-ref{margin:0 0 1.2em;padding:.8em 1em;background:var(--kb-soft);border-radius:6px;font-size:.88em}
.kbsim-ref .kbsim-ref-heading{font-weight:700;color:var(--kb-primary-dark);margin-bottom:.4em}
.kbsim-ref ul{margin:0;padding:0;list-style:none;display:grid;gap:.25em}
.kbsim-ref li{display:flex;justify-content:space-between;gap:1em}
.kbsim-ref li strong{font-variant-numeric:tabular-nums}
/* お問い合わせ先（鹿児島式・縦1列リスト。行全体がリンク・右矢印） */
.kbsim-ctas{margin:1.25em 0 1em}
.kbsim-ctas-heading{font-size:.95em;font-weight:700;color:var(--kb-primary-dark);margin:0 0 .65em}
.kbsim-contact-list{display:grid;grid-template-columns:1fr;gap:.7em}
.kbsim-contact-row{display:flex;align-items:center;gap:.8em;min-height:56px;padding:.85em 1em;border:1px solid var(--kb-border-ui);border-radius:8px;background:var(--kb-card);color:var(--kb-text);text-decoration:none}
.kbsim-contact-row:hover{border-color:var(--kb-primary);background:var(--kb-soft)}
.kbsim-contact-main{display:grid;gap:.18em;min-width:0;flex:1}
.kbsim-contact-title{font-size:.9em;font-weight:700;line-height:1.5;color:var(--kb-text)}
.kbsim-contact-phone{color:var(--kb-primary-ink);font-size:1.15em;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.kbsim-contact-phone small{font-size:.72em;font-weight:700;margin-left:.1em}
.kbsim-contact-site{color:var(--kb-primary-dark);font-size:1em;font-weight:700;text-decoration:underline;text-underline-offset:.18em}
.kbsim-contact-hours{color:var(--kb-muted);font-size:.8em;line-height:1.55}
.kbsim-contact-arrow{flex:none;color:var(--kb-primary);font-size:1.15em;font-weight:700}
.kbsim-footer{border-top:1px solid var(--kb-border);padding:.95em 1.1em 1.1em;display:grid;gap:.6em}
.kbsim-footer p{margin:0;font-size:.8em;color:var(--kb-muted)}
.kbsim-fraud{background:var(--kb-warn-bg);border-radius:6px;padding:.7em .9em}
.kbsim-fraud .kbsim-fraud-title{display:block;font-size:.84em;font-weight:700;color:var(--kb-warn-text);margin-bottom:.15em}
.kbsim-fraud p{color:var(--kb-warn-text)}


/* あくまでも目安バナー・バッジ */
.kbsim-meyasu-banner{margin:0 0 1em;padding:.5em .8em;background:var(--kb-warn-bg);border:2px solid var(--kb-warn-text);border-radius:6px;font-size:.92em;font-weight:700;color:var(--kb-warn-text);text-align:center}
.kbsim-meyasu-badge{display:inline-block;margin-bottom:.3em;padding:.05em .55em;background:var(--kb-warn-bg);border:1.5px solid var(--kb-warn-text);border-radius:4px;font-size:.8em;font-weight:700;color:var(--kb-warn-text);letter-spacing:.03em}
/* レスポンシブ */
@media(max-width:400px){.kbsim-header{padding:.8em .8em .9em}.kbsim-body{padding:1em .85em 1.15em}.kbsim-amount .kbsim-amount-value{font-size:1.7em}.kbsim-option{padding:.6em .8em;min-height:52px}}
@media(min-width:700px){.kbsim{max-width:560px}}
.kbsim-sources-section{margin-top:1.2em;padding-top:1em;border-top:1px solid var(--kb-border)}
.kbsim-sources-section h3{font-size:.87em;font-weight:700;color:var(--kb-muted);margin:0 0 .4em}
.kbsim-sources-section ol{margin:0;padding-left:1.3em;display:grid;gap:.3em}
.kbsim-sources-section li{font-size:.81em;color:var(--kb-muted)}
.kbsim-sources-section a{color:var(--kb-primary);text-decoration:underline;text-underline-offset:.15em}
.kbsim-sources-section a:hover{opacity:.8}
