/*
Theme Name:  Electrical Workers FCU
Description: Kadence child theme for Electrical Workers 558 Federal Credit Union. Brand layer, rate engine, and hero block.
Template:    kadence
Author:      Electrical Workers 558 FCU
Version:     1.0.0
Text Domain: kadence-ewfcu
*/

/* ==========================================================================
   Electrical Workers 558 FCU — child theme brand layer
   Theme: Kadence (child)  ·  Host: Kinsta  ·  v1.0

   WHERE THIS GOES
   Child theme  →  wp-content/themes/kadence-ewfcu/style.css
   (Generate the child theme with Kadence Child Theme Builder first.)
   Do NOT paste this into Customizer → Custom CSS. The child theme file is
   version-controllable, has no character limit, and survives theme updates.

   NO PATH SETUP NEEDED.
   The paper texture and the rule bolt ship inside the theme at
   assets/img/ and are referenced relative to this stylesheet. Logos,
   photos, and compliance marks live in the Media Library as usual.

   THE PALETTE IS NOT DUPLICATED HERE.
   Every brand color reads from Kadence's Global Palette, so changing a
   color in the Customizer changes it everywhere. Set the palette
   (Accents / Contrast / Base) per the runbook (Phase 1) before judging
   any color on the site.
   ========================================================================== */

