/* ==========================================================================
   EVER AHEAD — GLOBAL DESIGN SYSTEM
   Built to map 1:1 onto Elementor Global Colors, Global Fonts and Flexbox
   Containers. No CSS Grid. No JS-driven layout. Flexbox only.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. DESIGN TOKENS  →  Elementor Global Colors / Global Fonts
   -------------------------------------------------------------------------- */
:root {
  /* Brand colors (from Ever_Ahead_Brand_Colors.txt) */
  --ea-navy:        #0B2D4D;   /* Elementor Global: Primary   */
  --ea-sage:        #6B8F86;   /* Elementor Global: Secondary */
  --ea-gold:        #F2B23D;   /* Elementor Global: Accent    */
  --ea-cream:       #F4F1E8;
  --ea-lightgray:   #B6BDC2;
  --ea-charcoal:    #40464D;   /* Elementor Global: Text      */

  /* Derived tints/shades — kept minimal and purposeful */
  --ea-navy-800:    #092440;
  --ea-navy-600:    #14406C;
  --ea-navy-200:    #7C93AC;
  --ea-sage-dark:   #4E6E66;
  --ea-sage-tint:   #E7EEEB;
  --ea-gold-dark:   #8F6412;   /* darkened from the brand gold to clear WCAG AA on white, cream and gold-tint */
  --ea-gold-tint:   #FDF2DC;
  --ea-cream-soft:  #FAF8F2;

  /* Functional colors */
  --ea-text:        #40464D;
  --ea-text-muted:  #5A636C;   /* 5.2:1 on cream — passes AA */
  --ea-heading:     #0B2D4D;
  --ea-border:      #E3DFD3;
  --ea-border-strong:#CFC9B8;
  --ea-bg:          #FFFFFF;
  --ea-bg-alt:      #F4F1E8;
  --ea-bg-soft:     #FAF8F2;
  --ea-bg-deep:     #0B2D4D;
  --ea-focus:       #F2B23D;

  /* Typography */
  --ea-font-head: "Playfair Display", Georgia, "Times New Roman", serif;
  --ea-font-body: "Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Layout */
  --ea-container: 1200px;
  --ea-container-narrow: 780px;
  --ea-section-y: 96px;
  --ea-gap: 32px;
  --ea-gap-lg: 48px;
  --ea-gap-sm: 16px;

  /* Radius */
  --ea-radius-sm: 6px;
  --ea-radius: 12px;
  --ea-radius-lg: 20px;
  --ea-radius-pill: 999px;

  /* Shadows */
  --ea-shadow-sm: 0 1px 2px rgba(11,45,77,.06), 0 1px 3px rgba(11,45,77,.05);
  --ea-shadow:    0 4px 12px rgba(11,45,77,.07), 0 2px 4px rgba(11,45,77,.04);
  --ea-shadow-lg: 0 18px 44px rgba(11,45,77,.13);
}

/* --------------------------------------------------------------------------
   2. RESET / BASE
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--ea-bg);
  color: var(--ea-text);
  font-family: var(--ea-font-body);
  font-size: 17px;
  line-height: 1.7;
  font-weight: 400;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--ea-font-head);
  color: var(--ea-heading);
  font-weight: 600;
  margin: 0 0 .5em;
  line-height: 1.18;
  letter-spacing: -0.012em;
}

h1 { font-size: 3.25rem; line-height: 1.08; }
h2 { font-size: 2.375rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.1875rem; font-family: var(--ea-font-body); font-weight: 700; letter-spacing: 0; }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--ea-navy-600); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--ea-gold-dark); }

strong { font-weight: 700; color: var(--ea-heading); }

small, .ea-small { font-size: .875rem; }

hr { border: 0; border-top: 1px solid var(--ea-border); margin: var(--ea-gap) 0; }

::selection { background: var(--ea-gold); color: var(--ea-navy); }

/* Accessibility — visible focus everywhere */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--ea-focus);
  outline-offset: 2px;
  border-radius: 3px;
}

