/* ══════════════════════════════════════════════════════════════════
   Articles page — newspaper / editorial layout (NYT / WaPo feel).

   This page is ALWAYS a white "paper" reading surface, regardless of the
   app's dark/light theme: .art-paper redefines a local paper palette and
   sets its own background, so the dark navbar + rail frame a bright page
   (a deliberate reading mode). Type-led, hairline rules instead of cards.
   ════════════════════════════════════════════════════════════════════ */

/* "Paper" palette — follows the app theme. Default = dark paper (app's dark
   theme); body.light swaps to a white newsprint surface. Shared with .art-pop
   (the summary popover lives on <body>, outside .art-paper). */
.art-paper, .art-pop {
  --paper:       #15171e;
  --ink:         #e9ecf3;
  --ink2:        #a7afc4;
  --ink3:        #717a93;
  --rule:        #2a2f3c;
  --rule2:       #3a4154;
  --rule-strong: #e9ecf3;
  --kicker:      #e89379;
  --link-hover:  #7db4ff;
  --surface:     #1d212b;
  --surface2:    #262b37;
  --panel:       #1e222c;
  --ph:          #232733;
  --okc:         #3dd68c;

  --font-display:  'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-headline: 'Source Serif 4', Georgia, 'Times New Roman', serif;
}
body.light .art-paper, body.light .art-pop {
  --paper:       #ffffff;
  --ink:         #1a1a1a;
  --ink2:        #5b5b5b;
  --ink3:        #8a8a8a;
  --rule:        #e3e3e3;
  --rule2:       #cfcfcf;
  --rule-strong: #1a1a1a;
  --kicker:      #9a3324;
  --link-hover:  #1d4e74;
  --surface:     #f4f5f6;
  --surface2:    #eceef0;
  --panel:       #ffffff;
  --ph:          #ededed;
  --okc:         #1d7a46;
}
.art-paper {
  flex:        1;
  min-height:  0;
  overflow-y:  auto;
  background:  var(--paper);
  color:       var(--ink);
  -webkit-font-smoothing: antialiased;
}

/* Centred broadsheet column. */
.art-col {
  max-width: 1120px;
  margin:    0 auto;
  padding:   26px 36px 80px;
}

/* ── Masthead ─────────────────────────────────────────────────────── */
.art-mast { border-bottom: 1px solid var(--rule); margin-bottom: 8px; }
.art-mast-top {
  display:       grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:   center;
  gap:           18px;
  padding:       6px 0 16px;
  border-bottom: 1px solid var(--rule-strong);
}
.art-mast-side { display: flex; align-items: center; min-width: 0; }
.art-mast-left  { justify-content: flex-start; }
.art-mast-right { justify-content: flex-end; gap: 12px; }
.art-dateline {
  font-family:    var(--font-sans);
  font-size:      10.5px;
  font-weight:    600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color:          var(--ink3);
  white-space:    nowrap;
}
/* Search field — the masthead centrepiece (replaces the old nameplate). */
.art-search {
  justify-self:  center;
  width:         min(480px, 44vw);
  display:       flex;
  align-items:   center;
  gap:           8px;
  padding:       8px 14px;
  border:        1px solid var(--rule2);
  border-radius: 999px;
  background:    var(--surface);
  transition:    border-color .14s, background .14s, box-shadow .14s;
  min-width:     0;
}
.art-search:focus-within {
  border-color: var(--ink2);
  background:   var(--panel);
  box-shadow:   0 1px 4px rgba(0, 0, 0, .06);
}
.art-search-ic { width: 15px; height: 15px; color: var(--ink3); flex-shrink: 0; }
.art-search-in {
  border:      none;
  outline:     none;
  background:  transparent;
  font-family: var(--font-sans);
  font-size:   13.5px;
  color:       var(--ink);
  flex:        1 1 auto;
  min-width:   0;
  padding:     1px 0;
}
.art-search-in::placeholder { color: var(--ink3); }
.art-search-clear {
  border:      none;
  background:  transparent;
  color:       var(--ink3);
  font-size:   18px;
  line-height: 1;
  cursor:      pointer;
  padding:     0 2px;
}
.art-search-clear:hover { color: var(--ink); }

