/* Desert Solace "Shade": shared parts, used on more than one template. Loaded on every page after base.css.
   1. Counsellor card  2. Recognition lines  3. Match tool  4. First session timeline  5. Fees table + situation chips  6. Chips
   7. Fees helper  8. FAQ  9. Contact form  10. More lines, evidence, breathe  11. Concern cards (shared base) */

/* 1. The counsellor card (parts/counsellor-card.php): one component, four modifiers. A person, not a spec sheet ----------- */
/* one portrait treatment: 4:5, 3px radius, at every size; hovering lowers the highlights, as if a shadow passed (never lifts) */
.ds-portrait { display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--radius); background: var(--c-step); }
.ds-portrait img, .ds-portrait__img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; transition: filter .2s ease; }
@media (hover: hover) { .ds-pc:hover .ds-portrait img, a.ds-portrait:hover img { filter: brightness(0.93) saturate(0.95); } }

.ds-counsellors__list { display: grid; gap: var(--space-3xl) var(--space-2xl); }
@media (min-width: 760px) { .ds-counsellors__list { grid-template-columns: 1fr 1fr; align-items: start; } }

.ds-pc { display: grid; gap: var(--space-lg); align-content: start; }
.ds-pc__media { width: min(100%, 15rem); }
.ds-pc__body { min-width: 0; }
.ds-pc__name { font-size: var(--fs-h3); font-weight: 380; letter-spacing: -0.01em; line-height: 1.12; }
.ds-pc__name a { color: inherit; text-decoration: none; }
.ds-pc__name a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.12em; }
.ds-pc__title { margin-top: var(--space-xs); max-width: none; }
.ds-pc__plain { display: block; font-size: var(--fs-label); font-weight: 600; line-height: 1.35; }
.ds-pc__meta { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; font-size: var(--fs-sm); color: var(--c-sage); }
.ds-pc__voice { margin-top: var(--space-md); max-width: 28em; font-family: var(--font-heading); font-weight: 400; font-variation-settings: "opsz" 18; font-size: var(--fs-voice); line-height: 1.5; }
.ds-pc__line { margin-top: var(--space-sm); font-size: var(--fs-label); line-height: 1.5; }
.ds-pc__reason, .ds-pc__level { margin-top: var(--space-xs); font-size: var(--fs-sm); font-weight: 600; color: var(--c-lake); }
.ds-pc__level { margin: 0 0 0.15rem; }
.ds-pc--s .ds-pc__level { color: var(--c-sage); }
.ds-pc__focus { margin-top: var(--space-lg); }
.ds-pc__label { font-family: var(--font-body); font-size: var(--fs-label); font-weight: 600; letter-spacing: 0; line-height: 1.3; }
.ds-pc__focus ul { margin-top: 0.35rem; padding-left: 1.1em; font-size: var(--fs-label); }
.ds-pc__focus li + li { margin-top: 0.25rem; }
.ds-pc__facts { margin-top: var(--space-lg); border-top: 1px solid var(--c-rule); }
.ds-pc__facts > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--space-md); align-items: baseline; padding: 0.6rem 0; border-bottom: 1px solid var(--c-rule-soft); }
.ds-pc__facts dt { font-size: var(--fs-sm); color: var(--c-sage); }
.ds-pc__facts dd { margin: 0; font-size: var(--fs-label); line-height: 1.45; max-width: none; }
.ds-pc__status, .ds-pc__hint { margin-top: var(--space-sm); font-size: var(--fs-sm); color: var(--c-sage); }
.ds-pc__status { font-weight: 600; }
.ds-pc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-lg); margin-top: var(--space-lg); }
.ds-pc__read { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 600; }
@media (max-width: 459px) { .ds-pc:not(.ds-pc--compact) .ds-pc__actions .ds-btn { width: 100%; } }

/* one fee typography: the price in the serif with tabular figures, the condition in the sans */
.ds-fee { font-variant-numeric: lining-nums tabular-nums; }
.ds-fee__pre { font-size: var(--fs-sm); color: var(--c-sage); }
.ds-fee__amt { font-family: var(--font-heading); font-weight: 400; font-size: 1.3rem; line-height: 1.1; color: var(--c-shade); }
.ds-fee__cond { display: block; font-size: var(--fs-sm); color: var(--c-sage); }

