/* 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; } }

/* Compact social links: small icons, comfortable touch targets. */
.pp-social-compact { background:#fff; border-bottom:1px solid var(--border); padding:16px 0; }
.pp-social-inner { display:flex; align-items:center; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; }
.pp-social-compact h2 { margin:0; font-size:1.125rem; line-height:1.4; color:var(--text); }
.pp-social-groups { display:flex; align-items:center; flex-wrap:wrap; gap:8px 28px; }
.pp-social-group { display:flex; align-items:center; gap:12px; }
.pp-social-language { font-size:.875rem; font-weight:650; min-width:58px; }
.pp-social-icons { display:flex; gap:6px; }
.pp-social-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:10px; text-decoration:none; }
.pp-social-icon svg { width:20px; height:20px; }
.pp-social-instagram { color:#b92368; background:#fff0f5; }
.pp-social-facebook { color:#1565c0; background:#edf5ff; }
.pp-social-youtube { color:#c62020; background:#fff0f0; }
.pp-social-icon:hover { filter:brightness(.94); text-decoration:none; }
@media(max-width:600px) {
 .pp-social-inner { gap:10px; }
 .pp-social-groups { width:100%; gap:4px; }
 .pp-social-group { width:100%; justify-content:space-between; }
}

/* Reserved, clearly labelled homepage ad area. It stays outside calculators and primary actions. */
.pp-ad-shell {
 margin:clamp(32px,6vw,56px) auto;
 padding:18px 16px;
 min-height:132px;
 border-block:1px solid var(--border);
 background:#fff;
 overflow:hidden;
}
.pp-ad-label {
 margin:0 0 10px;
 color:#667085;
 font-size:.75rem;
 line-height:1.4;
 text-align:center;
 text-transform:uppercase;
 letter-spacing:.06em;
}
.pp-ad-shell .adsbygoogle { min-height:90px; }
.pp-ad-shell:has(.adsbygoogle[data-ad-status="unfilled"]) { display:none; }
@media(max-width:600px) {
 .pp-ad-shell { margin:28px auto; padding-inline:8px; min-height:116px; }
 .pp-ad-shell .adsbygoogle { min-height:76px; }
}

/* Calculator readability and touch-friendly result tables. */
.calc-field .hint,.calc-error,.calc-summary-note,.appx-input-hint,.appx-dob-hint,.appx-table-hint,.premium-finder-desc,.pf-budget-hint,.pf-result-note { font-size:.75rem!important; line-height:1.55!important; }
.calc-summary-label,.fd-sel-label,.appx-suggestions-title,.appx-control-title,.appx-insurance-form .pli-field label,.premium-finder-toggle-text small,.pf-result-header small { font-size:.75rem!important; }
.ppf-table,.yr5-table,.kvp-table,.cmp-table,.pli-table,.cept-table { font-size:.8125rem!important; }
.ppf-table th,.yr5-table th,.kvp-table th,.cmp-table th,.pli-table th,.cept-table th { position:sticky; top:0; z-index:2; font-size:.75rem!important; line-height:1.35!important; }
.ppf-table td,.yr5-table td,.kvp-table td,.cmp-table td,.pli-table td,.cept-table td { font-size:.8125rem!important; line-height:1.4!important; }
.pli-table-wrap,.result-card>div:has(>table),#calcResult>div:has(>table) { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
@media(max-width:760px) {
 .calc-panel,.pli-panel { scroll-margin-top:78px; }
 .calc-input-card,.pli-form { padding:16px!important; }
 .calc-summary { min-width:0; }
 .calc-summary-item { padding:11px 5px!important; }
 .calc-summary-value { font-size:.9375rem!important; }
 .calc-summary-value.maturity { font-size:1rem!important; }
 .ppf-table,.yr5-table,.kvp-table,.cmp-table { min-width:620px; }
 .pli-table,.cept-table { min-width:700px!important; }
 .ppf-table th:first-child,.ppf-table td:first-child,.yr5-table th:first-child,.yr5-table td:first-child,.kvp-table th:first-child,.kvp-table td:first-child,.cmp-table th:first-child,.cmp-table td:first-child,.pli-table th:first-child,.pli-table td:first-child,.cept-table th:first-child,.cept-table td:first-child { position:sticky; left:0; z-index:1; box-shadow:2px 0 4px rgba(15,23,42,.12); }
 .ppf-table th:first-child,.yr5-table th:first-child,.kvp-table th:first-child,.cmp-table th:first-child,.pli-table th:first-child,.cept-table th:first-child { z-index:3; }
}

/* Universal search and app-download prompts injected by the shared header. */
.nav-search-button{min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:rgba(255,255,255,.9);font:inherit;font-size:.875rem;font-weight:700;cursor:pointer}
.nav-search-button:hover{background:rgba(255,255,255,.15);color:#fff}
.pp-search-dialog{position:fixed;inset:0;z-index:10050;display:none;place-items:start center;padding:clamp(72px,12vh,120px) 16px 24px;background:rgba(15,23,42,.7);backdrop-filter:blur(5px)}
.pp-search-dialog.open{display:grid}.pp-search-card{width:min(680px,100%);max-height:calc(100dvh - 120px);overflow:auto;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.pp-search-head{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid #e2e8f0}.pp-search-input{flex:1;min-width:0;padding:12px 14px;border:2px solid #cbd5e1;border-radius:11px;font-size:1rem}.pp-search-close{width:44px;height:44px;border:0;border-radius:10px;background:#f1f5f9;font-size:1.4rem;cursor:pointer}
.pp-search-results{display:grid;gap:7px;padding:12px}.pp-search-result{display:block;padding:12px 14px;border:1px solid #e2e8f0;border-radius:11px;color:#0f172a;text-decoration:none}.pp-search-result:hover,.pp-search-result:focus{border-color:#7c2040;background:#fff7f9}.pp-search-result strong,.pp-search-result span{display:block}.pp-search-result span{margin-top:3px;color:#64748b;font-size:.8125rem}.pp-search-empty{padding:24px;text-align:center;color:#64748b}
.pp-app-footer-cta{padding:22px 16px;background:linear-gradient(135deg,#fff8e8,#fff);border-top:1px solid #ead8a8;text-align:center;color:#38111e}.pp-app-footer-inner{display:flex;align-items:center;justify-content:center;gap:16px 28px;flex-wrap:wrap;max-width:900px;margin:auto}.pp-app-footer-copy strong,.pp-app-footer-copy span{display:block}.pp-app-footer-copy strong{font-size:1.125rem}.pp-app-footer-copy span{margin-top:3px;color:#6b5260;font-size:.875rem}.pp-app-footer-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.pp-app-footer-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border-radius:10px;font-weight:800;text-decoration:none}.pp-app-download{background:#7c2040;color:#fff}.pp-app-learn{border:1px solid #7c2040;color:#7c2040;background:#fff}
@media(max-width:1100px){.nav-search-button{width:100%;justify-content:flex-start;text-align:left;padding:12px 14px}.header-nav.open .nav-search-button{display:block}}

/* Plain-language savings scheme finder. */
.pp-scheme-finder{padding:24px 16px 4px;background:#f8fafc}.pp-finder-card{max-width:1120px;margin:auto;padding:22px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.pp-finder-intro span{color:#9b1c1f;font-size:.75rem;font-weight:900;letter-spacing:.08em}.pp-finder-intro h2{margin:5px 0;color:#172033;font-size:clamp(1.25rem,2vw,1.65rem)}.pp-finder-intro p{margin:0;color:#64748b;font-size:.875rem}
.pp-finder-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.pp-finder-fields label{color:#334155;font-size:.8125rem;font-weight:800}.pp-finder-fields select{width:100%;min-height:48px;margin-top:6px;padding:10px 12px;border:1.5px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a}
.pp-finder-button{width:100%;margin-top:14px;border:0;border-radius:11px;background:linear-gradient(135deg,#7c2040,#a82b51);color:#fff;font-weight:850;cursor:pointer}.pp-finder-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.pp-finder-result{display:block;padding:13px;border:1px solid #dbe4ee;border-radius:12px;background:#f8fafc;color:#0f172a;text-decoration:none}.pp-finder-result:hover{border-color:#7c2040;background:#fff7f9}.pp-finder-result strong,.pp-finder-result span{display:block}.pp-finder-result span{margin-top:4px;color:#64748b;font-size:.8125rem;line-height:1.45}.pp-finder-result em{display:inline-block;margin-top:8px;color:#7c2040;font-size:.75rem;font-style:normal;font-weight:850}
@media(max-width:760px){.pp-finder-fields,.pp-finder-results{grid-template-columns:1fr}.pp-finder-card{padding:17px}.pp-scheme-finder{padding-inline:12px}}

/* Global usability helpers: keyboard skip link, mobile dock and long-page return action. */
.pp-skip-link{position:fixed;top:8px;left:8px;z-index:20000;transform:translateY(-160%);padding:11px 15px;border-radius:9px;background:#fff;color:#65132f;font-weight:850;box-shadow:0 8px 28px rgba(15,23,42,.25);transition:transform .15s ease}
.pp-skip-link:focus{transform:translateY(0)}
.pp-mobile-dock{display:none}
.pp-back-to-top{position:fixed;left:18px;bottom:18px;z-index:9900;display:flex;align-items:center;gap:5px;min-width:58px;min-height:44px;padding:8px 12px;border:1px solid #d7c3ca;border-radius:999px;background:#fff;color:#65132f;font:inherit;font-size:.75rem;font-weight:850;box-shadow:0 8px 24px rgba(15,23,42,.16);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .18s ease,transform .18s ease}
.pp-back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.pp-back-to-top span:first-child{font-size:1rem;line-height:1}
.pp-back-to-top:hover,.pp-back-to-top:focus-visible{background:#fff4f7;border-color:#8b2d4e}
.pp-search-key{flex:none;padding:4px 7px;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#64748b;font-size:.6875rem;font-weight:800}
.pp-search-status{height:0;overflow:hidden;position:absolute;width:1px;clip:rect(0 0 0 0);clip-path:inset(50%)}
@media(max-width:760px){
 body.pp-has-mobile-dock{padding-bottom:74px}
 .pp-mobile-dock{position:fixed;left:0;right:0;bottom:0;z-index:9950;display:grid;grid-template-columns:repeat(5,1fr);padding:6px max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:1px solid #e5d8dd;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(15,23,42,.1);backdrop-filter:blur(12px)}
 .pp-mobile-dock a{display:flex;min-width:0;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:10px;color:#667085;text-decoration:none;font-weight:750}
 .pp-mobile-dock a>span{font-size:1rem;line-height:1}.pp-mobile-dock a>small{max-width:100%;overflow:hidden;font-size:.625rem;text-overflow:ellipsis;white-space:nowrap}
 .pp-mobile-dock a.active{background:#fff0f4;color:#7c2040}.pp-mobile-dock a:focus-visible{outline:2px solid #7c2040;outline-offset:-2px}
 .pp-back-to-top{left:12px;bottom:84px}
 .appx-toast{bottom:88px}
 .pp-search-key{display:none}
 .pp-search-dialog{padding-top:72px}.pp-search-card{max-height:calc(100dvh - 92px)}
}
