/* Generated from design/system/*.css. No legacy stylesheets. */
/* Shared values. Page modules never redefine the page width or control shape. */

:root {
  --hs-ink: #183e51;
  --hs-muted: #526773;
  --hs-line: #d7e2e7;
  --hs-paper: #fff;
  --hs-soft: #f4f8fa;
  --hs-blue: #087ba6;
  --hs-green: #257452;
  --hs-yellow: #896000;
  --hs-pink: #af356d;
  --hs-danger: #a92c38;
  --hs-font: -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --hs-title: clamp(1.75rem,2.3vw,2.25rem);
  --hs-section: clamp(1.4rem,2vw,1.8rem);
  --hs-gutter: clamp(20px,3vw,40px);
  --hs-header: 76px;
  --hs-page-width: min(100%,1040px);
  --hs-control-height: 48px;
  --hs-accent: var(--hs-blue);
  --hs-accent-soft: #eef7fb;
}

@media (min-width:1280px) {
  :root {
    --hs-page-width: min(1040px,calc(100% - 448px));
  }
}

@media (max-width:700px) {
  :root {
    --hs-header: 68px;
    --hs-gutter: 20px;
  }
}

*,*::before,*::after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-padding-top: calc(var(--hs-header) + 20px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--hs-paper);
  color: var(--hs-ink);
  font-family: var(--hs-font);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,p,figure {
  margin: 0 0 1rem;
}

h1 {
  font-size: var(--hs-title);
  line-height: 1.5;
  letter-spacing: .01em;
  font-weight: 750;
  overflow-wrap: anywhere;
}

h2 {
  font-size: var(--hs-section);
  line-height: 1.55;
  font-weight: 750;
}

h3 {
  font-size: 1.125rem;
  line-height: 1.6;
}

h4 {
  font-size: 1rem;
}

p {
  overflow-wrap: anywhere;
}

:where(a) {
  color: var(--hs-blue);
  text-underline-offset: 4px;
}

img,svg {
  max-width: 100%;
}

img {
  display: block;
  height: auto;
}

figure {
  margin-inline: 0;
}

:where(button,input,select,textarea) {
  font: inherit;
  color: inherit;
}

button,a {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: .5;
}

:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--hs-blue);
  outline-offset: 4px;
}

small,.small,.muted,.help,.lead,.intro-lead,.support-lead,.v25f-muted {
  color: var(--hs-muted);
}

small,.small,.help,.intro-note,.support-small,.v25f-muted {
  font-size: .875rem;
  line-height: 1.75;
}

ul,ol {
  padding-left: 1.5rem;
}

li+li {
  margin-top: .4em;
}

summary {
  cursor: pointer;
}

hr {
  border: 0;
  border-top: 1px solid var(--hs-line);
  margin: 2rem 0;
}

.hidden,[hidden] {
  display: none !important;
}

/* Behavioral visibility wins over layout display. */

.v25p-visually-hidden-page-title,.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.v25p-skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  z-index: 3000;
  background: white;
  padding: 12px 20px;
  color: var(--hs-blue);
}

.v25p-skip-link:focus {
  top: 12px;
}

.v20-skip,.v24a-skip,.v25b-function-photo-guide,.v25g-function-hero,.function-guide,.v25g-wizard-intro,.v25q-usage-guide {
  display: none;
}

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

/* Focal points for the generated lifestyle images; the homepage hero stays separate. */
img[src$="/bright-20260911/home.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/notebook.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/walk.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/work.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/rest.jpg"] { --hs-photo-position: 65% 50%; }
img[src$="/bright-20260911/pause.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/clothes.jpg"] { --hs-photo-position: 50% 50%; }
img[src$="/bright-20260911/meeting.jpg"] { --hs-photo-position: 50% 50%; --hs-photo-fit: contain; background: #fff; }

/* One control contract shared by existing HTML and dynamically created forms. */

:where(button,.btn,.button,.intro-button,.v25-button,.v25-next,.v25-prev,.file-label,.contact-submit,.support-button,.map-actions a) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--hs-control-height);
  padding: 10px 18px;
  border: 1px solid var(--hs-line);
  border-radius: 0;
  background: white;
  color: var(--hs-ink);
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
}

:where(button,.btn,.button,.intro-button,.v25-button) > img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  flex: 0 0 28px;
}

:where(button,.btn,.button,.intro-button,.v25-button):hover {
  border-color: var(--hs-accent);
}

:where(button.primary,.btn.primary,.button.primary,.intro-button--primary,.intro-button--blue,.support-button--primary,.contact-submit,.v25-next,.v25-button--blue,.map-actions__save,.empty button,.record-actions .primary,.fab) {
  background: var(--hs-accent);
  border-color: var(--hs-accent);
  color: white;
}

.v25-button--green {
  background: var(--hs-green);
  border-color: var(--hs-green);
  color: white;
}

.v25-button--pink {
  background: var(--hs-pink);
  border-color: var(--hs-pink);
  color: white;
}

:where(.danger,.btn.danger,.delete-btn) {
  color: var(--hs-danger);
  border-color: var(--hs-danger);
}

:where(.intro-actions,.support-actions,.actions,.item-actions,.record-actions,.log-actions,.v25-complete-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}

:where(input:not([type=range]):not([type=radio]):not([type=checkbox]):not([type=file]),textarea,select) {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: var(--hs-control-height);
  padding: 12px;
  border: 1px solid #a3b8c3;
  border-radius: 0;
  background: white;
  line-height: 1.5;
}

textarea {
  min-height: 128px;
  resize: vertical;
}

input[type=range] {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  accent-color: var(--hs-accent);
}

input[type=radio],input[type=checkbox] {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  accent-color: var(--hs-accent);
  margin: 3px 8px 3px 0;
}

:where(.field,.contact-field) {
  display: grid;
  gap: 8px;
  margin: 20px 0;
}

:where(.label,.field>label,.contact-label) {
  display: block;
  font-weight: 650;
}

:where(.row,.form-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.row>.field {
  flex: 1 1 180px;
  min-width: 0;
}

:where(.chips,.pills,.filter-chips,.filter,.guide-jump,.faq-categories,.range,.v25q-section-nav) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0;
}

:where(.chip,.pill) {
  font-weight: 500;
  min-height: 48px;
}

:where(.chip.sel,.pill.sel,.chip.selected,.pill.selected,[aria-pressed=true],.mode.active) {
  border-color: var(--hs-accent);
  background: var(--hs-accent-soft);
  color: var(--hs-accent);
}

:where(.filter-chips,.filter,.guide-jump,.faq-categories,.range,.v25q-section-nav) :where(a,button) {
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--hs-muted);
  padding: 10px 12px;
}

:where(.filter-chips,.filter,.faq-categories,.range) :where(.active,.is-active,[aria-selected=true],[aria-pressed=true]) {
  color: var(--hs-accent);
  border-bottom-color: currentColor;
  background: var(--hs-accent-soft);
}

:where(.notice,.note,.intro-note,.guide-note,.contact-safety,.v25-wizard-note,.support-draft) {
  border-left: 2px solid var(--hs-line);
  padding: 12px 0 12px 18px;
  margin: 24px 0;
  color: var(--hs-muted);
  font-size: .875rem;
}

.file-label {
  display: grid;
  gap: 10px;
  text-align: left;
}

.file-label input {
  max-width: 100%;
  font-size: .875rem;
}

input::file-selector-button {
  min-height: 44px;
  border: 1px solid var(--hs-line);
  background: white;
  padding: 8px;
  color: var(--hs-ink);
  border-radius: 0;
}

.v25-raster-icon,.bodymap-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.hs-save-status {
  display: block;
  min-height: 24px;
  margin-top: 8px;
  color: var(--hs-muted);
  font-size: .875rem;
}

.hs-save-status:empty {
  display: none;
}

.hs-save-status.is-error {
  color: var(--hs-danger);
}

.hs-flow-help {
  padding: 16px 0;
  margin-bottom: 24px;
  border-block: 1px solid var(--hs-line);
  color: var(--hs-muted);
  font-size: .875rem;
}

.hs-flow-help summary {
  color: var(--hs-ink);
  font-weight: 650;
  min-height: 32px;
}

.hs-flow-help p {
  margin: 12px 0 0;
}

/* Keep save failures visible while the input remains available. */
.hs-save-error{color:var(--color-danger,#8d2432);border-block:1px solid currentColor;padding:16px 0;margin:16px 0;line-height:1.8;overflow-wrap:anywhere}

/* The outer shell owns width; descendants own their padding only. */

:where(.hs-page-shell) {
  width: var(--hs-page-width);
  margin-inline: auto;
  min-width: 0;
}

:where(.v25-main,.intro-main,.support-main) {
  width: 100%;
  min-width: 0;
}

.v25-header {
  height: var(--hs-header);
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 900;
  background: white;
  border-bottom: 1px solid var(--hs-line);
}

.v25-logo {
  flex: 0 0 auto;
}

.v25-logo img {
  width: 190px;
  max-height: 38px;
  object-fit: contain;
}

.v25-global-nav {
  display: none;
}

.v25-header-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.v25-header-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  color: var(--hs-ink);
  border: 0;
  padding: 6px 10px;
  font-size: .875rem;
  min-height: 52px;
}

.v25-header-btn img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.v25-header-btn[aria-current=page] {
  border-bottom: 2px solid var(--hs-blue);
}

.v25-header-btn--menu {
  width: 48px;
  padding: 8px;
}

.v25n-desktop-rail {
  position: fixed;
  top: calc(var(--hs-header) + 28px);
  width: 184px;
  max-height: calc(100dvh - var(--hs-header) - 52px);
  overflow-y: auto;
  background: white;
}

.v25n-desktop-rail--left {
  left: 24px;
}

.v25n-desktop-rail--right {
  right: 24px;
}

.v25n-rail-eyebrow {
  font-size: .8125rem;
  color: var(--hs-muted);
  padding: 0 8px;
  margin: 0 0 12px;
}

.v25n-rail-link {
  display: grid;
  grid-template-columns: 32px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  min-height: 56px;
  padding: 10px 8px;
  text-decoration: none;
  color: var(--hs-ink);
  font-size: .875rem;
  font-weight: 600;
}

.v25n-rail-link img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.v25n-rail-link.is-current {
  border-left: 2px solid var(--hs-blue);
  background: var(--hs-soft);
}

.v25n-rail-menu {
  justify-content: start;
  width: 100%;
  border: 0;
  padding: 10px 8px;
  font-size: .875rem;
}

.v25n-rail-menu img {
  width: 32px;
  height: 32px;
}

.v25n-rail-guide {
  padding: 0 8px 20px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--hs-line);
}

