/*
Theme Name: Iron County Missouri
Theme URI: https://ironcountymo.gov
Description: Iron County, Missouri — county government site. Ozark Forest palette. Built to WCAG 2.2 Level AA.
Author: WeManage.Tech
Template: generatepress
Version: 3.0.0
*/

/* ==========================================================================
   1. TOKENS
   Every ratio below is measured with the WCAG relative-luminance formula.
   AA needs 4.5:1 for body text, 3:1 for large text and UI components.
   ========================================================================== */

:root {
  /* Surfaces */
  --surface:        #ffffff;
  --surface-alt:    #f7f8f5;   /* subtly warm off-white; less glare than pure white */
  --surface-sunk:   #eef1ea;
  --forest:         #14532d;   /* primary identity */
  --forest-deep:    #052e16;   /* footer, focus outer band */

  /* Ink on light surfaces */
  --text-1:         #1a1f1c;   /* 16.9:1 on white — body + headings */
  --text-2:         #3f4a43;   /* 9.2:1  — secondary body */
  --text-3:         #5c6660;   /* 6.2:1  — meta, captions */
  --link:           #166534;   /* 7.1:1  */
  --link-hover:     #14532d;   /* 9.1:1  */
  --accent-ink:     #854d0e;   /* 6.9:1  — amber-family TEXT on light */

  /* Ink on forest surfaces */
  --on-forest:      #ffffff;   /* 9.1:1 on --forest */
  --on-forest-2:    #d9e5dc;   /* 7.0:1 */
  --on-forest-acc:  #fcd34d;   /* 6.3:1 */

  /* Accent — DECORATIVE ONLY.
     #ca8a04 is 2.9:1 on white. Never use it for text or as the sole
     indicator of a UI boundary. Rules, bars and fills behind dark ink only. */
  --accent:         #ca8a04;

  /* Status */
  --danger:         #a41414;   /* 7.8:1 on white */
  --danger-bg:      #fef2f2;
  --danger-bd:      #f0b4b4;
  --success:        #0f5132;   /* 9.4:1 */
  --success-bg:     #f0fdf4;
  --success-bd:     #a7d8bb;
  --warn-bg:        #fffbeb;
  --warn-bd:        #e0b34d;

  /* Borders — all >= 3:1 on their surface (SC 1.4.11) */
  --bd:             #c9cfc9;
  --bd-strong:      #5c6660;

  /* Focus: two-tone so one band always contrasts, on any background.
     amber vs deep-forest = 10.3:1 band-to-band
     deep-forest vs white = 14.9:1   |   amber vs forest = 6.3:1 */
  --focus-inner:    #fcd34d;
  --focus-outer:    #052e16;

  /* Type */
  --font-body:    'Open Sans', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  --font-display: 'Merriweather', Georgia, 'Times New Roman', serif;

  --step--1: clamp(0.875rem, 0.84rem + 0.17vw, 0.9375rem);
  --step-0:  clamp(1rem,     0.96rem + 0.2vw,  1.0625rem);   /* body — never below 1rem */
  --step-1:  clamp(1.125rem, 1.07rem + 0.28vw, 1.25rem);
  --step-2:  clamp(1.3rem,   1.2rem  + 0.5vw,  1.6rem);
  --step-3:  clamp(1.6rem,   1.4rem  + 1vw,    2.15rem);
  --step-4:  clamp(2rem,     1.65rem + 1.75vw, 3rem);

  /* Space */
  --sp-1: 0.25rem;  --sp-2: 0.5rem;   --sp-3: 0.75rem;  --sp-4: 1rem;
  --sp-5: 1.5rem;   --sp-6: 2rem;     --sp-7: 3rem;     --sp-8: 4rem;

  --radius-sm: 3px;
  --radius:    6px;
  --max-w:     72rem;
  --measure:   68ch;

  --transition: 150ms ease;
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
  /* 100%, NOT 16px. A px root overrides the user's browser font-size
     preference, which fails SC 1.4.4 for anyone who has raised it. */
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* Must clear the sticky header, or anchor targets and the skip-link
     destination land underneath it (SC 2.4.11, and SC 2.4.1 for the skip link).
     A fixed 5rem was too small: the header is ~108px when the nav wraps.
     --ic-header-h is measured live by nav.js; the fallback below covers no-JS
     and first paint. */
  scroll-padding-top: calc(var(--ic-header-h, 7rem) + 1rem);
}

