/* ==========================================================
   The Open Page - Single News
========================================================== */

.top-news-single {
    background: #ffffff;
    color: #202020;
}

.top-news-container {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.top-news-reading-container {
    width: min(780px, calc(100% - 40px));
    margin: 0 auto;
}


/* Header */

.top-news-header {
    padding: 80px 0 45px;
}

.top-news-category {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.7px;
    margin-bottom: 18px;
    color: #006c55;
}

.top-news-header h1 {
    max-width: 950px;
    margin: 0;
    font-size: clamp(40px, 6vw, 70px);
    line-height: 1.08;
    letter-spacing: -1.5px;
}

.top-news-excerpt {
    max-width: 820px;
    margin-top: 25px;
    font-size: 20px;
    line-height: 1.65;
    color: #555555;
}

.top-news-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 22px;
    margin-top: 30px;
    font-size: 14px;
    color: #6a6a6a;
}

.top-news-author strong {
    color: #222222;
}

.top-news-school a {
    color: #006c55;
    text-decoration: none;
    font-weight: 600;
}


/* Featured */

.top-news-featured {
    padding-bottom: 60px;
}

.top-news-featured-image {
    display: block;
    width: 100%;
    max-height: 650px;
    object-fit: cover;
}


/* Article */

.top-news-body {
    padding-bottom: 80px;
}

.top-news-content {
    font-size: 18px;
    line-height: 1.9;
}

.top-news-content p {
    margin: 0 0 26px;
}

.top-news-content h2 {
    margin: 50px 0 20px;
    font-size: 34px;
    line-height: 1.25;
}

.top-news-content h3 {
    margin: 40px 0 18px;
    font-size: 27px;
}

.top-news-content img {
    max-width: 100%;
    height: auto;
}


/* Share */

.top-news-share {
    margin-top: 55px;
    padding: 25px 0;
    border-top: 1px solid #e8e8e8;
    border-bottom: 1px solid #e8e8e8;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.top-news-share span {
    margin-right: 10px;
    font-weight: 700;
}

.top-news-share a {
    border: 1px solid #dddddd;
    padding: 9px 14px;
    text-decoration: none;
    color: #222222;
    font-size: 13px;
}

.top-news-back {
    margin-top: 30px;
}

.top-news-back a {
    font-weight: 700;
    text-decoration: none;
    color: #006c55;
}


/* Related */

.top-related-stories {
    background: #f5f3ed;
    padding: 80px 0;
}

.top-related-heading {
    margin-bottom: 35px;
}

.top-related-heading span {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: 12px;
    font-weight: 700;
}

.top-related-heading h2 {
    margin: 7px 0 0;
    font-size: 42px;
}

.top-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.top-related-card {
    background: #ffffff;
}

.top-related-image {
    display: block;
    height: 220px;
    overflow: hidden;
}

.top-related-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-related-content {
    padding: 24px;
}

.top-related-category {
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 10px;
    color: #006c55;
}

.top-related-content h3 {
    margin: 0 0 12px;
    font-size: 21px;
    line-height: 1.35;
}

.top-related-content h3 a {
    color: #222222;
    text-decoration: none;
}

.top-related-date {
    font-size: 13px;
    color: #777777;
    margin-bottom: 18px;
}

.top-related-read {
    text-decoration: none;
    font-weight: 700;
    color: #006c55;
}


/* Tablet */

@media (max-width: 1024px) {

    .top-related-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* Mobile */

@media (max-width: 767px) {

    .top-news-container,
    .top-news-reading-container {
        width: calc(100% - 30px);
    }

    .top-news-header {
        padding: 55px 0 35px;
    }

    .top-news-meta {
        display: block;
    }

    .top-news-meta > span {
        display: block;
        margin-top: 8px;
    }

    .top-news-featured {
        padding-bottom: 40px;
    }

    .top-news-content {
        font-size: 17px;
    }

    .top-related-stories {
        padding: 55px 0;
    }

    .top-related-grid {
        grid-template-columns: 1fr;
    }

    .top-related-image {
        height: 230px;
    }
}

/* ==========================================================
   NEWS ARCHIVE PAGE
========================================================== */

.top-news-page {
    background: #ffffff;
    color: #202020;
}


/* ==========================================================
   Hero
========================================================== */

.top-news-page-hero {
    background: #f5f3ed;
    padding: 90px 0 75px;
}

.top-news-page-label {
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 1.7px;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #006c55;
}

.top-news-page-hero h1 {
    margin: 0 0 18px;
    font-size: clamp(46px, 6vw, 76px);
    line-height: 1;
}

.top-news-page-hero p {
    margin: 0;
    max-width: 700px;
    font-size: 18px;
    line-height: 1.75;
    color: #555555;
}


/* ==========================================================
   Filters
========================================================== */

.top-news-filters-section {
    border-bottom: 1px solid #e9e9e9;
    background: #ffffff;
}

.top-news-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 24px 0;
}

