/* Shared editorial footer, independent of article and calculator layouts. */
.ttn-footer{background:var(--surface);border-top:1px solid var(--border);padding:0;text-align:left;color:var(--text-dim)}
.ttn-footer-inner{max-width:1200px;margin:0 auto;padding:40px 20px 24px}
.ttn-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:64px;padding-bottom:32px}
.ttn-footer a{margin:0;text-decoration:none;color:var(--text-dim)}
.ttn-footer-wordmark{display:inline-block;font:750 28px/1.1 Inter,Arial,sans-serif;letter-spacing:-1.2px;color:var(--text)!important}
.ttn-footer-wordmark span{color:var(--accent)}
.ttn-footer-brand>p{font-size:12px;margin:10px 0 0;line-height:1.6}
.ttn-footer-brand .ttn-footer-description{max-width:310px;font-size:13px;margin-top:16px;line-height:1.7}
.ttn-footer h2{font:700 11px/1.5 Inter,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin:0 0 16px}
.ttn-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ttn-footer nav a{font-size:13px;line-height:1.6;display:inline-block;padding:2px 0}
.ttn-footer a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ttn-footer-wordmark:hover{text-decoration:none}
.ttn-footer-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;align-items:baseline;gap:16px 24px;flex-wrap:wrap;font-size:12px;line-height:1.7}
.ttn-footer-bottom p{margin:0}
.ttn-footer-bottom .ttn-footer-disclaimer{flex-basis:100%;max-width:820px;color:var(--text-faint);font-size:11px}
@media(max-width:800px){.ttn-footer-grid{grid-template-columns:1fr 1fr;gap:28px 40px}.ttn-footer-brand{grid-column:1/-1}.ttn-footer-brand .ttn-footer-description{max-width:480px}.ttn-footer-inner{padding-top:32px}}
@media(max-width:480px){.ttn-footer-inner{padding:28px 16px 20px}.ttn-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;padding-bottom:24px}.ttn-footer-brand{grid-column:1/-1}.ttn-footer-brand .ttn-footer-description{margin-top:10px}.ttn-footer nav{min-width:0}.ttn-footer h2{margin-bottom:10px}.ttn-footer ul{gap:6px}.ttn-footer nav a{padding:4px 0;overflow-wrap:anywhere}.ttn-footer-bottom{gap:10px 16px;padding-top:16px}}

.ttn-cookie-preferences{padding:0;border:0;background:transparent;color:var(--text-dim);font:inherit;cursor:pointer}.ttn-cookie-preferences:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* Publication information and accessible contact links. */
.policy-table-wrap{overflow-x:auto;margin:24px 0}
.static-page table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}
.static-page th,.static-page td{padding:12px;border:1px solid var(--border);vertical-align:top}
.static-page caption{text-align:left;font-weight:600;margin-bottom:12px}
.static-page code{overflow-wrap:anywhere}
.policy-action{padding:12px 16px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;font:inherit;cursor:pointer}
.policy-action:focus-visible,.ttn-footer a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.broker-link-unavailable{display:inline-block;padding:10px 14px;color:var(--text-dim);font-size:13px}

/* Keep appearance controls beside the brand, including intermediate widths. */
.topnav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 20px}
.topnav>.brand{grid-column:1;grid-row:1}
.topnav>.nav-links{grid-column:2;grid-row:1;justify-self:center}
.topnav>.theme-switch{grid-column:3;grid-row:1;margin-left:0}
.topnav>.nav-toggle{grid-column:2;grid-row:1;justify-self:end}
.topnav>.search-box{grid-column:1/-1;grid-row:2;justify-self:end;width:min(360px,100%);min-width:0;box-sizing:border-box}
@media(max-width:1200px){
 .topnav{grid-template-columns:minmax(0,1fr) 44px 44px;gap:10px 12px}
 .topnav>.nav-toggle{display:block}
 .topnav>.nav-links{display:none;position:absolute;top:100%;left:0;right:0;grid-column:1/-1;justify-self:stretch;flex-direction:column;gap:0;background:var(--surface);border-bottom:1px solid var(--border);z-index:60}
 .topnav>.nav-links.open{display:flex}
 .topnav>.nav-links a{padding:14px 20px;border-top:1px solid var(--border);font-size:15px}
 .topnav .ttn-brand-clean{min-width:0}
}
@media(max-width:480px){
 .topnav{padding:10px 12px;gap:8px}
 .topnav .ttn-brand-title{font-size:22px;letter-spacing:-.8px}
 .topnav .ttn-brand-tagline{font-size:8px;letter-spacing:0}
 .topnav>.theme-switch{font-size:9px;letter-spacing:.02em;padding:2px}
 .topnav .theme-switch-option{padding:6px}
 .topnav>.nav-toggle{padding:7px 9px}
}