/* EN / 한 language toggle. */
.art-lang { display: flex; gap: 3px; flex-shrink: 0; }
.art-lang button {
  font-family:   var(--font-sans);
  font-size:     10.5px;
  font-weight:   700;
  padding:       4px 9px;
  border:        1px solid var(--rule2);
  border-radius: 5px;
  background:    transparent;
  color:         var(--ink3);
  cursor:        pointer;
  transition:    background .12s, color .12s, border-color .12s;
}
.art-lang button:hover  { color: var(--ink); border-color: var(--ink3); }
.art-lang button.active { background: var(--ink); border-color: var(--ink); color: var(--paper); }

/* Section nav (kicker links · divided · centred). */
.art-nav {
  display:         flex;
  flex-wrap:       wrap;
  align-items:     center;
  justify-content: center;
  gap:             0;
  padding:         9px 0;
}
.art-nav-link {
  font-family:    var(--font-sans);
  font-size:      11px;
  font-weight:    700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color:          var(--ink2);
  cursor:         pointer;
  padding:        2px 14px;
  border-left:    1px solid var(--rule);
  white-space:    nowrap;
  transition:     color .12s;
}
.art-nav-link:first-child { padding-left: 0; border-left: none; }
.art-nav-link:hover  { color: var(--ink); }
.art-nav-link.active { color: var(--kicker); }

/* Pinned section bar — fixed below the app navbar, slides in on scroll. Left
   offset clears the product rail (52px strip + gutter) so it never covers it;
   z-index sits below the navbar (300) and the rail (880), so the rail's
   hover-expand still overlays this bar exactly like it overlays page content. */
.art-nav-sticky {
  position:       fixed;
  top:            var(--nav-h);
  left:           64px;
  right:          0;
  z-index:        250;
  background:     var(--paper);
  border-bottom:  1px solid var(--rule);
  box-shadow:     0 6px 18px rgba(0, 0, 0, .06);
  transform:      translateY(-100%);
  opacity:        0;
  pointer-events: none;
  transition:     transform .28s cubic-bezier(.22, .61, .36, 1), opacity .2s ease;
}
.art-nav-sticky.show { transform: translateY(0); opacity: 1; pointer-events: auto; }
.art-nav-sticky .art-nav {
  max-width: 1120px;
  margin:    0 auto;
  padding:   11px 36px;
}

/* ── Shared editorial type ────────────────────────────────────────── */
.art-kicker {
  font-family:    var(--font-sans);
  font-size:      10.5px;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--kicker);
  margin-bottom:  5px;
}
.art-meta {
  font-family:    var(--font-sans);
  font-size:      11px;
  letter-spacing: .02em;
  color:          var(--ink3);
  margin-top:     7px;
}
.art-tags { color: var(--ink2); }   /* article tags after the date */
.art-headline { font-family: var(--font-headline); color: var(--ink); transition: color .12s; }
.art-deck {
  font-family: var(--font-headline);
  color:       var(--ink2);
  line-height: 1.45;
}
.art-clickable { cursor: pointer; }
.art-clickable:hover .art-headline { color: var(--link-hover); }

/* Thumbnails. */
.art-fig {
  display:       block;
  width:         100%;
  aspect-ratio:  16 / 10;
  object-fit:    cover;
  background:    var(--ph);
  margin-bottom: 12px;
}

/* ── Lead block (A1): big lead + secondary top rail ───────────────── */
.art-lead {
  display:               grid;
  grid-template-columns: 1.7fr 1fr;
  gap:                   0 34px;
  padding:               26px 0 4px;
  margin-bottom:         0;
}
.art-lead[hidden] { display: none; }      /* section view truly removes the home main */
.art-lead-main { min-width: 0; }
.art-lead-main .art-headline {
  font-family:    var(--font-display);
  font-weight:    800;
  font-size:      clamp(27px, 3.4vw, 40px);
  line-height:    1.08;
  letter-spacing: .005em;
}
/* Lead body: a big thumbnail (left) + short deck & source (right) under the headline. */
.art-lead-body {
  display:               grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap:                   0 26px;
  align-items:           start;
  margin-top:            14px;
}
.art-lead-body > .art-fig { aspect-ratio: 4 / 3; margin: 0; }
.art-lead-text { min-width: 0; }
.art-lead-main .art-deck {
  font-size:          15px;
  line-height:        1.55;
  margin-top:         0;
  display:            -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}
