/* ========== Animations ========== */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideDown { from { transform: translateY(-12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes slideDownCentered { from { transform: translate(-50%, -12px); opacity: 0; } to { transform: translate(-50%, 0); opacity: 1; } }
@keyframes slideInRight { from { transform: translateX(100%); } to { transform: translateX(0); } }

/* ========== Responsive ========== */
@media (max-width: 1100px) {
  .front-grid { grid-template-columns: 200px 1fr 240px; gap: 22px; }
  .hero-main h1 { font-size: 26px; }
  .article-title { font-size: 36px; }
  .cities { grid-template-columns: repeat(2, 1fr); }
  .cat-row { grid-template-columns: repeat(2, 1fr); }
  .subnav-dropdown { min-width: 300px; }
}

@media (max-width: 860px) {
  .container, .header-row, .subnav-row, .footer-row, .footer-bottom { padding-left: 20px; padding-right: 20px; }
  .header-row { grid-template-columns: auto 1fr auto; padding: 14px 20px; }
  .header-left { justify-self: start; }
  .wt-city, .wt-sep { display: none; }
  .header-right { justify-self: end; gap: 8px; }

  .desktop-only { display: none !important; }
  .mobile-only { display: inline-flex; }

  .subnav { overflow-x: auto; }
  .subnav-row {
    flex-wrap: nowrap;
    justify-content: flex-start;
    padding: 10px 20px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .subnav-row::-webkit-scrollbar { display: none; }
  .subnav a { flex-shrink: 0; padding: 4px 10px; font-size: 11.5px; }
  .subnav .sep { flex-shrink: 0; }

  .front-grid { grid-template-columns: 1fr; gap: 0; }
  .latest-col { order: 3; padding-top: 24px; border-top: 1px solid var(--border); }
  .right-col { order: 2; }
  .hero-main { order: 1; }

  .hero-main h1 { font-size: 24px; }
  .hero-main .dek { font-size: 13.5px; }
  .hero-secondary { grid-template-columns: 140px 1fr; gap: 12px; }
  .hero-secondary h3 { font-size: 15px; }

  .right-col { gap: 28px; margin-top: 24px; }
  .right-card h3 { font-size: 16px; }

  .cat-section {
    padding: 40px 0 0;
  }
  .cat-section + .cat-section { padding-top: 24px; }
  .cat-row, .cat-row.big { grid-template-columns: 1fr; gap: 24px; }
  .cat-header h2 { font-size: 22px; }
  .cat-card h3 { font-size: 16px; }

  .cities { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
  .bottom-ads { grid-template-columns: 1fr; gap: 16px; padding-top: 32px; }

  .article-wrap { grid-template-columns: 1fr; gap: 36px; padding: 20px 0 48px; }
  .article-title { font-size: 28px; }
  .article-dek { font-size: 15px; }
  .article-prose { font-size: 13.5px; }
  .article-prose h2 { font-size: 18px; }

  .footer-row { grid-template-columns: 1fr 1fr; gap: 28px; padding: 40px 20px 16px; }
  .footer-col:nth-child(4) { grid-column: span 2; }
}

@media (max-width: 480px) {
  .hero-main h1 { font-size: 22px; }
  .article-title { font-size: 26px; }
  .footer-row { grid-template-columns: 1fr; }
  .footer-col:nth-child(4) { grid-column: span 1; }
}

/* ========== Utility ========== */
.no-scroll { overflow: hidden; }


/* Inconsolata variable font — SemiExpanded Medium tuning */
.mono, .meta, .dek, .article-prose, .article-caption,
.latest-item .meta, .right-card .meta, .cat-card .meta,
.hero-meta, .img-credit, .footer-bottom, .footer-col .blurb,
.search-empty, .search-panel-input kbd,
.article-meta-left, .share-row, .related-item .meta,
.share-btn, kbd {
  font-stretch: semi-expanded;
  font-variation-settings: 'wdth' 112.5;
}