body {
  margin: 0;
  background: var(--surface);
  color: var(--text-1);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text-1);
  line-height: 1.22;
  letter-spacing: -0.01em;
  margin: 0 0 var(--sp-4);
  text-wrap: balance;
}
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); margin-top: var(--sp-7); }
h3 { font-size: var(--step-2); margin-top: var(--sp-6); }
h4 { font-size: var(--step-1); margin-top: var(--sp-5); }

p, ul, ol, dl, address, table, figure, pre { margin: 0 0 var(--sp-4); }
p, li { max-width: var(--measure); }
li { margin-bottom: var(--sp-2); }
address { font-style: normal; }

a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--link-hover); text-decoration-thickness: 2px; }

img, svg, video { max-width: 100%; height: auto; }

hr {
  border: 0;
  border-top: 1px solid var(--bd);
  margin: var(--sp-7) 0;
}

/* Same reasoning as scroll-padding-top above. #main-content is included
   explicitly because the skip link is the one jump that must never land the
   user underneath the header. */
:target,
#main-content,
#ic-contact-status { scroll-margin-top: calc(var(--ic-header-h, 7rem) + 1rem); }

/* ---- Focus ---------------------------------------------------------------
   One ring colour cannot clear 3:1 against both white content and the forest
   footer. A two-tone ring always has one band contrasting the background. */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--focus-inner);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px var(--focus-outer);
  border-radius: var(--radius-sm);
}
@supports not selector(:focus-visible) {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus {
    outline: 3px solid var(--focus-inner);
    outline-offset: 2px;
    box-shadow: 0 0 0 6px var(--focus-outer);
  }
}
/* NOTE: never add `outline: none` anywhere in this file. */

.skip-link {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.skip-link:focus {
  position: fixed;
  top: 0; left: 0;
  z-index: 9999;
  width: auto; height: auto;
  padding: var(--sp-3) var(--sp-5);
  background: var(--forest-deep);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* External links get an announced, non-visual cue. */
a[target="_blank"] .sr-only-newtab { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* ---- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   3. LAYOUT
   ========================================================================== */

.site { display: flex; flex-direction: column; min-height: 100vh; }
main  { flex: 1 0 auto; }
main:focus { outline: none; }   /* programmatic target of the skip link only */

.ic-max-w {
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--sp-4);
}
@media (min-width: 48em) { .ic-max-w { padding-inline: var(--sp-6); } }

.ic-section { padding-block: var(--sp-7); }
@media (min-width: 48em) { .ic-section { padding-block: var(--sp-8); } }
.ic-section-alt { background: var(--surface-alt); }

/* ==========================================================================
   4. HEADER + NAVIGATION
   ========================================================================== */

.ic-utility {
  background: var(--forest-deep);
  color: var(--on-forest-2);
  font-size: var(--step--1);
}
.ic-utility a { color: var(--on-forest-2); }
.ic-utility a:hover { color: var(--on-forest-acc); }
.ic-utility-inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: var(--sp-2) var(--sp-4);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-5);
  justify-content: space-between;
  align-items: center;
}

/* .ic-header is the banner landmark and wraps the utility bar too, so the
   sticky behaviour lives on the inner bar — otherwise the utility strip would
   also stick and eat vertical space on small screens. */
.ic-header-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--surface);
  border-bottom: 1px solid var(--bd);
}
.ic-header-inner {
  max-width: var(--max-w);
  margin-inline: auto;
  padding: var(--sp-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
}

.ic-logo-link {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  text-decoration: none;
  color: var(--text-1);
}
.ic-logo-mark {
  display: grid;
  place-items: center;
  width: 2.5rem; height: 2.5rem;
  background: var(--forest);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--step--1);
  border-radius: var(--radius-sm);
  flex-shrink: 0;
}
.ic-logo-name {
  font-family: var(--font-display);
  font-size: var(--step-1);
  font-weight: 700;
  line-height: 1.1;
}
.ic-logo-state {
  display: block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--text-3);
}

/* ---- Menu toggle (mobile) ---- */
.ic-menu-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-height: 2.75rem;
  padding: var(--sp-2) var(--sp-3);
  background: var(--surface);
  color: var(--text-1);
  border: 1px solid var(--bd-strong);
  border-radius: var(--radius);
  font: inherit;
  font-size: var(--step--1);
  font-weight: 600;
  cursor: pointer;
}
.ic-menu-toggle:hover { background: var(--surface-alt); }
.ic-menu-toggle .bar-close { display: none; }
.ic-menu-toggle[aria-expanded="true"] .bar-open  { display: none; }
.ic-menu-toggle[aria-expanded="true"] .bar-close { display: inline; }

/* ---- Primary nav ---- */
.ic-nav { border-top: 1px solid var(--bd); }
.ic-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: var(--max-w);
  margin-inline: auto;
}
.ic-nav-list li { margin: 0; max-width: none; }

