:root {
    --ink: #172620;
    --muted: #64736d;
    --green: #126a55;
    --green-dark: #0c4c3d;
    --mint: #eaf5f1;
    --paper: #fbfcfb;
    --line: #d7e2de;
    --focus: #ffbf47;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Arial, "Helvetica Neue", sans-serif; line-height: 1.55; }
.research-shell { width: min(100% - 2rem, 960px); margin-inline: auto; }
.research-header { border-bottom: 1px solid var(--line); background: #fff; }
.research-header .research-shell { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 1rem; }
.research-header img { display: block; width: auto; height: 58px; }
.research-header span { color: var(--muted); font-size: .86rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.survey-intro { padding: clamp(3rem, 8vw, 6rem) 0 2.5rem; background: linear-gradient(145deg, var(--mint), #fff 72%); }
.survey-intro .kicker { margin: 0 0 .65rem; color: var(--green); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.survey-intro h1 { max-width: 760px; margin: 0; font-family: Georgia, serif; font-size: clamp(2.3rem, 6vw, 4.4rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.02; }
.survey-intro .lead { max-width: 720px; margin: 1.25rem 0 .9rem; color: #40514a; font-size: 1.15rem; }
.survey-meta { display: flex; flex-wrap: wrap; gap: .45rem 1.35rem; margin: 0; color: var(--muted); font-size: .92rem; }
.survey-meta span { position: relative; }
.survey-meta span + span::before { position: absolute; left: -.82rem; content: ""; width: 4px; height: 4px; top: .62em; border-radius: 50%; background: var(--green); }
.survey-body { padding: 2rem 0 clamp(4rem, 8vw, 7rem); }
.privacy-note { margin-bottom: 1.5rem; padding: 1rem 1.15rem; border-left: 4px solid var(--green); background: var(--mint); }
.privacy-note a, .research-privacy a, .research-footer a { color: var(--green-dark); font-weight: 700; text-underline-offset: .18em; }
.validation-summary-errors, .survey-error { margin-bottom: 1.5rem; padding: 1rem; border: 1px solid #efb6b2; color: #8a1c16; background: #fff1f0; }
.validation-summary-errors ul { margin: .5rem 0 0; }
.question-card { margin: 0 0 1.25rem; padding: clamp(1.35rem, 4vw, 2rem); border: 0; border-radius: 18px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 12px 35px rgba(23,38,32,.05); }
.question-card legend { display: flex; float: left; width: 100%; align-items: flex-start; margin: 0 0 1rem; padding: 0; font-family: Georgia, serif; font-size: 1.3rem; font-weight: 600; line-height: 1.25; }
.question-number { display: inline-grid; width: 2rem; height: 2rem; margin: -.15rem .75rem 0 0; flex: 0 0 2rem; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-family: Arial, sans-serif; font-size: .8rem; }
.question-help { clear: both; margin: 0 0 .75rem; color: var(--muted); font-size: .92rem; }
.selection-status { clear: both; margin: -.15rem 0 .7rem; color: var(--green); font-size: .88rem; font-weight: 700; }
.selection-status-error { color: #9a271f; }
.question-error { display: block; margin-top: .8rem; padding: .75rem .9rem; border-left: 4px solid #b42318; color: #8a1c16; background: #fff1f0; font-weight: 700; }
.question-card-error { box-shadow: 0 0 0 2px #b42318, 0 12px 35px rgba(23,38,32,.05); }
.choice-list { display: block; clear: both; }
.choice-list br { display: none; }
.choice-list input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-list label { position: relative; display: block; min-height: 48px; margin: .45rem 0; padding: .72rem 1rem .72rem 3rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.choice-list label::before { position: absolute; left: 1rem; top: 50%; width: 1.15rem; height: 1.15rem; border: 2px solid #91a19b; background: #fff; content: ""; transform: translateY(-50%); }
.choice-list input[type="checkbox"] + label::before { border-radius: 4px; }
.choice-list input[type="radio"] + label::before { border-radius: 50%; }
.choice-list label:hover { border-color: #8fb7a9; background: #f8fbfa; }
.choice-list label.choice-disabled { color: #8b9792; border-color: #e5ebe8; background: #f6f8f7; cursor: not-allowed; }
.choice-list input:checked + label { border-color: var(--green); background: var(--mint); font-weight: 700; }
.choice-list input[type="checkbox"]:checked + label::before { border-color: var(--green); background: var(--green); }
.choice-list input[type="checkbox"]:checked + label::after { position: absolute; left: 1.29rem; top: 50%; width: .55rem; height: .3rem; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; transform: translateY(-70%) rotate(-45deg); }
.choice-list input[type="radio"]:checked + label::before { border: 4px solid var(--green); }
.choice-list input:focus-visible + label, .comments:focus-visible, .submit-button:focus-visible, .research-header a:focus-visible { outline: 4px solid var(--focus); outline-offset: 3px; }
.comments { width: 100%; min-height: 150px; padding: .9rem; border: 1px solid #aebdb7; border-radius: 8px; font: inherit; resize: vertical; }
.submit-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.research-privacy { margin-top: 1.5rem; padding: clamp(1.25rem, 4vw, 1.8rem); border: 1px solid var(--line); border-radius: 14px; background: #f5f9f7; }
.research-privacy h2 { margin: 0 0 .75rem; font-family: Georgia, serif; font-size: 1.35rem; font-weight: 600; }
.research-privacy ul { margin: 0 0 .8rem; padding-left: 1.2rem; }
.research-privacy li + li { margin-top: .35rem; }
.research-privacy p { margin: 0; color: var(--muted); font-size: .88rem; }
.submit-row p { max-width: 560px; margin: 0; color: var(--muted); font-size: .88rem; }
.submit-button { min-width: 180px; padding: .9rem 1.35rem; border: 0; border-radius: 7px; color: #fff; background: var(--green); font: inherit; font-weight: 800; cursor: pointer; }
.submit-button:hover { background: var(--green-dark); }
.research-footer { padding: 2rem 0; color: #5c6b65; background: #edf3f0; font-size: .85rem; }
.research-footer p { margin: .25rem 0; }
.fine-print { max-width: 760px; }
.research-footer-links { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: .8rem !important; }
.thanks { display: grid; min-height: 62vh; place-items: center; padding: 4rem 0; }
.thanks-card { max-width: 680px; padding: clamp(2rem, 6vw, 4rem); border: 1px solid var(--line); border-radius: 22px; background: #fff; text-align: center; box-shadow: 0 20px 60px rgba(23,38,32,.08); }
.thanks-mark { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1.5rem; place-items: center; border-radius: 50%; color: #fff; background: var(--green); font-size: 2rem; }
.thanks h1 { margin: .3rem 0 1rem; font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 500; }
.thanks p { color: var(--muted); font-size: 1.08rem; }
@media (max-width: 640px) {
    .research-header .research-shell { min-height: 72px; }
    .research-header img { height: 46px; }
    .research-header span { font-size: .7rem; }
    .survey-meta { display: grid; gap: .2rem; }
    .survey-meta span + span::before { display: none; }
    .question-card { padding: 1.25rem 1rem; }
    .submit-row { align-items: stretch; flex-direction: column; }
    .submit-button { width: 100%; }
}