.v25n-rail-guide__art {
  height: 116px;
  width: 100%;
  object-fit: contain;
  margin-bottom: 12px;
}

.v25n-rail-guide h2 {
  font-size: 1rem;
}

.v25n-rail-guide p {
  font-size: .875rem;
  line-height: 1.75;
}

.v25n-rail-guide .v25n-rail-eyebrow {
  display: none;
}

.v25n-rail-actions {
  display: grid;
  gap: 6px;
}

.v25n-rail-actions .v25n-rail-link {
  border-bottom: 1px solid var(--hs-line);
}

.hs-rail-safety {
  font-size: .8125rem;
  color: var(--hs-muted);
  padding: 16px 8px;
}

.hs-rail-safety a {
  display: block;
  margin-top: 8px;
}

.is-v25d-menu-open {
  position: fixed;
  inset-inline: 0;
  width: 100%;
  overflow: hidden;
}

.v25d-menu {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  grid-template-columns: 1fr min(620px,100%);
}

.v25d-menu__backdrop {
  grid-column: 1;
  border: 0;
  background: #183e5170;
  padding: 0;
}

.v25d-menu__panel {
  grid-column: 2;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: white;
  min-width: 0;
}

.v25d-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--hs-line);
}

.v25d-menu__header img {
  width: 168px;
}

.v25d-menu__header button {
  width: 48px;
  padding: 8px;
  border: 0;
}

.v25d-menu__header button img {
  width: 32px;
}

.v25d-menu__scroll {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 28px 24px 48px;
  flex: 1;
  min-height: 0;
}

.v25d-menu__intro h2 {
  font-size: 1.6rem;
}

.v25d-menu__intro p {
  font-size: .9375rem;
  color: var(--hs-muted);
}

.v25d-menu__primary {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  margin: 24px 0 36px;
}

.v25d-menu-feature {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 18px 0;
  border-block: 1px solid var(--hs-line);
  text-decoration: none;
  color: var(--hs-ink);
}

.v25d-menu-feature>img {
  width: 48px;
  height: 48px;
  margin-bottom: 12px;
}

.v25d-menu-feature strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 8px;
}

.v25d-menu-feature small {
  display: block;
  font-size: .8125rem;
  color: var(--hs-muted);
  margin: 4px 0;
}

.v25d-menu-feature.is-current {
  border-top: 2px solid var(--hs-blue);
}

.v25d-menu__grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 28px;
}

.v25d-menu-section h3 {
  font-size: .875rem;
  color: var(--hs-muted);
}

.v25d-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 0;
  min-height: 72px;
  border-bottom: 1px solid var(--hs-line);
  text-decoration: none;
  color: var(--hs-ink);
}

.v25d-menu-item__icon {
  flex: 0 0 36px;
}

.v25d-menu-item__icon img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

.v25d-menu-item__copy {
  flex: 1;
  min-width: 0;
}

.v25d-menu-item__copy strong,.v25d-menu-item__copy small {
  display: block;
}

.v25d-menu-item__copy strong {
  font-size: .9375rem;
}

.v25d-menu-item__copy small {
  font-size: .8125rem;
}

.v25d-menu__utility {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  border-top: 1px solid var(--hs-line);
  padding-top: 24px;
  margin-top: 28px;
  font-size: .875rem;
}

.v25d-bottom-nav {
  position: fixed;
  inset: auto 0 0;
  z-index: 800;
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  background: white;
  border-top: 1px solid var(--hs-line);
  padding-bottom: env(safe-area-inset-bottom);
}

.v25d-bottom-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 72px;
  padding: 8px 2px;
  text-decoration: none;
  color: var(--hs-muted);
}

.v25d-bottom-nav a img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.v25d-bottom-nav a span {
  font-size: .75rem;
  font-weight: 650;
}

.v25d-bottom-nav a.is-current {
  color: var(--hs-blue);
  background: var(--hs-soft);
  border-top: 2px solid var(--hs-blue);
}

.v25-footer {
  margin: 0 auto;
  padding: 40px var(--hs-gutter);
  width: var(--hs-page-width);
  border-top: 1px solid var(--hs-line);
}

.v25-footer-inner {
  display: grid;
  gap: 24px;
}

.v25-footer-inner img {
  width: 170px;
  max-height: 60px;
  object-fit: contain;
}

.v25-footer-inner p,.v25-footer-inner small {
  font-size: .875rem;
  color: var(--hs-muted);
  margin: 12px 0;
}

.v25-footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
}

.v25-footer-nav a {
  font-size: .875rem;
  min-height: 36px;
}

.hs-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 20px var(--hs-gutter);
  margin: 0;
  font-size: .8125rem;
  color: var(--hs-muted);
}

.v25-context-nav {
  padding: 40px var(--hs-gutter);
  border-top: 1px solid var(--hs-line);
}

body>.v25-context-nav {
  width: var(--hs-page-width);
  margin-inline: auto;
}

.v25-context-nav__head {
  margin-bottom: 24px;
}

.v25-context-nav__head h2 {
  margin-bottom: 6px;
}

.v25-context-nav__head span {
  font-size: .875rem;
  color: var(--hs-muted);
}

.v25-context-nav__grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
}

.v25-context-card {
  text-decoration: none;
  color: var(--hs-ink);
  font-weight: 650;
}

.v25-context-card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.v25-context-card>span {
  display: block;
  padding: 16px 0;
  border-bottom: 1px solid var(--hs-line);
  font-size: .9375rem;
}

@media (min-width:1280px) {
  .v25d-bottom-nav {
    display: none;
  }
}

@media (max-width:1279px) {
  .v25n-desktop-rails {
    display: none;
  }

  .has-v25d-bottom-nav {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }
}

@media (min-width: 701px) and (max-width: 1000px) {
  .v25-logo img { width: 168px; }
  .v25-header-actions { gap: 4px; }
  .v25-header-btn:not(.v25-header-btn--menu) { flex-direction: column; gap: 2px; min-width: 64px; padding: 6px; }
  .v25-header-btn img { width: 28px; height: 28px; }
  .v25-header-btn span { white-space: nowrap; font-size: .8125rem; }
}

@media (max-width:700px) {
  .v25-header {
    padding-inline: 16px;
    gap: 12px;
  }

  .v25-logo img {
    width: 146px;
  }

  .v25-header-actions {
    gap: 0;
  }

  .v25-header-btn:not(.v25-header-btn--menu) {
    display: none;
  }

  .v25-header-btn--menu span {
    display: none;
  }

  .v25d-menu__grid {
    grid-template-columns: 1fr;
  }

  .v25-context-nav__grid {
    grid-template-columns: 1fr;
  }

  .v25-context-card {
    display: grid;
    grid-template-columns: 112px 1fr;
    gap: 18px;
    align-items: center;
  }

  .v25-context-card img {
    aspect-ratio: 4/3;
  }

  .v25-context-card>span {
    padding: 16px 0;
  }

  .v25d-menu__scroll {
    padding: 24px 20px 40px;
  }
}

.v20-offline,.v20-update {
  display: none;
}

.v20-offline.show,.v20-update.show {
  display: block;
  position: fixed;
  bottom: 88px;
  left: 50%;
  transform: translateX(-50%);
  width: min(560px,calc(100% - 40px));
  padding: 20px;
  background: white;
  border: 1px solid var(--hs-line);
  z-index: 1000;
  font-size: .875rem;
}

.v20-update p {
  margin-bottom: 12px;
}

.hs-home {
  background: #fff;
  overflow: clip;
}

.hs-home a {
  text-decoration: none;
}

.hs-home p {
  margin: 0;
}

.hs-eyebrow {
  color: var(--hs-blue);
  font-size: .875rem;
  font-weight: 650;
  letter-spacing: .04em;
  margin-bottom: 14px;
}

.hs-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 380px;
  background: #fff;
}

.hs-hero-copy {
  padding: 48px 12px 42px var(--hs-gutter);
  position: relative;
  z-index: 1;
}

.hs-hero-copy h1 {
  font-size: var(--hs-title);
  line-height: 1.65;
  white-space: normal;
  margin: 12px 0 20px;
}

.hs-hero-copy > p:not(.hs-eyebrow) {
  margin-bottom: 22px;
  color: var(--hs-muted);
}

.hs-hero-image {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
  object-position: 77% center;
}

.hs-text-link {
  display: inline-flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  color: var(--hs-blue);
  font-size: .9375rem;
  font-weight: 700;
  text-decoration: none;
}

.hs-text-link span {
  font-size: 1.25rem;
}

.hs-text-link:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.hs-block {
  padding: 64px var(--hs-gutter);
}

.hs-tools-block {
  padding-top: 38px;
  padding-bottom: 36px;
}

.hs-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
}

.hs-section-heading h2 {
  margin: 0;
}

.hs-section-heading .hs-eyebrow {
  margin-bottom: 8px;
}

.hs-tools {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 28px 32px;
}

.hs-tool {
  --tool: #087fb0;
  display: grid;
  grid-template-columns: 70px minmax(0,1fr);
  grid-template-rows: 1fr auto;
  gap: 14px 12px;
  padding: 24px 0 8px;
  min-height: 206px;
  border: 0;
  border-top: 1px solid var(--hs-line);
  border-radius: 0;
  background: transparent;
  color: var(--hs-ink);
  transition: border-color .16s;
}

.hs-tool:hover {
  border-color: var(--tool);
}

.hs-tool:hover h3 {
  text-decoration: underline;
  text-underline-offset: 5px;
}

.hs-tool--summary {
  --tool: var(--hs-green);
  --soft: #edf7f0;
}

.hs-tool--treatment {
  --tool: var(--hs-yellow);
  --soft: #fff7df;
}

.hs-tool--visit {
  --tool: var(--hs-pink);
  --soft: #fff0f6;
}

.hs-tool > img {
  width: 70px;
  height: 70px;
  object-fit: contain;
}