.art-lead-main .art-meta { margin-top: 10px; }
.art-lead-rail {
  min-width:      0;
  border-left:    1px solid var(--rule);
  padding-left:   34px;
  display:        flex;
  flex-direction: column;
}
.art-top { padding: 15px 0; border-top: 1px solid var(--rule); }
.art-top:first-child { padding-top: 0; border-top: none; }
.art-top .art-headline {
  font-weight: 600;
  font-size:   18px;
  line-height: 1.22;
}
.art-top .art-deck {
  font-size:          13.5px;
  margin-top:         5px;
  display:            -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}

/* ── Category section ─────────────────────────────────────────────── */
.art-section { margin-top: 26px; }
.art-section-head {
  display:       flex;
  align-items:   baseline;
  justify-content: space-between;
  gap:           12px;
  border-top:    1px solid var(--rule-strong);
  padding-top:   10px;
  margin-bottom: 4px;
}
.art-section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size:   22px;
  color:       var(--ink);
  cursor:      pointer;
}
.art-section-title:hover { color: var(--link-hover); }
.art-section-title-plain { cursor: default; }
.art-section-title-plain:hover { color: var(--ink); }
.art-section-more {
  font-family:    var(--font-sans);
  font-size:      10.5px;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--ink3);
  cursor:         pointer;
  white-space:    nowrap;
}
.art-section-more:hover { color: var(--kicker); }

/* Multi-column grid with column + row hairlines (newspaper grid). */
.art-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 26px; }
.art-story {
  min-width:    0;
  padding:      16px 0 18px 24px;
  border-top:   1px solid var(--rule);
  border-left:  1px solid var(--rule);
}
.art-story:nth-child(3n + 1) { border-left: none; padding-left: 0; }
.art-story .art-headline { font-weight: 600; font-size: 17px; line-height: 1.24; }
.art-story .art-deck {
  font-size:          13px;
  margin-top:         5px;
  display:            -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}
.art-story .art-fig { aspect-ratio: 16 / 9; margin-bottom: 10px; }

/* Section feature — the lead story of a single-category view: big headline +
   thumbnail beside it, with the rest of the category laid out small below. */
.art-sec-lead {
  display:               grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);   /* headline + deck left, big image right */
  gap:                   0 30px;
  align-items:           start;   /* text aligns to the top of the image, not centred */
  padding:               8px 0 26px;
}
.art-sec-lead > .art-fig { aspect-ratio: 16 / 10; margin: 0; }
.art-fig-ph { background: var(--ph); }
.art-sec-lead-body { min-width: 0; }
.art-sec-lead-body .art-deck {
  font-size:          14.5px;
  line-height:        1.5;
  margin-top:         10px;
  display:            -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}

/* No image found after scraping — collapse to a single text column. The image
   normally gives the feature height/breathing room; without it, add bottom space
   so the grid below doesn't crowd the (now short) feature. */
.art-sec-lead.art-no-fig { grid-template-columns: 1fr; margin-bottom: 34px; }
.art-sec-lead .art-headline {
  font-family:    var(--font-display);
  font-weight:    800;
  font-size:      clamp(23px, 2.7vw, 32px);
  line-height:    1.1;
  letter-spacing: .005em;
}

/* Two-up feature — used when the section's latest story has no image: the latest
   (left) + the next story (right), same size, split by a vertical rule. */
