:root { font-family: -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; color:#173646; background:#f5f8f9; font-synthesis:none; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-width:0; line-height:1.75; }
a { color:#23687d; text-underline-offset:3px; }
button { font:inherit; cursor:pointer; }
button:disabled { cursor:default; opacity:.5; }
.page { width:min(100% - 32px,820px); margin:0 auto; padding:30px 0 65px; min-width:0; }
.header { margin-bottom:25px; }
.back { display:inline-flex; align-items:center; font-size:.93rem; text-decoration:none; margin-bottom:16px; }
h1 { margin:0 0 6px; font-size:clamp(1.55rem,4vw,2.1rem); letter-spacing:.02em; }
.lead { margin:0; color:#567280; font-size:.98rem; }
.panel { background:#fff; border:1px solid #dbe8ed; border-radius:18px; padding:clamp(18px,4vw,32px); box-shadow:0 6px 22px rgba(20,69,80,.035); }
.progress,.result-kicker { color:#526f7b; font-size:.82rem; font-weight:700; }
.progress { display:flex; align-items:center; justify-content:space-between; margin-bottom:19px; }
#progressDots { display:flex; gap:5px; }
.dot { display:block; width:16px; height:5px; border-radius:4px; background:#dbe7ea; }
.dot.active { background:#286d58; }
h2 { font-size:clamp(1.2rem,3vw,1.42rem); line-height:1.55; margin:0 0 18px; }
.options { display:grid; gap:10px; }
.choice-option { display:flex; justify-content:space-between; align-items:center; width:100%; min-height:65px; text-align:left; background:#fff; color:#173646; border:1px solid #bfd3dc; border-radius:11px; padding:12px 16px; transition:background .15s,border-color .15s; }
.choice-option:hover { background:#f5faf8; }
.choice-option[aria-pressed="true"] { border:2px solid #28735a; background:#eef7f2; padding:11px 15px; }
.option-label { font-weight:650; font-size:.99rem; }
.option-note { font-size:.76rem; color:#637b86; display:block; margin-top:3px; font-weight:400; }
.check { font-size:1.2rem; font-weight:700; color:#26745c; flex:0 0 auto; margin-left:12px; }
.actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:25px; }
.btn { border:1px solid #bcd3dd; border-radius:10px; padding:10px 22px; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; min-height:46px; font-size:.93rem; font-weight:700; }
.primary { color:#fff; background:#286b56; border-color:#286b56; }
.secondary,.text-link { background:#f6fafb; color:#28556a; }
.result-head { margin-bottom:14px; }
.answer-summary { display:grid; gap:6px; background:#f4f8f9; border-radius:12px; padding:12px 16px; }
.summary-line { display:flex; gap:10px; align-items:baseline; justify-content:space-between; }
.summary-title { font-size:.81rem; color:#617783; }
.summary-value { font-size:.91rem; text-align:right; font-weight:650; }
.result-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:25px 0 0; }
h3 { margin:0; font-size:1.14rem; }
.result-count { font-size:.8rem; color:#5e7b87; text-align:right; }
.result-message { margin:5px 0 18px; font-size:.83rem; color:#607783; }
.group { margin:18px 0; }
.group-title { margin:0 0 10px; font-size:1rem; border-bottom:1px solid #e0e9eb; padding-bottom:8px; }
.group-caption { font-size:.78rem; font-weight:400; color:#6b7e85; margin-left:8px; }
.org-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.org-card { border:1px solid #dae6ea; padding:16px; border-radius:12px; min-width:0; overflow-wrap:anywhere; }
.org-name { margin:0 0 4px; font-size:1rem; line-height:1.55; }
.org-region { color:#617783; font-size:.81rem; margin:0 0 8px; }
.org-summary { margin:0 0 10px; font-size:.89rem; }
.org-matches { color:#2d6255; font-size:.8rem; margin:0 0 10px; font-weight:600; }
.org-proof { margin:0 0 12px; font-size:.77rem; color:#526d79; border-left:2px solid #c1d6d3; padding-left:8px; }
.org-links { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:.8rem; }
.org-links a { overflow-wrap:anywhere; }
.more { display:block; width:100%; margin:12px 0 20px; padding:10px 14px; border:1px solid #b9d3de; border-radius:10px; background:#f7fbfc; color:#235b70; font-weight:650; }
.disclaimer { margin:20px 0 0; color:#637783; font-size:.78rem; }
.footer { text-align:center; font-size:.77rem; color:#69818c; padding:25px 0; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #efb85c; outline-offset:3px; }
@media (max-width:620px){.page { width:calc(100% - 20px); padding-top:18px; }.panel { border-radius:15px; }.org-grid { grid-template-columns:1fr; }.summary-line { display:block; }.summary-value { display:block; text-align:left; }.result-heading { align-items:flex-start; }.org-card { padding:14px; }.choice-option { min-height:60px; }}
