/* Shared, viewport-sized reading pages using existing Asas tokens. */
body.viewport-site{height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
body.viewport-site>.site-header{position:relative;z-index:10}
body.viewport-site>main.page-flow{width:min(880px,calc(100% - 40px));max-width:none;margin:12px auto;padding:0;min-height:0}
body .page-flow{column-count:1;column-gap:24px;column-fill:auto;overflow:hidden!important;scroll-behavior:auto!important;overscroll-behavior:contain;min-height:0;position:relative}
body.screen-mode .screen-content.page-flow{overflow:hidden;scrollbar-gutter:auto}
.page-flow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
body .page-flow .flow-group{display:contents}
.page-flow section,.page-flow article,.page-flow aside,.page-flow form{break-inside:auto;min-height:0}
.page-flow h1,.page-flow h2,.page-flow h3,.page-flow h4,.page-flow legend{break-after:avoid;break-inside:avoid}
.page-flow p,.page-flow li{orphans:3;widows:3}
.page-flow img{max-height:calc(var(--flow-height,70vh) * .45);object-fit:contain;max-width:100%}
.page-flow .article-heading{padding:8px 0 16px}
.page-flow .article-heading h1,.page-flow.info-page h1,.page-flow .quote-intro h1{font-size:clamp(26px,4vw,40px);line-height:1.2;margin:8px 0 12px}
.page-flow .article-deck,.page-flow .article-body p,.page-flow .story-prose p,.page-flow.info-page p{font-size:16px;line-height:1.65}
.page-flow .article-hero,.page-flow .editorial-figure,.page-flow .quote-visual{height:auto;min-height:0;max-height:none;margin:12px 0;break-inside:avoid}
.page-flow .article-hero img,.page-flow .editorial-figure img,.page-flow .quote-visual img{width:100%;height:auto;max-height:calc(var(--flow-height,70vh) * .4)}
.page-flow .article-toc,.page-flow .quote-intro{position:static;max-height:none}
.page-flow .article-toc{margin:12px 0;padding:12px 16px;break-inside:auto}
.page-flow .article-body section{padding:12px 0}
.page-flow .article-body h2{font-size:25px;line-height:1.3}
.page-flow .article-body h3{font-size:20px;line-height:1.4}
.page-flow .breadcrumb{min-height:44px;display:inline-flex;align-items:center;margin:0}
.page-flow .field,.page-flow .quote-field,.page-flow .quote-choice,.page-flow .quote-consent,.page-flow .consent,.page-flow .quiz-option{break-inside:avoid}
.page-flow input,.page-flow select,.page-flow textarea{font-size:16px;max-width:100%}
.page-flow textarea{max-height:calc(var(--flow-height,70vh) * .35)}
.page-flow .quote-panel,.page-flow .advice-form,.page-flow .planning-workspace{padding:12px 0;border:0;border-radius:0;box-shadow:none;overflow:visible}
.page-flow .quote-intro .lead{font-size:16px;line-height:1.6}
.page-flow .quote-panel h2{font-size:26px;line-height:1.3;margin:12px 0}
.page-flow .quote-choice{margin:8px 0;min-height:52px;padding:10px 12px}
.page-flow .quote-field{margin:12px 0}
.page-flow .quote-actions{break-inside:avoid}
.page-flow .quote-help{font-size:14px;line-height:1.5}
.page-flow .quote-promise p{margin:12px 0}
.page-flow .quote-contact{break-inside:avoid}
.page-flow .quote-methods{flex-wrap:wrap}
.page-flow .calculator-result{position:static;break-inside:auto;padding:16px}
.page-flow .planning-intro{break-inside:avoid}
.page-flow .planning-intro h3{font-size:24px}
.page-flow .topic-card{break-inside:avoid;margin-bottom:12px}
.page-flow .scenario-image{min-height:0;height:calc(var(--flow-height,70vh) * .35)}
.page-flow .scenario-content{padding:16px}
.page-flow .faq-list details{break-inside:auto}
.page-flow details>summary{break-inside:avoid;min-height:44px}
.page-flow details[open]{overflow:visible}
.page-flow details::details-content{transition:none!important;overflow:visible!important}
.page-flow .editorial-grid>.editorial-card{display:block;break-inside:auto;margin:0 0 20px;overflow:visible}
.page-flow .editorial-grid>.editorial-card>a{display:block;height:auto}
.page-flow .editorial-grid .editorial-photo{height:calc(var(--flow-height,70vh) * .35);min-height:0}
.page-flow .editorial-grid .editorial-copy{padding:16px}
.page-flow .editorial-grid .editorial-copy h3{font-size:23px;line-height:1.3}
.page-flow .editorial-grid .editorial-copy p{display:block;max-height:none;overflow:visible;line-height:1.6;font-size:15px}
.page-flow .guide-product-reference .product-grid{display:contents}
.page-flow .guide-product-reference .product-card{display:block;overflow:visible;margin:12px 0;border:0}
.page-flow .guide-product-reference .product-photo{height:calc(var(--flow-height,70vh) * .3);min-height:0}
.page-flow .guide-product-reference .product-card-body{padding:12px 0}
.page-flow .guide-product-reference .product-expand{break-inside:auto}
.footer-dialog[open]{height:min(720px,calc(100dvh - 24px))}
.footer-dialog>.page-flow{flex:1;min-height:0;width:100%;padding:16px!important}
.footer-dialog .page-flow .container{width:auto;margin:0}
.footer-dialog .page-flow .footer-navigation>div{break-inside:avoid;margin:12px 0}
body .page-flow [hidden]{display:none!important}
@media(max-width:750px){
 body.viewport-site .header-row{min-height:64px}
 body.viewport-site>main.page-flow{width:calc(100% - 32px);margin:8px auto}
 .page-flow .quote-intro h1{font-size:28px}
 .page-flow .quote-choices{grid-template-columns:1fr}
}
@media print{
 body.viewport-site{height:auto;display:block;overflow:visible}
 .page-flow{column-count:auto;height:auto!important;overflow:visible!important}
}
body.viewport-site>main.page-flow{display:block}
body.viewport-site .site-header .header-row .logo svg.brand-lockup{width:114px;height:44px;max-width:none}
body.viewport-site .site-header .logo{min-width:114px}

/* Nested panel padding must not extend a fragment below its page. */
body .page-flow .flow-group{padding:0;border:0;min-height:0;overflow:visible}
body .page-flow .advice-form{display:contents}
body .page-flow .article-questions{padding:0}
body .page-flow .scenario-content{padding:0}
body .page-flow .scenario-tabs{break-inside:avoid}
body .page-flow .product-choices{display:block}
body .page-flow .product-choices>div{break-inside:avoid}
@media(max-height:620px){
 body .page-flow .hero-grid,body .page-flow .hero-copy,body .page-flow .product-section>.container,body .page-flow .editorial-card>a,body .page-flow .editorial-copy,body .page-flow .product-card-body{display:contents!important}
 body .page-flow .product-grid,body .page-flow .editorial-rail{display:block!important;overflow:visible!important;height:auto!important;padding:0;scroll-snap-type:none}
 body .page-flow .product-card,body .page-flow .editorial-card{display:block!important;overflow:visible!important;height:auto!important;break-inside:auto;border:0;margin:12px 0}
 body .page-flow .product-carousel-controls,body .page-flow .editorial-controls>button,body .page-flow #story-position,body .page-flow .story-meter{display:none!important}
 body .page-flow .hero-stage,body .page-flow .hero-art,body .page-flow .editorial-photo,body .page-flow .product-photo{height:calc(var(--flow-height,50vh) * .4)!important;min-height:0!important;break-inside:avoid}
 body .page-flow .hero h1,body .page-flow .section-heading h2{font-size:26px!important;line-height:1.2!important}
 body .page-flow .hero h1 span{display:inline!important}
 body .page-flow .hero-needs,body .page-flow .quiz-options{break-inside:auto}
 body .page-flow .hero-need-options,body .page-flow .quiz-panel{display:contents}
 body .page-flow .hero-needs button{min-height:44px;margin-right:8px}
 body .page-flow .quiz-option{break-inside:avoid}
 body .page-flow .section-heading,body .page-flow .planning-intro{break-inside:auto;display:block}
 body .page-flow .topic-card{break-inside:auto;display:block!important}
 body .page-flow .planning-intro h3,body .page-flow h2{font-size:23px!important}
 body .page-flow .scenario-image{height:calc(var(--flow-height,50vh) * .3)!important}
}
/* Allow the browser to split long sections rather than clipping an atomic box. */
body .page-flow>section,body .page-flow>article,body .page-flow>aside{overflow:visible!important}
body .page-flow{padding-bottom:16px!important}
body.viewport-site>main.page-flow{padding-bottom:16px}
@media(max-height:620px){
 body .page-flow .article-heading,body .page-flow .article-toc,body .page-flow .quote-intro,body .page-flow .hero .actions,body .page-flow .hero-secondary-actions,body .page-flow .disclosure-strip{display:contents!important}
 body .page-flow .hero .photo-caption{display:none}
 body .page-flow .hero-needs{display:block;min-width:0}
 body .page-flow .product-section .product-filter{display:block}
 body .page-flow .product-filter button{margin:4px;min-height:44px}
 body .page-flow .guide-highlights .guide-benefit{display:block;break-inside:auto}
 body .page-flow .article-body section{padding:0;margin:12px 0}
}
body .page-flow img.article-hero{display:block;width:100%;height:auto;max-height:calc(var(--flow-height,70vh) * .4);object-fit:contain}
body .page-flow .guide-benefit{break-inside:avoid}
@media(max-height:620px){body .page-flow .guide-benefit{break-inside:auto}}
/* An opened product becomes a reading flow, including its full policy conditions. */
body .page-flow:has(.product-expand[open]) .product-section>.container{display:block!important}
body .page-flow:has(.product-expand[open]) .product-card-body{display:contents!important}
body .page-flow:has(.product-expand[open]) .product-grid{display:block!important;overflow:visible!important;scroll-snap-type:none;padding:0;margin-inline:0}
body .page-flow:has(.product-expand[open]) .product-card{display:block!important;overflow:visible!important;height:auto;border:0;margin-block:12px}
body .page-flow:has(.product-expand[open]) .product-card[hidden]{display:none!important}
body .page-flow:has(.product-expand[open]) .product-carousel-controls{display:none!important}
body .page-flow:has(.product-expand[open]) .product-photo{height:calc(var(--flow-height,70vh) * .25)!important;min-height:0!important}
body .page-flow:has(.product-expand[open]) .product-detail{display:contents!important}
body .page-flow:has(.product-expand[open]) .product-expand{overflow:visible;break-inside:auto}
body .page-flow:has(.product-expand[open]) .product-quote{break-inside:avoid}

.page-flow [data-page-focus]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

body.viewport-site,body.asas-home.screen-mode{height:var(--reading-viewport,100dvh)}
body .page-flow .scenario-image{break-inside:avoid;height:calc(var(--flow-height,70vh) * .3)!important;min-height:0!important;overflow:clip}
body .page-flow .scenario-image>span{padding:8px 12px;font-size:10px;line-height:1.4}
/* Safari chrome reduces the content viewport independently of the screen height. */
@media(max-width:750px){
 body.screen-mode .page-flow>.hero .hero-art{height:clamp(96px,calc(var(--flow-height,100svh) - 540px),230px)}
}

/* Keep carousel overflow inside its own scrollport, not the reading columns. */
@media(min-height:621px){
 body .page-flow:not(:has(.product-expand[open])) .product-section .product-grid{contain:layout}
}
/* Keep guide artwork as one atomic fragment in iPhone Safari's columns. */
body .page-flow img.article-hero{display:inline-block;vertical-align:top;-webkit-column-break-inside:avoid;break-inside:avoid}

/* A trailing section decoration must not create an empty reading column. */
body.screen-mode .page-flow>#kalkulator{padding-bottom:0;border-bottom:0}
