/* =========================================================
   VSX Single Article
   Width Matched With Blog Hero
   Gilroy Font Only
========================================================= */

.vsx-single-article {
    --vsx-site-container: 1320px;
    --vsx-content-container: 980px;
    --vsx-reading-container: 940px;

    --vsx-sa-bg: #07080c;
    --vsx-sa-heading: #f6f3ee;
    --vsx-sa-text: rgba(246, 243, 238, 0.78);
    --vsx-sa-muted: rgba(246, 243, 238, 0.56);
    --vsx-sa-border: rgba(255, 255, 255, 0.10);
    --vsx-sa-accent: oklch(70.5% 0.213 47.604);

    width: 100%;
    padding: 120px 0 84px;
    background: var(--vsx-sa-bg) !important;
    color: var(--vsx-sa-heading);
    overflow-x: hidden;
    box-sizing: border-box;
    font-family: Gilroy !important;
}

.vsx-single-article::before,
.vsx-single-article::after {
    display: none !important;
}

.vsx-single-article__container {
    width: min(calc(100% - 24px), var(--vsx-site-container));
    margin: 0 auto;
    box-sizing: border-box;
}

/* =========================================================
   Hero
========================================================= */

.vsx-single-article__hero {
    padding-top: 0;
    margin-bottom: 48px;
    background: transparent !important;
}

.vsx-single-article__hero-grid {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.vsx-single-article__hero-content,
.vsx-single-article__hero-media {
    width: min(100%, var(--vsx-content-container));
    margin-left: auto;
    margin-right: auto;
}

/* =========================================================
   Title
========================================================= */

.vsx-single-article__title {
    width: 100%;
    margin: 0 0 22px !important;
    color: var(--vsx-sa-heading);
    font-family: Gilroy !important;
    font-size: clamp(34px, 4vw, 48px) !important;
    line-height: 1.16;
    font-weight: 900;
    letter-spacing: -1px;
    text-align: left !important;
}

.vsx-single-article__title mark {
    display: inline-block;
    padding: 0 0.08em;
    color: #07080c;
    background: var(--vsx-sa-accent);
}

/* =========================================================
   Meta Pill
========================================================= */

.vsx-single-article__top-bar {
    width: 100%;
    margin: 0 0 34px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.vsx-single-article__meta-strip {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 11px;
    max-width: 100%;
    padding: 12px 18px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--vsx-sa-accent) 44%, transparent);
    background: rgba(255, 255, 255, 0.035);
    box-shadow:
        0 10px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.vsx-single-article__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: rgba(246, 243, 238, 0.84);
    font-family: Gilroy !important;
    font-size: clamp(10px, 0.85vw, 13px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 1px;
    text-transform: uppercase;
    white-space: nowrap;
}

.vsx-single-article__meta-item strong {
    color: var(--vsx-sa-accent);
    font-weight: 900;
    letter-spacing: -1px;
}

.vsx-single-article__meta-divider {
    color: var(--vsx-sa-accent);
    font-family: Gilroy !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

/* Hide old label/meta/excerpt classes */
.vsx-single-article__week-label,
.vsx-single-article__issue-label,
.vsx-single-article__type-label,
.vsx-single-article__badge-wrap,
.vsx-single-article__badge,
.vsx-single-article__meta,
.vsx-single-article__excerpt {
    display: none !important;
}

/* =========================================================
   Featured Image (FULLY RESPONSIVE)
========================================================= */

.vsx-single-article__hero-media {
    position: relative;
    max-width: var(--vsx-content-container);
    width: 100%;
    margin: 0 auto;
    padding: 10px;
    border-radius: 26px;
    overflow: hidden;
    box-sizing: border-box;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.035)),
        rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.13);
    box-shadow:
        0 26px 70px rgba(0, 0, 0, 0.42),
        0 0 0 1px color-mix(in srgb, var(--vsx-sa-accent) 12%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.vsx-single-article__hero-media::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.04), rgba(0,0,0,0.20)),
        radial-gradient(circle at 84% 16%, color-mix(in srgb, var(--vsx-sa-accent) 18%, transparent), transparent 34%);
}