.hs-tool small {
  font-size: .875rem;
  color: var(--tool);
}

.hs-tool h3 {
  font-size: 1.3rem;
  margin: 4px 0 10px;
}

.hs-tool p {
  font-size: .875rem;
  color: var(--hs-muted);
  line-height: 1.75;
}

.hs-tool-action {
  grid-column: 1/-1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 10px 0;
  border-radius: 0;
  font-size: .9375rem;
  font-weight: 700;
  color: var(--tool);
  background: transparent;
}

.hs-tool-action > span {
  font-size: 1.3rem;
}

.hs-storage-note {
  font-size: .875rem;
  color: var(--hs-muted);
  margin-top: 20px;
  text-align: center;
}

.hs-storage-note a {
  display: inline-block;
  color: var(--hs-blue);
  padding: 4px 6px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.hs-status:empty {
  display: none;
}

.hs-status:not(:empty) {
  margin-top: 20px;
  padding: 16px 0;
  border: 0;
  border-top: 1px solid var(--hs-line);
  background: transparent;
  border-radius: 0;
  font-size: .9375rem;
}

.hs-status a {
  color: var(--hs-blue);
  text-decoration: underline;
}

.hs-first-guide {
  margin: 20px var(--hs-gutter) 12px;
  padding: 40px 0;
  border: 0;
  border-top: 1px solid var(--hs-line);
  border-bottom: 1px solid var(--hs-line);
  border-radius: 0;
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  align-items: center;
  gap: 32px;
  background: transparent;
}

.hs-first-guide > img {
  width: 100%;
  height: 190px;
  object-fit: contain;
}

.hs-first-guide h2 {
  margin: 4px 0 16px;
}

.hs-first-guide p:not(.hs-eyebrow) {
  color: var(--hs-muted);
}

.hs-first-guide .hs-text-link {
  margin-top: 16px;
}

.hs-learn-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
}

.hs-editorial-card {
  display: block;
  color: var(--hs-ink);
  border-bottom: 1px solid var(--hs-line);
  padding-bottom: 18px;
}

.hs-editorial-card > img {
  width: 100%;
  height: 230px;
  object-fit: var(--hs-photo-fit, cover);
  object-position: var(--hs-photo-position, center);
  border-radius: 0;
}

.hs-editorial-card > div {
  padding: 20px 0 0;
}

.hs-editorial-card h3 {
  font-size: 1.25rem;
  margin: 0 0 12px;
}

.hs-editorial-card p {
  color: var(--hs-muted);
  margin-bottom: 10px;
}

.hs-block--tint {
  background: #fff;
}

.hs-story-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
}

.hs-story {
  display: block;
  color: var(--hs-ink);
}

.hs-story > img {
  width: 100%;
  height: 180px;
  border-radius: 0;
  object-fit: var(--hs-photo-fit, cover);
  object-position: var(--hs-photo-position, center);
}

.hs-story > div {
  padding: 18px 0 0;
}

.hs-story small {
  font-size: .875rem;
  color: var(--hs-blue);
}

.hs-story h3 {
  font-size: 1.0625rem;
  margin: 8px 0 12px;
}

.hs-story div > span {
  font-size: .875rem;
  color: var(--hs-blue);
  display: inline-block;
  min-height: 40px;
}

.hs-theme-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
}

.hs-theme-grid a {
  display: flex;
  flex-direction: column;
  color: var(--hs-ink);
  background: #fff;
}

.hs-theme-grid img {
  width: 100%;
  height: 210px;
  object-fit: var(--hs-photo-fit, cover);
  object-position: var(--hs-photo-position, center);
  border-radius: 0;
}

.hs-theme-grid span {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  font-size: .9375rem;
  font-weight: 700;
  padding: 16px 0;
}

.hs-theme-grid b {
  font-size: 1.25rem;
  color: var(--hs-blue);
}

.hs-connect-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  background: #fff;
  margin: 0 var(--hs-gutter) 50px;
  border-radius: 0;
  overflow: hidden;
}

.hs-connect-block > img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: var(--hs-photo-fit, cover);
}

.hs-connect-block > div {
  padding: 24px 0;
}

.hs-connect-block h2 {
  margin: 8px 0 16px;
}

.hs-connect-block .hs-text-link {
  display: flex;
  margin-top: 8px;
  color: #655387;
}

.hs-medical-note {
  padding: 28px var(--hs-gutter) 40px;
  border-top: 1px solid var(--hs-line);
}

.hs-medical-note p {
  color: var(--hs-muted);
  font-size: .875rem;
  margin: 10px 0;
}

.hs-medical-note a {
  color: var(--hs-blue);
  text-decoration: underline;
  text-underline-offset: 4px;
  font-size: .875rem;
}

@media (max-width:900px) {
  .hs-hero-copy h1 {
    font-size: var(--hs-title);
  }

  .hs-tool {
    grid-template-columns: 52px minmax(0,1fr);
    padding: 20px 0 8px;
  }

  .hs-tool > img {
    width: 52px;
    height: 52px;
  }

  .hs-story-grid {
    gap: 16px;
  }

  .hs-theme-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 20px;
  }
}

@media (max-width:600px) {
  .hs-hero {
    grid-template-columns: 1fr;
  }

  .hs-hero-copy {
    padding: 32px 24px 24px;
  }

  .hs-hero-copy h1 {
    font-size: var(--hs-title);
  }

  .hs-hero-image {
    height: 225px;
    min-height: 0;
    object-position: 65% 45%;
  }

  .hs-block {
    padding: 44px 20px;
  }

  .hs-tools-block {
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .hs-section-heading {
    display: block;
  }

  .hs-section-heading > .hs-text-link {
    margin-top: 10px;
  }

  .hs-tools {
    gap: 20px;
  }

  .hs-tool {
    display: flex;
    flex-direction: column;
    padding: 20px 0 8px;
    gap: 10px;
    min-height: 0;
  }

  .hs-tool > img {
    width: 58px;
    height: 58px;
  }

  .hs-tool h3 {
    font-size: 1.125rem;
    margin: 4px 0 8px;
  }

  .hs-tool small {
    font-size: .875rem;
    line-height: 1.6;
    display: block;
  }

  .hs-tool p {
    font-size: .875rem;
  }

  .hs-tool p br {
    display: none;
  }

  .hs-tool-action {
    margin-top: auto;
    font-size: .875rem;
    padding: 10px 0;
    gap: 4px;
  }

  .hs-first-guide {
    padding: 32px 0;
    gap: 18px;
    grid-template-columns: 1fr;
  }

  .hs-first-guide > img {
    height: 150px;
  }

  .hs-first-guide h2 br {
    display: none;
  }

  .hs-learn-grid {
    gap: 24px;
    grid-template-columns: 1fr;
  }

  .hs-editorial-card > img {
    height: 220px;
  }

  .hs-story-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .hs-story {
    display: grid;
    grid-template-columns: 40% 1fr;
    gap: 16px;
  }

  .hs-story > img {
    height: 170px;
  }

  .hs-story > div {
    padding: 0;
  }

  .hs-story h3 br {
    display: none;
  }

  .hs-theme-grid img {
    height: 190px;
  }

  .hs-connect-block {
    grid-template-columns: 1fr;
  }

  .hs-connect-block > img {
    height: 200px;
    min-height: 0;
  }

  .hs-connect-block > div {
    padding: 0;
  }
}

/* Reading pages share a single text inset; grids are for parallel information. */

.intro-section {
  padding: 48px 0;
}

.intro-section__inner {
  padding-inline: var(--hs-gutter);
  min-width: 0;
}

.intro-eyebrow,.intro-kicker {
  font-size: .8125rem;
  color: var(--hs-blue);
  letter-spacing: .04em;
  margin-bottom: 12px;
}

.intro-title {
  margin-bottom: 20px;
}

.intro-lead {
  font-size: 1rem;
  line-height: 1.9;
}

:where(.situation-grid,.result-grid,.guide-info-grid,.guide-visit-grid,.guide-life-grid,.voice-grid,.connect-grid,.support-grid,.activity-grid,.register-grid,.read-safe-grid,.start-quick,.v25e-journey-grid) {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
  margin-top: 28px;
}

:where(.situation-card,.result-card,.concern-card,.guide-info,.guide-visit,.guide-life,.voice-card,.connect-card,.support-card,.activity-card,.safe-card,.read-safe,.org-summary,.v25e-journey-card) {
  display: block;
  min-width: 0;
  padding: 24px 0;
  border-bottom: 1px solid var(--hs-line);
  text-decoration: none;
  color: var(--hs-ink);
}

:where(.situation-card,.result-card,.connect-card,.v25e-journey-card):hover h3 {
  text-decoration: underline;
  text-underline-offset: 5px;
}

:where(.situation-card,.result-card,.guide-info,.guide-life,.voice-card,.connect-card,.support-card,.activity-card) p {
  font-size: .9375rem;
  color: var(--hs-muted);
}

:where(.situation-card,.result-card,.concern-card,.connect-card,.v25e-journey-card) h3 {
  margin: 12px 0;
}

.v25b-photo-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 0;
  background: var(--hs-soft);
}

.v25b-page-photo {
  order: 2;
  margin: 0;
  min-width: 0;
}

.v25b-page-photo img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: var(--hs-photo-fit, cover);
  object-position: var(--hs-photo-position, center);
}

.v25b-photo-hero>.intro-section__inner,.v25b-photo-hero>.support-hero__inner {
  order: 1;
  display: block;
  padding: 36px var(--hs-gutter);
  min-width: 0;
}

.v25b-photo-hero :where(.start-hero__grid,.guide-hero__grid,.voices-hero__grid,.connect-hero__grid,.events-hero__grid,.event-hero__grid,.org-hero__grid) {
  display: block;
}

.v25b-photo-hero>div :where(img[src*="photos"],.v25g-event-visual,.v25f-guide-photo,.connect-hero__photo,.events-hero__photo,.event-hero__photo,.org-hero__visual) {
  display: none;
}

:where(.start-hero__visual,.guide-hero__duck,.support-hero__duck,.v25f-guide-hero-visual) {
  display: block;
  width: 140px;
  max-width: 100%;
  margin: 20px 0 0 auto;
}

:where(.start-hero__visual,.support-hero__duck,.v25f-guide-hero-visual) img {
  width: 100%;
  height: 112px;
  object-fit: contain;
}

