/* Shared usability fixes. Keep page-specific design and existing functionality. */
:root { color-scheme: light; }
html { overflow-x: clip; }
body { overflow-x: clip; }
button, input, select, textarea { font: inherit; }
input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { font-size:1rem!important; max-width:100%; }
button, .btn, .pp-button, .gds-btn-detail, .gds-btn-star, .gds-btn-share { min-height:44px; }
button { white-space:normal; }
:focus-visible { outline:3px solid #286dc0; outline-offset:4px; }
.header-inner { gap:12px; }
.header-nav a { font-size:.875rem; }
.header-logo { flex-shrink:0; }
.nav-gds-chip, .gds-chip-badge { animation:none!important; }
.header-nav .nav-account { max-width:240px; overflow-wrap:anywhere; }
.header-nav .header-premium-badge { font-size:.75rem!important; white-space:normal!important; }
.pp-tool p, .pp-plan-disclosure summary, .pp-personal-guidance p, .pp-savings-story a,
.calc-field label, .pli-field label, .compare-side label, .cmpx-field label,
.fd-sel-label, .calc-summary-label { font-size:.875rem; }
.pp-hero-shortcuts { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; }
.pp-hero-shortcuts a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; font-weight:650; text-decoration:underline; text-underline-offset:4px; }
.pp-postal-scene figcaption, .pp-floating-note small { font-size:.75rem; }
.pp-motion-toggle { font-size:.875rem; min-height:44px; }
.pp-contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-bottom:2rem; }
.pp-contact-grid > * { min-width:0; }
.pp-contact-grid a { overflow-wrap:anywhere; }
.pp-form-status { margin-block:14px; line-height:1.6; }
.pp-form-status.error { color:#9b1717; }
.pp-form-status.success { color:#166534; }
.pp-support-fallback { margin-top:12px; font-size:.875rem; }
.gds-loading { min-height:180px; }
.gds-data-notice { margin:12px auto; max-width:1180px; padding:14px 18px; border:1px solid #dfc28b; border-radius:12px; background:#fff9ea; color:#603e13; }
.gds-data-notice button { margin-left:12px; padding:8px 14px; border-radius:8px; border:1px solid currentColor; background:white; cursor:pointer; }
.main-content:has(#gds-root) { padding-inline:16px; }
.selector-tools b, .selector-tools span, .selector-metrics span, .selector-summary span, .selector-nav button { font-size:.875rem; }
.selector-success button { border:0; border-radius:9px; background:#7c2040; color:white; font:inherit; padding:10px 14px; cursor:pointer; }
.selector-success { line-height:1.65; }
.selector-table table { font-size:.875rem; }
@media(max-width:1100px) {
 .header-inner { flex-wrap:wrap; }
 .header-logo { margin-right:auto; }
 .mobile-app-quicklink { display:none!important; }
 .hamburger { min-width:44px; min-height:44px; }
 .header-nav.open { max-height:calc(100dvh - 90px); }
}
@media(max-width:760px) {
 .pp-home .pp-hero { padding:24px 0; }
 .pp-home .pp-hero-grid { gap:24px; }
 .pp-postal-scene { order:0; margin:0; }
 .pp-home .pp-hero h1 { font-size:clamp(1.75rem,7vw,2.5rem); line-height:1.35; }
 .pp-hero-copy > .pp-eyebrow { font-size:.75rem; letter-spacing:.04em; }
 .pp-hero-intro { font-size:1rem; line-height:1.75; }
 .pp-hero-actions { margin-top:16px; display:grid; grid-template-columns:1fr; gap:10px; }
 .pp-hero-actions .pp-button { width:100%; justify-content:center; }
 .pp-scene-frame img { aspect-ratio:1.9; }
 .pp-floating-note { display:none; }
 .pp-postal-scene figcaption { font-size:.75rem; }
 .pp-contact-grid { grid-template-columns:1fr; gap:24px; }
 .content-card, .info-card, .calc-card, .gds-card { min-width:0; }
 .pp-tool h3 { font-size:1rem; line-height:1.4; }
 .pp-tool p { font-size:.875rem; }
 .pp-tool-arrow { display:none; }
 .gds-card button { min-width:44px; }
 .gds-guidance-actions { width:100%; }
 .gds-guidance-actions button { width:100%; white-space:normal!important; }
 .gds-guidance-copy { min-width:0!important; }
 #gdsToast { white-space:normal!important; width:max-content; max-width:calc(100vw - 32px); text-align:center; }
 .data-table { min-width:560px; }
 .table-scroll { overflow-x:auto; max-width:100%; }
}
@media(max-width:359px) { .pp-tool-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
