/* ─────────────────────────────────────────────────────────────
   SEOUL AI PRESS — 편집 디자인
   원칙: 원문 사진은 쓰지 않는다. 허가·라이선스가 확인된 자료사진만 쓴다.
   외부 CDN 의존 없음. 폰트는 자체 호스팅(Pretendard, OFL).
   ───────────────────────────────────────────────────────────── */

:root {
  --bg:        #fdfcf9;
  --surface:   #f4f3ef;
  --fg:        #14171c;
  --fg-2:      #59636f;
  --fg-3:      #8a929c;
  --line:      #e5e8eb;
  --line-2:    #d2d7dc;
  --ink:       #14171c;          /* 굵은 괘선 */
  --accent:    #c8102e;          /* 제호·강조 */
  --ai:        #c8102e;
  --it:        #1554d1;
  --general:   #5b6672;
  --hold:      #96690a;
  --hold-bg:   #fff9e9;
  --pass:      #16743a;
  --fail:      #c8102e;
  --wrap:      1120px;
  --read:      720px;            /* 본문 가독 폭 */
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo",
               "Malgun Gothic", "맑은 고딕", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  word-break: keep-all;              /* 한국어 어절 단위 줄바꿈 */
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--accent); color: #fff; }
code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .85em; }

.skip-link {
  position: fixed; left: 16px; top: 12px; z-index: 100;
  padding: 9px 13px; border-radius: 4px;
  background: var(--ink); color: var(--bg); font-size: 13px; font-weight: 800;
  transform: translateY(-160%); transition: transform .15s ease;
}
.skip-link:focus { transform: translateY(0); }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
main.wrap { padding-top: 26px; padding-bottom: 40px; }

/* 구분 점 */
.sep { display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .45; }

/* ══ 제호 ══════════════════════════════════════════════════ */
.util { border-bottom: 1px solid var(--line); }
.util-in {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 9px; padding-bottom: 9px;
  font-size: 12px; color: var(--fg-3);
}
.util-status { display: flex; align-items: center; gap: 9px; min-width: 0; }
.util-today { color: var(--fg-2); font-weight: 650; }
.util-sep { width: 1px; height: 11px; background: var(--line-2); }
.util-date { white-space: nowrap; }
.util-links a { margin-left: 16px; font-weight: 600; }
.util-links a:hover { color: var(--fg); }

.brand-in { padding-top: 15px; padding-bottom: 15px; text-align: center; }
.brand-kicker {
  margin: 0 0 7px;
  font-size: 8px; font-weight: 800; line-height: 1;
  letter-spacing: .18em; color: var(--accent);
}
.brand {
  display: inline-block;
  font-size: 2.45rem; font-weight: 900; letter-spacing: -.068em; line-height: .94;
  text-wrap: balance;
}
.brand::after {
  content: ""; display: block; width: 28px; height: 3px;
  margin: 9px auto 0; background: var(--accent);
}
.brand-tag { margin: 6px 0 0; font-size: 12px; font-weight: 650; color: var(--fg-2); }

.nav {
  position: sticky; top: 0; z-index: 20;
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(180%) blur(10px);
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--line);
}
.nav-in { display: flex; gap: 24px; overflow-x: auto; scrollbar-width: none; }
.nav-in::-webkit-scrollbar { display: none; }
.nav a {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 0; margin-bottom: -1px;
  font-size: 14px; font-weight: 700; white-space: nowrap;
  color: var(--fg-2); border-bottom: 2px solid transparent;
  transition: color .12s;
}
.nav a:hover { color: var(--fg); }
.nav a.on { color: var(--fg); border-bottom-color: var(--accent); }
.nav i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }

/* 섹션 색 */
.dot-ai, .bar-ai, .bullet-ai           { background: var(--ai); }
.dot-it, .bar-it, .bullet-it           { background: var(--it); }
.dot-general, .bar-general, .bullet-general { background: var(--general); }

