.article-wrap{
    background:#fff;
    padding: 44px 0 70px;
}

.article-container{
    max-width: 980px;
    margin: 0 auto;
}

.article-head{
    text-align: left;
    padding: 6px 0 18px;
    border-bottom: 1px solid rgba(0,0,0,.10);
    margin-bottom: 26px;
}

.article-eyebrow{
    font-size: 12px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(12,16,24,.55);
    margin: 0 0 10px;
}

.article-title{
    margin: 0 0 10px;
    font-family: "Bebas Neue", sans-serif;
    letter-spacing: .02em;
    font-size: clamp(44px, 5vw, 72px);
    line-height: 1.02;
    color: rgba(12,16,24,.94);
}

.article-dek{
    margin: 0 0 12px;
    max-width: 860px;
    font-size: 18px;
    line-height: 1.55;
    color: rgba(12,16,24,.72);
}

.article-byline{
    display:flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: rgba(12,16,24,.62);
    margin-bottom: 12px;
}

.article-by,
.article-date,
.article-source{
    white-space: nowrap;
}

.article-dot{
    opacity: .7;
}

.article-meta{
    display:flex;
    gap: 10px;
    flex-wrap:wrap;
    font-size: 13px;
    color: rgba(12,16,24,.65);
}

.article-section{
    padding: 14px 0;
}

.article-text{
    max-width: 820px;
    margin: 0;
}

.article-text p{
    font-size: 18px;
    line-height: 1.9;
    color: rgba(12,16,24,.88);
    margin: 0 0 18px;
}

.article-text p .p-sub{
    font-weight: 800;
    color: rgba(12,16,24,.92);
}

.article-figure{
    max-width: 980px;
    margin: 18px 0 22px;
    padding: 0;
}

.article-img{
    width: 100%;
    display: block;
    border-radius: 18px;
    box-shadow: 0 18px 55px rgba(0,0,0,.12);
    border: 1px solid rgba(0,0,0,.08);
}

.article-cap{
    margin: 10px 0 0;
    text-align: left;
    font-size: 13px;
    color: rgba(12,16,24,.58);
}

.article-actions{
    padding-top: 18px;
}

.more-wrap{
    padding: 54px 0 80px;
    background: linear-gradient(180deg, rgba(12,16,24,.02), rgba(12,16,24,.00));
    border-top: 1px solid rgba(0,0,0,.08);
}

.more-head{
    display:flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.more-title{
    margin: 0;
    font-family: "Bree Serif", serif;
    font-size: 26px;
    color: rgba(12,16,24,.92);
}

.more-link{
    color: rgba(12,16,24,.70);
    text-decoration: none;
    border-bottom: 1px solid rgba(12,16,24,.25);
}

.more-grid{
    display:grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.more-card{
    display:block;
    text-decoration:none;
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,.08);
    background: rgba(255,255,255,.96);
    overflow:hidden;
    box-shadow: 0 18px 45px rgba(0,0,0,.08);
    transition: transform .18s ease, box-shadow .18s ease;
}

.more-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 22px 60px rgba(0,0,0,.12);
}

.more-media{
    height: 120px;
    background-image: var(--img);
    background-size: cover;
    background-position: center;
}

.more-body{
    padding: 12px 12px 14px;
}

.more-meta{
    display:flex;
    gap: 10px;
    font-size: 12px;
    color: rgba(12,16,24,.62);
    margin-bottom: 8px;
}

.more-h3{
    margin: 0;
    font-size: 14px;
    line-height: 1.25;
    color: rgba(12,16,24,.90);
}

@media (max-width: 980px){
    .article-wrap{ padding: 36px 0 60px; }
    .article-text p{ font-size: 17px; }
    .more-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px){
    .article-head{ padding: 6px 0 16px; }
    .article-byline{ gap: 8px; }
    .article-dek{ font-size: 16px; }
    .more-grid{ grid-template-columns: 1fr; }
}