.ic-nav-list .nav-link {
  display: block;
  padding: var(--sp-3) var(--sp-4);
  color: var(--text-2);
  text-decoration: none;
  font-size: var(--step--1);
  font-weight: 600;
  border-bottom: 1px solid var(--bd);
  transition: background var(--transition), color var(--transition);
}
.ic-nav-list .nav-link:hover {
  background: var(--surface-alt);
  color: var(--link-hover);
}
/* Current page is marked by weight + colour + a 3px rule — never colour alone. */
.ic-nav-list .nav-link[aria-current="page"] {
  color: var(--forest);
  font-weight: 700;
  box-shadow: inset 3px 0 0 var(--forest);
  background: var(--surface-alt);
}

/* Mobile: nav collapses behind the toggle */
@media (max-width: 63.99em) {
  .ic-nav {
    display: none;
    max-height: 70vh;
    overflow-y: auto;
  }
  .ic-nav.is-open { display: block; }
}

/* Desktop: horizontal, wraps gracefully (16 top-level items) */
@media (min-width: 64em) {
  .ic-menu-toggle { display: none; }
  .ic-nav { border-top: 1px solid var(--bd); }
  .ic-nav-list {
    display: flex;
    flex-wrap: wrap;
    padding-inline: var(--sp-6);
  }
  .ic-nav-list .nav-link {
    border-bottom: 3px solid transparent;
    padding: var(--sp-3) var(--sp-3);
  }
  .ic-nav-list .nav-link:hover {
    background: transparent;
    border-bottom-color: var(--bd-strong);
  }
  .ic-nav-list .nav-link[aria-current="page"] {
    box-shadow: none;
    background: transparent;
    border-bottom-color: var(--forest);
  }
}

/* ---- Submenu (flat menu today; kept so future children degrade well) ---- */
.ic-nav-list .menu-item-has-children { position: relative; }
.ic-submenu-toggle {
  position: absolute;
  top: 0; right: 0;
  display: grid;
  place-items: center;
  width: 2.75rem; height: 2.75rem;   /* >= 24px target (SC 2.5.8) */
  background: none;
  border: 0;
  color: var(--text-2);
  cursor: pointer;
}
.ic-submenu-toggle .nav-chevron { transition: transform var(--transition); }
.ic-submenu-toggle[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }
.ic-nav-list .sub-menu { list-style: none; margin: 0; padding: 0; background: var(--surface-alt); }
.ic-nav-list .sub-menu .nav-link { padding-left: var(--sp-6); font-weight: 400; }

/* ==========================================================================
   5. PAGE FURNITURE
   ========================================================================== */

.ic-breadcrumb {
  background: var(--surface-alt);
  border-bottom: 1px solid var(--bd);
  font-size: var(--step--1);
}
.ic-breadcrumb ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  margin: 0;
  padding: var(--sp-3) var(--sp-4);
  max-width: var(--max-w);
  margin-inline: auto;
}
.ic-breadcrumb li { margin: 0; max-width: none; display: flex; align-items: center; gap: var(--sp-2); }
.ic-breadcrumb li + li::before { content: "/"; color: var(--text-3); }
.ic-breadcrumb [aria-current="page"] { color: var(--text-2); }

/* SC 2.5.8 Target Size (Minimum) — 24x24.
   Links in running text are exempt under the "Inline" exception, but these are
   block-level and land at 23.8px (font-size x line-height), just under. */
.ic-breadcrumb a,
.ic-official-contact a {
  display: inline-flex;
  align-items: center;
  min-height: 1.5rem;
}

.ic-page-head {
  padding-block: var(--sp-6) var(--sp-5);
  border-bottom: 1px solid var(--bd);
}
.ic-eyebrow {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-ink);
  margin-bottom: var(--sp-2);
}
.ic-page-head h1 { margin-bottom: var(--sp-3); }
.ic-page-head .ic-lede {
  font-size: var(--step-1);
  color: var(--text-2);
  max-width: var(--measure);
  margin: 0;
}

/* The decorative rule that opens each page body.
   Class name retained because it appears in stored page content. */
.ic-gold-bar {
  width: 3.5rem;
  height: 4px;
  background: var(--accent);
  margin-bottom: var(--sp-5);
}

.ic-section-divider { margin: var(--sp-7) 0; }

/* ---- Page body + sidebar ---- */
.ic-page-wrap {
  display: grid;
  gap: var(--sp-6);
  padding-block: var(--sp-6) var(--sp-8);
}
@media (min-width: 56em) {
  .ic-page-wrap { grid-template-columns: minmax(0, 1fr) 18rem; gap: var(--sp-7); }
}