.ea-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--ea-navy); color: #fff; padding: 14px 22px;
  font-weight: 700; text-decoration: none; border-radius: 0 0 var(--ea-radius-sm) 0;
}
.ea-skip-link:focus { left: 0; color: #fff; }

.ea-visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   3. LAYOUT PRIMITIVES  →  Elementor Flexbox Containers
   -------------------------------------------------------------------------- */
.ea-container {
  width: 100%;
  max-width: var(--ea-container);
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}
.ea-container--narrow { max-width: var(--ea-container-narrow); }

.ea-section { padding-top: var(--ea-section-y); padding-bottom: var(--ea-section-y); }
.ea-section--tight { padding-top: 64px; padding-bottom: 64px; }
.ea-section--flush-top { padding-top: 0; }

.ea-bg-alt   { background: var(--ea-bg-alt); }
.ea-bg-soft  { background: var(--ea-bg-soft); }
.ea-bg-deep  { background: var(--ea-bg-deep); color: #E8EDF2; }
.ea-bg-sage  { background: var(--ea-sage-tint); }

.ea-bg-deep h1, .ea-bg-deep h2, .ea-bg-deep h3, .ea-bg-deep h4 { color: #fff; }
.ea-bg-deep a { color: var(--ea-gold); }
.ea-bg-deep strong { color: #fff; }

/* Flex row/column system — direct Elementor container equivalents */
.ea-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ea-gap);
}
.ea-row--sm  { gap: var(--ea-gap-sm); }
.ea-row--lg  { gap: var(--ea-gap-lg); }
.ea-row--middle { align-items: center; }
.ea-row--stretch { align-items: stretch; }
.ea-row--center { justify-content: center; }
.ea-row--between { justify-content: space-between; }
.ea-row--nowrap { flex-wrap: nowrap; }

/* flex-basis columns; every one collapses to full width on mobile */
.ea-col-2  { flex: 1 1 calc(50% - (var(--ea-gap) / 2)); min-width: 280px; }
.ea-col-3  { flex: 1 1 calc(33.333% - (var(--ea-gap) * 2 / 3)); min-width: 260px; }
.ea-col-4  { flex: 1 1 calc(25% - (var(--ea-gap) * 3 / 4)); min-width: 210px; }
.ea-col-grow { flex: 1 1 340px; min-width: 280px; }

.ea-col-5-7 { flex: 1 1 400px; min-width: 280px; }
.ea-col-7-5 { flex: 1.4 1 460px; min-width: 280px; }

.ea-stack { display: flex; flex-direction: column; gap: var(--ea-gap); }
.ea-stack--sm { gap: var(--ea-gap-sm); }

/* --------------------------------------------------------------------------
   4. TYPE HELPERS
   -------------------------------------------------------------------------- */
.ea-eyebrow {
  display: inline-block;
  font-family: var(--ea-font-body);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ea-sage-dark);
  margin: 0 0 14px;
}
.ea-bg-deep .ea-eyebrow { color: var(--ea-gold); }

/* The gold rule echoes the bar beneath the wordmark in the logo */
.ea-rule {
  display: block;
  width: 62px;
  height: 4px;
  background: var(--ea-gold);
  border-radius: 2px;
  margin: 0 0 26px;
}
.ea-rule--center { margin-left: auto; margin-right: auto; }

.ea-lead {
  font-size: 1.1875rem;
  line-height: 1.65;
  color: var(--ea-text-muted);
}
.ea-bg-deep .ea-lead { color: #C6D2DE; }

.ea-muted { color: var(--ea-text-muted); }
.ea-center { text-align: center; }
.ea-measure { max-width: 68ch; }
.ea-measure--center { max-width: 68ch; margin-left: auto; margin-right: auto; }

.ea-section-head { margin-bottom: var(--ea-gap-lg); }
.ea-section-head--center { text-align: center; }
.ea-section-head--center .ea-rule { margin-left: auto; margin-right: auto; }
.ea-section-head p { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   5. BUTTONS  →  Elementor Button widget
   -------------------------------------------------------------------------- */
.ea-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--ea-font-body);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 16px 30px;
  border-radius: var(--ea-radius-sm);
  border: 2px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
  text-align: center;
}
.ea-btn:hover { transform: translateY(-2px); }
.ea-btn:active { transform: translateY(0); }

.ea-btn--primary {
  background: var(--ea-gold);
  color: var(--ea-navy);
  border-color: var(--ea-gold);
  box-shadow: var(--ea-shadow-sm);
}
.ea-btn--primary:hover { background: #FFC257; border-color: #FFC257; color: var(--ea-navy); box-shadow: var(--ea-shadow); }

.ea-btn--secondary {
  background: var(--ea-navy);
  color: #fff;
  border-color: var(--ea-navy);
}
.ea-btn--secondary:hover { background: var(--ea-navy-600); border-color: var(--ea-navy-600); color: #fff; }

.ea-btn--outline {
  background: transparent;
  color: var(--ea-navy);
  border-color: var(--ea-navy);
}
.ea-btn--outline:hover { background: var(--ea-navy); color: #fff; }

.ea-btn--ghost-light {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,.55);
}
.ea-btn--ghost-light:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }

.ea-btn--sm { padding: 11px 20px; font-size: .9375rem; }
.ea-btn--block { width: 100%; }

.ea-btn-group { display: flex; flex-wrap: wrap; gap: 14px; }

/* Text link with arrow */
.ea-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: .9375rem;
  text-decoration: none;
  color: var(--ea-navy-600);
  border-bottom: 2px solid var(--ea-gold);
  padding-bottom: 2px;
}
.ea-link-arrow:hover { color: var(--ea-gold-dark); border-bottom-color: var(--ea-gold-dark); }
.ea-link-arrow::after { content: "\2192"; transition: transform .18s ease; }
.ea-link-arrow:hover::after { transform: translateX(4px); }

/* --------------------------------------------------------------------------
   6. HEADER / NAVIGATION  →  Elementor Theme Builder Header
   -------------------------------------------------------------------------- */
.ea-header {
  position: sticky;
  top: 0;
  z-index: 500;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--ea-border);
  backdrop-filter: saturate(180%) blur(8px);
}
.ea-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 84px;
  padding-top: 10px;
  padding-bottom: 10px;
}
.ea-header__logo { display: block; flex-shrink: 0; line-height: 0; }
.ea-header__logo img { width: 208px; height: auto; }

