/*
====================================================================
  State Page Template 2025 Styles (ACES)
  - Fonts, layout, header-2025, hero, category sections, rows
  - Designed mobile-first, accessible, performant
====================================================================
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=IBM+Plex+Sans:wght@400;600;700&display=swap');

:root {
  --aces-blue-900: #001b4a;
  --aces-blue-800: #003067;
  --aces-blue-600: #0a58ca;
  --aces-red-600: #c32026;
  --aces-green-600: #0a7a2b;
  --aces-gray-900: #1e2a3a;
  --aces-gray-700: #2b3a50;
  --aces-gray-500: #4b5e78;
  --aces-gray-200: #e5ebf3;
  --aces-bg: #f4f7fb;
}

html { scroll-behavior: smooth; }
body { font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; color: var(--aces-gray-900); }
h1, h2, h3, h4 { font-family: "IBM Plex Sans", Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; }

/* Header: none — we now rely on the default theme header. */

/* Hero */
.aces2025-hero { position: relative; padding: 24px 16px 16px; color: #fff; background: var(--aces-blue-900); }
.aces2025-hero .aces2025-hero-bg { position:absolute; inset:0; background:
  linear-gradient(90deg, rgba(0,27,74,.88) 0%, rgba(0,27,74,.55) 50%, rgba(0,27,74,.30) 100%),
  url('img/header-left-bg.jpg') center/cover no-repeat; filter: saturate(1.1) contrast(1.02); }
.aces2025-hero .aces2025-hero-inner { position:relative; display:grid; gap:12px; z-index:1; }
.aces2025-hero h1 { font-size: clamp(1.9rem, 3.2vw, 3rem); margin:0; font-weight: 800; letter-spacing: .2px; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
.aces2025-subtitle { font-size: 1.15rem; color: #eaf1ff; margin: 8px 0 10px; font-weight:600; text-shadow: 0 1px 8px rgba(0,0,0,.3); }
.aces2025-select { max-width: 380px; width:100%; border-radius: 10px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.14); color:#fff; font-weight:600; backdrop-filter: blur(4px); box-shadow: 0 8px 20px rgba(0,0,0,.25); margin-top: 10px; }
.aces2025-hero-note { color: #e6eefc; font-size: .95rem; margin: 4px 0 0 }
.aces2025-select option { color: #0b234d; background:#fff; }
.aces2025-note { margin-top: 8px; }
.aces2025-video { aspect-ratio: 16/9; width:100%; max-width: 720px; border-radius: 12px; overflow:hidden; box-shadow: 0 8px 24px rgba(0,0,0,.35); margin-bottom: 12px; }
/* remove legacy quick links styles */
@media (min-width: 900px) {
  .aces2025-hero .aces2025-hero-inner { grid-template-columns: 1.2fr .8fr; align-items:center; gap:14px; }
  .aces2025-hero { padding: 32px 24px 8px; }
  .aces2025-hero h1 { font-size: clamp(2.4rem, 2.6vw, 3.2rem); }
}

.aces2025-note { font-size:.95rem; color:#d7e6ff }
.aces2025-anchor { scroll-margin-top: 80px }

/* Sections */
.aces2025-section { padding: 24px 0; background: transparent; }
.aces2025-section.aces2025-intro { padding-top: 8px; padding-bottom: 8px; }
.aces2025-intro .entry-content { margin-top: 8px; margin-bottom: 8px; }
.aces2025-section + .aces2025-section { border-top: 1px solid var(--aces-gray-200); }
.aces2025-section h2 { color: var(--aces-blue-900); font-size: clamp(1.7rem, 2.2vw, 2.2rem); font-weight: 800; margin: 12px auto 14px; text-align: center; letter-spacing: .2px; text-shadow: 0 1px 8px rgba(0,0,0,.08); display: inline-block; width: 100%; }
.aces2025-section h2::after { content: ""; display:block; height:3px; width:72px; margin:8px auto 0; background: linear-gradient(90deg, var(--aces-blue-600), var(--aces-red-600)); border-radius:3px; }

/* Intro (Overview) */
.aces2025-intro { background: transparent; }
.aces2025-section-title { text-align:center; font-weight:800; color: var(--aces-blue-900); font-size: clamp(1.7rem, 2.2vw, 2.2rem); margin: 12px auto 14px; letter-spacing:.2px; text-shadow: 0 1px 8px rgba(0,0,0,.08); }
.aces2025-section-title::after { content: ""; display:block; height:3px; width:72px; margin:8px auto 0; background: linear-gradient(90deg, var(--aces-blue-600), var(--aces-red-600)); border-radius:3px; }
.aces2025-intro .entry-content { background: #fff; border: 1px solid var(--aces-gray-200); border-radius: 14px; padding: 16px; box-shadow: 0 8px 20px rgba(0,0,0,.05); }
.aces2025-intro .entry-content ul { margin: 0; padding-left: 20px; }
.aces2025-intro .entry-content li { margin: 6px 0; color: var(--aces-gray-700); line-height: 1.5; }
.aces2025-intro .entry-content a { color: var(--aces-blue-600); font-weight: 600; text-decoration: none; }
.aces2025-intro .entry-content a:hover { text-decoration: underline; }

/* Rows */
 .aces2025-rows { display:grid; gap: 10px; }
/* Page-wide background for this template */
body.page-template-page-2025-statepage-php { background: #f3f6fb; }
.aces2025-row { display:grid; grid-template-columns: 84px 1fr; gap: 14px; padding: 16px; border:1px solid var(--aces-gray-200); border-radius: 16px; background:#fff; box-shadow: 0 12px 28px rgba(0,0,0,.06); }
.aces2025-row-thumb img { width:84px; height:84px; object-fit:cover; border-radius: 12px; }
.aces2025-row h3 { font-size: clamp(1.35rem, 1.8vw, 1.6rem); margin: 0 0 6px; font-weight:800; letter-spacing:.2px; line-height:1.25; }
.aces2025-row h3 a { color: var(--aces-blue-900); text-decoration:none; font-size: inherit; line-height: inherit; display:inline-block; }
.aces2025-row h3 a:hover { text-decoration:underline }
.aces2025-row-summary { color: var(--aces-gray-700); font-size:.95rem; }
.aces2025-row .aces2025-row-summary .aces2025-morelink,
.aces2025-row .aces2025-row-summary .aces2025-morelink:visited { color: #0d6efd !important; font-weight:700; text-decoration:underline; }
.aces2025-row .aces2025-row-summary .aces2025-morelink:hover { text-decoration:underline }
.aces2025-row-ctas { display:flex; align-items:center; justify-content:space-between; gap: 12px; margin-top:10px; flex-wrap:wrap }
.aces2025-badges { display:flex; align-items:center; gap:12px; flex-wrap:wrap; min-height: 40px }
.badge-online { display:inline-block; padding:9px 14px; background: rgba(10,122,43,.1); color: var(--aces-green-600); border:1px solid rgba(10,122,43,.3); border-radius:999px; font-weight:800; text-decoration:none; font-size: 1rem }
.price-pill { display:inline-block; padding:9px 14px; border-radius:999px; background:#fff; border:1px solid var(--aces-gray-200); box-shadow: 0 3px 10px rgba(0,0,0,.05); font-weight:800; color: var(--aces-green-600); font-size: 1rem }
.aces2025-actions { display:flex; gap:10px }
.btn-primary { display:inline-block; background: var(--aces-blue-600); color:#fff; padding:11px 16px; border-radius:12px; text-decoration:none; font-weight:800; font-size: 1.02rem }
.btn-primary:hover { filter:brightness(.96) }
.btn-cta-large { display:inline-block; background: var(--aces-blue-600); color:#fff; padding:12px 20px; border-radius:12px; font-weight:900; letter-spacing:.25px; box-shadow: 0 10px 22px rgba(0,0,0,.18); cursor:pointer; font-size: 1.08rem }
.btn-cta-large:hover { filter:brightness(.96) }
.aces2025-ct-center { text-align:center; margin: 8px 0 12px }
.aces2025-custom-training { text-align:center; background: linear-gradient(180deg,#ffffff 0%, #f7faff 100%); border:1px solid var(--aces-gray-200); border-radius: 12px; padding: 12px 24px; margin: 12px 0 8px; box-shadow: 0 6px 14px rgba(0,0,0,.05); }
.aces2025-custom-training p { color: var(--aces-gray-900); font-weight:600; font-size: 1.05rem; margin:0; }
.btn-secondary { background: #fff; color: var(--aces-blue-900); border:1px solid var(--aces-gray-200); padding:8px 12px; border-radius:10px; font-weight:700; cursor:pointer }
.btn-secondary:hover { background:#f7f9fc }
.aces2025-toggle { background: transparent; color: inherit; border: 0; padding: 0 }
.aces2025-toggle:focus { outline: 3px solid rgba(195,32,38,.35); outline-offset: 2px }
.aces2025-row-details[hidden] { display:none }
.aces2025-row-details { color: var(--aces-gray-700); margin-top: 6px; max-height: 0; overflow: hidden; transition: max-height .35s ease, opacity .25s ease; opacity: 0; }
.aces2025-row-details[hidden] { display:block; max-height:0; opacity:0; }
.aces2025-row-details.is-open { max-height: 1200px; opacity: 1; }

/* Modal */
.aces2025-modal-overlay { position: fixed; inset: 0; display: grid; place-items: center; background: rgba(0,0,0,.35); z-index: 10000; }
.aces2025-modal-overlay[hidden] { display:none }
.aces2025-modal { background:#fff; border-radius: 14px; padding: 18px; width: min(520px, 92vw); box-shadow: 0 22px 60px rgba(0,0,0,.3); border:1px solid var(--aces-gray-200) }
.aces2025-modal-close { position:absolute; top: 10px; right: 14px; border:0; background:transparent; font-size: 22px; line-height:1; cursor:pointer }
.aces2025-modal-actions { display:flex; gap:10px; margin-top: 12px }
/* Prevent anchor jumps on inline toggle links */
.aces2025-morelink { scroll-behavior: auto; }
@media (min-width: 900px) {
  .aces2025-row { grid-template-columns: 96px 1fr; gap:16px; padding: 16px 18px; }
}

/* Utility */
.container { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.screen-reader-text { position:absolute !important; height:1px; width:1px; overflow:hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