.v25b-photo-hero>div img[src*="characters"] {
  width: 140px;
  height: 112px;
  object-fit: contain;
  margin: 20px 0 0 auto;
}

:where(.v25f-card-duck,.v25g-situation-duck,.v25g-concern-duck,.v25g-read-safe-duck,.v25g-connect-duck) {
  width: 140px;
  height: 118px;
  object-fit: contain;
  margin-bottom: 18px;
}

.v25f-quick-icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex: 0 0 48px;
}

.start-quick a {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  align-items: center;
  gap: 6px 16px;
  padding: 16px 0;
  text-decoration: none;
  border-bottom: 1px solid var(--hs-line);
}

.v25e-journey-card img {
  width: 100%;
  height: 150px;
  object-fit: contain;
  margin-bottom: 20px;
}

.v25e-journey-card strong,.v25e-journey-card span,.v25e-journey-card small {
  display: block;
}

.v25e-journey-card small {
  margin-top: 8px;
}

.v25e-journey-card__number,.situation-card__label {
  font-size: .8125rem;
  color: var(--hs-blue);
}

.result-card:not(.show),.voice-card:not(.show) {
  display: none;
}

.result-card__tag,.voice-card__tag,.event-tag {
  font-size: .8125rem;
  color: var(--hs-blue);
}

.voice-card__image img,.voice-card>img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: var(--hs-photo-fit, cover);
  object-position: var(--hs-photo-position, center);
  margin-bottom: 20px;
}

.voice-card__body {
  padding: 0;
}

.voice-card__meta {
  font-size: .8125rem;
  color: var(--hs-muted);
}

.voice-card__link {
  display: inline-block;
  min-height: 44px;
  margin-top: 10px;
}

.read-safe,.voices-reflect {
  margin-top: 36px;
  padding-block: 28px;
  border-block: 1px solid var(--hs-line);
}

:where(.v25f-body-locations,.v25f-consult-grid) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: center;
  margin-block: 28px;
}

.v25f-body-figure {
  margin: 0;
}

.v25f-body-figure img,.v25f-symptom-overview img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.v25f-symptom-overview {
  max-width: 620px;
  margin: 24px auto;
}

.v25g-symptom-image {
  display: none;
}

.v25f-consult-duck,.v25f-guide-duck {
  width: 220px;
  max-height: 220px;
  object-fit: contain;
  margin: auto;
}

.body-tags,.values {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.body-tags span,.values span {
  padding: 8px 0;
  border-bottom: 1px solid var(--hs-line);
}

.guide-check {
  padding-left: 1.5em;
  margin: 20px 0;
}

.guide-check li {
  padding: 8px 0;
}

.guide-acc,.intro-main .faq-item {
  border-bottom: 1px solid var(--hs-line);
}

.guide-acc>button,.intro-main .faq-item>button {
  width: 100%;
  justify-content: space-between;
  border: 0;
  text-align: left;
  padding: 18px 0;
  background: white;
}

.guide-acc__body,.faq-item__body {
  display: none;
  padding: 0 0 24px;
}

.guide-acc.open .guide-acc__body,.faq-item.open .faq-item__body {
  display: block;
}

:where(.event-feature,.event-card,.event-detail) {
  border-block: 1px solid var(--hs-line);
  padding: 28px 0;
  margin-top: 24px;
}

.event-feature__image img,.event-card__image img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}

.event-meta-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  margin: 24px 0;
}

.event-meta-grid>div {
  border-top: 1px solid var(--hs-line);
  padding-top: 12px;
}

.event-meta-grid small,.event-meta-grid strong {
  display: block;
}

.event-overview__row,.event-program__item,.policy-step {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--hs-line);
}

.event-program__item>span,.policy-step__num {
  font-weight: 650;
  color: var(--hs-blue);
}

.policy-step {
  grid-template-columns: 44px 1fr;
}

.notice-list {
  padding: 20px 0;
}

.notice-list a {
  display: block;
  min-height: 48px;
}

/* Testimonial layout uses real image content independently of the old inline CSS. */

.story-page .top,.story-page .bottom {
  display: none;
}

.article-hero {
  padding: 36px var(--hs-gutter);
  border-bottom: 1px solid var(--hs-line);
}

.article-photo {
  height: 300px;
  background: url('../photos/bright-20260911/home.jpg') center 35%/cover;
  margin: 24px 0;
}

.article {
  padding: 40px var(--hs-gutter);
  max-width: none;
}

.article .section {
  margin: 40px 0;
}

.article .quote {
  margin: 24px 0;
  padding: 16px 0 16px 24px;
  border-left: 2px solid var(--hs-line);
  font-size: 1.125rem;
}

.article .toc {
  display: grid;
  gap: 12px;
  padding: 24px 0;
  border-block: 1px solid var(--hs-line);
}

.article .steps>div {
  display: flex;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--hs-line);
}

.article .cta {
  padding: 28px 0;
  margin-top: 36px;
  border-top: 1px solid var(--hs-line);
}