/* home: portrait beside name and voice on wider screens */
@media (min-width: 600px) {
  .ds-pc--home, .ds-pc--index { grid-template-columns: minmax(9rem, 13rem) minmax(0, 1fr); column-gap: var(--space-xl); }
  .ds-pc--home .ds-pc__media, .ds-pc--index .ds-pc__media { width: 100%; }
}
@media (min-width: 900px) { .ds-pc--index { grid-template-columns: 18rem minmax(0, 1fr); column-gap: var(--space-3xl); } }
@media (min-width: 760px) and (max-width: 1099px) { .ds-counsellors__list .ds-pc--home { grid-template-columns: 1fr; } .ds-counsellors__list .ds-pc--home .ds-pc__media { width: min(100%, 15rem); } }

/* index: one row per person; once a filter is on, who fits says why (lake), who doesn't goes compact */
.ds-pc--index { padding-block: var(--space-2xl); border-bottom: 1px solid var(--c-rule); }
@media (min-width: 900px) { .ds-pc--index { padding-block: var(--space-3xl); } }
@media (min-width: 1100px) { .ds-pc--index .ds-pc__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); column-gap: var(--space-2xl); align-content: start; }
  .ds-pc--index .ds-pc__body > * { grid-column: 1 / -1; } .ds-pc--index .ds-pc__focus { grid-column: 1; } .ds-pc--index .ds-pc__facts { grid-column: 2; } }
.ds-pc__why { margin: 0 0 var(--space-sm); font-size: var(--fs-sm); font-weight: 600; color: var(--c-lake); max-width: 40em; }
.ds-pc--fit { box-shadow: inset 0 3px 0 var(--c-lake); }
.ds-pc--miss { padding-block: var(--space-lg); grid-template-columns: 4.5rem minmax(0, 1fr); column-gap: var(--space-md); }
@media (min-width: 600px) { .ds-pc--miss { grid-template-columns: 7rem minmax(0, 1fr); } }
.ds-pc--miss .ds-pc__media { width: 100%; opacity: 0.85; }
.ds-pc--miss .ds-pc__why { color: var(--c-sage); font-weight: 400; }
.ds-pc--miss .ds-pc__focus, .ds-pc--miss .ds-pc__facts, .ds-pc--miss .ds-pc__hint { display: none; }

/* concern + compact: a small portrait beside the words, at every width */
.ds-pc--concern, .ds-pc--compact { grid-template-columns: 6rem minmax(0, 1fr); column-gap: var(--space-md); align-items: start; }
@media (min-width: 600px) { .ds-pc--concern, .ds-pc--compact { grid-template-columns: 8rem minmax(0, 1fr); column-gap: var(--space-lg); } }
.ds-pc--concern .ds-pc__media, .ds-pc--compact .ds-pc__media { width: 100%; }
.ds-pc--concern { padding-top: var(--space-lg); border-top: 1px solid var(--c-sage); }
.ds-pc--concern.ds-pc--p { border-top: 3px solid var(--c-lake); padding-top: calc(var(--space-lg) - 2px); }
.ds-pc--compact .ds-pc__actions { margin-top: var(--space-xs); }

/* compact strip (About) */
.ds-strip { display: grid; gap: var(--space-xl) var(--space-lg); }
@media (min-width: 700px) { .ds-strip { grid-template-columns: 1fr 1fr; } }