/* Compact, non-emoji appearance control with a touch-friendly target. */
.topnav>.theme-switch{width:40px;height:40px;min-height:40px;padding:10px;box-sizing:border-box;justify-content:center;border-radius:4px;letter-spacing:0}
.topnav>.theme-switch svg{display:block;width:18px;height:18px;flex-shrink:0}
@media(pointer:coarse){.topnav>.theme-switch{width:44px;height:44px;min-height:44px}}

/* Match header icon proportions while keeping a generous invisible hit area. */
.topnav>.nav-toggle,.topnav>.theme-switch{width:44px;height:44px;min-width:44px;min-height:44px;padding:11px;box-sizing:border-box;border:0;border-radius:4px;background:transparent;box-shadow:none;color:var(--text-dim);line-height:1}
.topnav>.nav-toggle svg,.topnav>.theme-switch svg{display:block;width:22px;height:22px;margin:auto;flex-shrink:0;pointer-events:none}
.topnav>.nav-toggle:hover,.topnav>.theme-switch:hover{border:0;background:transparent;color:var(--text)}
.topnav>.nav-toggle:focus-visible,.topnav>.theme-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Keyboard entry point and progressive enhancement for the shared navigation. */
.skip-link{position:fixed;top:8px;left:12px;z-index:10000;transform:translateY(-180%);padding:12px 18px;background:var(--surface);color:var(--text);border:2px solid var(--accent);border-radius:4px;font:600 15px/1.4 Inter,Arial,sans-serif;text-decoration:underline}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--accent);outline-offset:2px}
#main-content{scroll-margin-top:24px}
#main-content:focus{outline:2px solid var(--accent);outline-offset:4px}
.topnav>.nav-links a[aria-current="page"]{color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:5px}
@media(max-width:1200px){
 .topnav:not(.ttn-nav-ready)>.nav-toggle{display:none}
 .topnav:not(.ttn-nav-ready)>.nav-links{display:flex;position:static;grid-column:1/-1;grid-row:3;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:0;border-bottom:0}
 .topnav:not(.ttn-nav-ready)>.nav-links a{padding:10px 12px;border:0}
 .topnav.ttn-nav-ready>.nav-links{max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
}
@media(prefers-reduced-motion:reduce){.skip-link{transition:none}}

/* Improved auxiliary text contrast in light theme, preserving Inter and layout. */
html:not([data-theme="dark"]) .ttn-footer{color:#34465b}
html:not([data-theme="dark"]) .ttn-footer a,
html:not([data-theme="dark"]) .ttn-cookie-preferences{color:#34465b}
html:not([data-theme="dark"]) .ttn-footer-bottom .ttn-footer-disclaimer{color:#4a5d72}
html:not([data-theme="dark"]) .ttn-footer-brand>p{color:#43566c}
html:not([data-theme="dark"]) .topnav .ttn-brand-tagline{color:#43566c}
html:not([data-theme="dark"]) .topnav>.nav-toggle,
html:not([data-theme="dark"]) .topnav>.theme-switch{color:#34465b}

/* Consistent desktop/mobile supporting text contrast; preserve font weights and layout. */
html:not([data-theme="dark"]) .topnav .nav-links{color:#34465b}
html:not([data-theme="dark"]) .ttn-footer-brand .ttn-footer-description,
html:not([data-theme="dark"]) .ttn-footer-bottom{color:#43566c}
html:not([data-theme="dark"]) .ttn-footer-bottom .ttn-footer-disclaimer{color:#4a5d72}
html[data-theme="dark"] .topnav .nav-links,
html[data-theme="dark"] .ttn-footer,
html[data-theme="dark"] .ttn-footer a,
html[data-theme="dark"] .ttn-cookie-preferences{color:var(--text-dim)}
html[data-theme="dark"] .ttn-footer-bottom .ttn-footer-disclaimer{color:var(--text-faint)}