.cta-actions,.article .related {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

@media (max-width:700px) {
  .v25b-photo-hero {
    grid-template-columns: 1fr;
  }

  .v25b-page-photo {
    order: 0;
  }

  .v25b-page-photo img {
    height: 230px;
    min-height: 0;
  }

  .v25b-photo-hero>.intro-section__inner,.v25b-photo-hero>.support-hero__inner {
    padding-block: 28px;
  }

  .intro-section {
    padding-block: 36px;
  }

  :where(.situation-grid,.result-grid,.guide-info-grid,.guide-visit-grid,.guide-life-grid,.voice-grid,.connect-grid,.support-grid,.activity-grid,.register-grid,.read-safe-grid) {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .v25f-body-locations,.v25f-consult-grid {
    grid-template-columns: 1fr;
  }

  .event-overview__row,.event-program__item {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .article-photo {
    height: 220px;
  }

  .v25e-journey-grid {
    gap: 20px;
  }

  .v25e-journey-card img {
    height: 120px;
  }

  .v25e-journey-card strong {
    font-size: 1rem;
  }
}

.start-quick a>img {
  grid-row: 1/3;
}

.start-quick a>strong,.start-quick a>span {
  grid-column: 2;
}

.start-quick a>span {
  font-size: .875rem;
  color: var(--hs-muted);
}

/* Learning pages: readable diagrams, examples and photographs in the shared shell. */
.hs-guidebook main { padding-bottom: 32px; }
.hs-lesson-hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 28px; padding: 36px var(--hs-gutter); }
.hs-lesson-hero h1 { font-size: clamp(1.65rem,2.6vw,2.25rem); }
.hs-lesson-kicker { color: var(--hs-blue); font-size: .8125rem; font-weight: 650; letter-spacing: .04em; }
.hs-lesson-photo { margin: 0; min-width: 0; }
.hs-lesson-photo img { width: 100%; aspect-ratio: 4/3; height: auto; object-fit: cover; object-position: var(--hs-photo-position, center); }
.hs-lesson-photo figcaption,.hs-lesson-caption { font-size: .8125rem; color: var(--hs-muted); margin: 10px 0 0; line-height: 1.7; }
.hs-lesson-index { display: flex; flex-wrap: wrap; gap: 0 24px; padding: 12px var(--hs-gutter); border-block: 1px solid var(--hs-line); }
.hs-lesson-index a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; text-decoration: none; font-size: .875rem; }
.hs-lesson-index a:hover { text-decoration: underline; }
.hs-lesson-section { padding: 44px var(--hs-gutter); border-bottom: 1px solid var(--hs-line); }
.hs-lesson-section h2 { font-size: clamp(1.35rem,2vw,1.65rem); }
.hs-lesson-section>p:not(.hs-lesson-kicker) { max-width: 52em; }
.hs-lesson-flow { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.hs-lesson-flow li { margin: 0; position: relative; min-width: 0; border-top: 2px solid var(--hs-blue); padding-top: 16px; }
.hs-lesson-flow li:not(:last-child)::after { content: '→'; position: absolute; right: -23px; top: 21px; color: var(--hs-blue); }
.hs-flow-number { display: block; font-size: 1.75rem; font-weight: 650; color: var(--hs-blue); margin-bottom: 12px; line-height: 1; }
.hs-lesson-flow h3 { margin-bottom: 8px; }
.hs-lesson-flow p { font-size: .9375rem; margin: 0; }
.hs-example { margin-top: 24px; }
.hs-example-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--hs-line); gap: 8px; }
.hs-example-tabs button { border: 0; border-bottom: 3px solid transparent; padding: 12px; flex: 1 1 140px; font-size: .875rem; font-weight: 500; }
.hs-example-tabs button[aria-selected=true] { border-bottom-color: var(--hs-blue); background: var(--hs-accent-soft); color: var(--hs-blue); font-weight: 650; }
.hs-example-label { font-size: .8125rem; color: var(--hs-muted); padding: 12px 0; margin: 0; }
.hs-example-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; padding: 16px 0; }
.hs-example-copy h3 { font-size: 1.2rem; }
.hs-example-copy li { font-size: .9375rem; }
.hs-example-screen { border: 1px solid var(--hs-line); border-top: 3px solid var(--hs-blue); margin: 0; background: white; padding: 20px; }
.hs-example-screen>figcaption { font-size: .875rem; font-weight: 650; color: var(--hs-blue); margin-bottom: 20px; }
.hs-example-fields { margin: 0; }
.hs-example-fields>div { padding: 12px 0; border-bottom: 1px solid var(--hs-line); }
.hs-example-fields>div:first-child { padding-top: 0; }
.hs-example-fields dt { font-size: .8125rem; color: var(--hs-muted); }
.hs-example-fields dd { margin: 4px 0 0; font-size: .9375rem; }
.hs-example-result { font-size: .8125rem; margin: 18px 0 0; color: var(--hs-muted); }
.hs-lesson-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: .9375rem; font-weight: 650; }
.hs-lesson-actions { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
.hs-lesson-destinations { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin-top: 20px; }
.hs-lesson-destinations>a { display: grid; grid-template-columns: 40px minmax(0,1fr) 16px; gap: 14px; padding: 24px 0; border-bottom: 1px solid var(--hs-line); color: var(--hs-ink); text-decoration: none; align-items: start; }
.hs-lesson-destinations h3 { font-size: 1rem; margin: 0 0 8px; }
.hs-lesson-destinations p { font-size: .875rem; color: var(--hs-muted); margin: 0; }
.hs-lesson-destinations>a:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.hs-data-diagram { display: grid; grid-template-columns: 1fr 28px 1fr; gap: 16px; align-items: center; margin: 28px 0; padding: 24px 0; border-block: 1px solid var(--hs-line); }
.hs-data-diagram>div { display: grid; gap: 8px; }
.hs-data-diagram>span { color: var(--hs-blue); font-size: 1.5rem; }
.hs-data-diagram img { margin-bottom: 4px; }
.hs-data-diagram strong { font-size: 1rem; }
.hs-data-diagram div>span { font-size: .875rem; color: var(--hs-muted); }
.hs-lesson-list { padding-left: 1.2em; }
.hs-lesson-list li { margin-block: 12px; }
.hs-source-ref { font-size: .8125rem; white-space: nowrap; }
.hs-lesson-sources { font-size: .875rem; padding-left: 1.3em; }
.hs-lesson-sources li { margin-block: 20px; }
.hs-lesson-sources span { display: block; color: var(--hs-muted); font-size: .8125rem; }
@media (max-width:700px) {
  .hs-lesson-hero { grid-template-columns: 1fr; padding-top: 28px; gap: 20px; }
  .hs-lesson-hero .hs-lesson-photo img { aspect-ratio: 16/9; }
  .hs-lesson-hero h1 { font-size: 1.75rem; }
  .hs-lesson-section { padding-block: 36px; }
  .hs-lesson-flow,.hs-example-panel,.hs-lesson-destinations { grid-template-columns: 1fr; }
  .hs-lesson-flow { gap: 28px; }
  .hs-lesson-flow li { padding-left: 48px; }
  .hs-flow-number { position: absolute; left: 0; top: 20px; font-size: 1.5rem; }
  .hs-lesson-flow li:not(:last-child)::after { content: '↓'; left: 15px; right: auto; top: auto; bottom: -27px; }
  .hs-example-tabs { display: grid; grid-template-columns: 1fr; gap: 0; }
  .hs-example-tabs button { justify-content: start; min-height: 48px; }
  .hs-example-panel { gap: 20px; }
  .hs-example-screen { padding: 18px; }
  .hs-data-diagram { grid-template-columns: 1fr; gap: 12px; }
  .hs-data-diagram>span { transform: rotate(90deg); justify-self: start; margin-left: 14px; }
}
.hs-lesson-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; margin-top: 28px; }
.hs-lesson-takeaway { border-left: 3px solid var(--hs-blue); padding: 8px 0 8px 20px; margin-top: 28px; }
.hs-lesson-takeaway p:last-child { margin: 0; }
.hs-symptom-diagrams { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 24px; }
.hs-symptom-diagrams figure { margin: 0; border-bottom: 1px solid var(--hs-line); padding-bottom: 20px; }
.hs-symptom-diagrams img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; margin-bottom: 16px; }
.hs-symptom-diagrams h3 { font-size: 1rem; margin-bottom: 8px; }
.hs-symptom-diagrams p { font-size: .9375rem; margin: 0; }
.hs-body-explainer { display: grid; grid-template-columns: 3fr 2fr; gap: 28px; align-items: center; margin-top: 40px; }
.hs-body-explainer img { width: 100%; height: auto; }
.hs-body-explainer figcaption { font-size: .8125rem; color: var(--hs-muted); margin-top: 12px; }
.hs-daily-examples { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 28px; }
.hs-daily-examples article { min-width: 0; border-bottom: 1px solid var(--hs-line); }
.hs-daily-examples h3 { margin-top: 18px; }
.hs-daily-examples article>p:last-child { font-size: .875rem; color: var(--hs-muted); }
.hs-daily-examples blockquote { margin: 0 0 16px; font-size: 1rem; font-weight: 650; }
.hs-treatment-map { margin: 28px 0 0; }
.hs-treatment-map>figcaption { color: var(--hs-muted); font-size: .8125rem; margin-bottom: 14px; }
.hs-treatment-map-top { padding: 16px; background: var(--hs-accent-soft); text-align: center; font-weight: 650; border-block: 1px solid var(--hs-line); }
.hs-treatment-map-branches { display: grid; grid-template-columns: 1fr 32px 1fr; gap: 16px; align-items: center; padding: 16px 0 28px; }
.hs-treatment-map-branches>div { min-width: 0; }
.hs-treatment-map-branches img { margin-bottom: 16px; }
.hs-treatment-map-branches>span { color: var(--hs-blue); font-size: 1.5rem; text-align: center; }
.hs-treatment-map-branches h3 { margin-bottom: 8px; }
.hs-treatment-map-branches p { margin-bottom: 4px; }
.hs-treatment-map-branches div>span { font-size: .875rem; color: var(--hs-muted); }
.hs-treatment-map-base { padding: 18px 0; border-block: 2px solid var(--hs-blue); text-align: center; font-weight: 650; }
.hs-treatment-map-review { color: var(--hs-blue); text-align: center; font-size: .9375rem; }
.hs-treatment-options>article { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 20px; padding: 28px 0; border-bottom: 1px solid var(--hs-line); }
.hs-treatment-number { font-size: 1.5rem; color: var(--hs-blue); }
.hs-treatment-options h3 { font-size: 1.25rem; }
.hs-treatment-options dl { margin: 18px 0 0; border-left: 2px solid var(--hs-line); padding-left: 16px; }
.hs-treatment-options dt { color: var(--hs-muted); font-size: .8125rem; }
.hs-treatment-options dd { margin: 6px 0 0; }
.hs-question-examples { counter-reset: question; list-style: none; padding: 0; }
.hs-question-examples li { counter-increment: question; display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 12px; padding: 18px 0; margin: 0; border-bottom: 1px solid var(--hs-line); }
.hs-question-examples li::before { content: counter(question,decimal-leading-zero); color: var(--hs-blue); }
.hs-treatment-guide-link { display: flex; gap: 16px; justify-content: space-between; flex-wrap: wrap; padding: 18px 0; margin: 24px 0; border-block: 1px solid var(--hs-line); }
.hs-treatment-guide-link p { margin: 0; font-size: .875rem; }
.hs-treatment-example { margin-top: 20px; }
.hs-treatment-example summary { padding: 12px 0; color: var(--hs-blue); }
.hs-treatment-example>.hs-example-screen { margin-top: 16px; max-width: 520px; }
@media (max-width:700px) {
  .hs-lesson-pair,.hs-body-explainer,.hs-daily-examples { grid-template-columns: 1fr; gap: 24px; }
  .hs-symptom-diagrams { gap: 24px 16px; }
  .hs-symptom-diagrams h3 { font-size: 1rem; }
  .hs-symptom-diagrams p { font-size: .875rem; }
  .hs-daily-examples .hs-lesson-photo img { aspect-ratio: 16/9; }
  .hs-treatment-map-branches { gap: 10px; grid-template-columns: 1fr 20px 1fr; }
  .hs-treatment-map-branches h3 { font-size: 1rem; }
  .hs-treatment-map-branches p,.hs-treatment-map-branches div>span { font-size: .875rem; }
  .hs-treatment-options>article { grid-template-columns: 30px minmax(0,1fr); gap: 12px; }
}

.support-hero {
  padding: 36px 0;
  background: var(--hs-soft);
}

.support-hero__inner,.support-content {
  padding-inline: var(--hs-gutter);
}

.support-content {
  padding-block: 36px;
}

.support-title {
  font-size: var(--hs-title);
}

.support-eyebrow {
  font-size: .8125rem;
  color: var(--hs-blue);
  margin-bottom: 12px;
}

.support-summary {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 24px;
  margin-bottom: 40px;
}

.support-summary__item {
  display: flex;
  gap: 12px;
  padding: 18px 0;
  border-top: 1px solid var(--hs-line);
}

.support-summary__item>span {
  font-weight: 650;
  color: var(--hs-blue);
}

.policy-section {
  padding: 28px 0;
  border-bottom: 1px solid var(--hs-line);
}

.policy-section h2 {
  font-size: 1.375rem;
}

.policy-section p:last-child {
  margin-bottom: 0;
}

.policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 28px 0;
}

.policy-links a {
  min-height: 36px;
}

.faq-tools {
  padding: 24px var(--hs-gutter);
  border-bottom: 1px solid var(--hs-line);
  background: white;
}

.faq-search-wrap {
  position: relative;
}

.faq-search-wrap>span {
  display: none;
}

.faq-categories {
  margin-bottom: 0;
}

.faq-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: .875rem;
  color: var(--hs-muted);
  margin: 16px 0 24px;
}

.support-main .faq-item {
  border-bottom: 1px solid var(--hs-line);
}

.faq-question {
  display: grid;
  grid-template-columns: 28px 1fr 24px;
  gap: 12px;
  width: 100%;
  border: 0;
  padding: 22px 0;
  text-align: left;
  background: white;
}

.faq-number,.faq-question__number {
  color: var(--hs-blue);
}

.faq-toggle,.faq-question__toggle {
  font-size: 1.25rem;
  text-align: center;
}

.faq-question[aria-expanded=true] :is(.faq-toggle,.faq-question__toggle) {
  transform: rotate(45deg);
}

