/*
Theme Name: EPR Tech
Theme URI: https://eprtech.com/
Author: EPR Tech
Description: Custom, modular EPR Tech homepage with a section manager, dynamic content collections and accessible scroll interactions.
Version: 1.0.40
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: epr-tech
*/

:root {
  --epr-navy: #071a34;
  --epr-navy-deep: #06152c;
  --epr-blue: #123d69;
  --epr-blue-bright: #1e5a8b;
  --epr-gold: #f5a91c;
  --epr-gold-light: #ffca57;
  --epr-ink: #102c4c;
  --epr-muted: #61738a;
  --epr-pale: #f4f7fa;
  --epr-line: #dce4eb;
  --epr-white: #fff;
  --epr-content: 1280px;
  --epr-radius: 14px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--epr-ink); background: #fff; font-family: Inter, "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--epr-gold); outline-offset: 4px; }
.epr-skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; padding: 10px 16px; color: #fff; background: var(--epr-navy); transform: translateY(-150%); }
.epr-skip-link:focus { transform: translateY(0); }
.epr-container { width: min(var(--epr-content), calc(100% - 64px)); margin-inline: auto; }
.epr-section { position: relative; padding: clamp(76px, 8vw, 128px) 0; overflow: clip; }
.epr-eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--epr-blue); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.epr-eyebrow::before { content: ""; width: 34px; height: 2px; background: var(--epr-gold); }
.epr-section-title { max-width: 760px; margin: 18px 0 14px; color: var(--epr-navy); font-size: clamp(34px, 4.2vw, 62px); line-height: 1.08; letter-spacing: -.045em; }
.epr-section-title em { color: var(--epr-gold); font-style: normal; }
.epr-section-intro { max-width: 650px; margin: 0; color: var(--epr-muted); font-size: clamp(15px, 1.2vw, 18px); }
.epr-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 16px; padding: 13px 24px; border: 1px solid transparent; border-radius: 5px; color: #1e2b3c; background: linear-gradient(135deg, #ffca57, #f0a50f); text-decoration: none; font-weight: 750; transition: transform .22s ease, box-shadow .22s ease, background .22s ease; }
.epr-button:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(245,169,28,.25); }
.epr-button--outline { border-color: rgba(255,255,255,.45); color: #fff; background: transparent; }
.epr-button--outline:hover { color: var(--epr-navy); background: #fff; }
.epr-arrow { font-size: 20px; line-height: 1; }

/* Public theme templates */
.epr-site-header { position: relative; z-index: 30; min-height: 78px; color: var(--epr-navy); background: #fff; box-shadow: 0 2px 12px rgba(8,32,59,.07); }
.epr-header-inner { display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 28px; }
.epr-brand { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 10px; color: var(--epr-navy); text-decoration: none; }
.epr-brand-mark { display: inline-grid; width: 45px; height: 45px; place-items: center; color: var(--epr-gold); font-size: 42px; font-weight: 900; line-height: .8; }
.epr-brand-copy { display: grid; font-size: 27px; font-weight: 850; line-height: .95; letter-spacing: -.06em; }
.epr-brand-copy small { margin-top: 6px; font-size: 6px; font-weight: 800; letter-spacing: .16em; }
.epr-brand--custom .custom-logo-link { display: inline-flex; align-items: center; }
.epr-brand--custom .custom-logo { width: auto; max-height: 48px; }
.epr-header-right { display: flex; align-items: center; gap: 24px; }
.epr-primary-nav ul { display: flex; align-items: center; gap: clamp(13px, 2vw, 30px); margin: 0; padding: 0; list-style: none; }
.epr-primary-nav a { color: #26384d; text-decoration: none; font-size: 13px; font-weight: 650; }
.epr-primary-nav a:hover { color: var(--epr-blue-bright); }
.epr-header-cta { min-height: 44px; padding: 9px 18px; font-size: 13px; }
.epr-menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--epr-line); border-radius: 4px; background: #fff; cursor: pointer; }
.epr-menu-toggle span { display: block; width: 19px; height: 2px; margin: 4px auto; background: var(--epr-navy); }
.epr-site-footer { padding: 62px 0 22px; color: #dce5ef; background: var(--epr-navy-deep); }
.epr-footer-grid { display: grid; grid-template-columns: 1.35fr repeat(3, 1fr); gap: 40px; padding-bottom: 42px; }
.epr-footer-grid h2, .epr-footer-grid h3 { margin: 0 0 15px; color: #fff; font-size: 16px; }
.epr-footer-grid p { max-width: 310px; color: #bdcadd; font-size: 14px; }
.epr-footer-links { display: grid; gap: 7px; }
.epr-footer-links a { color: #c8d4e2; font-size: 14px; text-decoration: none; }
.epr-footer-links a:hover { color: var(--epr-gold); }
.epr-footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.15); color: #aebed0; font-size: 12px; }
.epr-page-content { min-height: 45vh; }
.epr-basic-page { padding: 72px 0; }
.epr-basic-page h1 { color: var(--epr-navy); font-size: clamp(34px, 5vw, 60px); line-height: 1.1; }
.epr-basic-page .entry-content { max-width: 900px; }
.epr-pagination { display: flex; gap: 8px; margin-top: 36px; }
.epr-pagination a, .epr-pagination span { padding: 8px 12px; border: 1px solid var(--epr-line); border-radius: 4px; text-decoration: none; }
.epr-basic-archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 35px; }
.epr-basic-post-card { overflow: hidden; border: 1px solid var(--epr-line); border-radius: 8px; background: #fff; }
.epr-basic-post-card > a { display: block; }
.epr-basic-post-card img { width: 100%; height: 205px; object-fit: cover; }
.epr-basic-post-card h2, .epr-basic-post-card > p { margin: 12px 17px; }
.epr-basic-post-card h2 { color: var(--epr-navy); font-size: 19px; line-height: 1.3; }
.epr-basic-post-card h2 a { text-decoration: none; }
.epr-basic-post-card p { color: var(--epr-muted); font-size: 13px; }
.epr-post-date { color: var(--epr-muted); font-size: 12px; }

@media (max-width: 980px) {
  .epr-container { width: min(var(--epr-content), calc(100% - 40px)); }
  .epr-menu-toggle { display: block; }
  .epr-header-right { gap: 12px; }
  .epr-primary-nav { position: absolute; top: 100%; right: 20px; left: 20px; display: none; padding: 14px 20px 20px; border: 1px solid var(--epr-line); background: #fff; box-shadow: 0 18px 30px rgba(8,32,59,.14); }
  .epr-primary-nav.is-open { display: block; }
  .epr-primary-nav ul { align-items: stretch; flex-direction: column; gap: 0; }
  .epr-primary-nav li + li { border-top: 1px solid #edf1f5; }
  .epr-primary-nav a { display: block; padding: 12px 0; }
}
@media (max-width: 640px) {
  .epr-container { width: calc(100% - 36px); }
  .epr-section { padding: 68px 0; }
  .epr-header-inner { min-height: 68px; }
  .epr-site-header { min-height: 68px; }
  .epr-brand-mark { width: 37px; height: 37px; font-size: 35px; }
  .epr-brand-copy { font-size: 23px; }
  .epr-header-cta { display: none; }
  .epr-footer-grid { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
  .epr-basic-archive-grid { grid-template-columns: 1fr; }
  .epr-footer-about { grid-column: 1 / -1; }
  .epr-footer-bottom { flex-direction: column; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
