/* 종합시사매거진 스킨
 *
 * sisanewszine.co.kr 의 지면 성격을 새 플랫폼에서 재현한다. 원본의 CSS·마크업을
 * 가져온 것이 아니라, 실측한 값을 기준으로 우리 컴포넌트(.tn-*)에 다시 입혔다.
 *
 * 실측 기준
 *   주조색 #e50012 (빨강)   본문 #222   보조 #767676 / #a5a5a5
 *   본문 폭 1080px          시스템 고딕(맑은 고딕·돋움) 계열
 *
 * 적용: 해당 사이트 설정에서 theme_skin = sisanewszine
 */

:root {
    --tn-red: #e50012;
    --tn-red-dark: #b8000e;
    --tn-line: #e8e8e8;
    --tn-ink: #222;
    --tn-ink-soft: #767676;
    --tn-ink-faint: #a5a5a5;
}

body {
    background: var(--tn-bg, #fff);
    color: var(--tn-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Malgun Gothic", 돋움, dotum,
                 "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
    letter-spacing: -0.015em;
}

/* 지면 폭은 관리자의 '지면 폭' 설정(--tn-page-max)을 따른다.
   여기에 px 를 못박아 두면 홈(격자는 --tn-page-max 를 씀)과 카테고리·기사 페이지가
   서로 다른 폭으로 그려진다. 실제로 홈은 1320, 카테고리·기사는 1080px 로 갈라져
   사이드 열이 261px 까지 좁아지고 페이지끼리 세로선도 어긋났다. */
.tn-container {
    max-width: min(100%, var(--tn-page-max, 1320px));
}

.tn-topbar {
    background: #f7f7f7;
    border-bottom: 1px solid var(--tn-line);
    font-size: 12px;
    color: var(--tn-ink-soft);
}

.tn-topbar a { color: var(--tn-ink-soft); }
.tn-topbar a:hover { color: var(--tn-red); }

/* 시사지답게 머리 부분을 굵은 선으로 눌러 준다. */
.tn-header-main {
    background: #fff;
    border-bottom: 3px solid var(--tn-ink);
    box-shadow: none;
}

.tn-header-main-inner { min-height: 84px; }

.tn-logo-img {
    max-height: 46px;
    width: auto;
}

.tn-nav a {
    position: relative;
    padding: 15px 17px;
    color: var(--tn-ink);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.tn-nav a:hover,
.tn-nav a.active { color: var(--tn-red); }

.tn-nav a.active::after {
    content: "";
    position: absolute;
    left: 17px;
    right: 17px;
    bottom: 0;
    height: 3px;
    background: var(--tn-red);
}

/* 섹션 제목 앞에 빨간 막대 — 시사지에서 흔한 표기다. */
.tn-section-title h2,
.tn-section-title h3 {
    position: relative;
    padding-left: 12px;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--tn-ink);
}

.tn-section-title h2::before,
.tn-section-title h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 17px;
    background: var(--tn-red);
}

.tn-section-title .tn-more {
    color: var(--tn-ink-faint);
    font-size: 13px;
}

/* 각진 모서리 · 선 위주 — 잡지형보다 신문형에 가깝다. */
.tn-card {
    border-radius: 2px;
    border-color: var(--tn-line);
    box-shadow: none;
}

.tn-thumb,
.tn-home-media,
.tn-video-poster { border-radius: 2px; }

.tn-card h3,
.tn-card h4,
.tn-rank-title,
.tn-title-lines {
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: 1.44;
    color: var(--tn-ink);
}

.tn-card a:hover h3,
.tn-card a:hover h4,
.tn-card a:hover .tn-rank-title { color: var(--tn-red); }

.tn-meta,
.tn-card time {
    color: var(--tn-ink-faint);
    font-size: 12px;
}

.tn-overlay-card { border-radius: 2px; }

.tn-overlay-content {
    background: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .35) 45%, transparent 100%);
    padding: 26px 24px 20px;
}

.tn-overlay-content h2,
.tn-overlay-content h3 {
    font-size: 27px;
    font-weight: 800;
    line-height: 1.33;
    letter-spacing: -0.045em;
    color: #fff;
}