.faq-answer {
  padding: 0 36px 24px 40px;
  color: var(--hs-muted);
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

.faq-empty {
  display: none;
  padding: 32px 0;
  color: var(--hs-muted);
}

.faq-contact {
  padding: 28px 0;
  margin-top: 28px;
  border-top: 1px solid var(--hs-line);
}

.contact-card {
  padding: 28px 0;
  border-bottom: 1px solid var(--hs-line);
}

.contact-card h2 {
  font-size: 1.375rem;
}

.contact-form {
  display: grid;
  gap: 12px;
}

.contact-form fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

.contact-topics {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin-top: 16px;
}

.contact-topic {
  display: flex;
  align-items: start;
  gap: 8px;
  min-height: 48px;
  padding: 12px;
  border: 1px solid var(--hs-line);
  cursor: pointer;
  font-size: .9375rem;
}

.contact-topic:has(input:checked) {
  border-color: var(--hs-blue);
  background: var(--hs-accent-soft);
}

.contact-help,.contact-count {
  font-size: .875rem;
  color: var(--hs-muted);
}

.contact-count {
  text-align: right;
}

.contact-check {
  display: flex;
  align-items: start;
  gap: 8px;
  margin: 24px 0;
}

.contact-check span {
  flex: 1;
}

.contact-required {
  font-size: .8125rem;
  color: var(--hs-danger);
  margin-left: 12px;
}

.contact-optional {
  font-size: .8125rem;
  color: var(--hs-muted);
  margin-left: 12px;
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.contact-error,.contact-confirm,.contact-complete {
  display: none;
}

.contact-error.is-visible,.contact-confirm.is-visible,.contact-complete.is-visible {
  display: block;
}

.contact-error {
  color: var(--hs-danger);
  margin: 8px 0;
}

.contact-confirm,.contact-complete {
  padding: 28px 0;
}

.confirm-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid var(--hs-line);
}

.confirm-row dt {
  font-weight: 650;
}

.confirm-row dd {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

@media (max-width:700px) {
  .support-summary {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .faq-answer {
    padding: 0 0 24px 40px;
  }

  .contact-topics {
    grid-template-columns: 1fr;
  }

  .confirm-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

.v25-wizard--visit {
  --hs-accent: var(--hs-pink);
  --hs-accent-soft: #fff1f6;
}

.v25-wizard-header {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  gap: 12px;
  padding: 16px var(--hs-gutter);
  border-bottom: 1px solid var(--hs-line);
}

.v25-wizard-header h1 {
  font-size: 1.125rem;
  text-align: center;
  margin: 0;
}

.v25-icon-button {
  padding: 8px;
  border: 0;
}

.v25-icon-button img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.v25-progress {
  padding: 20px var(--hs-gutter) 0;
}

.v25-progress-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: .875rem;
  color: var(--hs-muted);
  margin-bottom: 12px;
}

.v25-progress-track {
  display: flex;
  gap: 5px;
}

.v25-progress-segment {
  height: 4px;
  flex: 1;
  background: var(--hs-line);
}

.v25-progress-segment.is-current,.v25-progress-segment.is-done {
  background: var(--hs-accent);
}

.v25-wizard-main {
  padding: 28px var(--hs-gutter) 130px;
}

.v25-question {
  display: none;
}

.v25-question.is-active {
  display: flex;
  flex-direction: column;
}

.v25-question h2 {
  margin-bottom: 12px;
}

.v25-question-lead {
  color: var(--hs-muted);
}

.v25-question-photo {
  display: none;
}

.v25-step-label {
  display: none;
}

.v25-date-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin: 8px 0 24px;
}

.v25-date-row .v25-input {
  width: auto;
  flex: 1;
  max-width: 260px;
}

.v25-choice-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}

.v25-choice {
  justify-content: start;
  text-align: left;
  min-height: 60px;
  padding: 14px 16px;
  font-weight: 500;
}

.v25-choice img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex: 0 0 32px;
}

.v25-choice-grid[data-single="condition"] .v25-choice img {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
}

.v25-choice--wide {
  grid-column: 1/-1;
}

.v25-choice[aria-pressed=true] {
  border-color: var(--hs-accent);
  background: var(--hs-accent-soft);
  color: var(--hs-accent);
}

.v25-choice[aria-pressed=true]::after {
  content: '✓';
  margin-left: auto;
  font-weight: 700;
}

.v25-wizard-duck {
  display: none;
}

.v25-inline-card {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 24px 0;
  margin: 24px 0;
  border-block: 1px solid var(--hs-line);
}

.v25-inline-card>img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.v25-inline-card p {
  font-size: .875rem;
  margin: 6px 0 0;
  color: var(--hs-muted);
}

.v25-counter {
  text-align: right;
  font-size: .8125rem;
  color: var(--hs-muted);
}

.v25-question textarea {
  margin-top: 8px;
}

.v25-summary-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--hs-line);
}

.v25-summary-row small {
  font-weight: 650;
}

.v25-summary-row>div {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.v25-wizard-actions {
  position: fixed;
  z-index: 850;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: var(--hs-page-width);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px;
  padding: 16px var(--hs-gutter) calc(16px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--hs-line);
  background: white;
}

.v25-wizard-actions button {
  min-height: 52px;
}

.v25-complete {
  text-align: left;
  padding: 16px 0;
}

.v25-complete>img {
  width: 160px;
  height: 140px;
  object-fit: contain;
  margin: 0 auto 24px;
}

.v25-complete-actions {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
}

.v25-complete-actions>* {
  width: 100%;
}

.v25p-primary-next {
  grid-column: 1/-1;
}

.v25p-secondary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  grid-column: 1/-1;
}

.v25p-secondary-actions a {
  flex: 1;
}

.v25p-more-actions {
  grid-column: 1/-1;
}

.v25p-more-actions a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-right: 16px;
}

.v25-wizard-main:has(.v25-question.is-active:not([data-step='1'])) .hs-flow-help {
  display: none;
}

.v25e-pain-picker {
  display: grid;
  grid-template-columns: minmax(0,1fr) 100px;
  gap: 16px;
  width: min(100%,540px);
  margin: 16px auto;
}

.v25e-pain-visual {
  height: 220px;
}

.v25e-pain-duck {
  width: 100%;
  height: 100%;
  background: center/contain no-repeat;
}

.v25e-pain-reading {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.v25e-pain-reading strong {
  font-size: 3rem;
  color: var(--hs-accent);
}

.v25e-pain-reading span {
  font-size: .875rem;
}

.v25e-pain-slider,.v25e-pain-scale,.v25e-pain-caption,.hs-pain-skip {
  grid-column: 1/-1;
}

.v25e-pain-scale {
  display: flex;
  justify-content: space-between;
  font-size: .875rem;
  color: var(--hs-muted);
}

.v25e-pain-caption {
  text-align: center;
  font-size: .9375rem;
}

.hs-pain-skip {
  border: 0;
  text-decoration: underline;
  color: var(--hs-blue);
}

.v25e-pain-picker[data-unanswered=true] .v25e-pain-reading strong {
  font-size: 1.5rem;
}

.v25e-pain-picker[data-unanswered=true] .v25e-pain-reading>span {
  display: none;
}

@media (max-width:700px) {
  .v25-question-photo {
    height: 135px;
  }

  .v25-summary-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .v25-complete-actions {
    grid-template-columns: 1fr;
  }

  .v25-inline-card {
    grid-template-columns: 36px 1fr;
    gap: 12px;
  }

  .v25-inline-card>button {
    grid-column: 1/-1;
  }

  .v25-choice {
    padding: 12px;
    gap: 8px;
  }

  .v25e-pain-visual {
    height: 180px;
  }
}

.v25e-pain-duck[data-stage="1"] {
  background-image: url('../characters/pain/pain-scale-duck-1-v2.png');
}

.v25e-pain-duck[data-stage="2"] {
  background-image: url('../characters/pain/pain-scale-duck-2.png');
}

.v25e-pain-duck[data-stage="3"] {
  background-image: url('../characters/pain/pain-scale-duck-3.png');
}

.v25e-pain-duck[data-stage="4"] {
  background-image: url('../characters/pain/pain-scale-duck-4.png');
}

.v25e-pain-duck[data-stage="5"] {
  background-image: url('../characters/pain/pain-scale-duck-5.png');
}

.v25e-pain-slider-label,.v25e-pain-slider-row,.v25e-pain-ticks {
  grid-column: 1/-1;
}

.v25e-pain-slider-label {
  font-size: .875rem;
}

.v25e-pain-slider-row {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  gap: 12px;
  align-items: center;
}

.v25e-pain-ticks {
  display: flex;
  justify-content: space-between;
  text-align: center;
  font-size: .875rem;
}

.v25e-pain-step {
  padding: 8px;
}

.v25g-doctor-page {
  --hs-accent: var(--hs-green);
  --hs-accent-soft: #f0f7f3;
}

.v25p-care-flow {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  list-style: none;
  gap: 16px;
  padding: 20px var(--hs-gutter);
  margin: 0;
}

.v25p-care-flow li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 4px 8px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--hs-line);
  font-size: .875rem;
}

.v25p-care-flow small {
  grid-column: 2;
  font-size: .8125rem;
}

.v25p-care-flow li.is-current {
  border-bottom: 2px solid var(--hs-green);
}

.v25p-care-flow li.is-next {
  border-bottom: 2px dashed var(--hs-line);
}

.v25f-doctor-hero {
  display: grid;
  grid-template-columns: minmax(0,1fr) 160px;
  align-items: center;
  gap: 24px;
  padding: 28px var(--hs-gutter);
  border-bottom: 1px solid var(--hs-line);
}

.v25f-doctor-hero>div {
  min-width: 0;
}

.v25f-doctor-hero>img {
  width: 160px;
  height: 140px;
  object-fit: contain;
}

.v25f-doctor-hero .intro-eyebrow {
  display: none;
}

.hs-range-form {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  margin-top: 24px;
}

.hs-range-form label {
  font-size: .875rem;
  min-width: 0;
}

.hs-range-form input {
  margin-top: 6px;
}

.hs-range-form button {
  grid-column: 1/-1;
  background: var(--hs-green);
  border-color: var(--hs-green);
  color: white;
}

.v25p-summary-controls {
  padding: 28px var(--hs-gutter);
}

.hs-share-details {
  margin: 0 var(--hs-gutter);
  padding: 20px 0;
  border-bottom: 1px solid var(--hs-line);
}

.hs-share-details>summary {
  min-height: 32px;
  font-weight: 650;
  color: var(--hs-green);
}

.hs-share-details[open]>summary {
  margin-bottom: 24px;
}

.v25p-summary-next {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 20px 0;
}

.v25p-summary-next a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 0;
  text-decoration: none;
  border-bottom: 1px solid var(--hs-line);
  font-weight: 650;
  font-size: .9375rem;
}

.v25p-summary-next img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.v25p-summary-next small {
  display: block;
  font-size: .8125rem;
}

.v25p-action-heading {
  font-size: 1.125rem;
  margin-top: 28px;
}

.v25f-doctor-actions {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}

.v25f-doctor-actions :is(a,button) {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 10px;
  min-height: 52px;
  border: 1px solid var(--hs-line);
  padding: 12px;
  color: var(--hs-green);
  font-weight: 650;
  font-size: .9375rem;
  text-decoration: none;
}

