:root {
    --forest: #12384a;
    --forest-dark: #0c2937;
    --ink: #173746;
    --muted: #637579;
    --paper: #f5f4ed;
    --sage: #eaf0e7;
    --sage-mid: #d9e3d4;
    --line: #dce1d7;
    --white: #fff;
    --danger: #923e36;
    --danger-pale: #fcf2ef;
    --radius: 12px;
    color-scheme: light;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font: inherit; }
button, select, input[type='radio'], input[type='checkbox'] { cursor: pointer; }
button { -webkit-tap-highlight-color: transparent; }
button:disabled { cursor: not-allowed; opacity: .48; }
button { color: inherit; }
a { color: var(--forest); text-underline-offset: 4px; }
button, a, input, select, textarea { outline-offset: 4px; }
:focus-visible { outline: 3px solid #8aa18a; }
button::-moz-focus-inner { border: 0; }
[hidden] { display: none !important; }
svg { display: block; }

.site-header {
    max-width: 1400px;
    margin: 0 auto;
    min-height: 102px;
    padding: 23px 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ink);
    text-decoration: none;
    line-height: 1.08;
}
.brand svg { width: 43px; height: 43px; flex: 0 0 auto; }
.brand strong, .brand-name, .brand > span {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 27px;
    font-weight: 400;
    letter-spacing: -.8px;
}
.brand > span { display: block; }
.brand .brand-subtitle, .brand-tagline {
    display: block;
    margin-top: 6px;
    font-size: 9px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 2.35px;
    text-transform: uppercase;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.brand-with-logo { gap: 16px; flex: 0 0 auto; }
.brand-logo { display: block; width: 104px; height: 104px; object-fit: contain; flex: 0 0 104px; }
.brand-with-logo > span { font-size: 26px; letter-spacing: -.6px; }
.brand-with-logo .brand-subtitle { color: #768779; font-size: 8px; line-height: 1.45; letter-spacing: 1.5px; }
.brand-with-logo .brand-subtitle + .brand-subtitle { font-size: 7px; letter-spacing: 1px; margin-top: 4px; }
.site-header .brand-location { display: block; font-family: Arial, sans-serif; font-size: 10px; line-height: 1.4; letter-spacing: 0; margin-top: 6px; font-weight: 400; }
.header-links { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; justify-content: flex-end; }
.header-links a, .header-links button {
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    background: none;
    border: none;
    padding: 8px 0;
}
.header-links .contact-link {
    border: 1px solid #b6c6b8;
    padding: 10px 17px;
    border-radius: 6px;
}
.header-links a:hover, .header-links button:hover { color: #66836c; }
.demo-label { font-size: 9px; color: #718267; border: 1px solid #cdd8c3; border-radius: 4px; padding: 5px 9px; letter-spacing: .5px; }
.skip-link { position: absolute; top: 8px; left: 8px; transform: translateY(-180%); z-index: 10; padding: 10px 16px; border-radius: 6px; color: white; background: var(--forest); font-size: 12px; }
.skip-link:focus { transform: translateY(0); }

.demo-strip {
    background: #e8ede3;
    border-top: 1px solid #dfe5d8;
    border-bottom: 1px solid #dfe5d8;
    color: #536b5b;
    padding: 9px 24px;
    text-align: center;
    font-size: 11px;
    line-height: 1.6;
    letter-spacing: .2px;
}
.demo-strip strong { color: #3c5c48; font-weight: 700; }

.shell {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 72px;
    width: calc(100% - 112px);
    max-width: 1280px;
    margin: 60px auto 70px;
    align-items: start;
}
.intro { padding: 19px 0 0; }
.eyebrow, .step-kicker {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2.1px;
    color: #678071;
}
.eyebrow::before {
    content: '';
    width: 25px;
    height: 1px;
    background: #9aaa93;
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, .modal h2 {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400;
    letter-spacing: -1.3px;
}
.intro h1 {
    font-size: clamp(46px, 4.2vw, 61px);
    line-height: 1.05;
    margin: 22px 0 26px;
}
.intro h1 em { color: #6f876e; font-weight: 400; }
.intro-copy {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.8;
    margin-bottom: 33px;
}
.intro-points { list-style: none; margin: 0; padding: 0; }
.intro-points > div { display: flex; align-items: flex-start; gap: 14px; margin: 21px 0; }
.intro-points .point-icon { flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid #cbd6c0; border-radius: 50%; color: #74866b; font-size: 9px; line-height: 26px; text-align: center; margin-top: 2px; }
.intro-points p { margin: 0; }
.intro-points p strong { display: block; font-size: 12px; color: #435f45; font-weight: 600; margin-bottom: 3px; }
.intro-points p span { display: block; color: #84907b; font-size: 11px; line-height: 1.7; }
.intro-points li {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    font-size: 12px;
    color: #53685e;
    margin: 13px 0;
}
.intro-points li::before {
    content: '✓';
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-radius: 50%;
    background: var(--sage-mid);
    font-size: 10px;
    color: var(--forest);
    text-align: center;
    line-height: 18px;
    margin-top: 1px;
}
.intro-note {
    margin-top: 37px;
    padding-top: 20px;
    border-top: 1px solid #d5dcd0;
    font-size: 11px;
    line-height: 1.8;
    color: #798379;
    display: flex;
    align-items: flex-start;
    gap: 9px;
}
.intro-note strong { display: block; color: #516553; font-size: 11px; margin-bottom: 5px; }
.intro-note svg { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 3px; }
.intro-note p { margin: 0; }
.temporary-brand { font-size: 9px; line-height: 1.6; color: #969c8e; margin: 15px 0 0; }
.practice-intro-link { display: inline-block; margin-top: 18px; color: var(--forest); font-size: 11px; font-weight: 600; text-decoration: none; }
.practice-intro-link:hover { text-decoration: underline; text-underline-offset: 4px; }

.questionnaire {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: 0 9px 32px #263c2810;
    overflow: hidden;
}
.progress-top {
    padding: 23px 37px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}
#progress-label { color: #738269; font-size: 9px; letter-spacing: 1.4px; font-weight: 600; }
.progress-top .text-button { font-size: 10px; padding: 4px 0; }
.progress-label, .progress-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    font-size: 10px;
    line-height: 1.5;
    color: var(--muted);
    margin-bottom: 17px;
}
.progress-label strong, .progress-meta strong { font-weight: 600; color: var(--ink); }
.step-track {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    column-gap: 6px;
    list-style: none;
    padding: 0 37px 21px;
    margin: 0;
    border-bottom: 1px solid #edf0e9;
}
.step-number { display: none; }
.step-track li {
    position: relative;
    padding-top: 13px;
    color: #929b92;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.5;
    text-align: center;
}
.step-track li::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: #e5eae1;
    border-radius: 8px;
}
.step-track li.current { color: var(--forest); font-weight: 700; }
.step-track li.current::before { background: var(--forest); }
.step-track li.done { color: #647d67; }
.step-track li.done::before { background: #9db296; }
#step-content { padding: 34px 37px 20px; min-height: 450px; }
.step-kicker { font-size: 9px; letter-spacing: 1.7px; margin-bottom: 12px; }
.questionnaire h2 {
    font-size: 38px;
    line-height: 1.13;
    margin: 0 0 12px;
    color: var(--ink);
}
.subtitle { color: var(--muted); font-size: 13px; line-height: 1.75; margin: 0 0 26px; }
.body-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; align-items: start; }
.body-controls { padding-top: 9px; }
.body-panel {
    background: #f8f9f5;
    border: 1px solid #e7ecdf;
    border-radius: 12px;
    min-height: 410px;
    text-align: center;
    padding: 17px 14px 10px;
}
.view-toggle {
    display: inline-flex;
    padding: 3px;
    background: #eaede5;
    border-radius: 7px;
    margin-bottom: 5px;
    gap: 2px;
}
.view-toggle button {
    border: 0;
    background: transparent;
    color: #74806f;
    font-size: 10px;
    padding: 6px 15px;
    border-radius: 5px;
    min-width: 62px;
}
.view-toggle button.selected, .view-toggle button[aria-pressed='true'] {
    background: #fff;
    color: var(--forest);
    box-shadow: 0 1px 3px #25371e14;
    font-weight: 700;
}
.body-map { width: 180px; height: 327px; margin: 0 auto; overflow: visible; }
.body-map .body-zone {
    fill: #e0e6db;
    stroke: #aabbab;
    stroke-width: 1.1;
    cursor: pointer;
    transition: fill .18s ease, stroke .18s ease;
}
.body-map .body-zone > circle:not(.zone-dot) { fill: transparent; stroke: none; }
.body-map .zone-dot { fill: #f8faf4; stroke: #819b74; stroke-width: 1.4; transition: fill .18s ease, stroke .18s ease; }
.body-map .body-zone:hover .zone-dot, .body-map .body-zone:focus .zone-dot { fill: #bdd1ae; stroke: #587947; }
.body-map .body-zone.selected .zone-dot, .body-map .body-zone[aria-pressed='true'] .zone-dot { fill: var(--forest); stroke: var(--forest); stroke-width: 2; }
.body-map .body-zone:focus-visible { outline: none; }
.body-map .body-zone:focus-visible .zone-dot { stroke: #597e4a; stroke-width: 3; }
.body-map .body-detail { stroke: #a5b6a3; fill: none; pointer-events: none; }
.body-panel > p, .body-panel .map-caption { font-size: 10px; color: #788475; margin: 0; }
.selected-area {
    margin-top: 20px;
    background: #eff4e9;
    border: 1px solid #dce7d3;
    padding: 13px 15px;
    border-radius: 8px;
    color: #42613f;
    font-size: 12px;
    line-height: 1.65;
}
.selected-area strong { display: block; font-size: 10px; letter-spacing: .9px; text-transform: uppercase; margin-bottom: 2px; }
.selected-area > span { display: block; font-size: 9px; color: #8a987e; margin-top: 2px; }
.field { margin-bottom: 22px; }
.field-label, fieldset legend, .question-block h3 {
    display: block;
    font-weight: 600;
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 10px;
    color: var(--ink);
}
.field-help { display: block; color: var(--muted); font-size: 11px; margin-top: 8px; }
.field-hint { color: #8b9582; font-size: 10px; line-height: 1.75; margin-top: 8px; }
.adult-confirm { display: flex; gap: 9px; align-items: flex-start; font-size: 11px; line-height: 1.75; color: #6c7c61; }
.adult-confirm input { flex: 0 0 14px; width: 14px; height: 14px; margin: 3px 0 0; accent-color: var(--forest); }
input:not([type='radio']):not([type='checkbox']), .select-input, select, textarea {
    width: 100%;
    border: 1px solid #d4dece;
    border-radius: 7px;
    background: #fff;
    color: var(--ink);
    min-height: 46px;
    padding: 11px 13px;
    transition: border-color .15s, box-shadow .15s;
    font-size: 12px;
}
select { padding-right: 32px; }
textarea { resize: vertical; min-height: 112px; line-height: 1.7; }
input::placeholder, textarea::placeholder { color: #9aa397; }
input:focus, select:focus, textarea:focus { border-color: #7a9576; box-shadow: 0 0 0 3px #6a89661c; }
fieldset { border: 0; margin: 0 0 25px; padding: 0; min-width: 0; }
fieldset legend { padding: 0; }
.option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.choice {
    width: 100%;
    border: 1px solid #dce2d7;
    border-radius: 8px;
    min-height: 73px;
    padding: 15px 15px 15px 39px;
    display: block;
    position: relative;
    text-align: left;
    background: #fff;
    transition: border-color .17s, background-color .17s, box-shadow .17s;
}
.choice:hover { border-color: #a2b49a; background: #fafcf7; }
.choice.selected, .choice[aria-pressed='true'] {
    border-color: #6b8a60;
    background: #eff4e9;
    box-shadow: 0 0 0 1px #6b8a6026;
}
.choice-label { display: block; font-size: 12px; font-weight: 600; line-height: 1.45; }
.choice-detail { display: block; font-size: 10px; line-height: 1.55; color: #7a8675; margin-top: 4px; font-weight: 400; }
.choice-indicator {
    position: absolute;
    top: 18px;
    left: 14px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1px solid #bcc8b5;
    background: #fff;
    font-size: 0;
    color: transparent;
}
.choice.selected .choice-indicator, .choice[aria-pressed='true'] .choice-indicator { border: 4px solid var(--forest); }
.choice.compact { min-height: 49px; padding-top: 13px; padding-bottom: 13px; }
.choice.compact .choice-indicator { top: 16px; }
.question-block { margin: 25px 0; }
.question-block:first-child { margin-top: 0; }
.question-block p { font-size: 12px; color: var(--muted); }
.pain-scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 5px; }
.pain-scale label {
    cursor: pointer;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid #dce2d7;
    border-radius: 7px;
    padding: 11px 0 9px;
    color: #64725c;
    font-size: 12px;
    min-height: 62px;
    transition: background .17s, border-color .17s;
}
.pain-scale label:hover { background: #f6f9f1; border-color: #a2b49a; }
.pain-scale label:has(input:checked) { background: #eef4e7; color: var(--forest); border-color: #76966b; }
.pain-scale input { accent-color: var(--forest); width: 12px; height: 12px; margin: 0; }
.scale-labels { display: flex; justify-content: space-between; margin-top: 9px; color: #8a9384; font-size: 10px; gap: 15px; }
.help-panel {
    background: #f0f4eb;
    border: 1px solid #e0e8d8;
    border-radius: 8px;
    padding: 17px 18px;
    font-size: 12px;
    color: #526b4b;
    line-height: 1.75;
    margin: 22px 0;
}
.help-panel strong { color: #3d5a39; font-size: 12px; }
.help-panel p:last-child { margin-bottom: 0; }
.help-panel ul { padding-left: 18px; margin: 8px 0 0; }
.urgent-panel {
    background: var(--danger-pale);
    border: 1px solid #edcfc5;
    border-radius: 9px;
    color: #793b32;
    padding: 22px;
    margin: 22px 0;
    font-size: 13px;
    line-height: 1.75;
}
.urgent-panel h3 { font-size: 17px; margin-bottom: 9px; }
.urgent-panel p:last-child { margin-bottom: 0; }
.urgent-panel.emergency { border-left: 4px solid var(--danger); }
.urgent-panel a { color: #793b32; font-weight: 600; }
.notice {
    font-size: 11px;
    color: var(--muted);
    line-height: 1.7;
    padding: 13px 15px;
    border: 1px solid #e7eadd;
    background: #fafbf7;
    border-radius: 7px;
    margin: 20px 0;
}
.notice p:last-child { margin-bottom: 0; }
.inline-error { color: #a44839; background: #fcf2ed; border: 1px solid #edd2c8; font-size: 12px; padding: 12px 14px; border-radius: 7px; margin: 14px 0; }
.form-actions {
    margin: 27px 0 0;
    padding: 23px 0 27px;
    border-top: 1px solid #e7ece1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.form-actions .field-hint { margin: 0; }
.btn-primary, .btn-secondary {
    border: 1px solid var(--forest);
    border-radius: 7px;
    padding: 13px 23px;
    min-height: 45px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    text-decoration: none;
    transition: background .17s, box-shadow .17s, transform .17s;
}
.btn-primary { background: var(--forest); color: #fff; }
.btn-primary:hover:not(:disabled) { background: var(--forest-dark); box-shadow: 0 3px 10px #25492a22; }
.btn-primary:active:not(:disabled), .btn-secondary:active:not(:disabled) { transform: translateY(1px); }
.btn-secondary { background: #fff; border-color: #cbd6c3; color: var(--forest); }
.btn-secondary:hover:not(:disabled) { background: #f3f6ee; border-color: #8fa685; }
.btn-primary svg, .btn-secondary svg { width: 15px; height: 15px; }
.text-button { border: 0; padding: 8px 0; font-size: 11px; font-weight: 500; background: transparent; color: #7a8872; text-decoration: none; }
.text-button:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 4px; }
.privacy-line {
    padding: 0 37px 23px;
    color: #899280;
    font-size: 9px;
    text-align: center;
    line-height: 1.7;
}
.privacy-line svg { display: inline-block; width: 11px; height: 11px; margin-right: 4px; vertical-align: -2px; }
.privacy-line a { color: #6b7c60; }
.privacy-line .text-button { font-size: inherit; padding: 0; text-decoration: underline; text-underline-offset: 2px; }
.summary-list { margin: 22px 0; border-top: 1px solid #e4eade; }
.summary-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 40px;
    gap: 16px;
    align-items: start;
    border-bottom: 1px solid #e4eade;
    padding: 17px 0;
    font-size: 12px;
}
.summary-row > div { display: grid; grid-template-columns: 116px minmax(0, 1fr); gap: 16px; }
.summary-row dt { font-size: 11px; color: #849078; }
.summary-row dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; white-space: pre-wrap; }
.summary-row button { border: 0; padding: 0; color: #5f7a50; background: none; text-decoration: underline; text-underline-offset: 3px; font-size: 10px; }
.summary-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.summary-actions .btn-primary, .summary-actions .btn-secondary { padding: 11px 17px; }
.consent-label { display: flex; gap: 11px; font-size: 12px; color: var(--muted); line-height: 1.8; align-items: flex-start; }
.consent-label input { accent-color: var(--forest); margin: 5px 0 0; width: 15px; height: 15px; flex: 0 0 15px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.contact-grid .full-width { grid-column: 1 / -1; }
.practice-section {
    width: calc(100% - 112px);
    max-width: 1280px;
    margin: 0 auto 70px;
    padding-top: 48px;
    border-top: 1px solid #d9e0d2;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: 72px;
    align-items: start;
    scroll-margin-top: 30px;
}
.practice-copy { max-width: 690px; }
.practice-copy .eyebrow { margin-bottom: 18px; }
.practice-copy h2 { font-size: 48px; line-height: 1.12; margin: 0 0 10px; }
.practitioner-qualification { font-size: 11px; color: #788a7e; font-weight: 600; letter-spacing: .8px; margin: 0 0 27px; }
.practice-copy > p:not(.eyebrow):not(.practitioner-qualification) { color: #5b7178; font-size: 14px; line-height: 1.9; margin: 0 0 20px; }
.practice-copy > p:last-child { margin-bottom: 0; }
.practice-card {
    background: #fff;
    border: 1px solid #dce1d7;
    border-radius: 12px;
    padding: 27px 30px 30px;
    scroll-margin-top: 30px;
}
.practice-logo { display: block; width: 190px; height: 190px; object-fit: contain; margin: 0 auto 23px; max-width: 100%; }
.practice-card h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 28px; font-weight: 400; letter-spacing: -.6px; line-height: 1.2; margin: 0 0 17px; }
.practice-card address { font-style: normal; font-size: 14px; color: #536b74; line-height: 1.85; }
.appointment-note { display: inline-block; margin: 20px 0 11px; padding: 6px 10px; background: #eef2e8; border: 1px solid #dce5d1; border-radius: 5px; color: #4d6b57; font-size: 9px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
.practice-card > p { color: #80918a; font-size: 12px; line-height: 1.75; margin: 0 0 20px; }
.practice-directions { display: inline-flex; align-items: center; gap: 12px; color: var(--forest); font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.practice-directions:hover { color: #728772; }
.site-footer {
    width: calc(100% - 112px);
    max-width: 1280px;
    margin: 0 auto;
    padding: 22px 0 30px;
    border-top: 1px solid #d9e0d2;
    display: flex;
    justify-content: space-between;
    gap: 25px;
    font-size: 10px;
    color: #8b9383;
    line-height: 1.8;
}
.site-footer p { margin: 0; }
.site-footer a, .site-footer button { color: #65775d; background: none; border: 0; font-size: 10px; text-decoration: none; padding: 0; }
.footer-links { display: flex; gap: 22px; flex-wrap: wrap; }
dialog.modal {
    border: 1px solid #d9e1d1;
    border-radius: 16px;
    padding: 30px;
    width: min(560px, calc(100% - 36px));
    max-height: calc(100% - 50px);
    overflow: auto;
    color: var(--ink);
    background: #fff;
    box-shadow: 0 20px 70px #14251b38;
}
.modal::backdrop { background: #21352b75; backdrop-filter: blur(4px); }
.modal-header { display: flex; justify-content: space-between; gap: 15px; align-items: start; margin-bottom: 19px; }
.modal h2 { font-size: 32px; line-height: 1.15; margin-bottom: 0; }
.modal h3 { font-size: 13px; margin-top: 20px; margin-bottom: 5px; }
.modal p, .modal li { font-size: 12px; color: var(--muted); line-height: 1.8; }
.modal p:last-child { margin-bottom: 0; }
.modal ul { padding-left: 20px; }
.modal-close { border: 0; background: #f1f4eb; border-radius: 50%; width: 29px; height: 29px; flex: 0 0 29px; font-size: 19px; line-height: 1; padding: 0; }
.modal-close:hover { background: #e3eada; }
.modal .btn-primary { margin-top: 16px; }
.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 (min-width: 1400px) {
    .shell { gap: 82px; grid-template-columns: 340px minmax(0, 1fr); }
    .intro h1 { font-size: 64px; }
}

@media (max-width: 1100px) {
    .site-header { padding-left: 35px; padding-right: 35px; }
    .shell { width: calc(100% - 70px); grid-template-columns: 260px minmax(0, 1fr); gap: 38px; margin-top: 42px; }
    .intro h1 { font-size: 51px; }
    .body-layout { grid-template-columns: minmax(0, 1fr) 220px; gap: 20px; }
    .progress-top { padding-left: 28px; padding-right: 28px; }
    #step-content { padding-left: 28px; padding-right: 28px; }
    .step-track { padding-left: 28px; padding-right: 28px; }
    .site-footer { width: calc(100% - 70px); }
    .practice-section { width: calc(100% - 70px); gap: 42px; }
    .brand-logo { width: 92px; height: 92px; flex-basis: 92px; }
    .brand-with-logo > span { font-size: 24px; }
    .header-links { gap: 16px; }
    .header-links a, .header-links button { font-size: 11px; }
}

@media (max-width: 900px) {
    .site-header { min-height: 87px; padding: 20px 28px; flex-wrap: wrap; gap: 14px 24px; }
    .header-links { gap: 15px; flex: 1 1 320px; }
    .shell { width: calc(100% - 56px); max-width: 710px; grid-template-columns: minmax(0, 1fr); gap: 28px; margin-top: 35px; }
    .intro { padding-top: 0; }
    .intro h1 { font-size: 47px; max-width: 590px; margin: 14px 0 15px; }
    .intro h1 br { display: none; }
    .intro-copy { max-width: 560px; font-size: 13px; margin-bottom: 0; }
    .intro-points { display: none; }
    .intro-note { margin-top: 17px; padding-top: 0; border-top: 0; max-width: 560px; font-size: 10px; }
    .intro-note strong { display: inline; margin-right: 4px; font-size: 10px; }
    .body-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 28px; }
    .site-footer { width: calc(100% - 56px); max-width: 710px; }
    .questionnaire h2 { font-size: 39px; }
    .practice-section { width: calc(100% - 56px); max-width: 710px; grid-template-columns: minmax(0, 1fr); gap: 32px; margin-bottom: 45px; padding-top: 35px; }
    .practice-copy { max-width: none; }
    .practice-copy h2 { font-size: 43px; }
    .practice-card { max-width: none; }
    .practice-logo { width: 175px; height: 175px; }
}

@media (max-width: 600px) {
    .site-header { padding: 18px 20px; min-height: 79px; gap: 12px; }
    .brand { gap: 8px; }
    .brand svg { width: 34px; height: 34px; }
    .brand strong, .brand-name, .brand > span { font-size: 24px; }
    .brand .brand-subtitle, .brand-tagline { font-size: 7px; letter-spacing: 1.85px; margin-top: 5px; }
    .brand-with-logo { gap: 12px; }
    .brand-logo { width: 82px; height: 82px; flex-basis: 82px; }
    .brand-with-logo > span { font-size: 23px; letter-spacing: -.4px; }
    .brand-with-logo .brand-subtitle { font-size: 7px; letter-spacing: 1px; }
    .brand-with-logo .brand-subtitle + .brand-subtitle { font-size: 7px; letter-spacing: .5px; }
    .header-links { gap: 8px 13px; width: 100%; flex-basis: 100%; justify-content: space-between; padding-top: 5px; }
    .header-links .demo-label { display: none; }
    .header-links a, .header-links button { font-size: 10px; }
    .header-links .contact-link { padding: 7px 10px; }
    .demo-strip { font-size: 9px; padding: 8px 20px; }
    .shell { width: calc(100% - 32px); margin: 27px auto 36px; gap: 21px; }
    .intro { padding: 0 5px; }
    .intro h1 { font-size: 42px; margin-top: 13px; margin-bottom: 13px; letter-spacing: -1px; }
    .eyebrow { font-size: 9px; letter-spacing: 1.6px; }
    .intro-copy { font-size: 12px; line-height: 1.75; }
    .intro-note { margin-top: 10px; }
    .questionnaire { border-radius: 12px; }
    .progress-top { padding: 19px 21px 13px; }
    .progress-label, .progress-meta { font-size: 9px; margin-bottom: 13px; }
    .step-track { gap: 5px; padding: 0 21px 17px; }
    .step-track li { font-size: 7px; padding-top: 11px; }
    #step-content { padding: 26px 21px 10px; min-height: 360px; }
    .questionnaire h2 { font-size: 32px; letter-spacing: -.9px; }
    .step-kicker { font-size: 8px; }
    .subtitle { font-size: 12px; margin-bottom: 21px; }
    .body-layout { grid-template-columns: minmax(0, 1fr); gap: 19px; }
    .body-controls { padding-top: 0; }
    .body-panel { min-height: 350px; padding-top: 15px; }
    .body-map { width: 156px; height: 286px; }
    .selected-area { margin-top: 13px; }
    .field { margin-bottom: 19px; }
    .field-label, fieldset legend, .question-block h3 { font-size: 12px; }
    .option-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; }
    .choice { min-height: 61px; padding-top: 12px; padding-bottom: 12px; }
    .choice-indicator { top: 14px; }
    .choice-detail { font-size: 10px; }
    .pain-scale { gap: 3px; }
    .pain-scale label { min-height: 52px; padding: 8px 0; font-size: 11px; gap: 6px; border-radius: 5px; }
    .pain-scale input { width: 10px; height: 10px; }
    .scale-labels { font-size: 9px; }
    .help-panel { padding: 14px; font-size: 11px; }
    .urgent-panel { padding: 17px; font-size: 12px; }
    .urgent-panel h3 { font-size: 15px; }
    .form-actions { margin: 18px 0 0; padding: 20px 0 23px; }
    .btn-primary, .btn-secondary { font-size: 11px; min-height: 44px; padding: 12px 16px; gap: 14px; }
    .privacy-line { padding: 0 22px 20px; font-size: 8px; }
    .summary-row { grid-template-columns: minmax(0, 1fr) 30px; gap: 9px; font-size: 11px; padding: 15px 0; }
    .summary-row > div { grid-template-columns: 84px minmax(0, 1fr); gap: 9px; }
    .summary-row dt { font-size: 10px; }
    .summary-row button { font-size: 9px; }
    .summary-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
    .contact-grid { grid-template-columns: minmax(0, 1fr); }
    .site-footer { width: calc(100% - 42px); flex-direction: column; gap: 10px; font-size: 9px; padding-top: 19px; }
    .footer-links { gap: 18px; }
    .site-footer a, .site-footer button { font-size: 9px; }
    .practice-section { width: calc(100% - 42px); gap: 26px; padding-top: 28px; margin-bottom: 36px; }
    .practice-copy h2 { font-size: 37px; }
    .practice-copy .eyebrow { font-size: 8px; letter-spacing: 1.5px; }
    .practitioner-qualification { font-size: 10px; margin-bottom: 23px; }
    .practice-copy > p:not(.eyebrow):not(.practitioner-qualification) { font-size: 14px; line-height: 1.85; margin-bottom: 18px; }
    .practice-card { padding: 24px; }
    .practice-logo { width: 160px; height: 160px; margin-bottom: 20px; }
    .practice-card h3 { font-size: 27px; }
    .practice-card address { font-size: 14px; }
    dialog.modal { padding: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
    @page { size: A4; margin: 16mm; }
    body { background: #fff; color: #111; font: 11pt/1.5 Georgia, serif; }
    .site-header { min-height: 0; padding: 0 0 18px; max-width: none; border-bottom: 1px solid #ccc; }
    .brand strong, .brand > span { font-size: 20pt; }
    .brand .brand-subtitle { font-size: 7pt; }
    .brand svg { width: 34px; height: 34px; }
    .brand-logo { width: 65px; height: 65px; flex-basis: 65px; }
    .brand-with-logo > span { font-size: 20pt; }
    .brand-with-logo .brand-subtitle, .brand-with-logo .brand-subtitle + .brand-subtitle { font-size: 7pt; }
    .header-links, .demo-strip, .intro, .practice-section, .progress-top, .step-track, .form-actions, .privacy-line, .summary-actions, .site-footer, .summary-row button, .text-button, dialog, .inline-error { display: none !important; }
    .shell { display: block; width: 100%; max-width: none; margin: 22px 0 0; }
    .questionnaire { border: 0; box-shadow: none; border-radius: 0; overflow: visible; }
    #step-content { padding: 0; min-height: 0; }
    .questionnaire h2 { color: #111; font-size: 25pt; }
    .step-kicker { color: #444; font-size: 8pt; }
    .subtitle { color: #444; font-size: 10pt; }
    .summary-row { grid-template-columns: minmax(0, 1fr); font-size: 10pt; padding: 12px 0; break-inside: avoid; }
    .summary-row > div { grid-template-columns: 105px minmax(0, 1fr); }
    .summary-row dt { color: #444; font-size: 9pt; }
    .notice, .help-panel { border: 1px solid #ddd; background: white; color: #444; break-inside: avoid; font-size: 9pt; }
    a { color: #111; text-decoration: none; }
    .body-layout, .option-grid, .pain-scale, .question-block, fieldset, .field, .consent-label { display: none !important; }
}
