/* Shared production compositions. Tokens and base controls live in tokens/components. */
.build-review-bar { padding:8px 16px; background:var(--jh-brand-soft); color:var(--jh-brand); text-align:center; font-size:var(--jh-text-xs); }
.brand-logo { display:block; width:180px; height:auto; max-width:100%; }
.brand > span { margin-top:12px; }
.shell-footer a { gap:8px; }
.site-header,.site-footer { max-width:1328px; margin:auto; padding:32px 48px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.logo-link { display:inline-flex; align-items:center; min-height:44px; flex-shrink:0; }
.public-nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px 32px; }
.public-nav a,.site-footer a { min-width:44px; min-height:44px; display:inline-flex; align-items:center; color:var(--jh-text); font-size:var(--jh-text-sm); text-decoration:none; }
.public-nav a:hover,.site-footer a:hover { color:var(--jh-brand); text-decoration:underline; }
.public-nav .account-link { gap:8px; color:var(--jh-brand); }
.public-main { max-width:1328px; padding:48px 48px 80px; margin:auto; }
.public-main > .page-head { margin-block:16px 48px; max-width:760px; }
.public-main > .page-head h1 { font-size:clamp(2.25rem,4vw,3.5rem); }
.site-footer { border-top:1px solid var(--jh-border); align-items:flex-start; padding-block:40px; }
.site-footer p { margin-top:12px; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:8px 24px; }
.hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:var(--jh-space-12); align-items:center; padding-bottom:var(--jh-space-16); }
.hero-copy { display:grid; gap:var(--jh-space-6); }
.hero-copy .eyebrow { margin:0; }
.hero h1 { font-size:clamp(2rem,3.5vw,2.5rem); line-height:1.15; }
.hero-copy>p { color:var(--jh-text-secondary); max-width:42ch; }
.hero-action { display:grid; gap:var(--jh-space-3); }
.hero .hero-note { color:var(--jh-text-secondary); font-size:var(--jh-text-sm); max-width:42ch; }
.assessment-feature { margin:0; display:grid; gap:var(--jh-space-4); width:100%; max-width:340px; justify-self:end; container-type:inline-size; }
.assessment-feature img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 42%; border-radius:var(--jh-radius-group); }
.assessment-feature figcaption { display:grid; gap:var(--jh-space-2); }
.assessment-feature h2 { font-size:var(--jh-text-base); }
.assessment-feature p { color:var(--jh-text-secondary); font-size:var(--jh-text-sm); }
.text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:var(--jh-text-sm); font-weight:500; }
.editorial-section { display:grid; grid-template-columns:1fr 1.2fr; gap:64px; border-top:1px solid var(--jh-border); padding-block:64px; }
.editorial-section h2,.closing-note h2 { font:400 clamp(1.75rem,3vw,2.5rem)/1.2 var(--jh-display-font); letter-spacing:-.02em; }
.process-list { list-style:none; margin:0; padding:0; }
.process-list li { display:grid; grid-template-columns:32px minmax(0,1fr); gap:24px; padding:24px 0; border-bottom:1px solid var(--jh-border); }
.process-list li:first-child { padding-top:0; }
.process-list li:last-child { border-bottom:0; padding-bottom:0; }
.process-list p { margin-top:8px; color:var(--jh-text-secondary); }
.step-number { color:var(--jh-brand); font-size:var(--jh-text-sm); font-variant-numeric:tabular-nums; padding-top:2px; }
.closing-note { display:grid; justify-items:start; gap:20px; border-top:1px solid var(--jh-border); padding-top:64px; }
.closing-note .eyebrow { margin:0; }
.closing-note p { color:var(--jh-text-secondary); }
.section-rule,.service-section { display:grid; gap:16px; border-top:1px solid var(--jh-border); padding-top:24px; }
.service-section p,.service-detail p { color:var(--jh-text-secondary); }
.service-detail { display:grid; gap:12px; }
.prose p+p,.prose p+h3,.prose h3+p { margin-top:16px; }
.auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px); gap:80px; padding:48px 0 80px; align-items:start; max-width:1040px; }
.auth-heading .page-head h1 { font-size:clamp(2.25rem,4vw,3.5rem); }
.auth-form { display:grid; gap:24px; }
.auth-options { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; align-items:center; font-size:var(--jh-text-sm); }
.auth-options a { display:inline-flex; align-items:center; min-height:44px; }
.empty-symbol { display:grid; place-items:center; width:48px; height:48px; color:var(--jh-brand); background:var(--jh-brand-soft); border-radius:var(--jh-radius-group); }
.empty-symbol .icon { width:24px; height:24px; }
.care-row .status { margin-top:12px; }
.search-form { display:grid; gap:8px; }
.search-control { display:flex; gap:12px; }
.search-control input { min-width:0; }
.search-control button { flex-shrink:0; }
.field-section { margin-top:20px; }
.field-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field-pair .field+.field { margin-top:0; }
.form-feedback { scroll-margin-top:24px; }
.preserved-lines { white-space:pre-wrap; }
.summary-copy { display:inline-grid; gap:4px; vertical-align:top; max-width:100%; }
.form-feedback:empty,.save-status:empty { display:none; }
.form-feedback ul { margin:12px 0 0; padding-left:20px; }
.form-feedback a { color:inherit; }
.save-status { min-height:1.5em; }
.form-steps { list-style:none; display:flex; gap:16px; margin:0; padding:0 0 24px; border-bottom:1px solid var(--jh-border); }
.form-steps li { display:flex; align-items:center; gap:8px; flex:1; min-width:0; font-size:var(--jh-text-sm); color:var(--jh-text-secondary); }
.form-steps li>span { display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; border:1px solid var(--jh-control-border); border-radius:50%; font-size:var(--jh-text-xs); }
.form-steps [aria-current] { color:var(--jh-brand); font-weight:600; }
.form-steps [aria-current]>span { background:var(--jh-brand); color:var(--jh-on-brand); border-color:var(--jh-brand); }
.form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-top:24px; border-top:1px solid var(--jh-border); }
.form-actions [data-step-next],.form-actions [data-submit-request] { margin-left:auto; }
.upload-section { display:grid; gap:16px; }
.upload-section .note { margin-top:0; }
.upload-section>.button { justify-self:start; }
.photo-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:16px; }
.photo-list:empty { display:none; }
.photo-list figure { margin:0; min-width:0; }
.photo-list img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; border-radius:var(--jh-radius-control); display:block; background:var(--jh-surface-subtle); }
.photo-list a { display:block; }
.photo-list figcaption { margin-top:8px; font-size:var(--jh-text-sm); color:var(--jh-text-secondary); }
.photo-list .button { padding-inline:0; }
.upload-result { padding-block:8px; font-size:var(--jh-text-sm); overflow-wrap:anywhere; }
.upload-result.error { color:var(--jh-error); }
.detail-note { border-top:1px solid var(--jh-border); padding-top:16px; margin-top:16px; }
.detail-note p { margin-top:8px; color:var(--jh-text-secondary); white-space:normal; }
.quote-scope { padding-bottom:20px; }
.quote-scope p { color:var(--jh-text-secondary); margin-top:12px; }
.quote-scope h3:not(:first-child) { margin-top:20px; }
.quote-actions { display:grid; gap:8px; margin-top:24px; }
.quote-actions .note { margin-top:0; }
address { font-style:normal; overflow-wrap:anywhere; }
.conversation { display:grid; gap:24px; }
.message { padding-bottom:20px; border-bottom:1px solid var(--jh-border); }
.message-meta { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:var(--jh-text-sm); }
.message-meta time { color:var(--jh-text-secondary); }
.message p { margin-top:8px; overflow-wrap:anywhere; }
.message-form { margin-top:24px; }
.staff-workspace { padding-block:24px; border-block:1px solid var(--jh-border); }
.queue-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:20px; align-items:end; }
.queue-filters .field+.field { margin-top:0; }
.queue-head,.queue-row { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(160px,.8fr); gap:24px; padding:20px; align-items:center; }
.queue-head { font-size:var(--jh-text-sm); color:var(--jh-text-secondary); padding-block:16px; border-bottom:1px solid var(--jh-border); }
.queue-row { text-decoration:none; color:var(--jh-text); }
.queue-row+.queue-row { border-top:1px solid var(--jh-border); }
.queue-row strong,.queue-row small { display:block; overflow-wrap:anywhere; }
.queue-row small { margin-top:4px; color:var(--jh-text-secondary); }
.queue-date { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:var(--jh-text-sm); color:var(--jh-text-secondary); }
.quote-line { display:grid; grid-template-columns:minmax(0,1fr) 160px auto; align-items:end; gap:16px; margin-bottom:16px; }
.quote-line .field+.field { margin-top:0; }
.method-settings { margin-top:16px; }
.method-settings summary .small { display:block; margin:4px 0 0; font-weight:400; }
body:has(dialog[open]) { overflow:hidden; }
dialog .stack { gap:20px; }
dialog .check-label { margin-top:12px; }
@media(hover:hover) { .queue-row:hover { background:var(--jh-brand-soft); } }
@media(max-width:959px) {
  .brand > span { display:none; }
  .site-header,.site-footer { padding:24px; }
  .public-main { padding:32px 24px 64px; }
  .brand { padding:24px; }
  .hero { gap:32px; padding-bottom:48px; }
  .editorial-section { gap:32px; padding-block:48px; }
  .auth-layout { gap:40px; grid-template-columns:1fr 1fr; padding-block:24px 48px; }
  .queue-head,.queue-row { gap:16px; }
}
@media(max-width:719px) {
  .site-header { align-items:flex-start; flex-direction:column; gap:16px; }
  .public-nav { width:100%; gap:8px 20px; justify-content:space-between; }
  .public-nav .account-link { margin-left:auto; }
  .hero { grid-template-columns:1fr; gap:32px; }
  .assessment-feature { max-width:none; justify-self:stretch; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:center; gap:24px; padding-top:32px; border-top:1px solid var(--jh-border); }
  .assessment-feature img { aspect-ratio:3/4; max-height:280px; }
  .editorial-section { grid-template-columns:1fr; }
  .editorial-section h2 br { display:none; }
  .auth-layout { grid-template-columns:1fr; }
  .auth-heading>.small { display:none; }
  .auth-heading .page-head { margin-bottom:0; }
  .site-footer { flex-direction:column; }
  .site-footer nav { display:grid; gap:4px; }
  .queue-head { display:none; }
  .queue-row { grid-template-columns:minmax(0,1fr); gap:12px; }
  .queue-filters { grid-template-columns:1fr 1fr; gap:16px; }
  .queue-filters .button { grid-column:1/-1; justify-self:start; }
}
@media(max-width:599px) {
  .site-header,.site-footer { padding:24px 16px; }
  .public-main { padding:24px 16px 48px; }
  .brand { padding:24px 16px 16px; }
  .public-nav { gap:4px 12px; }
  .public-nav .account-link .icon { display:none; }
  .hero h1 { font-size:var(--jh-title); }
  .assessment-feature { gap:20px; }
  .hero-copy { gap:20px; }
  .hero .actions { align-items:center; gap:16px; }
  .hero .actions .button { flex-grow:0; }
  .hero .actions .text-link { justify-content:center; }
  .process-list li { gap:16px; grid-template-columns:24px minmax(0,1fr); }
  .form-steps { gap:12px; }
  .form-steps li { flex-direction:column; align-items:flex-start; gap:8px; }
  .form-actions .button { flex:1 1 auto; }
  .form-actions [data-step-next],.form-actions [data-submit-request] { margin-left:0; }
  .field-pair { grid-template-columns:1fr; }
  .quote-line { grid-template-columns:minmax(0,1fr) 104px; gap:12px; }
  .quote-line .button { grid-column:1/-1; justify-self:start; }
  .queue-filters { grid-template-columns:1fr; }
  .search-control { gap:8px; }
  .search-control .button { padding-inline:12px; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; } }
