/*
Theme Name: ICA (Kadence Child)
Theme URI: https://il-chess.org
Description: Child theme of Kadence for the Illinois Chess Association site. Design tokens + the hand-written CSS that Kadence settings can't express (masthead rules, red active-nav underline, event pills).
Author: Illinois Chess Association
Template: kadence
Version: 0.9.5
Text Domain: ica
*/

/* ============================================================
   ICA design tokens  —  Broadsheet layout / Civic palette
   Kept in sync with Kadence Global Colors (palette1..9).
   ============================================================ */
:root {
  --ica-navy:        #0A2342;
  --ica-navy-deep:   #06182F;
  --ica-ink:         #1B1F27;
  --ica-ink-strong:  #10192B;
  --ica-muted:       #55607A;
  --ica-link:        #12507B;
  --ica-link-hover:  #0B3552;
  --ica-red:         #C8102E;
  --ica-rule:        #DCE1E9;
  --ica-rule-soft:   #E9EDF2;
  --ica-panel:       #F3F5F8;
  --ica-paper:       #FFFFFF;

  --ica-font-serif:  "Source Serif 4", Georgia, "Times New Roman", serif;
  --ica-font-sans:   "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --ica-tag-open-bg:   #FBE3D4;
  --ica-tag-open-fg:   #8A3D12;
  --ica-tag-schol-bg:  #DDE7F3;
  --ica-tag-schol-fg:  #1B4A78;
}

/* Links — Kadence's link color mod covers most, this keeps body copy consistent. */
.entry-content a,
.site-main a {
  color: var(--ica-link);
}
.entry-content a:hover,
.site-main a:hover {
  color: var(--ica-link-hover);
}

h1, h2, h3 { text-wrap: balance; }
p, li { text-wrap: pretty; }

/* ============================================================
   Page banner — shared dark photo header (ica_page_banner(), inc/page-banner.php)
   Used by every interior page in place of the old plain-white kicker+h1.
   ============================================================ */
/* Fixed min-height per size tier (not just padding) so a page with a
   kicker line and one without land at the same height instead of the
   box growing/shrinking with content — measured against the live site
   before picking these: default banners ranged 176-200px depending on
   whether a kicker was present, hero banners were already a consistent
   ~262px. display:flex centers the (variable-height) content inside
   the fixed box; padding-block is a floor so content never touches the
   edges if it ever exceeds the min-height (e.g. a title wrapping to 2
   lines at a narrow width). */