/* 2. Recognition lines: native <details>; opening one steps its row into the shade ------------------------------------- */
.ds-recognise { list-style: none; padding: 0; margin-top: var(--space-xl); border-top: 1px solid var(--c-rule); }
.ds-recognise__item { max-width: none; border-bottom: 1px solid var(--c-rule); }
.ds-recognise__details { transition: background-color .15s ease; }
.ds-recognise__details[open] { background: var(--c-step); }
.ds-recognise__line {
  list-style: none; cursor: pointer; display: grid; grid-template-columns: 1.25rem 1fr; gap: var(--space-md); align-items: baseline;
  padding: 1.15rem var(--space-sm) 1.15rem 0;
  font-family: var(--font-heading); font-weight: 350; font-size: clamp(1.35rem, 1.05rem + 1.25vw, 1.9rem); line-height: 1.25;
}
.ds-recognise__line::-webkit-details-marker { display: none; }
.ds-recognise__text { max-width: 30em; }
.ds-recognise__line:hover .ds-recognise__text { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.ds-recognise__chev { width: 0.75rem; height: 0.75rem; border-right: 1.5px solid var(--c-sage); border-bottom: 1.5px solid var(--c-sage); transform: translateY(-0.15em) rotate(-45deg); transition: transform .15s ease; justify-self: center; }
.ds-recognise__details[open] .ds-recognise__chev { transform: translateY(-0.3em) rotate(45deg); }
.ds-recognise__more { padding: 0 var(--space-md) var(--space-lg) calc(1.25rem + var(--space-md)); }
.ds-recognise__more > * + * { margin-top: var(--space-sm); }
.ds-recognise__who { font-size: var(--fs-sm); color: var(--c-sage); }
.ds-recognise__link { font-weight: 600; }

/* 3. Match tool: a sentence the visitor fills in ---------------------------------------------------------------------- */
.ds-match__head { max-width: 40rem; }
.ds-match__intro { margin-top: var(--space-md); font-size: var(--fs-lg); line-height: 1.5; color: var(--c-sage); }
.ds-match__privacy { margin-top: var(--space-sm); font-size: var(--fs-sm); color: var(--c-sage); }
.ds-match__grid { display: grid; gap: var(--space-xl); margin-top: var(--space-2xl); }
@media (min-width: 960px) { .ds-match__grid { grid-template-columns: 6fr 5fr; gap: var(--space-3xl); align-items: start; } .ds-match__sentence-wrap { position: sticky; top: calc(var(--header-h) + 2rem); } }
.ds-match__sentence {
  font-family: var(--font-heading); font-weight: 350; font-size: clamp(1.6rem, 1.2rem + 1.9vw, 2.75rem); line-height: 1.32; letter-spacing: -0.012em;
  max-width: 22em;
}
.ds-blank { border-bottom: 1px solid var(--c-sage); padding: 0; color: var(--c-sage); cursor: pointer; transition: background-color .12s ease, color .12s ease; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.ds-blank.is-filled { background: var(--c-step); color: var(--c-shade); border-bottom-color: transparent; border-radius: 2px; padding: 0 0.2em; }
.ds-blank.is-current { border-bottom: 2px solid var(--c-lake); color: var(--c-lake); }
.ds-blank.is-locked { cursor: default; opacity: 0.7; }
.ds-blank:not(.is-locked):hover { color: var(--c-shade); border-bottom-color: var(--c-shade); }
.ds-blank:focus-visible { outline: 3px solid var(--c-lake); outline-offset: 2px; }
.ds-match__progress { font-size: var(--fs-sm); color: var(--c-sage); }
.ds-match__fieldset { margin-top: var(--space-sm); }
.ds-match__legend { font-family: var(--font-heading); font-size: var(--fs-xl); line-height: 1.25; font-weight: 400; margin-bottom: var(--space-sm); }
.ds-match__legend:focus { outline: none; }
.ds-match__legend:focus-visible { outline: 3px solid var(--c-lake); outline-offset: 4px; }
.ds-match__hint { font-size: var(--fs-sm); color: var(--c-sage); margin-bottom: var(--space-md); }
.ds-match__options { display: grid; gap: 0.5rem; margin-top: var(--space-md); }
.ds-match__option { position: relative; }
.ds-match__option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ds-match__option label {
  display: flex; align-items: center; gap: 0.75rem; min-height: 3rem; padding: 0.65rem 0.9rem;
  border: 1px solid var(--c-rule); border-radius: var(--radius); background: var(--c-paper); cursor: pointer; line-height: 1.3; font-size: 1.0625rem;
}
.ds-match__option label::before { content: ""; flex: none; width: 1.1rem; height: 1.1rem; border: 1.5px solid var(--c-sage); background: var(--c-paper); }
.ds-match__option input[type="radio"] + label::before { border-radius: 50%; }
.ds-match__option input[type="checkbox"] + label::before { border-radius: 2px; }
.ds-match__option label:hover { border-color: var(--c-sage); }
.ds-match__option input:checked + label { border-color: var(--c-shade); background: var(--c-step); }
.ds-match__option input:checked + label::before { background: var(--c-shade); border-color: var(--c-shade); box-shadow: inset 0 0 0 2.5px var(--c-step); }
.ds-match__option input:focus-visible + label { outline: 3px solid var(--c-lake); outline-offset: 2px; }
.ds-match__nav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-lg); margin-top: var(--space-lg); }
.ds-match__next { margin-left: auto; }
.ds-match__safety-note { margin-top: var(--space-xl); font-size: var(--fs-sm); color: var(--c-sage); }
.ds-match__nojs, .ds-match__fallback { margin-top: var(--space-lg); }
.ds-match__results:focus { outline: none; }
.ds-match__results > * + * { margin-top: var(--space-lg); }
/* the result: an introduction card (r2 wow 2). Your words settle into its top, then the person, in their own voice */
.ds-match.is-result .ds-match__grid { grid-template-columns: minmax(0, 46rem); }
.ds-match__result-heading { font-size: var(--fs-h3); }
.ds-intro { padding: var(--space-lg); background: var(--c-mist); border-radius: var(--radius); border-top: 3px solid var(--c-lake); }
@media (min-width: 700px) { .ds-intro { padding: var(--space-xl) var(--space-2xl) var(--space-2xl); } }
.ds-intro__said { margin-bottom: var(--space-lg); padding-bottom: var(--space-md); border-bottom: 1px solid var(--c-rule-soft); font-family: var(--font-heading); font-size: var(--fs-label); line-height: 1.45; color: var(--c-sage); max-width: none; }
.ds-intro__said-label { font-family: var(--font-body); font-size: var(--fs-sm); font-weight: 600; }
.ds-intro__said q { quotes: "\201C" "\201D"; }
.ds-intro__grid { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--space-md) var(--space-lg); align-items: start; }
@media (min-width: 700px) { .ds-intro__grid { grid-template-columns: 10rem minmax(0, 1fr); gap: var(--space-xl); } }
.ds-intro__media { width: 100%; }
.ds-intro__h { font-size: var(--fs-h2); font-weight: 340; letter-spacing: -0.015em; line-height: 1.05; }
.ds-intro__title { margin-top: var(--space-xs); font-size: var(--fs-sm); color: var(--c-sage); }
.ds-intro__voice { margin-top: var(--space-md); }
.ds-intro__voice p { font-family: var(--font-heading); font-weight: 400; font-variation-settings: "opsz" 18; font-size: var(--fs-voice); line-height: 1.45; text-indent: -0.42em; }
.ds-intro__voice p::before { content: "\201C"; }
.ds-intro__voice p::after { content: "\201D"; }
@supports (hanging-punctuation: first) { .ds-intro__voice p { text-indent: 0; hanging-punctuation: first; } }
@media (max-width: 519px) { .ds-intro__voice { grid-column: 1 / -1; } .ds-intro__who { display: contents; } .ds-intro__h, .ds-intro__title { grid-column: 2; } .ds-intro__h { align-self: center; } .ds-intro__title { margin-top: 0; } .ds-intro__media { grid-row: span 2; } }
.ds-intro__why { margin-top: var(--space-lg); padding-left: 1.1em; font-size: var(--fs-label); }
.ds-intro__why li + li { margin-top: 0.3rem; }
.ds-intro__facts { margin-top: var(--space-lg); border-top: 1px solid var(--c-rule); }
.ds-intro__facts > div { padding: 0.7rem 0; border-bottom: 1px solid var(--c-rule-soft); }
.ds-intro__facts dt { font-size: var(--fs-sm); font-weight: 600; color: var(--c-shade); }
.ds-intro__facts dd { margin: 0.15rem 0 0; font-size: var(--fs-label); line-height: 1.5; }
.ds-intro__facts .ds-fee__cond { display: inline; margin-left: 0.4rem; }
.ds-intro__actions { margin-top: var(--space-lg); }
.ds-intro__read { font-weight: 600; }
.ds-intro__also { padding-top: var(--space-md); font-size: var(--fs-label); max-width: none; }
.ds-intro__also span { font-weight: 600; }
/* the moment: what you said settles in first (200 ms, opacity and a small rise), then the person */
@media (prefers-reduced-motion: no-preference) {
  .ds-intro__said { animation: ds-settle .2s ease-out both; }
  .ds-intro__grid, .ds-intro__why, .ds-intro__facts, .ds-intro__actions { animation: ds-fade .2s ease-out .18s both; }
}
@keyframes ds-settle { from { opacity: 0; transform: translateY(0.75rem); } to { opacity: 1; transform: none; } }
.ds-match__note { padding: var(--space-md); background: var(--c-paper); border-left: 3px solid var(--c-lake); border-radius: var(--radius); font-size: 1.0625rem; }
.ds-match__note p + p { margin-top: var(--space-sm); }
.ds-match__safety { padding: var(--space-md); background: var(--c-shade); color: var(--c-on-dark); border-radius: var(--radius); }
.ds-match__safety a { color: var(--c-brush); font-weight: 600; }
.ds-match__notsure { padding-top: var(--space-lg); border-top: 1px solid var(--c-rule); }
.ds-match__notsure h3 { font-size: var(--fs-h3); }
.ds-match__notsure p { margin-top: var(--space-sm); }
.ds-match__fade { animation: ds-fade .12s ease-out; }
@keyframes ds-fade { from { opacity: 0; } to { opacity: 1; } }