.v25f-doctor-actions img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

#summaryRoot {
  padding: 0 var(--hs-gutter);
}

.v25f-doctor-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 28px;
}

.v25f-summary-card {
  min-width: 0;
  padding: 28px 0;
  border-bottom: 1px solid var(--hs-line);
}

.v25f-summary-card h2 {
  font-size: 1.25rem;
  color: var(--hs-green);
}

.v25f-summary-card--wide {
  grid-column: 1/-1;
}

.v25q-doctor-first {
  border-top: 2px solid var(--hs-green);
  margin-top: 28px;
}

.v25q-doctor-first li {
  font-size: 1.0625rem;
  margin-bottom: 12px;
}

.v25f-stat-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
  margin: 24px 0;
}

.v25f-stat {
  padding: 16px 0;
  border-top: 1px solid var(--hs-line);
}

.v25f-stat strong {
  display: block;
  font-size: 1.75rem;
  color: var(--hs-green);
}

.v25f-stat span {
  font-size: .8125rem;
  color: var(--hs-muted);
}

.v25f-timeline article {
  padding: 0 0 20px 20px;
  margin-bottom: 20px;
  border-left: 2px solid var(--hs-line);
}

.v25m-bullet-list {
  padding-left: 1.25em;
}

.v25m-bullet-list li {
  overflow-wrap: anywhere;
}

@media (max-width:700px) {
  .v25f-doctor-hero {
    grid-template-columns: 1fr;
  }

  .v25f-doctor-hero>img {
    display: none;
  }

  .v25p-care-flow {
    gap: 8px;
  }

  .v25p-care-flow li {
    grid-template-columns: 1fr;
  }

  .v25p-care-flow small {
    grid-column: 1;
  }

  .v25p-care-flow li>span {
    display: none;
  }

  .v25f-doctor-grid {
    grid-template-columns: 1fr;
  }

  .v25f-stat-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .v25f-doctor-actions {
    grid-template-columns: 1fr;
  }
}

/* Generic tool classes are scoped so they cannot change article or chart layout. */

.v24c-function-page .app>main {
  padding: 28px var(--hs-gutter) 60px;
}

.v24c-function-page .app>main .hs-breadcrumb {
  padding: 0 0 24px;
}

.v24c-function-page .tabs {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  padding: 20px var(--hs-gutter) 0;
}

.tabs a {
  display: block;
  text-align: center;
  min-height: 48px;
  padding: 10px 4px;
  color: var(--hs-muted);
  text-decoration: none;
  border-bottom: 2px solid transparent;
}

.tabs a.active {
  color: var(--hs-blue);
  border-color: currentColor;
  background: var(--hs-soft);
}

.v24c-function-page :where(.card,.record,.item,.detail,.privacy) {
  padding: 28px 0;
  border-bottom: 1px solid var(--hs-line);
  margin: 0 0 16px;
}

.v24c-function-page .card h3 {
  margin-bottom: 12px;
}

.v24c-function-page .card>p {
  color: var(--hs-muted);
}

.v24c-function-page :where(.head,.record-top,.item-top) {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 16px;
}

.v24c-function-page .head h2 {
  margin-bottom: 0;
}

.v24c-function-page :where(.count,.meta,.eyebrow,.memo,.date,.badge,.tag,.pain) {
  font-size: .875rem;
}

.v24c-function-page :where(.count,.meta,.memo) {
  color: var(--hs-muted);
}

.v24c-function-page .date {
  font-weight: 650;
}

.v24c-function-page :where(.tags,.tagrow) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.v24c-function-page .tag {
  padding: 4px 0;
  margin-right: 8px;
  color: var(--hs-blue);
}

.v24c-function-page .empty {
  padding: 32px 0;
  color: var(--hs-muted);
}

.duck-empty {
  width: 160px;
  height: 140px;
  object-fit: contain;
  margin: 0 0 20px;
}

.v24c-function-page .empty .mark {
  font-size: 2rem;
}

.v24c-function-page .list {
  display: grid;
  gap: 0;
}

.record-actions>* {
  flex: 1;
}

.v24c-function-page .fab {
  display: flex;
  margin: 0 var(--hs-gutter) 40px;
  width: calc(100% - 2 * var(--hs-gutter));
  position: static;
}

.v24c-function-page :where(.metrics,.stats) {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  margin: 24px 0;
}

.v24c-function-page :where(.metric,.stats>div) {
  padding: 16px 0;
  border-top: 1px solid var(--hs-line);
}

.v24c-function-page :where(.metric b,.stats b) {
  display: block;
  font-size: 1.75rem;
  line-height: 1.4;
}

.metric small,.metric span {
  display: block;
  font-size: .875rem;
  color: var(--hs-muted);
}

.function-history .summary,.function-treatment .summary {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
  margin: 24px 0;
}

.function-history .summary>div {
  padding: 16px 0;
  border-top: 1px solid var(--hs-line);
}

.function-history .summary b {
  display: block;
  font-size: 1.5rem;
}

.function-history .summary span {
  font-size: .875rem;
  color: var(--hs-muted);
}

.function-treatment {
  --hs-accent: var(--hs-yellow);
  --hs-accent-soft: #faf6ec;
}

.function-treatment .log-actions .done {
  background: var(--hs-yellow);
  border-color: var(--hs-yellow);
  color: white;
}

.function-treatment .summary .metric span {
  font-size: .8125rem;
}

.function-treatment .timeline-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--hs-line);
}

.function-treatment .timeline-date {
  font-size: .875rem;
  color: var(--hs-muted);
}

.function-treatment .status {
  font-size: .8125rem;
  font-weight: 650;
}

.status.done {
  color: var(--hs-green);
}

.status.skip {
  color: var(--hs-danger);
}

.status.later {
  color: var(--hs-yellow);
}

.function-data-settings .status {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
  margin: 28px 0;
}

.function-data-settings .status>div {
  padding: 16px 0;
  border-top: 1px solid var(--hs-line);
}

.function-data-settings .status b {
  display: block;
  font-size: 1.5rem;
}

.function-data-settings .status span {
  font-size: .875rem;
  color: var(--hs-muted);
}

.danger-zone {
  border-color: var(--hs-danger);
}

/* Calendar and chart geometry. */

.month-nav {
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  gap: 12px;
  align-items: center;
  margin: 12px 0 24px;
}

.month-nav h2 {
  font-size: 1.4rem;
  text-align: center;
  margin: 0;
}

.month-nav button {
  padding: 8px;
  font-size: 1.25rem;
}

.week,.days {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
  gap: 4px;
}

.week>div {
  text-align: center;
  font-size: .875rem;
  color: var(--hs-muted);
  padding: 8px 0;
}

.day {
  display: block;
  aspect-ratio: 1;
  min-height: 44px;
  position: relative;
  padding: 6px;
  text-align: center;
  border: 1px solid transparent;
}

.day.out {
  color: #8897a0;
}

.day.today {
  border-color: var(--hs-blue);
}

.day.has {
  background: #edf6f0;
}

.day.sel {
  border: 2px solid var(--hs-blue);
  color: var(--hs-blue);
}

.day .dot {
  position: absolute;
  bottom: 5px;
  left: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hs-green);
  transform: translateX(-50%);
}

.day .dot.high {
  background: var(--hs-pink);
}

.legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: .8125rem;
  color: var(--hs-muted);
  margin: 20px 0;
}

.legend i {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--hs-green);
  margin-right: 6px;
}

.legend i.high {
  background: var(--hs-pink);
}

.function-trends .chart {
  display: block;
  width: 100%;
  height: 200px;
}

.chart .axis {
  font-size: 10px;
  fill: var(--hs-muted);
}

.chart .grid {
  stroke: var(--hs-line);
  stroke-width: 1;
}

.chart .line {
  fill: none;
  stroke: var(--hs-pink);
  stroke-width: 3;
}

.chart .point {
  fill: white;
  stroke: var(--hs-pink);
  stroke-width: 2;
}

.chart .bar {
  fill: #71aabd;
}

.function-trends .summary {
  padding: 20px 0;
  border-block: 1px solid var(--hs-line);
}

/* Dialogs are hidden until their existing JS opens them. */

.modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  padding: 20px;
  background: #183e517a;
  align-items: center;
  justify-content: center;
}

.modal.show {
  display: flex;
}

.sheet {
  width: min(540px,100%);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  background: white;
  padding: 28px;
}

.sheet-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.sheet-actions>* {
  flex: 1;
  min-width: 120px;
}

.hs-dialog-open {
  overflow: hidden;
}

.toast {
  position: fixed;
  z-index: 2200;
  left: 50%;
  bottom: 100px;
  transform: translateX(-50%);
  max-width: calc(100% - 40px);
  width: max-content;
  background: var(--hs-ink);
  color: white;
  font-size: .875rem;
  padding: 12px 20px;
  opacity: 0;
  pointer-events: none;
}

.toast.show {
  opacity: 1;
}

.menu-panel {
  display: none;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 950;
  background: white;
  border: 1px solid var(--hs-line);
  width: 260px;
  padding: 12px;
}

.menu-panel.show {
  display: grid;
}

.menu-panel button {
  justify-content: start;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--hs-line);
}

.function-record-detail .menu {
  position: relative;
}

.hs-page-actions {
  display: flex;
  justify-content: end;
  gap: 12px;
  padding: 16px var(--hs-gutter);
  border-bottom: 1px solid var(--hs-line);
}

.function-record-detail .photos {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
}

.function-record-detail .photos img {
  width: 100%;
  object-fit: contain;
}

.function-photo-manager .upload {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
  margin: 24px 0;
}

.upload label {
  display: grid;
  gap: 12px;
  border: 1px solid var(--hs-line);
  padding: 16px;
  min-width: 0;
  font-weight: 650;
}

.upload input {
  width: 100%;
  font-size: .8125rem;
}

.function-photo-manager #grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
}

.function-photo-manager #grid img {
  width: 100%;
  height: 180px;
  object-fit: contain;
}

.function-photo-manager .photo {
  border-bottom: 1px solid var(--hs-line);
  padding-bottom: 16px;
}

.function-photo-manager .photo button {
  margin-top: 10px;
  width: 100%;
}