:root {
  /* --- Brand palette: aliases onto Kadence Global Colors ---
     Verified against the live site's computed styles (console table):
     Accents 1-2 = palette1-2, Contrast = palette3-6, Base = palette7-9,
     and the added third accent (gold) = palette10.
     Fallback hexes only apply if the palette slot is undefined. */
  --ew-blue:        var(--global-palette1,  #00539F);  /* Accent 1  */
  --ew-red:         #D9363A;  /* v1.84 — button red, white text 4.6:1 (was Kadence palette 2, #E03A3E) */
  --ew-gold:        var(--global-palette10, #CFA35C);  /* Accent 3 — appended slot */
  --ew-ink:         var(--global-palette3,  #1C1C1C);  /* Contrast 1 */
  --ew-blue-deep:   var(--global-palette4,  #002D57);  /* Contrast 2 */
  --ew-ink-muted:   var(--global-palette5,  #5A5A5A);  /* Contrast 3 */
  --ew-ink-faint:   var(--global-palette6,  #9E9E9E);  /* Contrast 4 */
  --ew-cream:       var(--global-palette7,  #F5F0E8);  /* Base 1    */
  --ew-cream-deep:  var(--global-palette8,  #EDE8DF);  /* Base 2    */

  /* Values with no palette slot (hover deeps, rare tints) */
  --ew-blue-sky:    #6B9FCC;
  --ew-red-deep:    #861517;
  --ew-gold-deep:   #A87D3A;
  --ew-line:        #D8D3CA;
  --ew-line-soft:   #E8E3DC;

  /* Gold fails WCAG AA as text on cream. This is the darkened gold used
     for every eyebrow, label, and rate suffix on a light background.
     Never use --ew-gold for text on cream. */
  --ew-gold-text:   #7A5920;

  /* Hero / dark-band gradient — the one piece of shine the brand allows */
  --ew-gradient-hero: linear-gradient(160deg, #005CAE 0%, #00539F 40%, #00427E 100%);
  --ew-gradient-deep: linear-gradient(160deg, #00539F 0%, #002D57 55%, #001A33 100%);

  /* Texture — TIGHT tile. Never scale this up; large reads as fake. */
  --ew-texture-paper: url('assets/img/texture-paper.png');
  --ew-texture-tile:  200px;

  /* Type */
  --ew-font-display: 'Arvo', Georgia, serif;
  --ew-font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  /* Layout — content width matches the approved design */
  --ew-content:      1200px;
  --ew-gutter:       40px;
  --ew-ease:         cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   1 · BASE
   ========================================================================== */

body {
  background-color: var(--ew-cream);
  color: var(--ew-ink);
  font-family: var(--ew-font-body);
  font-size: 18px;
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.ew-display {
  font-family: var(--ew-font-display);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ew-blue);
  text-wrap: balance;
}

p { text-wrap: pretty; }

/* Gold emphasis word inside a headline. Switch color, never italic-bold. */
.ew-display em,
.ew-gold-word,
h1 .ew-gold-word, h2 .ew-gold-word {
  color: var(--ew-gold);
  font-style: normal;
}
/* On cream, the emphasis word needs the darkened gold */
.ew-paper .ew-gold-word,
.ew-on-cream .ew-gold-word { color: var(--ew-gold-text); }

/* Links — defined globally so editor-added links are never browser blue */
a { color: var(--ew-blue); text-decoration-color: var(--ew-line); }
a:hover { color: var(--ew-blue-deep); }
.ew-paper-dark a { color: #fff; }
.ew-paper-dark a:hover { color: var(--ew-gold); }

/* Content container: force Kadence rows to the approved 1200px */
.ew-container,
.entry-content > .alignwide { max-width: var(--ew-content); margin-inline: auto; }

/* ==========================================================================
   2 · TEXTURE  —  add as Row → Advanced → CSS Class
   One material everywhere: pressed-paper tooth on cream AND on blue.
   Do not introduce a second grain.
   ========================================================================== */

.ew-paper {
  background-color: var(--ew-cream);
  background-image: var(--ew-texture-paper);
  background-size: var(--ew-texture-tile);
}
.ew-paper--deep { background-color: var(--ew-cream-deep); }
.ew-paper--gold { background-color: var(--ew-gold); color: #2A1F0A; }
.ew-paper--gold h2, .ew-paper--gold h3 { color: var(--ew-blue); }
.ew-paper--gold .ew-eyebrow { color: #7A5920; }

.ew-paper-dark { position: relative; background: var(--ew-gradient-deep); color: #fff; }
.ew-paper-dark::before {
  content: ''; position: absolute; inset: 0;
  background-image: var(--ew-texture-paper);
  background-size: var(--ew-texture-tile);
  pointer-events: none; z-index: 0;
}
.ew-paper-dark > * { position: relative; z-index: 1; }
.ew-paper-dark h1, .ew-paper-dark h2, .ew-paper-dark h3 { color: #fff; }
.ew-paper-dark .ew-gold-word { color: var(--ew-gold); }

/* ==========================================================================
   3 · HERO  —  the bolt divider
   Structure (rendered by the ACF hero block, blocks/ew-hero/render.php):

   .ew-hero
     .ew-hero__photo      full-size, clip-path cuts the bolt notch at 60%
       .ew-hero__img      the photograph, parallaxed
     .ew-hero__flash      gold lightning, revealed on hover only
     .ew-hero__inner      headline + buttons, left 60%

   The clip-path polygon IS the bolt. Do not "tidy" these numbers — they
   are the approved silhouette, matched to the logo's ascending bolt.
   ========================================================================== */

.ew-hero {
  position: relative;
  overflow: hidden;
  background: var(--ew-gradient-hero);
  color: #fff;
  /* Full-bleed breakout: spans the whole viewport no matter what
     container the editor puts it in — no alignment setting needed. */
  width: 100vw;
  max-width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}


/* The pressed-paper tooth over the whole hero — photo included — same as
   the approved preview. Tight tile; never scale it up. */
.ew-hero::before {
  content: ''; position: absolute; inset: 0 0 5px 0;
  background-image: var(--ew-texture-paper);
  background-size: var(--ew-texture-tile);
  pointer-events: none; z-index: 1;
}
.ew-hero__strike, .ew-hero__bloomwrap { z-index: 1; }

.ew-hero__photo {
  position: absolute; top: 0; right: 0; bottom: 5px; left: 0;
  clip-path: polygon(60% 0%, 100% 0%, 100% 100%, 60% 100%,
                     64.5% 66%, 57.75% 66%, 62.25% 33%, 55.5% 33%);
  pointer-events: none;
}
.ew-hero__img {
  position: absolute; left: 53%; right: 0; top: -3%; height: 106%;
  object-fit: cover; width: auto; min-width: 47%;
  /* Warms the photo so any supplied image sits in the brand's paper world */
  filter: sepia(0.18) saturate(0.85) contrast(1.05);
  will-change: transform;
}
/* Scrim: melts the photo's left edge into the blue so the headline keeps
   contrast no matter what photo is supplied. */
.ew-hero__photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(0,26,51,0.45) 52%, rgba(0,26,51,0) 70%);
}

/* The static gold lightning line tracing the bolt edge — always visible.
   Path matches the clip polygon (60% / ±4.5% steps) in a 1000×600 box. */
.ew-hero__strike { position: absolute; top: 0; right: 0; bottom: 5px; left: 0; pointer-events: none; }
.ew-hero__strike svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ew-hero__strike path {
  fill: none; stroke: var(--ew-gold); stroke-width: 1px; opacity: 0.9;
  filter: drop-shadow(0 0 3px rgba(207,163,92,0.5));
}

/* Cursor-tracking gold bloom along the bolt (positioned by ewfcu-site.js).
   Sits under the content, over the photo; screen blend keeps it luminous. */
.ew-hero__bloomwrap {
  position: absolute; top: 0; right: 0; bottom: 5px; left: 0;
  overflow: hidden; pointer-events: none;
}
.ew-hero__bloom {
  position: absolute; top: 0; bottom: 0; left: 60%;
  width: 520px; margin-left: -260px;
  background: radial-gradient(closest-side ellipse at 50% 50%,
    rgba(245,212,154,0.5) 0%, rgba(207,163,92,0.24) 42%, rgba(207,163,92,0) 78%);
  mix-blend-mode: screen; opacity: 0;
}

/* The bolt strike — fired by ewfcu-site.js once ~1s after load, and again
   whenever the cursor crosses the bolt line. Values are copied verbatim
   from the approved homepage mockup. */
@keyframes ewBoltStrike {
  0% { stroke-width:1px;stroke:var(--ew-gold);opacity:0.9;filter:drop-shadow(0 0 3px rgba(207,163,92,0.5)); }
  10% { stroke-width:5px;stroke:#F5D49A;opacity:1;filter:drop-shadow(0 0 17px rgba(245,212,154,0.95)) drop-shadow(0 0 40px rgba(207,163,92,0.6)); }
  34% { stroke-width:3.2px;stroke:#F5D49A;opacity:1;filter:drop-shadow(0 0 10px rgba(245,212,154,0.95)) drop-shadow(0 0 23px rgba(207,163,92,0.6)); }
  62% { stroke-width:1.5px;stroke:#F5D49A;opacity:0.92;filter:drop-shadow(0 0 4px rgba(245,212,154,0.95)) drop-shadow(0 0 9px rgba(207,163,92,0.6)); }
  100% { stroke-width:1px;stroke:var(--ew-gold);opacity:0.9;filter:drop-shadow(0 0 3px rgba(207,163,92,0.5)); }
}
@keyframes ewBoltStrikeBloom {
  0% { opacity: 0; }
  12% { opacity: 0.95; }
  55%, 100% { opacity: 0; }
}

/* The 5px Union Red base bar — the hero's bottom edge. The photo layer's
   bottom: 5px exists precisely to leave room for this. */
.ew-hero__bar { position: relative; z-index: 2; height: 5px; background: var(--ew-red); }

.ew-hero__inner {
  position: relative; z-index: 2;
  max-width: var(--ew-content);
  margin: 0 auto;
  padding: 92px var(--ew-gutter) 100px;
  /* Matches the mockup: text lives in a 600px column with clear air
     before the bolt notch — nothing may run into the lightning. */
  display: grid;
  grid-template-columns: minmax(0, 600px) 1fr;
}
.ew-hero__inner > * { grid-column: 1; min-width: 0; }
.ew-hero__eyebrow {
  font-size: 18px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--ew-gold);
  margin-bottom: 18px;
}
.ew-hero h1 {
  font-size: 60px; line-height: 1.1; margin: 0;
  color: #fff;
}
/* The one gold phrase in the headline — editors wrap it in <em> */
.ew-hero h1 em, .ew-hero h1 i { font-style: italic; color: var(--ew-gold); }
.ew-hero .ew-hero__inner .ew-hero__sub {
  font-size: 18px; line-height: 1.7;
  /* !important: Kadence's entry-content paragraph rules otherwise win */
  margin: 32px 0 0 !important;
  max-width: 560px; color: rgba(255,255,255,0.82);
}
.ew-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* ==========================================================================
   4 · RATE BAND
   Numbers come from the ACF Rates options page via [ew_rate].
   Never type a rate into this section by hand.
   ========================================================================== */

.ew-rateband { border-bottom: 1px solid var(--ew-line-soft); }
.ew-rateband__inner {
  max-width: var(--ew-content); margin: 0 auto;
  padding: 54px var(--ew-gutter) 58px;
  /* Flexible: any number of figures shares the row evenly and wraps
     cleanly; the link rides the right edge. */
  display: flex; flex-wrap: wrap; align-items: center; row-gap: 36px;
}
.ew-rate { flex: 1 1 0; min-width: 210px; padding: 0 44px; border-left: 1px solid var(--ew-line); }
.ew-rate:first-child { padding-left: 0; border-left: 0; }
.ew-rateband .ew-link { margin-left: auto; padding-left: 44px; white-space: nowrap; }
.ew-rate__label {
  font-size: 18px; font-weight: 700; letter-spacing: 0.14em;
  color: var(--ew-ink-muted); white-space: nowrap; text-transform: uppercase;
}
.ew-rate__figure {
  font-family: var(--ew-font-display); font-weight: 700; font-size: 44px;
  color: var(--ew-blue); margin-top: 10px; line-height: 1;
}
.ew-rate__suffix { font-size: 24px; color: var(--ew-gold-text); }

/* Gold-underlined text link, used across the page */
.ew-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 18px; font-weight: 700; letter-spacing: 0.04em;
  color: var(--ew-blue); text-decoration: none;
  padding-bottom: 5px; border-bottom: 2px solid var(--ew-gold);
  transition: color 0.2s ease, transform 0.25s var(--ew-ease);
}
.ew-link:hover { color: var(--ew-blue-deep); transform: translateX(5px); }
.ew-link--bare { border-bottom: 0; padding-bottom: 0; }

/* ==========================================================================
   5 · CARDS
   ========================================================================== */

.ew-card {
  background: #fff; border: 0.5px solid var(--ew-line-soft);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,45,87,0.07);
  transition: box-shadow 0.25s ease, transform 0.25s var(--ew-ease);
  display: flex; flex-direction: column;
}
.ew-card:hover { box-shadow: 0 8px 28px rgba(0,45,87,0.12); transform: translateY(-3px); }
.ew-card__media { aspect-ratio: 16 / 9; overflow: hidden; }
.ew-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ew-card__body { padding: 28px 32px 32px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ew-card__body h3 { font-size: 22px; margin: 0; }
.ew-card__body p { font-size: 18px; color: var(--ew-ink-muted); margin: 0 0 10px; }
.ew-card__body .ew-link { margin-top: auto; align-self: flex-start; }

/* Callout note — gold left border */
.ew-note { border-left: 3px solid var(--ew-gold); padding: 18px 24px; background: #fff; border-radius: 6px; }

/* ==========================================================================
   6 · SECTION RHYTHM  +  eyebrow / chapter marker
   ========================================================================== */

.ew-section { padding: 84px 0 92px; }
.ew-section__inner { max-width: var(--ew-content); margin: 0 auto; padding: 0 var(--ew-gutter); }
.ew-section__head { max-width: 840px; margin-bottom: 44px; }
.ew-section__head h2 { font-size: 36px; margin: 12px 0; }
.ew-section__head p { font-size: 18px; color: var(--ew-ink-muted); margin: 0; }

.ew-eyebrow {
  font-family: var(--ew-font-body);
  font-size: 18px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--ew-gold-text);
}
.ew-paper-dark .ew-eyebrow { color: var(--ew-gold); }

/* Leveled bolt as a divider cap before a gold rule */
.ew-rule { display: flex; align-items: center; gap: 10px; }
.ew-rule::before {
  content: ''; width: 70px; height: 22px; flex: 0 0 auto;
  background: url('assets/img/bolt-rule.png') no-repeat left center / contain;
}
.ew-rule::after { content: ''; flex: 1; height: 2px; background: var(--ew-gold); }

/* ==========================================================================
   7 · FULL-BLEED SPLIT  (Membership, Heritage)
   Photo pinned to one edge, text in the 1200px container. Mirrored pair.
   ========================================================================== */

.ew-split { position: relative; overflow: hidden; }
.ew-split__photo { position: absolute; top: 0; bottom: 0; width: 34%; overflow: hidden; }
.ew-split__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ew-split--left  .ew-split__photo { left: 0; }
.ew-split--right .ew-split__photo { right: 0; }

.ew-split__inner {
  position: relative; z-index: 2;
  max-width: var(--ew-content); margin: 0 auto;
  padding: 78px var(--ew-gutter) 84px;
  display: grid; gap: 56px; align-items: center;
}
.ew-split--left  .ew-split__inner { grid-template-columns: 34% 1fr; }
.ew-split--right .ew-split__inner { grid-template-columns: 1fr 34%; }
.ew-split--left  .ew-split__body { grid-column: 2; }

/* Oversized emblem watermark. One per surface, never with a bolt. */
.ew-split__mark {
  position: absolute; right: -140px; top: 50%; transform: translateY(-50%);
  height: 760px; width: auto; opacity: 0.55; pointer-events: none; z-index: 1;
}

/* ==========================================================================
   8 · MEMBER REVIEWS ROTATOR
   Markup: wp/patterns/reviews-rotator.html · behaviour: ewfcu-site.js.
   Photo left (224×272), big Arvo quote right with ONE gold phrase, red
   quotation mark. The pause control is required, not decorative — a
   moving region with no visible pause fails WCAG 2.2.2. The red quote
   glyph is part of the approved design and is a glyph, not a CTA; the
   hero button remains the page's one red action.
   ========================================================================== */

.ew-reviews { background: var(--ew-cream-deep); border-top: 1px solid var(--ew-line-soft); }

.ew-reviews-head { display: flex; align-items: center; gap: 14px; margin-bottom: 30px; }
.ew-reviews-stars { display: inline-flex; gap: 3px; }
.ew-reviews-stars svg { width: 19px; height: 19px; fill: var(--ew-gold); }

.ew-reviews-rotator { display: grid; min-height: 280px; }
.ew-reviews-rotator > .ew-review {
  grid-area: 1 / 1; margin: 0;
  opacity: 0; pointer-events: none;
  transition: opacity 0.9s var(--ew-ease);
  display: grid; grid-template-columns: 224px 1fr; gap: 48px; align-items: center;
}
.ew-reviews-rotator > .ew-review.is-current { opacity: 1; pointer-events: auto; }

.ew-review__photo { width: 224px; height: 272px; object-fit: cover; border-radius: 10px; display: block; }
.ew-review__mark {
  font-family: var(--ew-font-display); font-weight: 700;
  font-size: 64px; line-height: 0.42; color: var(--ew-red); margin: 0 0 2px;
}
.ew-review__quote {
  font-family: var(--ew-font-display); font-weight: 700;
  font-size: 34px; line-height: 1.36; color: var(--ew-blue); margin: 0;
}
.ew-review__gold { color: var(--ew-gold-deep); }
.ew-review__who { display: flex; align-items: baseline; gap: 12px; margin-top: 26px; }
.ew-review__name { font-family: var(--ew-font-display); font-weight: 700; font-size: 22px; color: var(--ew-ink); }
.ew-review__tag {
  font-size: 18px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ew-gold-text);
}

/* Controls — injected by ewfcu-site.js directly after the rotator */
.ew-rotator-controls { display: flex; align-items: center; gap: 16px; margin-top: 30px; }
.ew-rotator-pause {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0;
  border: 1.5px solid var(--ew-line); border-radius: 50%;
  background: transparent; cursor: pointer;
  transition: border-color 0.18s ease;
}
.ew-rotator-pause svg { fill: var(--ew-blue); }
.ew-rotator-pause:hover { border-color: var(--ew-blue); }
.ew-rotator-dots { display: flex; gap: 4px; }
.ew-rotator-dot {
  width: 28px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.ew-rotator-dot span {
  width: 10px; height: 10px; border-radius: 50%;
  border: 1.5px solid var(--ew-blue); background: transparent;
  transition: background 0.18s ease;
}
.ew-rotator-dot.is-on span { background: var(--ew-blue); }

/* ==========================================================================
   9 · BUTTONS
   Red = the single highest-priority action on a view. One per screen.
   On the homepage that is "Apply for a Loan" in the hero. The header CTA
   is blue precisely so the hero's red stays the only red.
   ========================================================================== */

.wp-block-button__link,
.kb-button {
  /* Self-sufficient: styled fully here so the hero's buttons do not depend
     on Kadence Blocks' CSS being enqueued on the page. */
  display: inline-flex; align-items: center; justify-content: center;
  padding: 12px 24px; min-height: 44px;
  font-family: var(--ew-font-body); font-weight: 700; font-size: 16px;
  letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; line-height: 1.2;
  border-radius: 4px; border: 0;
  transition: background 0.18s ease, color 0.18s ease;
}
.ew-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }
.ew-hero__actions a { text-decoration: none; }

.ew-btn-red   .wp-block-button__link, .kb-button.ew-btn-red   { background: var(--ew-red, #D9363A);  color: #fff; }
.ew-btn-red   .wp-block-button__link:hover, .kb-button.ew-btn-red:hover   { background: var(--ew-red-deep); color: #fff; }
.ew-btn-blue  .wp-block-button__link, .kb-button.ew-btn-blue  { background: var(--ew-blue); color: #fff; }
.ew-btn-blue  .wp-block-button__link:hover, .kb-button.ew-btn-blue:hover  { background: var(--ew-blue-deep); color: #fff; }
.ew-btn-gold  .wp-block-button__link, .kb-button.ew-btn-gold  { background: var(--ew-gold); color: var(--ew-blue-deep); }
.ew-btn-gold  .wp-block-button__link:hover, .kb-button.ew-btn-gold:hover  { background: var(--ew-gold-deep); color: #fff; }
.ew-btn-ghost .wp-block-button__link, .kb-button.ew-btn-ghost {
  background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.6);
}
.ew-btn-ghost .wp-block-button__link:hover, .kb-button.ew-btn-ghost:hover { background: #fff; color: var(--ew-blue); }

/* ==========================================================================
   10 · HEADER + MEGA MENU  (Kadence Header Builder / Ultimate Menu)
   Mega panels are CREAM with blue text so they read as paper dropped over
   the blue nav — not as more nav.
   ========================================================================== */

.site-header-row .kadence-mega-menu,
.kadence-menu-mega-enabled > .sub-menu {
  background-color: var(--ew-cream) !important;
  background-image: var(--ew-texture-paper);
  background-size: var(--ew-texture-tile);
  border-top: 2px solid var(--ew-gold);
  box-shadow: 0 12px 32px rgba(0,45,87,0.16);
  color: var(--ew-ink);
}
.kadence-mega-menu a { color: var(--ew-ink); }
.kadence-mega-menu a:hover { color: var(--ew-blue); }
.kadence-mega-menu .ew-eyebrow { margin-bottom: 4px; }

/* Mega column list rows */
.ew-mega-link {
  display: block; padding: 12px 0;
  border-bottom: 1px solid var(--ew-line);
  text-decoration: none; color: var(--ew-ink);
  transition: transform 0.28s var(--ew-ease);
}
.ew-mega-link:hover { transform: translateX(4px); }
.ew-mega-link__title { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; }
.ew-mega-link__desc  { display: block; margin: 3px 0 0 34px; font-size: 15px; color: var(--ew-ink-muted); }

/* Mega panel's right rail (photo + button) */
.ew-mega-rail { background: var(--ew-cream-deep); border-left: 1px solid var(--ew-line); padding: 26px 32px 30px; }

/* Announcement bar (Hooked Element above header) */
.ew-announce {
  background: var(--ew-blue-deep); color: #fff;
  font-size: 15px; letter-spacing: 0.04em; text-align: center; padding: 10px 20px;
}
.ew-announce a { color: var(--ew-gold); text-decoration: underline; }

/* ==========================================================================
   11 · FOOTER + DISCLOSURES
   ========================================================================== */

.ew-disclosures {
  background: var(--ew-cream-deep);
  border-top: 1px solid var(--ew-line);
  font-size: 15px; line-height: 1.65; color: var(--ew-ink-muted);
}
.ew-disclosures__inner { max-width: var(--ew-content); margin: 0 auto; padding: 40px var(--ew-gutter) 48px; }
.ew-disclosures h4 { font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ew-ink); font-family: var(--ew-font-body); margin: 0 0 10px; }
.ew-disclosures p { margin: 0 0 10px; }

.ew-compliance { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.ew-compliance img { height: 46px; width: auto; }

/* ==========================================================================
   12 · SCROLL REVEAL  (driven by ewfcu-site.js)
   Quiet and editorial: 24px rise + fade, staggered. No parallax on mobile,
   no bounce, nothing loops.
   ========================================================================== */

.ew-reveal { opacity: 0; transform: translateY(24px); }
.ew-reveal.is-in {
  opacity: 1; transform: none;
  transition: opacity 0.8s var(--ew-ease), transform 0.8s var(--ew-ease);
}

/* ==========================================================================
   13 · RESPONSIVE
   The bolt notch is a desktop device — it needs the full-width hero to
   read. Below 1200px the photo goes to a normal 16:9 band above the copy;
   a squeezed notch is visual noise, not a bolt.
   ========================================================================== */

@media (max-width: 1200px) {
  .ew-hero { display: flex; flex-direction: column-reverse; }
  
/* The pressed-paper tooth over the whole hero — photo included — same as
   the approved preview. Tight tile; never scale it up. */
.ew-hero::before {
  content: ''; position: absolute; inset: 0 0 5px 0;
  background-image: var(--ew-texture-paper);
  background-size: var(--ew-texture-tile);
  pointer-events: none; z-index: 1;
}
.ew-hero__strike, .ew-hero__bloomwrap { z-index: 1; }

.ew-hero__photo {
    position: relative; inset: auto; width: 100%; aspect-ratio: 16 / 9;
    clip-path: none;
  }
  .ew-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; }
  .ew-hero__flash, .ew-hero__strike, .ew-hero__bloomwrap { display: none; }
  /* column-reverse flips the red base bar to the top — pin it back to the
     visual bottom (in column-reverse, the lowest order renders last/bottom) */
  .ew-hero__bar { order: -1; }
  /* Any parallax offset left on the img when the layout flips */
  .ew-hero__img { transform: none !important; }
  .ew-hero h1 { font-size: 40px; }
  .ew-hero__inner { padding: 56px 24px 64px; }

  .ew-rateband__inner { padding: 40px 24px 44px; row-gap: 28px; }
  .ew-rate, .ew-rate:first-child { flex: 1 1 40%; padding: 0 24px; border-left: 1px solid var(--ew-line); }
  .ew-rate:nth-child(odd) { padding-left: 0; border-left: 0; }
  .ew-rateband .ew-link { flex-basis: 100%; margin-left: 0; padding-left: 0; }

  .ew-split__photo { position: relative; width: 100%; height: 320px; }
  .ew-split__inner,
  .ew-split--left .ew-split__inner,
  .ew-split--right .ew-split__inner { grid-template-columns: 1fr; padding: 56px 24px 64px; gap: 28px; }
  .ew-split--left .ew-split__body { grid-column: 1; }
  .ew-split__mark { display: none; }

  .ew-reviews-rotator > .ew-review { grid-template-columns: 120px 1fr; gap: 24px; align-items: start; }
  .ew-review__photo { width: 120px; height: 146px; }
  .ew-review__quote { font-size: 24px; }

  .ew-section { padding: 56px 0 64px; }
  .ew-section__inner, .ew-disclosures__inner { padding-inline: 24px; }
  .ew-section__head h2 { font-size: 30px; }
}

@media (max-width: 600px) {
  body { font-size: 17px; }
  .ew-hero h1 { font-size: 32px; }
  .ew-rate, .ew-rate:first-child { flex-basis: 100%; }
  .ew-rate, .ew-rate:first-child, .ew-rate:nth-child(odd) {
    padding: 0 0 20px; border-left: 0; border-bottom: 1px solid var(--ew-line);
  }
  .ew-reviews-rotator > .ew-review { grid-template-columns: 1fr; }
  .ew-review__quote { font-size: 21px; }
  /* Never let a tap target fall under 44px */
  .wp-block-button__link, .kb-button { min-height: 44px; }
}

/* ==========================================================================
   14 · ACCESSIBILITY
   ========================================================================== */

/* v1.12 — the focus ring belongs on controls, not on whole sections
   (anchor jumps + shift/tab were drawing a page-wide gold outline) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 3px solid var(--ew-gold); outline-offset: 2px;
}
.ew-paper-dark a:focus-visible, .ew-paper-dark button:focus-visible,
.ew-paper-dark input:focus-visible, .ew-paper-dark select:focus-visible { outline-color: #fff; }
section:focus, section:focus-visible,
.wp-block-kadence-rowlayout:focus, .wp-block-kadence-rowlayout:focus-visible,
.entry-content [id]:target { outline: none !important; }

@media (prefers-reduced-motion: reduce) {
  .ew-reveal { opacity: 1; transform: none; transition: none; }
  .ew-hero__strike path { animation: none !important; }
  .ew-hero__bloom { display: none; }
  .ew-reviews-rotator > .ew-review { transition: none; }
  .ew-hero:hover .ew-hero__flash { animation: none; }
  .ew-hero__img { transform: none !important; }
  .ew-card:hover { transform: none; }
  * { scroll-behavior: auto !important; }
}

/* ==========================================================================
   15 · EDITOR PARITY
   Makes the block editor show the brand instead of white-and-Times, so
   staff editing the homepage see roughly what visitors see.
   Kadence loads style.css in the editor when the child theme declares it.
   ========================================================================== */

.editor-styles-wrapper { background-color: var(--ew-cream); font-family: var(--ew-font-body); }
.editor-styles-wrapper h1,
.editor-styles-wrapper h2,
.editor-styles-wrapper h3 { font-family: var(--ew-font-display); color: var(--ew-blue); }

/* PRINT — members do print rate sheets */
@media print {
  .ew-hero__photo, .ew-split__photo, .ew-split__mark,
  .ew-announce, .ew-rotator-controls, .site-header, .site-footer { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .ew-hero, .ew-paper-dark { background: #fff !important; color: #000 !important; }
  .ew-hero h1, .ew-paper-dark h2 { color: #000 !important; }
}


/* ==========================================================================
   OFFER CARDS (EWFCU Offer Cards block)
   ========================================================================== */
.ew-offer-wrap { max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 0 var(--ew-gutter, 24px); }
.ew-offer-intro { max-width: 760px; font-size: 18px; line-height: 1.7; color: var(--ew-ink-muted); margin: 14px 0 0; }
.ew-offer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; margin-top: 44px; }
.ew-offer-card {
  background: #fff; border: 0.5px solid var(--ew-line-soft); border-radius: 10px;
  overflow: hidden; box-shadow: 0 2px 12px rgba(0,45,87,0.07);
  display: flex; flex-direction: column;
}
.ew-offer-card__img { aspect-ratio: 16 / 9; width: 100%; height: auto; object-fit: cover; display: block; }
.ew-offer-card__body { padding: 24px 26px 28px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.ew-offer-card__body h3 { margin: 0; color: var(--ew-blue); font-size: 26px; }
.ew-offer-card__body p { margin: 0; color: var(--ew-ink-muted); font-size: 18px; line-height: 1.6; }
.ew-offer-card__body .ew-link { margin-top: auto; align-self: flex-start; font-size: 18px; }
@media (max-width: 700px) { .ew-offer-grid { grid-template-columns: 1fr; } }

/* Offer section escapes the content box to run full-bleed */
.ew-offer { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* Membership (blue split) refinements — matches approved mockup */
.ew-split--left { background: linear-gradient(160deg, #0060B4 0%, #00539F 55%, #003E77 100%); }
.ew-split--left .ew-split__body h2::after {
  content: ""; display: block; width: 48px; height: 4px;
  background: var(--ew-red, #E03A3E); margin-top: 18px;
}
.ew-split__cta { margin-top: 36px !important; }
.ew-split__mark {
  position: absolute; right: 4%; top: 50%; transform: translateY(-50%);
  width: min(30vw, 480px); opacity: 0.1; pointer-events: none;
}
.ew-btn-red { background: var(--ew-red, #E03A3E) !important; color: #fff !important; }
.ew-btn-red:hover { background: #B02A2E !important; }
@media (max-width: 1023px) { .ew-split__mark { display: none; } }

/* Split section escapes the content box to run full-bleed; photo crops, never distorts */
.ew-split { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.ew-split__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Stat column ($25 is all it takes) + gold check bullets */
.ew-split--left .ew-split__inner.has-stat { grid-template-columns: 34% 1.15fr 0.85fr; }
.ew-split--left .ew-split__inner.has-stat .ew-split__body { grid-column: 2; }
.ew-split__statcol { grid-column: 3; text-align: center; position: relative; z-index: 2; }
.ew-split__statval {
  font-family: var(--ew-font-display); font-weight: 700;
  font-size: 96px; line-height: 1; color: var(--ew-gold, #CFA35C);
}
.ew-split__statcap { font-size: 18px; color: rgba(255,255,255,0.9); margin-top: 10px; }
.ew-split__statcol .ew-split__cta { margin-top: 28px !important; }
.ew-split--left .ew-split__body ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 13px; }
.ew-split--left .ew-split__body ul li { position: relative; padding-left: 30px; font-size: 18px; line-height: 1.6; color: rgba(255,255,255,0.9); }
.ew-split--left .ew-split__body ul li::before {
  content: "\2713"; position: absolute; left: 0; top: 0;
  color: var(--ew-gold, #CFA35C); font-weight: 700;
}
@media (max-width: 1023px) {
  .ew-split--left .ew-split__inner.has-stat { grid-template-columns: 1fr; }
  .ew-split--left .ew-split__inner.has-stat .ew-split__body, .ew-split__statcol { grid-column: 1; }
  .ew-split__statcol { text-align: left; }
  .ew-split__statval { font-size: 64px; }
}

/* v0.25 fixes: watermark aspect + darkness, rule geometry */
.ew-split__mark { width: min(28vw, 460px); height: auto !important; object-fit: contain; opacity: 0.55; }
.ew-split--left .ew-split__body h2 { margin-bottom: 8px; }
.ew-split--left .ew-split__body h2::after {
  width: 56px; height: 4px; margin-top: 10px; margin-bottom: 14px;
}

/* v0.26: watermark oversized and bleeding off the right edge, like the mockup */
.ew-split__mark {
  right: -7% !important; top: 50% !important; transform: translateY(-50%) !important;
  width: min(42vw, 680px) !important; max-width: none;
  opacity: 0.5;
}

/* v0.28: tighten eyebrow-to-headline gap to match mockup */
.ew-split__body .ew-eyebrow { margin-bottom: 0; }
.ew-split__body h2 { margin-top: 14px; }

/* v0.29: bigger watermark per mockup; eyebrow/headline rhythm everywhere */
.ew-split__mark {
  width: min(54vw, 900px) !important;
  right: -12% !important;
  opacity: 0.5;
}
.ew-eyebrow { margin-bottom: 0 !important; }
.ew-eyebrow + h1, .ew-eyebrow + h2, .ew-eyebrow + h3 { margin-top: 14px !important; }

/* v0.31: reviews section full-bleed; dots match mockup (pill active, soft round inactive) */
.ew-reviews { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.ew-rotator-dot span {
  width: 12px; height: 12px; border: 0 !important; border-radius: 999px;
  background: #D8D3CA; transition: all 0.25s ease;
}
.ew-rotator-dot.is-on span { width: 38px; background: var(--ew-blue, #00539F); }

/* v0.32: pull-quote styling — use the blockquote button in the Body field */
.ew-split__body blockquote {
  margin: 26px 0 0; padding: 0; border: 0;
  font-family: var(--ew-font-display, 'Arvo', Georgia, serif);
  font-style: italic; font-weight: 700;
  font-size: 22px; line-height: 1.5;
}
.ew-split--right .ew-split__body blockquote { color: var(--ew-blue, #00539F); }
.ew-split--left .ew-split__body blockquote { color: #F5D49A; }
.ew-split__body blockquote p { margin: 0; font: inherit; color: inherit; }

/* ==========================================================================
   REACH US (EWFCU Reach Us block)
   ========================================================================== */
.ew-reach { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); background: var(--ew-cream); border-top: 1px solid var(--ew-line-soft); }
.ew-reach__grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 72px; align-items: center; }
.ew-eyebrow--gold { color: #7A5920; }
.ew-reach__copy h2 { color: var(--ew-blue); font-size: 38px; }
.ew-reach__intro { margin: 18px 0 0; font-size: 18px; line-height: 1.75; color: var(--ew-ink-muted); }
.ew-reach__phone {
  display: inline-block; margin-top: 26px;
  font-family: var(--ew-font-display); font-weight: 700; font-size: 40px;
  color: var(--ew-blue); text-decoration: none; letter-spacing: 0.01em;
  transition: color 0.2s ease;
}
.ew-reach__phone:hover { color: var(--ew-blue-deep); }
.ew-reach__hours { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; margin-top: 22px; max-width: 380px; }
.ew-reach__hlabel { font-size: 18px; font-weight: 700; letter-spacing: 0.16em; color: #7A5920; align-self: baseline; }
.ew-reach__hval { font-size: 18px; color: var(--ew-ink); font-weight: 600; }
.ew-reach__hval.is-muted { color: var(--ew-ink-muted); font-weight: 400; }
.ew-reach__actions { display: flex; gap: 14px; align-items: center; margin-top: 32px; flex-wrap: wrap; }
.ew-reach__dir { font-size: 18px; font-weight: 700; letter-spacing: 0.04em; color: var(--ew-blue); text-decoration: none; transition: color 0.2s ease, transform 0.25s cubic-bezier(0.16,1,0.3,1); }
.ew-reach__dir:hover { color: var(--ew-blue-deep); transform: translateX(5px); }
.ew-reach__media { position: relative; }
.ew-reach__photo { display: block; width: 100%; height: 420px; object-fit: cover; border-radius: 10px; }
.ew-reach__photo--empty { background: var(--ew-cream-deep); border: 1px dashed var(--ew-line); }
.ew-reach__card {
  position: absolute; right: 24px; bottom: 24px;
  background: var(--ew-cream); border-radius: 8px;
  box-shadow: 0 8px 28px rgba(0,45,87,0.28); padding: 18px 22px; pointer-events: none;
}
.ew-reach__cardlabel { font-size: 18px; font-weight: 700; letter-spacing: 0.18em; color: #7A5920; position: relative; }
.ew-reach__card address { font-style: normal; font-family: var(--ew-font-display); font-weight: 700; font-size: 22px; color: var(--ew-blue); margin-top: 6px; line-height: 1.5; position: relative; }
@media (max-width: 900px) {
  .ew-reach__grid { grid-template-columns: 1fr; gap: 36px; }
  .ew-reach__photo { height: 300px; }
}

/* Homepage disclosures — two-column small print */
.ew-disclosures-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 56px; }
.ew-disclosures-grid p { margin: 0; font-size: 13.5px; line-height: 1.65; color: var(--ew-ink-muted); }
@media (max-width: 760px) { .ew-disclosures-grid { grid-template-columns: 1fr; } }

/* Disclosure band — full-bleed deep cream, small print everywhere */
.ew-disclosures-sec {
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  background: var(--ew-cream-deep); border-top: 1px solid var(--ew-line-soft);
  padding: 44px 0 52px;
}
.ew-disclosures-sec p { font-size: 13.5px !important; line-height: 1.65; color: var(--ew-ink-muted); }




/* v0.42: tighten intro-to-phone gap in Reach Us */
.ew-reach__phone { margin-top: 10px !important; }


#wrapper, #inner-wrap { overflow: visible !important; }
body { overflow-x: hidden; }



   The svg reaches 4px UP into the header so no sub-pixel seam can show. */

/* v0.49: (1) blue bridge strip kills the top-left wedge — the svg path's top
   edge sits a few px below the seam at the left, so paint that band solid
   header-blue; invisible everywhere it overlaps existing blue. (2) stuck
   state detected by the browser's real position, class ew-stuck on body. */

/* v0.51: make sure the clone's artwork is never clipped or squashed */

/* ============ POWERLINE CURVE — single canonical block (v0.52) ============ */
.ew-header-curve {
  position: absolute; left: 0; right: 0; top: 100%;
  height: 0; overflow: visible; z-index: 1; pointer-events: none;
}
/* Seam cover sits ABOVE the seam only — never below the gold line */
.ew-header-curve::before {
  content: ""; position: absolute; left: 0; right: 0;
  top: -10px; height: 10px; background: var(--ew-blue, #00539F);
}
/* The svg's blue fill ends exactly at the gold line, so the header's
   bottom edge IS the curve — starts 1px up to kill rounding gaps. */
.ew-header-curve svg {
  position: absolute; top: -1px; left: 0; width: 100%; height: 17px;
  display: block; opacity: 1; pointer-events: none;
}
/* Nav dropdowns must paint over the curve */
.site-header .sub-menu, .site-header ul ul,
.site-header .mega-menu, .site-header .kadence-menu-mega-enabled ul {
  z-index: 30;
}



/* Mobile menu toggle — white on the blue header */
#mobile-header .menu-toggle-open,
#mobile-header .menu-toggle-open .menu-toggle-icon,
.mobile-toggle-open-container .menu-toggle-open { color: #fff; }
#mobile-header .menu-toggle-open svg { fill: currentColor; }

/* v0.76 hero gradient — the header stays flat electric blue; the hero deepens
   through the signature gradient so the two blues read as distinct planes. */
.ew-hero {
  /* Union blue IS the hero. Deep Electric appears only as a quiet
     deepening at the base — an accent, per the client. */
  background: linear-gradient(170deg, #00539F 0%, #00539F 72%, #002D57 100%) !important;
}

/* v0.79 */
/* Texture moves from the hero to the header; the hero's blue now works by
   blend instead: the photo scrim multiplies into the photo for a richer melt. */
.ew-hero::before { content: none !important; }

/* v0.85 cream hero — the client's call: the blue wall breaks at the curve.
   Header stays union blue; the hero grounds on warm cream. Photo, notch,
   strike line, and hover flash all unchanged. */
.ew-hero { background: var(--ew-cream-deep) !important; }
/* The pressed-paper tooth on the cream panel — the warmth IS the texture.
   Photo lifts above it so the two objects stay crisp. */
.ew-hero::after {
  content: ""; position: absolute; inset: 0;
  background-image: url(assets/img/texture-paper.png);
  background-size: 200px; opacity: 0.9; pointer-events: none;
}
.ew-hero__photo { z-index: 1; }
.ew-hero__eyebrow { color: var(--ew-gold-text); }
.ew-hero h1 { color: var(--ew-blue); }
.ew-hero h1 em, .ew-hero h1 i { color: var(--ew-gold-text); }
.ew-hero .ew-hero__inner .ew-hero__sub { color: var(--ew-ink-muted) !important; }
/* Secondary CTA on cream: blue outline */
/* (v0.88: gold buttons render gold again; outline is its own style) */

/* v0.87 photo overlay — the picked hero (option g6): cream text panel left,
   photo right under a flat union-blue overlay, bolt notch between. Replaces
   the warming filter + navy scrim with the flat 55% union blue. */
.ew-hero__img { filter: none; }
.ew-hero__photo::after {
  background: rgba(0, 83, 159, 0.55);
}

/* v0.88 — the approved hero, final form.
   Full-bleed photo under union blue 70% + tooth (option C3), a cream panel
   whose right edge IS the bolt, an electric-blue veil for a flash-free load,
   and the entry choreography: veil melts -> photo settles -> panel sweeps ->
   copy lands -> the strike fires and goes live. Bolt holds through tablet;
   the hero stacks only below 768px. */
.ew-hero__photo { clip-path: none !important; z-index: 1; }
.ew-hero__img {
  left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important;
  min-width: 0 !important; transform: none !important;
  object-fit: cover; object-position: 50% 50%; filter: none;
}
.ew-hero__photo::after { background: rgba(0, 83, 159, 0.70) !important; }
.ew-hero__photo::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile);
  opacity: 0.85; pointer-events: none;
}
.ew-hero__panel {
  position: absolute; top: 0; right: 0; bottom: 5px; left: 0; z-index: 2;
  background: var(--ew-cream-deep); backface-visibility: hidden;
  clip-path: polygon(0% 0%, 60% 0%, 55.5% 33%, 62.25% 33%, 57.75% 66%, 64.5% 66%, 60% 100%, 0% 100%);
}
.ew-hero__panel::after {
  content: ""; position: absolute; inset: 0;
  background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile);
  opacity: 0.9; pointer-events: none;
}
.ew-hero__strike, .ew-hero__bloomwrap { z-index: 3; }
.ew-hero__inner { position: relative; z-index: 4; grid-template-columns: minmax(0, 53%) 1fr; }
.ew-hero__strike path { stroke-width: 2.5px; }
.ew-hero h1 em, .ew-hero h1 i { color: #A87B2F; }
.ew-hero__veil { display: none; }
/* Button styles the editor can pick per button */
.ew-hero .ew-btn-outline {
  background: transparent; color: var(--ew-blue);
  border: 2px solid var(--ew-blue);
  transition: background 0.2s ease, color 0.2s ease;
}
.ew-hero .ew-btn-outline:hover { background: var(--ew-blue); color: #fff; }
@keyframes ewPanelIn { from { transform: translate3d(-105%,0,0); } to { transform: translate3d(0,0,0); } }
@keyframes ewCopyIn { from { opacity: 0; transform: translate3d(-18px,0,0); } to { opacity: 1; transform: translate3d(0,0,0); } }
@keyframes ewPhotoIn { from { opacity: 0.25; transform: scale(1.035); } to { opacity: 1; transform: none; } }
/* The strike, re-proportioned for the 2.5px line (redefines the earlier keyframes) */
@keyframes ewBoltStrike {
  0% { stroke-width:2.5px;stroke:var(--ew-gold);opacity:0.9;filter:drop-shadow(0 0 3px rgba(207,163,92,0.5)); }
  10% { stroke-width:6px;stroke:#F5D49A;opacity:1;filter:drop-shadow(0 0 17px rgba(245,212,154,0.95)) drop-shadow(0 0 40px rgba(207,163,92,0.6)); }
  34% { stroke-width:4.5px;stroke:#F5D49A;opacity:1;filter:drop-shadow(0 0 10px rgba(245,212,154,0.95)) drop-shadow(0 0 23px rgba(207,163,92,0.6)); }
  62% { stroke-width:3px;stroke:#F5D49A;opacity:0.92;filter:drop-shadow(0 0 4px rgba(245,212,154,0.95)) drop-shadow(0 0 9px rgba(207,163,92,0.6)); }
  100% { stroke-width:2.5px;stroke:var(--ew-gold);opacity:0.9;filter:drop-shadow(0 0 3px rgba(207,163,92,0.5)); }
}
@media (prefers-reduced-motion: no-preference) {
  .ew-hero.ew-anim .ew-hero__veil {
    display: block; position: absolute; inset: 0 0 5px 0; z-index: 9;
    background: var(--ew-blue); pointer-events: none;
  }
  .ew-hero.ew-anim.ew-go .ew-hero__veil { opacity: 0; transition: opacity 0.55s ease; }
  .ew-hero.ew-anim .ew-hero__panel { animation: ewPanelIn 0.9s cubic-bezier(0.16,1,0.3,1) 0.15s both; animation-play-state: paused; }
  .ew-hero.ew-anim .ew-hero__inner { animation: ewCopyIn 1.1s cubic-bezier(0.16,1,0.3,1) 0.45s both; animation-play-state: paused; }
  .ew-hero.ew-anim.ew-go .ew-hero__panel, .ew-hero.ew-anim.ew-go .ew-hero__inner { animation-play-state: running; }
  .ew-hero.ew-anim.ew-go .ew-hero__photo { animation: ewPhotoIn 1.4s cubic-bezier(0.16,1,0.3,1) both; }
  .ew-hero.ew-anim:not(.ew-live) .ew-hero__strike, .ew-hero.ew-anim:not(.ew-live) .ew-hero__bloomwrap { opacity: 0; }
  .ew-hero__strike, .ew-hero__bloomwrap { transition: opacity 0.45s ease; }
}
/* Tablet 769-1200: undo the stacked layout — bolt and side-by-side text hold */
@media (min-width: 769px) and (max-width: 1200px) {
  .ew-hero { display: block; }
  .ew-hero__photo { position: absolute; inset: 0 0 5px 0; width: auto; aspect-ratio: auto; }
  .ew-hero__strike, .ew-hero__bloomwrap { display: block; }
  .ew-hero__bar { order: 0; }
  .ew-hero h1 { font-size: clamp(34px, 4.2vw, 48px); }
  .ew-hero__sub { font-size: 17px; }
  .ew-hero__inner { padding: 72px var(--ew-gutter) 80px; grid-template-columns: minmax(0, 50%) 1fr; }
}
/* Phone: panel and veil have no business in the stacked band */
@media (max-width: 768px) {
  .ew-hero__panel, .ew-hero__veil { display: none !important; }
  /* v1.77 — nothing sits beside the words here, so they take the full width
     (the 53% column above is for the bolt layout) */
  .ew-hero__inner { grid-template-columns: minmax(0, 1fr); width: 100%; box-sizing: border-box; }
}

/* v0.90 — rate band on union blue with the paper tooth. White figures,
   light-gold labels (the dark-surface gold, >4.5:1 on the blue). */
.ew-rateband {
  background: var(--ew-blue); border-bottom: 0; position: relative;
  /* Full-bleed breakout — same treatment as the offer and split sections */
  width: 100vw; max-width: 100vw;
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}
.ew-rateband::after {
  content: ""; position: absolute; inset: 0;
  background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile);
  opacity: 0.85; pointer-events: none;
}
.ew-rateband__inner { position: relative; z-index: 1; }
.ew-rateband .ew-rate { border-left-color: rgba(255,255,255,0.25); }
.ew-rateband .ew-rate__label { color: #EFC97F; }
.ew-rateband .ew-rate__figure { color: #fff; }
.ew-rateband .ew-rate__suffix { color: var(--ew-gold); }
.ew-rateband .ew-link { color: #fff; border-bottom-color: var(--ew-gold); }
.ew-rateband .ew-link:hover { color: #EFC97F; }

/* v0.92 — union-blue split variant + the site footer */
.ew-bg-blue { background: var(--ew-blue); }
.ew-footer { position: relative; background: var(--ew-gradient-hero, linear-gradient(160deg, #005CAE 0%, #00539F 40%, #00427E 100%)); color: #fff; }
.ew-footer::after {
  content: ""; position: absolute; inset: 0;
  background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile);
  opacity: 0.85; pointer-events: none;
}
.ew-footer__bar { height: 5px; background: var(--ew-red); position: relative; z-index: 1; }
.ew-footer__inner { max-width: var(--ew-content); margin: 0 auto; padding: 56px var(--ew-gutter) 36px; position: relative; z-index: 1; }
.ew-footer__top { display: flex; justify-content: space-between; gap: 44px; flex-wrap: wrap; align-items: flex-start; }
.ew-footer__logo { height: 64px; width: auto; display: block; margin-bottom: 22px; }
.ew-footer__addr { font-size: 18px; line-height: 1.75; color: rgba(255,255,255,0.85); margin: 0; max-width: 440px; }
.ew-footer__links { display: flex; gap: 36px; flex-wrap: wrap; padding-top: 14px; }
.ew-footer__links a {
  font-size: 18px; font-weight: 500; color: rgba(255,255,255,0.85); text-decoration: none;
  transition: color 0.2s ease;
}
.ew-footer__links a:hover {
  color: #fff; text-decoration: underline;
  text-decoration-color: var(--ew-gold); text-decoration-thickness: 2px; text-underline-offset: 7px;
}
.ew-footer__bottom {
  margin-top: 46px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,0.14);
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
}
.ew-footer__copy { font-size: 16px; color: rgba(255,255,255,0.8); }
.ew-footer__marks { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ew-footer__marks > img { height: 42px; width: auto; display: block; }
.ew-footer__social { display: flex; gap: 10px; }
.ew-footer__social a {
  width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.32);
  display: flex; align-items: center; justify-content: center;
  transition: border-color 0.2s ease;
}
.ew-footer__social a:hover { border-color: #fff; }
.ew-footer__social svg { width: 15px; height: 15px; fill: none; stroke: rgba(255,255,255,0.9); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* The theme owns the footer — Kadence's builder footer stays hidden. */
.site-footer { display: none; }
@media print { .ew-footer { display: none !important; } }


/* =====================================================================
   v0.95 — RATES PAGE: page header, strip, table card + chips, callout
   card, calculators
   ===================================================================== */

/* Interior page hero (EWFCU Page Header block) */
.ew-pagehead {
  position: relative; overflow: hidden; color: #fff;
  background: var(--ew-blue-deep, #002D57);
  border-bottom: 3px solid var(--ew-gold, #CFA35C);
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}
.ew-pagehead__photo { position: absolute; left: 0; right: 0; top: -14%; height: 128%; will-change: transform; }
.ew-pagehead__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ew-pagehead__scrim { position: absolute; inset: 0; background: linear-gradient(92deg, rgba(0,45,87,0.92) 0%, rgba(0,63,120,0.82) 45%, rgba(0,83,159,0.55) 100%); }
.ew-pagehead::after {
  content: ""; position: absolute; inset: 0;
  background-image: url(assets/img/texture-paper.png); background-size: 200px;
  opacity: 0.85; pointer-events: none;
}
.ew-pagehead__inner { position: relative; z-index: 2; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 64px var(--ew-gutter, 24px) 68px; }
.ew-pagehead__eyebrow { margin: 0 0 14px; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #EFC97F; }
.ew-pagehead__title { margin: 0 0 14px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: clamp(32px, 4vw, 46px); line-height: 1.12; color: #fff; max-width: 720px; }
.ew-pagehead__title em { font-style: italic; color: #EFC97F; }
.ew-pagehead__body { margin: 0; font-size: 19px; line-height: 1.65; color: rgba(255,255,255,0.92); max-width: 560px; }

/* Effective-date strip with jump links */
.ew-ratestrip {
  position: relative; background: var(--ew-cream-deep, #EDE8DF);
  border-bottom: 1px solid var(--ew-line, #D8D3CA);
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}
.ew-ratestrip::after {
  content: ""; position: absolute; inset: 0;
  background-image: url(assets/img/texture-paper.png); background-size: 200px;
  opacity: 0.9; pointer-events: none;
}
.ew-ratestrip__inner {
  position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto;
  padding: 15px var(--ew-gutter, 24px);
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px;
}
.ew-ratestrip__date { margin: 0; font-size: 14px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ew-ink-muted, #5A5A5A); }
.ew-ratestrip__links { display: flex; gap: 28px; }
.ew-ratestrip__links a { font-size: 15.5px; font-weight: 700; color: var(--ew-ink, #1C1C1C); text-decoration: none; border-bottom: 2px solid var(--ew-gold, #CFA35C); padding-bottom: 2px; }
.ew-ratestrip__links a:hover { color: var(--ew-blue, #00539F); }

/* Rate table: filter chips + white card */
.ew-rt-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; }
.ew-rt-chips button {
  font-family: inherit; padding: 9px 16px; border-radius: 4px;
  font-size: 14.5px; font-weight: 600; cursor: pointer;
  background: #fff; border: 1px solid #D8D3CA; color: var(--ew-ink, #1C1C1C);
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.ew-rt-chips button:hover { border-color: var(--ew-blue, #00539F); color: var(--ew-blue, #00539F); }
.ew-rt-chips button.is-active { background: var(--ew-blue, #00539F); border-color: var(--ew-blue, #00539F); color: #fff; }

.ew-rt-card {
  background: #fff; border: 0.5px solid #D8D3CA; border-radius: 10px;
  box-shadow: 0 2px 12px rgba(0,45,87,0.08); overflow: hidden;
}
.ew-rt-card .ew-rate-table { width: 100%; border-collapse: collapse; margin: 0; }
.ew-rt-card thead th {
  text-align: left; padding: 16px 24px 13px;
  font-family: var(--ew-font-body, 'Inter', sans-serif);
  font-size: 13.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ew-ink-muted, #5A5A5A); border-bottom: 1.5px solid var(--ew-blue, #00539F);
}
.ew-rt-card thead th:last-child, .ew-rt-card tbody td { text-align: right; }
.ew-rt-card tbody th {
  text-align: left; padding: 15px 24px;
  font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 19px;
  color: var(--ew-ink, #1C1C1C); border-top: 1px solid #EDE8DF;
}
.ew-rt-card tbody td {
  padding: 15px 24px;
  font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 22px;
  color: var(--ew-blue, #00539F); border-top: 1px solid #EDE8DF; white-space: nowrap;
}
.ew-rt-card tbody tr:first-child th, .ew-rt-card tbody tr:first-child td { border-top: 0; }
.ew-rt-suffix { font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 600; font-size: 15px; color: #7A5920; letter-spacing: 0.04em; }

/* Callout card (table sidebar) */
.ew-callout {
  background: #fff; border: 0.5px solid #D8D3CA; border-radius: 10px;
  box-shadow: 0 2px 12px rgba(0,45,87,0.08); padding: 30px 30px 32px;
}
.ew-callout__eyebrow { margin: 0 0 10px; font-size: 13.5px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-callout__heading { margin: 0 0 12px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 23px; line-height: 1.3; color: var(--ew-blue, #00539F); }
.ew-callout__body { margin: 0 0 16px; font-size: 17px; line-height: 1.65; color: var(--ew-ink-muted, #5A5A5A); }
.ew-callout__fine { margin: 0 0 24px; font-size: 14.5px; color: var(--ew-ink-muted, #5A5A5A); }
.ew-callout__btn { display: inline-block; font-weight: 700; font-size: 15.5px; letter-spacing: 0.04em; padding: 14px 26px; border-radius: 4px; text-decoration: none; transition: background 0.18s ease, color 0.18s ease; }
.ew-callout__btn--red { background: var(--ew-red, #E03A3E); color: #fff; }
.ew-callout__btn--red:hover { background: var(--ew-red-deep, #B72E31); color: #fff; }
.ew-callout__btn--outline { border: 1.5px solid var(--ew-blue-deep, #002D57); color: var(--ew-blue-deep, #002D57); padding: 13px 25px; }
.ew-callout__btn--outline:hover { background: var(--ew-blue-deep, #002D57); color: #fff; }
.ew-callout__btn--link { padding: 0 0 3px; border-radius: 0; font-size: 17px; color: var(--ew-ink, #1C1C1C); border-bottom: 2px solid var(--ew-gold, #CFA35C); }
.ew-callout__btn--link:hover { color: var(--ew-blue, #00539F); }

/* Rate calculators — union blue, two white cards */
.ew-calc {
  position: relative; background: var(--ew-blue, #00539F); color: #fff;
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
}
.ew-calc::after {
  content: ""; position: absolute; inset: 0;
  background-image: url(assets/img/texture-paper.png); background-size: 200px;
  opacity: 0.85; pointer-events: none;
}
.ew-calc__inner { position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 74px var(--ew-gutter, 24px) 80px; }
.ew-calc__eyebrow { margin: 0 0 6px !important; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #EFC97F; }
.ew-calc__inner h2 { margin: 0 0 12px !important; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 30px; color: #fff; }
.ew-calc__intro { margin: 0; font-size: 18px; line-height: 1.7; color: rgba(255,255,255,0.9); max-width: 680px; }
.ew-calc__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; margin-top: 56px !important; }
.ew-calc__card { background: #fff; color: var(--ew-ink, #1C1C1C); border-radius: 10px; box-shadow: 0 2px 12px rgba(0,45,87,0.18); padding: 32px 34px 34px; }
.ew-calc__card h3 { margin: 0 0 8px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 23px; color: var(--ew-blue, #00539F); }
.ew-calc__blurb { margin: 0 0 24px; font-size: 16px; line-height: 1.6; color: var(--ew-ink-muted, #5A5A5A); }
.ew-calc__row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.ew-calc__card label { font-size: 13.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ew-ink-muted, #5A5A5A); display: block; margin-bottom: 8px; }
.ew-calc__row label { margin-bottom: 0; }
.ew-calc__amt { font-family: var(--ew-font-display, 'Arvo', serif); font-size: 21px; color: var(--ew-blue, #00539F); }
.ew-calc__card input[type="range"] { width: 100%; accent-color: var(--ew-blue, #00539F); margin: 0 0 18px; }
.ew-calc__two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ew-calc__card select {
  width: 100%; padding: 11px 12px; border: 1px solid #D8D3CA; border-radius: 6px;
  font-family: inherit; font-size: 16px; color: var(--ew-ink, #1C1C1C); background: var(--ew-cream, #F5F0E8);
}
.ew-calc__result { margin-top: 24px; padding-top: 20px; border-top: 1px solid #EDE8DF; }
.ew-calc__big { font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 36px; line-height: 1; color: var(--ew-blue, #00539F); }
.ew-calc__unit { font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 600; font-size: 17px; color: #7A5920; }
.ew-calc__result p { margin: 10px 0 0; font-size: 15.5px; line-height: 1.6; color: var(--ew-ink-muted, #5A5A5A); }
.ew-calc__foot { margin: 22px 4px 0; font-size: 14px; color: rgba(255,255,255,0.82); }

@media (max-width: 900px) {
  .ew-calc__grid { grid-template-columns: 1fr; }
  .ew-calc__two { grid-template-columns: 1fr; }
  .ew-ratestrip__inner { justify-content: center; text-align: center; }
  .ew-rt-card tbody th, .ew-rt-card tbody td { padding: 13px 16px; font-size: 17px; }
  .ew-rt-card tbody td { font-size: 19px; }
}

/* v0.96 — Kadence's global heading color was overriding the page-header
   title on the live site; pin it. The em stays gold. */
.ew-pagehead .ew-pagehead__title { color: #fff !important; }
.ew-pagehead .ew-pagehead__title em { color: #EFC97F !important; }

/* =====================================================================
   v0.97 — live-site hardening against Kadence globals:
   flush hero under the header, tight eyebrow/title spacing, slim strip
   ===================================================================== */
/* Page Header sits flush under the header curve — kill content-area padding
   on pages that open with it, plus any first-block gap */
body.page .site-content:has(.ew-pagehead),
body.page .content-area:has(.ew-pagehead) { padding-top: 0 !important; margin-top: 0 !important; }
.entry-content > *:first-child { margin-block-start: 0 !important; }
.entry-content .ew-pagehead, .entry-content .ew-ratestrip { margin-top: 0 !important; margin-bottom: 0 !important; }

/* Eyebrow → title → body spacing pinned against global heading margins */
.ew-pagehead__inner { padding: 56px var(--ew-gutter, 24px) 60px !important; }
.ew-pagehead .ew-pagehead__eyebrow { margin: 0 0 12px !important; padding: 0 !important; }
.ew-pagehead .ew-pagehead__title { margin: 0 0 14px !important; padding: 0 !important; }
.ew-pagehead .ew-pagehead__body { margin: 0 !important; }

/* Rate strip: pin the date type + kill inherited paragraph margins/padding */
.ew-ratestrip__inner { padding: 14px var(--ew-gutter, 24px) !important; }
.ew-ratestrip .ew-ratestrip__date, .ew-ratestrip .ew-ratestrip__date p {
  margin: 0 !important; padding: 0 !important; text-align: left;
  font-family: var(--ew-font-body, 'Inter', sans-serif) !important;
  font-size: 14px !important; font-weight: 700 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: var(--ew-ink-muted, #5A5A5A) !important;
}
.ew-ratestrip__links a { line-height: 1.2; }

/* v0.98 — the [ew_rate_date] shortcode brings its own <p class="ew-rate-date">;
   style it inside the strip (the old nested-p markup broke the cascade) */
.ew-ratestrip .ew-rate-date {
  margin: 0 !important; padding: 0 !important; text-align: left;
  font-family: var(--ew-font-body, 'Inter', sans-serif) !important;
  font-size: 14px !important; font-weight: 700 !important;
  letter-spacing: 0.14em !important; text-transform: uppercase !important;
  color: var(--ew-ink-muted, #5A5A5A) !important;
}

/* =====================================================================
   v0.99 — Disclosures block inside a column: the 100vw full-bleed
   breakout assumes the block is a top-level band; inside a Kadence
   column it misaligns and floods the row. In a column it now renders
   as the table footnote from the design — plain, quiet, column-width.
   ===================================================================== */
.wp-block-kadence-column .ew-disclosures-sec,
.kt-inside-inner-col .ew-disclosures-sec,
.kadence-column .ew-disclosures-sec {
  width: auto !important; max-width: none !important;
  margin: 0 !important;
  padding: 32px 0 8px !important;
  background: transparent !important;
  border-top: 0 !important;
}
.wp-block-kadence-column .ew-disclosures-sec .ew-offer-wrap,
.kt-inside-inner-col .ew-disclosures-sec .ew-offer-wrap,
.kadence-column .ew-disclosures-sec .ew-offer-wrap {
  max-width: none !important; margin: 0 !important; padding: 0 !important;
}
.wp-block-kadence-column .ew-disclosures-sec.ew-paper::after,
.kt-inside-inner-col .ew-disclosures-sec.ew-paper::after,
.kadence-column .ew-disclosures-sec.ew-paper::after { display: none; }
.wp-block-kadence-column .ew-disclosures-sec p,
.kt-inside-inner-col .ew-disclosures-sec p,
.kadence-column .ew-disclosures-sec p {
  font-size: 14.5px !important; line-height: 1.6; color: var(--ew-ink-muted, #5A5A5A);
  margin: 0 0 8px !important; max-width: 62em;
}
.wp-block-kadence-column .ew-disclosures-sec p:last-child,
.kt-inside-inner-col .ew-disclosures-sec p:last-child,
.kadence-column .ew-disclosures-sec p:last-child { margin-bottom: 0 !important; }

/* =====================================================================
   v1.00 — EWFCU Section Intro block: the standard eyebrow/heading/intro
   opener used above tables, grids, and sections
   ===================================================================== */
.ew-secintro { margin: 0 0 26px; }
.ew-secintro__eyebrow {
  margin: 0 0 10px !important; padding: 0 !important;
  font-family: var(--ew-font-body, 'Inter', sans-serif) !important;
  font-size: 15px !important; font-weight: 700 !important;
  letter-spacing: 0.2em !important; text-transform: uppercase !important;
  color: #7A5920 !important;
}
.ew-secintro__heading {
  margin: 0 0 10px !important; padding: 0 !important;
  font-family: var(--ew-font-display, 'Arvo', serif) !important; font-weight: 700 !important;
  color: var(--ew-blue, #00539F) !important;
}
h2.ew-secintro__heading { font-size: 34px !important; }
h3.ew-secintro__heading { font-size: 24px !important; }
.ew-secintro__intro {
  margin: 0 !important; font-size: 18px !important; line-height: 1.65;
  color: var(--ew-ink-muted, #5A5A5A) !important; max-width: 640px;
}
.ew-secintro--dark .ew-secintro__eyebrow { color: #EFC97F !important; }
.ew-secintro--dark .ew-secintro__heading { color: #fff !important; }
.ew-secintro--dark .ew-secintro__intro { color: rgba(255,255,255,0.9) !important; }

/* =====================================================================
   v1.01 — full-bleed band utilities. Type one of these in any Row's
   Advanced → Additional CSS class(es) and the background runs edge to
   edge while the content stays at page width (works even in a boxed
   container — no Full Width alignment needed).
   ew-band-cream = deep cream · ew-band-blue = union blue (+ white text)
   ===================================================================== */
.ew-band-cream, .ew-band-blue {
  width: 100vw !important; max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  padding-left: calc(50vw - 50%); padding-right: calc(50vw - 50%);
  box-sizing: border-box;
}
.ew-band-cream { background: var(--ew-cream-deep, #EDE8DF) !important; }
.ew-band-blue { background: var(--ew-blue, #00539F) !important; color: #fff; }
.ew-band-blue h1, .ew-band-blue h2, .ew-band-blue h3 { color: #fff; }

/* =====================================================================
   v1.02–1.04 — callout eyebrow spacing + top-bar color pass
   ===================================================================== */
/* Callout card: WP paragraph margins were inflating the eyebrow→heading gap */
.ew-callout .ew-callout__eyebrow { margin: 0 0 10px !important; padding: 0 !important; line-height: 1.3; }
.ew-callout .ew-callout__heading { margin: 0 0 12px !important; padding: 0 !important; }

/* Top bar: mid electric blue — between union blue #00539F and deep
   #002D57 — so it reads as a quieter step of the same header blue. */
#masthead .site-top-header-wrap,
#masthead .site-top-header-wrap .site-header-row-container-inner,
#masthead .site-top-header-wrap .site-container,
#masthead .site-top-header-inner-wrap,
.site-top-header-wrap .site-header-row {
  background: #003F78 !important;
}
/* (v1.15) the 100vw stretch that used to live here broke the mega menu's
   position math and the sticky header — the container chain above is
   already painted, so no stretch is needed. */
.site-top-header-wrap, .site-top-header-wrap a, .site-top-header-wrap p,
.site-top-header-wrap .menu-item a, .site-top-header-wrap span {
  color: rgba(255,255,255,0.88) !important;
}
.site-top-header-wrap a:hover, .site-top-header-wrap .menu-item a:hover {
  color: #fff !important; text-decoration: underline; text-underline-offset: 4px;
}
.site-top-header-wrap .menu-item.current-menu-item a {
  color: #EFC97F !important; font-weight: 700;
}

/* =====================================================================
   v1.05 — EWFCU Closing CTA block
   ===================================================================== */
.ew-closecta { max-width: 880px; margin: 0 auto; padding: 92px 24px 98px; text-align: center; }
.ew-closecta__heading {
  margin: 0 0 14px !important;
  font-family: var(--ew-font-display, 'Arvo', serif) !important; font-weight: 700 !important;
  font-size: 38px !important; line-height: 1.2; color: var(--ew-blue, #00539F) !important;
}
.ew-closecta__body {
  margin: 0 auto 34px !important; font-size: 19px !important; line-height: 1.65;
  color: var(--ew-ink-muted, #5A5A5A) !important; max-width: 560px;
}
.ew-closecta__btns { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.ew-closecta__btn {
  display: inline-block; font-weight: 700; font-size: 16px; letter-spacing: 0.04em;
  padding: 17px 30px; border-radius: 4px; text-decoration: none;
  transition: background 0.18s ease, color 0.18s ease;
}
.ew-closecta__btn--red { background: var(--ew-red, #E03A3E); color: #fff !important; }
.ew-closecta__btn--red:hover { background: var(--ew-red-deep, #B72E31); color: #fff !important; }
.ew-closecta__btn--outline { border: 1.5px solid var(--ew-blue-deep, #002D57); color: var(--ew-blue-deep, #002D57) !important; padding: 16px 29px; }
.ew-closecta__btn--outline:hover { background: var(--ew-blue-deep, #002D57); color: #fff !important; }
.ew-closecta__detail { margin: 30px 0 0 !important; font-size: 15px !important; color: var(--ew-ink-muted, #5A5A5A) !important; }
.ew-closecta--dark .ew-closecta__heading { color: #fff !important; }
.ew-closecta--dark .ew-closecta__body { color: rgba(255,255,255,0.9) !important; }
.ew-closecta--dark .ew-closecta__detail { color: rgba(255,255,255,0.78) !important; }
.ew-closecta--dark .ew-closecta__btn--outline { border-color: rgba(255,255,255,0.85); color: #fff !important; }
.ew-closecta--dark .ew-closecta__btn--outline:hover { background: #fff; color: var(--ew-blue-deep, #002D57) !important; }

/* =====================================================================
   v1.06 — Closing CTA background photo: full-bleed band, blue overlay
   (strength set per-block by the editor's slider), paper tooth on top
   ===================================================================== */
.ew-closecta-band {
  position: relative; overflow: hidden;
  width: 100vw !important; max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  background: var(--ew-blue-deep, #002D57);
}
.ew-closecta-band__photo {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.ew-closecta-band__scrim {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #00539F 0%, #002D57 70%);
}
.ew-closecta-band::after {
  content: ""; position: absolute; inset: 0;
  background-image: url(assets/img/texture-paper.png); background-size: 200px;
  opacity: 0.85; pointer-events: none;
}
.ew-closecta-band .ew-closecta { position: relative; z-index: 2; }

/* =====================================================================
   v1.07 — Closing CTA overlay color choices (blue default / deep / gold)
   ===================================================================== */
.ew-closecta-band--deep { background: #001A33; }
.ew-closecta-band--deep .ew-closecta-band__scrim { background: linear-gradient(160deg, #002D57 0%, #001A33 70%); }
.ew-closecta-band--gold { background: var(--ew-gold, #CFA35C); }
.ew-closecta-band--gold .ew-closecta-band__scrim { background: linear-gradient(160deg, #CFA35C 0%, #B8894A 70%); }
/* gold overlay = light ground: keep the ink text, use the blue-outline button */
.ew-closecta-band--gold .ew-closecta__heading { color: var(--ew-blue-deep, #002D57) !important; }
.ew-closecta-band--gold .ew-closecta__body { color: #1C1C1C !important; }
.ew-closecta-band--gold .ew-closecta__detail { color: rgba(28,28,28,0.78) !important; }
.ew-closecta-band--gold .ew-closecta__btn--outline { border-color: var(--ew-blue-deep, #002D57); color: var(--ew-blue-deep, #002D57) !important; }
.ew-closecta-band--gold .ew-closecta__btn--outline:hover { background: var(--ew-blue-deep, #002D57); color: #fff !important; }

/* =====================================================================
   v1.08 — calculator controls: the range input was picking up text-field
   styling (border box); rebuild it as a proper slider line + thumb, and
   give the selects a visible chevron.
   ===================================================================== */
.ew-calc__card input[type="range"] {
  -webkit-appearance: none !important; appearance: none !important;
  width: 100%; height: auto; margin: 6px 0 18px;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  padding: 0 !important; cursor: pointer;
}
.ew-calc__card input[type="range"]::-webkit-slider-runnable-track {
  height: 4px; border-radius: 2px;
  background: linear-gradient(to right, var(--ew-blue, #00539F) 0%, var(--ew-blue, #00539F) 100%) no-repeat, #E8E3DC;
  background-color: #E8E3DC;
}
.ew-calc__card input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--ew-blue, #00539F); border: 3px solid #fff;
  box-shadow: 0 1px 6px rgba(0,45,87,0.35);
  margin-top: -9px;
}
.ew-calc__card input[type="range"]::-moz-range-track {
  height: 4px; border-radius: 2px; background: #E8E3DC; border: 0;
}
.ew-calc__card input[type="range"]::-moz-range-progress {
  height: 4px; border-radius: 2px; background: var(--ew-blue, #00539F);
}
.ew-calc__card input[type="range"]::-moz-range-thumb {
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--ew-blue, #00539F); border: 3px solid #fff;
  box-shadow: 0 1px 6px rgba(0,45,87,0.35);
}
.ew-calc__card input[type="range"]:focus-visible {
  outline: 2px solid var(--ew-blue, #00539F); outline-offset: 4px; border-radius: 4px;
}

.ew-calc__card select {
  -webkit-appearance: none !important; appearance: none !important;
  padding-right: 40px !important;
  background-color: var(--ew-cream, #F5F0E8) !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2300539F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 14px 9px !important;
  cursor: pointer;
}
.ew-calc__card select:hover { border-color: var(--ew-blue, #00539F); }

/* =====================================================================
   v1.09 — close the gap between a closing full-bleed band and the
   footer: kill content-area bottom padding on pages that use our
   full-bleed sections, and any trailing block margin.
   ===================================================================== */
body.page .site-content:has(.ew-closecta-band),
body.page .site-content:has(.ew-closecta),
body.page .site-content:has(.ew-band-cream),
body.page .site-content:has(.ew-band-blue),
body.page .site-content:has(.ew-calc),
body.page .site-content:has(.ew-pagehead) {
  padding-bottom: 0 !important; margin-bottom: 0 !important;
}
.entry-content > *:last-child { margin-block-end: 0 !important; margin-bottom: 0 !important; }
.entry-content > .ew-closecta-band:last-child,
.entry-content > .ew-band-cream:last-child,
.entry-content > .ew-band-blue:last-child { margin-bottom: 0 !important; }
/* the CTA on a plain background still keeps its own inner padding */

/* =====================================================================
   v1.10 — the bottom gap lives on Kadence's other wrappers, not
   .site-content: kill bottom spacing on every content wrapper on pages
   that use our full-bleed sections.
   ===================================================================== */
body.page #primary:has(.ew-closecta-band), body.page #primary:has(.ew-closecta),
body.page #primary:has(.ew-band-cream), body.page #primary:has(.ew-band-blue),
body.page #primary:has(.ew-calc), body.page #primary:has(.ew-pagehead),
body.page .content-area:has(.ew-closecta-band), body.page .content-area:has(.ew-closecta),
body.page .content-area:has(.ew-band-cream), body.page .content-area:has(.ew-band-blue),
body.page .content-area:has(.ew-calc), body.page .content-area:has(.ew-pagehead) {
  padding-bottom: 0 !important; margin-bottom: 0 !important;
}
body.page .site-main:has(.ew-closecta-band), body.page .site-main:has(.ew-closecta),
body.page .site-main:has(.ew-band-cream), body.page .site-main:has(.ew-band-blue),
body.page .site-main:has(.ew-calc), body.page .site-main:has(.ew-pagehead),
body.page .content-container:has(.ew-closecta-band), body.page .content-container:has(.ew-calc),
body.page .content-container:has(.ew-pagehead) {
  padding-bottom: 0 !important; margin-bottom: 0 !important;
}
body.page article:has(.ew-closecta-band), body.page .entry-content:has(.ew-closecta-band),
body.page article:has(.ew-closecta), body.page .entry-content:has(.ew-closecta) {
  padding-bottom: 0 !important; margin-bottom: 0 !important;
}
body.page:has(.ew-closecta-band) .site-footer-wrap, body.page:has(.ew-closecta) .site-footer-wrap,
body.page:has(.ew-closecta-band) #colophon, body.page:has(.ew-closecta) #colophon {
  margin-top: 0 !important;
}

/* =====================================================================
   v1.11 — no gaps between full-bleed sections: collapse the block-gap
   margins around our bands (and the strip's bottom hairline stays the
   only divider on the page).
   ===================================================================== */
.entry-content > .ew-band-cream, .entry-content > .ew-band-blue,
.entry-content > .ew-closecta-band, .entry-content > .ew-calc,
.entry-content > .ew-pagehead, .entry-content > .ew-ratestrip,
.entry-content > .ew-disclosures-sec {
  margin-top: 0 !important; margin-bottom: 0 !important;
}
/* the block right after a band loses its top margin… */
.entry-content > :is(.ew-band-cream, .ew-band-blue, .ew-closecta-band, .ew-calc, .ew-pagehead, .ew-ratestrip, .ew-disclosures-sec) + * {
  margin-top: 0 !important;
}
/* …and the block right before a band loses its bottom margin */
.entry-content > *:has(+ .ew-band-cream), .entry-content > *:has(+ .ew-band-blue),
.entry-content > *:has(+ .ew-closecta-band), .entry-content > *:has(+ .ew-calc),
.entry-content > *:has(+ .ew-disclosures-sec) {
  margin-bottom: 0 !important;
}
/* Kadence row layouts that ARE bands: kill their own outer margins too */
.wp-block-kadence-rowlayout.ew-band-cream, .wp-block-kadence-rowlayout.ew-band-blue {
  margin-top: 0 !important; margin-bottom: 0 !important;
}

/* =====================================================================
   v1.14 — kill the stray gap above/below full-bleed sections at ANY
   nesting depth (1.11 only handled direct children of .entry-content)
   ===================================================================== */
.entry-content :is(.ew-calc, .ew-closecta-band, .ew-pagehead, .ew-ratestrip, .ew-band-cream, .ew-band-blue, .ew-disclosures-sec),
.single-content :is(.ew-calc, .ew-closecta-band, .ew-pagehead, .ew-ratestrip, .ew-band-cream, .ew-band-blue, .ew-disclosures-sec) {
  margin-top: 0 !important; margin-bottom: 0 !important;
}
/* whatever sits right before one of our bands loses its bottom margin */
.entry-content *:has(+ .ew-calc), .entry-content *:has(+ .ew-closecta-band),
.entry-content *:has(+ .ew-band-cream), .entry-content *:has(+ .ew-band-blue),
.single-content *:has(+ .ew-calc), .single-content *:has(+ .ew-closecta-band),
.single-content *:has(+ .ew-band-cream), .single-content *:has(+ .ew-band-blue) {
  margin-bottom: 0 !important;
}
/* and whatever sits right after one loses its top margin */
.entry-content :is(.ew-calc, .ew-closecta-band, .ew-band-cream, .ew-band-blue, .ew-pagehead, .ew-ratestrip) + *,
.single-content :is(.ew-calc, .ew-closecta-band, .ew-band-cream, .ew-band-blue, .ew-pagehead, .ew-ratestrip) + * {
  margin-top: 0 !important;
}


/* v1.30 — the savings row sits directly above the calculators band: give its
   disclosure real bottom space (the loans row gets its spacing from the next
   row's top padding instead). */
.entry-content > *:has(+ .ew-calc) .ew-disclosures-sec,
.entry-content > *:has(+ .wp-block-acf-ew-rate-calc) .ew-disclosures-sec {
  padding-bottom: 64px !important;
}

/* =====================================================================
   v1.36 — Rate table mirrors the rate sheet (section rows, Term column,
   one product cell spanning its terms) + buttons under the calculators
   ===================================================================== */
.ew-rt-card tbody th { vertical-align: top; line-height: 1.3; }
.ew-rt-card tbody td.ew-rt-term {
  text-align: left; white-space: nowrap;
  font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 500; font-size: 16px;
  color: var(--ew-ink, #1C1C1C);
}
.ew-rt-fine {
  display: block; margin-top: 5px; max-width: 34em;
  font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 500; font-size: 14px; line-height: 1.45;
  letter-spacing: 0; text-transform: none; color: var(--ew-ink-muted, #5A5A5A);
}
.ew-rt-card tbody tr.ew-rt-sec th {
  padding: 22px 24px 9px; vertical-align: bottom;
  font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 700; font-size: 12.5px;
  letter-spacing: 0.16em; text-transform: uppercase; color: #7A5920;
  background: #FAF7F1; border-top: 1px solid #EDE8DF;
}
.ew-rt-card tbody tr:first-child.ew-rt-sec th { border-top: 0; }
.ew-rt-card tbody tr.ew-rt-sec + tr th, .ew-rt-card tbody tr.ew-rt-sec + tr td { border-top: 0; }

.ew-calc__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 24px; }
.ew-calc__btn {
  display: inline-block; font-family: var(--ew-font-body, 'Inter', sans-serif);
  font-weight: 700; font-size: 15.5px; letter-spacing: 0.04em; line-height: 1.2;
  padding: 14px 26px; border-radius: 4px; text-decoration: none !important;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.ew-calc__btn--blue { background: var(--ew-blue, #00539F); color: #fff !important; }
.ew-calc__btn--blue:hover, .ew-calc__btn--blue:focus-visible { background: #002D57; }
.ew-calc__btn--red { background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-calc__btn--red:hover, .ew-calc__btn--red:focus-visible { background: #B72E31; }
.ew-calc__btn--outline { background: transparent; border: 1.5px solid #002D57; color: #002D57 !important; padding: 12.5px 24.5px; }
.ew-calc__btn--outline:hover, .ew-calc__btn--outline:focus-visible { background: #002D57; color: #fff !important; }
.ew-calc__btn.is-placeholder { opacity: 0.55; cursor: default; }
.ew-calc__hint { font-size: 14px; font-style: italic; color: var(--ew-ink-muted, #5A5A5A); }
@media (max-width: 900px) {
  .ew-rt-card tbody td.ew-rt-term { font-size: 15px; }
  .ew-rt-card tbody tr.ew-rt-sec th { padding: 18px 16px 8px; }
  .ew-calc__btn { width: 100%; text-align: center; }
}

/* =====================================================================
   v1.37 — variable-rate prefix (T-Bill +) sits above the figure so the
   rate column keeps one width; auto tiers named by vehicle age
   ===================================================================== */
.ew-rt-card tbody td .ew-rt-prefix {
  display: block; margin: 0 0 3px; line-height: 1.2;
  font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 700; font-size: 12.5px;
  letter-spacing: 0.12em; text-transform: uppercase; color: #7A5920;
}

/* =====================================================================
   v1.38 — EWFCU Product Section (Borrow / Save pages)
   ===================================================================== */
.ew-prod { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0; margin-bottom: 0; background: #F5F0E8; }
.ew-prod--deep { background: #EDE8DF; border-top: 1px solid #E8E3DC; border-bottom: 1px solid #E8E3DC; }
.ew-prod::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-prod__inner {
  position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: 92px 40px 96px;
  display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 10fr); gap: 80px; align-items: center;
}
.ew-prod--photo-right .ew-prod__inner { grid-template-columns: minmax(0, 10fr) minmax(0, 11fr); }
.ew-prod--photo-right .ew-prod__media { order: 2; }
.ew-prod__media { position: relative; aspect-ratio: 5 / 4; }
.ew-prod__photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 14px; }
.ew-prod__photo--empty { display: flex; align-items: center; justify-content: center; background: #E8E3DC; color: #5A5A5A; font-size: 15px; font-style: italic; }
.ew-prod__card {
  position: absolute; bottom: -30px; right: -30px; z-index: 2; min-width: 236px; max-width: 300px;
  background: #F5F0E8 url(assets/img/texture-paper.png); background-size: 200px;
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0, 45, 87, 0.22); padding: 20px 26px 22px;
}
.ew-prod--photo-right .ew-prod__card { right: auto; left: -30px; }
.ew-prod__rate-top { margin: 0 0 8px; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-prod__rate-prefix { display: block; margin: 0 0 3px; font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 700; font-size: 12.5px; letter-spacing: 0.12em; text-transform: uppercase; color: #7A5920; }
.ew-prod__rate-fig { font-family: 'Arvo', serif; font-weight: 700; font-size: 44px; line-height: 1; color: #00539F; }
.ew-prod__rate-suf { font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 600; font-size: 16px; letter-spacing: 0.04em; color: #7A5920; }
.ew-prod__rate-name { margin: 9px 0 0; font-size: 14.5px; line-height: 1.4; color: #5A5A5A; }
.ew-prod__rate-inline { margin: 0 0 30px; padding: 18px 0; border-top: 1px solid #E8E3DC; border-bottom: 1px solid #E8E3DC; }
.ew-prod__rate-inline .ew-prod__rate-fig { font-size: 40px; }
.ew-prod__eyebrow { margin: 0 0 12px; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-prod__heading { margin: 0 0 16px; font-family: 'Arvo', serif; font-weight: 700; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-prod__heading em { font-style: italic; color: #A87B2F; }
.ew-prod__body { margin: 0 0 24px; font-size: 18px; line-height: 1.7; color: #5A5A5A; }
.ew-prod__facts { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 11px; }
.ew-prod__facts li { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-size: 16.5px; line-height: 1.5; color: #1C1C1C; }
.ew-prod__facts li img { width: 14px; height: auto; margin-top: 4px; flex: none; }
.ew-prod__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.ew-prod__btn {
  display: inline-block; font-weight: 700; font-size: 16px; letter-spacing: 0.04em; line-height: 1.2;
  padding: 15px 28px; border-radius: 4px; text-decoration: none !important;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.ew-prod__btn--blue { background: #00539F; color: #fff !important; }
.ew-prod__btn--blue:hover, .ew-prod__btn--blue:focus-visible { background: #002D57; }
.ew-prod__btn--red { background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-prod__btn--red:hover, .ew-prod__btn--red:focus-visible { background: #B72E31; }
.ew-prod__btn--outline { border: 1.5px solid #002D57; color: #002D57 !important; padding: 13.5px 26.5px; }
.ew-prod__btn--outline:hover, .ew-prod__btn--outline:focus-visible { background: #002D57; color: #fff !important; }
.ew-prod__more { font-size: 16px; font-weight: 700; color: #1C1C1C !important; text-decoration: none !important; border-bottom: 2px solid #CFA35C; padding-bottom: 2px; }
.ew-prod__more:hover, .ew-prod__more:focus-visible { color: #00539F !important; }
.ew-prod__hint { margin: 0; font-size: 14px; font-style: italic; color: #5A5A5A; }
@media (max-width: 900px) {
  .ew-prod__inner, .ew-prod--photo-right .ew-prod__inner { grid-template-columns: minmax(0, 1fr); gap: 56px; padding: 64px 24px 72px; }
  .ew-prod--photo-right .ew-prod__media { order: 0; }
  .ew-prod__card, .ew-prod--photo-right .ew-prod__card { right: 16px; left: auto; bottom: -26px; min-width: 0; padding: 16px 20px 18px; }
  .ew-prod__rate-fig { font-size: 38px; }
  .ew-prod__heading { font-size: 28px; }
}

/* =====================================================================
   v1.39 — Closing CTA: Background setting (union blue / deep electric
   full-width band, no photo needed). Paper tooth comes from
   .ew-closecta-band::after; copy sits above it.
   ===================================================================== */
.ew-closecta-band--solid-blue { background: linear-gradient(160deg, #00539F 0%, #002D57 62%, #001A33 100%); }
.ew-closecta-band--solid-deep { background: linear-gradient(160deg, #002D57 0%, #001A33 100%); }
.ew-closecta-band--solid > .ew-closecta { position: relative; z-index: 2; }

/* =====================================================================
   v1.40 — Product Section: Kadence's paragraph / heading / list margins
   were opening big gaps under the eyebrows and indenting the facts.
   Pinned with !important. Rate box over the photo goes white for depth.
   Fact bolts 3× (14px → 42px wide) so they read as bolts.
   ===================================================================== */
.ew-prod .ew-prod__eyebrow { margin: 0 0 12px !important; }
.ew-prod .ew-prod__heading { margin: 0 0 16px !important; }
.ew-prod .ew-prod__body { margin: 0 0 24px !important; }
.ew-prod .ew-prod__rate-top { margin: 0 0 8px !important; }
.ew-prod .ew-prod__rate-prefix { margin: 0 0 3px !important; }
.ew-prod .ew-prod__rate-name { margin: 9px 0 0 !important; }
.ew-prod .ew-prod__facts { list-style: none !important; margin: 0 0 30px !important; padding: 0 !important; }
.ew-prod .ew-prod__facts li { margin: 0 !important; padding: 0 !important; gap: 14px; align-items: flex-start; }
.ew-prod .ew-prod__facts li::marker { content: ""; }
.ew-prod .ew-prod__facts li img { width: 42px !important; max-width: none !important; height: auto !important; margin: 3px 0 0 !important; flex: none; }
.ew-prod .ew-prod__card {
  background: #fff !important;
  box-shadow: 0 12px 34px rgba(0, 45, 87, 0.24), 0 2px 6px rgba(0, 45, 87, 0.08);
}
@media (max-width: 900px) {
  .ew-prod .ew-prod__facts li img { width: 36px !important; }
}

/* =====================================================================
   v1.41 — Closing CTA: more Background choices. Paper tooth rides on
   .ew-closecta-band::after for every option.
   ===================================================================== */
.ew-closecta-band--solid-union { background: #00539F; }
.ew-closecta-band--solid-gold  { background: #CFA35C; }
.ew-closecta-band--solid-cream { background: #EDE8DF; border-top: 1px solid #E8E3DC; border-bottom: 1px solid #E8E3DC; }
.ew-closecta-band--solid-white { background: #FFFFFF; border-top: 1px solid #E8E3DC; border-bottom: 1px solid #E8E3DC; }
.ew-closecta-band--solid-white::after { opacity: 0.5; }
.ew-closecta-band--solid-gold .ew-closecta__heading { color: #00539F !important; }
.ew-closecta-band--solid-gold .ew-closecta__body,
.ew-closecta-band--solid-gold .ew-closecta__detail { color: #002D57 !important; }

/* v1.42 — fully editable footer (Site Footer screen) */
.ew-footer--bg-union { background: #00539F; }
.ew-footer--bg-deep { background: #002D57; }
.ew-footer--flat::after { display: none; }
.ew-footer__bar--gold { background: var(--ew-gold, #CFA35C); }
.ew-footer__logo { max-width: 100%; }
.ew-footer__marks img { width: auto; display: block; }
.ew-footer__marks > a { display: block; }
.ew-footer__legal { display: flex; flex-direction: column; gap: 8px; max-width: 720px; }
.ew-footer__fine { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.8); margin: 0 !important; }

/* v1.43 — footer links bold, address matches copyright size */
.ew-footer__addr { font-size: 16px; line-height: 1.7; }
.ew-footer__links a { font-weight: 700; color: #fff; }
.ew-footer__links a:hover, .ew-footer__links a:focus-visible { color: #fff; text-decoration: underline; text-decoration-color: var(--ew-gold, #CFA35C); text-decoration-thickness: 2px; text-underline-offset: 7px; }

/* =====================================================================
   v1.44 — Privacy Policy, Contact Section, Map
   ===================================================================== */
.ew-pv, .ew-wp, .ew-ct, .ew-map { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0 !important; margin-bottom: 0 !important; }
.ew-pv, .ew-ct { background: #F5F0E8; }
.ew-wp { background: #EDE8DF; border-top: 1px solid #D8D3CA; }
.ew-pv::after, .ew-wp::after, .ew-ct::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-hint { margin: 0 0 18px !important; padding: 10px 14px; border: 1px dashed #A87B2F; border-radius: 6px; background: #fff; color: #7A5920; font-size: 14px; line-height: 1.5; }

/* Facts notice */
.ew-pv__inner { position: relative; z-index: 1; max-width: 1060px; margin: 0 auto; padding: 84px 40px 92px; }
.ew-facts { background: #fff; border: 0.5px solid #D8D3CA; border-radius: 14px; box-shadow: 0 2px 12px rgba(0,45,87,0.08); overflow: hidden; color: #1C1C1C; }
.ew-facts__title { display: grid; grid-template-columns: 200px minmax(0,1fr); background: #00539F; }
.ew-facts__badge { background: #002D57; display: flex; align-items: center; justify-content: center; padding: 28px 20px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 34px; letter-spacing: 0.08em; color: #fff; }
.ew-facts__q { padding: 28px 36px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.ew-facts .ew-facts__q h2 { margin: 0 !important; font-size: 25px; line-height: 1.3; color: #fff; text-wrap: balance; }
.ew-facts .ew-facts__rev { margin: 0 !important; font-size: 14px; letter-spacing: 0.06em; color: rgba(255,255,255,0.88); }
.ew-facts__row { display: grid; grid-template-columns: 200px minmax(0,1fr); border-top: 1px solid #E8E3DC; }
.ew-facts__title + .ew-facts__row { border-top: 0; }
.ew-facts__label { background: #EDE8DF; padding: 24px 28px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 20px; line-height: 1.3; color: #00539F; }
.ew-facts__text { padding: 24px 36px; font-size: 17px; line-height: 1.65; }
.ew-facts__ans, .ew-facts__other { font-size: 16.5px; line-height: 1.65; }
.ew-facts__text p, .ew-facts__ans p, .ew-facts__other p { margin: 0 0 10px !important; }
.ew-facts__text ul, .ew-facts__ans ul, .ew-facts__other ul { margin: 0 0 10px !important; padding-left: 22px !important; }
.ew-facts__text li, .ew-facts__ans li, .ew-facts__other li { margin: 0 0 4px !important; }
.ew-facts__text > :last-child, .ew-facts__ans > :last-child, .ew-facts__other > :last-child { margin-bottom: 0 !important; }
.ew-facts__table { width: 100%; border-collapse: collapse; margin: 0 !important; border: 0; font-size: 16.5px; line-height: 1.55; }
.ew-facts__table th, .ew-facts__table td { border: 0; border-bottom: 1px solid #E8E3DC; padding: 18px 20px; text-align: left; vertical-align: top; background: none; }
.ew-facts__table th:first-child { padding-left: 28px; }
.ew-facts__table th:last-child, .ew-facts__table td:last-child { padding-right: 28px; }
.ew-facts__table thead th { background: #EDE8DF; border-top: 1px solid #E8E3DC; border-bottom: 1.5px solid #00539F; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 17px; line-height: 1.35; color: #002D57; }
.ew-facts__table thead th:nth-child(2) { width: 170px; }
.ew-facts__table thead th:nth-child(3) { width: 190px; }
.ew-facts__table tbody th { font-weight: 400; color: #1C1C1C; }
.ew-facts__table tbody th strong { font-weight: 700; }
.ew-facts__table tbody tr:last-child > * { border-bottom: 0; }
.ew-facts__yes { font-weight: 700; color: #00539F !important; }
.ew-facts__no { font-weight: 700; color: #1C1C1C; }
.ew-facts__dont { color: #5A5A5A; }
.ew-facts__ask { display: grid; grid-template-columns: 200px minmax(0,1fr); background: #00539F; }
.ew-facts__ask .ew-facts__label { background: #002D57; color: #fff; padding: 22px 28px; }
.ew-facts__ask .ew-facts__text { color: #fff; padding: 22px 36px; }
.ew-facts__ask a { color: #fff !important; font-weight: 700; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.ew-facts__ask a:hover { color: #EFC97F !important; }
.ew-facts .ew-facts__band { margin: 0 !important; background: #EDE8DF; padding: 16px 28px; border-top: 1px solid #E8E3DC; border-bottom: 1.5px solid #00539F; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 19px; line-height: 1.3; color: #002D57; }
.ew-facts__ask + .ew-facts__band { border-top: 0; }
.ew-facts__qa { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,8fr); border-top: 1px solid #E8E3DC; }
.ew-facts__band + .ew-facts__qa { border-top: 0; }
.ew-facts__qq { padding: 22px 28px; font-weight: 700; font-size: 16.5px; line-height: 1.5; }
.ew-facts__ans { padding: 22px 36px 22px 8px; }
.ew-facts__other { padding: 22px 28px 26px; }
@media (max-width: 760px) {
  .ew-pv__inner { padding: 56px 16px 64px; }
  .ew-facts__title, .ew-facts__row, .ew-facts__ask, .ew-facts__qa { grid-template-columns: 1fr; }
  .ew-facts__badge { justify-content: flex-start; padding: 16px 22px; font-size: 26px; }
  .ew-facts__q, .ew-facts__text, .ew-facts__ask .ew-facts__text { padding: 18px 22px; }
  .ew-facts__label, .ew-facts__ask .ew-facts__label { padding: 14px 22px; }
  .ew-facts .ew-facts__q h2 { font-size: 21px; }
  .ew-facts__qq { padding: 18px 22px 6px; }
  .ew-facts__ans { padding: 0 22px 18px; }
  .ew-facts__other { padding: 18px 22px; }
  .ew-facts__table thead { display: none; }
  .ew-facts__table, .ew-facts__table tbody, .ew-facts__table tr { display: block; width: 100%; }
  .ew-facts__table tr { border-bottom: 1px solid #E8E3DC; padding: 16px 22px; }
  .ew-facts__table tbody tr:last-child { border-bottom: 0; }
  .ew-facts__table tbody th, .ew-facts__table td { display: block; border: 0 !important; padding: 0 !important; }
  .ew-facts__table td { display: flex; justify-content: space-between; gap: 16px; margin-top: 8px; }
  .ew-facts__table td::before { content: attr(data-label); font-weight: 600; color: #5A5A5A; }
}

/* Website policy */
.ew-wp__inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: 88px 40px 96px; display: grid; grid-template-columns: minmax(0,4fr) minmax(0,8fr); gap: 72px; align-items: start; }
.ew-wp__head { position: sticky; top: 130px; }
.ew-wp .ew-wp__eyebrow { margin: 0 0 12px !important; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-wp .ew-wp__heading { margin: 0 0 16px !important; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-wp .ew-wp__heading em { color: #A87B2F; }
.ew-wp .ew-wp__intro { margin: 0 0 18px !important; font-size: 17px; line-height: 1.7; color: #5A5A5A; }
.ew-wp .ew-wp__eff { margin: 0 !important; font-size: 15px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #5A5A5A; }
.ew-wp__item { padding: 24px 0; border-top: 1px solid #D8D3CA; }
.ew-wp__item:last-child { border-bottom: 1px solid #D8D3CA; }
.ew-wp .ew-wp__item h3 { margin: 0 0 8px !important; font-size: 20px; line-height: 1.3; color: #00539F; }
.ew-wp__body { font-size: 17px; line-height: 1.7; color: #1C1C1C; }
.ew-wp__body p, .ew-wp__contact p { margin: 0 0 10px !important; }
.ew-wp__body > :last-child, .ew-wp__contact > :last-child { margin-bottom: 0 !important; }
.ew-wp__contact { margin-top: 24px; font-size: 16px; line-height: 1.6; color: #5A5A5A; }
.ew-wp__body a, .ew-wp__contact a { color: #00539F; font-weight: 700; }
@media (max-width: 900px) {
  .ew-wp__inner { grid-template-columns: 1fr; gap: 32px; padding: 64px 24px 72px; }
  .ew-wp__head { position: static; }
}

/* Contact section + message form */
.ew-ct [hidden] { display: none !important; }
.ew-ct__inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: 88px 40px 96px; display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 72px; align-items: start; }
.ew-ct__inner--solo { grid-template-columns: minmax(0,1fr); max-width: 760px; }
.ew-ct__group { padding: 28px 0; border-top: 1px solid #D8D3CA; }
.ew-ct__group:first-child { padding-top: 0; border-top: 0; }
.ew-ct__group:last-child { padding-bottom: 0; }
.ew-ct .ew-ct__label { margin: 0 0 10px !important; font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-ct .ew-ct__addr { margin: 0 0 16px !important; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 25px; line-height: 1.3; color: #00539F; }
.ew-ct .ew-ct__hours { display: grid; grid-template-columns: auto 1fr; gap: 6px 24px; margin: 0 0 16px !important; font-size: 16.5px; line-height: 1.5; }
.ew-ct__hours dt { margin: 0; font-weight: 700; color: #1C1C1C; }
.ew-ct__hours dd { margin: 0; color: #5A5A5A; }
.ew-ct .ew-ct__link { font-size: 16px; font-weight: 700; color: #1C1C1C; text-decoration: none; border-bottom: 2px solid #CFA35C; padding-bottom: 2px; transition: color 0.2s ease; }
.ew-ct .ew-ct__link:hover { color: #00539F; }
.ew-ct .ew-ct__phone { display: inline-block; margin: 0 0 8px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 30px; line-height: 1.2; color: #00539F; text-decoration: none; }
.ew-ct .ew-ct__phone:hover { color: #002D57; }
.ew-ct .ew-ct__muted { margin: 0 !important; font-size: 16.5px; line-height: 1.6; color: #5A5A5A; }
.ew-ct .ew-ct__muted strong { color: #1C1C1C; }
.ew-ct .ew-ct__email { display: inline-block; margin: 0 0 14px; font-size: 19px; font-weight: 700; color: #00539F; text-decoration: none; overflow-wrap: anywhere; }
.ew-ct .ew-ct__email:hover { color: #002D57; }
.ew-ct .ew-ct__note { margin: 0 !important; padding: 14px 18px; background: #EDE8DF; border-radius: 6px; font-size: 15.5px; line-height: 1.6; color: #1C1C1C; }
.ew-ct .ew-ct__mail { margin: 0 0 12px !important; font-size: 16.5px; line-height: 1.6; color: #1C1C1C; }
.ew-ct__card { background: #fff; border: 0.5px solid #D8D3CA; border-radius: 14px; box-shadow: 0 8px 28px rgba(0,45,87,0.10); padding: 42px 46px 44px; scroll-margin-top: 130px; }
.ew-ct .ew-ct__h { margin: 0 0 8px !important; font-size: 30px; line-height: 1.2; color: #00539F; }
.ew-ct .ew-ct__intro { margin: 0 0 28px !important; font-size: 17px; line-height: 1.6; color: #5A5A5A; }
.ew-ct .ew-ct__err { margin: 0 0 22px !important; padding: 14px 18px; border: 1.5px solid #E03A3E; border-radius: 6px; background: #fff; color: #861517; font-size: 15.5px; font-weight: 600; line-height: 1.55; }
.ew-ct__form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; margin: 0; }
.ew-ct__field { display: grid; gap: 7px; align-content: start; }
.ew-ct__field--full { grid-column: 1 / -1; }
.ew-ct__field label { margin: 0; font-size: 15px; font-weight: 600; color: #1C1C1C; }
.ew-ct__opt { font-weight: 400; color: #5A5A5A; }
.ew-ct__form input, .ew-ct__form select, .ew-ct__form textarea { width: 100%; box-sizing: border-box; margin: 0; font: inherit; font-size: 17px; line-height: 1.4; padding: 13px 14px; border: 1px solid #D8D3CA; border-radius: 6px; background: #fff; color: #1C1C1C; box-shadow: none; }
.ew-ct__form textarea { line-height: 1.55; resize: vertical; min-height: 150px; }
.ew-ct__form input:focus, .ew-ct__form select:focus, .ew-ct__form textarea:focus { outline: none; border-color: #00539F; box-shadow: 0 0 0 3px rgba(0,83,159,0.18); }
.ew-ct__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ew-ct .ew-ct__fine { grid-column: 1 / -1; margin: -4px 0 0 !important; font-size: 15px; line-height: 1.55; color: #5A5A5A; }
.ew-ct__submit { grid-column: 1 / -1; justify-self: start; cursor: pointer; border: 0; font: inherit; font-weight: 700; font-size: 16px; letter-spacing: 0.04em; line-height: 1.2; padding: 16px 30px; border-radius: 4px; background: #00539F; color: #fff; transition: background 0.2s ease; }
.ew-ct__submit:hover { background: #002D57; }
.ew-ct__submit:focus-visible { outline: 3px solid #CFA35C; outline-offset: 2px; }
.ew-ct__sent { padding: 24px 0 12px; }
.ew-ct__sent img { width: 64px; height: auto; display: block; margin: 0 0 20px; }
.ew-ct__sent .ew-ct__intro { max-width: 460px; margin-bottom: 26px !important; }
@media (max-width: 900px) {
  .ew-ct__inner { grid-template-columns: 1fr; gap: 48px; padding: 64px 24px 72px; }
  .ew-ct__card { padding: 30px 24px 32px; }
}
@media (max-width: 560px) {
  .ew-ct__form { grid-template-columns: 1fr; }
  .ew-ct__field { grid-column: 1 / -1; }
}

/* Map */
.ew-map { background: #EDE8DF; border-top: 3px solid #CFA35C; }
.ew-map iframe { display: block; width: 100%; border: 0; }

/* =====================================================================
   v1.46 — EWFCU Secure Form (Jotform embed)
   ===================================================================== */
.ew-sf { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0 !important; margin-bottom: 0 !important; background: #F5F0E8; }
.ew-sf--deep { background: #EDE8DF; border-top: 1px solid #E8E3DC; border-bottom: 1px solid #E8E3DC; }
.ew-sf::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-sf__inner { position: relative; z-index: 1; max-width: 880px; margin: 0 auto; padding: 84px 40px 92px; }
.ew-sf .ew-sf__eyebrow { margin: 0 0 12px !important; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-sf .ew-sf__heading { margin: 0 0 14px !important; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-sf .ew-sf__heading em { color: #A87B2F; }
.ew-sf .ew-sf__intro { margin: 0 0 32px !important; font-size: 18px; line-height: 1.7; color: #5A5A5A; }
.ew-sf__card { background: #fff; border: 0.5px solid #D8D3CA; border-radius: 14px; box-shadow: 0 8px 28px rgba(0,45,87,0.10); overflow: hidden; }
.ew-sf .ew-sf__note { margin: 0 !important; display: flex; gap: 12px; align-items: flex-start; padding: 16px 26px; background: #002D57; color: #fff; font-size: 15.5px; line-height: 1.55; }
.ew-sf__note svg { flex: none; width: 18px; height: 18px; margin-top: 2px; fill: none; stroke: #EFC97F; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ew-sf__frame { padding: 8px 10px 0; }
.ew-sf__frame iframe { display: block; width: 100%; border: 0; }
.ew-sf .ew-sf__alt { margin: 0 !important; padding: 14px 26px 18px; border-top: 1px solid #E8E3DC; font-size: 15px; line-height: 1.5; }
.ew-sf__alt a { color: #00539F; font-weight: 700; }
.ew-sf__alt a:hover { color: #002D57; }
.ew-sf__placeholder { margin: 18px 26px; padding: 48px 24px; border: 1px dashed #A87B2F; border-radius: 10px; background: #FBF8F3; text-align: center; color: #7A5920; font-size: 15px; line-height: 1.5; }
@media (max-width: 760px) {
  .ew-sf__inner { padding: 56px 16px 64px; }
  .ew-sf .ew-sf__heading { font-size: 28px; }
  .ew-sf .ew-sf__note { padding: 14px 18px; }
  .ew-sf__frame { padding: 4px 0 0; }
  .ew-sf .ew-sf__alt { padding: 12px 18px 16px; }
}

/* v1.47 — contact note holds rich text */
.ew-ct .ew-ct__note p { margin: 0 !important; }
.ew-ct .ew-ct__note p + p { margin-top: 8px !important; }
.ew-ct .ew-ct__note a { color: #00539F; font-weight: 700; }

/* =====================================================================
   v1.48 — drag-and-drop Contact page
   ===================================================================== */
/* Message Form block sitting inside a Kadence column (not full-bleed) */
.ew-ct.ew-ct--embed { width: auto; margin-left: 0; background: none; }
.ew-ct.ew-ct--embed::after { content: none; }
.ew-ct--embed .ew-ct__card { scroll-margin-top: 130px; }
@media (max-width: 900px) { .ew-ct--embed .ew-ct__card { padding: 30px 24px 32px; } }
/* Group → Styles → Note box */
.wp-block-group.is-style-ew-note { background: #EDE8DF; border-radius: 6px; padding: 14px 18px; }
.wp-block-group.is-style-ew-note > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-group.is-style-ew-note > * + * { margin-top: 8px !important; }
.wp-block-group.is-style-ew-note p { font-size: 15.5px; line-height: 1.6; }
/* Details column in the Contact page pattern */
.ew-ct-details .wp-block-separator { border: 0; border-top: 1px solid #D8D3CA; opacity: 1; margin: 28px 0 !important; }
.ew-ct-details h6.wp-block-heading { margin-bottom: 10px !important; }
.ew-ct-details h3.wp-block-heading { margin-top: 0 !important; margin-bottom: 14px !important; }
.ew-ct-details h3 a { text-decoration: none; }
.ew-ct-details p { margin-top: 0 !important; margin-bottom: 12px !important; }

/* v1.49 — Contact page row: background runs edge to edge, content stays in
   the site's 1200px column (also fixes rows inserted from the 1.48 pattern). */
.kb-row-layout-wrap.ew-ct-row > .kt-row-column-wrap { max-width: var(--ew-content, 1200px); margin-left: auto; margin-right: auto; }
@media (max-width: 1024px) { .kb-row-layout-wrap.ew-ct-row > .kt-row-column-wrap { padding-left: 24px; padding-right: 24px; } }

/* =====================================================================
   v1.51 — Contact page design 2a
   ===================================================================== */
/* Paragraph → Styles → Eyebrow (same as the site's section eyebrows) */
p.is-style-ew-eyebrow { font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 15px !important; font-weight: 700; line-height: 1.5; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; margin-top: 0 !important; margin-bottom: 10px !important; }
.ew-paper-dark p.is-style-ew-eyebrow { color: #EFC97F; }
/* Paragraph → Styles → Hours row: bold days left, time right */
p.is-style-ew-hours { display: flex; justify-content: space-between; gap: 16px; }
/* Group → Styles → Icon: location / phone / email / mail */
.wp-block-group[class*="is-style-ew-ci-"] { position: relative; padding-left: 66px; margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-group[class*="is-style-ew-ci-"]::before { content: ""; position: absolute; left: 0; top: -12px; width: 46px; height: 46px; box-sizing: border-box; border-radius: 50%; background: #fff no-repeat center / 20px 20px; border: 0.5px solid #D8D3CA; box-shadow: 0 2px 8px rgba(0,45,87,0.06); }
.wp-block-group.is-style-ew-ci-pin::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300539F' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.wp-block-group.is-style-ew-ci-phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300539F' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.wp-block-group.is-style-ew-ci-email::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300539F' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8'/%3E%3C/svg%3E"); }
.wp-block-group.is-style-ew-ci-mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300539F' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
.wp-block-group[class*="is-style-ew-ci-"] > * { margin-top: 0 !important; margin-bottom: 10px !important; }
.wp-block-group[class*="is-style-ew-ci-"] > *:last-child { margin-bottom: 0 !important; }
.wp-block-group[class*="is-style-ew-ci-"] > p.is-style-ew-hours { margin-bottom: 2px !important; }
.wp-block-group[class*="is-style-ew-ci-"] > p.is-style-ew-hours + p:not(.is-style-ew-hours) { margin-top: 10px !important; }
.wp-block-group[class*="is-style-ew-ci-"] + .wp-block-group[class*="is-style-ew-ci-"] { margin-top: 30px !important; }
/* Group → Styles → Lock note (navy) */
.wp-block-group.is-style-ew-lock-note { position: relative; background: #002D57; color: #fff; border-radius: 8px; padding: 16px 20px 16px 50px; margin-top: 36px !important; margin-bottom: 0 !important; }
.wp-block-group.is-style-ew-lock-note::before { content: ""; position: absolute; left: 20px; top: 19px; width: 18px; height: 18px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23EFC97F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='11' x='3' y='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }
.wp-block-group.is-style-ew-lock-note > * { margin: 0 !important; font-size: 16px !important; line-height: 1.6; color: #fff; }
.wp-block-group.is-style-ew-lock-note > * + * { margin-top: 8px !important; }
.wp-block-group.is-style-ew-lock-note strong { color: #EFC97F; }
.wp-block-group.is-style-ew-lock-note a { color: #fff; text-decoration-color: #CFA35C; }
/* Details column: one size, gold-underlined links, heading lines up with the card's */
.ew-ct-details h2.wp-block-heading { font-size: 30px; line-height: 1.2; color: #00539F; margin-top: 0 !important; margin-bottom: 30px !important; }
.ew-ct-details p { font-size: 18px; line-height: 1.65; color: #1C1C1C; }
.ew-ct-details a { color: #00539F; font-weight: 700; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 5px; transition: color 0.2s ease; }
.ew-ct-details a:hover { color: #002D57; }
.ew-ct-details .is-style-ew-lock-note a { color: #fff; }
@media (min-width: 1025px) { .ew-ct-details > .kt-inside-inner-col { padding-top: 43px; } }
/* Message card holding a Jotform form */
.ew-ct__card--jf .ew-ct__jf iframe { display: block; width: 100%; border: 0; }
.ew-ct__jf-ph { display: grid; gap: 8px; justify-items: center; text-align: center; min-height: 420px; align-content: center; padding: 32px; border: 1.5px dashed #A87B2F; border-radius: 10px; background: #FBF8F3; color: #5A5A5A; font-size: 16px; line-height: 1.6; }
.ew-ct__jf-ph strong { font-family: var(--ew-font-display, 'Arvo', serif); font-size: 20px; color: #7A5920; }

/* =====================================================================
   v1.52 — Block toolkit (About page)
   ===================================================================== */
/* Row helpers — Kadence Row Layout → Advanced → Additional CSS class(es) */
.kb-row-layout-wrap.ew-row > .kt-row-column-wrap { max-width: var(--ew-content, 1200px); margin-left: auto; margin-right: auto; }
body .kb-row-layout-wrap.ew-row > .kt-row-column-wrap { padding-left: var(--ew-gutter, 40px); padding-right: var(--ew-gutter, 40px); }
@media (max-width: 600px) { body .kb-row-layout-wrap.ew-row > .kt-row-column-wrap { padding-left: 16px; padding-right: 16px; } }
.ew-valign-middle > .kt-row-column-wrap { align-items: center; }
.ew-tooth { background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile); }
.ew-grad-blue { background-image: linear-gradient(160deg, #00539F 0%, #002D57 60%, #001A33 100%); }
.ew-tooth.ew-grad-blue { background-image: var(--ew-texture-paper), linear-gradient(160deg, #00539F 0%, #002D57 60%, #001A33 100%); background-size: var(--ew-texture-tile), auto; }
.ew-row .kt-inside-inner-col > :first-child { margin-top: 0; }
.ew-row .kt-inside-inner-col > :last-child { margin-bottom: 0; }
.ew-row h2.wp-block-heading { margin: 0 0 16px; color: #00539F; text-wrap: balance; }
.ew-row h3.wp-block-heading { margin: 0 0 10px; color: #002D57; }
.ew-row p { margin: 0 0 22px; }
.ew-row :is(ul, ol).wp-block-list { margin: 0 0 22px; }
.ew-row .wp-block-buttons { gap: 16px 24px; align-items: center; }
.ew-row .wp-block-columns { margin: 24px 0 0; gap: 28px; }
/* Gold phrase in any heading: select words → Italic */
.wp-block-heading em { font-style: italic; color: #A87B2F; }
/* Blue rows */
.ew-on-dark { color: #fff; }
.ew-on-dark p, .ew-on-dark li { color: rgba(255,255,255,0.94); }
.ew-row.ew-on-dark :is(h1, h2, h3, h4).wp-block-heading { color: #fff; }
.ew-on-dark .wp-block-heading em { color: #EFC97F; }
.ew-on-dark strong { color: #EFC97F; }
.ew-on-dark p.is-style-ew-eyebrow { color: #EFC97F; }
.ew-on-dark a:not(.wp-block-button__link) { color: #fff; text-decoration-color: #CFA35C; }

/* Paragraph → Styles */
p.is-style-ew-intro { font-size: 18px; line-height: 1.7; color: #5A5A5A; max-width: 760px; margin-bottom: 28px; }
.ew-on-dark p.is-style-ew-intro { color: rgba(255,255,255,0.88); }
p.is-style-ew-large { font-size: 20px; line-height: 1.75; }
p.is-style-ew-big-number { margin: 0 0 32px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: clamp(88px, 11vw, 150px); line-height: 0.95; letter-spacing: -0.02em; color: #A87B2F; }
.ew-on-dark p.is-style-ew-big-number { color: #CFA35C; }
p.is-style-ew-pull { margin: 34px 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: clamp(26px, 3vw, 34px); line-height: 1.3; color: #00539F; text-wrap: balance; }
.ew-on-dark p.is-style-ew-pull { color: #EFC97F; }
p.is-style-ew-closing-line { margin: 40px 0 0; padding-top: 28px; border-top: 2px solid #CFA35C; font-family: var(--ew-font-display, 'Arvo', serif); font-style: italic; font-weight: 700; font-size: clamp(21px, 2.4vw, 26px); line-height: 1.45; color: #002D57; }
.ew-on-dark p.is-style-ew-closing-line { color: #fff; }
p.is-style-ew-caption { font-size: 15px; line-height: 1.5; color: #5A5A5A; }
.ew-on-dark p.is-style-ew-caption { color: rgba(255,255,255,0.88); }
p.is-style-ew-tl-year { font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 30px; line-height: 1.05; color: #00539F; }

/* Image → Styles */
.wp-block-image.is-style-ew-framed { margin: 0; }
.wp-block-image.is-style-ew-framed img { display: block; width: 100%; height: auto; box-sizing: border-box; border: 8px solid #fff; border-radius: 6px; background: #fff; box-shadow: 0 8px 28px rgba(0,45,87,0.14); }
.wp-block-image.is-style-ew-framed figcaption { margin: 12px 0 0; font-size: 15px; line-height: 1.5; color: #5A5A5A; text-align: left; }
.ew-on-dark .wp-block-image.is-style-ew-framed img { box-shadow: 0 12px 36px rgba(0,0,0,0.35); }
.ew-on-dark .wp-block-image.is-style-ew-framed figcaption { color: rgba(255,255,255,0.88); }
.wp-block-image.is-style-ew-avatar { margin: 0; width: 140px; }
.wp-block-image.is-style-ew-avatar img { display: block; width: 140px; height: 140px; object-fit: cover; box-sizing: border-box; border-radius: 50%; border: 4px solid #CFA35C; }

/* List → Styles */
ul.wp-block-list.is-style-ew-bolts, ul.wp-block-list.is-style-ew-plain { list-style: none; padding-left: 0; display: grid; }
ul.wp-block-list.is-style-ew-bolts { gap: 16px; }
ul.is-style-ew-bolts > li { position: relative; margin: 0; padding-left: 58px; font-size: 18px; line-height: 1.6; }
ul.is-style-ew-bolts > li::before { content: ""; position: absolute; left: 0; top: 0.42em; width: 42px; height: 18px; background: url(assets/img/bolt-gold.png) center / contain no-repeat; }
ul.wp-block-list.is-style-ew-plain { gap: 12px; }
ul.is-style-ew-plain > li { margin: 0; font-size: 18px; line-height: 1.6; }

/* Button → Styles */
.wp-block-button.is-style-ew-red .wp-block-button__link { background: var(--ew-red, #D9363A); color: #fff; }
.wp-block-button.is-style-ew-red .wp-block-button__link:hover { background: #B82C30; color: #fff; }
.wp-block-button.is-style-ew-blue .wp-block-button__link { background: #00539F; color: #fff; }
.wp-block-button.is-style-ew-blue .wp-block-button__link:hover { background: #002D57; color: #fff; }
.wp-block-button.is-style-ew-outline .wp-block-button__link { background: transparent; color: #002D57; box-shadow: inset 0 0 0 2px #002D57; }
.wp-block-button.is-style-ew-outline .wp-block-button__link:hover { background: #002D57; color: #fff; }
.wp-block-button.is-style-ew-outline-white .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.85); }
.wp-block-button.is-style-ew-outline-white .wp-block-button__link:hover { background: #fff; color: #00539F; }
.wp-block-button.is-style-ew-link .wp-block-button__link { background: none; box-shadow: none; padding: 0; min-height: 0; border-radius: 0; font-size: 17px; letter-spacing: 0; text-transform: none; color: #00539F; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.wp-block-button.is-style-ew-link .wp-block-button__link:hover { background: none; color: #002D57; }
.ew-on-dark .wp-block-button.is-style-ew-link .wp-block-button__link { color: #fff; }

/* Group → Styles → Card / Card (raised) */
.wp-block-group:is(.is-style-ew-card, .is-style-ew-card-raised) { box-sizing: border-box; background: #fff; border: 0.5px solid #D8D3CA; border-radius: 14px; box-shadow: 0 2px 12px rgba(0,45,87,0.08); padding: 36px 32px; color: #1C1C1C; }
.wp-block-group.is-style-ew-card-raised { box-shadow: 0 8px 28px rgba(0,45,87,0.10); padding: 40px 42px; }
.wp-block-column > .wp-block-group.is-style-ew-card { height: 100%; }
:is(.is-style-ew-card, .is-style-ew-card-raised, .is-style-ew-card > .wp-block-group__inner-container, .is-style-ew-card-raised > .wp-block-group__inner-container) > :first-child { margin-top: 0 !important; }
:is(.is-style-ew-card, .is-style-ew-card-raised, .is-style-ew-card > .wp-block-group__inner-container, .is-style-ew-card-raised > .wp-block-group__inner-container) > :last-child { margin-bottom: 0 !important; }
:is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > h3.wp-block-heading { margin: 0 0 12px; font-size: 28px; line-height: 1.2; color: #00539F; }
:is(.is-style-ew-card-raised, .is-style-ew-card-raised > .wp-block-group__inner-container) > h3.wp-block-heading { margin: 0 0 18px; font-size: 26px; line-height: 1.25; color: #00539F; }
:is(.is-style-ew-card, .is-style-ew-card-raised, .is-style-ew-card > .wp-block-group__inner-container, .is-style-ew-card-raised > .wp-block-group__inner-container) > p { font-size: 18px; line-height: 1.65; color: #5A5A5A; }
:is(.is-style-ew-card, .is-style-ew-card-raised, .is-style-ew-card > .wp-block-group__inner-container, .is-style-ew-card-raised > .wp-block-group__inner-container) > p.is-style-ew-eyebrow { color: #7A5920; }
:is(.is-style-ew-card, .is-style-ew-card-raised) li { color: #1C1C1C; }
:is(.is-style-ew-card, .is-style-ew-card-raised) .wp-block-group.is-style-ew-note { margin: 0 0 28px; }
:is(.is-style-ew-card, .is-style-ew-card-raised) .wp-block-group.is-style-ew-note p { margin: 0; font-size: 16px; color: #1C1C1C; }
@media (max-width: 600px) { .wp-block-group:is(.is-style-ew-card, .is-style-ew-card-raised) { padding: 30px 24px; } }

/* Group → Styles → Sticky on scroll (desktop only) */
@media (min-width: 1025px) {
  .wp-block-group.is-style-ew-sticky { position: sticky; top: 140px; }
  .wp-block-kadence-column:has(.is-style-ew-sticky) { align-self: stretch; }
  .wp-block-kadence-column:has(.is-style-ew-sticky) > .kt-inside-inner-col { height: 100%; }
}
:is(.is-style-ew-sticky, .is-style-ew-sticky > .wp-block-group__inner-container) > p.is-style-ew-eyebrow { margin-bottom: 6px !important; }

/* Group → Styles → Timeline / Timeline entry / Timeline milestone */
.wp-block-group.is-style-ew-timeline { position: relative; margin: 48px 0 0; }
.wp-block-group.is-style-ew-timeline::before { content: ""; position: absolute; left: 221px; top: 18px; bottom: 72px; width: 2px; background: #CFA35C; }
.wp-block-group:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone) { position: relative; display: grid; grid-template-columns: 170px 40px minmax(0, 1fr) minmax(0, 420px); grid-template-rows: repeat(10, auto) 1fr; column-gap: 32px; align-items: start; margin: 0; padding: 0 0 72px; }
.wp-block-group:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone)::before { content: ""; position: absolute; left: 215px; top: 12px; width: 14px; height: 14px; box-sizing: border-box; border-radius: 50%; background: #CFA35C; box-shadow: 0 0 0 6px #F5F0E8; }
.wp-block-group.is-style-ew-tl-milestone::before { left: 211px; top: 8px; width: 22px; height: 22px; background: #00539F; border: 4px solid #CFA35C; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone) > .wp-block-group__inner-container { display: contents; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > * { grid-column: 3; margin-top: 0; margin-bottom: 12px; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone):not(:has(.wp-block-image)) > *,
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone):not(:has(.wp-block-image)) > .wp-block-group__inner-container > * { grid-column: 3 / -1; max-width: 680px; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > p.is-style-ew-tl-year { grid-column: 1; grid-row: 1 / -1; max-width: none; margin: 4px 0 0; text-align: right; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > .wp-block-image { grid-column: 4; grid-row: 1 / -1; margin: 0; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > h3.wp-block-heading { margin-bottom: 10px; font-size: 24px; line-height: 1.3; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > p:not(.is-style-ew-tl-year) { font-size: 18px; line-height: 1.7; }
:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > .wp-block-group.is-style-ew-card-raised { padding: 30px 32px 32px; }
:is(.is-style-ew-tl-milestone, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > p.is-style-ew-tl-year { color: #A87B2F; }
@media (max-width: 900px) {
  .wp-block-group.is-style-ew-timeline::before { left: 6px; top: 10px; bottom: 48px; }
  .wp-block-group:is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone) { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; column-gap: 0; padding: 0 0 48px 40px; }
  .wp-block-group.is-style-ew-tl-entry::before { left: 0; top: 8px; }
  .wp-block-group.is-style-ew-tl-milestone::before { left: -4px; top: 4px; }
  :is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > * { grid-column: 1 !important; grid-row: auto !important; max-width: none !important; }
  :is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > p.is-style-ew-tl-year { margin: 0 0 8px; text-align: left; }
  :is(.is-style-ew-tl-entry, .is-style-ew-tl-milestone, .is-style-ew-tl-entry > .wp-block-group__inner-container, .is-style-ew-tl-milestone > .wp-block-group__inner-container) > .wp-block-image { margin-top: 12px; }
}

/* Group → Styles → Quote with photo */
.wp-block-group.is-style-ew-quote-photo { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 44px; align-items: center; max-width: 880px; margin-left: auto; margin-right: auto; }
.wp-block-group.is-style-ew-quote-photo:not(:has(.wp-block-image)) { grid-template-columns: minmax(0, 1fr); }
.is-style-ew-quote-photo > .wp-block-group__inner-container { display: contents; }
.wp-block-group.is-style-ew-quote-photo .wp-block-quote { margin: 0; padding: 0; border: 0; background: none; }
.wp-block-group.is-style-ew-quote-photo .wp-block-quote::before { content: none; }
.wp-block-group.is-style-ew-quote-photo .wp-block-quote p { margin: 0 0 20px; font-family: var(--ew-font-display, 'Arvo', serif); font-style: italic; font-weight: 700; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.4; color: #002D57; }
.wp-block-group.is-style-ew-quote-photo .wp-block-quote cite { display: block; font-style: normal; font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-on-dark .wp-block-group.is-style-ew-quote-photo .wp-block-quote p { color: #fff; }
.ew-on-dark .wp-block-group.is-style-ew-quote-photo .wp-block-quote cite { color: #EFC97F; }
@media (max-width: 640px) { .wp-block-group.is-style-ew-quote-photo { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* EWFCU Icon block */
.ew-icon { display: flex; margin: 0 0 24px; }
.ew-icon--center { justify-content: center; }
.ew-icon__disc { display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; border-radius: 50%; background: #00539F; }
.ew-icon__disc svg { width: 36px; height: 36px; fill: none; stroke: #EFC97F; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ew-icon--s .ew-icon__disc { width: 56px; height: 56px; } .ew-icon--s .ew-icon__disc svg { width: 26px; height: 26px; }
.ew-icon--l .ew-icon__disc { width: 96px; height: 96px; } .ew-icon--l .ew-icon__disc svg { width: 46px; height: 46px; }
.ew-icon--deep .ew-icon__disc { background: #002D57; }
.ew-icon--gold .ew-icon__disc { background: #CFA35C; } .ew-icon--gold .ew-icon__disc svg { stroke: #002D57; }
.ew-icon--cream .ew-icon__disc { background: #EDE8DF; } .ew-icon--cream .ew-icon__disc svg { stroke: #00539F; }
.ew-icon--plain .ew-icon__disc { width: auto; height: auto; background: none; border-radius: 0; }
.ew-icon--plain .ew-icon__disc svg { width: 44px; height: 44px; stroke: #00539F; stroke-width: 1.6; }
.ew-icon--plain.ew-icon--s .ew-icon__disc svg { width: 32px; height: 32px; }
.ew-icon--plain.ew-icon--l .ew-icon__disc svg { width: 56px; height: 56px; }
.ew-on-dark .ew-icon--plain .ew-icon__disc svg { stroke: #EFC97F; }

/* Closing CTA: eyebrow + gold phrase */
.ew-closecta__eyebrow { margin: 0 0 14px !important; font-size: 15px !important; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920 !important; }
.ew-closecta--dark .ew-closecta__eyebrow { color: #EFC97F !important; }
.ew-closecta-band--solid-gold .ew-closecta__eyebrow, .ew-closecta-band--gold .ew-closecta__eyebrow { color: #002D57 !important; }
.ew-closecta__heading em { font-style: italic; color: #A87B2F; }
.ew-closecta--dark .ew-closecta__heading em { color: #EFC97F; }
.ew-closecta-band--solid-gold .ew-closecta__heading em, .ew-closecta-band--gold .ew-closecta__heading em { color: #002D57; }

/* =====================================================================
   v1.53 — Page Header paper layouts (Layout: prints / band / scrapbook)
   ===================================================================== */
.ew-pagehead.ew-pagehead--paper { background: #F5F0E8; color: #1C1C1C; border-bottom: 3px solid #CFA35C; }
.ew-pagehead.ew-pagehead--paper.ew-pagehead--deep { background: #EDE8DF; }
.ew-pagehead--paper .ew-pagehead__inner { padding: 64px var(--ew-gutter, 40px) 64px !important; }
.ew-pagehead--paper .ew-pagehead__eyebrow { color: #7A5920; }
.ew-pagehead.ew-pagehead--paper .ew-pagehead__title { margin: 0 0 20px !important; font-size: clamp(34px, 4.4vw, 54px); line-height: 1.1; max-width: none; color: #00539F !important; text-wrap: balance; }
.ew-pagehead.ew-pagehead--paper .ew-pagehead__title em { font-style: italic; color: #A87B2F !important; }
.ew-pagehead--paper .ew-pagehead__body { max-width: 520px; color: #5A5A5A; }
.ew-print__ph { box-sizing: border-box; display: flex; align-items: center; justify-content: center; text-align: center; width: 100%; height: 100%; min-height: 160px; padding: 20px; border: 1.5px dashed #A87B2F; border-radius: 6px; background: #FBF8F3; color: #7A5920; font-size: 15px; line-height: 1.5; }
.ew-print__ph--wide { min-height: 200px; }

/* Pinned prints */
.ew-pagehead__split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.ew-pagehead__split--solo { grid-template-columns: minmax(0, 1fr); }
.ew-pagehead__prints { position: relative; width: 100%; max-width: 528px; aspect-ratio: 1 / 1; justify-self: end; }
.ew-print { position: absolute; margin: 0; }
.ew-print img { display: block; width: 100%; height: auto; object-fit: cover; box-sizing: border-box; border: 10px solid #fff; border-radius: 3px; background: #fff; box-shadow: 0 14px 36px rgba(0,45,87,0.22); }
.ew-print--main { left: 38%; top: 0; width: 62%; transform: rotate(2deg); z-index: 1; }
.ew-print--main img { aspect-ratio: 73 / 100; }
.ew-print--main .ew-print__ph { aspect-ratio: 73 / 100; }
.ew-print--small { left: 0; top: 42%; width: 43%; transform: rotate(-5deg); z-index: 2; }
.ew-print--small img { aspect-ratio: 85 / 100; border-width: 8px; box-shadow: 0 14px 36px rgba(0,45,87,0.26); }
.ew-print--small .ew-print__ph { aspect-ratio: 85 / 100; }
.ew-print figcaption { position: absolute; left: 14px; right: 14px; bottom: -30px; text-align: right; font-size: 13px; line-height: 1.3; color: #5A5A5A; }

/* Photo band */
.ew-pagehead--paper .ew-pagehead__split--band { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: end; padding-bottom: 40px !important; }
.ew-pagehead.ew-pagehead--band .ew-pagehead__title { margin-bottom: 0 !important; }
.ew-pagehead--band .ew-pagehead__body { margin-bottom: 6px !important; }
.ew-pagehead__band { position: relative; z-index: 2; margin: 0; height: var(--ew-band-h, 380px); overflow: hidden; border-top: 3px solid #CFA35C; }
.ew-pagehead__band img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ew-pagehead__band .ew-print__ph { border-radius: 0; }
.ew-pagehead__band figcaption { position: absolute; right: 40px; bottom: 14px; background: #F5F0E8; padding: 6px 12px; border-radius: 3px; font-size: 13px; line-height: 1.3; color: #5A5A5A; }

/* Scrapbook */
.ew-pagehead__center { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.ew-pagehead__center .ew-pagehead__body { margin-left: auto !important; margin-right: auto !important; max-width: 600px; }
.ew-pagehead__book { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: start; padding: 0 12px; }
.ew-book { position: relative; margin: 0 -10px 0 0; }
.ew-book:last-child { margin-right: 0; }
.ew-book img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-sizing: border-box; border: 8px solid #fff; border-radius: 3px; background: #fff; box-shadow: 0 10px 28px rgba(0,45,87,0.20); }
.ew-book--label img { border-bottom-width: 40px; }
.ew-book figcaption { position: absolute; left: 14px; bottom: 9px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 17px; line-height: 1.2; color: #7A5920; }
.ew-book:nth-child(6n+1) { transform: rotate(-3deg); z-index: 1; }
.ew-book:nth-child(6n+2) { transform: rotate(2deg); margin-top: 28px; z-index: 2; }
.ew-book:nth-child(6n+3) { transform: rotate(-1.5deg); margin-top: 6px; z-index: 3; }
.ew-book:nth-child(6n+4) { transform: rotate(2.5deg); margin-top: 32px; z-index: 2; }
.ew-book:nth-child(6n+5) { transform: rotate(-2deg); margin-top: 4px; z-index: 1; }
.ew-book:nth-child(6n+6) { transform: rotate(1.5deg); margin-top: 20px; z-index: 2; }

@media (max-width: 900px) {
  .ew-pagehead__split, .ew-pagehead--paper .ew-pagehead__split--band { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .ew-pagehead--paper .ew-pagehead__split--band { gap: 16px; }
  .ew-pagehead__prints { justify-self: center; max-width: 440px; }
  .ew-pagehead__band { height: min(var(--ew-band-h, 380px), 56vw); }
  .ew-pagehead__band figcaption { right: 16px; bottom: 10px; }
}
@media (max-width: 700px) {
  .ew-pagehead__book { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; padding: 0; }
  .ew-book { margin: 0 !important; }
}
@media (max-width: 600px) {
  .ew-pagehead--paper .ew-pagehead__inner { padding: 48px 24px 52px !important; }
  .ew-pagehead--paper .ew-pagehead__split--band { padding-bottom: 28px !important; }
  .ew-pagehead__prints { max-width: 340px; }
}

/* =====================================================================
   v1.54 — Page Header: Archive photo layout
   ===================================================================== */
.ew-pagehead.ew-pagehead--archive { background: #A87B2F; isolation: isolate; border-bottom: 3px solid #E03A3E; }
.ew-pagehead--archive.ew-pagehead--line-gold { border-bottom-color: #CFA35C; }
.ew-pagehead--archive.ew-pagehead--line-none { border-bottom: 0; }
.ew-pagehead__arch { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; filter: grayscale(1) contrast(1.1); mix-blend-mode: multiply; }
.ew-pagehead__shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(to top right, rgba(0,0,0,var(--ew-shade, 0.62)) 0%, rgba(0,0,0,calc(var(--ew-shade, 0.62) * 0.39)) 45%, rgba(0,0,0,0) 85%); }
.ew-pagehead--archive .ew-pagehead__inner { padding: 84px var(--ew-gutter, 40px) 88px !important; }
.ew-pagehead--archive .ew-pagehead__words { max-width: 600px; }
.ew-pagehead--archive .ew-pagehead__eyebrow { color: #EFC97F; text-shadow: 0 1px 10px rgba(20,16,6,0.7); }
.ew-pagehead.ew-pagehead--archive .ew-pagehead__title { margin: 0 0 20px !important; max-width: none; font-size: clamp(34px, 4.4vw, 54px); line-height: 1.1; text-wrap: balance; text-shadow: 0 2px 18px rgba(20,16,6,0.6); }
.ew-pagehead.ew-pagehead--archive .ew-pagehead__title em { font-style: italic; color: #EFC97F !important; }
.ew-pagehead--archive .ew-pagehead__body { max-width: 520px; color: #fff; text-shadow: 0 1px 12px rgba(20,16,6,0.85); }
.ew-pagehead--archive .ew-hint { text-shadow: none; }
@media (max-width: 600px) { .ew-pagehead--archive .ew-pagehead__inner { padding: 56px 24px 60px !important; } }

/* =====================================================================
   v1.59 — Member Reviews: a review with no photo uses the full width
   (it was being squeezed into the 224px photo column), and the theme's
   default blockquote bar/padding no longer shows on the quote.
   ===================================================================== */
.ew-reviews-rotator > .ew-review.ew-review--nophoto,
.ew-reviews-rotator > .ew-review:not(:has(> .ew-review__photo)) { grid-template-columns: minmax(0, 1fr); }
.ew-review--nophoto .ew-review__body { max-width: 920px; }
.ew-review__body { min-width: 0; }
.ew-reviews blockquote.ew-review__quote { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; font-style: normal; quotes: none; }
.ew-reviews blockquote.ew-review__quote::before, .ew-reviews blockquote.ew-review__quote::after { content: none; }
.ew-review__who { flex-wrap: wrap; }
.ew-review__name { white-space: nowrap; }


/* =====================================================================
   v1.60 — Page Header button (all layouts)
   ===================================================================== */
.ew-pagehead .ew-pagehead__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 28px 0 0 !important; padding: 0 !important; position: relative; z-index: 3; }
.ew-pagehead__center .ew-pagehead__actions { justify-content: center; }
.ew-pagehead--band .ew-pagehead__side .ew-pagehead__actions { margin-top: 20px !important; margin-bottom: 6px !important; }
.ew-pagehead .ew-pagehead__btn {
  display: inline-block; font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 700; font-size: 16px; letter-spacing: 0.04em; line-height: 1.2;
  padding: 15px 28px; border-radius: 4px; text-decoration: none !important; text-shadow: none; box-shadow: none;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.ew-pagehead .ew-pagehead__btn:focus-visible { outline: 3px solid #EFC97F; outline-offset: 3px; }
.ew-pagehead--paper .ew-pagehead__btn:focus-visible { outline-color: #00539F; }
.ew-pagehead .ew-pagehead__btn--red { background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-pagehead .ew-pagehead__btn--red:hover, .ew-pagehead .ew-pagehead__btn--red:focus-visible { background: #B72E31; }
.ew-pagehead .ew-pagehead__btn--gold { background: #CFA35C; color: #002D57 !important; }
.ew-pagehead .ew-pagehead__btn--gold:hover, .ew-pagehead .ew-pagehead__btn--gold:focus-visible { background: #A87B2F; color: #fff !important; }
.ew-pagehead .ew-pagehead__btn--blue { background: #00539F; color: #fff !important; }
.ew-pagehead .ew-pagehead__btn--blue:hover, .ew-pagehead .ew-pagehead__btn--blue:focus-visible { background: #002D57; }
.ew-pagehead .ew-pagehead__btn--outline { border: 1.5px solid #fff; color: #fff !important; padding: 13.5px 26.5px; background: transparent; }
.ew-pagehead .ew-pagehead__btn--outline:hover, .ew-pagehead .ew-pagehead__btn--outline:focus-visible { background: #fff; color: #002D57 !important; }
.ew-pagehead--paper .ew-pagehead__btn--outline { border-color: #002D57; color: #002D57 !important; }
.ew-pagehead--paper .ew-pagehead__btn--outline:hover, .ew-pagehead--paper .ew-pagehead__btn--outline:focus-visible { background: #002D57; color: #fff !important; }
.ew-pagehead--archive .ew-pagehead__btn--outline { background: rgba(0,0,0,0.12); }
.ew-pagehead--archive .ew-pagehead__btn--outline:hover { background: #fff; }


/* =====================================================================
   v1.61 — Alerts (top bar on desktop, strip above the header on phones)
   ===================================================================== */
.ew-alerts { position: relative; z-index: 20; background: #003F78; color: #fff; font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif; border-bottom: 1px solid rgba(255,255,255,0.12); }
.ew-alerts.ew-alerts--empty { display: none !important; }
@media (min-width: 1025px) { .ew-alerts:not(.is-placed) { display: none; } }
.ew-alerts__inner { box-sizing: border-box; max-width: 1200px; margin: 0 auto; padding: 8px 20px; min-height: 44px; display: flex; align-items: center; gap: 12px; }
.ew-alerts__list { flex: 1 1 auto; min-width: 0; }
.ew-alerts .ew-alerts__item { margin: 0 !important; padding: 0 !important; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; font-size: 15px; line-height: 1.45; }
.ew-alerts .ew-alerts__item[hidden] { display: none !important; }
.ew-alerts .ew-alerts__label { flex: none; display: inline-block; padding: 4px 8px 3px; border-radius: 3px; font-size: 12px; font-weight: 700; line-height: 1.1; letter-spacing: 0.12em; text-transform: uppercase; background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-alerts .ew-alerts__item--gold .ew-alerts__label { background: #CFA35C; color: #002D57 !important; }
.ew-alerts .ew-alerts__text { min-width: 0; color: #fff !important; }
.ew-alerts .ew-alerts__link { flex: none; white-space: nowrap; font-weight: 700; color: #EFC97F !important; text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 3px; }
.ew-alerts .ew-alerts__link:hover, .ew-alerts .ew-alerts__link:focus-visible { color: #fff !important; }
.ew-alerts__pager { flex: none; display: flex; align-items: center; gap: 2px; }
.ew-alerts .ew-alerts__count { min-width: 44px; text-align: center; white-space: nowrap; font-size: 13px; color: rgba(255,255,255,0.8) !important; }
.ew-alerts .ew-alerts__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 4px; background: transparent; color: #fff; box-shadow: none; cursor: pointer; transition: background 0.18s ease, color 0.18s ease; }
.ew-alerts .ew-alerts__btn:hover { background: rgba(255,255,255,0.12); color: #EFC97F; }
.ew-alerts .ew-alerts__btn:focus-visible { outline: 2px solid #EFC97F; outline-offset: 0; }
.ew-alerts .ew-alerts__btn svg { width: 18px; height: 18px; display: block; }
.ew-alerts.ew-alerts--inbar { background: none; border: 0; z-index: auto; min-width: 0; max-width: 100%; }
.ew-alerts--inbar .ew-alerts__inner { max-width: none; margin: 0; padding: 0; min-height: 0; }
.ew-alerts--inbar .ew-alerts__item { flex-wrap: nowrap; }
.ew-alerts--inbar .ew-alerts__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ew-alerts--inbar .ew-alerts__btn { width: 30px; height: 30px; }
.ew-alerts--inbar .ew-alerts__count { min-width: 38px; }
.site-top-header-wrap .site-header-row.ew-has-alerts { grid-template-columns: minmax(0, 1fr) auto !important; column-gap: 32px; }
.site-header-row.ew-has-alerts > .site-header-section-left { min-width: 0; overflow: hidden; }
@media print { .ew-alerts { display: none !important; } }

/* v1.62 — Alerts: center vertically in the top bar (Kadence sections stretch
   to the row height and don't center their children). */
.site-top-header-wrap .site-header-row.ew-has-alerts { align-items: center !important; }
.site-header-row.ew-has-alerts > .site-header-section-left { display: flex !important; align-items: center !important; align-self: stretch; }
.ew-alerts.ew-alerts--inbar { display: flex; align-items: center; align-self: center; margin: 0 !important; padding: 0 !important; }
.ew-alerts--inbar .ew-alerts__inner { width: 100%; }
.ew-alerts--inbar .ew-alerts__item { line-height: 1.2; }
.ew-alerts--inbar .ew-alerts__label { position: relative; top: -1px; }

/* v1.64 — Home equity math under the figure in the Rates table */
.ew-rt-card tbody td .ew-rt-math { display: block; margin: 6px 0 0; max-width: 24em; font-family: var(--ew-font-body, 'Inter', sans-serif); font-weight: 500; font-size: 13.5px; line-height: 1.4; letter-spacing: 0; color: #5A5A5A; }


/* =====================================================================
   v1.66 — EWFCU Secure Form: the application sits on the page itself.
   No card. Optional sticky side column. Height comes from Jotform.
   ===================================================================== */
:root { --ew-sf-top: 136px; }
@media (max-width: 1024px) { :root { --ew-sf-top: 112px; } }
@media (max-width: 600px) { :root { --ew-sf-top: 96px; } }
.ew-sf__wrap { position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 48px var(--ew-gutter, 40px) 96px; box-sizing: border-box; }
.ew-sf__lede { max-width: 760px; margin: 0 0 36px; }
.ew-sf .ew-sf__lede .ew-sf__eyebrow { margin: 0 0 12px !important; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 15px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-sf .ew-sf__lede .ew-sf__heading { margin: 0 0 14px !important; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-sf .ew-sf__lede .ew-sf__heading em { font-style: italic; color: #A87B2F; }
.ew-sf .ew-sf__lede .ew-sf__intro { margin: 0 !important; max-width: 720px; font-size: 18px; line-height: 1.7; color: #5A5A5A; }
.ew-sf--solo .ew-sf__main { max-width: 800px; }
.ew-sf--side .ew-sf__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; column-gap: 72px; align-items: start; }
.ew-sf--side .ew-sf__main { min-width: 0; max-width: 800px; }
.ew-sf__app { position: relative; }
.ew-sf__app iframe { display: block; width: 100%; min-width: 100%; max-width: 100%; border: 0; background: transparent; scroll-margin-top: var(--ew-sf-top, 136px); }
.ew-sf__app.is-js.is-loading iframe { visibility: hidden; }
.ew-sf__loading { position: absolute; top: 0; left: 0; right: 0; z-index: 1; display: flex; flex-direction: column; gap: 14px; pointer-events: none; animation: ew-sf-quit 0s linear 10s forwards; }
.ew-sf__app:not(.is-loading) .ew-sf__loading { display: none; }
.ew-sf__loadbar { position: relative; display: block; height: 3px; border-radius: 2px; background: #E8E3DC; overflow: hidden; }
.ew-sf__loadbar span { position: absolute; top: 0; bottom: 0; left: -35%; width: 35%; border-radius: 2px; background: #CFA35C; animation: ew-sf-load 1.6s cubic-bezier(0.16, 1, 0.3, 1) infinite; }
.ew-sf__loadtext { font-size: 15px; line-height: 1.4; color: #5A5A5A; }
@keyframes ew-sf-load { from { left: -35%; } to { left: 100%; } }
@keyframes ew-sf-quit { to { visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .ew-sf__loadbar span { animation: none; left: 0; } }
.ew-sf .ew-sf__placeholder { margin: 0; }
.ew-sf .ew-sf__secure { display: flex; gap: 10px; align-items: flex-start; margin: 0 !important; padding: 0; max-width: 720px; background: none; font-size: 15px; line-height: 1.55; color: #5A5A5A; }
.ew-sf__secure svg { flex: none; width: 16px; height: 16px; margin-top: 3px; fill: none; stroke: #7A5920; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ew-sf--solo .ew-sf__secure { margin: 0 0 28px !important; }
.ew-sf .ew-sf__backup { margin: 0 !important; padding: 0; border: 0; font-size: 15px; line-height: 1.5; }
.ew-sf--solo .ew-sf__backup { margin: 32px 0 0 !important; }
.ew-sf .ew-sf__backup a { font-weight: 600; color: #00539F; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.ew-sf .ew-sf__backup a:hover, .ew-sf .ew-sf__backup a:focus-visible { color: #002D57; }
.ew-sf__side { min-width: 0; padding-top: 2px; }
.ew-sf.ew-sf--side .ew-sf__side > * { margin: 0 !important; }
.ew-sf.ew-sf--side .ew-sf__side > * + * { margin-top: 26px !important; padding-top: 26px !important; border-top: 1px solid #E8E3DC !important; }
.ew-sf.ew-sf--deep .ew-sf__side > * + * { border-top-color: #D8D3CA !important; }
@media (min-width: 1101px) and (min-height: 700px) { .ew-sf--side .ew-sf__side { position: sticky; top: var(--ew-sf-top, 136px); } }
.ew-sf .ew-sf__eyebrow2 { margin: 0 0 8px !important; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 13px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-sf .ew-sf__needh { margin: 0 0 18px !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 22px; line-height: 1.25; color: #002D57; }
.ew-sf .ew-sf__needs { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 14px; }
.ew-sf .ew-sf__needs li { margin: 0 !important; padding: 0 !important; display: flex; gap: 14px; align-items: center; font-size: 15.5px; line-height: 1.45; color: #1C1C1C; }
.ew-sf .ew-sf__needs li::before { content: none; }
.ew-sf__needicon { flex: none; width: 38px; height: 38px; border-radius: 50%; background: #EDE8DF; display: inline-flex; align-items: center; justify-content: center; }
.ew-sf--deep .ew-sf__needicon { background: #F5F0E8; }
.ew-sf__needicon svg { width: 20px; height: 20px; fill: none; stroke: #00539F; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ew-sf .ew-sf__helph { margin: 0 0 4px !important; font-size: 16px; font-weight: 700; line-height: 1.4; color: #002D57; }
.ew-sf .ew-sf__helpt { margin: 0 !important; font-size: 15px; line-height: 1.55; color: #5A5A5A; }
.ew-sf .ew-sf__helpt a { font-weight: 700; color: #00539F; text-decoration: none; }
.ew-sf .ew-sf__helpt a:hover, .ew-sf .ew-sf__helpt a:focus-visible { color: #002D57; text-decoration: underline; }
.ew-sf__needm { display: none; }
@media (max-width: 1100px) {
  .ew-sf--side .ew-sf__layout { display: block; }
  .ew-sf__sideneed { display: none; }
  .ew-sf.ew-sf--side .ew-sf__side > .ew-sf__sideneed + * { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; }
  .ew-sf--side .ew-sf__side { max-width: 800px; margin-top: 40px; padding-top: 28px; border-top: 1px solid #E8E3DC; }
  .ew-sf__needm { display: block; max-width: 800px; margin: 0 0 28px; border-top: 1px solid #D8D3CA; border-bottom: 1px solid #D8D3CA; }
  .ew-sf__needm > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 0; cursor: pointer; font-size: 16px; font-weight: 700; color: #002D57; }
  .ew-sf__needm > summary::-webkit-details-marker { display: none; }
  .ew-sf__needm > summary:focus-visible { outline: 2px solid #00539F; outline-offset: 2px; }
  .ew-sf__needm-n { font-weight: 400; color: #5A5A5A; }
  .ew-sf__needm-cue::after { content: "Show ↓"; font-size: 15px; font-weight: 600; color: #00539F; white-space: nowrap; }
  .ew-sf__needm[open] .ew-sf__needm-cue::after { content: "Hide ↑"; }
  .ew-sf .ew-sf__needm .ew-sf__needs { padding: 4px 0 18px !important; }
}
@media (max-width: 600px) {
  .ew-sf__wrap { padding: 28px 16px 64px; }
  .ew-sf .ew-sf__lede .ew-sf__heading { font-size: 28px; }
  body:has(.ew-sf) .ew-pagehead__inner { padding-left: 16px !important; padding-right: 16px !important; }
}
/* [ew_hours] list */
.ew-hours { display: inline-flex; flex-direction: column; gap: 2px; }
.ew-hours__row strong { font-weight: 700; }

/* =====================================================================
   v1.67 — EWFCU Loan Calculator (acf/ew-loan-calc). Its own band: dark
   gold by default (#8A6426, deep enough for white text at 5.3:1).
   Columns match the application above (1fr | 320px, gap 72); the
   payment column starts level with the eyebrow.
   ===================================================================== */
.ew-lc {
  --lc-ink: #1C1C1C; --lc-muted: #5A5A5A; --lc-head: #00539F; --lc-em: #A87B2F; --lc-eyebrow: #7A5920; --lc-per: #7A5920;
  --lc-rule: #E8E3DC; --lc-fill: #00539F; --lc-track: #D8D3CA; --lc-thumb: #00539F; --lc-focus: #00539F;
  position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0 !important; margin-bottom: 0 !important;
  background: #F5F0E8; color: var(--lc-ink);
}
.ew-lc::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-lc--deep { background: #EDE8DF; }
.ew-lc--white { background: #fff; }
.ew-lc--white::after { display: none; }
.ew-lc--gold { --lc-ink: #fff; --lc-muted: #fff; --lc-head: #fff; --lc-em: #EFC97F; --lc-eyebrow: #fff; --lc-per: #EFC97F; --lc-rule: rgba(255,255,255,0.3); --lc-fill: #fff; --lc-track: rgba(255,255,255,0.32); --lc-thumb: #002D57; --lc-focus: #fff; background: #8A6426; }
.ew-lc--union { --lc-ink: #fff; --lc-muted: #F5F0E8; --lc-head: #fff; --lc-em: #EFC97F; --lc-eyebrow: #EFC97F; --lc-per: #EFC97F; --lc-rule: rgba(255,255,255,0.22); --lc-fill: #CFA35C; --lc-track: rgba(255,255,255,0.28); --lc-thumb: #CFA35C; --lc-focus: #EFC97F; background: #00539F; }
.ew-lc--gold::after, .ew-lc--union::after { opacity: 0.85; }
.ew-lc__wrap { position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 72px var(--ew-gutter, 40px) 80px; box-sizing: border-box; }
.ew-lc--paper .ew-lc__wrap { padding-top: 0; }
.ew-lc--paper .ew-lc__wrap::before { content: ""; display: block; height: 1px; margin: 0 0 48px; background: #D8D3CA; }
.ew-lc__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; column-gap: 72px; align-items: start; }
.ew-lc__main { min-width: 0; max-width: 800px; }
.ew-lc__head { max-width: 760px; margin: 0 0 32px; }
.ew-lc .ew-lc__eyebrow, .ew-lc .ew-lc__rlabel { margin: 0 0 10px !important; padding: 0; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: 0.2em; text-transform: uppercase; color: var(--lc-eyebrow); }
.ew-lc .ew-lc__heading { margin: 0 0 10px !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 30px; line-height: 1.2; color: var(--lc-head); text-wrap: balance; }
.ew-lc .ew-lc__heading em { font-style: italic; color: var(--lc-em); }
.ew-lc .ew-lc__intro { margin: 0 !important; max-width: 640px; font-size: 16px; line-height: 1.6; color: var(--lc-muted); }
.ew-lc__inputs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 24px; }
.ew-lc__field { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.ew-lc__field--wide { grid-column: 1 / -1; }
.ew-lc .ew-lc__label { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.3; color: var(--lc-ink); }
.ew-lc .ew-lc__select, .ew-lc .ew-lc__money { box-sizing: border-box; width: 100%; height: 50px; margin: 0; border: 1px solid #D8D3CA; border-radius: 6px; background-color: #fff; color: #1C1C1C; box-shadow: none; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 16px; line-height: 1.2; }
.ew-lc .ew-lc__select { padding: 0 44px 0 14px; -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A5A5A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; cursor: pointer; text-overflow: ellipsis; }
.ew-lc .ew-lc__money { display: flex; align-items: center; padding: 0 0 0 14px; }
.ew-lc .ew-lc__money > span { color: #5A5A5A; font-weight: 600; }
.ew-lc .ew-lc__money input { flex: 1 1 auto; min-width: 0; width: auto; height: 100%; margin: 0; padding: 0 14px 0 6px; border: 0 !important; border-radius: 0; background: transparent; box-shadow: none !important; font: inherit; font-weight: 600; color: #1C1C1C; outline: none; }
.ew-lc .ew-lc__select:focus-visible, .ew-lc .ew-lc__money:focus-within { outline: 2px solid var(--lc-focus); outline-offset: 2px; }
.ew-lc .ew-lc__fixed { margin: 0 !important; min-height: 50px; display: flex; align-items: center; font-size: 17px; font-weight: 600; color: var(--lc-head); }
.ew-lc__slide { gap: 4px; }
.ew-lc .ew-lc__slide input[type="range"] { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 32px; margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; }
.ew-lc .ew-lc__slide input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 3px; background: linear-gradient(to right, var(--lc-fill) 0, var(--lc-fill) var(--p, 20%), var(--lc-track) var(--p, 20%), var(--lc-track) 100%); }
.ew-lc .ew-lc__slide input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 26px; height: 26px; margin-top: -10px; border: 3px solid #fff; border-radius: 50%; background: var(--lc-thumb); box-shadow: 0 1px 4px rgba(0,0,0,0.25); }
.ew-lc .ew-lc__slide input[type="range"]::-moz-range-track { height: 6px; border: 0; border-radius: 3px; background: var(--lc-track); }
.ew-lc .ew-lc__slide input[type="range"]::-moz-range-progress { height: 6px; border-radius: 3px; background: var(--lc-fill); }
.ew-lc .ew-lc__slide input[type="range"]::-moz-range-thumb { box-sizing: border-box; width: 26px; height: 26px; border: 3px solid #fff; border-radius: 50%; background: var(--lc-thumb); box-shadow: 0 1px 4px rgba(0,0,0,0.25); }
.ew-lc .ew-lc__slide input[type="range"]:focus-visible { outline: 2px solid var(--lc-focus); outline-offset: 4px; border-radius: 4px; }
.ew-lc__scale { display: flex; justify-content: space-between; font-size: 13px; color: var(--lc-muted); }
.ew-lc__result { min-width: 0; }
.ew-lc .ew-lc__pay { margin: 0 0 20px !important; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; }
.ew-lc .ew-lc__fig { font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 52px; line-height: 1; color: var(--lc-head); font-variant-numeric: tabular-nums; }
.ew-lc .ew-lc__per { font-size: 20px; font-weight: 700; line-height: 1.2; color: var(--lc-per); }
.ew-lc .ew-lc__facts { margin: 0 !important; padding: 0; }
.ew-lc .ew-lc__facts > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--lc-rule); font-size: 15px; line-height: 1.4; }
.ew-lc .ew-lc__facts dt { margin: 0; font-weight: 400; color: var(--lc-muted); }
.ew-lc .ew-lc__facts dd { margin: 0; font-weight: 700; color: var(--lc-ink); text-align: right; font-variant-numeric: tabular-nums; }
.ew-lc .ew-lc__note { margin: 14px 0 0 !important; font-size: 13px; line-height: 1.5; color: var(--lc-muted); }
.ew-lc .ew-lc__cta { margin: 20px 0 0 !important; }
.ew-lc .ew-lc__btn { display: inline-block; padding: 14px 26px; border-radius: 4px; font-size: 16px; font-weight: 700; line-height: 1.2; text-decoration: none !important; transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.ew-lc .ew-lc__btn:focus-visible { outline: 3px solid var(--lc-focus); outline-offset: 3px; }
.ew-lc .ew-lc__btn--blue { background: #00539F; color: #fff !important; }
.ew-lc .ew-lc__btn--blue:hover { background: #002D57; }
.ew-lc .ew-lc__btn--red { background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-lc .ew-lc__btn--red:hover { background: #B72E31; }
.ew-lc .ew-lc__btn--gold { background: #CFA35C; color: #002D57 !important; }
.ew-lc .ew-lc__btn--gold:hover { background: #A87B2F; color: #fff !important; }
.ew-lc .ew-lc__btn--outline { padding: 12.5px 24.5px; border: 1.5px solid #00539F; background: transparent; color: #00539F !important; }
.ew-lc .ew-lc__btn--outline:hover { background: #00539F; color: #fff !important; }
.ew-lc--gold .ew-lc__btn--blue { background: #002D57; }
.ew-lc--gold .ew-lc__btn--blue:hover { background: #001A33; }
.ew-lc--gold .ew-lc__btn--gold { background: #F5F0E8; color: #002D57 !important; }
.ew-lc--gold .ew-lc__btn--gold:hover { background: #fff; color: #002D57 !important; }
.ew-lc--union .ew-lc__btn--blue { background: #CFA35C; color: #002D57 !important; }
.ew-lc--union .ew-lc__btn--blue:hover { background: #fff; }
.ew-lc--gold .ew-lc__btn--outline, .ew-lc--union .ew-lc__btn--outline { border-color: #fff; color: #fff !important; }
.ew-lc--gold .ew-lc__btn--outline:hover, .ew-lc--union .ew-lc__btn--outline:hover { background: #fff; color: #002D57 !important; }
.ew-lc .ew-lc__empty { margin: 0; padding: 32px; border: 1px dashed currentColor; border-radius: 10px; text-align: center; }
@media (max-width: 1100px) { .ew-lc__grid { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 48px; } }
@media (max-width: 860px) {
  .ew-lc__grid { grid-template-columns: minmax(0, 1fr); }
  .ew-lc__result { max-width: 560px; margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--lc-rule); }
}
@media (max-width: 600px) {
  .ew-lc__wrap { padding: 52px 16px 60px; }
  .ew-lc--paper .ew-lc__wrap { padding-top: 0; }
  .ew-lc--paper .ew-lc__wrap::before { margin-bottom: 36px; }
  .ew-lc__inputs { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .ew-lc .ew-lc__heading { font-size: 26px; }
  .ew-lc .ew-lc__fig { font-size: 44px; }
}

/* v1.67 — Loan Calculator: deep navy + blue gradient themes */
.ew-lc--navy, .ew-lc--gradient { --lc-ink: #fff; --lc-muted: #F5F0E8; --lc-head: #fff; --lc-em: #EFC97F; --lc-eyebrow: #EFC97F; --lc-per: #EFC97F; --lc-rule: rgba(255,255,255,0.22); --lc-fill: #CFA35C; --lc-track: rgba(255,255,255,0.28); --lc-thumb: #CFA35C; --lc-focus: #EFC97F; }
.ew-lc--navy { background: #002D57; }
.ew-lc--gradient { background: linear-gradient(160deg, #00539F 0%, #002D57 62%, #001A33 100%); }
.ew-lc--navy::after, .ew-lc--gradient::after { opacity: 0.85; }
.ew-lc--navy .ew-lc__btn--blue, .ew-lc--gradient .ew-lc__btn--blue { background: #CFA35C; color: #002D57 !important; }
.ew-lc--navy .ew-lc__btn--blue:hover, .ew-lc--gradient .ew-lc__btn--blue:hover { background: #fff; }
.ew-lc--navy .ew-lc__btn--outline, .ew-lc--gradient .ew-lc__btn--outline { border-color: #fff; color: #fff !important; }
.ew-lc--navy .ew-lc__btn--outline:hover, .ew-lc--gradient .ew-lc__btn--outline:hover { background: #fff; color: #002D57 !important; }


/* =====================================================================
   v1.68 — EWFCU Product Rates (acf/ew-product-rates). The Rates page's
   white table; with the side card the columns match the application and
   the calculator (1fr | 320px, gap 72).
   ===================================================================== */
.ew-pr { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0 !important; margin-bottom: 0 !important; background: #EDE8DF; color: #1C1C1C; }
.ew-pr::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-pr--cream { background: #F5F0E8; }
.ew-pr--white { background: #fff; }
.ew-pr--white::after, .ew-pr--none::after { display: none; }
.ew-pr--none { width: auto; margin-left: 0; background: transparent; }
.ew-pr__wrap { position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 88px var(--ew-gutter, 40px) 96px; box-sizing: border-box; }
.ew-pr--none .ew-pr__wrap { max-width: none; padding: 0; }
.ew-pr__grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.ew-pr--side .ew-pr__grid { grid-template-columns: minmax(0, 1fr) 320px; column-gap: 72px; align-items: start; }
.ew-pr__main { min-width: 0; max-width: 880px; }
.ew-pr--side .ew-pr__main { max-width: 800px; }
.ew-pr__head { max-width: 760px; margin: 0 0 28px; }
.ew-pr .ew-pr__eyebrow { margin: 0 0 12px !important; padding: 0; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-pr .ew-pr__heading { margin: 0 0 12px !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-pr .ew-pr__heading em { color: #A87B2F; }
.ew-pr .ew-pr__intro { margin: 0 !important; max-width: 640px; font-size: 17px; line-height: 1.65; color: #5A5A5A; }
.ew-pr .ew-rt { margin: 0; }
.ew-pr__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 28px; margin-top: 18px; }
.ew-pr .ew-pr__foot .ew-rate-date { flex: 1 1 360px; max-width: 640px; margin: 0 !important; padding: 0; font-size: 14.5px; line-height: 1.6; color: #5A5A5A; text-align: left; }
.ew-pr .ew-pr__more { flex: none; font-size: 16px; font-weight: 700; line-height: 1.4; color: #1C1C1C; text-decoration: none !important; border-bottom: 2px solid #CFA35C; padding-bottom: 2px; }
.ew-pr .ew-pr__more:hover, .ew-pr .ew-pr__more:focus-visible { color: #00539F; }
.ew-pr .ew-pr__side { margin: 0 !important; }
.ew-pr .ew-pr__empty { margin: 0; padding: 32px; border: 1px dashed #A87B2F; border-radius: 10px; text-align: center; color: #7A5920; }
@media (max-width: 1100px) { .ew-pr--side .ew-pr__grid { grid-template-columns: minmax(0, 1fr) 300px; column-gap: 48px; } }
@media (max-width: 900px) {
  .ew-pr--side .ew-pr__grid { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .ew-pr .ew-pr__side { max-width: 560px; }
}
@media (max-width: 600px) {
  .ew-pr__wrap { padding: 60px 16px 64px; }
  .ew-pr--none .ew-pr__wrap { padding: 0; }
  .ew-pr .ew-pr__heading { font-size: 28px; }
  .ew-pr .ew-rt-card thead th { padding: 13px 12px 11px; }
  .ew-pr .ew-rt-card tbody th { padding: 13px 12px; font-size: 16px; }
  .ew-pr .ew-rt-card tbody td { padding: 13px 12px; font-size: 19px; }
  .ew-pr .ew-rt-card tbody td.ew-rt-term { font-size: 15px; white-space: normal; }
  .ew-pr .ew-rt-suffix { font-size: 13px; }
  .ew-pr .ew-rt-fine { font-size: 13px; }
}
/* v1.68 — page editor: the homepage hero shows its finished state (no blue veil) */
.ew-hero--preview .ew-hero__veil, .acf-block-preview .ew-hero__veil { display: none !important; }
.acf-block-preview .ew-hero .ew-hero__panel, .acf-block-preview .ew-hero .ew-hero__inner, .acf-block-preview .ew-hero .ew-hero__photo { animation: none !important; }


/* =====================================================================
   v1.69 — EWFCU Steps, EWFCU Questions, EWFCU Product Cards
   ===================================================================== */
.ew-steps, .ew-faq, .ew-pc { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 0 !important; margin-bottom: 0 !important; background: #F5F0E8; color: #1C1C1C; }
.ew-steps::after, .ew-faq::after, .ew-pc::after { content: ""; position: absolute; inset: 0; background-image: url(assets/img/texture-paper.png); background-size: 200px; opacity: 0.9; pointer-events: none; }
.ew-steps--deep, .ew-faq--deep, .ew-pc--deep { background: #EDE8DF; }
.ew-steps--white, .ew-faq--white, .ew-pc--white { background: #fff; }
.ew-steps--white::after, .ew-faq--white::after, .ew-pc--white::after { display: none; }
.ew-steps__wrap, .ew-faq__wrap, .ew-pc__wrap { position: relative; z-index: 1; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 96px var(--ew-gutter, 40px) 104px; box-sizing: border-box; }
.ew-steps__head, .ew-pc__head { max-width: 760px; margin: 0 0 44px; }
.ew-faq__head { min-width: 0; }
.ew-steps .ew-steps__eyebrow, .ew-faq .ew-faq__eyebrow, .ew-pc .ew-pc__eyebrow { margin: 0 0 12px !important; padding: 0; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-steps .ew-steps__heading, .ew-faq .ew-faq__heading, .ew-pc .ew-pc__heading { margin: 0 !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 34px; line-height: 1.2; color: #00539F; text-wrap: balance; }
.ew-steps .ew-steps__heading em, .ew-faq .ew-faq__heading em, .ew-pc .ew-pc__heading em { color: #A87B2F; }
.ew-steps .ew-steps__intro, .ew-faq .ew-faq__intro, .ew-pc .ew-pc__intro { margin: 14px 0 0 !important; max-width: 640px; font-size: 17px; line-height: 1.65; color: #5A5A5A; }
.ew-faq .ew-faq__intro a { font-weight: 700; color: #00539F; text-decoration: none; }
.ew-faq .ew-faq__intro a:hover, .ew-faq .ew-faq__intro a:focus-visible { color: #002D57; text-decoration: underline; }
.ew-v-empty { margin: 0; padding: 32px; border: 1px dashed #A87B2F; border-radius: 10px; text-align: center; color: #7A5920; }
.ew-v-btn { display: inline-block; padding: 15px 28px; border-radius: 4px; font-family: var(--ew-font-body, 'Inter', sans-serif); font-size: 16px; font-weight: 700; letter-spacing: 0.04em; line-height: 1.2; text-decoration: none !important; transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease; }
.ew-v-btn:focus-visible { outline: 3px solid #00539F; outline-offset: 3px; }
.ew-v-btn--blue { background: #00539F; color: #fff !important; }
.ew-v-btn--blue:hover { background: #002D57; }
.ew-v-btn--red { background: var(--ew-red, #D9363A); color: #fff !important; }
.ew-v-btn--red:hover { background: #B72E31; }
.ew-v-btn--gold { background: #CFA35C; color: #002D57 !important; }
.ew-v-btn--gold:hover { background: #A87B2F; color: #fff !important; }
.ew-v-btn--outline { padding: 13.5px 26.5px; border: 1.5px solid #00539F; background: transparent; color: #00539F !important; }
.ew-v-btn--outline:hover { background: #00539F; color: #fff !important; }

.ew-steps .ew-steps__list { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(var(--ew-steps-n, 3), minmax(0, 1fr)); gap: 48px; }
.ew-steps .ew-steps__item { margin: 0 !important; padding: 26px 0 0 !important; border-top: 2px solid #CFA35C; }
.ew-steps .ew-steps__item::before { content: none; }
.ew-steps__num { display: block; margin: 0 0 16px; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 52px; line-height: 1; color: #A87B2F; }
.ew-steps--deep .ew-steps__num { color: #8A6426; }
.ew-steps .ew-steps__title { margin: 0 0 10px !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 23px; line-height: 1.25; color: #00539F; }
.ew-steps .ew-steps__text { margin: 0 !important; font-size: 17px; line-height: 1.65; color: #5A5A5A; }
.ew-steps .ew-steps__cta { margin: 48px 0 0 !important; }

.ew-faq__grid { display: grid; grid-template-columns: 360px minmax(0, 1fr); column-gap: 72px; align-items: start; }
.ew-faq--solo .ew-faq__grid { grid-template-columns: minmax(0, 1fr); }
.ew-faq--solo .ew-faq__list { max-width: 880px; }
.ew-faq__list { min-width: 0; border-top: 1px solid #D8D3CA; }
.ew-faq .ew-faq__item { margin: 0 !important; padding: 0 !important; border-bottom: 1px solid #D8D3CA; }
.ew-faq .ew-faq__q { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; cursor: pointer; }
.ew-faq .ew-faq__q::-webkit-details-marker { display: none; }
.ew-faq .ew-faq__q::marker { content: ""; }
.ew-faq .ew-faq__q:focus-visible { outline: 2px solid #00539F; outline-offset: 4px; border-radius: 2px; }
.ew-faq .ew-faq__qt { margin: 0 !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 20px; line-height: 1.35; color: #002D57; transition: color 0.18s ease; }
.ew-faq .ew-faq__q:hover .ew-faq__qt { color: #00539F; }
.ew-faq__sign { position: relative; flex: none; width: 32px; height: 32px; box-sizing: border-box; border: 1.5px solid #CFA35C; border-radius: 50%; }
.ew-faq__sign::before, .ew-faq__sign::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; border-radius: 1px; background: #7A5920; transition: transform 0.2s ease; }
.ew-faq__sign::after { transform: rotate(90deg); }
.ew-faq__item[open] .ew-faq__sign::after { transform: rotate(0deg); }
.ew-faq .ew-faq__a { max-width: 680px; margin: -6px 0 0; padding: 0 56px 24px 0; font-size: 17px; line-height: 1.65; color: #5A5A5A; }
.ew-faq .ew-faq__a p { margin: 0 0 12px !important; }
.ew-faq .ew-faq__a > :last-child { margin-bottom: 0 !important; }
.ew-faq .ew-faq__a a { font-weight: 600; color: #00539F; }
.ew-faq .ew-faq__a a:hover { color: #002D57; }
@media (prefers-reduced-motion: reduce) { .ew-faq__sign::before, .ew-faq__sign::after { transition: none; } }

.ew-pc .ew-pc__grid { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(var(--ew-pc-cols, 3), minmax(0, 1fr)); gap: 24px; }
.ew-pc .ew-pc__card { position: relative; margin: 0 !important; padding: 0 !important; min-width: 0; display: flex; flex-direction: column; background: #fff; border: 0.5px solid #D8D3CA; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 12px rgba(0,45,87,0.08); transition: box-shadow 0.25s ease; }
.ew-pc .ew-pc__card::before { content: none; }
.ew-pc .ew-pc__card:hover { box-shadow: 0 8px 28px rgba(0,45,87,0.16); }
.ew-pc__media { aspect-ratio: 16 / 9; overflow: hidden; background: #E8E3DC; }
.ew-pc .ew-pc__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.ew-pc__body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 26px 28px 30px; }
.ew-pc .ew-pc__title { margin: 0 !important; padding: 0; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 22px; line-height: 1.25; color: #00539F; }
.ew-pc .ew-pc__blurb { margin: 0 !important; font-size: 17px; line-height: 1.6; color: #5A5A5A; }
.ew-pc .ew-pc__link { align-self: flex-start; margin-top: auto; padding: 8px 0 2px; font-size: 16px; font-weight: 700; line-height: 1.4; color: #1C1C1C !important; text-decoration: none !important; border-bottom: 2px solid #CFA35C; }
.ew-pc .ew-pc__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ew-pc .ew-pc__card:hover .ew-pc__link, .ew-pc .ew-pc__link:focus-visible { color: #00539F !important; }
.ew-pc .ew-pc__link:focus-visible { outline: 2px solid #00539F; outline-offset: 3px; }
@supports selector(:has(a)) {
  .ew-pc .ew-pc__link:focus-visible { outline: none; }
  .ew-pc .ew-pc__card:has(.ew-pc__link:focus-visible) { outline: 3px solid #00539F; outline-offset: 3px; }
}

@media (max-width: 1100px) { .ew-faq__grid { grid-template-columns: 300px minmax(0, 1fr); column-gap: 48px; } }
@media (max-width: 900px) {
  .ew-steps .ew-steps__list { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ew-steps .ew-steps__item { display: grid; grid-template-columns: 60px minmax(0, 1fr); align-items: start; padding-top: 22px !important; }
  .ew-steps__num { grid-column: 1; grid-row: 1 / span 2; margin: 0; font-size: 44px; }
  .ew-steps .ew-steps__title, .ew-steps .ew-steps__text { grid-column: 2; }
  .ew-faq__grid { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .ew-pc .ew-pc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ew-steps__wrap, .ew-faq__wrap, .ew-pc__wrap { padding: 64px 16px 72px; }
  .ew-steps .ew-steps__heading, .ew-faq .ew-faq__heading, .ew-pc .ew-pc__heading { font-size: 28px; }
  .ew-steps__head, .ew-pc__head { margin-bottom: 32px; }
  .ew-faq .ew-faq__q { min-height: 56px; padding: 16px 0; gap: 16px; }
  .ew-faq .ew-faq__qt { font-size: 17.5px; }
  .ew-faq__sign { width: 30px; height: 30px; }
  .ew-faq .ew-faq__a { padding-right: 0; font-size: 16px; }
  .ew-pc .ew-pc__grid { grid-template-columns: minmax(0, 1fr); }
}

/* v1.70 — words in <em> are always gold AND italic */
em { font-style: italic !important; }


/* =====================================================================
   v1.71 — Resources page: even cards, section heads, dark-gold rows,
   two-column dash list, “On this page” strip
   ===================================================================== */
/* Columns → Advanced → Additional CSS class: ew-even-cards. Cards in a row
   share one height and their buttons line up along the bottom. */
.wp-block-columns.ew-even-cards > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-columns.ew-even-cards > .wp-block-column > .wp-block-group.is-style-ew-card { flex: 1 1 auto; height: auto; display: flex; flex-direction: column; }
.wp-block-columns.ew-even-cards .is-style-ew-card > .wp-block-group__inner-container { flex: 1 1 auto; display: flex; flex-direction: column; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > * { margin-top: 0 !important; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > :not(:last-child) { margin-bottom: 16px !important; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > .ew-icon { margin-bottom: 22px !important; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > p.is-style-ew-eyebrow { margin-bottom: 10px !important; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > ul.wp-block-list { margin-bottom: 26px !important; }
.ew-even-cards :is(.is-style-ew-card, .is-style-ew-card > .wp-block-group__inner-container) > .wp-block-buttons:last-child { margin-top: auto !important; margin-bottom: 0 !important; padding-top: 8px; }
@media (max-width: 600px) {
  .ew-even-cards .is-style-ew-card .wp-block-buttons > .wp-block-button { flex: 1 1 100%; width: 100%; }
  .ew-even-cards .is-style-ew-card .wp-block-buttons .wp-block-button__link { display: flex; justify-content: center; width: 100%; box-sizing: border-box; text-align: center; }
}
/* Columns → Additional CSS class: ew-section-head. Heading on the left, a short note on the right. */
.wp-block-columns.ew-section-head { margin: 0 0 40px !important; gap: 16px 48px; }
.wp-block-columns.ew-section-head > .wp-block-column > :last-child { margin-bottom: 0 !important; }
/* Row → Additional CSS class: ew-on-gold (with ew-on-dark), on the dark-gold background #8A6426.
   Eyebrows and intros go white: light gold is too faint on gold. */
.ew-on-gold p.is-style-ew-eyebrow, .ew-on-gold p.is-style-ew-intro { color: #fff; }
/* List → Styles → Two columns, gold dashes */
ul.wp-block-list.is-style-ew-dash-2 { list-style: none; padding-left: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 24px; }
ul.is-style-ew-dash-2 > li { display: flex; align-items: flex-start; gap: 12px; margin: 0; font-size: 17px; line-height: 1.4; }
ul.is-style-ew-dash-2 > li::before { content: ""; flex: none; width: 12px; height: 2px; margin-top: calc(0.7em - 1px); background: #CFA35C; }
@media (max-width: 360px) { ul.wp-block-list.is-style-ew-dash-2 { grid-template-columns: minmax(0, 1fr); } }
/* Rate Page Strip → Left side shows: A label */
.ew-ratestrip.ew-ratestrip--label .ew-ratestrip__inner { justify-content: flex-start; text-align: left; column-gap: 32px; }
.ew-ratestrip--label .ew-ratestrip__links { flex-wrap: wrap; row-gap: 10px; }
@media (max-width: 600px) {
  .ew-ratestrip.ew-ratestrip--label .ew-ratestrip__inner { row-gap: 0; padding-bottom: 6px !important; }
  .ew-ratestrip--label .ew-ratestrip__links { column-gap: 24px; row-gap: 0; }
  .ew-ratestrip--label .ew-ratestrip__links a { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 0 !important; padding-bottom: 0 !important; }
  .ew-ratestrip--label .ew-ratestrip__links a > span { border-bottom: 2px solid var(--ew-gold, #CFA35C); padding-bottom: 2px; }
}


/* =====================================================================
   v1.72 — Letter from the CEO: Group style Letter (white paper with a
   red foot, like the letterhead), Image styles Letter photo (pinned
   print over the top corner) and Signature, Paragraph style Letter
   name, Separator style Gold rule with bolt
   ===================================================================== */
.wp-block-group.is-style-ew-letter { position: relative; display: flow-root; box-sizing: border-box; max-width: 880px; margin-left: auto !important; margin-right: auto !important; padding: 64px 72px 76px; background-color: #fff; background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile); border-radius: 4px; box-shadow: 0 24px 60px rgba(0,0,0,0.32), 0 2px 8px rgba(0,0,0,0.18); color: #1C1C1C; }
.wp-block-group.is-style-ew-letter::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: #E03A3E; border-radius: 0 0 4px 4px; pointer-events: none; }
.is-style-ew-letter > .wp-block-group__inner-container { display: flow-root; }
.wp-block-kadence-column:has(.is-style-ew-letter), .wp-block-kadence-column:has(.is-style-ew-letter) > .kt-inside-inner-col { overflow: visible; }
.wp-block-group.is-style-ew-letter p { margin: 0 0 20px !important; font-size: 18px; line-height: 1.7; color: #1C1C1C; }
.wp-block-group.is-style-ew-letter p.is-style-ew-eyebrow { margin: 0 0 12px !important; color: #7A5920; }
.wp-block-group.is-style-ew-letter h2.wp-block-heading { margin: 0 0 26px !important; color: #00539F; text-wrap: balance; }
.wp-block-group.is-style-ew-letter h2.wp-block-heading em { color: #A87B2F; }
p.is-style-ew-letter-name, .wp-block-group.is-style-ew-letter p.is-style-ew-letter-name { margin: 6px 0 2px !important; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 22px; line-height: 1.3; color: #00539F; }
.wp-block-group.is-style-ew-letter p.is-style-ew-caption { margin: 0 !important; font-size: 16px; line-height: 1.5; color: #5A5A5A; }
.wp-block-group.is-style-ew-letter strong { color: inherit; }
.wp-block-group.is-style-ew-letter a:not(.wp-block-button__link) { color: #00539F; }
.wp-block-image.is-style-ew-letter-photo { float: right; width: 236px; max-width: 46%; margin: -112px -96px 28px 44px !important; position: relative; z-index: 1; transform: rotate(3deg); }
.wp-block-image.is-style-ew-letter-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; box-sizing: border-box; border: 10px solid #fff; border-radius: 3px; background: #fff; box-shadow: 0 16px 36px rgba(0,0,0,0.30); }
.wp-block-image.is-style-ew-letter-photo figcaption { margin: 10px 0 0; font-size: 14px; line-height: 1.45; color: #5A5A5A; text-align: center; }
.wp-block-image.is-style-ew-letter-photo:has(.components-placeholder) { transform: none; margin-top: 0 !important; margin-right: 0 !important; }
.wp-block-image.is-style-ew-signature { margin: 2px 0 4px !important; }
.wp-block-image.is-style-ew-signature img { display: block; width: auto; max-width: min(240px, 100%); height: auto; max-height: 72px; mix-blend-mode: multiply; }
.wp-block-image.is-style-ew-signature:has(.components-placeholder) { max-width: 320px; }
/* v1.74 — script signature (Paragraph style Letter: signature) */
p.is-style-ew-letter-sign, .wp-block-group.is-style-ew-letter p.is-style-ew-letter-sign { width: max-content; max-width: 100%; margin: 6px 0 10px !important; font-family: 'Mrs Saint Delafield', 'Segoe Script', 'Brush Script MT', cursive; font-size: 76px; font-weight: 400; font-style: normal; line-height: 1; letter-spacing: 0; color: #00539F; transform: rotate(-4deg); transform-origin: left center; }
hr.wp-block-separator.is-style-ew-bolt-rule { display: block; overflow: hidden; box-sizing: border-box; width: auto !important; max-width: none !important; height: 22px !important; margin: 0 0 30px !important; padding: 0; border: 0 !important; opacity: 1 !important; color: transparent !important; background: url('assets/img/bolt-rule.png') 0 50% / auto 22px no-repeat, linear-gradient(#CFA35C, #CFA35C) 86px 50% / calc(100% - 86px) 2px no-repeat !important; }
@media (max-width: 960px) {
	.wp-block-group.is-style-ew-letter { padding: 56px 48px 68px; }
	.wp-block-image.is-style-ew-letter-photo { width: 200px; margin: -100px -28px 24px 32px !important; }
}
@media (max-width: 700px) {
	.wp-block-group.is-style-ew-letter { padding: 44px 24px 56px; }
	.wp-block-image.is-style-ew-letter-photo { float: none; width: 168px; max-width: 60%; margin: -96px auto 28px !important; transform: rotate(-2deg); }
	.wp-block-group.is-style-ew-letter p { font-size: 18px; }
	.wp-block-group.is-style-ew-letter p.is-style-ew-letter-sign { font-size: 64px; }
}


/* =====================================================================
   v1.73 — Contact page (design 3c): Page Header "Words + map" layout,
   Message Form "No box", narrow Group (ew-narrow), small-print Columns
   (ew-small-print). Split Section quote: Bold words turn deep blue.
   ===================================================================== */
.ew-pagehead--map .ew-pagehead__inner { box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; min-height: 540px; }
.ew-pagehead--map .ew-pagehead__words { grid-column: 1; min-width: 0; }
.ew-pagehead.ew-pagehead--map .ew-pagehead__title { margin-bottom: 28px !important; }
.ew-pagehead.ew-pagehead--map .ew-pagehead__body { margin: -8px 0 24px !important; }
.ew-pagehead__map { position: absolute; top: 0; right: 0; bottom: 0; width: 50%; z-index: 3; background: #EDE8DF; }
.ew-pagehead__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.ew-pagehead__reach { display: flex; flex-wrap: wrap; gap: 20px 56px; }
.ew-pagehead .ew-pagehead__label { margin: 0 0 8px !important; padding: 0 !important; font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-pagehead .ew-pagehead__addr { margin: 0 !important; padding: 0 !important; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 22px; line-height: 1.35; color: #1C1C1C; }
.ew-pagehead a.ew-pagehead__phone { color: #00539F !important; text-decoration: none !important; white-space: nowrap; }
.ew-pagehead a.ew-pagehead__phone:hover, .ew-pagehead a.ew-pagehead__phone:focus-visible { color: #002D57 !important; text-decoration: underline !important; text-decoration-color: #CFA35C !important; text-decoration-thickness: 2px !important; text-underline-offset: 5px; }
.ew-pagehead__hours { display: grid; gap: 6px; max-width: 380px; margin: 24px 0 0; }
.ew-pagehead .ew-pagehead__hours p { display: flex; justify-content: space-between; gap: 16px; margin: 0 !important; padding: 0 !important; font-size: 17px; line-height: 1.5; color: #1C1C1C; }
.ew-pagehead.ew-pagehead--map .ew-pagehead__actions { margin-top: 32px !important; }
@media (max-width: 900px) {
	.ew-pagehead--map .ew-pagehead__inner { display: block; min-height: 0; }
	.ew-pagehead__map { position: relative; top: auto; right: auto; bottom: auto; width: auto; height: 300px; border-top: 3px solid #CFA35C; }
}
@media (max-width: 600px) {
	.ew-pagehead--map .ew-pagehead__reach { flex-direction: column; gap: 18px; }
	.ew-pagehead .ew-pagehead__addr { font-size: 21px; }
	.ew-pagehead a.ew-pagehead__phone { display: inline-block; padding: 6px 0; }
	.ew-pagehead.ew-pagehead--map .ew-pagehead__actions .ew-pagehead__btn { display: block; width: 100%; box-sizing: border-box; text-align: center; }
	.ew-pagehead__map { height: 260px; }
}
.ew-ct--nobox .ew-ct__card { background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
@media (max-width: 900px) { .ew-ct--embed.ew-ct--nobox .ew-ct__card { padding: 0; } }
.wp-block-group.ew-narrow { max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.wp-block-columns.ew-small-print { gap: 24px 32px; margin: 52px 0 0 !important; padding: 26px 0 0; border-top: 1px solid #CFC8BC; }
.wp-block-columns.ew-small-print p { margin: 0 !important; font-size: 15.5px; line-height: 1.55; color: #1C1C1C; }
.wp-block-columns.ew-small-print p + p { margin-top: 4px !important; }
.wp-block-columns.ew-small-print p.is-style-ew-caption { font-size: 15px; font-style: normal; color: #5A5A5A; }
.wp-block-columns.ew-small-print a { color: #00539F; font-weight: 600; text-decoration: none; }
.wp-block-columns.ew-small-print a:hover { color: #002D57; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 4px; }
@media (max-width: 781px) { .wp-block-columns.ew-small-print { gap: 16px; } }
.ew-split__body blockquote strong, .ew-split__body blockquote b { font-weight: inherit; }
.ew-split.ew-paper--gold .ew-split__body blockquote { color: var(--ew-blue, #00539F); }
.ew-split.ew-paper--gold .ew-split__body blockquote strong, .ew-split.ew-paper--gold .ew-split__body blockquote b { color: #002D57; }
.ew-split.ew-paper-dark .ew-split__body blockquote strong, .ew-split.ew-paper-dark .ew-split__body blockquote b { color: #fff; }


/* v1.78 — "Cookie choices" in the footer: opens the cookie notice again */
.ew-footer .ew-footer__ck { align-self: flex-start; display: inline-flex; align-items: center; min-height: 24px; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; color: #fff !important; font: inherit; font-size: 15px; font-weight: 700; line-height: 1.6; letter-spacing: 0; text-transform: none; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 5px; cursor: pointer; }
.ew-footer .ew-footer__ck:hover { color: #EFC97F !important; }
.ew-footer .ew-footer__ck:focus-visible { outline: 2px solid #EFC97F; outline-offset: 3px; }


/* v1.81 — rate band: labels wrap inside their own cell instead of running into the next
   one (the lowest-new-auto label is long). Cells share one height and bottom-align, so the
   figures stay level; the link stays centered. */
.ew-rateband .ew-rateband__inner { align-items: stretch; }
.ew-rateband .ew-rate { display: flex; flex-direction: column; justify-content: flex-end; }
.ew-rateband .ew-rate__label { white-space: normal; text-wrap: balance; overflow-wrap: break-word; }
.ew-rateband .ew-link { align-self: center; }


/* =========================================================================
   v1.82 — audit fixes (WCAG 2.0 AA contrast + phone rate tables).
   Red buttons above now use #D9363A (white text 4.6:1; #E03A3E was 4.3:1).
   ========================================================================= */
/* Our Story (archive) header: deep gold base so white reads 5.3:1 and light-gold headline 3.4:1; eyebrow white */
.ew-pagehead.ew-pagehead--archive { background: #8A6426; }
.ew-pagehead--archive .ew-pagehead__eyebrow { color: #fff; }
/* Gold sections: navy eyebrow (6.0:1 on gold) */
.ew-paper--gold .ew-eyebrow, .ew-paper--gold .ew-eyebrow { color: #002D57; }
/* Dark and blue sections: light-gold eyebrow on navy, white on the lighter blue; light-gold big stat */
.ew-paper-dark .ew-eyebrow, .ew-paper-dark .ew-eyebrow { color: #EFC97F; }
.ew-paper-dark.ew-bg-blue .ew-eyebrow, .ew-paper-dark.ew-bg-blue .ew-eyebrow { color: #fff; }
.ew-paper-dark .ew-split__statval { color: #EFC97F; }
/* Rate tables: never hide a column. Cells wrap on small screens; the card scrolls if it still has to. */
.ew-rt-card { overflow-x: auto; }
@media (max-width: 900px) {
  .ew-rt-card tbody td, .ew-rt-card tbody td.ew-rt-term { white-space: normal; }
}
@media (max-width: 480px) {
  .ew-rt-card thead th { padding: 12px 12px 10px; letter-spacing: 0.1em; }
  .ew-rt-card tbody th, .ew-rt-card tbody td { padding: 12px; }
  .ew-rt-card tbody tr.ew-rt-sec th { padding: 16px 12px 8px; }
}
/* Page not found (404.php) */
.ew-404 { display: block; }
.ew-404__band { position: relative; background-color: #F5F0E8; background-image: var(--ew-texture-paper); background-size: var(--ew-texture-tile, 200px); border-bottom: 3px solid #CFA35C; }
.ew-404__inner { box-sizing: border-box; max-width: var(--ew-content, 1200px); margin: 0 auto; padding: 88px var(--ew-gutter, 40px) 96px; }
.ew-404 .ew-404__eyebrow { margin: 0 0 14px; font-size: 15px; font-weight: 700; line-height: 1.4; letter-spacing: 0.2em; text-transform: uppercase; color: #7A5920; }
.ew-404 .ew-404__title { margin: 0 0 18px; max-width: 14em; font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: clamp(36px, 5vw, 56px); line-height: 1.1; color: #00539F; text-wrap: balance; }
.ew-404 .ew-404__title em { font-style: italic; color: #A87B2F; }
.ew-404 .ew-404__body { margin: 0 0 34px; max-width: 36em; font-size: 19px; line-height: 1.6; color: #1C1C1C; }
.ew-404 .ew-404__links { list-style: none; margin: 0 0 34px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; max-width: 1000px; }
.ew-404 .ew-404__links li { margin: 0; padding: 0; }
.ew-404 .ew-404__links a { box-sizing: border-box; height: 100%; display: flex; flex-direction: column; gap: 4px; padding: 20px 22px; background: #fff; border: 1px solid #E8E3DC; border-radius: 10px; box-shadow: 0 2px 12px rgba(0,45,87,0.06); color: #1C1C1C; text-decoration: none; transition: border-color 0.2s ease, transform 0.2s ease; }
.ew-404 .ew-404__links a:hover { border-color: #00539F; transform: translateY(-2px); }
.ew-404 .ew-404__links a:focus-visible { outline: 2px solid #00539F; outline-offset: 2px; }
.ew-404__lt { font-family: var(--ew-font-display, 'Arvo', serif); font-weight: 700; font-size: 21px; line-height: 1.25; color: #002D57; }
.ew-404__lt span { font-family: var(--ew-font-body, 'Inter', sans-serif); color: #A87B2F; }
.ew-404__ld { font-size: 15px; line-height: 1.45; color: #5A5A5A; }
.ew-404__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; }
.ew-404 a.ew-404__call { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 24px; border-radius: 4px; background: #00539F; color: #fff; font-size: 15px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; }
.ew-404 a.ew-404__call:hover { background: #002D57; color: #fff; }
.ew-404 a.ew-404__home { font-size: 16px; font-weight: 700; color: #00539F; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.ew-404 a.ew-404__home:hover { color: #002D57; }
@media (max-width: 600px) {
  .ew-404__inner { padding: 56px 20px 64px; }
  .ew-404 .ew-404__body { font-size: 17px; }
  .ew-404 a.ew-404__call { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .ew-404 .ew-404__links a { transition: none; } .ew-404 .ew-404__links a:hover { transform: none; } }


/* v1.83 — homepage disclosures run the full width: one paragraph per row, no two-column split,
   no 62em cap. Inside a one-column Kadence Row it still becomes the full-width deep-cream band. */
.ew-disclosures-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.ew-disclosures-sec .ew-disclosures-grid p { max-width: none !important; margin: 0 !important; }
.site .kt-has-1-columns .ew-disclosures-sec--home {
  width: 100vw !important; max-width: 100vw !important; margin: 0 calc(50% - 50vw) !important; padding: 44px 0 52px !important;
  background-color: var(--ew-cream-deep) !important; background-image: var(--ew-texture-paper) !important; background-size: var(--ew-texture-tile, 200px) !important;
  border-top: 1px solid var(--ew-line-soft) !important;
}
.site .kt-has-1-columns .ew-disclosures-sec--home .ew-offer-wrap { max-width: var(--ew-content, 1200px) !important; margin: 0 auto !important; padding: 0 var(--ew-gutter, 24px) !important; }
.site .kt-has-1-columns .ew-disclosures-sec--home p { font-size: 13.5px !important; line-height: 1.65; }


/* =========================================================================
   v1.84 — Customizer stopgaps moved into the theme (2026-10-26). Also in this
   build: --ew-red is #D9363A and every red button reads var(--ew-red);
   .ew-row side padding; letter text 18px / 1.7.
   ========================================================================= */
/* Rate table: the T-Bill math under a figure wraps */
.ew-rate-table .ew-rt-math, .ew-rt-card tbody td .ew-rt-math { white-space: normal; }
/* Main-nav drop-down buttons 24px wide (WCAG 2.2, 2.5.8). Kadence's box is 0.9em wide with a -0.1em right
   margin, centered on the arrow; this margin keeps that same center for the wider box. */
.header-navigation .header-menu-container > ul > li > .dropdown-nav-special-toggle { width: 24px !important; margin-right: calc(0.35em - 12px) !important; }
/* Rates page: top-level rows line up with the page header words. Phones keep Kadence's spacing. */
@media (min-width: 601px) {
  body.ewfcu-page-rates .entry-content > .kb-row-layout-wrap > .kt-row-column-wrap { padding-left: var(--ew-gutter, 40px); padding-right: var(--ew-gutter, 40px); }
}
/* Search results: no author or dates */
body.search-results .loop-entry .entry-meta { display: none !important; }
/* Page Header body links */
.ew-pagehead .ew-pagehead__body a { color: inherit; font-weight: 600; text-decoration: underline; text-decoration-color: #CFA35C; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.ew-pagehead .ew-pagehead__body a:hover { color: inherit; text-decoration-color: currentColor; }
.ew-pagehead .ew-pagehead__body a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