/* 4. First session, minute by minute: the track left of the thumb fills with shade ----------------------------------- */
.ds-session { margin-top: var(--space-lg); }
.ds-session__intro { color: var(--c-sage); }
.ds-session__control { margin-top: var(--space-xl); }
.ds-session__control-label { display: block; font-weight: 600; margin-bottom: var(--space-sm); }
.ds-session__range { -webkit-appearance: none; appearance: none; width: 100%; height: 2.75rem; background: transparent; cursor: pointer; margin: 0; --pct: 0%; }
.ds-session__range::-webkit-slider-runnable-track { height: 0.6rem; border-radius: var(--radius); background: linear-gradient(90deg, var(--c-shade) 0 var(--pct), var(--c-step) var(--pct) 100%); }
.ds-session__range::-moz-range-track { height: 0.6rem; border-radius: var(--radius); background: var(--c-step); }
.ds-session__range::-moz-range-progress { height: 0.6rem; background: var(--c-shade); border-radius: var(--radius); }
.ds-session__range::-webkit-slider-thumb { -webkit-appearance: none; width: 1.25rem; height: 1.25rem; margin-top: -0.325rem; border-radius: 50%; background: var(--c-paper); border: 2px solid var(--c-shade); }
.ds-session__range::-moz-range-thumb { width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--c-paper); border: 2px solid var(--c-shade); }
.ds-session__range:focus-visible { outline: 3px solid var(--c-lake); outline-offset: 4px; }
.ds-session__list { list-style: none; padding: 0; margin-top: var(--space-lg); display: grid; gap: 0; border-top: 1px solid var(--c-rule); }
.ds-session__step { max-width: none; display: grid; gap: 0.2rem var(--space-xl); padding: var(--space-md) 0; border-bottom: 1px solid var(--c-rule-soft); }
@media (min-width: 760px) { .ds-session__step { grid-template-columns: 12rem 1fr; align-content: start; } .ds-session__step > :not(.ds-session__time) { grid-column: 2; } .ds-session__time { grid-row: 1 / span 3; } }
.ds-session__time { font-family: var(--font-heading); font-size: 1.35rem; line-height: 1.2; font-variant-numeric: lining-nums tabular-nums; color: var(--c-sage); }
.ds-session__title { font-size: 1.35rem; }
.ds-session__source { font-size: var(--fs-sm); color: var(--c-sage); }
/* with JS: one stage at a time in a panel */
.ds-session--js .ds-session__step { display: none; }
.ds-session--js .ds-session__step--active { display: grid; padding: var(--space-lg); background: var(--c-paper); border: 0; border-radius: var(--radius); min-height: 11rem; align-content: start; }
.ds-session--js .ds-session__list { border-top: 0; }
.ds-session--js .ds-session__step--active .ds-session__time { font-size: 1.75rem; line-height: 1.15; color: var(--c-shade); }
.ds-session--js .ds-session__step--active .ds-session__title { font-size: 1.5rem; }
.ds-session__jumps { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; padding: 0; margin-top: var(--space-md); }
.ds-session__jumps li { max-width: none; }
.ds-session__jump { min-height: 2.75rem; padding: 0.3rem 0.8rem; border: 1px solid var(--c-rule); border-radius: var(--radius); background: transparent; cursor: pointer; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.ds-session__jump[aria-current="step"] { background: var(--c-shade); border-color: var(--c-shade); color: var(--c-paper); }

/* 5. Fees table, with "Show options for my situation" -------------------------------------------------------------- */
.ds-fees-wrap { margin-top: var(--space-lg); }
.ds-situation { margin-bottom: var(--space-lg); }
.ds-situation__label { font-weight: 600; }
.ds-situation__list { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; padding: 0; margin-top: var(--space-sm); }
.ds-situation__list li { max-width: none; }
.ds-situation__note:not(:empty) { margin-top: var(--space-md); padding: var(--space-md); background: var(--c-paper); border-left: 3px solid var(--c-lake); border-radius: var(--radius); }
.ds-fees { max-width: 100%; }
.ds-fees:focus-visible { outline-offset: 4px; }
.ds-fees__table { width: 100%; font-size: 1.0625rem; font-variant-numeric: lining-nums tabular-nums; }
.ds-fees__caption { text-align: left; font-size: var(--fs-sm); color: var(--c-sage); padding-bottom: var(--space-sm); caption-side: top; }
.ds-fees__table th, .ds-fees__table td { text-align: left; vertical-align: top; padding: 0.9rem 1rem 0.9rem 0; border-bottom: 1px solid var(--c-rule); }
.ds-fees__table thead th { font-weight: 600; font-size: var(--fs-sm); color: var(--c-sage); border-bottom-color: var(--c-sage); }
.ds-fees__table tbody th { font-weight: 400; min-width: 9rem; }
.ds-fees__table tbody th a { font-family: var(--font-heading); font-size: 1.35rem; line-height: 1.2; color: var(--c-shade); text-decoration: none; }
.ds-fees__table tbody th a:hover { text-decoration: underline; }
.ds-fees__cred, .ds-fees__hint { display: block; font-size: var(--fs-sm); color: var(--c-sage); margin-top: 0.2rem; }
.ds-fees__table tr { transition: background-color .15s ease, opacity .15s ease; }
.ds-fees__table.is-filtered tbody tr:not(.is-match) { opacity: 0.45; }
.ds-fees__table tbody tr.is-match { background: var(--c-step); }
.ds-fees__table tbody tr.is-match > :first-child { box-shadow: inset 3px 0 0 var(--c-lake); padding-left: 0.75rem; }
.ds-fees__source { margin-top: var(--space-sm); font-size: var(--fs-sm); color: var(--c-sage); }
@media (max-width: 799px) {
  .ds-fees__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ds-fees__table, .ds-fees__table tbody, .ds-fees__table tr, .ds-fees__table th, .ds-fees__table td, .ds-fees__caption { display: block; width: 100%; }
  .ds-fees__table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-md); padding: var(--space-md) 0; border-bottom: 1px solid var(--c-rule); }
  .ds-fees__table tr > * { width: auto; border: 0; padding: 0.15rem 0; }
  .ds-fees__table tbody th, .ds-fees__table td:nth-child(5), .ds-fees__table td:nth-child(6) { grid-column: 1 / -1; }
  .ds-fees__table td::before { content: attr(data-label); display: block; font-size: var(--fs-sm); color: var(--c-sage); margin-top: 0.5rem; }
  .ds-fees__table tbody tr.is-match > :first-child { box-shadow: none; padding-left: 0; }
  .ds-fees__table tbody tr.is-match { padding-inline: 0.75rem; box-shadow: inset 3px 0 0 var(--c-lake); }
}

