:root { color-scheme:light; --ink:#233d36; --muted:#64796e; --accent:#087f75; --line:#dfe9e2; }
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:#f5f8f6; color:var(--ink); font:16px/1.8 "Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; text-underline-offset:4px; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #36a99a; outline-offset:3px; }
.answer-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:86px; padding:18px max(24px,calc((100vw - 1040px)/2)); border-bottom:1px solid var(--line); background:#fff; }
.answer-header a { display:inline-flex; align-items:center; flex-shrink:0; }
.answer-header img { display:block; width:170px; height:auto; }
.answer-header>span { color:var(--muted); font-size:12px; }
.answer-main { width:calc(100% - 48px); max-width:840px; margin:48px auto 64px; }
.answer-eyebrow { margin:0 0 10px; color:#698576; font-size:12px; font-weight:600; letter-spacing:.08em; }
h1 { margin:0 0 30px; font-size:clamp(23px,3vw,32px); line-height:1.6; letter-spacing:-.02em; overflow-wrap:anywhere; }
.answer-card { margin:22px 0; padding:32px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 6px 28px #244c3805; }
.answer-description { margin:0 0 30px; overflow-wrap:anywhere; line-height:1.9; }
form { margin:0; }
fieldset { min-width:0; margin:0; padding:0; border:0; }
.answer-question>legend { width:100%; margin:0 0 20px; font-size:20px; font-weight:600; line-height:1.8; overflow-wrap:anywhere; }
.answer-required,.answer-optional { display:inline-block; margin-left:12px; padding:1px 8px; border-radius:4px; font-size:11px; font-weight:600; vertical-align:middle; }
.answer-required { background:#fceeed; color:#ab4a46; }
.answer-optional { background:#eef4ef; color:#657e6d; }
.answer-help { margin:10px 0 18px; color:var(--muted); font-size:13px; }
.answer-field-label { display:block; margin-bottom:8px; color:#496455; font-size:14px; font-weight:600; }
input,textarea,button { font:inherit; }
input[type=password],textarea { width:100%; padding:14px; border:1px solid #cbded1; border-radius:9px; color:var(--ink); background:#fff; font-size:16px; }
textarea { resize:vertical; min-height:200px; line-height:1.8; }
input[type=password] { max-width:440px; }
input[type=radio],input[type=checkbox] { flex-shrink:0; width:21px; height:21px; margin:3px 0; accent-color:var(--accent); }
.answer-choices { display:grid; gap:12px; }
.answer-choice { display:flex; align-items:flex-start; gap:14px; min-height:58px; padding:16px 18px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.answer-choice span { min-width:0; overflow-wrap:anywhere; }
.answer-choice:hover,.answer-choice:has(input:checked) { border-color:#82b6a1; background:#f1f8f3; }
.answer-choice:has(input:focus-visible) { outline:2px solid #36a99a; outline-offset:3px; }
.answer-button { display:flex; align-items:center; justify-content:center; gap:20px; width:100%; min-height:54px; margin-top:28px; padding:14px 24px; border:1px solid var(--accent); border-radius:10px; background:var(--accent); color:#fff; font-size:15px; font-weight:600; cursor:pointer; }
.answer-button:hover { background:#05665e; border-color:#05665e; }
.answer-progress { margin:0 0 24px; }
.answer-progress>div { display:flex; justify-content:space-between; margin-bottom:9px; color:var(--muted); font-size:12px; }
progress { display:block; width:100%; height:8px; border:0; border-radius:8px; overflow:hidden; background:#e0ebe3; color:var(--accent); }
progress::-webkit-progress-bar { background:#e0ebe3; border-radius:8px; }
progress::-webkit-progress-value { background:var(--accent); border-radius:8px; }
progress::-moz-progress-bar { background:var(--accent); border-radius:8px; }
.answer-error { margin:0 0 20px; padding:14px 16px; border:1px solid #edd3d0; border-radius:8px; background:#fff4f2; color:#a24942; font-size:14px; overflow-wrap:anywhere; }
.answer-rating { margin:20px 0 28px; }
.answer-rating>legend { width:100%; margin-bottom:12px; padding-top:8px; color:#496958; font-size:15px; overflow-wrap:anywhere; }
.answer-rating-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.answer-rating-options label { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:6px; min-width:0; min-height:120px; padding:14px 8px; border:1px solid var(--line); border-radius:9px; text-align:center; cursor:pointer; }
.answer-rating-options strong { font-size:18px; color:#466f59; }
.answer-rating-options span { overflow-wrap:anywhere; font-size:12px; line-height:1.6; }
.answer-rating-options label:hover,.answer-rating-options label:has(input:checked) { background:#edf7f0; border-color:#82b6a1; }
.answer-message { text-align:center; }
.answer-message h2 { margin:12px 0; font-size:21px; }
.answer-message p { margin:12px 0; color:var(--muted); font-size:15px; overflow-wrap:anywhere; }
.answer-success-mark { display:inline-grid; place-items:center; width:64px; height:64px; margin:4px 0 12px; border-radius:50%; background:#e4f3e9; color:var(--accent); font-size:30px; }
.answer-bottom-link { margin:28px 0; text-align:center; }
.answer-link { display:inline-block; padding:10px; font-size:13px; }
.answer-result-number { margin:0 0 8px; color:#6d8b78; font-size:12px; }
.answer-result h2 { margin:0 0 24px; padding-bottom:20px; border-bottom:1px solid var(--line); font-size:18px; line-height:1.8; overflow-wrap:anywhere; }
.answer-result h3 { margin:0 0 18px; font-size:15px; overflow-wrap:anywhere; }
.answer-result blockquote { margin:12px 0; padding:18px; border-radius:8px; background:#f4f8f5; font-size:14px; overflow-wrap:anywhere; }
.answer-rating-result { margin:26px 0; }
.answer-result-row { margin:18px 0; }
.answer-result-row>div:first-child { display:flex; justify-content:space-between; gap:16px; margin-bottom:8px; color:#5a7464; font-size:13px; }
.answer-result-row>div:first-child>span:first-child { min-width:0; overflow-wrap:anywhere; }
.answer-result-row>div:first-child>span:last-child { flex-shrink:0; text-align:right; }
.answer-result-track { height:8px; border-radius:5px; background:#e8f0e9; overflow:hidden; }
.answer-result-track>span { display:block; height:100%; border-radius:5px; background:#55a988; }
.answer-footer { padding:0 20px 30px; color:#788d7e; text-align:center; font-size:11px; }
.answer-footer a { color:#617e6a; font-size:13px; }
.answer-footer p { margin:12px 0; }
.answer-sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media (max-width:580px) {
    .answer-header { min-height:72px; padding:16px; gap:12px; }
    .answer-header img { width:140px; }
    .answer-header>span { font-size:10px; }
    .answer-main { width:calc(100% - 28px); margin:28px auto 44px; }
    h1 { margin-bottom:24px; }
    .answer-card { margin:18px 0; padding:22px 18px; border-radius:12px; }
    .answer-question>legend { font-size:18px; }
    .answer-choice { padding:14px; gap:12px; font-size:15px; }
    .answer-rating-options { gap:4px; }
    .answer-rating-options label { padding:10px 3px; min-height:130px; border-radius:6px; }
    .answer-rating-options span { font-size:11px; }
    .answer-rating-options strong { font-size:16px; }
    .answer-rating>legend { font-size:14px; }
    .answer-message h2 { font-size:19px; }
    .answer-result-row>div:first-child { flex-wrap:wrap; gap:4px 12px; }
}