.ic-page-content > :first-child { margin-top: 0; }
.ic-page-content h2:first-of-type { margin-top: 0; }

.ic-sidebar { display: grid; gap: var(--sp-4); align-content: start; }
.ic-infobox {
  background: var(--surface-alt);
  border: 1px solid var(--bd);
  border-top: 4px solid var(--forest);
  border-radius: var(--radius);
  padding: var(--sp-4);
}
.ic-infobox h2 {
  font-size: var(--step-0);
  margin: 0 0 var(--sp-3);
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ic-infobox p, .ic-infobox address { font-size: var(--step--1); margin-bottom: var(--sp-2); }
.ic-infobox :last-child { margin-bottom: 0; }

/* ==========================================================================
   6. COMPONENTS
   ========================================================================== */

.ic-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: 2.75rem;
  padding: var(--sp-3) var(--sp-5);
  border: 2px solid transparent;
  border-radius: var(--radius);
  font: inherit;
  font-size: var(--step--1);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
}
.ic-btn-primary { background: var(--forest); color: #fff; }        /* 9.1:1 */
.ic-btn-primary:hover { background: var(--forest-deep); color: #fff; }
.ic-btn-secondary {
  background: var(--surface);
  color: var(--link);
  border-color: var(--bd-strong);
}
.ic-btn-secondary:hover { background: var(--surface-alt); color: var(--link-hover); }

/* Officials card — markup lives in page content, do not rename these classes. */
.ic-official {
  display: flex;
  gap: var(--sp-4);
  align-items: flex-start;
  padding: var(--sp-4);
  background: var(--surface-alt);
  border: 1px solid var(--bd);
  border-radius: var(--radius);
  margin-bottom: var(--sp-3);
}
.ic-official-initials {
  display: grid;
  place-items: center;
  width: 3rem; height: 3rem;
  flex-shrink: 0;
  background: var(--forest);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  border-radius: 50%;
}
.ic-official-info { min-width: 0; }
.ic-official-name  { font-weight: 700; font-size: var(--step-0); }
.ic-official-title { color: var(--text-2); font-size: var(--step--1); }
.ic-official-contact { display: flex; flex-direction: column; gap: var(--sp-1); margin-top: var(--sp-2); font-size: var(--step--1); }
.ic-official p { margin: var(--sp-2) 0 0; font-size: var(--step--1); color: var(--text-2); }

/* Notices — severity carries a text label, never colour alone (SC 1.4.1). */
.ic-notice {
  padding: var(--sp-4);
  border-left: 4px solid var(--bd-strong);
  background: var(--surface-alt);
  border-radius: 0 var(--radius) var(--radius) 0;
  margin-bottom: var(--sp-4);
}
.ic-notice p:last-child { margin-bottom: 0; }
.ic-notice-warn    { background: var(--warn-bg);    border-left-color: var(--warn-bd); }
.ic-notice-info    { background: var(--surface-alt); border-left-color: var(--forest); }
.ic-notice-success { background: var(--success-bg); border-left-color: var(--success-bd); }

/* Document lists */
.ic-page-content ul li a[href$=".pdf"]::after {
  content: "";
}

/* ---- Forms ---- */
.ic-form { max-width: 40rem; margin-top: var(--sp-5); }
.ic-form-intro { color: var(--text-2); font-size: var(--step--1); }
.ic-req { color: var(--text-2); font-weight: 400; }
.ic-req-key { font-weight: 700; }

.ic-field { margin-bottom: var(--sp-5); }
.ic-field label {
  display: block;
  font-weight: 700;
  margin-bottom: var(--sp-2);
}
.ic-hint {
  color: var(--text-3);
  font-size: var(--step--1);
  margin: 0 0 var(--sp-2);
}
.ic-field input,
.ic-field textarea {
  width: 100%;
  min-height: 2.75rem;
  padding: var(--sp-3);
  font: inherit;
  color: var(--text-1);
  background: var(--surface);
  border: 2px solid var(--bd-strong);   /* 6.2:1 — a 1px #d1d5db border fails 1.4.11 */
  border-radius: var(--radius);
}
.ic-field textarea { min-height: 9rem; resize: vertical; }
/* Error state is border + icon-free text message + aria-invalid, not colour alone. */
.ic-field.has-error input,
.ic-field.has-error textarea { border-color: var(--danger); }
.ic-field-error {
  color: var(--danger);
  font-weight: 700;
  font-size: var(--step--1);
  margin: 0 0 var(--sp-2);
}

/* Honeypot — hidden from sight and from AT, never focusable. */
.ic-hp {
  position: absolute !important;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

.ic-alert {
  padding: var(--sp-4) var(--sp-5);
  border: 2px solid;
  border-radius: var(--radius);
  margin-bottom: var(--sp-5);
}
.ic-alert-title { font-size: var(--step-1); margin: 0 0 var(--sp-2); }
.ic-alert-error   { background: var(--danger-bg);  border-color: var(--danger); }
.ic-alert-error .ic-alert-title { color: var(--danger); }
.ic-alert-success { background: var(--success-bg); border-color: var(--success); }
.ic-alert-success .ic-alert-title { color: var(--success); }
.ic-error-list { margin: 0; padding-left: var(--sp-5); }
.ic-error-list a { color: var(--danger); font-weight: 700; }
.ic-form-status:focus { outline: none; }

/* Search */
.ic-searchform { display: flex; gap: var(--sp-2); flex-wrap: wrap; max-width: 32rem; }
.ic-searchform label { display: block; font-weight: 700; width: 100%; margin-bottom: var(--sp-2); }
.ic-searchform input[type="search"] {
  flex: 1 1 14rem;
  min-height: 2.75rem;
  padding: var(--sp-3);
  font: inherit;
  border: 2px solid var(--bd-strong);
  border-radius: var(--radius);
}

.ic-results { list-style: none; padding: 0; margin: var(--sp-5) 0 0; }
.ic-results li { border-bottom: 1px solid var(--bd); padding-block: var(--sp-4); max-width: none; }
.ic-results h2 { font-size: var(--step-1); margin: 0 0 var(--sp-2); }

/* Cards grid used on /contact/ */
.ic-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: var(--sp-4); }

/* ==========================================================================
   7. FOOTER
   ========================================================================== */

.ic-ada-banner {
  background: var(--surface-alt);
  border-top: 1px solid var(--bd);
  font-size: var(--step--1);
}
.ic-ada-banner .ic-max-w { padding-block: var(--sp-4); }

/* .ic-footer is the contentinfo landmark and also wraps the accessibility
   banner, so the green treatment lives on the inner block. */
.ic-footer-main {
  background: var(--forest);
  color: var(--on-forest-2);
  border-top: 4px solid var(--accent);
  padding-block: var(--sp-7) 0;
}
.ic-footer-main a { color: var(--on-forest-2); }
.ic-footer-main a:hover { color: var(--on-forest-acc); }
.ic-footer-main h2 {
  color: #fff;
  font-family: var(--font-body);
  font-size: var(--step--1);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 var(--sp-3);
}
.ic-footer-main ul { list-style: none; padding: 0; margin: 0; }
.ic-footer-main li { margin-bottom: var(--sp-2); }
.ic-footer-top {
  display: grid;
  gap: var(--sp-6);
  padding-bottom: var(--sp-6);
}
@media (min-width: 40em) { .ic-footer-top { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 64em) { .ic-footer-top { grid-template-columns: 1.5fr 1fr 1fr; } }

.ic-footer-name { font-family: var(--font-display); font-size: var(--step-1); color: #fff; font-weight: 700; }
.ic-footer-desc { font-size: var(--step--1); }

.ic-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.18);
  padding-block: var(--sp-4);
  font-size: var(--step--1);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3) var(--sp-5);
  justify-content: space-between;
  align-items: center;
}
.ic-footer-bottom p { margin: 0; }
.ic-footer-bottom ul { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.ic-footer-bottom li { margin: 0; }

/* ==========================================================================
   8. GENERATEPRESS SUPPRESSION
   The parent theme's chrome is fully replaced. `display: contents` was used
   here before, which strips semantics from wrapper elements in some AT —
   plain `display: block` avoids that.
   ========================================================================== */

.site-header, .main-navigation, .page-header,
.site-footer, .site-info, .generate-back-to-top, #secondary {
  display: none !important;
}
.site-content, .content-area, .inside-article,
.entry-header, .entry-footer, .post-image {
  margin: 0; padding: 0; border: 0; background: none; display: block;
}
.site-main { display: block !important; padding: 0 !important; margin: 0 !important; }

/* ==========================================================================
   9. PRINT
   ========================================================================== */

@media print {
  .ic-utility, .ic-nav, .ic-menu-toggle, .ic-breadcrumb, .ic-ada-banner, .skip-link { display: none !important; }
  body { background: #fff; color: #000; font-size: 12pt; }
  .ic-footer-main { background: none; color: #000; border-top: 1px solid #000; }
  .ic-footer-main a { color: #000; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10pt; word-break: break-all; }
}