.art-sec-duo {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   0 30px;
  align-items:           start;
  padding:               8px 0 26px;
  /* Text-only feature is short; add the breathing room a thumbnail would've given
     so the grid below doesn't look cramped. */
  margin-bottom:         34px;
}
.art-sec-duo-item { min-width: 0; }
.art-sec-duo-item + .art-sec-duo-item { border-left: 1px solid var(--rule); padding-left: 30px; }
.art-sec-duo-item .art-headline {
  font-family:    var(--font-display);
  font-weight:    800;
  font-size:      clamp(23px, 2.7vw, 32px);
  line-height:    1.1;
  letter-spacing: .005em;
}
.art-sec-duo-item .art-deck {
  font-size:          14.5px;
  line-height:        1.5;
  margin-top:         10px;
  display:            -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}

/* ── Search results — filter bar (left) + count (right) ───────────── */
.art-srch-bar {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             16px;
  flex-wrap:       wrap;
  padding:         16px 0 8px;
  border-bottom:   1px solid var(--rule-strong);
  margin-bottom:   2px;
}
.art-srch-filters { display: flex; gap: 8px; }
.art-srch-count { font-family: var(--font-sans); font-size: 13px; color: var(--ink2); text-align: right; margin-left: auto; }
.art-srch-count b { color: var(--ink); font-weight: 700; }

.art-dd { position: relative; }
.art-dd-btn {
  display:       inline-flex;
  align-items:   center;
  gap:           5px;
  font-family:   var(--font-sans);
  font-size:     12px;
  font-weight:   600;
  color:         var(--ink);
  background:    transparent;
  border:        1px solid var(--rule2);
  border-radius: 6px;
  padding:       6px 11px;
  cursor:        pointer;
  transition:    background .12s, border-color .12s;
}
.art-dd-btn:hover { background: var(--surface); border-color: var(--ink3); }
.art-dd-cap  { font-weight: 700; color: var(--kicker); }
.art-dd-chev { width: 13px; height: 13px; }
.art-dd-panel {
  position:      absolute;
  top:           calc(100% + 6px);
  left:          0;
  z-index:       400;
  min-width:     212px;
  background:    var(--panel);
  border:        1px solid var(--rule2);
  border-radius: 8px;
  box-shadow:    0 14px 34px rgba(0, 0, 0, .16);
  padding:       6px;
}
.art-dd-panel[hidden] { display: none; }
.art-dd-opt, .art-dd-check {
  display:       flex;
  align-items:   center;
  width:         100%;
  text-align:    left;
  font-family:   var(--font-sans);
  font-size:     13px;
  color:         var(--ink);
  background:    transparent;
  border:        none;
  border-radius: 6px;
  padding:       9px 10px;
  cursor:        pointer;
}
.art-dd-opt:hover, .art-dd-check:hover { background: var(--surface2); }
.art-dd-opt.sel { font-weight: 700; }
.art-dd-box {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  width:           16px;
  height:          16px;
  margin-right:    10px;
  border:          1px solid var(--rule2);
  border-radius:   3px;
  font-size:       11px;
  line-height:     1;
  color:           var(--paper);
  flex-shrink:     0;
}
.art-dd-check.on .art-dd-box { background: var(--ink); border-color: var(--ink); }
.art-dd-custom {
  display:     flex;
  align-items: center;
  gap:         6px;
  padding:     8px 8px 4px;
  margin-top:  4px;
  border-top:  1px solid var(--rule);
}
.art-dd-date {
  font-family:   var(--font-sans);
  font-size:     12px;
  width:         92px;
  border:        1px solid var(--rule2);
  border-radius: 5px;
  padding:       4px 6px;
  background:    var(--paper);
  color:         var(--ink);
}
.art-dd-date:focus { outline: none; border-color: var(--ink); }
.art-dd-dash  { color: var(--ink3); }
.art-dd-apply {
  font-family:   var(--font-sans);
  font-size:     12px;
  font-weight:   600;
  background:    var(--ink);
  color:         var(--paper);
  border:        none;
  border-radius: 5px;
  padding:       5px 12px;
  cursor:        pointer;
  margin-left:   auto;
}