.ica-banner {
  background-position: center 30%; background-size: cover; background-repeat: no-repeat;
  min-height: 200px;
  padding-block: 32px;
  display: flex;
  align-items: center;
}
.ica-banner__inner { max-width: 1080px; margin-inline: auto; padding-inline: 24px; width: 100%; }
.ica-banner .ica-banner__kicker { color: #AEBEDA; margin: 0 0 6px; }
.ica-banner h1 {
  font-family: var(--ica-font-serif); font-weight: 700; color: #fff;
  font-size: clamp(1.9rem, 3.8vw, 2.6rem); margin: 0 0 14px; text-shadow: 0 1px 12px rgba(0,0,0,.25);
}
.ica-banner__crumbs { font-family: var(--ica-font-sans); font-size: 13px; }
.ica-banner__crumbs a { color: #B7C3D6; text-decoration: none; }
.ica-banner__crumbs a:hover { color: #fff; }
.ica-banner__sep { margin: 0 8px; color: var(--ica-red); }
.ica-banner__current { color: var(--ica-red); font-weight: 600; }
.ica-banner--hero {
  min-height: 270px;
  padding-block: 48px;
  background-position: center 40%;
}
.ica-banner--hero h1 { font-size: clamp(2.3rem, 5vw, 3.4rem); }
@media (max-width: 560px) {
  .ica-banner { min-height: 160px; padding-block: 24px; }
  .ica-banner--hero { min-height: 210px; padding-block: 32px; }
}

/* ============================================================
   Header — seamless navy masthead + primary nav
   (the old 3rd row, a navy utility bar with the tagline + Contact/
   Donate links, was removed 2026-09-15 — Contact moved into the About
   dropdown, Donate became its own button next to Join/Renew, and the
   tagline moved below the site title here. The masthead/nav rows are
   now one seamless navy block instead of navy-white-white.)
   ============================================================ */

/* Masthead: logo + title on one line (Kadence's own .brand layout,
   unchanged), tagline stacked directly below and indented to align
   under the title text rather than under the icon. The tagline is
   header_html_content, relocated from the old utility bar into this
   row's main_left zone alongside "logo" (and, on mobile, added to
   header_mobile_items the same way).
   Two approaches tried and rejected before this one: (1) unwrapping
   the intermediate wrapper divs with display:contents to grid-place
   logo/title/tagline independently — display:contents on the
   <a class="brand"> anchor didn't unwrap for grid placement (a known
   rough edge with display:contents on interactive elements), so
   everything collapsed to 0×0; (2) flex-wrap + flex-basis:100% to
   force the tagline onto its own line — never actually wrapped, since
   the zone is wide enough that a shrinkable 100%-basis item just
   shrinks to fit instead of wrapping. This is simpler: force a real
   column stack, then indent the tagline by a value measured directly
   against the rendered page: logo_width.desktop + the ~16px gap .brand
   already puts between the logo and title-wrap (confirmed constant —
   same 16px gap held at the tablet logo_width tier too). 56+16=72px
   at the current logo_width.desktop=56 — re-measure/recompute if
   logo_width changes again. margin-top pulls the tagline up closer to
   the title (tightened from -2px to -16px, 2026-09-15, Bill). */
.site-header-main-section-left.site-header-section-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.site-header-main-section-left .header-html {
  margin-left: 72px;
  margin-top: -16px;
}
.site-header-main-section-left .header-html-inner {
  font-family: var(--ica-font-sans);
  font-size: 12px;
  letter-spacing: .04em;
  color: #AEBEDA;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.site-branding .site-branding-title-tagline-wrap { gap: .85rem; }

.site-branding .site-title,
.site-branding .site-title a {
  font-family: var(--ica-font-serif);
  color: #fff;
  letter-spacing: .005em;
}
/* "ICA" — the first letter of each word — in red (ica_accent_site_title() in functions.php). */
.site-branding .site-title .ica-title-accent { color: var(--ica-red); }

/* Donate, next to Join/Renew: the trimmed Utility Menu (now just Donate)
   moved into the bottom-right zone — style its one link as an outline
   button, a secondary CTA beside the solid Join/Renew button. */
.site-header-bottom-section-right.site-header-section-right {
  display: flex;
  align-items: center;
  gap: 12px;
}
.site-header-bottom-section-right .secondary-navigation ul.menu > li > a {
  display: inline-block;
  padding: 8px 18px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 4px;
  font-family: var(--ica-font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #fff;
  transition: background-color .15s ease, border-color .15s ease;
}
.site-header-bottom-section-right .secondary-navigation ul.menu > li > a:hover {
  background: rgba(255, 255, 255, .12);
  border-color: #fff;
}

/* Primary nav: uppercase with a red underline on the current item (and on
   hover). Selectors are Kadence's own (.main-navigation .primary-menu-
   container) — the earlier .header-navigation.primary-navigation never
   matched (the <nav> has no .primary-navigation class), so none of this
   applied until 2026-10-03. Letter-spacing deliberately left at normal,
   which is how the menu has always actually rendered and what the shop/
   vote header (members app, ica-app.css) mirrors. */
.main-navigation .primary-menu-container > ul > li.menu-item > a {
  position: relative;
  text-transform: uppercase;
  font-weight: 600;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: var(--ica-red);
  transform: scaleX(0);
  transition: transform .15s ease;
}
.main-navigation .primary-menu-container > ul > li.current-menu-item > a::after,
.main-navigation .primary-menu-container > ul > li.current-menu-ancestor > a::after,
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover::after {
  transform: scaleX(1);
}

/* Sticky header (Customizer → Header → Sticky Header, 2026-10-03):
   desktop sticks only the nav row (header_sticky=bottom, ~48px) — the
   full 169px masthead would eat a fifth of a laptop screen. Mobile sticks
   its one main row (mobile_header_sticky=main), but at full size that's
   106px (logo + title + tagline), so compact it while stuck: drop the
   tagline, tighten padding, shrink the logo — ~60px. .item-is-stuck is
   Kadence's own class, only present once scrolled past the header. */
#mobile-header .site-main-header-wrap.item-is-stuck .site-header-row-container-inner > .site-container {
  padding-top: 8px;
  padding-bottom: 8px;
}
#mobile-header .site-main-header-wrap.item-is-stuck .header-html { display: none; }
#mobile-header .site-main-header-wrap.item-is-stuck .site-branding a.brand img { max-width: 28px; }
#mobile-header .site-main-header-wrap.item-is-stuck .site-title { font-size: 22px; }

/* Join / Renew button keeps its square-ish, tight look. */
.site-header-item .header-button .button {
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* Kadence's default content-area spacing (5rem/3rem/2rem top+bottom margin
   depending on viewport) leaves a big empty band between the header and
   every page's own title. Tighten it site-wide; specificity (not a media
   query) beats Kadence's rule at every breakpoint. */
body .content-area { margin-top: 22px; margin-bottom: 46px; }

/* ============================================================
   Footer
   ============================================================ */
/* Footer widget headings: block-editor markup uses .wp-block-heading, not
   .widget-title. Kadence's global heading color is dark ink — force light. */
#colophon .footer-widget-area .widget-title,
#colophon .footer-widget-area .wp-block-heading,
#colophon .footer-widget-area h1,
#colophon .footer-widget-area h2,
#colophon .footer-widget-area h3,
#colophon .footer-widget-area h4,
#colophon .footer-widget-area h5,
#colophon .footer-widget-area h6 {
  font-family: var(--ica-font-serif);
  color: #fff;
  border-bottom: 2px solid rgba(255,255,255,.18);
  padding-bottom: .4rem;
  margin-bottom: .8rem;
}
#colophon .footer-widget-area,
#colophon .footer-widget-area p,
#colophon .footer-widget-area li { color: #AEBCD3; }
#colophon .footer-widget-area a { color: #AEBCD3; }
#colophon .footer-widget-area a:hover { color: #fff; }
#colophon .footer-widget-area ul.wp-block-list {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.6;
}
/* Footer height trimmed 2026-10-03 (was ~312px desktop): the rest is
   Customizer row spacing (footer_middle_top/bottom_spacing 24/16,
   footer_bottom_top/bottom_spacing 12/12, widget content line-height
   1.6). This drops Kadence's 11px top/bottom margin on the one-line
   copyright, which otherwise nearly doubles the bottom row. */
#colophon .footer-html { margin: 0; }

/* ============================================================
   Reusable content bits (used in blocks / templates later)
   ============================================================ */
.ica-tag {
  display: inline-block;
  font-family: var(--ica-font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 2px 8px;
  border-radius: 3px;
}
.ica-tag--open       { background: var(--ica-tag-open-bg);  color: var(--ica-tag-open-fg); }
.ica-tag--scholastic { background: var(--ica-tag-schol-bg); color: var(--ica-tag-schol-fg); }

/* ------------------------------------------------------------
   Buttons — the solid CTA used in every hand-built template.
   The selectors are scoped past the greedy `.site-main a` /
   `.entry-content a` link-colour rule near the top of this file
   so button text keeps its own colour without !important.
   Default: solid navy, white text (use on a light surface).
   `--onnavy`: white chip, navy text (use on a navy surface).
   `--inline`: sits beside text instead of filling its column.
   ------------------------------------------------------------ */
.ica-btn,
.site-main a.ica-btn,
.entry-content a.ica-btn {
  display: block;
  text-align: center;
  background: var(--ica-navy);
  color: #fff;
  font-family: var(--ica-font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: 11px 16px;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color .15s ease;
}
.site-main a.ica-btn:hover,
.entry-content a.ica-btn:hover { background: var(--ica-navy-deep); color: #fff; }

.ica-btn--onnavy,
.site-main a.ica-btn--onnavy,
.entry-content a.ica-btn--onnavy { background: #fff; color: var(--ica-navy); }
.site-main a.ica-btn--onnavy:hover,
.entry-content a.ica-btn--onnavy:hover { background: #EAF0F8; color: var(--ica-navy); }

.ica-btn--outline,
.site-main a.ica-btn--outline,
.entry-content a.ica-btn--outline {
  background: transparent; color: var(--ica-navy); box-shadow: inset 0 0 0 1px var(--ica-navy);
}
.site-main a.ica-btn--outline:hover,
.entry-content a.ica-btn--outline:hover { background: var(--ica-panel); color: var(--ica-navy); }

.ica-btn--inline {
  display: inline-block; width: auto; flex-shrink: 0; white-space: nowrap;
  padding: 12px 22px; letter-spacing: .04em;
}

/* ============================================================
   Front page  —  Broadsheet layout
   ============================================================ */
.ica-home { padding-block: 8px 40px; }
.ica-home a { text-decoration: none; }
.ica-home__note {
  border: 1px solid var(--ica-rule);
  border-left: 3px solid var(--ica-red);
  background: var(--ica-panel);
  padding: 14px 18px;
  margin-bottom: 28px;
  border-radius: 4px;
}

/* "Voting is open" banner — appears on its own during an election's voting
   window (front-page.php + inc/elections.php). Navy, so it doesn't read as
   one more announcement in .ica-home__note's style. */
.ica-vote-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap;
  background: var(--ica-navy); color: #fff;
  border-left: 4px solid var(--ica-red);
  padding: 14px 20px; margin-bottom: 28px; border-radius: 4px;
}
.ica-vote-banner p { margin: 0; font-size: 1rem; line-height: 1.5; }
.ica-vote-banner strong { color: #fff; }
.ica-home .ica-vote-banner a { color: #fff; font-weight: 600; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.ica-home .ica-vote-banner a:hover { color: #EAF0F8; }

.ica-kicker {
  font-family: var(--ica-font-sans);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-weight: 700;
  font-size: 11px;
  color: var(--ica-link);
  margin: 0 0 10px;
}
.ica-byline {
  font-family: var(--ica-font-sans);
  font-size: 12px;
  color: var(--ica-muted);
  margin: 10px 0 0;
}

/* top: lead + secondary */
.ica-home__top {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
}
.ica-lead__title {
  font-family: var(--ica-font-serif);
  font-size: clamp(1.9rem, 3.6vw, 2.9rem);
  line-height: 1.08;
  font-weight: 600;
  letter-spacing: -.005em;
  margin: 0 0 12px;
  text-wrap: pretty;
}
.ica-lead__title a { color: var(--ica-ink-strong); }
.ica-lead__title a:hover { color: var(--ica-link); }
.ica-lead__dek {
  font-family: var(--ica-font-serif);
  font-size: 1.12rem;
  line-height: 1.5;
  color: #444B5A;
  margin: 0 0 18px;
}
.ica-lead__media { display: block; margin: 0; border-radius: 6px; overflow: hidden; }
.ica-lead__media img { display: block; width: 100%; height: auto; }
/* Fallback when the lead story has no featured image of its own (a real
   per-post photo, when one exists, always wins — see front-page.php) —
   a real ICA tournament photo instead of a bare placeholder, so the
   front page doesn't go photo-less just because whatever's currently
   pinned/newest happens to lack an image. assets/img/lead-fallback.jpg,
   resized from tournamenthall.jpg (Bill supplied, K:\...\il-chess.org
   root). Light navy tint for brand cohesion with the rest of the site's
   photo treatments, not so dark it reads as "broken image". */
.ica-lead__media--empty {
  aspect-ratio: 16 / 9;
  background:
    linear-gradient(rgba(10,35,66,.22), rgba(10,35,66,.22)),
    url('assets/img/lead-fallback.jpg') center / cover no-repeat;
}

.ica-secondary { display: flex; flex-direction: column; gap: 20px; }
.ica-story { border-bottom: 1px solid var(--ica-rule); padding-bottom: 18px; }
.ica-story:last-of-type { border-bottom: 0; }
.ica-story .ica-kicker { margin-bottom: 6px; }
.ica-story__title {
  font-family: var(--ica-font-serif);
  font-size: 1.32rem;
  line-height: 1.2;
  font-weight: 600;
  margin: 0 0 6px;
}
.ica-story__title a { color: var(--ica-ink-strong); }
.ica-story__title a:hover { color: var(--ica-link); }
.ica-story__dek {
  font-family: var(--ica-font-serif);
  font-size: .95rem;
  line-height: 1.45;
  color: #4A536A;
  margin: 0;
}

.ica-more {
  font-family: var(--ica-font-sans);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ica-link);
  display: inline-block;
  margin-top: 6px;
}

.ica-rule { border-top: 3px double var(--ica-navy); margin: 26px 0; }

/* band: 3 service panels */
.ica-home__band {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
}
.ica-panel__title {
  font-family: var(--ica-font-serif);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ica-navy);
  padding-bottom: 12px;
  margin: 0 0 14px;
  position: relative;
}
.ica-panel__title::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 40px; height: 3px; background: var(--ica-red);
}
.ica-panel > p { font-family: var(--ica-font-serif); font-size: .95rem; line-height: 1.5; color: #4A536A; }
.ica-panel__empty { color: var(--ica-muted); font-style: italic; }

.ica-panel--navy {
  background: var(--ica-navy);
  color: #EAF0F8;
  padding: 22px 24px;
  border-radius: 6px;
}
.ica-panel--navy .ica-panel__title { color: #fff; }
.ica-panel--navy > p { color: #C7D2E4; }
.ica-panel__list {
  font-family: var(--ica-font-sans);
  font-size: 13px;
  color: #DCE6F3;
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
}
.ica-panel__list li { padding-left: 16px; position: relative; margin: 8px 0; }
.ica-panel__list li::before { content: "\2014"; position: absolute; left: 0; color: #8FB0D8; }
.ica-panel--navy .ica-btn { margin-top: 18px; }

/* events list */
.ica-events { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ica-events li { display: flex; gap: 12px; align-items: flex-start; }
.ica-date {
  flex-shrink: 0;
  width: 46px;
  text-align: center;
  border: 1px solid var(--ica-rule);
  border-radius: 4px;
  overflow: hidden;
  font-family: var(--ica-font-sans);
}
.ica-date__m { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; background: var(--ica-navy); color: #fff; padding: 2px 0; }
.ica-date__d { display: block; font-size: 18px; font-weight: 700; color: var(--ica-navy); padding: 3px 0; }
.ica-events__body .ica-events, .ica-events__body { min-width: 0; }
.ica-events__body > a {
  font-family: var(--ica-font-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ica-ink-strong);
  line-height: 1.25;
  display: block;
}
.ica-events__body > a:hover { color: var(--ica-link); }
.ica-events__meta {
  font-family: var(--ica-font-sans);
  font-size: 12px;
  color: var(--ica-muted);
  margin-top: 2px;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* archives links */
.ica-links { list-style: none; margin: 0; padding: 0; font-family: var(--ica-font-serif); }
.ica-links li { border-bottom: 1px solid var(--ica-rule); padding: 12px 0; }
.ica-links li:last-child { border-bottom: 0; }
.ica-links li a { font-weight: 600; color: var(--ica-link); font-size: 1rem; }
.ica-links li span {
  display: block;
  font-family: var(--ica-font-sans);
  font-size: 12px;
  color: var(--ica-muted);
  margin-top: 2px;
}

@media (max-width: 900px) {
  .ica-home__top { grid-template-columns: 1fr; gap: 32px; }
  .ica-home__band { grid-template-columns: 1fr; gap: 28px; }
}

/* ============================================================
   Tournaments page
   ============================================================ */
.ica-tourn { padding-block: 8px 44px; }
.ica-tourn a { text-decoration: none; }
.ica-tourn__head h1 {
  font-family: var(--ica-font-serif);
  font-weight: 700;
  color: var(--ica-ink-strong);
  font-size: clamp(1.7rem, 3.4vw, 2.3rem);
  margin: 0 0 8px;
}
.ica-tourn__head p {
  font-family: var(--ica-font-serif);
  font-size: 1.05rem;
  line-height: 1.5;
  color: #444B5A;
  max-width: 42rem;
  margin: 0;
}

.ica-tourn__bar {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 20px 0 4px;
  font-family: var(--ica-font-sans);
}
.ica-tourn__spacer { flex-grow: 1; }
.ica-toggle {
  display: flex;
  border: 1px solid var(--ica-rule);
  border-radius: 6px;
  overflow: hidden;
  font-size: 13px;
  font-weight: 600;
}
.ica-toggle a { padding: 9px 18px; color: #3A4358; border-left: 1px solid var(--ica-rule); }
.ica-toggle a:first-child { border-left: 0; }
.ica-toggle a.is-active { background: var(--ica-navy); color: #fff; }
.ica-tourn__switch, .ica-tourn__ical {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ica-link);
}
.ica-tourn__switch { color: var(--ica-muted); }

.ica-tourn__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 48px;
  align-items: start;
  margin-top: 22px;
}
.ica-tourn__empty { color: var(--ica-muted); font-style: italic; }

.ica-month {
  font-family: var(--ica-font-sans);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ica-muted);
  border-bottom: 2px solid var(--ica-navy);
  padding-bottom: 6px;
  margin: 26px 0 4px;
}
.ica-month:first-child { margin-top: 0; }

.ica-ev {
  display: flex;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid var(--ica-rule-soft);
  align-items: flex-start;
}
.ica-ev__date {
  flex-shrink: 0;
  width: 58px;
  text-align: center;
  border: 1px solid var(--ica-rule);
  border-radius: 5px;
  overflow: hidden;
  font-family: var(--ica-font-sans);
}
.ica-ev__m { display: block; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; background: var(--ica-navy); color: #fff; padding: 3px 0; }
.ica-ev__d { display: block; font-size: 18px; font-weight: 700; color: var(--ica-navy); padding: 5px 0 0; line-height: 1; }
.ica-ev__to { display: block; font-size: 9px; font-weight: 600; color: var(--ica-muted); padding: 1px 0 4px; }
.ica-ev__d:last-child { padding-bottom: 5px; }

.ica-ev__body { flex-grow: 1; min-width: 0; }
.ica-ev__title {
  font-family: var(--ica-font-serif);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ica-ink-strong);
  line-height: 1.25;
  display: block;
}
.ica-ev__title:hover { color: var(--ica-link); }
.ica-ev__meta { display: block; font-family: var(--ica-font-sans); font-size: 12.5px; color: var(--ica-muted); margin-top: 3px; }
.ica-ev__loc { font-weight: 600; color: #3A4358; }
.ica-ev__ex::before { content: " \00b7 "; }

.ica-ev__side {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.ica-ev__more {
  font-family: var(--ica-font-sans);
  font-size: 12px;
  font-weight: 700;
  color: var(--ica-link);
  white-space: nowrap;
}

/* rail */
.ica-tourn__rail { display: flex; flex-direction: column; gap: 22px; }
.ica-rbox {
  border: 1px solid var(--ica-rule);
  border-radius: 6px;
  padding: 18px;
}
.ica-rbox--top { border-top: 4px solid var(--ica-navy); }
.ica-rbox--panel { background: var(--ica-panel); border-color: transparent; }
.ica-rbox h2 {
  font-family: var(--ica-font-serif);
  font-size: 1rem;
  font-weight: 700;
  color: var(--ica-navy);
  margin: 0 0 8px;
}
.ica-rbox p { font-family: var(--ica-font-serif); font-size: .87rem; line-height: 1.5; color: #55607A; margin: 0 0 12px; }
.ica-rbox a { color: var(--ica-link); font-size: .85rem; font-weight: 600; }
.ica-rbox ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: .87rem; }

@media (max-width: 900px) {
  .ica-tourn__body { grid-template-columns: 1fr; gap: 32px; }
}

/* ============================================================
   News index (home.php)
   ============================================================ */
.ica-news { padding-block: 8px 44px; }
.ica-news a { text-decoration: none; }
.ica-news__head h1 {
  font-family: var(--ica-font-serif); font-weight: 700; color: var(--ica-ink-strong);
  font-size: clamp(1.8rem, 3.6vw, 2.4rem); margin: 0 0 8px;
}
.ica-news__head p { font-family: var(--ica-font-serif); font-size: 1.05rem; color: #444B5A; margin: 0 0 22px; }

.ica-news__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 28px; }
.ica-news__filters .ica-chip {
  font-family: var(--ica-font-sans); font-size: 12.5px; font-weight: 600;
  padding: 7px 14px; border: 1px solid var(--ica-rule); border-radius: 999px;
  color: #3A4358; text-decoration: none; transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.ica-news__filters .ica-chip:hover { border-color: var(--ica-navy); color: var(--ica-navy); }
.ica-news__filters .ica-chip.is-active { background: var(--ica-navy); border-color: var(--ica-navy); color: #fff; }

.ica-news__lead { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 40px; align-items: center; }
.ica-news__lead-title {
  font-family: var(--ica-font-serif); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.1;
  font-weight: 600; margin: 8px 0 12px;
}
.ica-news__lead-title a { color: var(--ica-ink-strong); }
.ica-news__lead-title a:hover { color: var(--ica-link); }
.ica-news__lead-dek { font-family: var(--ica-font-serif); font-size: 1.08rem; line-height: 1.5; color: #444B5A; margin: 0 0 10px; }
.ica-news__lead-media img { display: block; width: 100%; height: auto; border-radius: 6px; }

.ica-news__list { display: flex; flex-direction: column; }
.ica-news__row { display: flex; gap: 22px; padding: 22px 0; border-bottom: 1px solid var(--ica-rule); align-items: flex-start; }
.ica-news__row:last-child { border-bottom: 0; }
.ica-news__thumb { flex-shrink: 0; width: 150px; }
.ica-news__thumb img { display: block; width: 150px; height: 100px; object-fit: cover; border-radius: 5px; }
.ica-news__thumb--empty { display: block; width: 150px; height: 100px; border-radius: 5px; background: var(--ica-navy); background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 12px, transparent 12px 24px); }
.ica-news__row-text { min-width: 0; }
.ica-news__row-title { font-family: var(--ica-font-serif); font-size: 1.25rem; line-height: 1.2; font-weight: 600; margin: 6px 0 6px; }
.ica-news__row-title a { color: var(--ica-ink-strong); }
.ica-news__row-title a:hover { color: var(--ica-link); }
.ica-news__row-dek { font-family: var(--ica-font-serif); font-size: .96rem; line-height: 1.45; color: #4A536A; margin: 0 0 6px; }

.ica-pagination { margin-top: 32px; font-family: var(--ica-font-sans); font-size: 13px; display: flex; justify-content: center; gap: 6px; }
.ica-pagination a, .ica-pagination span {
  display: inline-block; padding: 7px 12px; border: 1px solid var(--ica-rule); border-radius: 4px;
  color: var(--ica-link); font-weight: 600;
}
.ica-pagination .current { background: var(--ica-navy); color: #fff; border-color: var(--ica-navy); }
.ica-pagination .dots { border: 0; }

@media (max-width: 800px) {
  .ica-news__lead { grid-template-columns: 1fr; gap: 20px; }
  .ica-news__thumb, .ica-news__thumb img, .ica-news__thumb--empty { width: 110px; }
  .ica-news__thumb img, .ica-news__thumb--empty { height: 74px; }
}

/* ============================================================
   Single article (single.php)  —  "News article" mockup
   ============================================================ */
/* Kadence caps single-post content at the "narrow" width (842px). Our article
   template wants the wide layout (readable article column + a side rail). */
body.single-post .content-container.site-container { max-width: var(--global-content-width, 1290px); }

.ica-crumb {
  font-family: var(--ica-font-sans); font-size: 12px; letter-spacing: .03em; color: var(--ica-muted);
  padding: 14px 0 0; display: flex; gap: 8px; flex-wrap: wrap;
  max-width: 1080px; margin-inline: auto;
}
.ica-crumb a { color: var(--ica-link); text-decoration: none; }
.ica-crumb__here { color: var(--ica-ink); }

.ica-article-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 52px;
  align-items: start;
  padding: 22px 0 48px;
  max-width: 1080px;      /* article ~700 + gap + rail 320, centred in the content area */
  margin-inline: auto;
}
.ica-article { max-width: none; }
.ica-article__title {
  font-family: var(--ica-font-serif); font-size: clamp(1.9rem, 4vw, 2.5rem); line-height: 1.12;
  font-weight: 700; color: var(--ica-ink-strong); letter-spacing: -.005em; margin: 12px 0 14px; text-wrap: pretty;
}
.ica-article__standfirst { font-family: var(--ica-font-serif); font-size: 1.18rem; line-height: 1.5; color: #444B5A; margin: 0 0 18px; }
.ica-article__byline {
  font-family: var(--ica-font-sans); font-size: 12.5px; color: var(--ica-muted);
  display: flex; gap: 16px; align-items: center; flex-wrap: wrap;
  border-top: 1px solid var(--ica-rule); border-bottom: 1px solid var(--ica-rule); padding: 12px 0; margin-bottom: 22px;
}
.ica-article__author { color: var(--ica-ink); font-weight: 600; }

.ica-article__hero { margin: 0 0 24px; }
.ica-article__hero img { display: block; width: 100%; height: auto; border-radius: 6px; }
.ica-article__hero figcaption { font-family: var(--ica-font-sans); font-size: 12px; color: var(--ica-muted); margin-top: 8px; }

.ica-article__body { font-family: var(--ica-font-serif); font-size: 1.12rem; line-height: 1.62; color: #26303F; }
.ica-article__body p { margin: 0 0 1.1em; }
.ica-article__body h2, .ica-article__body h3 { font-family: var(--ica-font-serif); color: var(--ica-ink-strong); margin: 1.6em 0 .5em; }
.ica-article__body h2 { font-size: 1.5rem; }
.ica-article__body h3 { font-size: 1.2rem; }
.ica-article__body a { color: var(--ica-link); }
.ica-article__body img { height: auto; border-radius: 4px; }
.ica-article__body figure { margin: 1.6em 0; }
.ica-article__body figcaption { font-family: var(--ica-font-sans); font-size: 12px; color: var(--ica-muted); margin-top: 6px; }
.ica-article__body ul, .ica-article__body ol { margin: 0 0 1.1em 1.3em; }
.ica-article__body blockquote,
.ica-article__body .wp-block-quote,
.ica-article__body .wp-block-pullquote {
  margin: 1.4em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--ica-red);
  font-size: 1.28rem; line-height: 1.4; font-weight: 500; color: var(--ica-ink-strong); font-style: normal;
}
.ica-article__body .wp-block-pullquote { text-align: left; }
/* RPB Chessboard */
.ica-article__body .rpbchessboard-out-of-flow,
.ica-article__body .uichess-chessboard { margin: 1.4em 0; }

.ica-article__tags {
  display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--ica-rule); padding-top: 18px; margin-top: 26px;
}
.ica-article__tags a {
  font-family: var(--ica-font-sans); font-size: 12px; background: var(--ica-panel); color: #3A4358;
  padding: 5px 11px; border-radius: 999px; text-decoration: none;
}

/* article rail */
.ica-article__rail { display: flex; flex-direction: column; gap: 24px; font-family: var(--ica-font-sans); }
.ica-article__rail h2 { font-family: var(--ica-font-serif); font-size: 1rem; font-weight: 700; color: var(--ica-navy); margin: 0 0 10px; }
.ica-rbox--plain h2 { border-bottom: 2px solid var(--ica-navy); padding-bottom: 7px; }
.ica-related { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ica-related li a {
  font-family: var(--ica-font-serif); font-size: .98rem; font-weight: 600; color: var(--ica-ink-strong);
  line-height: 1.25; display: block; text-decoration: none;
}
.ica-related li a:hover { color: var(--ica-link); }
.ica-related li span { font-size: 11px; color: var(--ica-muted); display: block; margin-top: 2px; }
.ica-rbox__more { display: inline-block; margin-top: 12px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ica-link); text-decoration: none; }

@media (max-width: 900px) {
  .ica-article-grid { grid-template-columns: 1fr; gap: 34px; }
  .ica-article { max-width: none; }
}

/* ============================================================
   Membership page (page-membership.php)  —  "Membership" mockup
   ============================================================ */
.ica-mem { padding-block: 8px 44px; }
.ica-mem a { text-decoration: none; }
.ica-mem__head h1 {
  font-family: var(--ica-font-serif); font-weight: 700; color: var(--ica-ink-strong);
  font-size: clamp(1.8rem, 3.6vw, 2.4rem); margin: 0 0 8px;
}
.ica-mem__head p {
  font-family: var(--ica-font-serif); font-size: 1.05rem; line-height: 1.55;
  color: #444B5A; max-width: 44rem; margin: 0;
}

/* level cards */
.ica-mem__levels {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px;
  align-items: stretch; margin-top: 26px;
}
.ica-level {
  display: flex; flex-direction: column;
  border: 1px solid var(--ica-rule); border-radius: 8px; overflow: hidden;
}
.ica-level--featured { border: 2px solid var(--ica-navy); }
.ica-level__head {
  background: var(--ica-panel); padding: 16px 18px; border-bottom: 1px solid var(--ica-rule);
}
.ica-level--featured .ica-level__head { background: var(--ica-navy); border-bottom: 0; }
.ica-level__name { font-family: var(--ica-font-serif); font-size: 1.18rem; font-weight: 700; color: var(--ica-navy); }
.ica-level--featured .ica-level__name { color: #fff; }
.ica-level__who { font-family: var(--ica-font-sans); font-size: 12px; color: var(--ica-muted); margin-top: 2px; }
.ica-level--featured .ica-level__who { color: #A9B9D4; }

.ica-level__body { padding: 18px; display: flex; flex-direction: column; flex-grow: 1; }
.ica-level__price { font-family: var(--ica-font-serif); font-size: 2.1rem; font-weight: 700; color: var(--ica-ink-strong); }
.ica-level__price span { font-family: var(--ica-font-sans); font-size: 13px; font-weight: 500; color: var(--ica-muted); }
.ica-level__feat {
  font-family: var(--ica-font-sans); font-size: 13px; line-height: 1.6; color: #3A4358;
  margin: 14px 0 18px; padding-left: 18px;
}
/* Just the layout hook — visual styling comes from .ica-btn.
   `margin-top: auto` pushes the button to the card foot so the
   four cards keep equal-height buttons regardless of copy length. */
.ica-level__cta { margin-top: auto; }

/* how it works */
.ica-mem__how {
  background: var(--ica-panel); border-radius: 8px; padding: 24px 28px;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px;
  margin-top: 34px;
}
.ica-mem__how .ica-kicker { margin: 0 0 6px; }
.ica-mem__how p { font-family: var(--ica-font-serif); font-size: .95rem; line-height: 1.55; color: #26303F; margin: 0; }
.ica-mem__how-icon {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; margin-bottom: 12px;
  border-radius: 50%; background: #fff; color: var(--ica-red);
}
.ica-mem__how-icon svg { width: 20px; height: 20px; }

/* donation band */
.ica-mem__give {
  border: 1px solid var(--ica-rule); border-left: 4px solid var(--ica-red); border-radius: 6px;
  padding: 22px 26px; display: flex; align-items: center; gap: 28px; margin-top: 30px;
}
.ica-mem__give-text { flex-grow: 1; }
.ica-mem__give-ctas { display: flex; gap: 10px; flex-shrink: 0; flex-wrap: wrap; }
.ica-mem__give h2 { font-family: var(--ica-font-serif); font-size: 1.25rem; font-weight: 700; color: var(--ica-ink-strong); margin: 0 0 4px; }
.ica-mem__give p { font-family: var(--ica-font-serif); font-size: .95rem; line-height: 1.5; color: #444B5A; margin: 0; }

@media (max-width: 1000px) {
  .ica-mem__levels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .ica-mem__how { grid-template-columns: 1fr; gap: 20px; }
  .ica-mem__give { flex-direction: column; align-items: flex-start; gap: 16px; }
}
@media (max-width: 560px) {
  .ica-mem__levels { grid-template-columns: 1fr; }
}

/* ============================================================
   Prose / document pages  —  shared base
   Used by: List a Tournament, State Championship Bids, Youth Chess + the program pages.
   ============================================================ */
.ica-prose { padding-block: 8px 48px; max-width: 1080px; margin-inline: auto; }
.ica-prose a { color: var(--ica-link); }
.ica-prose a:hover { color: var(--ica-link-hover); }

.ica-prose__head h1 {
  font-family: var(--ica-font-serif); font-weight: 700; color: var(--ica-ink-strong);
  font-size: clamp(1.8rem, 3.6vw, 2.4rem); margin: 0 0 8px;
}
.ica-prose__head p {
  font-family: var(--ica-font-serif); font-size: 1.05rem; line-height: 1.55; color: #444B5A; margin: 0;
  max-width: 42rem; /* keep the lede a comfortable reading measure even though the page frame widened to 1080px */
}

.ica-prose__section { margin-top: 34px; }
.ica-prose__section > h2 {
  font-family: var(--ica-font-serif); font-size: 1.3rem; font-weight: 700; color: var(--ica-navy);
  padding-bottom: 12px; margin: 0 0 14px; position: relative;
}
.ica-prose__section > h2::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 3px; background: var(--ica-red);
}
.ica-prose__section h3 {
  font-family: var(--ica-font-serif); font-size: 1.08rem; font-weight: 700; color: var(--ica-ink-strong);
  margin: 20px 0 6px;
}
.ica-prose__section h3 a { color: var(--ica-ink-strong); }
.ica-prose__section h3 a:hover { color: var(--ica-link); }
.ica-prose__section p {
  font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.6; color: #26303F; margin: 0 0 12px;
  max-width: 42rem; /* reading measure — tables, doc lists and grids below aren't capped */
}
.ica-prose__section > p:last-child { margin-bottom: 0; }
.ica-prose__section ul {
  font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.55; color: #26303F;
  margin: 0 0 14px; padding-left: 22px; max-width: 42rem;
}
.ica-prose__section li { margin: 5px 0; }
.ica-prose__section ul ul { margin: 4px 0 6px; }

/* Callout / note box (panel with a red rule) */
.ica-prose__note {
  margin-top: 34px; background: var(--ica-panel);
  border: 1px solid var(--ica-rule); border-left: 4px solid var(--ica-red); border-radius: 6px;
  padding: 22px 26px;
}
.ica-prose__note h2 {
  font-family: var(--ica-font-serif); font-size: 1.2rem; font-weight: 700; color: var(--ica-ink-strong);
  margin: 0 0 10px;
}
.ica-prose__note p {
  font-family: var(--ica-font-serif); font-size: .98rem; line-height: 1.55; color: #26303F; margin: 12px 0 0;
}
.ica-prose__note p:first-of-type { margin-top: 0; }
.ica-prose__note ul {
  font-family: var(--ica-font-sans); font-size: 13.5px; line-height: 1.7; color: #3A4358;
  margin: 10px 0 0; padding-left: 20px;
}

/* ============================================================
   State Championship Bids page (page-state-championship-bids.php,
   split from Host an Event 2026-10-03) — specifics. Class prefix stays
   .ica-hae__ (from the original Host an Event page).
   ============================================================ */
/* Bid schedule table */
.ica-prose__table-wrap { overflow-x: auto; }
.ica-prose__table {
  width: 100%; border-collapse: collapse; font-family: var(--ica-font-sans);
  font-size: 13px; line-height: 1.4; min-width: 620px;
}
.ica-prose__table th, .ica-prose__table td {
  text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--ica-rule); vertical-align: top;
}
.ica-prose__table thead th {
  background: var(--ica-navy); color: #fff; font-weight: 700; font-size: 11px;
  letter-spacing: .04em; text-transform: uppercase; border-bottom: 0;
}
.ica-prose__table tbody th {
  font-weight: 600; color: var(--ica-ink-strong); font-family: var(--ica-font-serif); font-size: 14px;
}
.ica-prose__table tbody tr:nth-child(even) { background: #FAFBFC; }
.ica-prose__table tbody tr:last-child th,
.ica-prose__table tbody tr:last-child td { border-bottom: 0; }

/* Documents list */
.ica-prose__section ul.ica-hae__docs { list-style: none; margin: 0; padding: 0; font-family: var(--ica-font-sans); }
.ica-hae__docs li {
  padding: 12px 0; border-bottom: 1px solid var(--ica-rule); display: flex;
  flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0;
}
.ica-hae__docs li:last-child { border-bottom: 0; }
.ica-hae__docs li a { font-family: var(--ica-font-serif); font-size: 1rem; font-weight: 600; }
.ica-hae__docs li span {
  font-family: var(--ica-font-sans); font-size: 11px; letter-spacing: .04em; text-transform: uppercase;
  color: var(--ica-muted);
}

/* Bid committee */
.ica-prose__section ul.ica-hae__committee {
  list-style: none; margin: 14px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px 20px;
}
.ica-hae__committee li {
  border-left: 2px solid var(--ica-rule); padding-left: 12px; margin: 0; font-family: var(--ica-font-sans);
}
.ica-hae__committee-name { display: block; font-weight: 600; color: var(--ica-ink-strong); font-size: 14px; }
.ica-hae__committee-role { display: block; font-size: 12px; color: var(--ica-muted); }

/* ============================================================
   Chess Content section (page-chess-content / -illinois-champions
   / -ica-history / -bulletin-archive.php)
   ============================================================ */

/* Section hub list (also fine for any "list of child pages" page) */
.ica-cc__list { list-style: none; margin: 26px 0 0; padding: 0; }
.ica-cc__list li { padding: 20px 0; border-bottom: 1px solid var(--ica-rule); }
.ica-cc__list li:last-child { border-bottom: 0; }
.ica-cc__list h2 {
  font-family: var(--ica-font-serif); font-size: 1.3rem; font-weight: 700; margin: 0 0 4px;
}
.ica-cc__list h2 a { color: var(--ica-ink-strong); text-decoration: none; }
.ica-cc__list h2 a:hover { color: var(--ica-link); }
.ica-cc__list p { font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.5; color: #4A536A; margin: 0; }

/* Champions table — reuses .ica-prose__table; just widen the first col */
.ica-champs__table-wrap { overflow-x: auto; }
.ica-champs__table { width: 100%; }
.ica-champs__table tbody th { white-space: nowrap; }

/* ICA History index */
.ica-hist__list { list-style: none; margin: 26px 0 0; padding: 0; }
.ica-hist__list li { padding: 18px 0; border-bottom: 1px solid var(--ica-rule); }
.ica-hist__list li:last-child { border-bottom: 0; }
.ica-hist__list h2 { font-family: var(--ica-font-serif); font-size: 1.2rem; font-weight: 700; margin: 0 0 3px; }
.ica-hist__list h2 a { color: var(--ica-ink-strong); text-decoration: none; }
.ica-hist__list h2 a:hover { color: var(--ica-link); }
.ica-hist__meta { font-family: var(--ica-font-sans); font-size: 12px; color: var(--ica-muted); margin: 0 0 5px; }
.ica-hist__dek { font-family: var(--ica-font-serif); font-size: .96rem; line-height: 1.45; color: #4A536A; margin: 0; }
.ica-hist__more { margin-top: 24px; font-family: var(--ica-font-sans); font-size: 13px; font-weight: 700; }

/* Bulletin Archive */
.ica-filelist__jump {
  display: flex; flex-wrap: wrap; gap: 6px; margin: 24px 0 8px;
  font-family: var(--ica-font-sans); font-size: 12px; font-weight: 700;
}
.ica-filelist__jump a {
  padding: 5px 9px; border: 1px solid var(--ica-rule); border-radius: 4px;
  color: var(--ica-link); text-decoration: none;
}
.ica-filelist__jump a:hover { background: var(--ica-panel); }

.ica-filelist__year { margin-top: 26px; scroll-margin-top: 20px; }
.ica-filelist__year h2 {
  font-family: var(--ica-font-sans); font-size: 13px; font-weight: 700; letter-spacing: .12em;
  color: var(--ica-muted); border-bottom: 2px solid var(--ica-navy); padding-bottom: 6px; margin: 0 0 12px;
}
.ica-filelist__issues {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 16px;
}
.ica-filelist__issues li { font-family: var(--ica-font-sans); font-size: 13px; }
.ica-filelist__issues li a { color: var(--ica-link); text-decoration: none; font-weight: 600; }
.ica-filelist__issues li a:hover { color: var(--ica-link-hover); text-decoration: underline; }
.ica-filelist__tag {
  display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  background: var(--ica-tag-schol-bg); color: var(--ica-tag-schol-fg); padding: 1px 5px; border-radius: 3px;
  vertical-align: 1px;
}
.ica-filelist__size { color: var(--ica-muted); font-size: 11px; margin-left: 4px; }

/* Ordered lists + pending-note, shared across prose pages */
.ica-prose__section ol {
  font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.55; color: #26303F;
  margin: 0 0 14px; padding-left: 22px;
}
.ica-prose__section ol li { margin: 6px 0; }
.ica-prose__pending {
  font-family: var(--ica-font-sans) !important; font-size: 13.5px !important; color: var(--ica-muted) !important;
  background: var(--ica-panel); border-left: 3px solid var(--ica-rule); border-radius: 3px;
  padding: 10px 14px; margin: 0 0 14px;
}

/* ============================================================
   About section (page-about / -bylaws / -contact / -advertising
   / -board-minutes.php)
   ============================================================ */

/* About — two-column layout with a rail */
.ica-about__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 52px; align-items: start; margin-top: 8px;
}
.ica-about__cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; margin-top: 14px;
}
.ica-about__cards--directors { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.ica-about__card {
  border: 1px solid var(--ica-rule); border-radius: 8px; padding: 14px 12px; text-align: center;
  font-family: var(--ica-font-sans);
}
.ica-about__card--sm { text-align: left; }
.ica-about__role { font-size: 12.5px; font-weight: 700; color: var(--ica-ink-strong); line-height: 1.25; }
.ica-about__name { font-size: 13px; color: var(--ica-muted); margin: 3px 0 8px; }
.ica-about__card--sm .ica-about__name { color: var(--ica-ink-strong); font-weight: 600; margin: 0 0 2px; }
.ica-about__card--sm .ica-about__role { font-size: 11px; font-weight: 500; color: var(--ica-muted); }
.ica-about__email { font-size: 12px; font-weight: 600; color: var(--ica-link); text-decoration: none; }
.ica-about__section h3,
.ica-prose__section h3 { margin-top: 24px; }

.ica-about__rail { display: flex; flex-direction: column; gap: 22px; }
.ica-about__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: .9rem; }
.ica-about__links a { color: var(--ica-link); font-weight: 600; text-decoration: none; }
.ica-about__more {
  display: inline-block; margin-top: 12px; font-family: var(--ica-font-sans); font-size: 12px;
  font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ica-link); text-decoration: none;
}

@media (max-width: 900px) {
  .ica-about, .ica-about__grid { max-width: none; }
  .ica-about__grid { grid-template-columns: 1fr; gap: 34px; }
}

/* Bylaws / governance doc list */
.ica-gov__docs { list-style: none; margin: 0 0 14px; padding: 0; }
.ica-gov__docs li {
  padding: 11px 0; border-bottom: 1px solid var(--ica-rule); font-family: var(--ica-font-serif);
}
.ica-gov__docs li:last-child { border-bottom: 0; }
.ica-gov__docs li a { font-weight: 600; font-size: 1rem; }
.ica-gov__docs li span {
  font-family: var(--ica-font-sans); font-size: 11px; letter-spacing: .04em; text-transform: uppercase;
  color: var(--ica-muted); margin-left: 8px;
}

/* Contact — name / role / email rows */
.ica-contact__list { list-style: none; margin: 0 0 14px; padding: 0; }
.ica-contact__list li {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 20px;
  padding: 11px 0; border-bottom: 1px solid var(--ica-rule); font-family: var(--ica-font-sans); font-size: 14px;
}
.ica-contact__list li:last-child { border-bottom: 0; }
.ica-contact__who { display: flex; flex-direction: column; gap: 1px; }
.ica-contact__name { color: var(--ica-ink-strong); font-weight: 600; }
.ica-contact__role { font-size: 12px; color: var(--ica-muted); }
.ica-contact__list a { color: var(--ica-link); font-weight: 600; text-decoration: none; white-space: nowrap; }
.ica-contact__addr {
  font-family: var(--ica-font-sans) !important; font-size: 1rem !important; line-height: 1.6 !important;
  color: var(--ica-ink-strong) !important;
}

/* Board minutes — date labels need a wider column than the ICB month grid */
.ica-minutes__list { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* Meet the Board — bios */
.ica-mtb__people { display: flex; flex-direction: column; gap: 20px; margin-top: 14px; }
.ica-mtb__name {
  font-family: var(--ica-font-serif); font-size: 1.15rem; font-weight: 700; color: var(--ica-ink-strong);
  margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 12px;
}
.ica-mtb__role {
  font-family: var(--ica-font-sans); font-size: 11.5px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--ica-link);
}
.ica-mtb__bio {
  font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.6; color: #26303F; margin: 0; max-width: 44rem;
}
.ica-mtb__person--brief .ica-mtb__name { margin-bottom: 0; }
.ica-mtb__person--brief + .ica-mtb__person--brief { margin-top: -10px; }

/* ============================================================
   Archive / Search / 404
   ============================================================ */
.ica-news__head .ica-kicker { margin: 0 0 8px; }
.ica-news__head .ica-kicker + h1 { margin-top: 0; }

.ica-archive__desc {
  font-family: var(--ica-font-serif); font-size: 1.02rem; line-height: 1.55; color: #444B5A;
  margin: 4px 0 22px; max-width: 46rem;
}
.ica-archive__desc p { margin: 0 0 .6em; }
.ica-archive__desc p:last-child { margin-bottom: 0; }
.ica-archive__empty { font-family: var(--ica-font-serif); font-size: 1.05rem; color: #4A536A; }

/* Search form (search results + 404) */
.ica-search__form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; max-width: 30rem; }
.ica-search__form input[type="search"] {
  flex: 1 1 200px; min-width: 0; font-family: var(--ica-font-sans); font-size: 14px;
  padding: 10px 14px; border: 1px solid var(--ica-rule); border-radius: 4px; background: #fff; color: var(--ica-ink);
}
.ica-search__form input[type="search"]:focus {
  outline: none; border-color: var(--ica-navy); box-shadow: 0 0 0 3px rgba(10,35,66,.12);
}
.ica-search__form button { border: 0; cursor: pointer; }

/* 404 */
.ica-404__links { list-style: none; margin: 12px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px 16px; }
.ica-404__links a { font-family: var(--ica-font-serif); font-size: 1rem; font-weight: 600; color: var(--ica-link); text-decoration: none; }

.ica-search__scope {
  margin: 10px 0 0; font-family: var(--ica-font-sans); font-size: 12.5px; color: var(--ica-muted);
}
.ica-search__scope a { color: var(--ica-link); }

/* ============================================================
   Active Members / Active Affiliates directories
   (page-active-members.php, page-active-affiliates.php)
   ============================================================ */
.ica-directory__empty {
  font-family: var(--ica-font-serif); font-size: 1rem; color: var(--ica-muted); margin: 0;
}
.ica-directory__table-wrap { overflow-x: auto; }
.ica-directory__table { min-width: 560px; }
.ica-directory__table--affiliates { min-width: 760px; }
/* WJS/RS tag after a member's name — same look as .ica-filelist__tag. */
.ica-directory__program {
  display: inline-block; margin-left: 6px; font-family: var(--ica-font-sans); font-size: 10px; font-weight: 700;
  letter-spacing: .03em; text-transform: uppercase; text-decoration: none;
  background: var(--ica-tag-schol-bg); color: var(--ica-tag-schol-fg); padding: 1px 5px; border-radius: 3px;
  vertical-align: 1px;
}
.ica-directory__program:hover { text-decoration: underline; }
.ica-directory__filters {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
  margin: 0 0 4px; padding: 0; border: 0;
  font-family: var(--ica-font-sans); font-size: 13px; color: var(--ica-ink);
}
.ica-directory__filters[hidden] { display: none; }
.ica-directory__filters legend {
  float: left; padding: 0; margin: 0; color: var(--ica-muted); font-weight: 600;
}
.ica-directory__filters label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.ica-directory__filter-count { color: var(--ica-muted); }
.ica-directory__listing {
  white-space: normal; min-width: 320px; max-width: 480px;
  font-family: var(--ica-font-serif); font-size: 13.5px; line-height: 1.5; color: #333A48;
}
.ica-directory__listing p { margin: 0 0 .6em; }
.ica-directory__listing p:last-child { margin-bottom: 0; }

/* DataTables chrome (search box / length menu / pagination / info line) —
   restyled to match the site's serif/sans + navy palette instead of the
   library's default look. */
.ica-directory .dataTables_wrapper { font-family: var(--ica-font-sans); font-size: 13px; margin-top: 14px; }
.ica-directory .dataTables_filter,
.ica-directory .dataTables_length { margin-bottom: 12px; }
.ica-directory .dataTables_filter label,
.ica-directory .dataTables_length label {
  display: flex; align-items: center; gap: 8px; color: var(--ica-muted); font-weight: 600;
}
.ica-directory .dataTables_filter input,
.ica-directory .dataTables_length select {
  font-family: var(--ica-font-sans); font-size: 13px; padding: 7px 10px;
  border: 1px solid var(--ica-rule); border-radius: 4px; background: #fff; color: var(--ica-ink);
}
.ica-directory .dataTables_filter input:focus {
  outline: none; border-color: var(--ica-navy); box-shadow: 0 0 0 3px rgba(10,35,66,.12);
}
.ica-directory table.dataTable thead th {
  background: var(--ica-navy); color: #fff; font-weight: 700; font-size: 11px;
  letter-spacing: .04em; text-transform: uppercase; border-bottom: 0; cursor: pointer;
}
.ica-directory table.dataTable thead th.sorting:after,
.ica-directory table.dataTable thead th.sorting_asc:after,
.ica-directory table.dataTable thead th.sorting_desc:after { opacity: .6; }
.ica-directory .dataTables_info {
  margin-top: 12px; color: var(--ica-muted); font-size: 12.5px;
}
.ica-directory .dataTables_paginate {
  margin-top: 12px; display: flex; gap: 4px; flex-wrap: wrap;
}
.ica-directory .dataTables_paginate .paginate_button {
  padding: 6px 11px; border: 1px solid var(--ica-rule); border-radius: 4px; cursor: pointer; color: var(--ica-ink);
}
.ica-directory .dataTables_paginate .paginate_button.current {
  background: var(--ica-navy); border-color: var(--ica-navy); color: #fff;
}
.ica-directory .dataTables_paginate .paginate_button.disabled {
  color: #B7BFCC; cursor: default;
}

/* ============================================================
   Single tournament event (single-tribe_events.php)
   ============================================================ */
.ica-event__back {
  font-family: var(--ica-font-sans); font-size: 13px; font-weight: 600; margin: 0 0 18px;
}
.ica-event__back a { color: var(--ica-link); text-decoration: none; }
.ica-event__back a:hover { color: var(--ica-link-hover); }

.ica-event__badges { margin: 0 0 14px; }

.ica-event__meta {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px 32px; margin-top: 4px; padding: 20px 24px; background: var(--ica-panel);
  border: 1px solid var(--ica-rule); border-radius: 6px;
}
.ica-event__meta-item { display: flex; flex-direction: column; gap: 3px; }
.ica-event__meta-label {
  font-family: var(--ica-font-sans); font-size: 11px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--ica-muted);
}
.ica-event__meta-value {
  font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.4; color: var(--ica-ink-strong);
}
.ica-event__meta-sub { font-size: .9rem; color: #444B5A; }
.ica-event__meta-value a { color: var(--ica-link); }

.ica-event__media { margin-top: 28px; }
.ica-event__media img { display: block; width: 100%; height: auto; border-radius: 6px; }

.ica-event__body { max-width: none; }
.ica-event__body p,
.ica-event__body ul { max-width: 42rem; }

/* ============================================================
   Elections page (page-elections.php)
   ============================================================ */
.ica-elections__status {
  border: 1px solid var(--ica-rule);
  border-left: 4px solid var(--ica-navy);
  background: var(--ica-panel);
  padding: 18px 22px;
  margin-bottom: 32px;
  border-radius: 4px;
}
.ica-elections__status--open { border-left-color: var(--ica-red); }
.ica-elections__status .ica-kicker { margin-bottom: 4px; }
.ica-elections__status h2 { margin: 0 0 8px; }
.ica-elections__status p:last-child { margin-bottom: 0; }

/* ============================================================
   List a Tournament — public submission form
   (mu-plugins/ica-event-submissions.php, 2026-10-13)
   ============================================================ */
.ica-submit { max-width: 760px; }
.ica-submit fieldset {
  border: 1px solid var(--ica-rule);
  border-radius: 6px;
  padding: 18px 20px 4px;
  margin: 0 0 22px;
  background: var(--ica-paper);
}
.ica-submit legend {
  font-family: var(--ica-font-serif);
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--ica-ink-strong);
  padding: 0 6px;
}
.ica-submit__legend-note { font-family: var(--ica-font-sans); font-weight: 400; font-size: 0.85rem; color: var(--ica-muted); }
.ica-submit__row { display: flex; flex-wrap: wrap; gap: 0 16px; }
.ica-submit__row > .ica-submit__field { flex: 1 1 180px; }
.ica-submit__row > .ica-submit__field--wide { flex: 2 1 320px; }
.ica-submit__row > .ica-submit__field--narrow { flex: 0 1 110px; }
.ica-submit__field { margin: 0 0 16px; }
.ica-submit__field label {
  display: block;
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 5px;
  color: var(--ica-ink-strong);
}
.ica-submit__field .req { color: var(--ica-red); }
.ica-submit input[type="text"],
.ica-submit input[type="email"],
.ica-submit input[type="tel"],
.ica-submit input[type="url"],
.ica-submit input[type="date"],
.ica-submit select,
.ica-submit textarea {
  width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--ica-rule);
  border-radius: 6px;
  font: inherit;
  font-size: 0.95rem;
  background: #fff;
}
.ica-submit textarea { resize: vertical; }
.ica-submit__help { display: block; font-size: 0.85rem; color: var(--ica-muted); margin: 2px 0 6px; }
/* Honeypot: off-screen rather than display:none, which some bots skip. */
.ica-submit__hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ica-submit__errors {
  border-left: 4px solid var(--ica-red);
  background: #FCEDEF;
  padding: 12px 16px;
  margin-bottom: 20px;
  border-radius: 4px;
}
.ica-submit__errors p { margin: 0 0 4px; }
.ica-submit__errors ul { margin: 0; padding-left: 20px; }
.ica-submit__done {
  border-left: 4px solid #1B7A43;
  background: #EAF5EE;
  padding: 14px 18px;
  border-radius: 4px;
}
.ica-submit__done h3 { margin-top: 0; }
.ica-submit__done p:last-child { margin-bottom: 0; }
.ica-submit .cf-turnstile { margin-bottom: 16px; }
/* "Tournament details" editor (assets/js/ica-submit-editor.js). */
.ica-submit__editor { background: #fff; }
.ica-submit .ql-toolbar.ql-snow { border-color: var(--ica-rule); border-radius: 6px 6px 0 0; }
.ica-submit .ql-container.ql-snow { border-color: var(--ica-rule); border-radius: 0 0 6px 6px; font: inherit; font-size: 0.95rem; }
.ica-submit .ql-editor { min-height: 260px; line-height: 1.55; }
.ica-submit .ql-editor h3 { font-family: var(--ica-font-serif); font-size: 1.1rem; margin: 0.6em 0 0.3em; }

/* ============================================================
   Youth Chess › Resources (template-youth-resources.php) — the hub
   + its article pages. Bodies are migrated Joomla HTML in the page
   content, so plain elements are styled here rather than classed.
   ============================================================ */
.ica-yres__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 52px; align-items: start; margin-top: 8px;
}
.ica-yres__body { font-family: var(--ica-font-serif); font-size: 1rem; line-height: 1.6; color: #26303F; }
.ica-yres__body > p,
.ica-yres__body > ul,
.ica-yres__body > ol,
.ica-yres__body > blockquote { max-width: 42rem; }
.ica-yres__body p { margin: 0 0 14px; }
.ica-yres__body p[style*="padding-left"] { /* Joomla's indented block quotes */
  padding-left: 18px !important; border-left: 3px solid var(--ica-rule); color: #444B5A;
}
.ica-yres__body h2 {
  font-family: var(--ica-font-serif); font-size: 1.3rem; font-weight: 700; color: var(--ica-navy); margin: 34px 0 12px;
}
.ica-yres__body h3 {
  font-family: var(--ica-font-serif); font-size: 1.08rem; font-weight: 700; color: var(--ica-ink-strong); margin: 24px 0 6px;
}
.ica-yres__body ul, .ica-yres__body ol { padding-left: 22px; margin: 0 0 14px; }
.ica-yres__body li { margin: 5px 0; }
.ica-yres__body a { overflow-wrap: anywhere; }
.ica-yres__body img { max-width: 100%; height: auto; }

.ica-yres__cards {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px;
}
.ica-prose__section ul.ica-yres__cards { padding-left: 0; max-width: none; }
.ica-yres__card {
  border: 1px solid var(--ica-rule); border-top: 3px solid var(--ica-navy); border-radius: 6px; padding: 14px 16px; margin: 0 !important;
}
.ica-yres__card a {
  font-family: var(--ica-font-serif); font-size: 1rem; font-weight: 700; color: var(--ica-ink-strong); text-decoration: none;
}
.ica-yres__card a:hover { color: var(--ica-link); }
.ica-yres__card p { font-family: var(--ica-font-sans); font-size: 13px !important; line-height: 1.5; color: var(--ica-muted) !important; margin: 6px 0 0 !important; }

.ica-yres__rail { display: flex; flex-direction: column; gap: 22px; }
.ica-yres__rail h3 {
  font-family: var(--ica-font-sans); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--ica-muted); margin: 16px 0 8px;
}
.ica-yres__nav a { text-decoration: none; }
.ica-yres__nav a[aria-current="page"] { color: var(--ica-ink-strong); border-left: 3px solid var(--ica-red); padding-left: 8px; margin-left: -11px; }

@media (max-width: 900px) {
  .ica-yres__grid { grid-template-columns: 1fr; gap: 34px; }
}