.article-h2{
    margin: 32px 0 10px;
    font-family: "Bree Serif", serif;
    font-size: 22px;
    line-height: 1.25;
    color: rgba(12,16,24,.90);
}

.article-h2 + p{
    margin-top: 0;
}

.article-h2::before{
    content:"";
    display:block;
    width: 42px;
    height: 2px;
    background: rgba(12,16,24,.12);
    margin-bottom: 10px;
}

/* ===== Editorial intro / lead (Charlotte-style) ===== */

.article-intro{
    padding: 28px 0 22px;
}

.article-intro .article-text{
    max-width: 760px; /* narrower than body */
}

.article-intro .article-text p{
    font-size: 20px;
    line-height: 1.75;
    color: rgba(12,16,24,.78);
    margin-bottom: 14px;
}

/* first sentence slightly stronger */
.article-intro .article-text p:first-child{
    color: rgba(12,16,24,.88);
}

.article-intro::after{
    content:"";
    display:block;
    width: 60px;
    height: 2px;
    background: rgba(12,16,24,.10);
    margin-top: 22px;
}


/* ===== Back button upgrade ===== */
.article-actions{
    padding-top: 26px;
    display:flex;
    justify-content: center; /* center it */
}

.article-actions .hl-btn{
    display:inline-flex;
    align-items:center;
    gap: 10px;
    padding: 12px 18px;
    border-radius: 999px;
    text-decoration:none;
    font-weight: 800;
    font-size: 14px;
    letter-spacing: .01em;

    background: rgba(12,16,24,.06);
    border: 1px solid rgba(12,16,24,.12);
    color: rgba(12,16,24,.86);

    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.article-actions .hl-btn:hover{
    transform: translateY(-2px);
    background: rgba(12,16,24,.08);
    box-shadow: 0 14px 38px rgba(0,0,0,.10);
}

.article-actions .hl-btn:active{
    transform: translateY(0px);
}

/* ===== Back to News button (Charlotte-style) ===== */

.article-actions{
    padding-top: 28px;
    display:flex;
    justify-content: flex-start; /* keep left */
}

.article-actions .hl-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width: 180px;
    height: 52px;
    padding: 0 28px;

    border-radius: 999px;
    background: #fff;
    border: 2px solid rgba(12,16,24,.65);

    font-size: 14px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(12,16,24,.85);
    text-decoration: none;

    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.article-actions .hl-btn:hover{
    background: rgba(12,16,24,.90);
    color: #fff;
    transform: translateY(-1px);
}

.article-actions .hl-btn:active{
    transform: translateY(0);
}

/* ===== More Happenings section height fix ===== */

.more-wrap{
    padding: 26px 0 36px; /* MUCH shorter */
    background: rgba(12,16,24,.02);
    border-top: 1px solid rgba(0,0,0,.08);
}

/* ===== More Happenings cards tuning ===== */

.more-grid{
    display:grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

/* card polish */
.more-card{
    border-radius: 18px;
    overflow:hidden;
}

/* image feels more premium */
.more-media{
    height: 140px;
    background-size: cover;
    background-position: center;
}

/* content spacing */
.more-body{
    padding: 12px 14px 16px;
}

.more-meta{
    font-size: 12px;
    color: rgba(12,16,24,.60);
    margin-bottom: 6px;
}

.more-h3{
    font-size: 15px;
    line-height: 1.3;
    color: rgba(12,16,24,.90);
}

.article-actions{
    margin-bottom: 48px;
}

.article-actions {
    display: flex;
    gap: 16px;
    margin-top: 48px;
}

/* secondary / ghost button */
.hl-btn-ghost {
    background: transparent;
    border: 2px solid rgba(0,0,0,.35);
    color: rgba(0,0,0,.85);
}

.hl-btn-ghost:hover {
    background: rgba(0,0,0,.04);
}


/* mobile tuning */
@media (max-width: 520px){
    .article-intro .article-text{
        max-width: 100%;
    }
    .article-intro .article-text p{
        font-size: 18px;
        line-height: 1.7;
    }
}
