/* =========================================================
   NewsOS / iReport Mobile Shell v6
   Targets the active .newsos-* public frontend.
   ========================================================= */

html,body{max-width:100%;overflow-x:hidden}
.newsos-shell,.newsos-shell *{box-sizing:border-box}
.newsos-shell img,.newsos-shell video,.newsos-shell iframe{max-width:100%;height:auto}
.newsos-card,.newsos-article,.newsos-side-story,.newsos-list-item{min-width:0}

.newsos-shell a:focus-visible,
.newsos-shell button:focus-visible,
.newsos-shell input:focus-visible{
    outline:3px solid currentColor;
    outline-offset:3px
}

@supports(content-visibility:auto){
    .newsos-section,.newsos-site-footer{
        content-visibility:auto;
        contain-intrinsic-size:auto 650px
    }
}

@media(max-width:820px){
    .newsos-site-header{
        position:sticky;
        top:0;
        z-index:1000
    }
    .newsos-header-inner,
    .newsos-main,
    .newsos-footer-inner,
    .newsos-single-pro,
    .newsos-archive-pro,
    .newsos-search-pro{
        width:calc(100% - 30px);
        max-width:none
    }
    .newsos-brand-row{
        grid-template-columns:1fr;
        gap:10px;
        padding:12px 0 10px
    }
    .newsos-logo{font-size:34px}
    .newsos-search-form{
        width:100%;
        min-width:0;
        display:grid;
        grid-template-columns:minmax(0,1fr) auto
    }
    .newsos-search-form input{
        min-width:0;
        height:46px;
        font-size:16px
    }
    .newsos-search-form button{
        min-width:46px;
        min-height:46px
    }
    .newsos-nav-row{
        margin:0 -15px;
        padding:10px 15px;
        gap:20px;
        overflow-x:auto;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;
        scroll-snap-type:x proximity
    }
    .newsos-nav-row a{
        min-height:44px;
        display:inline-flex;
        align-items:center;
        scroll-snap-align:start
    }
    .newsos-hero-grid{display:block}
    .newsos-hero-main,
    .newsos-hero-main>a{
        min-height:clamp(390px,68vh,520px)
    }
    .newsos-hero-content{padding:24px}
    .newsos-hero-content h1{
        font-size:clamp(32px,9vw,48px);
        line-height:1.04;
        overflow-wrap:anywhere
    }
    .newsos-side-column{
        grid-template-columns:1fr;
        gap:14px;
        margin-top:14px
    }
    .newsos-side-story,
    .newsos-side-story>a{min-height:240px}
    .newsos-grid-3,.newsos-grid-4,
    .newsos-carousel,.newsos-latest-grid,
    .newsos-related .newsos-grid-3{
        grid-template-columns:1fr
    }
    .newsos-card-image{aspect-ratio:16/9}
    .newsos-single-pro .newsos-single-layout,
    .newsos-single-layout{grid-template-columns:1fr;gap:32px}
    .newsos-single-title,
    .newsos-single-pro .newsos-single-title{
        font-size:clamp(31px,9vw,44px);
        line-height:1.07;
        overflow-wrap:anywhere
    }
    .newsos-single-deck,
    .newsos-single-pro .newsos-single-deck{
        font-size:18px;
        line-height:1.55
    }
    .newsos-single-content{
        font-size:18px;
        line-height:1.72;
        overflow-wrap:anywhere
    }
    .newsos-single-content iframe{
        width:100%;
        aspect-ratio:16/9;
        height:auto
    }
    .newsos-single-content table{
        display:block;
        width:100%;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch
    }
    .newsos-single-content .alignwide,
    .newsos-single-content .alignfull{
        width:100%;
        max-width:100%;
        margin-left:0;
        margin-right:0
    }
    .newsos-footer-grid{grid-template-columns:1fr;gap:28px}
    .newsos-footer-links a{
        min-height:44px;
        display:inline-flex;
        align-items:center
    }
}

@media(max-width:520px){
    .newsos-header-inner,
    .newsos-main,
    .newsos-footer-inner,
    .newsos-single-pro,
    .newsos-archive-pro,
    .newsos-search-pro{
        width:calc(100% - 24px)
    }
    .newsos-nav-row{margin:0 -12px;padding-left:12px;padding-right:12px}
    .newsos-breaking{
        display:flex;
        align-items:center;
        gap:12px;
        overflow:hidden
    }
    .newsos-breaking-label{flex:0 0 auto}
    .newsos-breaking-items{
        display:flex;
        overflow-x:auto;
        gap:18px;
        scrollbar-width:none
    }
    .newsos-breaking-items a{
        display:block!important;
        flex:0 0 78vw;
        white-space:normal;
        line-height:1.35
    }
    .newsos-hero-main,
    .newsos-hero-main>a{min-height:390px}
    .newsos-side-story,
    .newsos-side-story>a{min-height:220px}
    .newsos-single-content{font-size:17px}
}

@media(max-width:360px){
    .newsos-logo{font-size:30px}
    .newsos-hero-content{padding:18px}
    .newsos-hero-content h1,
    .newsos-single-title,
    .newsos-single-pro .newsos-single-title{font-size:30px}
}