.tn-kicker {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 2px;
    background: var(--tn-red);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.tn-ranking li { border-bottom: 1px solid var(--tn-line); }
.tn-ranking li:last-child { border-bottom: 0; }

.tn-ranking .num,
.tn-ranking .tn-rank-num {
    color: var(--tn-red);
    font-size: 18px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* 가로 여백은 auto — 0 이면 소재가 지면 왼쪽에 붙는다. */
:is(.tn-ad-wide,.tn-media-wide),
:is(.tn-ad-inline,.tn-media-inline) { margin: 24px auto; text-align: center; }

:is(.tn-ad-wide,.tn-media-wide) img,
:is(.tn-ad-inline,.tn-media-inline) img { max-width: 100%; height: auto; }

:is([class*="tn-home-layout-section-ad_"],[class*="tn-home-layout-section-media_"]) { min-height: 0; }

/* 원본 footer 광고를 표준 빌더의 개별 위젯으로 분산한다. 소재마다 원비율을
   유지하고 위젯 자체의 격자 위치·폭은 Studio 설정을 그대로 따른다. */
html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"],
html body.tn-page-home .tn-home-layout-section[data-home-section="custom_sisa_campaign_school_safety"] {
    min-height: 0;
    align-self: start;
}

html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"] > .tn-custom-widget,
html body.tn-page-home .tn-home-layout-section[data-home-section="custom_sisa_campaign_school_safety"] > .tn-custom-widget {
    width: 100%;
    max-width: 100%;
    gap: 0;
    padding: 0;
}

html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"] .tn-section-title,
html body.tn-page-home .tn-home-layout-section[data-home-section="custom_sisa_campaign_school_safety"] .tn-section-title {
    display: none;
}

html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"] :is(.tn-ad-slot,.tn-media-slot),
html body.tn-page-home .tn-home-layout-section[data-home-section="custom_sisa_campaign_school_safety"] :is(.tn-ad-slot,.tn-media-slot) {
    display: block !important;
    /* width:100% 였다. 가로로 긴 파트너 띠에는 맞지만 세로형 소재(300x450)에는
       칸 폭이 곧 높이가 되어 482px 짜리 기둥이 됐다. 폭은 그대로 칸을 채우되
       높이 상한을 함께 건다 -- 아래 --tn-ad-height-cap 참고. !important 를 뗄 수는
       없다(공통 규칙이 이 자리를 다르게 잡는다). */
    /* --tn-ad-max-width(소재 원본 크기에서 계산한 상한)도 함께 건다.
       빠뜨리면 작은 로고가 칸 폭까지 늘어나 뭉개진다. */
    width: min(
        100%,
        var(--tn-ad-max-width, 100%),
        calc(var(--tn-ad-height-cap, 300px) * var(--tn-ad-ratio, 8))
    ) !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    border-radius: 0 !important;
    aspect-ratio: var(--tn-ad-aspect, auto) !important;
}

html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"] :is(.tn-ad-slot,.tn-media-slot) img,
html body.tn-page-home .tn-home-layout-section[data-home-section="custom_sisa_campaign_school_safety"] :is(.tn-ad-slot,.tn-media-slot) img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

@media (max-width: 768px) {
    html body.tn-page-home .tn-home-layout-section[data-home-section^="custom_sisa_partner_"][data-grid-placement="custom"] {
        grid-column: var(--tn-mobile-grid-start, 1) / span var(--tn-mobile-grid-span, 4) !important;
        width: auto;
    }
}

.tn-btn-red { border-radius: 2px; background: var(--tn-red); }

.tn-chip { border-radius: 2px; font-weight: 700; }

.tn-chip.active {
    background: var(--tn-red);
    border-color: var(--tn-red);
}

.tn-pagination a,
.tn-pagination span { border-radius: 2px; }

.tn-pagination .active {
    background: var(--tn-red);
    border-color: var(--tn-red);
}

/* 기사 본문 타이포는 3사를 데일리뉴스 기준으로 통일한다(2026-09-03). */
.tn-article-body {
    font-size: 17.5px;
    line-height: 1.85;
    letter-spacing: -0.02em;
    color: #1f1f1f;
}

.tn-footer {
    border-top: 3px solid var(--tn-ink);
    background: #f7f7f7;
    color: var(--tn-ink-soft);
    font-size: 12.5px;
    /* 밝은 배경이므로 글자색 토큰을 함께 뒤집는다.
       기본 테마는 붉은 그라디언트 푸터를 전제로 흰 글자를 쓴다 — 배경만 밝게 덮으면
       뉴스레터 제목·회사정보·저작권 줄이 흰 배경 위 흰 글자가 되어 사라진다.
       (tnews-theme.js 의 initFooterTone 이 같은 판단을 늦게 한 번 더 하지만,
        여기서 미리 정해 두면 화면이 그려지는 순간부터 제대로 보인다.) */
    --tn-footer-ink: #333;
    --tn-footer-ink-strong: #444;
    --tn-footer-ink-soft: #8a8a8a;
    --tn-footer-rule: #ddd;
}

.tn-footer a { color: var(--tn-ink-soft); }
.tn-footer a:hover { color: var(--tn-red); }

@media (max-width: 768px) {
    .tn-overlay-content h2,
    .tn-overlay-content h3 { font-size: 20px; }

    .tn-nav a { padding: 12px 11px; font-size: 15px; }

    .tn-section-title h2,
    .tn-section-title h3 { font-size: 17.5px; }
}

/* ── 원본형 전용 헤더·홈 지면 ─────────────────────────────── */
.sn-site-header {
    position: relative;
    z-index: 80;
    border: 0;
    background: #fff;
}

.sn-site-header .pub-utility {
    border-bottom: 1px solid #ededed;
    background: #fff;
    color: #777;
    font-size: 11px;
}

.sn-site-header .pub-utility-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(calc(100% - 32px), 1080px);
    min-height: 31px;
    margin: 0 auto;
}

.sn-site-header .pub-utility-left,
.sn-site-header .pub-utility-right {
    display: flex;
    align-items: center;
    gap: 13px;
    white-space: nowrap;
}

.sn-site-header .pub-utility-left a {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 0 13px;
    border-right: 1px solid #e6e6e6;
    border-left: 1px solid #e6e6e6;
    color: #666;
}

.sn-site-header .pub-utility a,
.sn-site-header .pub-utility span { color: #777; }

.sn-site-header.tn-header-configurable,
.sn-site-header.tn-header-configurable .sn-brand-row,
.sn-site-header.tn-header-configurable .sn-nav-row {
    background: var(--tn-header-bg, #fff);
}

.sn-site-header .sn-brand-row {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr) 300px;
    align-items: center;
    width: min(calc(100% - 32px), 1080px);
    min-height: 142px;
    margin: 0 auto;
    border-bottom: 3px solid #e50012;
}

.sn-site-header .pub-main-logo { justify-self: center; }
.sn-site-header .pub-main-logo .tn-logo-img { width: auto; max-width: 360px; max-height: 92px; }

.sn-site-header.tn-header-configurable .pub-main-logo .tn-logo-img {
    max-width: min(var(--tn-header-logo-width, 360px), 42vw);
}

.sn-brand-side { display: flex; align-items: center; min-width: 0; gap: 10px; }
.sn-brand-left { justify-self: start; }
.sn-brand-right { justify-self: end; }

:is(.sn-header-ad,.sn-header-media) {
    display: flex;
    min-width: 0;
    height: 71px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

:is(.sn-header-ad-kai,.sn-header-media-kai),
:is(.sn-header-ad-daily,.sn-header-media-daily) { width: 210px; }

:is(.sn-header-ad,.sn-header-media) :is(.tn-ad-stack,.tn-media-stack),
:is(.sn-header-ad,.sn-header-media) :is(.tn-publication-ad,.tn-publication-media),
:is(.sn-header-ad,.sn-header-media) :is(.tn-ad-slot,.tn-media-slot),
:is(.sn-header-ad,.sn-header-media) :is(.tn-ad-slot,.tn-media-slot) > a {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

:is(.sn-header-ad,.sn-header-media) :is(.tn-ad-slot,.tn-media-slot) > img,
:is(.sn-header-ad,.sn-header-media) :is(.tn-ad-slot,.tn-media-slot) > a > img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

.sn-site-header .pub-menu-toggle {
    display: inline-flex;
    width: 42px;
    min-width: 42px;
    height: 36px;
    border: 1px solid #ddd;
    border-radius: 0;
    color: #555;
}

.sn-partner-note {
    display: grid;
    width: 160px;
    min-height: 66px;
    align-content: center;
    padding: 8px 13px;
    background: linear-gradient(135deg, #29324c, #5b4866);
    color: #fff;
}

.sn-partner-note small { color: #f5c84b; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.sn-partner-note strong { margin-top: 3px; color: #fff; font-size: 13px; }

.sn-affiliate {
    display: grid;
    min-width: 145px;
    padding-right: 7px;
    text-align: center;
    line-height: 1;
}

.sn-affiliate small { color: #777; font-size: 9px; }
.sn-affiliate strong { margin-top: 4px; color: #0877b9; font-size: 21px; font-weight: 900; font-style: italic; letter-spacing: -.07em; }

.sn-site-header .sn-brand-right .tn-social {
    width: 35px;
    height: 35px;
    border-radius: 0;
    background: #315898;
    color: #fff;
    font-size: 14px;
}

.sn-site-header .sn-brand-right .tn-social:last-child { background: #28a8df; }

.sn-site-header .sn-nav-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    align-items: center;
    width: min(calc(100% - 32px), 1080px);
    min-height: 50px;
    margin: 0 auto;
    border-bottom: 1px solid #ddd;
}

.sn-site-header .pub-main-nav {
    position: static;
    z-index: auto;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.sn-site-header .pub-main-nav .tn-menu {
    justify-content: flex-start;
    gap: 0;
    overflow: hidden;
}

@media (min-width: 769px) {
    .sn-site-header.tn-header-nav-left .pub-main-nav .tn-menu { justify-content: flex-start; }
    .sn-site-header.tn-header-nav-center .pub-main-nav .tn-menu { justify-content: center; }
    .sn-site-header.tn-header-nav-right .pub-main-nav .tn-menu { justify-content: flex-end; }

    .sn-site-header.tn-header-layout-centered .sn-brand-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .sn-site-header.tn-header-layout-centered .sn-brand-side {
        display: none;
    }

    .sn-site-header.tn-header-layout-compact .sn-brand-row {
        min-height: 96px;
    }

    .sn-site-header.tn-header-layout-compact .pub-main-logo .tn-logo-img {
        max-height: 60px;
    }
}

.sn-site-header .pub-main-nav .tn-menu a {
    min-height: 49px;
    padding: 0 13px;
    border: 0;
    color: #222;
    font-size: 14px;
    font-weight: 700;
}

.sn-site-header .pub-main-nav .tn-menu a:hover,
.sn-site-header .pub-main-nav .tn-menu a.active { color: #e50012; }

.sn-site-header.tn-header-nav-style-solid .pub-main-nav .tn-menu a:hover,
.sn-site-header.tn-header-nav-style-solid .pub-main-nav .tn-menu a.active {
    background: var(--tn-primary, #0d6efd);
    color: #fff;
}

/* 원본 GNB는 앞 10개만 한 줄에 두고, 나머지는 전체 메뉴에서 제공한다. */
.sn-site-header .pub-main-nav .tn-menu .sn-nav-extra { display: none; }

.sn-site-header .pub-search {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    width: 100%;
    height: 38px;
    border-left: 1px solid #ddd;
}

.sn-site-header .pub-search input {
    min-width: 0;
    padding: 0 15px;
    border: 0;
    outline: 0;
    color: #555;
    font-size: 12px;
}

.sn-site-header .pub-search button {
    border: 0;
    background: transparent;
    color: #777;
    font-size: 18px;
}

.sn-home { padding: 0 0 70px; background: #fff; color: #222; }

.sn-shell {
    width: min(calc(100% - 32px), 1080px);
    margin-inline: auto;
}

.sn-front-layout {
    display: grid;
    grid-template-columns: 490px 550px;
    align-items: start;
    gap: 40px;
}

.sn-news-feed { min-width: 0; }

.sn-feed-lead {
    padding: 5px 0 14px;
    border-bottom: 1px solid #e2e2e2;
}

.sn-feed-lead > a { color: #e50012; font-size: 11px; font-weight: 700; }

.sn-feed-lead h1 {
    margin: 0 0 9px;
    font-family: Arial, "Malgun Gothic", sans-serif;
    font-size: 29px;
    font-weight: 400;
    line-height: 1.32;
    letter-spacing: -.055em;
}

.sn-feed-lead h1 a { color: #111; }
.sn-feed-lead p { margin: 0; color: #888; font-size: 12px; line-height: 1.65; }

.sn-feed-list article {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    align-items: center;
    min-height: 101px;
    padding: 12px 0;
    border-bottom: 1px solid #e6e6e6;
    gap: 15px;
}

.sn-feed-thumb,
.sn-feed-thumb > img,
.sn-feed-thumb > a,
.sn-feed-thumb > a > img {
    display: block;
    width: 130px;
    height: 72px;
    object-fit: cover;
}

.sn-feed-list h2 { margin: 0 0 6px; font-size: 15px; font-weight: 700; line-height: 1.4; letter-spacing: -.04em; }
.sn-feed-list h2 a { color: #222; }
.sn-feed-list p { margin: 0; color: #999; font-size: 11px; line-height: 1.55; }

.sn-spotlight-column { min-width: 0; }

.sn-spotlight {
    position: relative;
    height: 594px;
    overflow: hidden;
    background: #202020;
}

.sn-spotlight::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 46%, rgba(0, 0, 0, .9) 100%);
    pointer-events: none;
}

.sn-spotlight-media,
.sn-spotlight-media > img,
.sn-spotlight-media > a,
.sn-spotlight-media > a > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sn-spotlight-copy {
    position: absolute;
    right: 24px;
    bottom: 42px;
    left: 24px;
    z-index: 2;
    text-align: center;
    color: #fff;
}

.sn-spotlight-copy span { color: #ff2738; font-size: 11px; font-weight: 800; }
.sn-spotlight-copy h1 { margin: 8px 0 7px; font-size: 28px; line-height: 1.35; letter-spacing: -.05em; }
.sn-spotlight-copy h1 a { color: #fff; }
.sn-spotlight-copy p { margin: 0; color: #ff2738; font-size: 11px; font-weight: 700; }

:is(.sn-top-ad,.sn-top-media) { margin-top: 36px; }
:is(.sn-top-ad,.sn-top-media) :is(.tn-ad-slot,.tn-media-slot) { width: 100%; max-width: 100%; margin: 0; --tn-ad-height-cap: 700px; }
:is(.sn-side-ads,.sn-side-media) { margin-top: 16px; }
:is(.sn-side-ads,.sn-side-media) :is(.tn-ad-stack,.tn-media-stack) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
:is(.sn-side-ads,.sn-side-media) :is(.tn-ad-slot,.tn-media-slot) { width: 100%; max-width: 100%; margin: 0; }

.sn-lower-layout {
    display: grid;
    grid-template-columns: minmax(0, 2.15fr) minmax(250px, .85fr);
    align-items: start;
    gap: 36px;
    margin-top: 58px;
}

.sn-main-column,
.sn-news-sidebar { min-width: 0; }

.sn-site-header + .tn-breaking { display: none; }

.sn-home .pub-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 45px;
    margin-bottom: 16px;
    border-top: 6px solid #414254;
    border-bottom: 1px solid #dedede;
}

.sn-home .pub-section-heading h2 { margin: 0; font-size: 18px; font-weight: 800; letter-spacing: -.045em; }
.sn-home .pub-section-heading h2 a { color: #222; }
.sn-home .pub-section-heading > a { padding-right: 7px; color: #777; font-size: 15px; }

.sn-category-sections {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 24px;
}

.sn-category-block { min-width: 0; }

.sn-category-lead {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.sn-category-media,
.sn-category-media > img,
.sn-category-media > a,
.sn-category-media > a > img {
    display: block;
    width: 140px;
    height: 90px;
    object-fit: cover;
}

.sn-category-lead h3 { margin: 0 0 6px; font-size: 15px; line-height: 1.42; }
.sn-category-lead h3 a { color: #222; }
.sn-category-lead p { margin: 0; color: #999; font-size: 11px; line-height: 1.5; }
.sn-category-block ul { margin: 11px 0 0; padding: 0; list-style: none; }
.sn-category-block li { padding: 7px 0; border-top: 1px solid #ececec; font-size: 13px; }
.sn-category-block li a { color: #444; }

.sn-home :is(.pub-inline-ad,.pub-inline-media),
.sn-home :is(.pub-bottom-ad,.pub-bottom-media) { margin-top: 48px; }

.sn-home :is(.pub-inline-ad,.pub-inline-media) :is(.tn-ad-slot,.tn-media-slot),
.sn-home :is(.pub-bottom-ad,.pub-bottom-media) :is(.tn-ad-slot,.tn-media-slot) { width: 100%; max-width: 100%; --tn-ad-height-cap: 700px; }

.sn-home .pub-ranking,
.sn-home .pub-opinion { margin-bottom: 34px; }

.sn-home .pub-ranking ol { margin: 0; padding: 0; list-style: none; }
.sn-home .pub-ranking li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    align-items: center;
    min-height: 46px;
    border-bottom: 1px solid #e8e8e8;
    gap: 8px;
}

.sn-home .pub-ranking li b {
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    background: #e50012;
    color: #fff;
    font-size: 12px;
}

.sn-home .pub-ranking li a { min-width: 0; overflow: hidden; color: #222; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }

.sn-home .pub-opinion article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #e8e8e8;
    gap: 10px;
}

.sn-home .pub-opinion span { color: #e50012; font-size: 10px; }
.sn-home .pub-opinion h3 { margin: 3px 0 0; font-size: 13px; line-height: 1.45; }
.sn-home .pub-opinion h3 a { color: #222; }

.sn-home .pub-opinion-thumb,
.sn-home .pub-opinion-thumb > img,
.sn-home .pub-opinion-thumb > a,
.sn-home .pub-opinion-thumb > a > img {
    display: block;
    width: 72px;
    height: 54px;
    object-fit: cover;
}

@media (max-width: 1120px) {
    .sn-site-header .sn-brand-row,
    .sn-site-header .sn-nav-row,
    .sn-site-header .pub-utility-inner,
    .sn-shell { width: min(calc(100% - 32px), 980px); }
    .sn-site-header .sn-brand-row { grid-template-columns: 210px minmax(0, 1fr) 210px; }
    .sn-site-header .pub-main-logo .tn-logo-img { max-width: 300px; }
    :is(.sn-header-ad-kai,.sn-header-media-kai) { width: 145px; }
    :is(.sn-header-ad-daily,.sn-header-media-daily) { width: 120px; }
    .sn-partner-note { width: 145px; }
    .sn-affiliate { min-width: 120px; }
    .sn-site-header .sn-nav-row { grid-template-columns: minmax(0, 1fr) 230px; }
    .sn-site-header .pub-main-nav .tn-menu a { padding-inline: 9px; font-size: 13px; }
    .sn-front-layout { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 32px; }
}

/* 태블릿 폭에서는 검색 입력만 접고 버튼을 유지해 GNB가 한 줄을 벗어나지 않게 한다. */
@media (min-width: 769px) and (max-width: 910px) {
    .sn-site-header .sn-nav-row {
        grid-template-columns: minmax(0, 1fr) 42px;
    }

    .sn-site-header .pub-search {
        grid-template-columns: 42px;
    }

    .sn-site-header .pub-search input {
        display: none;
    }
}

@media (min-width: 769px) {
    body.tn-menu-open { overflow: hidden; }

    body.tn-menu-open::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 130;
        background: rgba(15, 23, 42, .46);
    }

    body.tn-menu-open .sn-site-header .pub-menu-toggle {
        position: fixed;
        top: 18px;
        right: 350px;
        z-index: 151;
        border-color: #e50012;
        background: #fff;
        color: #e50012;
    }

    body.tn-menu-open .sn-site-header .tn-menu {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 150;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        width: 330px;
        height: 100vh;
        margin: 0;
        padding: 70px 20px 28px;
        background: #fff;
        box-shadow: -20px 0 45px rgba(15, 23, 42, .24);
        gap: 4px;
        overflow-y: auto;
    }

    body.tn-menu-open .sn-site-header .tn-menu a {
        justify-content: flex-start;
        min-height: 45px;
        padding: 0 15px;
        border-bottom: 1px solid #eee;
        font-size: 15px;
    }

    body.tn-menu-open .sn-site-header .tn-menu .sn-nav-extra { display: block; }
}

@media (max-width: 768px) {
    .sn-site-header { height: 58px; border-bottom: 2px solid #e50012; }
    .sn-site-header .pub-utility,
    .sn-brand-side,
    .sn-site-header .sn-nav-row .sn-search { display: none; }
    .sn-site-header :is(.sn-header-ad,.sn-header-media) { display: none; }
    .sn-site-header .sn-partner-note { display: none; }
    .sn-site-header .sn-brand-row {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 56px;
        border: 0;
    }

    .sn-site-header .pub-main-logo .tn-logo-img { max-width: 190px; max-height: 46px; }
    .sn-site-header .sn-brand-left { display: block; }
    .sn-site-header .pub-menu-toggle {
        position: absolute;
        left: 12px;
        z-index: 141;
        display: inline-flex;
        width: 38px;
        min-width: 38px;
        height: 38px;
        border: 0;
    }

    body.tn-menu-open .sn-site-header .pub-menu-toggle { position: fixed; top: 10px; right: 12px; left: auto; }
    .sn-site-header .sn-nav-row { display: block; width: 100%; min-height: 0; border: 0; }
    .sn-site-header .pub-main-nav { position: static; }
    .sn-site-header .pub-main-nav .tn-menu { justify-content: flex-start; overflow-y: auto; }
    .sn-site-header .pub-main-nav .tn-menu .sn-nav-extra { display: block; }
    .sn-site-header .pub-main-nav .tn-menu a { min-height: 44px; padding: 0 14px; font-size: 14px; }

    .sn-shell { width: calc(100% - 24px); }
    .sn-front-layout { display: flex; flex-direction: column; gap: 24px; }
    .sn-spotlight-column { display: contents; }
    .sn-spotlight { order: -3; width: 100%; height: 390px; }
    .sn-news-feed { order: -2; }
    :is(.sn-top-ad,.sn-top-media) { order: -1; width: 100%; }
    :is(.sn-side-ads,.sn-side-media) { order: 0; width: 100%; }
    .sn-spotlight-copy { right: 18px; bottom: 24px; left: 18px; }
    .sn-spotlight-copy h1 { font-size: 24px; }
    :is(.sn-top-ad,.sn-top-media) { margin-top: 22px; }
    :is(.sn-side-ads,.sn-side-media) :is(.tn-ad-stack,.tn-media-stack) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .sn-feed-lead h1 { font-size: 24px; }
    .sn-feed-list article { grid-template-columns: 112px minmax(0, 1fr); min-height: 92px; gap: 12px; }
    .sn-feed-thumb,
    .sn-feed-thumb > img,
    .sn-feed-thumb > a,
    .sn-feed-thumb > a > img { width: 112px; height: 66px; }
    .sn-feed-list article:nth-child(n+6) { display: none; }
    .sn-lower-layout { grid-template-columns: minmax(0, 1fr); gap: 34px; margin-top: 42px; }
    .sn-category-sections { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .sn-home :is(.pub-bottom-ad,.pub-bottom-media) { margin-top: 36px; }
}

/* ── 상단 메뉴가 15개로 늘어난 뒤 — 2026-08-24 ──────────────────
   원본 전체메뉴의 섹션 15개를 모두 노출하니 한 줄(메뉴 칸 810px)에 들어가지 않는다.
   기본 규칙이 overflow:hidden 이라 넘친 5개(이슈분석·지금해외는·미분류·법률상식·
   여행및레저)가 잘려 아예 보이지 않았다 — 링크는 있는데 눈에 띄지 않는 상태가
   가장 나쁘다. 잘라내지 않고 줄을 바꿔 전부 보이게 한다. */
.sn-site-header .sn-nav-row { align-items: stretch; }

.sn-site-header .pub-main-nav .tn-menu {
    flex-wrap: wrap;
    align-content: center;
    overflow: visible;
}

.sn-site-header .pub-main-nav .tn-menu a {
    min-height: 40px;
    padding: 0 10px;
    font-size: 13.5px;
}

@media (max-width: 1120px) {
    .sn-site-header .pub-main-nav .tn-menu a { padding-inline: 8px; font-size: 12.5px; }
}

/* ── 시사뉴스진 독립 위젯 지면 ─────────────────────────────────────────────
   원본의 1080px 지면은 490 / 220 / 330px 세 트랙으로 구성된다. 기사와 광고는
   각각 home_sections 위젯으로 남기고, 이 레이아웃은 위치만 조합한다. 고정 행 높이를
   쓰지 않아 기사 제목이 길거나 광고가 비어도 다음 블록과 겹치지 않는다. */
.snw-page,
.snw-page *,
.snw-page *::before,
.snw-page *::after,
.snw-fragment,
.snw-fragment *,
.snw-fragment *::before,
.snw-fragment *::after {
    box-sizing: border-box;
}

.snw-page {
    width: min(calc(100% - 32px), 1080px);
    margin: 0 auto;
    color: #222;
    font-family: -apple-system, BlinkMacSystemFont, "Malgun Gothic", 돋움, dotum,
                 "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.snw-page a,
.snw-fragment a { color: inherit; text-decoration: none; }
.snw-page a:hover,
.snw-fragment a:hover { color: #e50012; }
.snw-widget,
.snw-fragment { min-width: 0; margin: 0; }
.snw-fragment {
    color: #222;
    font-family: -apple-system, BlinkMacSystemFont, "Malgun Gothic", 돋움, dotum,
                 "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.snw-widget.is-empty { display: none !important; }

.snw-front,
.snw-lower {
    display: grid;
    grid-template-columns: 490px 590px;
    align-items: start;
}

.snw-front-left,
.snw-lower-left { padding-right: 41px; }

.snw-front-right,
.snw-lower-right { min-width: 0; }

.snw-spotlight {
    width: 550px;
    margin-left: 40px;
}

.snw-front-split,
.snw-lower-split {
    display: grid;
    grid-template-columns: 220px 330px;
    width: 550px;
    margin-left: 40px;
    align-items: start;
}

.snw-front-split { margin-top: 38px; }
.snw-side-stack,
.snw-lower-side { padding-left: 30px; }

.snw-lead-fragment {
    min-height: 159px;
    padding: 0 0 17px;
    border-bottom: 1px solid #e8e8e8;
}

.snw-kicker {
    display: inline-block;
    margin-bottom: 6px;
    color: #e50012 !important;
    font-size: 12px;
    font-weight: 800;
}

.snw-lead-fragment h1 {
    margin: 0;
    font-size: 27px;
    font-weight: 500;
    line-height: 1.22;
    letter-spacing: -.055em;
}

.snw-lead-fragment p {
    display: -webkit-box;
    margin: 11px 0 0;
    overflow: hidden;
    color: #888;
    font-size: 12px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.snw-feed-fragment { border-bottom: 1px solid #e8e8e8; }
.snw-feed-item {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: center;
    min-height: 99px;
    padding: 10px 0;
    border-bottom: 1px solid #ececec;
    gap: 13px;
}

.snw-feed-item:last-child { border-bottom: 0; }
.snw-feed-thumb,
.snw-feed-thumb > img,
.snw-feed-thumb > a,
.snw-feed-thumb > a > img {
    display: block;
    width: 82px;
    height: 60px;
    overflow: hidden;
    object-fit: cover;
}

.snw-feed-item h2 {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.38;
    letter-spacing: -.035em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.snw-feed-item p {
    display: -webkit-box;
    margin: 5px 0 0;
    overflow: hidden;
    color: #9a9a9a;
    font-size: 11px;
    line-height: 1.48;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.snw-spotlight-fragment {
    position: relative;
    width: 100%;
    aspect-ratio: 550 / 592;
    overflow: hidden;
    background: #161616;
}

.snw-spotlight-media,
.snw-spotlight-media > img,
.snw-spotlight-media > a,
.snw-spotlight-media > a > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.snw-spotlight-fragment::after {
    content: "";
    position: absolute;
    inset: 42% 0 0;
    z-index: 1;
    background: linear-gradient(transparent, rgba(0, 0, 0, .92));
    pointer-events: none;
}

.snw-spotlight-copy {
    position: absolute;
    right: 30px;
    bottom: 34px;
    left: 30px;
    z-index: 2;
    color: #fff;
    text-align: center;
}

.snw-spotlight-copy span { color: #fff; font-size: 12px; font-weight: 800; }
.snw-spotlight-copy h1 { margin: 8px 0 0; font-size: 27px; line-height: 1.25; letter-spacing: -.045em; }
.snw-spotlight-copy h1 a { color: #fff; }
.snw-spotlight-copy p {
    display: -webkit-box;
    margin: 9px 0 0;
    overflow: hidden;
    color: rgba(255, 255, 255, .78);
    font-size: 12px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* 광고 박스는 원본 표시 비율을 갖고, 소재 자체는 절대 찌그러뜨리지 않는다. */
:is(.snw-ad-fragment,.snw-media-fragment) {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #fff;
}

:is(.snw-ad-fragment,.snw-media-fragment) :is(.tn-publication-ad,.tn-publication-media),
:is(.snw-ad-fragment,.snw-media-fragment) :is(.tn-ad-slot,.tn-media-slot),
:is(.snw-ad-fragment,.snw-media-fragment) :is(.tn-ad-slot,.tn-media-slot) > a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

:is(.snw-ad-fragment,.snw-media-fragment) :is(.tn-ad-slot,.tn-media-slot) > img,
:is(.snw-ad-fragment,.snw-media-fragment) :is(.tn-ad-slot,.tn-media-slot) > a > img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
    object-position: center;
}

:is(.snw-ad-fragment-moef,.snw-media-fragment-moef) { aspect-ratio: 449 / 374; }
:is(.snw-ad-fragment-jindo,.snw-media-fragment-jindo) { aspect-ratio: 220 / 103; }
:is(.snw-ad-fragment-road-box,.snw-media-fragment-road-box) { aspect-ratio: 220 / 189; }
:is(.snw-ad-fragment-gyeongbuk,.snw-media-fragment-gyeongbuk) { aspect-ratio: 220 / 148; }
:is(.snw-ad-fragment-jwu,.snw-media-fragment-jwu) { aspect-ratio: 300 / 395; }
:is(.snw-ad-fragment-okta,.snw-media-fragment-okta),
:is(.snw-ad-fragment-youngsan,.snw-media-fragment-youngsan) { aspect-ratio: 3 / 1; }
:is(.snw-ad-fragment-dasan,.snw-media-fragment-dasan) { aspect-ratio: 300 / 177; }
:is(.snw-ad-fragment-road-wide,.snw-media-fragment-road-wide) { aspect-ratio: 1080 / 194; }
:is(.snw-ad-fragment-junseo,.snw-media-fragment-junseo) { aspect-ratio: 449 / 142; }
:is(.snw-ad-fragment-autohub,.snw-media-fragment-autohub) { aspect-ratio: 220 / 95; }
:is(.snw-ad-fragment-road-bottom,.snw-media-fragment-road-bottom) { aspect-ratio: 550 / 247; }

:is(.snw-ad-moef,.snw-media-moef) { margin-top: 15px; }
:is(.snw-ad-road-box,.snw-media-road-box) { margin-top: 0; }
.snw-brief-module { margin-top: 10px; }
.snw-brief-module + .snw-brief-module { margin-top: 0; }
:is(.snw-ad-gyeongbuk,.snw-media-gyeongbuk) { margin-top: 0; }
:is(.snw-ad-jwu,.snw-media-jwu) { margin-top: 10px; }
:is(.snw-ad-okta,.snw-media-okta),
:is(.snw-ad-youngsan,.snw-media-youngsan),
:is(.snw-ad-dasan,.snw-media-dasan) { margin-top: 10px; }

.snw-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 36px;
    margin: 0;
    padding: 0 11px;
    border-bottom: 1px solid #ddd;
    background: #292744;
    color: #fff;
}

.snw-section-head h2 { margin: 0; font-size: 14px; font-weight: 800; }
.snw-section-head span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    font-size: 16px;
}

.snw-brief-item {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: center;
    min-height: 82px;
    padding: 9px 0;
    border-bottom: 1px solid #ededed;
    gap: 9px;
}

.snw-brief-thumb,
.snw-brief-thumb > img,
.snw-brief-thumb > a,
.snw-brief-thumb > a > img {
    display: block;
    width: 48px;
    height: 48px;
    overflow: hidden;
    border-radius: 50%;
    object-fit: cover;
}

.snw-brief-item span { color: #e50012; font-size: 9px; font-weight: 800; }
.snw-brief-item h3 {
    display: -webkit-box;
    margin: 2px 0 0;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.38;
    letter-spacing: -.035em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.snw-brief-item p {
    display: -webkit-box;
    margin: 4px 0 0;
    overflow: hidden;
    color: #999;
    font-size: 10px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.snw-brief-fragment .snw-brief-item p { display: none; }

.snw-culture { margin-top: 60px; }
.snw-culture-fragment {
    padding: 23px 0 25px;
    background: #f4f4f4;
}

.snw-culture-fragment > .snw-section-head {
    min-height: 28px;
    margin: 0 0 15px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #e50012;
}

.snw-culture-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, auto));
    gap: 12px;
}

.snw-culture-card { grid-row: 1 / span 2; min-width: 0; }
.snw-culture-thumb,
.snw-culture-thumb > img,
.snw-culture-thumb > a,
.snw-culture-thumb > a > img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    object-fit: cover;
}

.snw-culture-card h3 { margin: 8px 0 0; font-size: 14px; line-height: 1.42; }
.snw-culture-brief {
    min-width: 0;
    padding: 8px 0 10px;
    border-bottom: 1px solid #ddd;
}

.snw-culture-brief:nth-child(4) { grid-column: 4; grid-row: 1; }
.snw-culture-brief:nth-child(5) { grid-column: 4; grid-row: 2; }
.snw-culture-brief h3 { margin: 0; font-size: 13px; line-height: 1.42; }
.snw-culture-brief p { margin: 6px 0 0; color: #888; font-size: 11px; line-height: 1.5; }

:is(.snw-ad-road-wide,.snw-media-road-wide) { margin-top: 40px; }
.snw-lower { margin-top: 40px; }
:is(.snw-ad-junseo,.snw-media-junseo) { margin-bottom: 10px; }

.snw-lower-story {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 88px;
    padding: 12px 0;
    border-bottom: 1px solid #e7e7e7;
    gap: 11px;
}

.snw-lower-story.has-thumb { grid-template-columns: 150px minmax(0, 1fr); }
.snw-lower-thumb,
.snw-lower-thumb > img,
.snw-lower-thumb > a,
.snw-lower-thumb > a > img {
    display: block;
    width: 150px;
    height: 94px;
    overflow: hidden;
    object-fit: cover;
}

.snw-lower-story span { color: #555; font-size: 10px; font-weight: 800; }
.snw-lower-story h2 { margin: 2px 0 0; font-size: 15px; line-height: 1.42; }
.snw-lower-story p {
    display: -webkit-box;
    margin: 6px 0 0;
    overflow: hidden;
    color: #999;
    font-size: 11px;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.snw-ranking { margin-top: 10px; }
.snw-ranking-fragment ol { margin: 0; padding: 0; list-style: none; }
.snw-ranking-fragment li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    min-height: 31px;
    border-bottom: 1px solid #ededed;
    gap: 6px;
}

.snw-ranking-fragment li b {
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    background: #e50012;
    color: #fff;
    font-size: 10px;
}

.snw-ranking-fragment li a {
    overflow: hidden;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.snw-text-panel + .snw-text-panel { margin-top: 30px; }
.snw-text-fragment > .snw-section-head,
.snw-overseas-fragment > .snw-section-head,
.snw-video-fragment > .snw-section-head {
    min-height: 36px;
    padding: 0;
    border-top: 2px solid #333;
    border-bottom: 1px solid #bbb;
    background: transparent;
    color: #222;
}

.snw-text-list article {
    min-height: 67px;
    padding: 11px 0;
    border-bottom: 1px solid #ededed;
}

.snw-text-list h3 { margin: 0; font-size: 12px; line-height: 1.42; }
.snw-text-list time { display: block; margin-top: 6px; color: #aaa; font-size: 10px; }

.snw-overseas { margin-top: 30px; }
.snw-overseas-fragment .snw-brief-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 14px;
}

.snw-overseas-fragment .snw-brief-item { min-height: 91px; }
.snw-overseas-fragment .snw-brief-thumb,
.snw-overseas-fragment .snw-brief-thumb > img,
.snw-overseas-fragment .snw-brief-thumb > a,
.snw-overseas-fragment .snw-brief-thumb > a > img {
    width: 58px;
    height: 58px;
    border-radius: 0;
}

.snw-video { margin-top: 30px; }
.snw-video-fragment article { position: relative; margin-top: 12px; }
.snw-video-thumb,
.snw-video-thumb > img,
.snw-video-thumb > a,
.snw-video-thumb > a > img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 8;
    overflow: hidden;
    object-fit: cover;
}

.snw-video-fragment article h3 {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 0;
    padding: 35px 16px 13px;
    background: linear-gradient(transparent, rgba(0, 0, 0, .88));
    color: #fff;
    font-size: 17px;
}

:is(.snw-ad-road-bottom,.snw-media-road-bottom) { margin-top: 20px; }

.snw-partners { margin-top: 20px; }
.snw-partners-window {
    width: 100%;
    height: 50px;
    overflow: hidden;
}

.snw-partners-rail {
    display: flex;
    width: max-content;
    height: 50px;
    gap: 10px;
    animation: snw-partner-marquee 65s linear infinite;
    will-change: transform;
}

.snw-partners-set,
.snw-partners-set :is(.tn-ad-stack,.tn-media-stack) {
    display: flex;
    flex: none;
    height: 50px;
    gap: 10px;
}

.snw-partners-set :is(.tn-ad-slot,.tn-media-slot),
.snw-partners-set :is(.tn-ad-slot,.tn-media-slot) > a,
.snw-partners-set :is(.tn-ad-slot,.tn-media-slot) img {
    display: block !important;
    flex: none;
    width: 200px !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: contain !important;
}

.snw-partner-static-grid {
    display: grid;
    width: 100%;
    margin-top: 14px;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.snw-partner-static-item,
.snw-partner-static-item :is(.tn-ad-stack,.tn-media-stack),
.snw-partner-static-item :is(.tn-ad-slot,.tn-media-slot),
.snw-partner-static-item a,
.snw-partner-static-item img {
    display: block !important;
    width: 100% !important;
    height: 50px !important;
    margin: 0 !important;
    object-fit: contain !important;
}

/* Studio 자유 배치에서는 현재 편집한 기기에서만 독립 광고를 페이지 격자로 평탄화한다. */
@media (min-width: 1121px) {
    .snw-page.is-publication-desktop-custom-layout > .snw-partner-static-grid { display: contents; }
}

@media (max-width: 1120px) {
    .snw-partner-static-grid { order: 260; }
    .snw-page.is-publication-mobile-custom-layout > .snw-partner-static-grid { display: contents; }
}

@media (max-width: 720px) {
    .snw-partner-static-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@keyframes snw-partner-marquee {
    to { transform: translateX(calc(-50% - 5px)); }
}

@media (prefers-reduced-motion: reduce) {
    .snw-partners-window { overflow-x: auto; }
    .snw-partners-rail { animation: none; }
    .snw-partners-set[aria-hidden="true"] { display: none; }
}

/* 1080px 미만에서는 위젯 자체를 한 열로 푼다. 구조 래퍼를 display:contents 로
   제거하므로 세 트랙 안쪽의 광고도 빠짐없이 --pub-mobile-order 순서로 배치된다. */
@media (max-width: 1120px) {
    .snw-page {
        display: flex;
        width: min(calc(100% - 24px), 760px);
        flex-direction: column;
    }

    .snw-front,
    .snw-front-left,
    .snw-front-right,
    .snw-front-split,
    .snw-center-stack,
    .snw-side-stack,
    .snw-lower,
    .snw-lower-left,
    .snw-lower-right,
    .snw-lower-split,
    .snw-lower-center,
    .snw-lower-side {
        display: contents;
    }

    .snw-widget {
        order: var(--pub-mobile-order, 500);
        width: 100%;
        margin: 0 0 16px;
        padding: 0;
    }

    .snw-fragment { width: 100%; max-width: 100%; }
    .snw-lead-fragment { min-height: 0; }
    .snw-feed-item { grid-template-columns: 112px minmax(0, 1fr); min-height: 0; }
    .snw-feed-thumb,
    .snw-feed-thumb > img,
    .snw-feed-thumb > a,
    .snw-feed-thumb > a > img { width: 112px; height: 72px; }
    .snw-spotlight-fragment { aspect-ratio: 550 / 592; }
    .snw-culture-fragment { padding: 18px 14px; }
    .snw-culture-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
    .snw-culture-card,
    .snw-culture-brief,
    .snw-culture-brief:nth-child(4),
    .snw-culture-brief:nth-child(5) { grid-column: auto; grid-row: auto; }
    .snw-overseas-fragment .snw-brief-list { grid-template-columns: minmax(0, 1fr); }
    .snw-lower-story.has-thumb { grid-template-columns: 132px minmax(0, 1fr); }
    .snw-lower-thumb,
    .snw-lower-thumb > img,
    .snw-lower-thumb > a,
    .snw-lower-thumb > a > img { width: 132px; height: 84px; }
    .snw-partners { margin-bottom: 0; }
}

@media (max-width: 520px) {
    .snw-page { width: calc(100% - 22px); }
    .snw-lead-fragment h1 { font-size: 23px; }
    .snw-spotlight-copy { right: 18px; bottom: 22px; left: 18px; }
    .snw-spotlight-copy h1 { font-size: 22px; }
    .snw-feed-item { grid-template-columns: 98px minmax(0, 1fr); }
    .snw-feed-thumb,
    .snw-feed-thumb > img,
    .snw-feed-thumb > a,
    .snw-feed-thumb > a > img { width: 98px; height: 66px; }
}

/* Studio 자유 배치 계약. 기기별 플래그가 없는 원본 지면에는 적용되지 않는다. */
.tn-publication-widget-canvas-sisanewszine .tn-publication-widget.is-desktop-hidden.is-empty {
    display: none !important;
}

@media (min-width: 1121px) {
    .snw-page.is-publication-desktop-custom-layout {
        display: grid !important;
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-rows: minmax(72px, auto);
        gap: 12px;
        width: min(100%, 1080px);
        margin: 22px auto 0;
    }

    .snw-page.is-publication-desktop-custom-layout .snw-front,
    .snw-page.is-publication-desktop-custom-layout .snw-front-left,
    .snw-page.is-publication-desktop-custom-layout .snw-front-right,
    .snw-page.is-publication-desktop-custom-layout .snw-front-split,
    .snw-page.is-publication-desktop-custom-layout .snw-center-stack,
    .snw-page.is-publication-desktop-custom-layout .snw-side-stack,
    .snw-page.is-publication-desktop-custom-layout .snw-lower,
    .snw-page.is-publication-desktop-custom-layout .snw-lower-left,
    .snw-page.is-publication-desktop-custom-layout .snw-lower-right,
    .snw-page.is-publication-desktop-custom-layout .snw-lower-split,
    .snw-page.is-publication-desktop-custom-layout .snw-lower-center,
    .snw-page.is-publication-desktop-custom-layout .snw-lower-side {
        display: contents !important;
    }

    .snw-page.is-publication-desktop-custom-layout .tn-publication-widget {
        order: var(--pub-order, 500);
        grid-column: var(--pub-grid-start, 1) / span var(--pub-grid-span, 12);
        grid-row: span var(--pub-grid-row, 2);
        width: 100% !important;
        max-width: none !important;
        min-width: 0;
        height: auto !important;
        min-height: auto;
        margin: 0 !important;
        overflow: visible;
    }

    .snw-page.is-publication-desktop-custom-layout .tn-publication-widget > .snw-fragment {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: auto;
        margin-inline: 0;
        overflow: visible;
    }
}

@media (max-width: 1120px) {
    .tn-publication-widget-canvas-sisanewszine .tn-publication-widget.is-mobile-hidden {
        display: none !important;
    }

    .tn-publication-widget-canvas-sisanewszine .tn-publication-widget.is-desktop-hidden:not(.is-mobile-hidden):not(.is-empty) {
        display: revert !important;
    }

    .snw-page.is-publication-mobile-custom-layout {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-auto-flow: row;
        grid-auto-rows: minmax(64px, auto);
        gap: 10px;
        width: calc(100% - 20px);
        margin: 10px auto 0;
    }

    .snw-page.is-publication-mobile-custom-layout .snw-front,
    .snw-page.is-publication-mobile-custom-layout .snw-front-left,
    .snw-page.is-publication-mobile-custom-layout .snw-front-right,
    .snw-page.is-publication-mobile-custom-layout .snw-front-split,
    .snw-page.is-publication-mobile-custom-layout .snw-center-stack,
    .snw-page.is-publication-mobile-custom-layout .snw-side-stack,
    .snw-page.is-publication-mobile-custom-layout .snw-lower,
    .snw-page.is-publication-mobile-custom-layout .snw-lower-left,
    .snw-page.is-publication-mobile-custom-layout .snw-lower-right,
    .snw-page.is-publication-mobile-custom-layout .snw-lower-split,
    .snw-page.is-publication-mobile-custom-layout .snw-lower-center,
    .snw-page.is-publication-mobile-custom-layout .snw-lower-side {
        display: contents !important;
    }

    .snw-page.is-publication-mobile-custom-layout .tn-publication-widget {
        order: var(--pub-mobile-order, 500);
        grid-column: var(--pub-mobile-grid-start, 1) / span var(--pub-mobile-grid-span, 4);
        grid-row: span var(--pub-mobile-grid-row, 2);
        width: 100% !important;
        max-width: none !important;
        min-width: 0;
        height: auto !important;
        min-height: auto;
        margin: 0 !important;
        overflow: visible;
    }

    .snw-page.is-publication-mobile-custom-layout .tn-publication-widget > .snw-fragment {
        width: 100% !important;
        max-width: none !important;
        height: auto !important;
        min-height: auto;
        margin-inline: 0;
        overflow: visible;
    }
}
