.survey-page {
  --survey-ink: #18302b;
  --survey-pine: #123f36;
  --survey-pine-2: #205d50;
  --survey-sun: #edb84f;
  --survey-terracotta: #b9583d;
  --survey-sky: #dce9ed;
  --survey-cream: #f5f0e5;
  --survey-paper: #fffdf8;
  background: var(--survey-cream);
  color: var(--survey-ink);
}

.survey-header { background: rgba(255, 253, 248, 0.95); }
.survey-header nav a:first-child { border-bottom: 2px solid var(--survey-sun); color: var(--survey-pine); }

.survey-hold-page { min-height: 100vh; }
.survey-hold-main {
  min-height: calc(100vh - 158px);
  display: grid;
  place-items: center;
  padding: clamp(42px, 8vw, 100px) clamp(18px, 6vw, 88px);
  background: linear-gradient(118deg, rgba(18, 63, 54, .98), rgba(32, 93, 80, .94) 68%, rgba(220, 233, 237, .82));
}
.survey-hold-card { display: grid; grid-template-columns: 210px minmax(0, 760px); gap: clamp(30px, 6vw, 78px); align-items: start; width: min(100%, 1120px); padding: clamp(30px, 6vw, 72px); border: 1px solid rgba(255,255,255,.35); background: rgba(255,253,248,.97); box-shadow: 0 28px 80px rgba(5,27,22,.28); }
.survey-hold-icon { display: grid; width: 160px; height: 160px; place-items: center; color: var(--survey-pine); }
.survey-hold-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.survey-status { display: flex; align-items: center; gap: 10px; margin: 0 0 19px; color: var(--survey-terracotta); font-size: .8rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.survey-status span { width: 10px; height: 10px; border-radius: 50%; background: var(--survey-terracotta); box-shadow: 0 0 0 5px rgba(185,88,61,.12); }
.survey-hold-copy h1 { max-width: 760px; color: var(--survey-pine); font-size: clamp(2.6rem, 5.2vw, 5.2rem); line-height: .98; letter-spacing: -.035em; }
.survey-hold-lede { max-width: 720px; margin: 26px 0 0; color: #314b45; font-size: clamp(1.12rem, 2vw, 1.38rem); line-height: 1.55; }
.survey-hold-detail { max-width: 680px; margin: 18px 0 0; color: #5b6b67; font-size: 1rem; }
.survey-topics { margin-top: 30px; }
.survey-topics h2 { margin: 0 0 16px; color: var(--survey-pine); font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.15; }
.survey-topic-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 28px; margin: 0; padding-left: 22px; }
.survey-topic-list li { padding-left: 4px; color: var(--survey-terracotta); }
.survey-topic-list strong, .survey-topic-list span { display: block; }
.survey-topic-list strong { color: var(--survey-pine); font-size: .96rem; }
.survey-topic-list span { margin-top: 3px; color: #5b6b67; font-size: .86rem; line-height: 1.45; }
.survey-hold-footer { display: grid; gap: 3px; margin-top: 30px; padding: 17px 20px; border-left: 4px solid var(--survey-sun); background: var(--survey-cream); }
.survey-hold-footer strong { color: var(--survey-pine); }
.survey-hold-footer span { color: #64716e; }
.survey-back-button { margin-top: 22px; background: var(--survey-pine); color: white; }
.survey-back-button:hover, .survey-back-button:focus-visible { background: var(--survey-pine-2); }
.survey-hold-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 22px; margin-top: 22px; }
.survey-hold-actions .survey-back-button { margin-top: 0; }
.survey-text-link { color: var(--survey-pine); font-weight: 850; }

.survey-info-main { background: var(--survey-cream); }
.survey-info-hero { padding: clamp(56px, 8vw, 104px) clamp(20px, 7vw, 100px); background: var(--survey-pine); color: white; }
.survey-info-hero > div { max-width: 980px; }
.survey-info-hero h1 { max-width: 900px; margin: 10px 0 22px; color: white; font-size: clamp(3rem, 6.5vw, 6.5rem); line-height: .94; letter-spacing: -.04em; }
.survey-info-hero p:last-child { max-width: 760px; margin: 0; color: rgba(255,255,255,.82); font-size: clamp(1.08rem, 2vw, 1.32rem); }
.survey-info-section { max-width: 1180px; margin: 0 auto; padding: clamp(50px, 7vw, 88px) clamp(20px, 5vw, 60px); }
.survey-info-section > h2 { max-width: 820px; margin: 0 0 32px; color: var(--survey-pine); font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1; }
.survey-info-section > p { max-width: 820px; color: #53645f; }
.methodology-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.methodology-step { padding: 25px; border-top: 4px solid var(--survey-pine); background: var(--survey-paper); box-shadow: 0 14px 34px rgba(24,48,43,.08); }
.methodology-step > span { color: var(--survey-terracotta); font: 700 1.8rem Georgia, serif; }
.methodology-step h3 { margin: 12px 0 9px; color: var(--survey-pine); font-size: 1.15rem; }
.methodology-step p { margin: 0; color: #596b66; }
.methodology-step.wide { grid-column: 1 / -1; }
.id-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 28px; }
.id-card { padding: 26px; border: 1px solid #d2d7d4; background: white; }
.id-card h3 { margin: 0 0 10px; color: var(--survey-pine); }
.id-card p { margin: 0; color: #596b66; }
.id-example { display: inline-block; margin-top: 17px; padding: 10px 14px; background: var(--survey-pine); color: white; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 800; letter-spacing: .08em; }
.privacy-section { background: var(--survey-sky); }
.consent-preview { max-width: 820px; margin-top: 26px; padding: 24px; background: white; }
.consent-choice { display: grid; grid-template-columns: 24px 1fr; gap: 13px; align-items: start; color: var(--survey-ink); font-weight: 750; cursor: pointer; }
.consent-choice input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--survey-pine); }
.consent-note { margin: 13px 0 0 37px; color: #66736f; font-size: .88rem; }
.document-link { display: inline-flex; margin-top: 22px; }

.demo-banner { padding: 13px 20px; background: var(--survey-sun); color: #35270c; text-align: center; font-weight: 900; }
.demo-shell { max-width: 1040px; margin: 0 auto; padding: clamp(44px, 7vw, 82px) clamp(18px, 5vw, 54px); }
.demo-intro { max-width: 780px; margin-bottom: 34px; }
.demo-intro h1 { margin: 0 0 17px; color: var(--survey-pine); font-size: clamp(2.7rem, 5.5vw, 5.2rem); line-height: .98; }
.demo-intro p { color: #53645f; font-size: 1.08rem; }
.demo-form { display: grid; gap: 16px; }
.demo-accordion { border: 1px solid #c8d0cd; background: var(--survey-paper); }
.demo-accordion summary { position: relative; padding: 22px 64px 22px 24px; color: var(--survey-pine); font-family: Georgia, serif; font-size: clamp(1.12rem, 2vw, 1.4rem); font-weight: 700; cursor: pointer; list-style: none; }
.demo-accordion summary::-webkit-details-marker { display: none; }
.demo-accordion summary::after { content: "+"; position: absolute; top: 50%; right: 24px; width: 32px; height: 32px; transform: translateY(-50%); display: grid; place-items: center; border-radius: 50%; background: var(--survey-pine); color: white; font: 500 1.35rem/1 Arial, sans-serif; }
.demo-accordion[open] summary::after { content: "−"; }
.demo-accordion[open] summary { background: var(--survey-sky); }
.demo-accordion .demo-question { border: 0; border-top: 1px solid #d2d7d4; }
.demo-question { margin: 0; padding: clamp(20px, 4vw, 32px); border: 1px solid #d2d7d4; background: var(--survey-paper); }
.demo-question legend { max-width: 800px; padding: 0 8px; color: var(--survey-pine); font-family: Georgia, serif; font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 700; }
.demo-topic { display: block; margin-bottom: 7px; color: var(--survey-terracotta); font: 900 .76rem Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.demo-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 17px; }
.demo-options label { position: relative; display: flex; min-height: 52px; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid #b8c0bd; background: white; cursor: pointer; }
.demo-options input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--survey-pine); }
.demo-select { width: 100%; min-height: 52px; margin-top: 17px; padding: 12px 14px; border: 1px solid #aeb8b4; background: white; color: var(--survey-ink); font: inherit; }
.demo-city-grid { margin-top: 18px; }
.demo-city-grid .city-image-wrap { height: 190px; }
.demo-city-grid .city-content { min-height: 122px; }
.demo-character-other { margin-top: 12px; }
.demo-consent { padding: clamp(22px, 4vw, 32px); border-left: 4px solid var(--survey-sun); background: var(--survey-sky); }
.demo-consent h2 { margin: 0 0 10px; color: var(--survey-pine); font-size: 1.5rem; }
.demo-consent > p { color: #53645f; }
.demo-name-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; margin: 19px 0 0 37px; }
.demo-name-fields label { display: grid; gap: 6px; color: var(--survey-pine); font-weight: 800; }
.demo-name-fields input { min-height: 48px; padding: 10px 12px; border: 1px solid #aeb8b4; background: white; font: inherit; }
.demo-submit { justify-self: start; margin-top: 8px; border: 0; background: var(--survey-pine); color: white; cursor: pointer; }
.demo-result { margin-top: 28px; padding: clamp(24px, 5vw, 42px); background: var(--survey-pine); color: white; }
.demo-result h2 { margin: 0 0 10px; color: white; font-size: 2rem; }
.demo-result p { max-width: 700px; color: rgba(255,255,255,.82); }
.demo-id { display: inline-block; margin: 16px 0; padding: 12px 16px; background: white; color: var(--survey-pine); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.05rem; font-weight: 900; letter-spacing: .08em; }
.demo-restart { border: 1px solid rgba(255,255,255,.75); background: transparent; color: white; cursor: pointer; }

.survey-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  min-height: 620px;
  padding: clamp(56px, 9vw, 120px) clamp(20px, 6vw, 88px);
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 12%, rgba(237, 184, 79, 0.92) 0 7%, transparent 7.2%),
    linear-gradient(115deg, rgba(18, 63, 54, 0.98) 0 56%, rgba(32, 93, 80, 0.94) 56% 74%, rgba(220, 233, 237, 0.88) 74%),
    var(--survey-pine);
  color: white;
}

.survey-hero-copy { max-width: 850px; align-self: center; }
.survey-hero h1 { max-width: 830px; font-size: clamp(3.5rem, 7.2vw, 7.5rem); line-height: 0.9; letter-spacing: -0.045em; }
.survey-deck { max-width: 690px; margin: 28px 0 0; color: rgba(255,255,255,.84); font-size: clamp(1.1rem, 2vw, 1.4rem); }
.survey-start { display: inline-flex; align-items: center; gap: 16px; margin-top: 34px; padding: 13px 0; border-bottom: 2px solid var(--survey-sun); color: white; font-weight: 850; text-decoration: none; }
.survey-start span { color: var(--survey-sun); font-size: 1.3rem; }

.field-note { align-self: end; margin-left: auto; width: min(100%, 340px); padding: 28px; border: 1px solid rgba(255,255,255,.42); background: rgba(255,255,255,.1); backdrop-filter: blur(16px); }
.field-note-number { display: block; color: var(--survey-sun); font-family: Georgia, serif; font-size: 4rem; line-height: 1; }
.field-note-label { margin: 8px 0 24px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; font-size: .76rem; }
.field-note dl { margin: 0; }
.field-note dl div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.25); }
.field-note dt { color: rgba(255,255,255,.68); }
.field-note dd { margin: 0; font-weight: 800; text-align: right; }

.method-strip { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(32px, 7vw, 100px); padding: clamp(52px, 7vw, 86px) clamp(20px, 6vw, 88px); background: var(--survey-sky); }
.method-strip h2, .research-notes h2 { margin: 0; color: var(--survey-pine); font-size: clamp(2rem, 4vw, 3.9rem); line-height: 1.02; }
.method-copy { max-width: 760px; }
.method-copy p { margin: 0 0 17px; color: #3e5651; font-size: 1.03rem; }
.method-copy a { color: var(--survey-pine); font-weight: 850; }

.survey-workspace { display: grid; grid-template-columns: 290px minmax(0, 940px); justify-content: center; gap: clamp(24px, 5vw, 72px); padding: clamp(54px, 8vw, 100px) clamp(18px, 5vw, 72px); align-items: start; }
.survey-rail { position: sticky; top: 100px; }
.survey-kicker { margin: 0 0 7px; color: var(--survey-terracotta); font-size: .76rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.survey-rail h2 { margin: 0 0 28px; color: var(--survey-pine); font-size: 2rem; line-height: 1.05; }
.progress-track { height: 5px; overflow: hidden; background: #d8d5cc; }
.progress-track span { display: block; width: 25%; height: 100%; background: var(--survey-terracotta); transition: width .3s ease; }
.progress-wrap p { display: flex; justify-content: space-between; margin: 8px 0 26px; color: #5b6966; font-size: .78rem; font-weight: 800; }
.step-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.step-list li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid #d8d5cc; color: #71807c; font-weight: 750; }
.step-list span { display: grid; width: 28px; height: 28px; place-items: center; border: 1px solid #a9b1ae; border-radius: 50%; font-size: .78rem; }
.step-list li.is-active { color: var(--survey-pine); }
.step-list li.is-active span, .step-list li.is-complete span { border-color: var(--survey-pine); background: var(--survey-pine); color: white; }
.privacy-note { margin-top: 28px; padding: 16px; border-left: 3px solid var(--survey-sun); background: rgba(255,255,255,.62); color: #53645f; font-size: .82rem; }

.research-form, .survey-complete { min-width: 0; padding: clamp(24px, 5vw, 58px); background: var(--survey-paper); box-shadow: 0 24px 70px rgba(24,48,43,.12); }
.section-heading { margin-bottom: 42px; padding-bottom: 30px; border-bottom: 1px solid #ddd9cf; }
.section-number { color: var(--survey-terracotta); font-size: .75rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.section-heading h3 { max-width: 760px; margin: 10px 0 14px; color: var(--survey-pine); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.06; }
.section-heading p { max-width: 720px; margin: 0; color: #63706d; }

.question-block { margin: 0 0 42px; padding: 0; border: 0; }
.question-block legend { width: 100%; margin: 0 0 18px; color: var(--survey-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 700; }
.question-block legend > span { display: inline-grid; width: 30px; height: 30px; margin-right: 8px; place-items: center; border-radius: 50%; background: var(--survey-sun); color: #31250d; font: 800 .8rem Inter, sans-serif; vertical-align: 3px; }
.option-row { display: flex; flex-wrap: wrap; gap: 10px; }
.stack-options { display: grid; gap: 10px; }
.stack-options.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plain-option { position: relative; display: flex; min-height: 50px; align-items: center; }
.plain-option input { position: absolute; opacity: 0; }
.plain-option span { width: 100%; padding: 13px 17px; border: 1px solid #b8c0bd; background: white; font-weight: 720; cursor: pointer; transition: .18s ease; }
.option-row .plain-option span { width: auto; }
.plain-option input:checked + span { border-color: var(--survey-pine); background: var(--survey-pine); color: white; box-shadow: inset 0 0 0 1px var(--survey-pine); }
.plain-option input:focus-visible + span, .city-card input:focus-visible + .city-image-wrap, .height-options input:focus-visible + .building, .density-list input:focus-visible + span, .priority-grid input:focus-visible + span { outline: 3px solid rgba(43,93,142,.3); outline-offset: 3px; }

.scale-options { display: grid; gap: 8px; }
.scale-options.five-up { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.scale-options label { position: relative; }
.scale-options input { position: absolute; opacity: 0; }
.scale-options span { display: grid; min-height: 64px; place-items: center; padding: 8px; border: 1px solid #b8c0bd; background: white; text-align: center; font-size: .88rem; font-weight: 750; cursor: pointer; }
.scale-options input:checked + span { border-color: var(--survey-pine); background: var(--survey-pine); color: white; }

.city-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.city-card { position: relative; display: block; border: 1px solid #cac7be; background: white; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.city-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(24,48,43,.12); }
.city-card > input { position: absolute; opacity: 0; }
.city-image-wrap { position: relative; display: block; height: 220px; overflow: hidden; }
.city-image-wrap img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.83) contrast(1.02); transition: transform .35s ease; }
.city-card:hover img { transform: scale(1.025); }
.city-index { position: absolute; top: 14px; left: 14px; display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: rgba(255,253,248,.94); color: var(--survey-pine); font-weight: 900; }
.city-content { display: grid; min-height: 132px; padding: 19px; }
.city-content strong { color: var(--survey-pine); font-family: Georgia, serif; font-size: 1.5rem; }
.city-content small { margin-top: 4px; color: #61706d; font-size: .88rem; }
.city-content em { align-self: end; margin-top: 13px; color: var(--survey-terracotta); font-size: .78rem; font-style: normal; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.city-card:has(input:checked) { border: 3px solid var(--survey-pine); box-shadow: 0 15px 34px rgba(18,63,54,.18); }
.city-card:has(input:checked) .city-index { background: var(--survey-sun); }
.none-option { margin-top: 13px; }

.matrix { border: 1px solid #d1cec5; }
.matrix-head, .matrix-row { display: grid; grid-template-columns: minmax(220px, 1.6fr) repeat(4, minmax(68px, .55fr)); align-items: stretch; }
.matrix-head { background: var(--survey-pine); color: white; }
.matrix-head span { padding: 11px 8px; text-align: center; font-size: .75rem; font-weight: 800; }
.matrix-head span:first-child { text-align: left; }
.matrix-row { border-top: 1px solid #d8d5cc; }
.matrix-row strong { display: flex; align-items: center; padding: 13px; font-size: .9rem; }
.matrix-row label { position: relative; display: grid; place-items: center; border-left: 1px solid #e1ded6; }
.matrix-row input { position: absolute; opacity: 0; }
.matrix-row label span { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #aeb8b4; border-radius: 50%; color: #64716e; font-size: .78rem; font-weight: 800; cursor: pointer; }
.matrix-row input:checked + span { border-color: var(--survey-terracotta); background: var(--survey-terracotta); color: white; }

.height-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; }
.height-options label { position: relative; display: grid; min-height: 260px; align-content: end; justify-items: center; padding: 18px 10px; border: 1px solid #c9c7bf; background: linear-gradient(#e8f0f2 0 57%, #d8d2c2 57%); cursor: pointer; }
.height-options input { position: absolute; opacity: 0; }
.building { display: block; width: 76%; margin-bottom: 14px; border: 2px solid var(--survey-pine); background: repeating-linear-gradient(90deg, rgba(255,255,255,.82) 0 16px, transparent 16px 30px), repeating-linear-gradient(0deg, var(--survey-pine-2) 0 20px, var(--survey-pine) 20px 23px); box-shadow: 7px 7px 0 rgba(18,63,54,.14); }
.b2 { height: 62px; }.b3 { height: 92px; }.b4 { height: 122px; }.b5 { height: 152px; }
.height-options strong { color: var(--survey-pine); }
.height-options small { color: #65716e; }
.height-options label:has(input:checked) { border: 3px solid var(--survey-terracotta); background: linear-gradient(#dce9ed 0 57%, #eddfbd 57%); }

.question-help { margin: -8px 0 16px 40px; color: #64716e; font-size: .88rem; }
.density-list { display: grid; gap: 9px; }
.density-list label { position: relative; display: grid; grid-template-columns: minmax(190px, .8fr) 1.2fr; align-items: center; gap: 18px; padding: 15px 18px; border: 1px solid #c9c7bf; background: white; cursor: pointer; }
.density-list input { position: absolute; opacity: 0; }
.density-list span { display: grid; }
.density-list strong { color: var(--survey-pine); }
.density-list small { color: var(--survey-terracotta); font-size: .82rem; font-weight: 800; }
.density-list em { color: #63706d; font-size: .88rem; font-style: normal; }
.density-list label:has(input:checked) { border: 2px solid var(--survey-pine); background: #edf4f1; }
.followup { display: none; margin-top: 14px; padding: 16px; background: var(--survey-sky); }
.followup.is-visible { display: grid; gap: 8px; }
.followup label { color: var(--survey-pine); font-weight: 850; }
.followup select, .profile-grid select, .profile-grid input, .question-block textarea { width: 100%; min-height: 48px; padding: 11px 12px; border: 1px solid #aeb8b4; background: white; color: var(--survey-ink); font: inherit; }

.selection-counter { margin: -8px 0 14px 39px; color: var(--survey-terracotta); font-size: .85rem; font-weight: 850; }
.priority-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.priority-grid label { position: relative; }
.priority-grid input { position: absolute; opacity: 0; }
.priority-grid span { display: flex; min-height: 58px; align-items: center; padding: 13px 15px 13px 46px; border: 1px solid #c9c7bf; background: white; font-weight: 740; cursor: pointer; }
.priority-grid span::before { content: ""; position: absolute; left: 16px; width: 18px; height: 18px; border: 2px solid #83908c; }
.priority-grid input:checked + span { border-color: var(--survey-pine); background: #edf4f1; color: var(--survey-pine); }
.priority-grid input:checked + span::before { border-color: var(--survey-pine); background: var(--survey-pine); box-shadow: inset 0 0 0 4px #edf4f1; }
.priority-grid input:disabled + span { opacity: .45; cursor: not-allowed; }
.range-labels { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; color: #66736f; font-size: .82rem; font-weight: 750; }
.range-labels span:last-child { text-align: right; }
.range-labels output { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; background: var(--survey-terracotta); color: white; font: 800 1.2rem Georgia, serif; }
.range-question input[type="range"] { width: 100%; margin: 20px 0 0; accent-color: var(--survey-pine); }
.question-block textarea { min-height: 130px; resize: vertical; }
.character-count { margin: 5px 0 0; color: #75817e; font-size: .78rem; text-align: right; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.profile-grid label { display: grid; gap: 7px; color: var(--survey-pine); font-weight: 800; }

.survey-actions { display: flex; justify-content: space-between; gap: 12px; padding-top: 25px; border-top: 1px solid #ddd9cf; }
.survey-actions #next-button, .survey-actions #submit-button { margin-left: auto; }
.form-error { margin: 0 0 16px; padding: 13px 15px; border-left: 4px solid var(--survey-terracotta); background: #fff0ea; color: #783725; font-weight: 750; }
.survey-complete { grid-column: 2; }
.survey-complete h2 { margin: 0 0 18px; color: var(--survey-pine); font-size: clamp(2.2rem, 4vw, 3.8rem); }
.response-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 28px 0; }
.response-summary div { padding: 17px; border-top: 3px solid var(--survey-sun); background: var(--survey-cream); }
.response-summary span { display: block; color: #687572; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.response-summary strong { display: block; margin-top: 5px; color: var(--survey-pine); font-family: Georgia, serif; font-size: 1.15rem; }

.research-notes { padding: clamp(60px, 8vw, 100px) clamp(20px, 6vw, 88px); background: var(--survey-pine); color: white; }
.research-notes h2 { max-width: 760px; color: white; }
.notes-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 46px; }
.notes-grid article { padding: 22px; border-top: 1px solid rgba(255,255,255,.35); }
.notes-grid article > span { color: var(--survey-sun); font: 700 2rem Georgia, serif; }
.notes-grid h3 { margin: 16px 0 8px; font-size: 1rem; }
.notes-grid p { margin: 0; color: rgba(255,255,255,.72); font-size: .9rem; }
.survey-footer { background: #0d2f28; color: rgba(255,255,255,.84); }
.survey-footer .independence-note { color: rgba(255,255,255,.72); }
.photo-credits { max-width: 690px; color: rgba(255,255,255,.62); font-size: .74rem; text-align: right; }
.photo-credits a { color: rgba(255,255,255,.8); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 980px) {
  .survey-hold-card { grid-template-columns: 140px minmax(0, 1fr); }
  .survey-hero, .method-strip { grid-template-columns: 1fr; }
  .survey-hero { min-height: auto; gap: 54px; }
  .field-note { margin-left: 0; }
  .survey-workspace { grid-template-columns: 1fr; }
  .survey-rail { position: static; }
  .step-list { grid-template-columns: repeat(4, 1fr); }
  .step-list li { display: grid; justify-items: center; gap: 7px; padding: 10px 4px; text-align: center; font-size: .72rem; }
  .privacy-note { display: none; }
  .survey-complete { grid-column: 1; }
  .notes-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .survey-hold-main { place-items: start center; }
  .survey-hold-card { grid-template-columns: 1fr; }
  .survey-hold-icon { width: 104px; height: 104px; }
  .survey-topic-list { grid-template-columns: 1fr; }
  .methodology-grid, .id-grid, .demo-options, .demo-name-fields { grid-template-columns: 1fr; }
  .demo-accordion summary { padding: 18px 56px 18px 18px; }
  .demo-accordion summary::after { right: 16px; }
  .demo-name-fields { margin-left: 0; }
  .survey-hero h1 { font-size: clamp(3.3rem, 16vw, 5rem); }
  .city-grid, .priority-grid, .profile-grid, .stack-options.compact { grid-template-columns: 1fr; }
  .city-image-wrap { height: 200px; }
  .scale-options.five-up { grid-template-columns: repeat(2, 1fr); }
  .scale-options.five-up label:last-child { grid-column: 1 / -1; }
  .matrix { overflow-x: auto; }
  .matrix-head, .matrix-row { min-width: 630px; }
  .height-options { grid-template-columns: repeat(2, 1fr); }
  .density-list label { grid-template-columns: 1fr; gap: 5px; }
  .response-summary { grid-template-columns: 1fr; }
  .notes-grid { grid-template-columns: 1fr; }
  .photo-credits { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