.ea-nav { display: flex; align-items: center; gap: 4px; }
.ea-nav__item { position: relative; }
.ea-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--ea-navy);
  text-decoration: none;
  border-radius: var(--ea-radius-sm);
  white-space: nowrap;
}
.ea-nav__link:hover { background: var(--ea-cream); color: var(--ea-navy); }
.ea-nav__link[aria-current="page"] { color: var(--ea-gold-dark); }
.ea-nav__link[aria-current="page"]::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px;
  height: 2px; background: var(--ea-gold); border-radius: 2px;
}
.ea-nav__caret { width: 10px; height: 10px; flex-shrink: 0; transition: transform .2s ease; }
.ea-nav__item--has-menu:hover .ea-nav__caret,
.ea-nav__item--has-menu:focus-within .ea-nav__caret { transform: rotate(180deg); }

.ea-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 252px;
  background: #fff;
  border: 1px solid var(--ea-border);
  border-radius: var(--ea-radius);
  box-shadow: var(--ea-shadow-lg);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  list-style: none;
  margin: 0;
}
.ea-nav__item--has-menu:hover .ea-dropdown,
.ea-nav__item--has-menu:focus-within .ea-dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.ea-dropdown a {
  display: block;
  padding: 11px 14px;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--ea-navy);
  text-decoration: none;
  border-radius: var(--ea-radius-sm);
}
.ea-dropdown a:hover { background: var(--ea-cream); color: var(--ea-gold-dark); }
.ea-dropdown a small { display: block; font-weight: 400; font-size: .8125rem; color: var(--ea-text-muted); }

.ea-header__cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }

.ea-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  background: transparent;
  border: 1px solid var(--ea-border-strong);
  border-radius: var(--ea-radius-sm);
  cursor: pointer;
  padding: 0;
}
.ea-burger__bars { position: relative; width: 22px; height: 2px; background: var(--ea-navy); display: block; transition: background .2s; }
.ea-burger__bars::before, .ea-burger__bars::after {
  content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: var(--ea-navy);
  transition: transform .22s ease, top .22s ease;
}
.ea-burger__bars::before { top: -7px; }
.ea-burger__bars::after  { top: 7px; }
.ea-burger[aria-expanded="true"] .ea-burger__bars { background: transparent; }
.ea-burger[aria-expanded="true"] .ea-burger__bars::before { top: 0; transform: rotate(45deg); }
.ea-burger[aria-expanded="true"] .ea-burger__bars::after  { top: 0; transform: rotate(-45deg); }

/* Mobile panel */
.ea-mobile-nav {
  display: none;
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(400px, 88vw);
  background: #fff;
  z-index: 1000;
  padding: 24px 24px 40px;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform .26s ease;
  box-shadow: -12px 0 40px rgba(11,45,77,.18);
}
.ea-mobile-nav.is-open { transform: translateX(0); }
.ea-mobile-nav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.ea-mobile-nav__head img { width: 160px; }
.ea-mobile-nav__close {
  width: 46px; height: 46px; border: 1px solid var(--ea-border-strong);
  background: #fff; border-radius: var(--ea-radius-sm); cursor: pointer;
  font-size: 24px; line-height: 1; color: var(--ea-navy);
}
.ea-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.ea-mobile-nav > ul > li { border-bottom: 1px solid var(--ea-border); }
.ea-mobile-nav a {
  display: block;
  padding: 16px 4px;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--ea-navy);
  text-decoration: none;
  min-height: 48px;
}
.ea-mobile-nav a:hover { color: var(--ea-gold-dark); }
.ea-mobile-sub { padding: 0 0 12px 16px !important; }
.ea-mobile-sub a { font-size: .9688rem; font-weight: 600; color: var(--ea-text-muted); padding: 12px 4px; }
.ea-mobile-nav__toggle {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: 16px 4px; background: none; border: 0; cursor: pointer;
  font-family: var(--ea-font-body); font-size: 1.0625rem; font-weight: 700; color: var(--ea-navy);
  min-height: 48px;
}
.ea-mobile-nav__toggle .ea-nav__caret { transition: transform .2s ease; }
.ea-mobile-nav__toggle[aria-expanded="true"] .ea-nav__caret { transform: rotate(180deg); }
.ea-mobile-nav__cta { margin-top: 26px; }

.ea-overlay {
  display: none;
  position: fixed; inset: 0;
  background: rgba(9,36,64,.5);
  z-index: 999;
  opacity: 0;
  transition: opacity .26s ease;
}
.ea-overlay.is-open { opacity: 1; }

body.ea-nav-open { overflow: hidden; }

/* --------------------------------------------------------------------------
   7. HERO
   -------------------------------------------------------------------------- */