/* Custom 기간 달력 (Price Hubs 스타일, yyyy-mm-dd) */
.art-cal {
  margin:        0 8px 8px;
  padding:       8px;
  border:        1px solid var(--rule2);
  border-radius: 8px;
  background:    var(--surface);
}
.art-cal[hidden] { display: none; }
.art-cal-hdr {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  margin-bottom:   6px;
}
.art-cal-nav {
  background: none; border: none; cursor: pointer;
  color:      var(--ink2);
  padding:    2px 7px; border-radius: 4px;
  font-size:  12px; line-height: 1;
}
.art-cal-nav:hover { background: var(--surface2); }
.art-cal-title {
  background: none; border: none; cursor: pointer;
  font-family: var(--font-sans);
  font-size:   12px; font-weight: 600;
  color:       var(--ink);
  padding:     3px 10px; border-radius: 5px;
}
.art-cal-title:hover { background: var(--surface2); }
.art-cal-range { font-size: 12px; font-weight: 600; color: var(--ink); }
.art-cal-grid {
  display:               grid;
  grid-template-columns: repeat(7, 1fr);
  gap:                   2px;
}
.art-cal-grid.g3 { grid-template-columns: repeat(3, 1fr); gap: 4px; }
.art-cal-dow {
  font-size: 10px; color: var(--ink3);
  text-align: center; padding: 2px 0 4px; font-weight: 600;
}
.art-cal-day {
  font-size: 11px; text-align: center;
  padding: 5px 2px; border-radius: 4px; line-height: 1;
  cursor: pointer; color: var(--ink);
}
.art-cal-day.empty { cursor: default; }
.art-cal-day:not(.empty):hover { background: var(--surface2); }
.art-cal-day.in-range { background: var(--surface2); border-radius: 0; }
.art-cal-day.sel { background: var(--ink); color: var(--paper); }
.art-cal-cell {
  font-size: 12px; text-align: center;
  padding: 10px 4px; border-radius: 5px;
  cursor: pointer; color: var(--ink2);
}
.art-cal-cell:hover { background: var(--surface2); }
.art-cal-cell.sel { background: var(--ink); color: var(--paper); }

.art-showmore-wrap { text-align: center; padding: 24px 0 4px; }
.art-showmore {
  font-family:    var(--font-sans);
  font-size:      11.5px;
  font-weight:    700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--ink);
  background:     transparent;
  border:         1px solid var(--rule-strong);
  border-radius:  6px;
  padding:        11px 30px;
  cursor:         pointer;
  transition:     background .14s, color .14s;
}
.art-showmore:hover { background: var(--ink); color: var(--paper); }

.art-result { padding: 16px 0; border-top: 1px solid var(--rule); max-width: 760px; }
.art-result:first-of-type { border-top: none; }
.art-result .art-headline { font-weight: 600; font-size: 19px; line-height: 1.25; }
.art-result .art-deck {
  font-size:          14px;
  margin-top:         6px;
  display:            -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow:           hidden;
}

/* Status line. */
.art-status {
  font-family: var(--font-sans);
  font-size:   13px;
  color:       var(--ink3);
  padding:     40px 0;
  text-align:  center;
}
.art-status[hidden] { display: none; }