.vsx-single-article__hero-media::after {
    content: "";
    position: absolute;
    inset: 10px;
    z-index: 3;
    border-radius: 18px;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
}

.vsx-single-article__hero-media img,
.vsx-single-article__placeholder {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto !important; 
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain;
    border-radius: 18px;
}

.vsx-single-article__placeholder {
    background:
        radial-gradient(circle at 28% 30%, rgba(255,255,255,0.95) 0 4%, transparent 4.5%),
        radial-gradient(circle at 70% 34%, rgba(255,255,255,0.96) 0 18%, transparent 18.5%),
        radial-gradient(circle at 14% 84%, rgba(255,255,255,0.9) 0 20%, transparent 20.5%),
        linear-gradient(180deg, #d7dce2 0%, #c8ced6 100%);
}

/* =========================================================
   Article Content
========================================================= */

.vsx-single-article__content-card {
    margin-top: 38px;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.vsx-single-article__content {
    width: min(100%, var(--vsx-reading-container));
    margin: 0 auto;
    padding: 0;
    color: var(--vsx-sa-text);
    font-family: Gilroy !important;
    font-size: 15.5px;
    line-height: 1.82;
    font-weight: 500;
    text-align: justify!important;
}

.vsx-single-article__content p {
    text-align: justify;
    text-justify: inter-word;
}
.vsx-single-article__content h1,
.vsx-single-article__content h2,
.vsx-single-article__content h3,
.vsx-single-article__content h4,
.vsx-single-article__content h5,
.vsx-single-article__content h6 {
    text-align: left !important;
}
.vsx-single-article__content > *:first-child {
    margin-top: 0 !important;
}

.vsx-single-article__content > *:last-child {
    margin-bottom: 0 !important;
}

.vsx-single-article__content h1,
.vsx-single-article__content h2,
.vsx-single-article__content h3,
.vsx-single-article__content h4,
.vsx-single-article__content h5,
.vsx-single-article__content h6 {
    margin: 1.55em 0 0.68em;
    color: var(--vsx-sa-heading);
    font-family: Gilroy !important;
    font-weight: 900;
    line-height: 1.14;
    letter-spacing: -1px;
}

.vsx-single-article__content h1 {
    font-size: clamp(30px, 3vw, 40px);
}

.vsx-single-article__content h2 {
    font-size: clamp(25px, 2.25vw, 34px);
}

.vsx-single-article__content h3 {
    font-size: clamp(21px, 1.75vw, 27px);
}

.vsx-single-article__content h4 {
    font-size: 21px;
}

.vsx-single-article__content p,
.vsx-single-article__content ul,
.vsx-single-article__content ol,
.vsx-single-article__content blockquote,
.vsx-single-article__content table,
.vsx-single-article__content figure {
    margin: 0 0 1.2em;
}

.vsx-single-article__content p {
    color: var(--vsx-sa-text);
}

.vsx-single-article__content a,
.vsx-single-article__content a:visited {
    color: var(--vsx-sa-accent) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 4px !important;
    text-decoration-color: var(--vsx-sa-accent) !important;
    font-weight: 800;
    transition:
        color 0.22s ease,
        text-decoration-color 0.22s ease,
        opacity 0.22s ease;
}

.vsx-single-article__content a:hover,
.vsx-single-article__content a:focus,
.vsx-single-article__content a:focus-visible,
.vsx-single-article__content a:visited:hover,
.vsx-single-article__content a:visited:focus {
    color: #ffffff !important;
    text-decoration-color: #ffffff !important;
    opacity: 1;
}

.vsx-single-article__content a:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.55);
    outline-offset: 3px;
    border-radius: 3px;
}

.vsx-single-article__content strong {
    color: rgba(246, 243, 238, 0.96);
    font-weight: 900;
}

.vsx-single-article__content ul,
.vsx-single-article__content ol {
    padding-left: 1.2em;
}

.vsx-single-article__content li {
    margin-bottom: 0.45em;
}

.vsx-single-article__content img {
    display: block;
    width: 100%;
    height: auto;
    margin: 34px 0;
    border-radius: 14px;
    background: rgba(255,255,255,0.03);
    box-shadow:
        0 22px 54px rgba(0,0,0,0.32),
        0 0 0 1px rgba(255,255,255,0.08);
}

