/* Only the NPI tool; the established site shell owns navigation and typography. */
.npi-lookup-page .npi-hero { padding-block: 38px 32px; }
.npi-lookup-page main h1 { font-size: clamp(38px, 6vw, 64px); line-height: 1.08; margin: 12px 0 20px; text-wrap: balance; }
.npi-lookup-page main h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; text-wrap: balance; margin: 0 0 20px; }
.npi-lookup-page .npi-lede { max-width: 800px; font-size: 20px; line-height: 1.6; }
.npi-lookup-page .npi-note { max-width: 800px; color: var(--muted); }
.npi-lookup-page .npi-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 24px; }
.npi-lookup-page .npi-actions .button { white-space: normal; text-align: center; }
.npi-lookup-page .npi-next { font-size: 14px; color: var(--muted); margin: 16px 0 0; }
.npi-lookup-page .npi-card { max-width: 900px; padding: clamp(22px, 4vw, 44px); border: 1px solid var(--line); border-radius: 18px; background: var(--wash); }
.npi-lookup-page #medicare-revalidation { scroll-margin-top: 120px; }
.npi-lookup-page #revalidation-results:not(:empty) { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.npi-lookup-page #revalidation-results h3 { font-size: clamp(22px, 3vw, 28px); line-height: 1.25; }
.npi-lookup-page #revalidation-results p { line-height: 1.65; }
.npi-lookup-page .npi-revalidation-record { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 20px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.npi-lookup-page .npi-revalidation-record dt { color: var(--muted); font-size: 14px; }
.npi-lookup-page .npi-revalidation-record dd { margin: 4px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.npi-lookup-page #npi-lookup-form label { display: block; font-weight: 650; margin-bottom: 8px; }
.npi-lookup-page .npi-input-row { display: flex; gap: 12px; }
.npi-lookup-page #npi-input { min-width: 0; flex: 1; font: inherit; font-size: 18px; padding: 13px 16px; border: 1px solid #6b8192; border-radius: 8px; background: #fff; color: var(--ink); }
.npi-lookup-page #npi-input:focus-visible { outline: 3px solid var(--cobalt); outline-offset: 3px; }
.npi-lookup-page #npi-submit { min-height: 48px; }
.npi-lookup-page #npi-submit[aria-disabled="true"] { opacity: .7; cursor: wait; }
.npi-lookup-page .npi-help, .npi-lookup-page .npi-source { font-size: 14px; line-height: 1.6; color: var(--muted); }
.npi-lookup-page .npi-source { margin: 24px 0 0; }
.npi-lookup-page #npi-error { border-left: 3px solid #9a3028; padding: 12px 16px; color: #7a211b; background: #fff4f2; }
.npi-lookup-page #npi-results:not(:empty) { margin-top: 28px; }
.npi-lookup-page .npi-result__name { font-size: clamp(21px, 3vw, 28px); overflow-wrap: anywhere; }
.npi-lookup-page .npi-result__table { width: 100%; border-collapse: collapse; table-layout: fixed; background: #fff; }
.npi-lookup-page .npi-result__table th, .npi-lookup-page .npi-result__table td { padding: 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.npi-lookup-page .npi-result__table th { width: 28%; }
.npi-lookup-page .npi-questions { padding-block: 56px; }
.npi-lookup-page .npi-faq-list { max-width: 900px; }
.npi-lookup-page .npi-faq-list details { border-bottom: 1px solid var(--line); }
.npi-lookup-page .npi-faq-list summary { padding: 20px 0; font-size: 18px; font-weight: 600; cursor: pointer; }
.npi-lookup-page .npi-faq-list p { max-width: 780px; margin: 0 0 22px; line-height: 1.7; }
.npi-lookup-page .npi-closing { padding-bottom: 64px; }
.npi-lookup-page .npi-closing p { max-width: 740px; }
.npi-lookup-page :is(.npi-source, .npi-faq-list) a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 520px) {
 .npi-lookup-page .npi-revalidation-record { grid-template-columns: 1fr; }
 .npi-lookup-page .npi-input-row { flex-direction: column; }
 .npi-lookup-page .npi-actions { align-items: stretch; flex-direction: column; }
 .npi-lookup-page .npi-lede { font-size: 18px; }
 .npi-lookup-page .npi-result__table th, .npi-lookup-page .npi-result__table td { padding: 10px 8px; font-size: 14px; }
 .npi-lookup-page .npi-result__table th { width: 32%; }
}