.top-news-filters a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 15px;
    border: 1px solid #dddddd;
    border-radius: 50px;
    color: #222222;
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: .2s ease;
}

.top-news-filters a:hover,
.top-news-filters a.active {
    background: #0f4b3d;
    border-color: #0f4b3d;
    color: #ffffff;
}


/* ==========================================================
   Section Heading
========================================================== */

.top-news-section-heading {
    margin-bottom: 35px;
}

.top-news-section-heading > span {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: 12px;
    font-weight: 700;
    color: #006c55;
    margin-bottom: 7px;
}

.top-news-section-heading h2 {
    margin: 0;
    font-size: clamp(32px, 4vw, 48px);
}


/* ==========================================================
   Featured Story
========================================================== */

.top-news-featured-story {
    padding: 75px 0;
}

.top-featured-story-card {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    background: #f5f3ed;
    min-height: 470px;
}

.top-featured-story-image {
    display: block;
    min-height: 470px;
    overflow: hidden;
    background: #eeeeee;
}

.top-featured-story-image img {
    width: 100%;
    height: 100%;
    min-height: 470px;
    object-fit: cover;
    display: block;
}

.top-featured-story-content {
    padding: 55px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.top-story-category {
    display: block;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #006c55;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 13px;
}

.top-featured-story-content h3 {
    margin: 0 0 18px;
    font-size: clamp(32px, 3.2vw, 46px);
    line-height: 1.15;
}

.top-featured-story-content h3 a {
    color: #202020;
    text-decoration: none;
}

.top-featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-bottom: 20px;
    font-size: 13px;
    color: #666666;
}

.top-featured-story-content p {
    margin: 0 0 25px;
    font-size: 16px;
    line-height: 1.8;
    color: #555555;
}

.top-story-read-button {
    display: inline-flex;
    align-self: flex-start;
    padding: 13px 20px;
    background: #0f4b3d;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
}


/* ==========================================================
   Latest News Grid
========================================================== */

.top-news-list-section {
    padding: 75px 0 90px;
}

.top-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.top-news-card {
    border: 1px solid #e6e6e6;
    background: #ffffff;
    overflow: hidden;
    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.top-news-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 45px rgba(0,0,0,.08);
}

.top-news-card-image {
    display: block;
    height: 235px;
    overflow: hidden;
    background: #eeeeee;
}

.top-news-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.top-news-card:hover
.top-news-card-image img {
    transform: scale(1.04);
}

.top-news-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 220px;
    background: #eeeeee;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #777777;
}

.top-news-card-content {
    padding: 25px;
}

.top-news-card-content h3 {
    margin: 0 0 13px;
    font-size: 23px;
    line-height: 1.35;
}

.top-news-card-content h3 a {
    color: #202020;
    text-decoration: none;
}

.top-news-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-bottom: 13px;
    color: #777777;
    font-size: 12px;
}

.top-news-card-school {
    display: inline-block;
    margin-bottom: 13px;
    font-size: 13px;
    font-weight: 700;
    color: #006c55;
    text-decoration: none;
}

.top-news-card-content p {
    color: #555555;
    line-height: 1.7;
    margin: 0 0 18px;
}

.top-news-card-read {
    color: #006c55;
    text-decoration: none;
    font-weight: 700;
}


/* ==========================================================
   Pagination
========================================================== */

.top-news-pagination {
    margin-top: 55px;
}