/* 6. Chips (toggle buttons) ------------------------------------------------------------------------------------------ */
.ds-chip { min-height: 2.75rem; padding: 0.4rem 0.95rem; background: var(--c-paper); color: var(--c-shade); border: 1px solid var(--c-rule); border-radius: var(--radius); cursor: pointer; font-size: 1rem; line-height: 1.25; text-align: left; }
.ds-chip:hover { border-color: var(--c-sage); }
.ds-chip[aria-pressed="true"] { background: var(--c-shade); border-color: var(--c-shade); color: var(--c-paper); }

/* 7. Fees helper -------------------------------------------------------------------------------------------------------- */
.ds-helper { margin-top: var(--space-lg); display: grid; gap: var(--space-xl); }
.ds-helper__q { display: block; font-family: var(--font-heading); font-size: var(--fs-xl); line-height: 1.25; margin-bottom: var(--space-md); }
.ds-helper__option { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.75rem; align-items: center; padding: 0.6rem 0; border-bottom: 1px solid var(--c-rule-soft); }
.ds-helper__option label { cursor: pointer; }
.ds-helper__result { grid-column: 1 / -1; padding: var(--space-md); background: var(--c-paper); border-left: 3px solid var(--c-lake); border-radius: var(--radius); margin-top: var(--space-sm); }
.ds-helper:not(.ds-helper--js) .ds-helper__result { background: none; padding: 0 0 0 2rem; border: 0; color: var(--c-sage); }
.ds-helper__select { max-width: 24rem; }
.ds-helper__insurer-result { margin-top: var(--space-md); padding: var(--space-md); background: var(--c-paper); border-left: 3px solid var(--c-lake); }
.ds-helper__insurers > div { padding: 0.6rem 0; border-bottom: 1px solid var(--c-rule-soft); }
.ds-helper__insurers dt { font-weight: 600; }
.ds-helper__insurers dd { margin: 0.15rem 0 0; }

