/* Keep desktop-mode viewports within the available page width. */
.wrap{width:100%;min-width:0}
.nav .wrap{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:0 22px;overflow:visible;white-space:normal;padding-top:6px;padding-bottom:6px}
.nav .wrap>a,.nav .wrap>button{flex:0 1 auto;min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word;padding-top:12px;padding-bottom:12px;line-height:1.35}
.nav .commercial{margin-left:0}
.service-strip{width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.service-strip>*{min-width:0;max-width:100%}
.service-strip #regional-weather{flex-wrap:wrap;overflow-wrap:anywhere}
.service-strip #regional-weather>div{min-width:0;max-width:100%;flex-wrap:wrap}
.ferry-panel{overflow-wrap:anywhere}
.main-grid>*,.lower>*,.news-grid>*,.regional-grid>*,.business-grid>*{min-width:0}
img,video{max-width:100%}
@media(max-width:1050px){.nav .wrap{gap:0 18px}.nav .wrap>a,.nav .wrap>button{font-size:13px}}
@media(max-width:800px){.service-strip{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.nav .wrap{gap:0 18px;min-height:53px}.nav .wrap>a,.nav .wrap>button{padding-top:10px;padding-bottom:10px}}

/* Mobile navigation stays in one swipeable row. */
@media(max-width:900px){
.nav .wrap{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;white-space:nowrap;gap:23px;-webkit-overflow-scrolling:touch}
.nav .wrap>a,.nav .wrap>button{flex:0 0 auto;max-width:none;white-space:nowrap;overflow-wrap:normal;padding-top:16px;padding-bottom:16px}
}

/* Constrain each layout track; desktop navigation must never widen the page. */
html,body{width:100%;min-width:0;margin-left:0;margin-right:0}
.wrap{box-sizing:border-box;width:100%;max-width:1240px;min-width:0;margin-left:auto;margin-right:auto}
.topbar .wrap{flex-wrap:wrap;gap:8px 18px}.topbar .wrap>span{min-width:0;overflow-wrap:break-word}
.nav,.region-panels,.masthead,.footer,main{min-width:0;max-width:100%}
.nav .wrap>*{box-sizing:border-box;min-width:0;max-width:100%;overflow-wrap:anywhere}
.news-and-sponsors,.editorial-grid,.service-strip,.home-service-column,.sponsor-sidebar,.intro,.section-heading{min-width:0;max-width:100%}
.news-and-sponsors>*,.editorial-grid>*,.home-service-column>*,.service-strip>*,.section-heading>*{min-width:0}
.service-strip{box-sizing:border-box;width:100%;max-width:1184px;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.news-grid,.compact-grid,.regional-grid,.business-grid{min-width:0;max-width:100%}
.news-copy h2,.news-copy p,.article h1,.standfirst{overflow-wrap:break-word}
figure{max-width:100%;min-width:0}img,video,iframe{max-width:100%}
@media(min-width:900px){
 .nav .wrap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 16px;overflow:visible;white-space:normal;align-items:stretch;padding-top:6px;padding-bottom:6px}
 .nav .wrap>a,.nav .wrap>button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-width:0;white-space:normal;text-align:left;overflow-wrap:break-word;font-size:13px;line-height:1.35;padding:11px 0}
}
@media(max-width:899px){
 .nav .wrap{display:flex;flex-wrap:wrap;overflow:visible;gap:0 18px;white-space:normal}
 .nav .wrap>a,.nav .wrap>button{flex:0 1 auto;white-space:normal;overflow-wrap:break-word}
 .service-strip{grid-template-columns:minmax(0,1fr)}
 .news-and-sponsors{grid-template-columns:minmax(0,1fr)}
 .intro{flex-wrap:wrap}.section-heading{gap:12px;flex-wrap:wrap}
}

@media(max-width:899px){
.nav .wrap{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;white-space:nowrap;gap:23px;-webkit-overflow-scrolling:touch}
.nav .wrap>a,.nav .wrap>button{flex:0 0 auto;max-width:none;white-space:nowrap;overflow-wrap:normal;padding:16px 0}
}