.vsx-single-article__content figcaption {
    margin-top: 10px;
    color: var(--vsx-sa-muted);
    font-size: 13px;
    line-height: 1.6;
    text-align: left !important;
}

.vsx-single-article__content blockquote {
    padding: 20px 22px;
    border-left: 4px solid var(--vsx-sa-accent);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.055);
    color: rgba(246, 243, 238, 0.9);
    font-size: 16px;
    line-height: 1.7;
    font-weight: 650;
}

.vsx-single-article__content table {
    width: 100%;
    border-collapse: collapse;
    overflow: hidden;
    border-radius: 16px;
    background: rgba(255,255,255,0.04);
}

.vsx-single-article__content table th,
.vsx-single-article__content table td {
    padding: 13px 15px;
    border: 1px solid rgba(255,255,255,0.09);
    color: var(--vsx-sa-text);
    text-align: left !important;
}

.vsx-single-article__content table th {
    color: var(--vsx-sa-heading);
    background: rgba(255,255,255,0.07);
    font-weight: 900;
}

/* =========================================================
   More Posts
========================================================= */

.vsx-single-article__more {
    width: min(100%, 1040px);
    margin: 76px auto 0;
}

.vsx-single-article__more-header {
    margin-bottom: 24px;
}

.vsx-single-article__section-kicker {
    margin-bottom: 12px;
    color: var(--vsx-sa-accent);
    font-family: Gilroy !important;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: -1px;
    text-transform: uppercase;
}

.vsx-single-article__more-title {
    margin: 0;
    color: var(--vsx-sa-heading);
    font-family: Gilroy !important;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -1px;
}

.vsx-single-article__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.vsx-single-article__list-card {
    overflow: hidden;
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.025));
    border: 1px solid rgba(255, 255, 255, 0.09);
    transition: transform 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease;
}

.vsx-single-article__list-card:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--vsx-sa-accent) 52%, transparent);
    box-shadow: 0 18px 42px rgba(0,0,0,0.28);
}

.vsx-single-article__list-link {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    color: inherit;
    text-decoration: none;
}

.vsx-single-article__list-media {
    position: relative;
    aspect-ratio: 1.2 / 0.8;
    overflow: hidden;
    background: #d7dce2;
}

.vsx-single-article__list-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(0,0,0,0.5));
    pointer-events: none;
}

.vsx-single-article__list-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.vsx-single-article__list-card:hover .vsx-single-article__list-media img {
    transform: scale(1.04);
}

.vsx-single-article__list-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 22px 22px 24px;
    flex: 1;
}

.vsx-single-article__list-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.vsx-single-article__list-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 28px;
    padding: 6px 11px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--vsx-sa-accent) 38%, transparent);
    background: color-mix(in srgb, var(--vsx-sa-accent) 16%, transparent);
    color: var(--vsx-sa-accent);
    font-family: Gilroy !important;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: -1px;
    text-transform: uppercase;
}

.vsx-single-article__list-meta {
    color: var(--vsx-sa-muted);
    font-family: Gilroy !important;
    font-size: 12px;
    font-weight: 600;
}

.vsx-single-article__list-title {
    margin: 0;
    color: var(--vsx-sa-heading);
    font-family: Gilroy !important;
    font-size: clamp(21px, 1.7vw, 28px);
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -1px;
}

.vsx-single-article__list-excerpt {
    color: var(--vsx-sa-text);
    font-family: Gilroy !important;
    font-size: 14px;
    line-height: 1.65;
}

.vsx-single-article__list-cta {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    font-family: Gilroy !important;
    font-size: 15px;
    font-weight: 800;
}

.vsx-single-article-empty {
    width: min(calc(100% - 24px), var(--vsx-site-container));
    margin: 0 auto;
    padding: 24px;
    border-radius: 16px;
    background: #13131a;
    color: #ffffff;
}

/* =========================================================
   Medium Desktop
========================================================= */

@media (max-width: 1200px) {
    .vsx-single-article__container,
    .vsx-single-article-empty {
        width: min(calc(100% - 20px), var(--vsx-site-container));
    }
}

/* =========================================================
   Tablet
========================================================= */