/* ── Summary popover (paper-styled; appended to <body>, so self-contained) ── */
.art-pop {
  position:       fixed;
  z-index:        2000;
  width:          370px;
  max-width:      calc(100vw - 24px);
  background:     var(--panel);
  color:          var(--ink);
  border:         1px solid var(--rule);
  border-radius:  4px;
  box-shadow:     0 16px 42px rgba(0, 0, 0, .34);
  padding:        16px 18px;
  opacity:        0;
  transform:      translateY(4px);
  pointer-events: none;
  transition:     opacity .14s ease, transform .14s ease;
}
.art-pop.show { opacity: 1; transform: none; pointer-events: auto; }
.art-pop-top {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             10px;
  padding-bottom:  9px;
  margin-bottom:   10px;
  border-bottom:   1px solid var(--rule);
}
.art-pop-h {
  font-family:    var(--font-sans);
  font-size:      10.5px;
  font-weight:    700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color:          var(--kicker);
}
.art-pop-actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.art-pop-copy, .art-pop-link {
  font-family:   var(--font-sans);
  font-size:     11px;
  color:         var(--ink2);
  background:    var(--surface);
  border:        1px solid var(--rule2);
  border-radius: 4px;
  padding:       3px 9px;
  cursor:        pointer;
  display:       inline-flex;
  align-items:   center;
  gap:           4px;
}
.art-pop-link { padding: 3px 6px; }
.art-pop-link svg { width: 13px; height: 13px; }
.art-pop-copy:hover, .art-pop-link:hover { background: var(--surface2); color: var(--ink); }
.art-pop-copy.ok, .art-pop-link.ok { color: var(--okc); border-color: var(--okc); }
/* Explicit close — only on touch/no-hover, where there's no mouse-out to dismiss. */
.art-pop-close {
  display:       none;
  align-items:   center;
  justify-content: center;
  color:         var(--ink2);
  background:    var(--surface);
  border:        1px solid var(--rule2);
  border-radius: 4px;
  padding:       3px 6px;
  cursor:        pointer;
}
.art-pop-close svg { width: 14px; height: 14px; display: block; }
.art-pop-close:hover { background: var(--surface2); color: var(--ink); }
@media (hover: none) { .art-pop-close { display: inline-flex; } }
.art-pop-list {
  margin:       0;
  padding-left: 18px;
  font-family:  var(--font-headline);
  font-size:    14px;
  line-height:  1.5;
  color:        var(--ink);
}
.art-pop-list li { margin: 0 0 7px; }
.art-pop-list li:last-child { margin-bottom: 0; }

/* ── Responsive ───────────────────────────────────────────────────── */
@media (max-width: 980px) {
  .art-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* undo the 3-col first-column reset, apply 2-col reset */
  .art-story:nth-child(3n + 1) { border-left: 1px solid var(--rule); padding-left: 24px; }
  .art-story:nth-child(2n + 1) { border-left: none; padding-left: 0; }
}
@media (max-width: 900px) {
  /* Rail is hidden below 900px (base.css), so the content — and the pinned bar — go full-width. */
  .art-nav-sticky { left: 0; }
  .art-nav-sticky .art-nav { padding: 10px 20px; }
}
@media (max-width: 760px) {
  .art-col { padding: 20px 20px 64px; }
  /* Masthead: EN/KR pinned to the top-right; search full-width on its own row. */
  .art-mast-top  { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
  .art-mast-left  { display: none; }       /* date hidden on the narrow masthead */
  .art-mast-right { order: 0; margin-left: auto; }
  .art-search     { order: 1; width: 100%; max-width: none; }
  /* Section nav: ONE line — centred when it fits, but `safe center` falls back to
     start-alignment when it overflows (so the left isn't clipped; it spills right
     and scrolls). Tighter spacing; scrollbar hidden. */
  .art-nav { flex-wrap: nowrap; overflow-x: auto; justify-content: safe center; scrollbar-width: none; }
  .art-nav::-webkit-scrollbar { display: none; }
  .art-nav-link { padding: 2px 9px; font-size: 10.5px; letter-spacing: .06em; }
  .art-lead { grid-template-columns: 1fr; }
  .art-lead-body { grid-template-columns: 1fr; }
  .art-lead-body > .art-fig { margin-bottom: 12px; }
  .art-sec-lead { grid-template-columns: 1fr; }
  .art-sec-lead > .art-fig { margin-top: 12px; }
  .art-sec-duo { grid-template-columns: 1fr; }
  .art-sec-duo-item + .art-sec-duo-item {
    border-left: none; padding-left: 0;
    border-top: 1px solid var(--rule); padding-top: 16px; margin-top: 4px;
  }
  .art-lead-rail {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--rule);
    margin-top: 18px;
    padding-top: 4px;
  }
}
@media (max-width: 600px) {
  .art-grid { grid-template-columns: 1fr; }
  .art-story, .art-story:nth-child(3n + 1), .art-story:nth-child(2n + 1) {
    border-left: none; padding-left: 0;
  }
}
