/* Final audit: readable contrast, form text and touch targets. */
.archive-card-top,
.archive-card-copy p {
  color: #565d50;
}

:is(.start-input-wrap input, .detail-field input, .contact-input)::placeholder {
  color: #686b61;
  opacity: 1;
}

.page-shell .brand-small {
  color: var(--muted);
}
.receipt-email {overflow-wrap:anywhere}
/* Slide transitions must not briefly create a horizontal dialog scrollbar. */
dialog {overflow-x:hidden}
body.error404 {display:flex;flex-direction:column;min-height:100dvh}
body.error404 .page-shell {flex:1;width:100%}
.faq-chapter .accordion-panel p {font-size:14px}
.summary-table {font-size:13px}
.flow-subtitle,.consent-label {font-size:14px}
.person-tag {font-size:13px}
.start-links{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#5a6053}
.start-links a{display:inline-flex;align-items:center;min-height:32px}
.reviews-context{margin:-16px 0 28px;color:#62675b;font-size:13px;line-height:1.8}
.footer-contact-list{display:grid;justify-items:end;gap:8px}
.footer-contact-list .footer-email{margin-top:0}
.document-shell{max-width:900px;width:100%}
.document-nav{display:flex;gap:12px 26px;flex-wrap:wrap;margin-bottom:25px;font-size:14px}
.document-nav a{display:inline-flex;align-items:center;min-height:44px}
.document-content h1{font:700 clamp(28px,4vw,44px)/1.25 var(--sans);letter-spacing:-.03em;margin:0 0 28px;overflow-wrap:anywhere;text-wrap:wrap}
.document-content{font-size:15px;line-height:1.85;overflow-wrap:anywhere}
.document-content h2{font-size:22px;font-weight:600;line-height:1.4;margin:28px 0 12px}
.document-content ol,.document-content ul{padding-left:22px}
.legal-copy h2:not(#legal-title){font-size:20px;line-height:1.4;font-weight:600;margin:25px 0 12px}

/* Programmatic heading focus announces each new step without drawing a box. */
#flow-title:focus,
#legal-title:focus {
  outline: none;
}

/* The checkbox has its own label; document buttons remain outside that label. */
.consent-label {
  gap: 4px;
}
.consent-check {
  display: grid;
  place-items: start center;
  flex: 0 0 44px;
  width: 44px;
  min-height: 44px;
  margin-left: -8px;
  padding-top: 2px;
  cursor: pointer;
}
.consent-check input {
  margin: 0;
}
.consent-label > span {
  min-width: 0;
}

@media (max-width: 760px) {
  .footer-contact-list{justify-items:start;margin-top:20px}
  .reviews-context{margin:-10px 0 22px;font-size:13px}
  .document-content{font-size:14px}
  :is(.start-input-wrap input, .detail-field input, .contact-input) {
    font-size: 16px;
    line-height: 1.5;
  }
  :is(.start-input-wrap input, .detail-field input, .contact-input)::placeholder {
    font-size: 14px;
  }
  .choice,
  .flow-subtitle,
  .plan-details summary,
  .plan-details .accordion-panel > p,
  .plan-details li,
  .summary-table,
  .service-divider p,
  .result-note {
    font-size: 14px;
  }
  .choice {
    line-height: 1.6;
  }
  .process-story p,
  .archive-card-copy p,
  .faq-chapter .faq-list summary {font-size:14px}
  .archive-card-top {font-size:10px}
  .consent-label {font-size:13px}
  .footer-bottom {font-size:12px}
  .footer-copy {font-size:11px;line-height:1.8}
  .summary-table th,
  .summary-table td {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 350px) {
  #legal-title {
    font-size: 22px;
  }
}

/* High Contrast mode removes box shadows; retain a system-colored focus ring. */
.plan-shell{width:calc(100% - 48px);max-width:1100px;margin:0 auto;padding:32px 0 64px;min-height:calc(100svh - 260px)}
.plan-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:48px}
.plan-header .brand-small{color:#62675b;opacity:1}
.plan-home{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;white-space:nowrap}
.plan-home .icon{width:16px;height:16px}
.inline-flow{max-width:650px;margin:0 auto;background:var(--paper,#f5f0e5);border:1px solid #d7cfbf;border-radius:8px;box-shadow:0 12px 45px #292c2010;overflow:hidden}
.inline-flow[hidden],.plan-intro[hidden]{display:none!important}
.inline-flow .dialog-top{position:static;gap:18px}
.inline-flow [data-reset]{font-size:12px;min-height:44px;padding:0 2px}
.plan-intro .start-card{margin:0 auto;width:100%;max-width:470px}
.plan-intro-note{font-size:14px;line-height:1.8;color:#62675b;margin:0 0 22px}
.plan-noscript{max-width:650px;margin:0 auto}
.plan-noscript h2{font-size:26px;margin-bottom:16px}
@media(max-width:600px){
  .plan-shell{width:calc(100% - 32px);padding:20px 0 44px}
  .plan-header{gap:14px;margin-bottom:24px}
  .plan-header .brand-name{font-size:17px}
  .plan-header .brand-small{font-size:6px}
  .plan-header .brand-mark{width:32px;height:32px}
  .plan-home{font-size:11px;gap:4px}
  .inline-flow .flow-body{padding:24px 20px 30px}
  .inline-flow .dialog-top{padding:12px 20px}
  .inline-flow .flow-heading{font-size:28px;line-height:1.3}
}
@media(max-width:350px){
  .plan-header .brand-small{display:none}
  .plan-header .brand-name{font-size:15px}
  .plan-header .brand{gap:8px}
  .inline-flow .flow-topline{font-size:8px;gap:10px}
  .inline-flow .flow-body{padding-inline:16px}
  .inline-flow .dialog-top{padding-inline:16px}
  .inline-flow .flow-heading{font-size:25px}
}
@media (forced-colors: active) {
  .start-input-wrap:focus-within {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
  :is(.detail-field input, .contact-input):focus {
    outline: 2px solid Highlight;
    outline-offset: 2px;
  }
}