/* ══ 홈 — 섹션 블록 ════════════════════════════════════════ */
.block { margin-bottom: 56px; }
.block:last-child { margin-bottom: 0; }
.block-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  padding-bottom: 8px; margin-bottom: 18px;
  border-bottom: 2px solid var(--ink);
}
.block-eyebrow {
  margin: 0 0 6px; color: var(--ai);
  font-size: 10px; font-weight: 850; line-height: 1;
  letter-spacing: .18em;
}
.block-title {
  display: flex; align-items: center; gap: 9px; margin: 0;
  font-size: 1.28rem; font-weight: 800; letter-spacing: -.025em;
}
.bar { width: 4px; height: 19px; border-radius: 2px; display: inline-block; }
.block-more { font-size: 13px; font-weight: 700; color: var(--fg-2); white-space: nowrap; }
.block-more:hover { color: var(--accent); }

/* 톱기사 + 우측 레일 */
.lead { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(280px, 1fr); gap: 34px; }
.lead-solo { grid-template-columns: 1fr; }
.lead-rail { border-left: 1px solid var(--line-2); padding-left: 30px; }
.rail-label {
  margin: 0 0 8px; padding-bottom: 9px;
  border-bottom: 1px solid var(--ink);
  font-size: 11px; font-weight: 800; letter-spacing: .01em; color: var(--fg-2);
}

/* 3열 그리드 */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(272px, 1fr)); gap: 26px 34px; }
.grid-follow { margin-top: 28px; }