/* Let enlarged text have a full reading rail, rather than a narrow caption. */
@container (max-width:17rem) {
  .assessment-feature>img,.assessment-feature>figcaption { grid-column:1/-1; }
  .assessment-feature>img { max-width:12rem; }
}

/* The customer journey uses the same shell and reading rhythm on every route. */
.order-intro { margin-bottom:32px; }
.order-intro>p { color:var(--jh-text-secondary); }
.section-nav { display:flex; flex-wrap:wrap; gap:0 24px; border-block:1px solid var(--jh-border); margin-top:24px; padding-block:8px; }
.section-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:var(--jh-text-sm); }
.record-section { border-radius:var(--jh-radius-group); }
.record-section>.inset { padding-top:8px; }
.record-section .group { border-radius:0; background:transparent; }
.record-section .group.inset { padding:0; }
.record-section .section-heading { margin-bottom:12px; }
.care-experience .auth-layout { display:grid; grid-template-columns:1fr; gap:24px; max-width:var(--jh-form-width); padding:0; }
.care-experience .auth-heading .page-head { margin:0; }
.care-experience .auth-heading h1 { font-size:var(--jh-title); }
@media(min-width:960px) {
  .navigation--discovery { position:static; display:flex; align-items:center; gap:24px; border:0; padding:0; }
  .navigation--discovery a { padding:8px 0; margin:0; background:transparent; }
  .navigation--discovery .navigation-icon { display:none; }
  .navigation--discovery a[aria-current] { background:transparent; text-decoration:underline; text-underline-offset:8px; }
}
@media(max-width:959px) {
  .public-experience { padding-bottom:calc(var(--jh-navigation-height, calc(var(--jh-mobile-nav-height) + env(safe-area-inset-bottom))) + 16px); }
  .shell-footer nav { display:flex; flex-wrap:wrap; gap:0 24px; border-top:1px solid var(--jh-border); padding-top:16px; }
  .site-header { flex-direction:row; }
}