.function-edit-record .nav,.function-photo-manager .nav {
  position: fixed;
  z-index: 850;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: var(--hs-page-width);
  padding: 16px var(--hs-gutter) calc(16px + env(safe-area-inset-bottom));
  background: white;
  border-top: 1px solid var(--hs-line);
}

.function-edit-record .nav button,.function-photo-manager .nav button {
  width: 100%;
  background: var(--hs-blue);
  border-color: var(--hs-blue);
  color: white;
}

.function-edit-record .app>main,.function-photo-manager .app>main {
  padding-bottom: 130px;
}

.function-reminders .status {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.function-reminders .status .help {
  display: block;
}

.function-ai .modes {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}

.function-ai .mode {
  display: block;
  text-align: left;
  padding: 18px;
}

.function-ai .mode strong,.function-ai .mode span {
  display: block;
}

.function-ai .mode span {
  font-size: .875rem;
  color: var(--hs-muted);
}

.function-ai .mode.sel {
  border-color: var(--hs-blue);
  background: var(--hs-soft);
}

.function-ai .loading,.function-ai .result,.function-ai .editor {
  display: none;
}

.function-ai .loading.show,.function-ai .result.show,.function-ai .editor.show {
  display: block;
}

.function-ai .resultbox,.function-ai .record-preview {
  white-space: pre-wrap;
  padding: 24px 0;
  border-block: 1px solid var(--hs-line);
  margin: 20px 0;
}

.function-ai .api-status {
  font-size: .875rem;
  padding: 16px 0;
  border-bottom: 1px solid var(--hs-line);
}

.function-ai .consent {
  display: flex;
  gap: 12px;
  align-items: start;
}

.function-ai .spinner {
  width: 24px;
  height: 24px;
  border: 2px solid var(--hs-line);
  border-top-color: var(--hs-blue);
  border-radius: 50%;
  animation: hs-spin 1s linear infinite;
}

.function-ai .card img[src*="characters"] {
  width: 120px;
  height: 100px;
  object-fit: contain;
}

@keyframes hs-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width:700px) {
  .function-data-settings .status {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .function-treatment .timeline-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .function-photo-manager .upload {
    grid-template-columns: 1fr;
  }

  .function-photo-manager #grid {
    grid-template-columns: 1fr;
  }

  .function-ai .modes {
    grid-template-columns: 1fr;
  }

  .day {
    min-height: 44px;
    padding: 4px;
  }

  .function-history .summary,.function-treatment .summary {
    gap: 12px;
  }
}

.function-body-map .map-main {
  padding-bottom: 130px;
}

.map-intro {
  margin-bottom: 28px;
}

.map-intro p {
  color: var(--hs-muted);
}

.map-card {
  border-block: 1px solid var(--hs-line);
  padding: 20px 0;
}

.map-segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 28px;
}

.map-segmented button.active {
  background: var(--hs-blue);
  border-color: var(--hs-blue);
  color: white;
}

.anatomy-panel {
  display: none;
}

.anatomy-panel.is-active {
  display: block;
}

.anatomy-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(100px,160px) minmax(0,1fr);
  gap: 12px;
  align-items: center;
  max-width: 650px;
  margin: auto;
}

.anatomy-figure {
  margin: 0;
}

.anatomy-image-wrap {
  position: relative;
  width: 100%;
  max-width: 145px;
  margin: auto;
}

.anatomy-image {
  width: 100%;
  height: auto;
}

.region-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.region-option {
  display: flex;
  justify-content: space-between;
  gap: 4px;
  min-height: 48px;
  padding: 10px 8px;
  font-size: .875rem;
  font-weight: 500;
  text-align: left;
}

.region-symbol::before {
  content: '+';
  font-size: 1rem;
}

.region-option[aria-pressed=true] {
  border-color: var(--hs-pink);
  color: var(--hs-pink);
  background: #fff1f6;
}

.region-option[aria-pressed=true] .region-symbol::before {
  content: '✓';
}

.anatomy-image-wrap .body-region {
  position: absolute;
  display: block;
  border: 1px solid transparent;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
}

.anatomy-image-wrap .body-region.is-selected {
  opacity: 1;
  background: #e84a7840;
  border-color: var(--hs-pink);
}

.map-legend {
  font-size: .8125rem;
  color: var(--hs-muted);
  margin: 24px 0;
}

.selected-section {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--hs-line);
}

.selected-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 0;
  min-height: 60px;
}

.selected-list.is-empty {
  color: var(--hs-muted);
  font-size: .9375rem;
}

.selected-chip {
  color: var(--hs-pink);
  border-color: #db95b3;
  background: #fff8fb;
  font-size: .875rem;
}

.selected-chip span {
  margin-left: 8px;
}

.map-note {
  display: flex;
  gap: 16px;
  align-items: start;
  padding: 20px 0;
  font-size: .875rem;
  color: var(--hs-muted);
}

.map-note__icon {
  display: none;
}

.map-actions {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px;
  position: fixed;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  z-index: 850;
  width: var(--hs-page-width);
  padding: 16px var(--hs-gutter) calc(16px + env(safe-area-inset-bottom));
  background: white;
  border-top: 1px solid var(--hs-line);
}

@media (max-width:700px) {
  .anatomy-layout {
    gap: 8px;
    grid-template-columns: minmax(0,1fr) 106px minmax(0,1fr);
  }

  .region-stack {
    gap: 12px;
  }

  .region-option {
    font-size: .8125rem;
    padding: 10px 6px;
    min-height: 48px;
  }
}

.body-region--front-neck {
  left: 40%;
  top: 10%;
  width: 20%;
  height: 8%;
}

.body-region--front-right-axilla {
  left: 17%;
  top: 27%;
  width: 22%;
  height: 10%;
}

.body-region--front-left-axilla {
  right: 17%;
  top: 27%;
  width: 22%;
  height: 10%;
}

.body-region--front-right-underbreast {
  left: 27%;
  top: 34%;
  width: 23%;
  height: 9%;
  border-radius: 48%;
}

.body-region--front-left-underbreast {
  right: 27%;
  top: 34%;
  width: 23%;
  height: 9%;
  border-radius: 48%;
}

.body-region--front-right-groin {
  left: 38%;
  top: 48%;
  width: 17%;
  height: 9%;
}

.body-region--front-left-groin {
  right: 38%;
  top: 48%;
  width: 17%;
  height: 9%;
}

.body-region--front-right-thigh {
  left: 28%;
  top: 57%;
  width: 24%;
  height: 18%;
  border-radius: 44%;
}

.body-region--front-left-thigh {
  right: 28%;
  top: 57%;
  width: 24%;
  height: 18%;
  border-radius: 44%;
}

.body-region--back-right-axilla {
  right: 17%;
  top: 27%;
  width: 22%;
  height: 10%;
}

.body-region--back-left-axilla {
  left: 17%;
  top: 27%;
  width: 22%;
  height: 10%;
}

.body-region--upper-back {
  left: 30%;
  top: 21%;
  width: 40%;
  height: 21%;
  border-radius: 38%;
}

.body-region--right-buttock {
  right: 29%;
  top: 47%;
  width: 25%;
  height: 12%;
}

.body-region--left-buttock {
  left: 29%;
  top: 47%;
  width: 25%;
  height: 12%;
}

.body-region--back-right-thigh {
  right: 28%;
  top: 58%;
  width: 24%;
  height: 18%;
  border-radius: 44%;
}

.body-region--back-left-thigh {
  left: 28%;
  top: 58%;
  width: 24%;
  height: 18%;
  border-radius: 44%;
}

.body-region--back-head {
  left: 39%;
  top: 7%;
  width: 22%;
  height: 12%;
}

.body-region--back-neck {
  left: 42%;
  top: 19%;
  width: 16%;
  height: 9%;
}

.utility-wrap {
  padding: 48px var(--hs-gutter);
}

.utility-card {
  padding: 24px 0;
}

.utility-card h1 {
  margin-top: 28px;
}

.utility-card>img {
  width: 180px;
  height: 150px;
  object-fit: contain;
}

.v25b-utility-photo img {
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.utility-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin: 24px 0;
}

.launch-page>.wrap,.admin-preview>.wrap {
  padding: 32px var(--hs-gutter);
}

.launch-page .grid,.admin-preview .grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
}

.launch-page .card,.admin-preview .card {
  padding: 24px 0;
  border-bottom: 1px solid var(--hs-line);
}

.launch-page .row,.admin-preview .row {
  align-items: center;
}

.launch-page .status,.admin-preview .status {
  font-size: .875rem;
}

.admin-preview textarea {
  min-height: 160px;
}

.admin-preview pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-preview .field {
  margin: 16px 0;
}

@media (max-width:700px) {
  .launch-page .grid,.admin-preview .grid {
    grid-template-columns: 1fr;
  }
}

.hs-review .hs-page-shell { padding: 32px var(--hs-gutter); }
.hs-review .grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.hs-review .card img { width: 100%; height: 300px; object-fit: contain; object-position: top; }
@media (max-width: 700px) { .hs-review .grid { grid-template-columns: 1fr; } }

@media print {
  @page {
    margin: 14mm;
  }

  body {
    padding: 0;
    background: white;
    font-size: 11pt;
  }

  .v25-header,.v25-footer,.v25n-desktop-rails,.v25d-bottom-nav,.v25d-menu,.v25-context-nav,.hs-breadcrumb,.v25p-skip-link,.hs-range-form,.v25p-care-flow,.v25p-summary-controls,.tabs,.range,.actions,.fab,.v25-wizard-actions,.map-actions,.nav {
    display: none;
  }

  .hs-page-shell {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .v25f-doctor-hero,#summaryRoot,.v24c-function-page .app>main {
    padding: 0;
  }

  .v25f-doctor-hero {
    display: block;
    border: 0;
  }

  .v25f-doctor-hero>img {
    display: none;
  }

  .v25f-doctor-grid {
    display: block;
  }

  .v25f-summary-card,.card {
    break-inside: avoid;
    padding: 16px 0;
  }

  .v25f-summary-card h2 {
    font-size: 14pt;
  }

  .v25f-summary-card p,.v25f-summary-card li {
    font-size: 11pt;
  }

  .v25f-stat-grid {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }

  .v25q-doctor-first {
    margin-top: 20px;
  }

  a {
    color: inherit;
    text-decoration: none;
  }
}
