:root {
  --paper: #f5f0e5;
  --surface: #fffdf8;
  --ink: #1f1c17;
  --muted: #6e695f;
  --line: #d9cfbc;
  --terracotta: #b6602f;
  --terracotta-dark: #8f4521;
  --sage: #6f7f63;
  --sage-wash: #e8ecdf;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--paper); }
a { color: inherit; }
.portal-header { align-items: center; background: var(--surface); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; min-height: 76px; padding: 14px clamp(20px, 5vw, 72px); position: sticky; top: 0; z-index: 4; }
.portal-header img { display: block; height: 46px; width: auto; }
.portal-shell { margin: 0 auto; max-width: 1180px; padding: clamp(42px, 7vw, 88px) clamp(18px, 4vw, 48px) 100px; }
.portal-intro { align-items: start; display: flex; gap: 32px; justify-content: space-between; margin-bottom: 32px; }
.portal-intro--compact { display: block; margin-inline: auto; max-width: 720px; text-align: center; }
.eyebrow { color: var(--terracotta); font-size: .78rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 10px; text-transform: uppercase; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 500; letter-spacing: -.025em; }
h1 { font-size: clamp(2.3rem, 5vw, 4.2rem); line-height: 1.02; margin: 0 0 18px; }
h2 { font-size: clamp(1.5rem, 2.8vw, 2.2rem); margin: 0; }
p { color: var(--muted); line-height: 1.65; }
.portal-card, .verified-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 14px 45px rgba(67,51,30,.06); }
.portal-card--narrow { margin: 32px auto 0; max-width: 620px; padding: clamp(26px, 5vw, 48px); }
.portal-message { text-align: center; }
.portal-form { display: grid; gap: 12px; }
.portal-form input { width: 100%; }
.privacy-note { font-size: .86rem; margin: 20px 0 0; }
.external-route { margin: 56px auto 0; max-width: 620px; text-align: center; }
.external-route h2 { margin-bottom: 10px; }
.external-route .secondary-button { margin-top: 8px; }
.application-intro { margin-bottom: 42px; }
.application-intro__time { background: var(--sage-wash); border-radius: 999px; color: #53634c; display: inline-flex; font-size: .82rem; font-weight: 800; margin-top: 4px; padding: 9px 14px; }
.external-application { display: grid; gap: 22px; }
.application-progress { align-items: center; background: rgba(255,253,248,.9); border: 1px solid var(--line); border-radius: 16px; display: grid; grid-template-columns: auto minmax(24px, 1fr) auto minmax(24px, 1fr) auto; margin-bottom: 2px; padding: 18px clamp(18px, 4vw, 38px); }
.application-progress button { align-items: center; background: transparent; border: 0; color: var(--muted); cursor: pointer; display: grid; gap: 1px 10px; grid-template-columns: 34px auto; padding: 0; text-align: left; }
.application-progress button > span { align-items: center; background: #eee8dc; border-radius: 50%; display: inline-flex; font-size: .78rem; font-weight: 800; grid-row: 1 / 3; height: 34px; justify-content: center; width: 34px; }
.application-progress button strong { color: inherit; font-size: .9rem; }
.application-progress button small { color: inherit; font-size: .72rem; }
.application-progress button[aria-current="step"] { color: var(--terracotta-dark); }
.application-progress button[aria-current="step"] > span,
.application-progress button.is-complete > span { background: var(--terracotta); color: #fff; }
.application-progress i { background: var(--line); height: 1px; margin: 0 14px; }
.application-progress i.is-complete { background: var(--terracotta); }
.application-step[hidden] { display: none; }
.application-step__actions { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin-top: 30px; padding-top: 24px; }
.application-step__actions--end { justify-content: end; }
.field-label { color: #403a31; font-size: .84rem; font-weight: 800; }
.phone-fields { display: grid; gap: 14px; grid-template-columns: minmax(210px, .9fr) minmax(240px, 1.1fr); }
.phone-fields > div { display: grid; gap: 7px; }
.phone-fields label { color: var(--muted); font-size: .76rem; font-weight: 700; }
.language-picker { border: 0; margin: 0; padding: 0; }
.language-picker__options > div { display: flex; flex-wrap: wrap; gap: 8px; }
.language-picker__options > div > div { display: contents; }
.language-picker__options label { align-items: center; background: #f7f4ec; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; display: inline-flex; font-size: .86rem; gap: 8px; min-height: 40px; padding: 8px 12px; }
.language-picker__options label:has(input:checked) { background: var(--sage-wash); border-color: #9aac8e; color: #42503d; }
.language-picker__other { display: grid; gap: 7px; margin-top: 16px; max-width: 520px; }
.city-combobox { position: relative; }
.city-suggestions { background: #fff; border: 1px solid #cfc4b0; border-radius: 9px; box-shadow: 0 16px 36px rgba(67,51,30,.12); left: 0; list-style: none; margin: 0; max-height: 220px; overflow-y: auto; padding: 6px; position: absolute; right: 0; top: 74px; z-index: 3; }
.city-suggestions button { background: transparent; border: 0; border-radius: 7px; color: var(--ink); cursor: pointer; font: inherit; padding: 10px 12px; text-align: left; width: 100%; }
.city-suggestions button:hover,
.city-suggestions button:focus { background: var(--sage-wash); outline: none; }
.profile-later-card { background: var(--sage-wash); border: 1px solid #cbd5bf; border-radius: 14px; display: grid; gap: 30px; grid-template-columns: minmax(0, 1.05fr) minmax(280px, .95fr); margin-top: 28px; padding: clamp(20px, 3vw, 30px); }
.profile-later-card h3 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.35rem, 2.4vw, 1.8rem); font-weight: 500; margin: 0 0 8px; }
.profile-later-card p { margin: 0; }
.profile-later-card ul { color: #46513f; display: grid; gap: 9px; margin: 0; padding-left: 20px; }
.form-alert { background: #f7e4e0; border: 1px solid #dcc9c4; border-radius: 12px; color: #8d2d22; padding: 14px 18px; }
.application-consent { display: grid; gap: 22px; padding: clamp(24px, 4vw, 38px); }
.application-consent h2 { margin-bottom: 8px; }
.application-consent p { margin: 0; max-width: 760px; }
.application-consent__checks { display: grid; gap: 12px; }
.application-consent .primary-button { justify-self: start; min-width: 240px; }
.status-badge { background: var(--sage-wash); border-radius: 999px; color: #4f6247; flex: none; font-size: .8rem; font-weight: 800; padding: 10px 14px; text-transform: uppercase; }
.verified-card { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); margin-bottom: 24px; overflow: hidden; }
.verified-card > div { background: var(--surface); display: grid; gap: 7px; padding: 20px 24px; }
.verified-card span { color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.notice { background: var(--sage-wash); border: 1px solid #cbd5bf; border-radius: 12px; color: #41503c; margin-bottom: 20px; padding: 15px 18px; }
.notice--submitted { border-color: #9aac8e; font-weight: 800; }
.profile-submit-status { align-items: center; background: rgba(255,253,248,.96); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 10px 30px rgba(67,51,30,.08); display: flex; gap: 18px; justify-content: space-between; margin-bottom: 22px; padding: 13px 16px; position: sticky; top: 88px; z-index: 3; }
.profile-submit-status > div { align-items: center; display: flex; gap: 12px; }
.profile-submit-status__mark { align-items: center; background: #f4e4d9; border-radius: 50%; color: var(--terracotta-dark); display: inline-flex; flex: none; font-size: .88rem; font-weight: 900; height: 30px; justify-content: center; width: 30px; }
.profile-submit-status p { display: grid; gap: 2px; margin: 0; }
.profile-submit-status strong { color: #3f392f; font-size: .9rem; }
.profile-submit-status small { color: var(--muted); line-height: 1.35; }
.profile-submit-status a { background: var(--terracotta); border-radius: 8px; color: #fff; flex: none; font-size: .84rem; font-weight: 800; padding: 10px 13px; text-decoration: none; }
.profile-submit-status--submitted { background: #edf2e8; border-color: #aebda2; }
.profile-submit-status--submitted .profile-submit-status__mark { background: #718064; color: #fff; }
.profile-editor { display: grid; gap: 22px; }
.editor-section { padding: clamp(22px, 4vw, 38px); }
.section-heading { align-items: start; display: flex; gap: 16px; margin-bottom: 28px; }
.section-heading > span { align-items: center; background: var(--terracotta); border-radius: 50%; color: white; display: inline-flex; font-size: .72rem; font-weight: 800; height: 34px; justify-content: center; width: 34px; }
.section-heading p { margin: 5px 0 0; }
.field-grid { display: grid; gap: 20px; }
.field-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field--full { grid-column: 1 / -1; }
.field { display: grid; gap: 7px; min-width: 0; }
.field[hidden] { display: none; }
.field > label, .field > legend, fieldset > legend { color: #403a31; font-size: .84rem; font-weight: 800; }
input, textarea, select { background: #fff; border: 1px solid #cfc4b0; border-radius: 9px; color: var(--ink); font: inherit; max-width: 100%; min-height: 46px; min-width: 0; padding: 10px 12px; width: 100%; }
select { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
textarea { min-height: 112px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--terracotta); box-shadow: 0 0 0 4px rgba(182,96,47,.12); outline: none; }
.field small { color: var(--muted); line-height: 1.45; }
.errorlist { color: #9b2d24; font-size: .85rem; list-style: none; margin: 2px 0 0; padding: 0; }
.checkbox-card { align-items: center; background: var(--sage-wash); border-radius: 10px; display: flex; grid-template-columns: auto 1fr; padding: 14px; }
.checkbox-list { border: 0; margin: 0; padding: 0; }
.checkbox-list > div, .checkbox-list ul { display: grid; gap: 8px; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.checkbox-list label { align-items: center; background: #f7f4ec; border: 1px solid var(--line); border-radius: 9px; display: flex; gap: 8px; min-height: 48px; padding: 10px; }
input[type="checkbox"] { min-height: auto; width: auto; }
.language-multiselect { position: relative; }
.language-multiselect__native { height: 1px; margin: -1px; opacity: 0; overflow: hidden; padding: 0; pointer-events: none; position: absolute; width: 1px; }
.language-multiselect__toggle { align-items: center; background: #fff; border: 1px solid #cfc4b0; border-radius: 9px; color: var(--ink); cursor: pointer; display: flex; font: inherit; justify-content: space-between; min-height: 48px; padding: 10px 12px; text-align: left; width: 100%; }
.language-multiselect__toggle:focus { border-color: var(--terracotta); box-shadow: 0 0 0 4px rgba(182,96,47,.12); outline: none; }
.language-multiselect__toggle > span:last-child { color: var(--terracotta-dark); font-size: 1.3rem; line-height: 1; }
.language-multiselect__panel { background: #fff; border: 1px solid #cfc4b0; border-radius: 10px; box-shadow: 0 18px 45px rgba(67,51,30,.16); left: 0; padding: 12px; position: absolute; right: 0; top: calc(100% + 8px); z-index: 6; }
.language-multiselect__search-label { color: #403a31; display: block; font-size: .76rem; font-weight: 800; margin-bottom: 6px; }
.language-multiselect__options { display: grid; gap: 3px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; max-height: 250px; overflow-y: auto; }
.language-multiselect__options label { align-items: center; border-radius: 7px; cursor: pointer; display: flex; font-size: .88rem; gap: 8px; min-width: 0; padding: 8px; }
.language-multiselect__options label:hover { background: #f7f4ec; }
.language-multiselect__options label[aria-selected="true"] { background: var(--sage-wash); color: #42503d; }
.language-multiselect__options label[hidden] { display: none; }
.language-multiselect__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.language-multiselect__chips:empty { display: none; }
.language-multiselect__chips span { background: var(--sage-wash); border-radius: 999px; color: #4a5944; font-size: .78rem; padding: 5px 9px; }
.perspective-preview { border-left: 3px solid var(--sage); color: #424d3d; font-family: Georgia, serif; font-size: 1.2rem; font-style: italic; margin: 24px 0 0; padding: 8px 0 8px 20px; }
.admissions-photo-choice { align-items: center; background: var(--sage-wash); border: 1px solid #cbd5bf; border-radius: 14px; display: grid; gap: 22px; grid-template-columns: 112px 1fr; margin-top: 28px; padding: 18px; }
.admissions-photo-choice img { border: 1px solid #bdc9b5; border-radius: 50%; height: 112px; object-fit: cover; width: 112px; }
.admissions-photo-choice h3 { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 500; margin: 0 0 6px; }
.admissions-photo-choice p { margin: 0 0 12px; }
.admissions-photo-choice .eyebrow { margin-bottom: 4px; }
.repeat-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.repeat-card { border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 12px; margin: 0; min-width: 0; overflow: hidden; padding: 18px; scroll-margin-top: 96px; }
.repeat-card[hidden] { display: none; }
.repeat-card legend { background: var(--surface); color: var(--terracotta-dark); padding: 0 8px; }
.location-lookup { position: relative; }
.location-suggestions { background: #fff; border: 1px solid #bfb39f; border-radius: 9px; box-shadow: 0 18px 40px rgba(67,51,30,.16); display: grid; left: 0; max-height: 290px; overflow-y: auto; position: absolute; right: 0; top: 76px; z-index: 8; }
.location-suggestions[hidden] { display: none; }
.location-suggestions button { background: #fff; border: 0; border-bottom: 1px solid #e8e0d2; color: var(--ink); cursor: pointer; display: grid; font: inherit; gap: 2px; padding: 11px 12px; text-align: left; }
.location-suggestions button:last-child { border-bottom: 0; }
.location-suggestions button:hover, .location-suggestions button:focus { background: var(--sage-wash); outline: none; }
.location-suggestions strong { font-size: .9rem; }
.location-suggestions span { color: var(--muted); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.location-search-status { color: #53604d; font-size: .79rem; margin: 0; min-height: 1.2em; }
.location-map-card { background: #f7f4ec; border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 12px; padding: 14px; }
.location-map-card > div:first-child { display: grid; gap: 3px; }
.location-map-card strong { color: #3f493b; font-size: .9rem; }
.location-map-card small { color: var(--muted); line-height: 1.4; }
.location-map-card > button { background: transparent; border: 0; color: var(--terracotta-dark); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 800; justify-self: start; padding: 0; text-decoration: underline; text-underline-offset: 4px; }
.location-map-editor { border-top: 1px solid var(--line); display: grid; gap: 13px; padding-top: 14px; }
.location-map-editor[hidden] { display: none; }
.location-map-editor p { color: var(--muted); font-size: .84rem; margin: 0; }
.location-pin-pad { align-items: center; background-image: linear-gradient(rgba(113,128,100,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(113,128,100,.13) 1px, transparent 1px); background-size: 20px 20px; border: 1px solid #c6cdbd; border-radius: 10px; display: grid; grid-template-columns: repeat(3, 42px); grid-template-rows: repeat(3, 38px); justify-content: center; padding: 12px; }
.location-pin-pad button { align-items: center; background: #fff; border: 1px solid #bfc8b7; border-radius: 7px; color: #4d5c47; cursor: pointer; display: flex; font: inherit; font-size: 1.1rem; font-weight: 800; justify-content: center; }
.location-pin-pad button:hover, .location-pin-pad button:focus { background: var(--sage-wash); outline: 2px solid rgba(113,128,100,.2); }
.location-pin-pad [data-location-nudge="north"] { grid-column: 2; grid-row: 1; }
.location-pin-pad [data-location-nudge="west"] { grid-column: 1; grid-row: 2; }
.location-pin-pad span { align-items: center; color: var(--terracotta); display: flex; font-size: 1.3rem; grid-column: 2; grid-row: 2; justify-content: center; }
.location-pin-pad [data-location-nudge="east"] { grid-column: 3; grid-row: 2; }
.location-pin-pad [data-location-nudge="south"] { grid-column: 2; grid-row: 3; }
.location-coordinate-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.location-coordinate-grid label { color: #403a31; display: grid; font-size: .78rem; font-weight: 800; gap: 5px; }
.location-coordinate-grid input { min-height: 42px; }
.delete-field { border-top: 1px solid var(--line); display: flex; grid-template-columns: auto 1fr; margin-top: 6px; padding-top: 12px; }
.schedule-part + .schedule-part { border-top: 1px solid var(--line); margin-top: 34px; padding-top: 34px; }
.schedule-part__heading { align-items: start; display: flex; gap: 13px; margin-bottom: 18px; }
.schedule-part__heading > span { align-items: center; background: var(--sage-wash); border-radius: 50%; color: #4d5c47; display: inline-flex; flex: none; font-size: .78rem; font-weight: 800; height: 28px; justify-content: center; width: 28px; }
.schedule-part__heading h3 { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 500; margin: 0; }
.schedule-part__heading h3 em { color: var(--muted); font-family: "Inter Tight", Inter, system-ui, sans-serif; font-size: .72rem; font-style: normal; font-weight: 700; letter-spacing: .08em; margin-left: 7px; text-transform: uppercase; }
.schedule-part__heading p { margin: 4px 0 0; }
.schedule-note { background: var(--sage-wash); border-left: 3px solid var(--sage); color: #475441; font-size: .9rem; margin: 0 0 18px; padding: 11px 14px; }
[data-offering-formset] .repeat-grid { grid-template-columns: 1fr; }
.offering-inherited { align-items: center; background: var(--sage-wash); border-radius: 9px; color: #46533f; display: flex; font-size: .88rem; font-weight: 800; gap: 12px; justify-content: space-between; padding: 10px 12px; }
.offering-inherited[hidden] { display: none; }
.offering-inherited button { background: transparent; border: 0; color: var(--terracotta-dark); cursor: pointer; font: inherit; font-size: .8rem; font-weight: 800; padding: 2px; text-decoration: underline; text-underline-offset: 3px; }
.online-location-note, .appointment-note { background: #eef1e8; border-radius: 8px; color: #475441; font-size: .86rem; margin: 0; padding: 10px 12px; }
[data-offering-field="by_appointment"] { align-items: center; background: #f7f4ec; border: 1px solid var(--line); border-radius: 9px; display: flex; gap: 10px; padding: 11px 12px; }
[data-offering-field="by_appointment"] input { flex: none; order: -1; }
.add-similar-button { background: var(--sage-wash); border: 0; border-radius: 9px; color: #475641; cursor: pointer; font: inherit; font-size: .88rem; font-weight: 800; padding: 11px 13px; text-align: left; }
.add-similar-button:hover { background: #dce4d2; }
.add-repeat-button { background: transparent; border: 1px solid var(--sage); border-radius: 9px; color: #52634b; cursor: pointer; font: inherit; font-weight: 800; margin-top: 16px; padding: 11px 15px; }
.add-repeat-button:hover { background: var(--sage-wash); }
.remove-field { background: transparent; border: 0; border-top: 1px solid var(--line); color: #7f342a; cursor: pointer; font: inherit; font-size: .84rem; font-weight: 800; margin-top: 5px; padding: 13px 0 0; text-align: left; }
.publication-card { align-items: center; display: flex; gap: 30px; justify-content: space-between; padding: clamp(24px, 4vw, 38px); }
.publication-card p { margin-bottom: 12px; }
.publication-card { scroll-margin-top: 170px; transition: border-color .2s, box-shadow .2s; }
.publication-card--attention { border-color: #b65f43; box-shadow: 0 0 0 4px rgba(182,96,47,.12), 0 14px 45px rgba(67,51,30,.06); }
.publication-card--submitted { background: #f7f9f3; border-color: #aebda2; }
.publication-error { color: #962e24; font-size: .86rem; font-weight: 800; margin: 10px 0 0 !important; }
.submission-reassurance { align-items: start; background: var(--sage-wash); border-radius: 10px; display: grid; gap: 3px; margin: 16px 0 0 !important; padding: 12px 14px; }
.submission-reassurance strong { color: #44533e; }
.submission-reassurance span { color: var(--muted); font-size: .84rem; }
.consent-check { align-items: start; display: flex; gap: 10px; max-width: 620px; }
.editor-actions { display: flex; flex: none; flex-wrap: wrap; gap: 10px; justify-content: end; }
.primary-button, .secondary-button, .danger-button, .text-button { border: 0; border-radius: 9px; cursor: pointer; display: inline-flex; font: inherit; font-weight: 800; justify-content: center; padding: 13px 18px; text-decoration: none; }
.primary-button[aria-disabled="true"], .secondary-button[aria-disabled="true"] { opacity: .72; pointer-events: none; }
.primary-button { background: var(--terracotta); color: white; }
.primary-button:hover { background: var(--terracotta-dark); }
.secondary-button { background: var(--sage-wash); color: #475641; }
.danger-button { background: #f7e4e0; color: #8d2d22; }
.text-button { background: transparent; color: var(--terracotta-dark); padding-inline: 0; }
.decline-panel { border: 1px solid #dcc9c4; border-radius: 12px; padding: 18px; }
.decline-panel summary { color: #7f342a; cursor: pointer; font-weight: 800; }
@media (max-width: 760px) {
  .portal-intro, .publication-card { display: grid; }
  .field-grid--two, .repeat-grid, .verified-card { grid-template-columns: 1fr; }
  .phone-fields, .profile-later-card { grid-template-columns: 1fr; }
  .application-progress { grid-template-columns: repeat(3, 1fr); padding: 14px; }
  .application-progress i { display: none; }
  .application-progress button { gap: 6px; grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .application-progress button > span { grid-row: auto; }
  .application-progress button small { display: none; }
  .checkbox-list > div, .checkbox-list ul { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .editor-actions { justify-content: start; }
  .profile-submit-status { align-items: stretch; bottom: 10px; display: grid; margin-inline: 4px; top: auto; }
  .profile-submit-status a { text-align: center; }
  .application-step__actions { align-items: stretch; flex-direction: column-reverse; gap: 10px; }
  .application-step__actions .primary-button,
  .application-step__actions .secondary-button { width: 100%; }
  .portal-shell { padding-inline: 14px; padding-top: 28px; }
  .editor-section { padding: 20px 16px; }
  .repeat-card { padding: 15px 12px; }
  .add-repeat-button, .add-similar-button { width: 100%; }
  .language-multiselect__options { grid-template-columns: 1fr; }
  .language-multiselect__panel { position: static; }
  .location-coordinate-grid { grid-template-columns: 1fr; }
}

/* External practitioner application · conversational option 2 */
.application-header-progress { align-items: center; display: flex; gap: 18px; margin-left: auto; }
.application-header-progress > span { color: #403a31; font-size: .78rem; font-weight: 800; letter-spacing: .03em; white-space: nowrap; }
.application-header-progress > div { display: grid; gap: 5px; grid-template-columns: repeat(4, 36px); }
.application-header-progress i { background: #ded7ca; border-radius: 999px; display: block; height: 3px; transition: background .22s ease; }
.application-header-progress i.is-active { background: var(--terracotta); }
.application-conversation { display: grid; gap: clamp(56px, 8vw, 112px); grid-template-columns: minmax(280px, .72fr) minmax(560px, 1.28fr); min-height: 650px; }
.application-conversation__intro { align-self: start; padding-top: 42px; }
.application-conversation__intro h1 { font-size: clamp(2.65rem, 3.3vw, 3rem); line-height: 1.03; max-width: 480px; }
.application-conversation__intro > p:not(.eyebrow) { font-size: 1.06rem; max-width: 440px; }
.application-conversation__help { border-top: 1px solid var(--line); font-size: .88rem !important; margin-top: 38px; padding-top: 22px; }
.external-application--conversation { align-content: start; display: grid; min-width: 0; padding-top: 2px; }
.application-identity-summary { align-items: baseline; border-bottom: 1px solid var(--line); color: var(--muted); display: flex; flex-wrap: wrap; font-size: .88rem; gap: 5px; margin-bottom: 12px; min-height: 40px; padding-bottom: 15px; }
.application-identity-summary[hidden] { display: none; }
.application-identity-summary strong { color: #3f493b; }
.application-identity-summary button { background: transparent; border: 0; color: var(--terracotta-dark); cursor: pointer; font: inherit; font-weight: 800; margin-left: auto; padding: 0; text-decoration: underline; text-underline-offset: 4px; }
.application-step--conversation { min-width: 0; }
.application-step--conversation[hidden] { display: none; }
.application-step--conversation h2 { font-size: clamp(2.35rem, 3.3vw, 3rem); line-height: 1.04; margin: 0; }
.application-step--conversation h2:focus { outline: none; }
.application-step__kicker { color: var(--terracotta); font-size: .74rem; font-weight: 800; letter-spacing: .13em; margin: 0 0 16px; text-transform: uppercase; }
.application-step__lead { font-size: 1rem; margin: 14px 0 0; max-width: 650px; }
.application-fields { display: grid; gap: 24px; margin-top: 22px; }
.application-field-pair { gap: 22px; }
.application-step--conversation .field { gap: 10px; }
.application-step--conversation .field > label { color: #403a31; font-size: .88rem; }
.application-step--conversation input:not([type="checkbox"]),
.application-step--conversation select { background: rgba(255,253,248,.7); border-color: #bbb09c; border-radius: 4px; font-size: 1.02rem; min-height: 64px; padding: 15px 17px; width: 100%; }
.application-step--conversation select { cursor: pointer; }
.application-step--conversation input:not([type="checkbox"]):focus,
.application-step--conversation select:focus { box-shadow: 0 0 0 3px rgba(182,96,47,.1); }
.application-step--conversation .city-suggestions { border-radius: 4px; top: 92px; }
.application-step--conversation .city-combobox > small { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.application-step--conversation .application-step__actions { border-top: 0; margin-top: 38px; padding-top: 0; }
.application-step--conversation .application-step__actions--end { justify-content: end; }
.application-primary-action { border-radius: 4px; min-height: 56px; min-width: 250px; padding: 16px 28px; }
.application-back-action { background: transparent; border: 0; color: #63725b; cursor: pointer; font: inherit; font-weight: 800; padding: 15px 0; text-decoration: underline; text-underline-offset: 5px; }
.application-review { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; margin: 34px 0 30px; }
.application-review > div { display: grid; gap: 20px; grid-template-columns: 120px 1fr; padding: 12px 0; }
.application-review > div + div { border-top: 1px solid rgba(217,207,188,.65); }
.application-review dt { color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.application-review dd { color: #403a31; margin: 0; overflow-wrap: anywhere; }
.application-step--conversation .application-consent__checks { gap: 14px; }
.application-step--conversation .consent-check { color: #474238; font-size: .89rem; line-height: 1.45; max-width: none; }
.application-step--conversation .consent-check input { flex: none; margin-top: 4px; }
.application-newsletter-choice,
.application-step--conversation .application-consent__checks { border: 0; margin: 0; padding: 0; }
.application-newsletter-choice { background: rgba(232,236,223,.7); border: 1px solid #cbd5bf; border-radius: 8px; margin-bottom: 24px; padding: 18px; }
.application-newsletter-choice legend,
.application-step--conversation .application-consent__checks > legend { color: #4d5948; font-size: .78rem; font-weight: 800; letter-spacing: .06em; margin-bottom: 12px; padding: 0; text-transform: uppercase; }
.application-newsletter-choice legend span { color: var(--muted); font-size: .7rem; letter-spacing: .04em; margin-left: 6px; }
.application-step--conversation .application-consent__checks > legend { color: var(--muted); }
.application-verification-note { border-top: 1px solid var(--line); font-size: .83rem; margin: 54px 0 0; padding-top: 20px; text-align: center; }
.application-verification-note strong { color: #44513e; }

@media (min-width: 1180px) {
  .portal-shell:has(.application-conversation) { max-width: 1360px; padding-top: 72px; }
}

@media (max-width: 900px) {
  .application-conversation { gap: 52px; grid-template-columns: 1fr; }
  .application-conversation:not([data-current-step="1"]) { gap: 0; }
  .application-conversation:not([data-current-step="1"]) .application-conversation__intro { display: none; }
  .application-conversation__intro { padding-top: 0; }
  .application-conversation__intro h1,
  .application-conversation__intro > p:not(.eyebrow) { max-width: 700px; }
  .application-conversation__help { margin-top: 24px; max-width: 700px; }
}

@media (max-width: 760px) {
  .portal-header:has(.application-header-progress) { align-items: flex-start; flex-wrap: wrap; gap: 10px; }
  .application-header-progress { gap: 10px; width: 100%; }
  .application-header-progress > div { flex: 1; grid-template-columns: repeat(4, 1fr); }
  .application-conversation { gap: 42px; }
  .application-conversation__intro h1 { font-size: clamp(2.5rem, 13vw, 3.7rem); }
  .application-step--conversation h2 { font-size: clamp(2.2rem, 10vw, 3rem); }
  .application-identity-summary { margin-bottom: 30px; }
  .application-field-pair { grid-template-columns: 1fr; }
  .application-step--conversation input:not([type="checkbox"]),
  .application-step--conversation select { min-height: 58px; }
  .application-step--conversation .application-step__actions { align-items: stretch; flex-direction: column-reverse; }
  .application-primary-action { min-width: 0; width: 100%; }
  .application-back-action { width: 100%; }
  .application-review > div { gap: 10px; grid-template-columns: 1fr; }
  .admissions-photo-choice { grid-template-columns: 1fr; }
}
