/* ---------- SEO/blog article pages (e.g. tablas/tabla-del-6.html) ----------
   Loaded alongside shell.css + menu.css. The top of the page is NOT its own
   thing - it reuses .menu-head + .cat-grid exactly like every other section
   page (guia-didactica.html, m*.html), so an article doesn't look like a
   foreign page bolted onto the site. The only replacement is menu.css's
   .board-area (mascot + blackboard card): that's sized to BE the whole
   screen, which is right for a game-selection menu and wrong for a page
   meant to be read, so article pages go straight from the nav into
   .article-card instead. Body copy uses --am-readable-font like
   .guide-table/.guide-tips already do - dense text is scanned, not read as
   brand personality, and the all-caps display font fights legibility at
   paragraph length. */

/* .menu-screen normally reserves the full viewport height (min-height:
   100dvh) because .board-area (flex:1) fills the rest attractively - an
   article page has no such flex:1 filler, so without this override the nav
   would pack to the top and leave a dead empty gap before .article-card,
   the exact "mostly empty before the real content" problem this template
   exists to avoid. Everything else about .menu-screen/.is-section (the
   centered layout, the smaller section wordmark, the gap) stays. */
.menu-screen.article-top { min-height: 0; }

.article-meta {
  font-family: var(--am-readable-font);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--purple-dark);
  opacity: .75;
  margin: 0 0 10px;
}

.article-lead {
  font-family: var(--am-readable-font);
  font-size: clamp(15px, 2.2vw, 17px);
  line-height: 1.55;
  margin: 0 0 18px;
}

/* Reading column + a thinner right rail (filled by shared/article.js from
   shared/seo-posts.js - see .article-aside below) that always carries a
   link back to the blog index, plus a "more articles" list once there's
   at least one other post. justify-content:center keeps the pair looking
   intentional rather than pinned to the left edge of the wider row. */
.article-layout {
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 1000px;
  margin: 0 auto 26px;
  padding: 0 clamp(16px, 4vw, 28px);
}
@media (min-width: 760px) {
  .article-layout { flex-direction: row; align-items: flex-start; justify-content: center; }
}

/* The reading column itself: a plain white card (not the dark .explainer
   teal) because sustained paragraph text reads better on a light
   background - the brand's saturated colours stay as accents (headings,
   callouts, the CTA button, the table header row) rather than the page. */
.article-card {
  position: relative;
  z-index: 1;
  background: #fff;
  color: var(--ink);
  max-width: 760px;
  flex: 1 1 480px;
  min-width: 0;
  margin: 0;
  border-radius: 28px;
  padding: clamp(22px, 5vw, 44px) clamp(20px, 5vw, 48px);
  box-shadow: 0 8px 0 rgba(0,0,0,.08), 0 16px 32px rgba(0,0,0,.12);
}
.article-card h2 {
  font-size: clamp(20px, 3.6vw, 26px);
  color: var(--purple-dark);
  margin: 30px 0 12px;
}
.article-card h2:first-child { margin-top: 0; }
.article-card h3 {
  font-family: var(--am-readable-font);
  font-size: clamp(16px, 2.6vw, 18px);
  font-weight: 700;
  color: var(--purple-dark);
  margin: 22px 0 6px;
}
.article-card p, .article-card li {
  font-family: var(--am-readable-font);
  font-size: 16px;
  line-height: 1.6;
  margin: 0 0 14px;
}
.article-card ul { margin: 0 0 16px; padding-left: 20px; }
.article-card .guide-table-wrap { margin: 18px 0 8px; }

.article-callout {
  background: #fbf2e2;
  border-left: 5px solid var(--pink);
  border-radius: 10px;
  padding: 14px 18px 2px;
  margin: 20px 0;
}
.article-callout h3 { margin-top: 0; }

.article-cta { text-align: center; margin: 26px 0 4px; }

/* Right rail (shared/article.js renders it) - starts [hidden] in markup
   so there's nothing to flash before JS runs, but JS always unhides it:
   every post always offers a way back to the blog index, with or without
   other posts to list. Full width when stacked under the card on a
   narrow screen; a thin fixed-width column alongside it from 760px up. */
.article-aside {
  width: 100%;
}
@media (min-width: 760px) {
  .article-aside { width: 230px; flex-shrink: 0; position: sticky; top: 18px; }
}
.article-aside-blog {
  display: block;
  font-family: var(--am-readable-font);
  font-size: 14px;
  font-weight: 700;
  color: var(--purple-dark);
  background: #fff;
  border-radius: 16px;
  padding: 12px 20px;
  margin-bottom: 14px;
  text-decoration: none;
  box-shadow: 0 4px 0 rgba(0,0,0,.08), 0 8px 16px rgba(0,0,0,.08);
}
.article-more-heading {
  font-size: clamp(18px, 3.2vw, 23px);
  color: var(--purple-dark);
  text-shadow: 1px 1px 0 #fff;
  margin: 0 0 12px;
}
.article-more-link {
  display: block;
  background: #fff;
  border-radius: 16px;
  padding: 12px 20px;
  margin-bottom: 10px;
  text-decoration: none;
  box-shadow: 0 4px 0 rgba(0,0,0,.08), 0 8px 16px rgba(0,0,0,.08);
}
.article-more-cat {
  display: block;
  font-family: var(--am-readable-font);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: var(--pink);
  margin-bottom: 2px;
}
.article-more-title {
  font-family: var(--am-readable-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--purple-dark);
}
.article-cta .big-button,
.article-lead + .big-button {
  display: inline-block;
  text-decoration: none;
  font-size: clamp(17px, 4.2vw, 26px);
  padding: clamp(12px, 3vw, 15px) clamp(22px, 5vw, 40px);
  white-space: nowrap;
}