/* 홈 — 발행 기사 전체 피드 */
.home-head {
  padding-bottom: 18px; margin-bottom: 26px;
  border-bottom: 2px solid var(--ink);
}
.home-title {
  margin: 0;
  font-size: clamp(1.85rem, 3.3vw, 3rem);
  font-weight: 850; line-height: 1.18; letter-spacing: -.045em;
}
.home-sub {
  margin: 10px 0 0;
  max-width: 620px;
  font-size: 14px; line-height: 1.75; color: var(--fg-2);
}
.full-feed { display: grid; gap: 54px; }
.feed-story {
  padding-bottom: 54px;
  border-bottom: 2px solid var(--ink);
}
.feed-story:last-child { border-bottom: none; padding-bottom: 0; }
.feed-head { max-width: 860px; margin-bottom: 22px; }
.feed-title {
  margin: 4px 0 0;
  font-size: clamp(1.55rem, 2.6vw, 2.35rem);
  font-weight: 820; line-height: 1.28; letter-spacing: -.04em;
  text-wrap: balance;
}
.feed-title a:hover { color: var(--accent); }
.feed-deck {
  margin: 13px 0 0;
  max-width: 760px;
  font-size: 1.04rem; line-height: 1.76; color: var(--fg-2);
}
.feed-gallery,
.art-gallery-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin: 22px 0 28px;
}
.feed-gallery .fig,
.art-gallery-grid .fig { margin: 0; }
.feed-gallery .fig:first-child,
.art-gallery-grid .fig:first-child { grid-row: span 2; }
.feed-gallery .fig img,
.art-gallery-grid .fig img {
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.feed-gallery .fig:first-child img,
.art-gallery-grid .fig:first-child img { aspect-ratio: 4 / 3; }
.feed-gallery .fig.is-logo img,
.art-gallery-grid .fig.is-logo img {
  aspect-ratio: 16 / 10;
  object-fit: contain;
}
.feed-body {
  max-width: var(--read);
  font-size: 1.04rem; line-height: 1.92;
}
.feed-body p { margin: 0 0 1.45em; }
.feed-ctx { max-width: var(--read); }
.feed-sources {
  max-width: var(--read);
  margin-top: 28px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.feed-sources summary {
  cursor: pointer;
  font-size: 13px; font-weight: 800; color: var(--fg-2);
}
.feed-sources[open] summary { margin-bottom: 12px; color: var(--fg); }
.feed-link {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 22px;
  font-size: 13px; font-weight: 800; color: var(--it);
}
.feed-link:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ══ 카드 ══════════════════════════════════════════════════ */
.kicker { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 0 0 11px; }
.tag {
  font-size: 11px; font-weight: 800; letter-spacing: .03em;
  padding: 3px 7px; border-radius: 3px; color: #fff;
}
.tag-ai { background: var(--ai); }
.tag-it { background: var(--it); }
.tag-general { background: var(--general); }
.story-type {
  font-size: 10.5px; font-weight: 800; letter-spacing: .02em;
  color: var(--fg-2);
}
.story-type::before {
  content: ""; display: inline-block; width: 1px; height: 10px;
  margin: 0 7px 0 1px; vertical-align: -1px; background: var(--line-2);
}
.chip {
  font-size: 11px; font-weight: 700;
  padding: 3px 7px; border-radius: 3px;
  color: var(--fg-2); background: var(--surface); border: 1px solid var(--line);
}
.chip-verified {
  color: var(--pass); background: color-mix(in srgb, var(--pass) 7%, var(--bg));
  border-color: color-mix(in srgb, var(--pass) 28%, var(--line));
}
.chip-verified b { font-size: 10px; }
.chip-hold { color: var(--hold); background: var(--hold-bg); border-color: var(--hold); }

.card-title { margin: 0; letter-spacing: -.02em; }
.card-title a { transition: color .12s; }
.card-title a:hover { color: var(--accent); }
.card-meta {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  margin: 9px 0 0; font-size: 12px; color: var(--fg-3);
}
.outlets { font-weight: 600; }
.mini-hold { color: var(--hold); font-weight: 700; }

/* 톱기사 */
.card-hero .card-title {
  max-width: 23ch;
  font-size: clamp(1.8rem, 3.3vw, 2.55rem); font-weight: 820;
  line-height: 1.2; letter-spacing: -.046em; text-wrap: balance;
}
.card-hero .card-lede { margin: 12px 0 0; font-size: .99rem; line-height: 1.72; color: var(--fg-2); }
.card-hero .card-meta { margin-top: 12px; }
.card-hero .card-thumb { margin: 18px 0 0; aspect-ratio: 21 / 9; }

/* 레일 */
.card-rail { padding: 15px 0; border-bottom: 1px solid var(--line); }
.card-rail:first-child { padding-top: 0; }
.card-rail:last-child { padding-bottom: 0; border-bottom: none; }
.card-rail .card-title { font-size: 1rem; font-weight: 720; line-height: 1.48; }
.card-rail .card-title a { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: baseline; }
.rail-rank {
  font-size: 11px; font-weight: 850; font-variant-numeric: tabular-nums;
  letter-spacing: .04em; color: var(--ai);
}

/* 그리드 카드 */
.card-card { border-top: 1px solid var(--line); padding-top: 16px; }
.card-card .card-title { font-size: 1.06rem; font-weight: 700; line-height: 1.52; }

/* 그 외 섹션은 이미지 카드 대신 촘촘한 신문형 목록으로 구분 */
.story-list { border-top: 1px solid var(--line); }
.card-list {
  display: grid; grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 28px; align-items: baseline;
  padding: 18px 0; border-bottom: 1px solid var(--line);
}
.card-list .kicker { grid-column: 1; margin: 0 0 1px; }
.card-list .card-title { grid-column: 1; font-size: 1.08rem; font-weight: 720; line-height: 1.5; }
.card-list .card-meta { grid-column: 2; grid-row: 1 / span 2; margin: 0; justify-content: flex-end; }
.card-list .card-thumb { display: none; }

/* ══ 기사 ══════════════════════════════════════════════════ */
.art { max-width: var(--read); margin: 0 auto; }
.art-head { padding-bottom: 22px; margin-bottom: 34px; border-bottom: 1px solid var(--line); }
.art-title {
  margin: 4px 0 0;
  font-size: 2.3rem; font-weight: 800; line-height: 1.28; letter-spacing: -.042em;
}
.art-deck { margin: 17px 0 0; font-size: 1.11rem; font-weight: 500; line-height: 1.72; color: var(--fg-2); }
.art-meta {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 20px; font-size: 13px; color: var(--fg-3);
}

.art-trust {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 23px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.trust-item { padding: 13px 14px; border-right: 1px solid var(--line); }
.trust-item:first-child { padding-left: 0; }
.trust-item:last-child { padding-right: 0; border-right: none; }
.trust-label {
  display: block; margin-bottom: 2px;
  font-size: 10px; font-weight: 800; letter-spacing: .04em; color: var(--fg-3);
}
.trust-item strong { display: block; font-size: 12.5px; font-weight: 750; color: var(--fg-2); }

.art-actions { display: flex; gap: 7px; margin-top: 14px; }
.action-btn {
  appearance: none; cursor: pointer;
  padding: 7px 11px; border: 1px solid var(--line-2); border-radius: 4px;
  background: transparent; color: var(--fg-2); font: inherit;
  font-size: 11.5px; font-weight: 750; line-height: 1;
  transition: color .12s, border-color .12s, background .12s;
}
.action-btn:hover { color: var(--fg); border-color: var(--fg-2); }
.action-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.action-btn.is-done { color: var(--pass); border-color: var(--pass); background: color-mix(in srgb, var(--pass) 7%, transparent); }

.art-gallery {
  margin: 0 0 34px;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--line);
}
.art-gallery-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 13px;
}
.art-gallery-head h2 {
  margin: 0;
  font-size: 13px; font-weight: 850; letter-spacing: .02em; color: var(--fg-2);
}

.art-body { font-size: 1.075rem; line-height: 1.95; }
.art-body p { margin: 0 0 1.5em; }
.art-body strong { font-weight: 700; }

/* 맥락 = 자체 분석. 사실 보도와 시각적으로 분리한다 */
.ctx {
  margin: 46px 0;
  padding: 24px 26px;
  background: var(--surface);
  border-left: 3px solid var(--accent);
  border-radius: 0 6px 6px 0;
}
.ctx-h { margin: 0; font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.ctx-tag { margin: 5px 0 13px; font-size: 12px; color: var(--fg-3); }
.ctx-body { margin: 0; font-size: 1.01rem; line-height: 1.88; }

/* 원문 출처 — 저작권상 필수 */
.src { margin-top: 50px; padding-top: 20px; border-top: 2px solid var(--ink); }
.src-head { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.src-h { margin: 0; font-size: 15px; font-weight: 800; }
.src-count { font-size: 11.5px; font-weight: 700; color: var(--fg-3); }
.src-list { list-style: none; margin: 0; padding: 0; }
.src-list li {
  display: grid; grid-template-columns: 30px 92px minmax(0, 1fr); gap: 10px; align-items: baseline;
  padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 14px;
}
.src-num { font-size: 10.5px; font-weight: 800; color: var(--accent); font-variant-numeric: tabular-nums; }
.src-outlet { font-size: 12px; font-weight: 700; color: var(--fg-2); }
.src-list a { color: var(--it); border-bottom: 1px solid transparent; }
.src-list a:hover { border-bottom-color: currentColor; }
.src-note { margin: 17px 0 0; font-size: 12.5px; line-height: 1.8; color: var(--fg-3); }

/* 관련 기사 */
.rel { margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--line); }
.rel-h { margin: 0 0 18px; font-size: 15px; font-weight: 800; }

/* 게이트(미리보기 전용) */
.gate {
  margin-top: 50px; padding: 20px 22px;
  background: var(--hold-bg); border: 1px dashed var(--hold); border-radius: 6px;
}
.gate-h { margin: 0 0 12px; font-size: 14px; font-weight: 800; color: var(--hold); }
.gate-list { margin: 0; padding-left: 18px; font-size: 13.5px; }
.gate-list li { margin: 3px 0; }
.gate-meta { margin: 12px 0 0; font-size: 12.5px; color: var(--fg-2); }
.gate-edits { margin: 6px 0 0; padding-left: 20px; font-size: 12.5px; color: var(--fg-2); }
.gate-edits li { margin: 5px 0; line-height: 1.65; }
.g-pass { color: var(--pass); }
.g-fail { color: var(--fail); }

/* ══ 섹션 목록 ═════════════════════════════════════════════ */
.sec-head { padding-bottom: 13px; margin-bottom: 28px; border-bottom: 2px solid var(--ink); }
.sec-title {
  display: flex; align-items: center; gap: 10px; margin: 0;
  font-size: 1.75rem; font-weight: 800; letter-spacing: -.035em;
}
.sec-title .bar { height: 24px; }
.sec-desc p { margin: 10px 0 0; font-size: 14px; color: var(--fg-2); }
.sec-count { margin: 7px 0 0; font-size: 12px; color: var(--fg-3); }

/* ══ 일반 페이지(소개) ═════════════════════════════════════ */
.static { max-width: var(--read); margin: 0 auto; }
.static-title {
  margin: 0 0 28px; padding-bottom: 16px;
  font-size: 2rem; font-weight: 800; letter-spacing: -.038em; line-height: 1.32;
  border-bottom: 2px solid var(--ink);
}
.static-body { font-size: 1.04rem; line-height: 1.9; }
.static-body h2 { margin: 2.4em 0 .7em; font-size: 1.15rem; font-weight: 800; letter-spacing: -.02em; }
.static-body ul, .static-body ol { padding-left: 1.25em; }
.static-body li { margin: .5em 0; }
.static-body strong { font-weight: 700; }

/* ══ 빈 상태 ═══════════════════════════════════════════════ */
.empty {
  padding: 76px 24px; text-align: center;
  border: 1px dashed var(--line-2); border-radius: 8px;
}
.empty-h { margin: 0; font-size: 1.05rem; font-weight: 700; }
.empty-sub { margin: 9px 0 0; font-size: 13px; color: var(--fg-3); }

/* ══ 페이지네이션 ══════════════════════════════════════════ */
.pagination { display: flex; gap: 6px; justify-content: center; margin: 44px 0 0; padding: 0; list-style: none; }
.pagination li a { display: block; padding: 7px 13px; border: 1px solid var(--line); border-radius: 4px; font-size: 13px; font-weight: 600; }
.pagination li a:hover { border-color: var(--line-2); }
.pagination li.active a { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.pagination li.disabled { display: none; }

/* ══ 푸터 ══════════════════════════════════════════════════ */
.foot {
  margin-top: 90px; padding: 34px 0 52px;
  background: var(--surface); border-top: 3px solid var(--ink);
}
.foot-top {
  display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap;
  padding-bottom: 20px; border-bottom: 1px solid var(--line-2);
}
.foot-name { margin: 0; font-size: 1.35rem; font-weight: 900; letter-spacing: -.045em; }
.foot-tag { margin: 5px 0 0; font-size: 13px; color: var(--fg-2); }
.foot-nav { display: flex; gap: 18px; font-size: 13px; font-weight: 700; color: var(--fg-2); }
.foot-nav a:hover { color: var(--fg); }
.foot-note { max-width: 800px; margin: 22px 0 0; font-size: 12.5px; line-height: 1.85; color: var(--fg-2); }
.foot-meta { display: flex; align-items: center; gap: 9px; margin: 15px 0 0; font-size: 12px; color: var(--fg-3); }

/* ══ 사진 ══════════════════════════════════════════════════
   원문 기사 사진은 못 쓴다. 여기 실리는 건 CC/퍼블릭도메인 자료사진뿐이고,
   출처·작가·라이선스 표기는 CC BY/BY-SA의 법적 요건이므로 빼면 안 된다. */
.fig { margin: 0 0 2em; }
.fig img {
  display: block; width: 100%; height: auto;
  border-radius: 5px; background: var(--surface);
}
.fig.is-logo img {                     /* 로고는 잘라내지 않고 여백을 준다 */
  max-height: 260px; object-fit: contain;
  padding: 28px; border: 1px solid var(--line);
}
.fig-cap { display: block; margin-top: 10px; }
.fig-text {
  display: block; font-size: 13px; line-height: 1.6; font-weight: 500; color: var(--fg-2);
}
.fig-archive {
  display: inline-block; margin-left: 5px; padding: 1px 5px; vertical-align: 1px;
  font-size: 10.5px; font-weight: 700; color: var(--fg-3);
  border: 1px solid var(--line-2); border-radius: 3px;
}
.fig-credit { display: block; margin-top: 4px; font-size: 11.5px; line-height: 1.55; color: var(--fg-3); }
.fig-credit a { text-decoration: underline; text-underline-offset: 2px; }
.fig-credit a:hover { color: var(--fg-2); }

.art-lead-img { margin-bottom: 34px; }
.art-lead-img .fig { margin-bottom: 0; }
.art-body .fig { margin: 2.4em 0; }

/* 카드 썸네일 */
.card-thumb {
  display: block; margin-bottom: 13px;
  border-radius: 5px; overflow: hidden; background: var(--surface);
  aspect-ratio: 16 / 9;
}
.card-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .3s ease;
}
.card-thumb.is-logo {
  border: 1px solid var(--line);
}
.card-thumb.is-logo img { object-fit: contain; padding: 22px; }
.card:hover .card-thumb img { transform: scale(1.03); }
.card-thumb.is-logo img,
.card:hover .card-thumb.is-logo img { transform: none; }

/* ══ 반응형 ════════════════════════════════════════════════ */
@media (max-width: 900px) {
  body { font-size: 16px; }
  .lead { grid-template-columns: 1fr; gap: 30px; }
  .lead-rail { border-left: none; padding-left: 0; border-top: 1px solid var(--line); padding-top: 16px; }
  .feed-gallery,
  .art-gallery-grid { grid-template-columns: 1fr 1fr; }
  .feed-gallery .fig:first-child,
  .art-gallery-grid .fig:first-child { grid-column: 1 / -1; grid-row: auto; }
  .card-hero .card-title { max-width: 24ch; font-size: 2.2rem; }
  .art-title { font-size: 1.85rem; }
  .brand { font-size: 2.2rem; }
  main.wrap { padding-top: 24px; }
}
@media (max-width: 560px) {
  .wrap { padding: 0 18px; }
  .util-in { padding-top: 8px; padding-bottom: 8px; }
  .util-today, .util-sep { display: none; }
  .util-links a { margin-left: 12px; }
  .util-links a:nth-child(2) { display: none; }
  .brand-in { padding-top: 13px; padding-bottom: 13px; }
  .brand-kicker { margin-bottom: 8px; font-size: 8px; }
  .grid { grid-template-columns: 1fr; gap: 22px; }
  .home-title { font-size: 1.72rem; }
  .full-feed { gap: 42px; }
  .feed-story { padding-bottom: 42px; }
  .feed-title { font-size: 1.38rem; }
  .feed-gallery,
  .art-gallery-grid { grid-template-columns: 1fr; gap: 16px; }
  .block { margin-bottom: 50px; }
  .block-head { margin-bottom: 18px; }
  .lead { gap: 25px; }
  .lead-rail { padding-top: 13px; }
  .card-hero .card-title { max-width: none; font-size: 1.64rem; line-height: 1.25; }
  .card-hero .card-lede {
    display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
    font-size: .96rem; line-height: 1.7;
  }
  .art-title { font-size: 1.6rem; }
  .art-deck { font-size: 1.02rem; }
  .art-trust { grid-template-columns: 1fr; }
  .trust-item, .trust-item:first-child, .trust-item:last-child {
    display: flex; align-items: baseline; justify-content: space-between; gap: 18px;
    padding: 9px 0; border-right: none; border-bottom: 1px solid var(--line);
  }
  .trust-item:last-child { border-bottom: none; }
  .trust-label { margin: 0; }
  .brand { font-size: 1.92rem; }
  .brand::after { width: 27px; height: 3px; margin-top: 10px; }
  .brand-tag { margin-top: 7px; font-size: 12px; }
  .nav a { padding-top: 9px; padding-bottom: 9px; }
  main.wrap { padding-top: 20px; }
  .card-list { grid-template-columns: 1fr; gap: 7px; padding: 16px 0; }
  .card-list .card-meta { grid-column: 1; grid-row: auto; justify-content: flex-start; }
  .src-list li { grid-template-columns: 25px minmax(0, 1fr); gap: 3px 8px; }
  .src-outlet { grid-column: 2; }
  .src-list a { grid-column: 2; }
  .foot-top { align-items: flex-start; }
}