.top-news-pagination .page-numbers {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.top-news-pagination .page-numbers li {
    margin: 0;
}

.top-news-pagination
.page-numbers
.page-numbers {
    min-width: 42px;
    height: 42px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dddddd;
    color: #202020;
    text-decoration: none;
}

.top-news-pagination
.page-numbers
.current {
    background: #0f4b3d;
    border-color: #0f4b3d;
    color: #ffffff;
}


/* ==========================================================
   Empty
========================================================== */

.top-news-empty {
    padding: 60px 0;
    text-align: center;
}

.top-news-empty h3 {
    margin: 0 0 10px;
    font-size: 30px;
}


/* ==========================================================
   Tablet
========================================================== */

@media (max-width: 1024px) {

    .top-featured-story-card {
        grid-template-columns: 1fr;
    }

    .top-featured-story-image {
        min-height: 400px;
    }

    .top-featured-story-image img {
        min-height: 400px;
    }

    .top-news-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* ==========================================================
   Mobile
========================================================== */

@media (max-width: 767px) {

    .top-news-page-hero {
        padding: 60px 0;
    }

    .top-news-filters {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 20px;
    }

    .top-news-filters a {
        flex: 0 0 auto;
    }

    .top-news-featured-story {
        padding: 55px 0;
    }

    .top-featured-story-image,
    .top-featured-story-image img {
        min-height: 280px;
        height: 280px;
    }

    .top-featured-story-content {
        padding: 30px 22px;
    }

    .top-news-list-section {
        padding: 55px 0 70px;
    }

    .top-news-grid {
        grid-template-columns: 1fr;
    }

    .top-news-card-image {
        height: 230px;
    }
}

/* ==========================================================
   SINGLE STORY - EDITORIAL ENHANCEMENTS
========================================================== */

.top-news-single{
    background:transparent;
}

.top-news-header{
    padding-top:75px;
}

.top-news-category{
    display:inline-flex;
    align-items:center;
    min-height:29px;
    padding:6px 11px;
    margin-bottom:20px;
    background:#0f4b3d;
    color:#fff !important;
    border-radius:3px;
    text-decoration:none !important;
    font-size:11px;
    letter-spacing:1.2px;
}

.top-news-header h1{
    max-width:1000px;
    font-size:clamp(42px,5.8vw,72px);
}

.top-news-author-type{
    color:#777;
}

.top-news-featured-image{
    width:100%;
    max-height:680px;
    border-radius:6px;
}

.top-news-content{
    color:#2b2b2b;
}

.top-news-content > p:first-child{
    font-size:20px;
    line-height:1.85;
}

.top-news-content blockquote{
    margin:40px 0;
    padding:6px 0 6px 25px;
    border-left:4px solid #006c55;
    color:#3d3d3d;
    font-size:23px;
    line-height:1.55;
}

.top-news-content ul,
.top-news-content ol{
    margin:0 0 28px;
    padding-left:28px;
}

.top-news-content li{
    margin-bottom:10px;
}

.top-news-content figure{
    margin:35px 0;
}

.top-news-content figcaption{
    margin-top:8px;
    color:#777;
    font-size:13px;
    text-align:center;
}

.top-story-school-box{
    margin-top:45px;
    padding:27px 30px;
    background:#efeae1;
    border-left:4px solid #006c55;
    border-radius:5px;
}

.top-story-school-box > span{
    display:block;
    margin-bottom:6px;
    color:#006c55;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:1.2px;
}

.top-story-school-box h3{
    margin:0 0 10px;
    font-size:24px;
}

.top-story-school-box a{
    color:#006c55 !important;
    font-size:13px;
    font-weight:800;
    text-decoration:none !important;
}

.top-news-share a{
    border-radius:4px;
    background:#fff;
    transition:.2s ease;
}

.top-news-share a:hover{
    background:#0f4b3d;
    border-color:#0f4b3d;
    color:#fff;
}

.top-story-navigation{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px;
    margin-top:35px;
    padding-top:30px;
    border-top:1px solid #e6e0d7;
}

.top-story-navigation-item > span{
    display:block;
    margin-bottom:7px;
    color:#888;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1px;
}

.top-story-navigation-item > a{
    color:#202020 !important;
    font-size:15px;
    line-height:1.5;
    font-weight:800;
    text-decoration:none !important;
}

.top-story-navigation-item > a:hover{
    color:#006c55 !important;
}

.top-story-navigation-next{
    text-align:right;
}

.top-related-stories{
    background:#efeae1;
}

.top-related-card{
    overflow:hidden;
    border:1px solid #e5e0d7;
    border-radius:7px;
}

.top-related-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#e7e2d9;
    color:#0f4b3d;
    font-size:20px;
    font-weight:800;
}

@media(max-width:767px){

    .top-news-header{
        padding-top:45px;
    }

    .top-news-header h1{
        font-size:38px;
    }

    .top-news-excerpt{
        font-size:17px;
    }

    .top-news-featured-image{
        border-radius:3px;
    }

    .top-news-content > p:first-child{
        font-size:18px;
    }

    .top-story-navigation{
        grid-template-columns:1fr;
        gap:22px;
    }

    .top-story-navigation-next{
        text-align:left;
    }

    .top-story-school-box{
        padding:22px;
    }
}