@media(hover:none) and (pointer:coarse){
    .newsos-card:hover img,
    .newsos-hero-main:hover img,
    .newsos-side-story:hover img{transform:none}
}

@media(prefers-reduced-motion:reduce){
    .newsos-shell *,
    .newsos-shell *::before,
    .newsos-shell *::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
        scroll-behavior:auto!important
    }
}

/* =========================================================
   NewsOS / iReport Mobile Shell v7
   SINGLE ARTICLE + RELATED STORIES + READING UX
   ========================================================= */

/* Article text measure remains readable on larger phones/tablets. */
.newsos-single-content{
    max-width:100%;
}

.newsos-single-content p,
.newsos-single-content li{
    text-wrap:pretty;
}

.newsos-single-content figure,
.newsos-single-content .wp-block-image,
.newsos-single-content .wp-block-video,
.newsos-single-content .wp-block-embed{
    max-width:100%;
    margin-left:0;
    margin-right:0;
}

.newsos-single-content figcaption{
    font-size:13px;
    line-height:1.45;
    opacity:.72;
    margin-top:8px;
}

.newsos-single-content blockquote{
    margin-left:0;
    margin-right:0;
    padding-left:20px;
    border-left:4px solid currentColor;
}

@media(max-width:820px){

    /* Reading-first article layout. */
    .newsos-single-pro{
        padding-top:22px;
    }

    .newsos-single-meta,
    .newsos-article-meta{
        display:flex;
        flex-wrap:wrap;
        gap:7px 12px;
        font-size:13px;
        line-height:1.45;
    }

    .newsos-single-content p{
        margin:0 0 1.25em;
    }

    .newsos-single-content h2{
        font-size:clamp(24px,6.8vw,31px);
        line-height:1.15;
        margin:1.55em 0 .65em;
    }

    .newsos-single-content h3{
        font-size:22px;
        line-height:1.2;
        margin:1.4em 0 .6em;
    }

    .newsos-single-content ul,
    .newsos-single-content ol{
        padding-left:1.25em;
    }

    .newsos-single-content li{
        margin-bottom:.55em;
    }

    .newsos-single-content blockquote{
        padding-left:16px;
        font-size:1.04em;
        line-height:1.62;
    }

    /* Keep lead/featured media visually stable. */
    .newsos-single-featured,
    .newsos-single-featured img,
    .newsos-article-featured,
    .newsos-article-featured img{
        width:100%;
        max-width:100%;
    }

    .newsos-single-featured img,
    .newsos-article-featured img{
        display:block;
        aspect-ratio:16/9;
        object-fit:cover;
    }

    /*
     * Related news becomes a real mobile feed.
     * Large enough image for scanning, text gets remaining width.
     */
    .newsos-related{
        margin-top:42px;
    }

    .newsos-related .newsos-section-title,
    .newsos-related h2{
        font-size:26px;
        line-height:1.1;
        margin-bottom:18px;
    }

    .newsos-related .newsos-grid-3,
    .newsos-related-grid{
        display:grid;
        grid-template-columns:1fr;
        gap:0;
    }

    .newsos-related .newsos-card,
    .newsos-related-grid .newsos-card{
        display:grid;
        grid-template-columns:118px minmax(0,1fr);
        gap:14px;
        align-items:start;
        padding:15px 0;
        border-bottom:1px solid rgba(0,0,0,.10);
    }

    .newsos-related .newsos-card-image,
    .newsos-related-grid .newsos-card-image{
        width:118px;
        aspect-ratio:4/3;
        border-radius:8px;
        overflow:hidden;
    }

    .newsos-related .newsos-card-image img,
    .newsos-related-grid .newsos-card-image img{
        width:100%;
        height:100%;
        object-fit:cover;
    }

    .newsos-related .newsos-card h3,
    .newsos-related-grid .newsos-card h3{
        margin:0 0 6px;
        font-size:17px;
        line-height:1.25;
        overflow-wrap:anywhere;
    }

    /* Source/author boxes must never become wider than viewport. */
    .newsos-source-box,
    .newsos-author-box,
    .newsos-article-sources{
        max-width:100%;
        overflow-wrap:anywhere;
    }

    .newsos-source-box a,
    .newsos-author-box a,
    .newsos-article-sources a{
        min-height:36px;
        display:inline-flex;
        align-items:center;
    }

    /* Sharing controls: comfortable thumb targets. */
    .newsos-share,
    .newsos-share-links,
    .newsos-single-actions{
        display:flex;
        flex-wrap:wrap;
        gap:10px;
    }

    .newsos-share a,
    .newsos-share button,
    .newsos-share-links a,
    .newsos-single-actions a,
    .newsos-single-actions button{
        min-width:44px;
        min-height:44px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
    }
}

@media(max-width:430px){

    .newsos-single-content{
        font-size:17px;
        line-height:1.74;
    }

    .newsos-related .newsos-card,
    .newsos-related-grid .newsos-card{
        grid-template-columns:100px minmax(0,1fr);
        gap:12px;
    }

    .newsos-related .newsos-card-image,
    .newsos-related-grid .newsos-card-image{
        width:100px;
    }

    .newsos-related .newsos-card h3,
    .newsos-related-grid .newsos-card h3{
        font-size:16px;
    }
}