@media (max-width: 1024px) {
    .vsx-single-article {
        padding-top: 116px;
        padding-bottom: 70px;
    }

    .vsx-single-article__container,
    .vsx-single-article-empty {
        width: min(calc(100% - 16px), var(--vsx-site-container));
    }

    .vsx-single-article__hero {
        margin-bottom: 40px;
    }

    .vsx-single-article__top-bar {
        margin-bottom: 28px;
    }

    .vsx-single-article__meta-strip {
        border-radius: 22px;
        padding: 12px 15px;
        gap: 10px;
    }

    .vsx-single-article__meta-item {
        font-size: 11px;
    }

    .vsx-single-article__title {
        max-width: 100%;
        margin-bottom: 20px !important;
        font-size: clamp(30px, 5vw, 40px) !important;
    }

    .vsx-single-article__hero-content,
    .vsx-single-article__hero-media {
        width: min(100%, var(--vsx-content-container));
    }

    .vsx-single-article__hero-media {
        max-width: 100%;
    }

    /* Fixed rigid heights here to maintain standard image behavior */
    .vsx-single-article__hero-media img,
    .vsx-single-article__placeholder {
        min-height: 0 !important;
        max-height: none !important;
    }

    .vsx-single-article__content {
        width: min(100%, 860px);
    }

    .vsx-single-article__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* =========================================================
   Mobile
========================================================= */

@media (max-width: 767px) {
    .vsx-single-article {
        padding-top: 102px;
        padding-bottom: 56px;
    }

    .vsx-single-article__container,
    .vsx-single-article-empty {
        width: min(calc(100% - 16px), var(--vsx-site-container)) !important;
    }

    .vsx-single-article__hero {
        margin-bottom: 34px;
    }

    .vsx-single-article__top-bar {
        margin-bottom: 24px;
    }

    .vsx-single-article__meta-strip {
        display: flex;
        width: 100%;
        border-radius: 18px;
        padding: 12px 13px;
        gap: 8px;
    }

    .vsx-single-article__meta-item {
        font-size: 9px;
        letter-spacing: 1px;
        gap: 5px;
        white-space: normal;
    }

    .vsx-single-article__meta-divider {
        font-size: 10px;
    }

    .vsx-single-article__title {
        margin-bottom: 18px !important;
        font-size: clamp(28px, 8.6vw, 38px) !important;
        line-height: 1.18;
        letter-spacing: -1px;
    }

    .vsx-single-article__hero-media {
        padding: 7px;
        border-radius: 18px;
    }

    .vsx-single-article__hero-media::after {
        inset: 7px;
        border-radius: 13px;
    }

    /* Fixed constraints to ensure aspect-ratio scalability */
    .vsx-single-article__hero-media img,
    .vsx-single-article__placeholder {
        min-height: 0 !important;
        max-height: none !important;
        border-radius: 13px;
    }

    .vsx-single-article__content-card {
        margin-top: 28px;
    }

    .vsx-single-article__content {
        width: 100%;
        padding-top: 0;
        font-size: 15px;
        line-height: 1.75;
    }

    .vsx-single-article__content h1 {
        font-size: 28px;
    }

    .vsx-single-article__content h2 {
        font-size: 24px;
    }

    .vsx-single-article__content h3 {
        font-size: 21px;
    }

    .vsx-single-article__content h4 {
        font-size: 19px;
    }

    .vsx-single-article__content img {
        margin: 24px 0;
        border-radius: 14px;
    }

    .vsx-single-article__content blockquote {
        padding: 18px;
        font-size: 15px;
    }
}

/* =========================================================
   Small Mobile
========================================================= */

@media (max-width: 420px) {
    .vsx-single-article {
        padding-top: 98px;
        padding-bottom: 50px;
    }

    .vsx-single-article__container,
    .vsx-single-article-empty {
        width: min(calc(100% - 12px), var(--vsx-site-container)) !important;
    }

    .vsx-single-article__title {
        font-size: clamp(27px, 8.2vw, 35px) !important;
    }

    /* Stripped rigid height rule sets for clean rendering */
    .vsx-single-article__hero-media img,
    .vsx-single-article__placeholder {
        min-height: 0 !important;
        max-height: none !important;
    }
}