/* 8. FAQ ---------------------------------------------------------------------------------------------------------------- */
.ds-faq__item { border-bottom: 1px solid var(--c-rule); }
.ds-faq__item:first-of-type { border-top: 1px solid var(--c-rule); }
.ds-faq__q { list-style: none; cursor: pointer; padding: 1rem 2rem 1rem 0; position: relative; font-family: var(--font-heading); font-size: 1.3rem; line-height: 1.3; }
.ds-faq__q::-webkit-details-marker { display: none; }
.ds-faq__q::after { content: ""; position: absolute; right: 0.4rem; top: 1.45rem; width: 0.6rem; height: 0.6rem; border-right: 1.5px solid var(--c-sage); border-bottom: 1.5px solid var(--c-sage); transform: rotate(45deg); transition: transform .15s ease; }
.ds-faq__item[open] .ds-faq__q::after { transform: rotate(-135deg); top: 1.7rem; }
.ds-faq__a { padding-bottom: var(--space-lg); }

/* 9. Contact form --------------------------------------------------------------------------------------------------------- */
.ds-form-wrap { margin-top: var(--space-2xl); padding: var(--space-lg); background: var(--c-paper); border-radius: var(--radius); }
@media (min-width: 700px) { .ds-form-wrap { padding: var(--space-2xl); } }
.ds-form__heading { font-size: var(--fs-xl); }
.ds-form__intro { margin-top: var(--space-sm); color: var(--c-sage); }
.ds-form { display: grid; gap: var(--space-lg); margin-top: var(--space-lg); max-width: 36rem; }
.ds-form__label { display: block; font-weight: 600; margin-bottom: 0.35rem; }
.ds-form__req { font-weight: 400; color: var(--c-sage); }
.ds-form__hint { margin-top: 0.3rem; font-size: var(--fs-sm); color: var(--c-sage); }
.ds-form__choice { display: flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; cursor: pointer; }
.ds-form__field--error .ds-form__input { border-color: #9B2C1F; border-width: 2px; }
.ds-form__error { margin-top: 0.3rem; font-weight: 600; color: #8A2A1E; }
.ds-form__errors { padding: var(--space-md); border: 2px solid #8A2A1E; border-radius: var(--radius); background: #FBF1EE; }
.ds-form__errors a { color: #8A2A1E; font-weight: 600; }
.ds-form__success { padding: var(--space-md); border-left: 3px solid var(--c-lake); background: var(--c-mist); }
.ds-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds-form__rule, .ds-form__note { font-size: var(--fs-sm); color: var(--c-sage); }

/* 10. More lines, evidence, breathe -------------------------------------------------------------------------------------- */
.ds-more-lines { list-style: none; padding: 0; border-top: 1px solid var(--c-rule); }
.ds-more-lines__item { max-width: none; display: grid; gap: 0.1rem 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--c-rule-soft); }
@media (min-width: 700px) { .ds-more-lines__item { grid-template-columns: 16rem 10rem 1fr; align-items: baseline; } }
.ds-more-lines__number { font-family: var(--font-heading); font-size: 1.3rem; font-variant-numeric: lining-nums; }
.ds-more-lines__line { color: var(--c-sage); font-size: var(--fs-sm); }
.ds-evidence { list-style: none; padding: 0; border-top: 1px solid var(--c-rule); }
.ds-evidence__item { max-width: none; padding: var(--space-md) 0; border-bottom: 1px solid var(--c-rule-soft); }
.ds-evidence__source { margin-top: 0.25rem; font-size: var(--fs-sm); color: var(--c-sage); }
.ds-breathe { margin-top: var(--space-xl); display: grid; justify-items: start; gap: var(--space-md); }
/* a soft disc of shade that widens on "in" and narrows on "out" (r1 creative 9, r2 creative 17): no box, no glow */
.ds-breathe__shape { width: 10rem; height: 10rem; border-radius: 50%; background: radial-gradient(closest-side, #B7C5B9 0%, var(--c-step) 48%, rgba(207, 217, 208, 0) 100%); transform: scale(0.62); transition: transform 4s ease-in-out; }
.ds-breathe[data-phase="in"] .ds-breathe__shape, .ds-breathe[data-phase="hold"] .ds-breathe__shape { transform: scale(1.15); }
.ds-breathe[data-phase="out"] .ds-breathe__shape { transform: scale(0.6); transition-duration: 6s; }
.ds-breathe__cue { font-family: var(--font-heading); font-size: 1.35rem; min-height: 1.6em; }

/* 11. Concern cards (help index and anywhere else they appear) ------------------------------------------------------------ */
.ds-concerns__group + .ds-concerns__group { margin-top: var(--space-2xl); }
.ds-concerns__group-title { font-size: var(--fs-h2); }
.ds-concerns__list { list-style: none; padding: 0; margin-top: var(--space-md); display: grid; gap: 0; border-top: 1px solid var(--c-rule); }
@media (min-width: 800px) { .ds-concerns__list { grid-template-columns: 1fr 1fr; column-gap: var(--space-2xl); } }
.ds-concern-card { max-width: none; padding: var(--space-lg) 0; border-bottom: 1px solid var(--c-rule); }
.ds-concern-card__title { font-size: var(--fs-h3); }
.ds-concern-card__title a { color: inherit; text-decoration: none; }
.ds-concern-card__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
.ds-concern-card__summary { margin-top: var(--space-sm); }
.ds-concern-card__line { margin-top: var(--space-sm); font-family: var(--font-heading); font-size: 1.15rem; color: var(--c-sage); }
.ds-concern-card__line q { quotes: "\201C" "\201D"; }
.ds-concern-card__who { margin-top: var(--space-sm); font-size: var(--fs-sm); color: var(--c-sage); }

/* photo bands from Davis's own photos: a wide quiet break between text sections, not a hero */
.ds-band-photo { margin: 0; padding: var(--space-xl, 3rem) 0; }
.ds-band-photo__img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radius); background: var(--c-step); }
.ds-band-photo__pair { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.ds-band-photo__pair img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius); background: var(--c-step); }
@media (min-width: 760px) { .ds-band-photo__pair { grid-template-columns: 4fr 7fr; } .ds-band-photo__pair img { aspect-ratio: auto; min-height: 22rem; } }
.ds-band-photo__caption { margin-top: 0.7rem; font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.4; color: var(--c-sage); max-width: 40rem; }

/* full-width photo under a page header (Mark's review 2026-11-07): edge to edge, never taller than most of the screen */
.ds-fullbleed { margin: 0; background: var(--c-cream); }
.ds-fullbleed__img { display: block; width: 100%; height: clamp(16rem, 44vw, 74svh); object-fit: cover; background: var(--c-step); }
.ds-fullbleed--office .ds-fullbleed__img { object-position: 50% 92%; }
.ds-fullbleed--desk .ds-fullbleed__img { object-position: 50% 15%; }
.ds-fullbleed__caption { padding: 0.8rem 0 0.9rem; font-family: var(--font-heading); font-size: 1.05rem; line-height: 1.4; color: var(--c-sage); }
