/* Shared interaction and layout corrections. */
*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
a,button,summary{touch-action:manipulation}
button,summary{cursor:pointer}
.video-play{display:block;position:relative;width:100%;height:100%;padding:0;border:0;background:#1f2b4b;color:#fff;cursor:pointer}
.video-play img{display:block;width:100%;height:100%;object-fit:contain}
.video-column{min-width:0}.video-column .video-frame{aspect-ratio:16/9;width:100%}
.contact-box .email-link{white-space:normal;overflow-wrap:anywhere;letter-spacing:0}
.cx-plans,.cx-catalog,.cx-sim-grid,.promo-grid{align-items:stretch}
.cx-plan,.cx-sim-panel,.contact-box,.promo-copy{min-width:0}
.cx-plan h3,.contact-box h3{overflow-wrap:break-word}
.cx-page p,.cx-page li{overflow-wrap:break-word}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3488ff;outline-offset:4px}
.cursor-halo{position:fixed;top:0;left:0;display:none!important;width:30px;height:30px;border:2px solid #2176ef;border-radius:50%;background:#87bdff20;box-shadow:0 0 0 3px #87bdff22;pointer-events:none;z-index:2147483646;opacity:0;transition:opacity .12s,width .12s,height .12s}
.cursor-halo.visible{opacity:1}.cursor-halo.interactive{width:44px;height:44px;background:#2176ef20}
@media(any-pointer:fine){.cursor-halo{display:block!important}}
@media(hover:hover) and (any-pointer:fine){
 .btn,.seasonal-offer-body a,.swiss-actions a{transition:background-color .16s,box-shadow .16s,transform .16s}
 .btn:hover,.seasonal-offer-body a:hover,.swiss-actions a:hover{filter:brightness(.92);box-shadow:0 4px 14px #05134424;transform:translateY(-1px)}
 .video-play:hover span{background:#2176ef;color:#fff;box-shadow:0 0 0 3px #a4cbff66}
 .video-play:hover img{filter:brightness(1.08)}
 .header .links a:hover,.appearance-menu>summary:hover{color:#1765d5;background:#2176ef12;border-radius:7px}
 html[data-theme=dark] .header .links a:hover,html[data-theme=dark] .appearance-menu>summary:hover{color:#b8daff;background:#87bdff20}
 .cx-local-nav a:hover,.cx-catalog-card:hover{background:var(--cx-soft,#edf5ff);border-color:#2176ef}
}
@media(max-width:740px){.video-column{width:100%}.video-column .video-external{margin-top:12px}.cx-plan .btn{white-space:normal;text-align:center;min-height:48px}.cx-caption{line-height:1.6}}
@media(prefers-reduced-motion:reduce){.cursor-halo{display:none!important}*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* One content width for introductions, plans, estimators and FAQs. */
body.product-page{font-family:Aileron,Arial,sans-serif!important}
body.product-page main>.wrap,body.product-page main>.section>.wrap,body.product-page main>section>.wrap{width:100%;max-width:1200px!important;margin-left:auto!important;margin-right:auto!important;padding-left:32px!important;padding-right:32px!important}
body.product-page .product-intro>.product-visual{width:100%;max-width:none;justify-self:stretch}
body.product-page .product-intro>.payment-info{width:100%;max-width:none}
.national-service{font-size:14px;line-height:1.6;color:inherit;margin:12px 0 18px}
.cursor-halo::after{content:'';position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:#2176ef;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff9}
@media(any-pointer:fine){.cursor-halo{display:block!important}}
@media(max-width:900px){body.product-page main>.wrap,body.product-page main>.section>.wrap,body.product-page main>section>.wrap{padding-left:22px!important;padding-right:22px!important}}
@media(max-width:480px){body.product-page main>.wrap,body.product-page main>.section>.wrap,body.product-page main>section>.wrap{padding-left:18px!important;padding-right:18px!important}}
@media(prefers-reduced-motion:reduce){.cursor-halo{transition:none!important}}
/* Legible typography at normal zoom and with user text scaling. */
@font-face{font-family:Aileron;src:url('Aileron-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Aileron;src:url('Aileron-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:Aileron,Arial,Helvetica,sans-serif!important;font-size:17px;line-height:1.65}
main p,main li,main label,main input,main select,main textarea{letter-spacing:normal;text-shadow:none;font-style:normal}
main h1,main h2,main h3{font-family:Aileron,Arial,Helvetica,sans-serif;font-weight:700;text-shadow:none;letter-spacing:-.015em;overflow-wrap:break-word}
main h1{line-height:1.2}main h2{line-height:1.25}main h3{line-height:1.35}
.hc-heading p,.hc-panel p,.cx-lead{font-weight:400;line-height:1.65}
main input,main select,main textarea{font-size:16px!important;line-height:1.5}
.hc-heading h2{font-size:clamp(27px,2.7vw,36px);letter-spacing:-.015em}
.hc-panel h3{font-size:22px}.hc-panel label{font-weight:700}
.cx-caption,.home-note,.product-faq>p,.hc-small,.hc-method,.promo-conditions{font-size:14px!important;line-height:1.65!important}
.cx-card-note,.cx-plan p,.hc-profile{line-height:1.65}
@media(max-width:650px){body{font-size:16px}.product-intro>p,.cx-lead,.hc-heading p{font-size:17px!important;line-height:1.65}.hc-heading h2{font-size:28px}.hc-panel h3{font-size:21px}.cx-price strong,.plan-price,.hc-amounts strong{letter-spacing:normal}}
/* Cards grow independently when their coverage details open. */
.cx-plans,.home-plans{align-items:start!important}
.cx-plans>.cx-plan,.home-plans>.home-plan{align-self:start;height:auto;min-height:0}
.cx-plan .cx-price{margin-top:20px}.cx-plan>.btn,.home-plan>.btn{margin-top:16px}
.cursor-halo{width:27px;height:27px;border-width:1px;border-color:#5798e999;background:transparent;box-shadow:none;transition:opacity .22s ease!important}
.cursor-halo::after{width:4px;height:4px;background:#4389de;box-shadow:none;opacity:.8}
@media(prefers-reduced-motion:reduce){.cursor-halo{transition:none!important}}
/* Reading comfort and reflow for product details and long labels. */
.cx-detail>div{padding-top:14px;font-size:16px;line-height:1.65}
.cx-detail>div>p:first-child{margin-top:0}
.cx-detail>summary{line-height:1.5;white-space:normal;overflow-wrap:break-word}
.cx-caption,.home-note,.hc-small,.hc-method,.promo-conditions,.product-faq>p{font-size:14px!important;line-height:1.65!important}
.cx-price small,.cx-card-note{font-size:14px;line-height:1.6}
.cx-price strong,.cx-sum strong,.plan-price,.hc-amounts strong{font-variant-numeric:tabular-nums}
.cx-intro>.cx-lead,.product-intro>p,.hc-heading p,.promo-copy>p{max-width:65ch}
.cx-detail p,.product-faq p,.hc-method p{max-width:78ch}
.cx-local-nav a,.cx-return a,.footer-links a{white-space:normal;overflow-wrap:break-word}
.cx-page input,.cx-page select,.hc-panel input{max-width:100%;min-width:0}
.cx-page .cx-table-wrap{max-width:100%;overflow-x:auto}
@media(max-width:740px){.hc-grid,.cx-custom,.cx-sim-grid{grid-template-columns:minmax(0,1fr)}.cx-detail>div{padding:14px 16px 18px}.cx-detail>summary{font-size:16px}.cx-plan .cx-detail>summary{font-size:15px}}
@media(max-width:360px){.header .brand img{width:130px!important}.header .nav{gap:4px!important}.header .menu-toggle{padding:9px 8px;font-size:14px}.header .appearance-menu>summary{width:36px}}
/* Final reading font: native interface fonts with reliable screen rendering. */
:root{--reading-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
body,body.product-page,body.cx-page{font-family:var(--reading-font)!important;font-weight:400;line-height:1.65}
main h1,main h2,main h3,main h4,.header,.footer,.legal,.product-footer,.btn,button,input,select,textarea,summary{font-family:var(--reading-font)!important}
main h1,main h2,main h3,main h4{font-weight:700;letter-spacing:-.02em;text-shadow:none}
main p,main li,main label,main small{letter-spacing:normal;text-shadow:none}
.claim-card>summary p,.claim-card p,.claim-card li{font-size:16px!important;line-height:1.65!important;font-weight:400}
.claim-card>summary h3,.claim-card h3{font-size:20px!important;line-height:1.4!important}
.claim-card>summary small,.claim-card .claim-hint{font-size:14px!important;line-height:1.6!important}
.header .links a{font-size:15px}.appearance-menu>summary{font-size:14px}
@media(max-width:650px){body,body.product-page,body.cx-page{font-size:16px}.claim-card>summary p,.claim-card p,.claim-card li{font-size:16px!important}.header .links a{font-size:16px}}
/* Coverage names and limits must reflow independently. */
.cx-limits,.cx-limits>div,.cx-limits dt,.cx-limits dd{min-width:0;max-width:100%}
.cx-limits>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;align-items:start}
.cx-limits dt{white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.6}
.cx-limits dd{margin:0;white-space:nowrap;line-height:1.6}
.cx-duration{display:inline-block;white-space:nowrap}
@media(max-width:650px){.cx-limits>div{grid-template-columns:minmax(0,1fr);gap:5px;padding:14px 0}.cx-limits dd{text-align:left;white-space:normal;font-size:16px}.cx-limits dt{font-size:16px}.cx-plan .cx-detail>div{padding-left:14px;padding-right:14px}}

.retirement-contribution-note{display:block;margin-top:5px;font-size:14px;font-weight:400;line-height:1.6;color:inherit}.cx-sim-values dt{line-height:1.5}