.ea-hero {
  position: relative;
  background:
    radial-gradient(58% 78% at 78% 8%, rgba(242,178,61,.24) 0%, rgba(242,178,61,0) 62%),
    radial-gradient(50% 60% at 12% 96%, rgba(107,143,134,.30) 0%, rgba(107,143,134,0) 68%),
    linear-gradient(168deg, #0B2D4D 0%, #0F3355 52%, #143F63 100%);
  color: #fff;
  overflow: hidden;
  padding-top: 104px;
  padding-bottom: 104px;
}
/* Winding-path motif from the logo, used as a large quiet watermark */
.ea-hero::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -120px;
  width: 620px;
  height: 620px;
  background: url("../img/ever-ahead-icon.png") no-repeat center / contain;
  opacity: .07;
  pointer-events: none;
}
.ea-hero__inner { position: relative; z-index: 2; }
.ea-hero h1 { color: #fff; max-width: 15ch; }
.ea-hero__lead { font-size: 1.25rem; line-height: 1.6; color: #C9D6E2; max-width: 54ch; margin-bottom: 34px; }
.ea-hero .ea-eyebrow { color: var(--ea-gold); }

.ea-hero--page { padding-top: 76px; padding-bottom: 76px; }
.ea-hero--page h1 { max-width: 22ch; }

.ea-hero__note {
  margin-top: 26px;
  font-size: .9375rem;
  color: #A9BCCD;
  display: flex;
  align-items: center;
  gap: 9px;
}

/* Hero media slot — sized so real photography drops straight in */
.ea-hero__media {
  position: relative;
  border-radius: var(--ea-radius-lg);
  overflow: hidden;
  box-shadow: var(--ea-shadow-lg);
  aspect-ratio: 4 / 3;
  background: linear-gradient(150deg, var(--ea-sage) 0%, var(--ea-navy-600) 100%);
}
.ea-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* --------------------------------------------------------------------------
   8. TRUST STRIP
   -------------------------------------------------------------------------- */
.ea-trust {
  background: var(--ea-cream);
  border-bottom: 1px solid var(--ea-border);
  padding-top: 30px;
  padding-bottom: 30px;
}
.ea-trust__row { display: flex; flex-wrap: wrap; gap: 20px 40px; justify-content: space-between; align-items: center; }
.ea-trust__item {
  display: flex; align-items: center; gap: 12px;
  flex: 1 1 200px; min-width: 190px;
  font-weight: 700; font-size: .9688rem; color: var(--ea-navy);
}
.ea-trust__icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--ea-border-strong);
  display: flex; align-items: center; justify-content: center;
  color: var(--ea-sage-dark);
}
.ea-trust__icon svg { width: 20px; height: 20px; }

/* --------------------------------------------------------------------------
   9. CARDS  →  Elementor Icon Box / Image Box widgets
   -------------------------------------------------------------------------- */
.ea-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--ea-border);
  border-radius: var(--ea-radius);
  padding: 34px 30px;
  box-shadow: var(--ea-shadow-sm);
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.ea-card::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--ea-gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .24s ease;
}
.ea-card:hover { box-shadow: var(--ea-shadow-lg); transform: translateY(-3px); border-color: var(--ea-border-strong); }
.ea-card:hover::before { transform: scaleX(1); }
.ea-card h3 { font-size: 1.375rem; margin-bottom: .4em; }
.ea-card p { color: var(--ea-text-muted); font-size: .9688rem; }
.ea-card__body { flex: 1 1 auto; }
.ea-card__foot { margin-top: 22px; }

.ea-card--flat { box-shadow: none; }
.ea-card--flat:hover { transform: none; box-shadow: var(--ea-shadow-sm); }

.ea-card__icon {
  width: 56px; height: 56px;
  border-radius: var(--ea-radius-sm);
  background: var(--ea-sage-tint);
  color: var(--ea-sage-dark);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 22px;
}
.ea-card__icon svg { width: 28px; height: 28px; }
.ea-card--gold .ea-card__icon { background: var(--ea-gold-tint); color: var(--ea-gold-dark); }

/* Card with an image on top */
.ea-card--media { padding: 0; }
.ea-card--media .ea-card__media {
  aspect-ratio: 3 / 2;
  background: linear-gradient(150deg, var(--ea-sage-tint) 0%, var(--ea-cream) 100%);
  overflow: hidden;
  border-bottom: 1px solid var(--ea-border);
}
.ea-card--media .ea-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ea-card--media .ea-card__inner { padding: 28px 28px 30px; display: flex; flex-direction: column; flex: 1 1 auto; }

/* Numbered step cards */
.ea-step { display: flex; gap: 22px; align-items: flex-start; }
.ea-step__num {
  flex-shrink: 0;
  width: 58px; height: 58px;
  border-radius: 50%;
  background: var(--ea-navy);
  color: var(--ea-gold);
  font-family: var(--ea-font-head);
  font-size: 1.5rem;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.ea-step__body h3 { font-size: 1.25rem; margin-bottom: .35em; }
.ea-step__body p { color: var(--ea-text-muted); font-size: .9688rem; margin-bottom: 0; }
.ea-bg-deep .ea-step__num { background: var(--ea-gold); color: var(--ea-navy); }
.ea-bg-deep .ea-step__body p { color: #B9C8D6; }

/* Icon list  →  Elementor Icon List widget */
.ea-iconlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ea-iconlist li { display: flex; gap: 13px; align-items: flex-start; font-size: 1rem; }
.ea-iconlist svg { flex-shrink: 0; width: 21px; height: 21px; margin-top: 3px; color: var(--ea-sage-dark); }
.ea-bg-deep .ea-iconlist svg { color: var(--ea-gold); }
.ea-iconlist--gold svg { color: var(--ea-gold-dark); }

/* Pill / chip list */
.ea-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.ea-chip {
  display: inline-flex; align-items: center;
  padding: 9px 18px;
  background: #fff;
  border: 1px solid var(--ea-border-strong);
  border-radius: var(--ea-radius-pill);
  font-size: .9375rem; font-weight: 600; color: var(--ea-navy);
  text-decoration: none;
}
a.ea-chip:hover { background: var(--ea-navy); border-color: var(--ea-navy); color: #fff; }
.ea-chip--static { background: var(--ea-cream); color: var(--ea-text-muted); font-weight: 600; }

/* --------------------------------------------------------------------------
   10. FEATURE / SPLIT BLOCKS
   -------------------------------------------------------------------------- */
.ea-media {
  border-radius: var(--ea-radius-lg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: linear-gradient(150deg, var(--ea-sage-tint) 0%, var(--ea-cream) 100%);
  box-shadow: var(--ea-shadow);
}
.ea-media img { width: 100%; height: 100%; object-fit: cover; }
.ea-media--wide { aspect-ratio: 16 / 9; }
.ea-media--tall { aspect-ratio: 3 / 4; }

/* Placeholder shown until real photography is supplied */
.ea-media--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-align: center;
  padding: 28px;
  border: 1px dashed var(--ea-border-strong);
  background:
    radial-gradient(60% 70% at 50% 30%, rgba(242,178,61,.16) 0%, rgba(242,178,61,0) 70%),
    linear-gradient(150deg, var(--ea-sage-tint) 0%, var(--ea-cream) 100%);
}
.ea-media--placeholder img { width: 84px; height: auto; opacity: .5; margin-bottom: 4px; }
.ea-media__label {
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ea-sage-dark);
}
.ea-media__hint { font-size: .8125rem; color: var(--ea-text-muted); max-width: 32ch; line-height: 1.5; }

/* Stat / figure block */
.ea-stat { text-align: center; }
.ea-stat__num { font-family: var(--ea-font-head); font-size: 2.75rem; font-weight: 700; color: var(--ea-navy); line-height: 1; margin-bottom: 8px; }
.ea-bg-deep .ea-stat__num { color: var(--ea-gold); }
.ea-stat__label { font-size: .9375rem; color: var(--ea-text-muted); }
.ea-bg-deep .ea-stat__label { color: #B9C8D6; }

/* Pull quote / testimonial  →  Elementor Testimonial widget */
.ea-quote {
  background: #fff;
  border: 1px solid var(--ea-border);
  border-left: 4px solid var(--ea-gold);
  border-radius: var(--ea-radius);
  padding: 38px 40px;
  box-shadow: var(--ea-shadow-sm);
}
.ea-quote blockquote {
  margin: 0 0 18px;
  font-family: var(--ea-font-head);
  font-size: 1.375rem;
  line-height: 1.5;
  color: var(--ea-navy);
}
.ea-quote figcaption { font-size: .9375rem; color: var(--ea-text-muted); font-weight: 600; }

/* Callout / notice */
.ea-note {
  background: var(--ea-gold-tint);
  border: 1px solid #EED9AE;
  border-radius: var(--ea-radius);
  padding: 22px 26px;
  font-size: .9688rem;
}
.ea-note--sage { background: var(--ea-sage-tint); border-color: #CFDCD7; }
.ea-note--plain { background: var(--ea-cream); border-color: var(--ea-border); }
.ea-note h4 { margin-bottom: .5em; }
.ea-note p:last-child { margin-bottom: 0; }

/* Placeholder / to-be-built state */
.ea-placeholder {
  border: 1px dashed var(--ea-border-strong);
  border-radius: var(--ea-radius);
  background: var(--ea-cream-soft);
  padding: 34px 30px;
  text-align: center;
}
.ea-placeholder .ea-badge { margin-bottom: 14px; }

.ea-badge {
  display: inline-block;
  padding: 5px 13px;
  border-radius: var(--ea-radius-pill);
  background: var(--ea-sage-tint);
  color: var(--ea-sage-dark);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.ea-badge--gold { background: var(--ea-gold-tint); color: var(--ea-gold-dark); }
.ea-badge--navy { background: var(--ea-navy); color: #fff; }

/* --------------------------------------------------------------------------
   11. ACCORDION  →  Elementor Accordion widget
   -------------------------------------------------------------------------- */
.ea-accordion { border: 1px solid var(--ea-border); border-radius: var(--ea-radius); overflow: hidden; background: #fff; }
.ea-accordion__item + .ea-accordion__item { border-top: 1px solid var(--ea-border); }
.ea-accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 22px 26px;
  background: #fff;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--ea-font-body);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--ea-navy);
  line-height: 1.45;
  min-height: 48px;
}
.ea-accordion__trigger:hover { background: var(--ea-cream-soft); }
.ea-accordion__icon {
  flex-shrink: 0;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--ea-cream);
  color: var(--ea-navy);
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; line-height: 1;
  transition: transform .22s ease, background .22s ease, color .22s ease;
}
.ea-accordion__trigger[aria-expanded="true"] .ea-accordion__icon {
  transform: rotate(45deg);
  background: var(--ea-gold);
  color: var(--ea-navy);
}
.ea-accordion__panel { display: none; padding: 0 26px 26px; }
.ea-accordion__panel.is-open { display: block; }
.ea-accordion__panel p:last-child { margin-bottom: 0; }
.ea-accordion__panel > *:first-child { margin-top: 0; }

/* --------------------------------------------------------------------------
   12. FORMS  →  Elementor Form widget
   -------------------------------------------------------------------------- */
.ea-form { display: flex; flex-direction: column; gap: 22px; }
.ea-field { display: flex; flex-direction: column; gap: 8px; }
.ea-field label { font-size: .9375rem; font-weight: 700; color: var(--ea-navy); }
.ea-field__hint { font-size: .8438rem; color: var(--ea-text-muted); font-weight: 400; }

.ea-input, .ea-select, .ea-textarea {
  width: 100%;
  font-family: var(--ea-font-body);
  font-size: 1rem;
  color: var(--ea-text);
  background: #fff;
  border: 1px solid var(--ea-border-strong);
  border-radius: var(--ea-radius-sm);
  padding: 14px 16px;
  min-height: 52px;
  transition: border-color .16s ease, box-shadow .16s ease;
}
.ea-input:focus, .ea-select:focus, .ea-textarea:focus {
  border-color: var(--ea-sage);
  box-shadow: 0 0 0 3px rgba(107,143,134,.18);
}
.ea-textarea { min-height: 140px; resize: vertical; line-height: 1.6; }
.ea-select {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%230B2D4D' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px;
  padding-right: 44px;
}

/* Selectable option cards (questionnaire) */
.ea-options { display: flex; flex-wrap: wrap; gap: 12px; }
.ea-option {
  flex: 1 1 220px;
  min-width: 190px;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 20px;
  background: #fff;
  border: 2px solid var(--ea-border-strong);
  border-radius: var(--ea-radius-sm);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
  font-weight: 600;
  font-size: .9688rem;
  color: var(--ea-navy);
  min-height: 48px;
}
.ea-option:hover { border-color: var(--ea-sage); background: var(--ea-cream-soft); }
.ea-option input { position: absolute; opacity: 0; width: 0; height: 0; }
.ea-option__box {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border: 2px solid var(--ea-border-strong);
  border-radius: 5px;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
  transition: border-color .16s, background .16s;
}
.ea-option input[type="radio"] ~ .ea-option__box { border-radius: 50%; }
.ea-option__box svg { width: 13px; height: 13px; color: #fff; opacity: 0; transition: opacity .14s; }
.ea-option input:checked ~ .ea-option__box { background: var(--ea-sage-dark); border-color: var(--ea-sage-dark); }
.ea-option input:checked ~ .ea-option__box svg { opacity: 1; }
.ea-option:has(input:checked) { border-color: var(--ea-sage-dark); background: var(--ea-sage-tint); }
.ea-option input:focus-visible ~ .ea-option__box { outline: 3px solid var(--ea-focus); outline-offset: 2px; }
.ea-option__text { line-height: 1.4; }
.ea-option__text small { display: block; font-weight: 400; font-size: .8438rem; color: var(--ea-text-muted); margin-top: 2px; }

/* Questionnaire shell */
.ea-quiz { background: #fff; border: 1px solid var(--ea-border); border-radius: var(--ea-radius-lg); box-shadow: var(--ea-shadow); overflow: hidden; }
.ea-quiz__head { padding: 30px 38px 0; }
.ea-quiz__progress-track { height: 6px; background: var(--ea-cream); border-radius: 3px; overflow: hidden; margin-bottom: 10px; }
.ea-quiz__progress-bar { height: 100%; background: var(--ea-gold); border-radius: 3px; transition: width .3s ease; width: 12.5%; }
.ea-quiz__progress-label { font-size: .8438rem; font-weight: 700; color: var(--ea-text-muted); letter-spacing: .04em; text-transform: uppercase; }
.ea-quiz__body { padding: 30px 38px 38px; }
.ea-quiz__step { display: none; }
.ea-quiz__step.is-active { display: block; }
.ea-quiz__step h2 { font-size: 1.75rem; margin-bottom: .3em; }
.ea-quiz__step > p { color: var(--ea-text-muted); margin-bottom: 26px; }
.ea-quiz__nav {
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
  padding: 24px 38px;
  border-top: 1px solid var(--ea-border);
  background: var(--ea-cream-soft);
  flex-wrap: wrap;
}

/* --------------------------------------------------------------------------
   13. BREADCRUMBS
   -------------------------------------------------------------------------- */
.ea-breadcrumbs { padding-top: 20px; padding-bottom: 4px; font-size: .875rem; }
.ea-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; align-items: center; }
.ea-breadcrumbs li { display: flex; align-items: center; gap: 8px; color: var(--ea-text-muted); }
.ea-breadcrumbs li + li::before { content: "/"; color: var(--ea-lightgray); }
.ea-breadcrumbs a { color: var(--ea-text-muted); text-decoration: none; font-weight: 600; }
.ea-breadcrumbs a:hover { color: var(--ea-gold-dark); text-decoration: underline; }
.ea-breadcrumbs [aria-current="page"] { color: var(--ea-navy); font-weight: 700; }

.ea-bg-deep .ea-breadcrumbs li,
.ea-bg-deep .ea-breadcrumbs a { color: #A9BCCD; }
.ea-bg-deep .ea-breadcrumbs [aria-current="page"] { color: #fff; }

/* --------------------------------------------------------------------------
   14. ARTICLE / PROSE  →  Elementor Single Post template
   -------------------------------------------------------------------------- */
.ea-prose { font-size: 1.0625rem; line-height: 1.78; }
.ea-prose > h2 { font-size: 1.875rem; margin-top: 1.9em; margin-bottom: .55em; }
.ea-prose > h3 { font-size: 1.3125rem; margin-top: 1.7em; margin-bottom: .5em; }
.ea-prose > h2:first-child, .ea-prose > h3:first-child { margin-top: 0; }
.ea-prose ul, .ea-prose ol { margin: 0 0 1.25em; padding-left: 1.35em; }
.ea-prose li { margin-bottom: .55em; }
.ea-prose li::marker { color: var(--ea-sage-dark); }
.ea-prose blockquote {
  margin: 1.8em 0;
  padding: 4px 0 4px 26px;
  border-left: 4px solid var(--ea-gold);
  font-family: var(--ea-font-head);
  font-size: 1.25rem;
  line-height: 1.55;
  color: var(--ea-navy);
}
.ea-prose .ea-note { margin: 1.8em 0; }

.ea-article-meta {
  display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center;
  font-size: .875rem; color: var(--ea-text-muted);
}

.ea-toc {
  background: var(--ea-cream-soft);
  border: 1px solid var(--ea-border);
  border-radius: var(--ea-radius);
  padding: 26px 28px;
}
.ea-toc h2 { font-size: 1rem; font-family: var(--ea-font-body); text-transform: uppercase; letter-spacing: .1em; margin-bottom: .9em; }
.ea-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; counter-reset: toc; }
.ea-toc li { counter-increment: toc; display: flex; gap: 11px; font-size: .9375rem; line-height: 1.45; }
.ea-toc li::before { content: counter(toc) "."; color: var(--ea-gold-dark); font-weight: 700; flex-shrink: 0; }
.ea-toc a { color: var(--ea-navy); text-decoration: none; font-weight: 600; }
.ea-toc a:hover { color: var(--ea-gold-dark); text-decoration: underline; }

.ea-sidebar { position: sticky; top: 108px; display: flex; flex-direction: column; gap: 24px; }

/* Comparison table — plain semantic table, easily rebuilt in Elementor */
.ea-table-wrap { overflow-x: auto; border: 1px solid var(--ea-border); border-radius: var(--ea-radius); background: #fff; }
.ea-table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: .9688rem; }
.ea-table th, .ea-table td { padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--ea-border); vertical-align: top; }
.ea-table thead th { background: var(--ea-navy); color: #fff; font-weight: 700; font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; }
.ea-table tbody tr:last-child th, .ea-table tbody tr:last-child td { border-bottom: 0; }
.ea-table tbody th { font-weight: 700; color: var(--ea-navy); background: var(--ea-cream-soft); width: 30%; }
.ea-table tbody tr:nth-child(even) td { background: #FCFBF7; }

/* --------------------------------------------------------------------------
   15. CTA BANNER
   -------------------------------------------------------------------------- */
.ea-cta-banner {
  position: relative;
  background:
    radial-gradient(52% 88% at 84% 12%, rgba(242,178,61,.24) 0%, rgba(242,178,61,0) 66%),
    linear-gradient(140deg, #0B2D4D 0%, #14406C 100%);
  color: #fff;
  overflow: hidden;
}
.ea-cta-banner::after {
  content: "";
  position: absolute; left: -110px; bottom: -160px;
  width: 480px; height: 480px;
  background: url("../img/ever-ahead-icon.png") no-repeat center / contain;
  opacity: .06;
  pointer-events: none;
}
.ea-cta-banner .ea-container { position: relative; z-index: 2; }
.ea-cta-banner h2 { color: #fff; max-width: 20ch; }
.ea-cta-banner p { color: #C6D2DE; max-width: 56ch; }

/* --------------------------------------------------------------------------
   16. FOOTER  →  Elementor Theme Builder Footer
   -------------------------------------------------------------------------- */
.ea-footer { background: var(--ea-navy-800); color: #A9BCCD; padding-top: 72px; font-size: .9375rem; }
.ea-footer h2, .ea-footer h3 { color: #fff; }
.ea-footer__brand { flex: 1 1 320px; min-width: 260px; }
.ea-footer__logo img { width: 216px; margin-bottom: 20px; }
.ea-footer__desc { color: #A9BCCD; max-width: 44ch; line-height: 1.65; }
.ea-footer__cols { display: flex; flex-wrap: wrap; gap: 40px; flex: 2 1 520px; }
.ea-footer__col { flex: 1 1 150px; min-width: 140px; }
.ea-footer__col h3 {
  font-family: var(--ea-font-body);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ea-gold);
  margin-bottom: 18px;
}
.ea-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.ea-footer__col a { color: #C1CFDB; text-decoration: none; }
.ea-footer__col a:hover { color: #fff; text-decoration: underline; }

.ea-footer__disclosure {
  margin-top: 56px;
  padding: 22px 26px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: var(--ea-radius);
  font-size: .875rem;
  line-height: 1.65;
  color: #B4C4D2;
}
.ea-footer__disclosure a { color: var(--ea-gold); }

.ea-footer__bottom {
  margin-top: 34px;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 26px 0 34px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  align-items: center;
  justify-content: space-between;
  font-size: .875rem;
}
.ea-footer__legal { display: flex; flex-wrap: wrap; gap: 12px 22px; list-style: none; margin: 0; padding: 0; }
.ea-footer__legal a { color: #A9BCCD; text-decoration: none; }
.ea-footer__legal a:hover { color: #fff; text-decoration: underline; }

/* Image credits block */
.ea-credits { font-size: .8125rem; color: #8FA3B5; line-height: 1.6; margin-top: 18px; }
.ea-credits a { color: #A9BCCD; }

/* --------------------------------------------------------------------------
   17. 404
   -------------------------------------------------------------------------- */
.ea-404 { text-align: center; padding-top: 110px; padding-bottom: 110px; }
.ea-404__code {
  font-family: var(--ea-font-head);
  font-size: 6rem;
  line-height: 1;
  color: var(--ea-gold);
  margin-bottom: 10px;
}

/* --------------------------------------------------------------------------
   18. RESPONSIVE  —  breakpoints match Elementor defaults (1024 / 767)
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  :root { --ea-section-y: 72px; --ea-gap: 26px; --ea-gap-lg: 36px; }

  h1 { font-size: 2.625rem; }
  h2 { font-size: 2rem; }
  h3 { font-size: 1.375rem; }

  .ea-nav, .ea-header__cta .ea-btn { display: none; }
  .ea-burger { display: inline-flex; }
  .ea-mobile-nav { display: block; }
  .ea-overlay.is-open { display: block; }

  .ea-hero { padding-top: 72px; padding-bottom: 72px; }
  .ea-hero__inner .ea-row { gap: 40px; }
  .ea-hero::after { width: 420px; height: 420px; right: -120px; bottom: -140px; }

  .ea-quiz__head { padding: 26px 28px 0; }
  .ea-quiz__body { padding: 26px 28px 30px; }
  .ea-quiz__nav { padding: 20px 28px; }

  .ea-sidebar { position: static; }
  .ea-col-4 { flex: 1 1 calc(50% - (var(--ea-gap) / 2)); }
}

@media (max-width: 767px) {
  :root { --ea-section-y: 56px; --ea-gap: 20px; --ea-gap-lg: 28px; }

  body { font-size: 16.5px; }

  h1 { font-size: 2.125rem; line-height: 1.15; }
  h2 { font-size: 1.6875rem; }
  h3 { font-size: 1.25rem; }
  h4 { font-size: 1.0625rem; }

  .ea-container { padding-left: 20px; padding-right: 20px; }

  .ea-hero { padding-top: 52px; padding-bottom: 56px; }
  .ea-hero h1 { max-width: none; }
  .ea-hero__lead { font-size: 1.0625rem; }
  .ea-hero::after { width: 320px; height: 320px; right: -110px; bottom: -120px; opacity: .05; }
  .ea-hero--page { padding-top: 44px; padding-bottom: 46px; }

  .ea-lead { font-size: 1.0625rem; }

  /* Everything stacks — no side-by-side columns on phones */
  .ea-col-2, .ea-col-3, .ea-col-4,
  .ea-col-grow, .ea-col-5-7, .ea-col-7-5 { flex: 1 1 100%; min-width: 0; }

  .ea-btn { width: 100%; }
  .ea-btn-group { flex-direction: column; align-items: stretch; }
  .ea-btn--sm { width: auto; }

  .ea-header__inner { min-height: 72px; }
  .ea-header__logo img { width: 168px; }

  .ea-card { padding: 26px 22px; }
  .ea-card--media .ea-card__inner { padding: 22px 22px 24px; }

  .ea-quote { padding: 28px 24px; }
  .ea-quote blockquote { font-size: 1.1875rem; }

  .ea-accordion__trigger { padding: 18px 20px; font-size: 1rem; }
  .ea-accordion__panel { padding: 0 20px 22px; }

  .ea-quiz__head { padding: 22px 20px 0; }
  .ea-quiz__body { padding: 22px 20px 26px; }
  .ea-quiz__nav { padding: 18px 20px; }
  .ea-quiz__nav .ea-btn { width: 100%; }
  .ea-quiz__step h2 { font-size: 1.4375rem; }

  .ea-option { flex: 1 1 100%; min-width: 0; }

  .ea-step { gap: 16px; }
  .ea-step__num { width: 48px; height: 48px; font-size: 1.25rem; }

  .ea-stat__num { font-size: 2.25rem; }

  .ea-trust__row { gap: 16px; }
  .ea-trust__item { flex: 1 1 100%; }

  .ea-footer { padding-top: 52px; }
  .ea-footer__cols { gap: 30px; }
  .ea-footer__col { flex: 1 1 132px; }
  .ea-footer__bottom { flex-direction: column; align-items: flex-start; }

  .ea-404 { padding-top: 70px; padding-bottom: 70px; }
  .ea-404__code { font-size: 4.25rem; }

  .ea-prose > h2 { font-size: 1.5rem; }
  .ea-prose > h3 { font-size: 1.1875rem; }
  .ea-prose blockquote { font-size: 1.125rem; padding-left: 20px; }
}

/* --------------------------------------------------------------------------
   19. MOTION / PRINT
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

@media print {
  .ea-header, .ea-footer, .ea-cta-banner, .ea-burger, .ea-mobile-nav, .ea-overlay { display: none !important; }
  body { font-size: 12pt; }
  .ea-section { padding: 18pt 0; }
}
