/* =================================================================
   BRAND TOKENS — JOHN-E AI — change colors/fonts here = whole site updates
   Dark theme (charcoal #14100d) + amber/orange accent, per supplied design.
   Neutrals intentionally inverted to a dark scheme (the source is dark).
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');

:root{
  /* brand */
  --c-primary:#03479B;        --c-primary-rgb:3,71,155;
  --c-primary-dark:#03479B;
  --c-accent:#2B75BD;         --c-accent-rgb:43,117,189;

  /* fonts */
  --font-head:'Archivo',sans-serif;
  --font-body:'IBM Plex Sans',sans-serif;
  --font-mono:'IBM Plex Mono',monospace;

  /* text (light on dark) */
  --c-ink:#f5efe8;            /* primary heading / strong text */
  --c-ink-bright:#e8e0d6;     /* review quote */
  --c-ink-2:#c8bfb4;          /* default body */
  --c-ink-3:#bdb3a8;          /* secondary body */
  --c-ink-4:#d8cfc4;          /* area labels */
  --c-muted:#988f84;          /* stat captions */
  --c-muted-2:#a8a097;        /* console meta */
  --c-muted-3:#7a7269;        /* panel labels */

  /* surfaces */
  --c-paper:#070712;          --c-paper-rgb:7,7,18;  /* page bg */
  --c-surface:#030308;        /* panels / consoles */
  --c-surface-2:#030308;      /* alt section bg */
  --c-surface-3:#030308;      /* console screen */
  --c-void:#070504;           /* console screen deep */
  --c-tint:#090a0f;           /* lifted band / dark text on buttons */
  --c-figure:#26201c;         /* silhouette */
  --c-white:#fff;

  /* lines */
  --c-line:rgba(255,255,255,.10);
  --c-line-2:rgba(255,255,255,.06);
  --c-line-3:rgba(255,255,255,.07);

  /* status */
  --c-danger:#ef4444;
  --c-ok:#4ade80;
  --c-ok-2:#86efac;
  --c-bar-muted:rgba(168,160,151,.5);

  /* gradients */
  --grad-accent:linear-gradient(135deg,var(--c-accent),var(--c-primary));
  --grad-accent-90:linear-gradient(90deg,var(--c-accent),var(--c-primary));
  --grad-cta:linear-gradient(180deg,var(--c-tint),var(--c-paper));

  /* button */
  --btn-text:#ffffff;

  /* spacing */
  --space-section:60px;
  --gap:30px;

  /* radius */
  --r-sm:6px; --r-md:14px; --r-lg:18px; --r-xl:20px; --r-btn:11px; --r-pill:500px;

  /* shadow */
  --shadow-1:0 2px 10px rgba(0,0,0,.4);
  --shadow-2:0 40px 90px -25px rgba(0,0,0,.8);
  --shadow-btn:0 10px 30px -8px rgba(var(--c-primary-rgb),.6);
  --shadow-btn-lg:0 14px 40px -10px rgba(var(--c-primary-rgb),.6);

  /* type scale */
  --fs-h1:clamp(40px,5vw,62px);
  --fs-h2:clamp(30px,3.6vw,44px);
  --fs-h3:26px;
  --fs-body:17px;
}

@media all and (max-width:640px){
  :root{ --space-section:56px; --gap:18px; }
}

/* dark page surface */
.is-wrapper{ background:var(--c-paper); }

/* global type binding — every heading/body pulls brand fonts + ink */
.is-wrapper h1,.is-wrapper h2,.is-wrapper h3,.is-wrapper h4,.is-wrapper h5{
  font-family:var(--font-head); color:var(--c-ink); text-wrap:balance;
}
.is-wrapper p,.is-wrapper li{ font-family:var(--font-body); color:var(--c-ink-2); }

/* =================================================================
   SHARED HELPERS
   ================================================================= */
.jea-eyebrow{
  display:block; font-family:var(--font-mono); font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--c-accent);
}
.jea-accent{ color:var(--c-primary); }

.jea-btn,.jea-btn-ghost,.jea-btn-ghost2{
  display:inline-block; font-family:var(--font-body); font-weight:600;
  font-size:16px; line-height:1.2; padding:15px 26px; border:none;
  border-radius:var(--r-btn); cursor:pointer; text-decoration:none;
  transition:filter .2s ease,border-color .2s ease,color .2s ease,background .2s ease;
}
.jea-btn{ background:var(--grad-accent); color:var(--btn-text); box-shadow:var(--shadow-btn); }
.jea-btn:hover{ filter:brightness(1.07); }
.jea-btn--lg{ font-weight:700; font-size:17px; padding:17px 34px; border-radius:12px; box-shadow:var(--shadow-btn-lg); }

.jea-btn-ghost{ background:transparent; color:var(--c-ink); border:1px solid rgba(255,255,255,.18); }
.jea-btn-ghost:hover{ border-color:rgba(var(--c-accent-rgb),.5); color:var(--c-accent); }

.jea-btn-ghost2{ background:transparent; color:var(--c-accent); font-size:15px; padding:13px 24px; border:1px solid rgba(var(--c-accent-rgb),.4); }
.jea-btn-ghost2:hover{ background:rgba(var(--c-accent-rgb),.08); }

.jea-stars{ display:inline-flex; gap:3px; color:var(--c-accent); font-size:18px; line-height:0; }
.jea-stars svg{ width:1em; height:1em; display:block; fill:currentColor; }

:focus-visible{ outline:2px solid var(--c-accent); outline-offset:3px; border-radius:3px; }

/* =================================================================
   SECTION BACKGROUNDS — wrapper-scoped so the theme can't strip them.
   Adjacent sections never share a fill; hairlines reinforce the seams.
   ================================================================= */
.is-wrapper > .jea-sec-blog,    .is-wrapper .jea-sec-blog{    background:var(--c-paper);    padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-features,.is-wrapper .jea-sec-features{background:var(--c-surface-2); border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-reviews, .is-wrapper .jea-sec-reviews{ background:var(--c-tint); border-top:1px solid var(--c-line-2); border-bottom:1px solid var(--c-line-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-faq,     .is-wrapper .jea-sec-faq{     background:var(--c-paper);    border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-cta,     .is-wrapper .jea-sec-cta{     background:var(--grad-cta);   border-top:1px solid var(--c-line-3); padding:var(--space-section) 0; position:relative; overflow:hidden; }
.is-wrapper > .jea-sec-services,.is-wrapper .jea-sec-services{ background:var(--c-paper); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-overview,.is-wrapper .jea-sec-overview{ background:var(--c-surface-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-benefits,.is-wrapper .jea-sec-benefits{ background:var(--c-paper); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-contact,.is-wrapper .jea-sec-contact{ background:var(--c-surface-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-map,.is-wrapper .jea-sec-map{ background:var(--c-paper); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-areas,   .is-wrapper .jea-sec-areas{   background:var(--c-surface-2); border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }

/* =================================================================
   HERO BANNER  (Webware is-section-40 chassis; semi-transparent content card)
   ================================================================= */
.jea-bnl .bn-overlay{ display:none; }
.jea-bnl .pos-ab-ban{ z-index:3; }
.jea-bnl .bn-content{
  max-width:580px; text-align:left; margin-left:0; margin-right:auto;
  padding:32px 30px; border-radius:var(--r-md);
  background:rgba(var(--c-paper-rgb),.85); color:var(--c-ink); box-shadow:var(--shadow-2);
}
.jea-bnl .bn-content h1{
  color:var(--c-ink); font-family:var(--font-head); font-weight:800;
  font-size:clamp(22px,3vw,34px); line-height:1.16; letter-spacing:-.01em; margin-bottom:14px;
}
.jea-bnl .bn-content .jea-accent{ color:var(--c-primary); }
.is-wrapper .jea-bnl .bn-content p{ color:var(--c-ink-2); font-size:14.5px; line-height:1.65; margin-bottom:16px; }
.jea-bnl .bn-content p:last-child{ margin-bottom:0; }
.jea-bnl .bn-content .button{
  display:inline-block; background:var(--grad-accent); color:var(--btn-text);
  padding:13px 28px; border-radius:8px; font-weight:700; text-decoration:none;
  font-size:14px; box-shadow:var(--shadow-btn); transition:transform .2s ease, filter .2s ease;
}
.jea-bnl .bn-content .button:hover{ transform:translateY(-2px); filter:brightness(1.07); }
@media (max-width:1023.5px){
  .jea-bnl .bn-content{ background:#222; width:100%; }
      .user-logged-out .pos-ab-ban {
        background: #000 !important;
    }
    #footer .footer-media-box {
    padding-bottom: 30px;
}
}

/* shared status dot (used by the coverage radar) */
.jea-dot{ width:8px; height:8px; border-radius:50%; flex:none; }
.jea-dot--ok{ width:7px; height:7px; background:var(--c-ok); animation:jea-blink 1.6s infinite; }

/* =================================================================
   BLOG TEASER
   ================================================================= */
.jea-sec-head-eyebrow{ margin-bottom:28px; }

.jea-feat-card{
  display:grid; grid-template-columns:.7fr 1fr;
  border:1px solid var(--c-line); border-radius:var(--r-xl); overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.025), transparent);
}
.jea-feat-media{
  position:relative; background:var(--c-surface); min-height:340px; overflow:hidden;
  border-right:1px solid var(--c-line-3);
}
.jea-feat-media::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(var(--c-primary-rgb),.06) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(var(--c-primary-rgb),.06) 1px,transparent 1px);
  background-size:30px 30px;
  -webkit-mask-image:radial-gradient(circle at 50% 42%,#000,transparent 80%);
  mask-image:radial-gradient(circle at 50% 42%,#000,transparent 80%);
}
.jea-feat-media::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 50% 35%, rgba(var(--c-primary-rgb),.2), transparent 60%);
}
.jea-feat-badge{
  position:absolute; top:20px; left:20px; z-index:2;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; color:var(--c-accent);
  border:1px solid rgba(var(--c-accent-rgb),.4); border-radius:var(--r-pill); padding:5px 11px;
}
.jea-feat-mark{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:1; opacity:.92; }
.jea-feat-mark svg{ display:block; }
.jea-feat-ring{ fill:none; stroke:var(--c-accent); stroke-width:1.2; opacity:.5; }
.jea-feat-core{ fill:var(--c-accent); }
.jea-feat-body{ padding:44px; display:flex; flex-direction:column; justify-content:center; }
.jea-feat-h2{ font-weight:800; font-size:clamp(26px,2.9vw,2.2em); line-height:1.12; letter-spacing:-.02em; margin-bottom:20px; }
.is-wrapper p.jea-feat-text{ font-size:16px; line-height:1.68; color:var(--c-ink-3); margin-bottom:28px; }
.jea-feat-cta{ align-self:flex-start; }

.jea-guides{ margin-top:18px; }
.jea-guide-card{
  display:flex; align-items:center; gap:16px; height:100%;
  padding:22px 24px; border:1px solid var(--c-line); border-radius:var(--r-md);
  background:linear-gradient(180deg, rgba(255,255,255,.018), transparent);
  text-decoration:none; transition:border-color .2s ease;
}
.jea-guide-card:hover{ border-color:rgba(var(--c-accent-rgb),.4); }
.jea-guide-cat{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; color:var(--c-primary); flex:none; }
.jea-guide-title{ flex:1; font-family:var(--font-head); font-weight:600; font-size:14.5px; line-height:1.25; letter-spacing:-.01em; color:var(--c-ink); }

/* =================================================================
   FEATURES
   ================================================================= */
.jea-feat-intro{ max-width:620px; margin-bottom:64px; }
.jea-feat-intro h2{ font-weight:800; font-size:var(--fs-h2); line-height:1.08; letter-spacing:-.02em; margin-top:14px; }

.jea-feature-card{
  display:flex; border:1px solid var(--c-line-2); border-radius:var(--r-lg); overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.022), transparent);
}
.jea-feature-card + .jea-feature-card{ margin-top:28px; }
.jea-feature-card--rev{ flex-direction:row-reverse; }
.jea-feature-text{ flex:1; min-width:0; padding:44px; display:flex; flex-direction:column; justify-content:center; }
.jea-feature-tag{ font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--c-primary); margin-bottom:14px; }
.jea-feature-h3{ font-weight:700; font-size:var(--fs-h3); line-height:1.15; letter-spacing:-.015em; margin-bottom:14px; }
.is-wrapper p.jea-feature-body{ font-size:16px; line-height:1.62; color:var(--c-ink-3); margin-bottom:26px; }

.jea-panel{
  position:relative; overflow:hidden; padding:22px;
  border:1px solid var(--c-line); border-radius:13px; background:var(--c-surface);
}
.jea-panel::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(var(--c-primary-rgb),.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(var(--c-primary-rgb),.05) 1px,transparent 1px);
  background-size:30px 30px;
}
.jea-panel-inner{ position:relative; }
.jea-panel-label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; color:var(--c-muted-3); margin-bottom:18px; }
.jea-bar{ display:flex; align-items:center; gap:12px; margin-bottom:13px; }
.jea-bar:last-child{ margin-bottom:0; }
.jea-bar-label{ font-family:var(--font-mono); font-size:11.5px; color:var(--c-muted-2); width:110px; flex:none; }
.jea-bar-track{ flex:1; height:8px; border-radius:4px; background:rgba(255,255,255,.06); overflow:hidden; }
.jea-bar-fill{ height:100%; border-radius:4px; background:var(--grad-accent-90); }
.jea-bar-fill--muted{ background:var(--c-bar-muted); }

/* bar width utilities (no inline styles) */
.jea-w8{ width:8%; }  .jea-w12{ width:12%; } .jea-w22{ width:22%; } .jea-w34{ width:34%; }
.jea-w40{ width:40%; } .jea-w92{ width:92%; } .jea-w94{ width:94%; } .jea-w96{ width:96%; }
.jea-w100{ width:100%; }

.jea-feature-media{ flex:1; min-width:0; position:relative; min-height:360px; background:var(--c-surface); }
.jea-feature-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.jea-feature-imgtag{
  position:absolute; top:16px; left:16px; z-index:2; pointer-events:none;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.1em; color:var(--c-accent);
  background:rgba(var(--c-paper-rgb),.7); border:1px solid rgba(var(--c-accent-rgb),.3);
  border-radius:var(--r-pill); padding:5px 11px; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
}

/* =================================================================
   REVIEWS
   ================================================================= */
.jea-reviews-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:52px; }
.jea-reviews-headline{ max-width:560px; }
.jea-reviews-headline h2{ font-weight:800; font-size:var(--fs-h2); line-height:1.08; letter-spacing:-.02em; margin-top:14px; }
.jea-reviews-rating{ display:flex; align-items:center; gap:14px; }
.jea-reviews-rating .jea-stars{ font-size:20px; }
.jea-reviews-rating span:last-child{ font-family:var(--font-mono); font-size:13px; color:var(--c-ink-2); }

.jea-review-card{
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; height:100%; padding:30px;
  border:1px solid var(--c-line); border-radius:var(--r-lg);
  background:linear-gradient(180deg, rgba(255,255,255,.025), transparent);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.jea-review-card:hover{ transform:translateY(-6px); border-color:rgba(var(--c-primary-rgb),.45); box-shadow:var(--shadow-2); }
.jea-review-card::after{
  content:""; position:absolute; top:0; bottom:0; left:0; width:42%;
  transform:translateX(-130%) skewX(-12deg); pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.1), transparent);
}
.jea-review-card .jea-stars{ font-size:17px; margin-bottom:18px; }
.is-wrapper p.jea-review-quote{ font-size:16.5px; line-height:1.6; color:var(--c-ink-bright); flex:1; margin-bottom:24px; }
.jea-review-by{ display:flex; align-items:center; gap:13px; border-top:1px solid var(--c-line-3); padding-top:20px; }
.jea-review-avatar{
  position:relative; flex:none; width:42px; height:42px; border-radius:50%; background:var(--grad-accent);
  color:var(--c-tint); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head); font-weight:800; font-size:16px;
  transition:transform .28s ease;
}
.jea-review-card:hover .jea-review-avatar{ transform:scale(1.1); }
.jea-review-name{ font-weight:600; font-size:15px; color:var(--c-ink); }
.jea-review-role{ font-family:var(--font-mono); font-size:12px; letter-spacing:.03em; color:var(--c-muted); }

/* =================================================================
   FAQ  (native <details>, no JS)
   ================================================================= */
.jea-faq-wrap{ max-width:880px; margin:0 auto; }
.jea-faq-head{ text-align:center; margin-bottom:48px; }
.jea-faq-head h2{ font-weight:800; font-size:clamp(28px,3.4vw,42px); letter-spacing:-.02em; margin-top:14px; }

.jea-faq{
  border:1px solid var(--c-line); border-radius:var(--r-md); overflow:hidden;
  background:rgba(255,255,255,.018);
}
.jea-faq + .jea-faq{ margin-top:14px; }
.jea-faq-q{
  list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
  gap:20px; padding:22px 26px; font-family:var(--font-body); font-size:17px; font-weight:600;
  line-height:1.35; color:var(--c-ink);
}
.jea-faq-q::-webkit-details-marker{ display:none; }
.jea-faq-q::after{
  content:"+"; font-family:var(--font-mono); font-size:24px; line-height:1;
  color:var(--c-accent); flex:none;
}
.jea-faq[open] .jea-faq-q::after{ content:"\2212"; }
.is-wrapper .jea-faq-a{ padding:0 26px 24px; font-size:15.5px; line-height:1.62; color:var(--c-ink-3); }

/* =================================================================
   CTA BAND
   ================================================================= */
.jea-sec-cta::before{
  content:""; position:absolute; bottom:-200px; left:50%; transform:translateX(-50%);
  width:900px; height:500px; pointer-events:none;
  background:radial-gradient(circle, rgba(var(--c-primary-rgb),.16), transparent 65%);
}
.jea-cta{ position:relative; z-index:1; max-width:900px; margin:0 auto; text-align:center; }
.jea-cta h2{ font-weight:800; font-size:clamp(32px,4.2vw,52px); line-height:1.06; letter-spacing:-.025em; margin-bottom:22px; }
.is-wrapper p.jea-cta-text{ font-size:18px; line-height:1.6; color:var(--c-ink-2); max-width:640px; margin:0 auto 36px; }

/* =================================================================
   ABOUT / COVERAGE
   ================================================================= */
/* SERVICE AREAS — coverage copy + linked areas + radar visual (both pages) */
.jea-areas-text{ max-width:640px; }
.is-wrapper p.jea-areas-p{ font-size:17px; line-height:1.7; color:var(--c-ink-2); margin-bottom:18px; }
.jea-areas-block{ border-top:1px solid var(--c-line-2); padding-top:24px; }
.jea-areas-label{ display:block; font-size:14px; color:var(--c-ink-2); margin-bottom:16px; }
.jea-areas-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.jea-area-chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 15px; border-radius:var(--r-pill); text-decoration:none;
  border:1px solid rgba(var(--c-primary-rgb),.3); background:rgba(var(--c-primary-rgb),.06);
  color:var(--c-ink-2); font-size:13.5px; font-weight:600;
  transition:border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.jea-area-chip::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--c-accent); flex:none; }
.jea-area-chip:hover{
  border-color:var(--c-accent); background:rgba(var(--c-accent-rgb),.14); color:var(--c-ink);
  transform:translateY(-2px); box-shadow:0 6px 16px rgba(var(--c-primary-rgb),.22);
}

.jea-coverage{
  position:relative; overflow:hidden; border:1px solid var(--c-line);
  border-radius:var(--r-xl); background:var(--c-surface);
}
.jea-coverage::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(var(--c-primary-rgb),.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(var(--c-primary-rgb),.05) 1px,transparent 1px);
  background-size:30px 30px;
}
.jea-coverage-inner{ position:relative; padding:36px 30px; }
.jea-radar{ position:relative; width:170px; height:170px; margin:0 auto 26px; background:radial-gradient(circle, rgba(var(--c-primary-rgb),.12), transparent 70%); }
.jea-radar::before, .jea-radar::after{
  content:""; position:absolute; top:50%; left:50%; width:170px; height:170px; margin:-85px 0 0 -85px;
  border-radius:50%; border:1px solid rgba(var(--c-accent-rgb),.5); animation:jea-ping 3.2s ease-out infinite;
}
.jea-radar::after{ animation-delay:1.6s; }
.jea-radar-svg{ position:absolute; inset:0; width:100%; height:100%; }
.jea-radar-ring{ fill:none; stroke:rgba(var(--c-accent-rgb),.16); }
.jea-radar-cross{ stroke:rgba(var(--c-accent-rgb),.1); }
.jea-radar-sweep{
  position:absolute; inset:0; border-radius:50%;
  background:conic-gradient(from 0deg, rgba(var(--c-accent-rgb),.4), transparent 70deg);
  animation:jea-spin 4s linear infinite;
}
.jea-radar-core{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:12px; height:12px; border-radius:50%; background:var(--c-accent);
  box-shadow:0 0 14px rgba(var(--c-accent-rgb),.8); animation:jea-core-pulse 2.4s ease-in-out infinite;
}
.jea-radar-dot{
  position:absolute; width:6px; height:6px; border-radius:50%; background:var(--c-primary);
  box-shadow:0 0 9px rgba(var(--c-primary-rgb),.85); animation:jea-blip 2s ease-in-out infinite;
}
.jea-radar-dot--1{ top:33%; left:62%; }
.jea-radar-dot--2{ top:64%; left:36%; animation-delay:.4s; }
.jea-radar-dot--3{ top:28%; left:38%; animation-delay:.8s; }
.jea-radar-dot--4{ top:70%; left:66%; animation-delay:1.2s; }

/* SERVICES — numbered card grid */
.jea-svc-head{ text-align:center; max-width:720px; margin:0 auto 52px; }
.jea-svc-head .jea-eyebrow{ margin-bottom:16px; }
.jea-svc-rule{ width:54px; height:3px; border-radius:2px; background:var(--grad-accent-90); margin:0 auto; }
.jea-svc-card{
  position:relative; overflow:hidden; display:flex; flex-direction:column; height:100%;
  border:1px solid var(--c-line); border-radius:var(--r-xl);
  background:var(--c-surface); text-decoration:none;
  transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease, background .3s ease;
}
.jea-svc-card:hover{ transform:translateY(-8px); border-color:rgba(var(--c-primary-rgb),.45); box-shadow:var(--shadow-2); background:var(--c-surface-3); }
/* camera-view image */
.jea-svc-media{ position:relative; overflow:hidden; aspect-ratio:16/10; background:var(--c-void); }
/*.jea-svc-img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease; }*/
.jea-svc-card:hover .jea-svc-img{ transform:scale(1.07); }
/* viewfinder corner brackets — lock onto the view like a camera focusing */
.jea-svc-media::before,.jea-svc-media::after{
  content:""; position:absolute; z-index:3; width:20px; height:20px; pointer-events:none;
  border:2px solid var(--c-accent); opacity:0; transition:opacity .32s ease, transform .32s ease;
}
.jea-svc-media::before{ top:12px; left:12px; border-right:0; border-bottom:0; transform:translate(6px,6px); }
.jea-svc-media::after{ right:12px; bottom:12px; border-left:0; border-top:0; transform:translate(-6px,-6px); }
.jea-svc-card:hover .jea-svc-media::before,.jea-svc-card:hover .jea-svc-media::after{ opacity:.9; transform:translate(0,0); }
/* scanning line sweep across the view on hover (monitor motif) */
.jea-svc-scan{
  position:absolute; left:0; right:0; top:0; height:2px; z-index:2; pointer-events:none; opacity:0;
  background:linear-gradient(90deg,transparent,rgba(var(--c-accent-rgb),.95),transparent);
}
.jea-svc-card:hover .jea-svc-scan{ animation:jea-svc-sweep 1.15s ease-in-out; }
.jea-svc-body{ display:flex; flex-direction:column; flex:1; padding:28px 28px 30px; }
.jea-svc-num{
  font-family:var(--font-mono); font-size:13px; font-weight:600; letter-spacing:.14em;
  color:var(--c-accent); margin-bottom:14px; transition:text-shadow .3s ease;
}
.jea-svc-card:hover .jea-svc-num{ text-shadow:0 0 14px rgba(var(--c-accent-rgb),.65); }
.jea-svc-title{ font-family:var(--font-head); font-weight:700; font-size:20px; line-height:1.2; color:var(--c-ink); margin-bottom:11px; }
.is-wrapper p.jea-svc-desc{ font-size:15px; line-height:1.7; color:var(--c-ink-2); margin:0 0 22px; }
.jea-svc-btn{
  align-self:flex-start; margin-top:auto; max-width:100%;
  padding:11px 20px; border-radius:var(--r-btn); text-decoration:none;
  border:1px solid rgba(var(--c-primary-rgb),.4); background:transparent;
  color:var(--c-ink); font-family:var(--font-body); font-size:14px; font-weight:600; line-height:1.35;
  transition:background .22s ease, border-color .22s ease, color .22s ease, box-shadow .22s ease;
}
.jea-svc-btn::after{ content:"\2192"; margin-left:9px; transition:transform .2s ease; }
.jea-svc-btn:hover{ background:var(--grad-accent); border-color:transparent; color:var(--btn-text); box-shadow:var(--shadow-btn); }
.jea-svc-btn:hover::after{ transform:translateX(4px); }

/* =================================================================
   SERVICE DETAIL — overview / benefits / feature lists
   ================================================================= */
.jea-overview-copy{ max-width:640px; }
.is-wrapper .jea-overview-copy p{ font-size:17px; line-height:1.78; color:var(--c-ink-2); margin:0 0 20px; }
.is-wrapper .jea-overview-copy p:last-child{ margin-bottom:0; }
.jea-overview-media{ position:relative; height:100%; min-height:360px; border-radius:var(--r-lg); overflow:hidden; background:var(--c-surface); border:1px solid var(--c-line-2); }
.jea-overview-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.jea-overview-media::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 90px rgba(0,0,0,.45); }

.jea-benefits-head{ text-align:center; max-width:720px; margin:0 auto 52px; }
.jea-benefits-head h2{ font-weight:800; font-size:var(--fs-h2); line-height:1.08; letter-spacing:-.02em; }
.jea-benefits-head .jea-svc-rule{ margin:18px auto 0; }
.jea-benefit-card{
  position:relative; overflow:hidden; height:100%; padding:32px 30px;
  border:1px solid var(--c-line); border-radius:var(--r-lg); background:var(--c-surface);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease, background .28s ease;
}
.jea-benefit-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:2px; background:var(--grad-accent-90); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.jea-benefit-card:hover{ transform:translateY(-6px); border-color:rgba(var(--c-primary-rgb),.4); box-shadow:var(--shadow-2); background:var(--c-surface-3); }
.jea-benefit-card:hover::before{ transform:scaleX(1); }
.jea-benefit-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.jea-benefit-icon{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:52px; height:52px; border-radius:var(--r-md); color:var(--c-accent);
  background:rgba(var(--c-accent-rgb),.1); border:1px solid rgba(var(--c-accent-rgb),.28);
  transition:background .28s ease, border-color .28s ease, transform .28s ease;
}
.jea-benefit-icon svg{ width:26px; height:26px; display:block; }
.jea-benefit-card:hover .jea-benefit-icon{ background:rgba(var(--c-accent-rgb),.18); border-color:rgba(var(--c-accent-rgb),.5); transform:translateY(-2px); }
.jea-benefit-num{ font-family:var(--font-mono); font-size:13px; font-weight:600; letter-spacing:.14em; color:var(--c-ink-3); }
.jea-benefit-title{ font-family:var(--font-head); font-weight:700; font-size:19px; line-height:1.2; color:var(--c-ink); margin-bottom:11px; }
.is-wrapper p.jea-benefit-text{ font-size:15px; line-height:1.65; color:var(--c-ink-2); margin:0; }

.jea-feature-list{ list-style:none; margin:8px 0 0; padding:0; }
.jea-feature-list li{ position:relative; padding-left:26px; margin-bottom:11px; font-size:15px; line-height:1.55; color:var(--c-ink-2); }
.jea-feature-list li:last-child{ margin-bottom:0; }
.jea-feature-list li::before{ content:""; position:absolute; left:3px; top:5px; width:6px; height:11px; border:solid var(--c-accent); border-width:0 2px 2px 0; transform:rotate(45deg); }

/* =================================================================
   CONTACT PAGE — contact cards + framed map
   ================================================================= */
.jea-contact-intro{ margin-bottom:34px; }
.is-wrapper .jea-contact-intro p{ font-size:17px; line-height:1.75; color:var(--c-ink-2); margin:0; }

.jea-cinfo-list{ display:flex; flex-direction:column; gap:16px; }
.jea-cinfo-item{
  display:flex; align-items:center; gap:18px; padding:20px 22px;
  border:1px solid var(--c-line); border-radius:var(--r-md); background:var(--c-surface);
  transition:border-color .28s ease, background .28s ease, transform .28s ease;
}
.jea-cinfo-item:hover{ border-color:rgba(var(--c-primary-rgb),.4); background:var(--c-surface-3); transform:translateX(4px); }
.jea-cinfo-text{ min-width:0; }
.jea-contact-icon{
  flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:var(--r-md); color:var(--c-accent);
  background:rgba(var(--c-accent-rgb),.1); border:1px solid rgba(var(--c-accent-rgb),.28);
  transition:background .28s ease, border-color .28s ease;
}
.jea-contact-icon svg{ width:26px; height:26px; display:block; }
.jea-cinfo-item:hover .jea-contact-icon{ background:rgba(var(--c-accent-rgb),.18); border-color:rgba(var(--c-accent-rgb),.5); }
.jea-contact-label{ font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--c-ink-3); display:block; margin-bottom:6px; }
.jea-contact-value{ font-family:var(--font-head); font-size:17px; line-height:1.4; color:var(--c-ink); word-break:break-word; }
.jea-contact-value a{ color:var(--c-ink); text-decoration:none; transition:color .2s ease; }
.jea-cinfo-item:hover .jea-contact-value a{ color:var(--c-accent); }

.ww-form-container-3{ position:relative; overflow:hidden; height:100%; padding:38px 34px; border:1px solid var(--c-line); border-radius:var(--r-lg); background:var(--c-surface); box-shadow:var(--shadow-1); }
.ww-form-container-3::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-accent-90); }

/* Webware form widget — themed via its own container (.ww-form-container-3), no extra wrapper needed */
.ww-form-container-3 form{ width:100%; }
.ww-form-container-3 .fieldset{ border:0; margin:0; padding:0; min-width:0; }
.ww-form-container-3 .first_name_wrap,
.ww-form-container-3 .last_name_wrap,
.ww-form-container-3 .email_wrap,
.ww-form-container-3 .phone_wrap,
.ww-form-container-3 .field_33762_wrap{ margin-bottom:18px; }
.ww-form-container-3 label{ display:block; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink-3) !important; margin-bottom:8px; }
.ww-form-container-3 .required{ color:var(--c-accent) !important; margin-left:3px; }
.ww-form-container-3 input.input:not(.button),
.ww-form-container-3 textarea.input,
.ww-form-container-3 .phone_number{
  width:100%; padding:13px 16px; line-height:1.4;
  font-family:var(--font-body); font-size:15px;
  background:var(--c-surface-2) !important; border:1px solid var(--c-line) !important;
  color:var(--c-ink) !important; border-radius:var(--r-btn) !important; box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ww-form-container-3 input.input:not(.button)::placeholder,
.ww-form-container-3 textarea.input::placeholder,
.ww-form-container-3 .phone_number::placeholder{ color:var(--c-ink-4); }
.ww-form-container-3 input.input:not(.button):focus,
.ww-form-container-3 textarea.input:focus,
.ww-form-container-3 .phone_number:focus{ outline:none; border-color:var(--c-accent) !important; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.18) !important; background:var(--c-surface-3) !important; }
.ww-form-container-3 textarea.input{ min-height:132px; resize:vertical; display:block; }
.ww-form-container-3 .iti{ width:100%; display:block; }
.ww-form-container-3 .iti__country-list{ background:var(--c-surface-3); border:1px solid var(--c-line); border-radius:var(--r-sm); box-shadow:var(--shadow-2); }
.ww-form-container-3 .iti__country{ color:var(--c-ink-2); }
.ww-form-container-3 .iti__country.iti__highlight{ background:rgba(var(--c-accent-rgb),.14); }
.ww-form-container-3 .iti__dial-code{ color:var(--c-ink-4); }
.ww-form-container-3 .error{ display:block; margin-top:6px; font-family:var(--font-body); font-size:13px; color:var(--c-danger); }
.ww-form-container-3 #mob_phone_phone_number_valid{ display:block; margin-top:6px; font-family:var(--font-body); font-size:13px; color:var(--c-ok); }
.ww-form-container-3 .form-container{ margin-top:2px; }
.ww-form-container-3 .captcha_wrap{ margin-bottom:16px; }
.ww-form-container-3 input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center; width:auto; margin-top:2px;
  padding:14px 32px; cursor:pointer; -webkit-appearance:none; appearance:none;
  font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:.01em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important;
  border:0 !important; border-radius:var(--r-btn) !important; box-shadow:var(--shadow-btn);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.ww-form-container-3 input[type="submit"]:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); }
@media all and (max-width:640px){ .ww-form-container-3{ padding:28px 22px; } .ww-form-container-3 input[type="submit"]{ width:100%; } }

.jea-map{ position:relative; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--c-line-2); box-shadow:var(--shadow-2); }
.jea-map::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-accent-90); z-index:1; pointer-events:none; }
.jea-map-frame{ display:block; width:100%; height:480px; border:0; }
@media all and (max-width:640px){ .jea-map-frame{ height:360px; } }

/* =================================================================
   BLOG LISTING PAGE — themed, scoped to .blog-page-type / .main-blog-widget
   (Webware widget classes; nothing leaks to other pages)
   ================================================================= */
.blog-page-type{ background:var(--c-paper) !important; }
.blog-page-type .main-blog-widget{ padding-top:clamp(40px,6vw,72px); }

/* search */
.main-blog-widget .blog-search-container{ margin-bottom:36px; }
.main-blog-widget .position-relative{ position:relative; max-width:520px; }
.main-blog-widget .search-input-blog{
  width:100%; padding:14px 50px 14px 18px; line-height:1.4;
  font-family:var(--font-body); font-size:15px;
  background:var(--c-surface) !important; border:1px solid var(--c-line) !important;
  color:var(--c-ink) !important; border-radius:var(--r-btn) !important; box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.main-blog-widget .search-input-blog::placeholder{ color:var(--c-ink-4); }
.main-blog-widget .search-input-blog:focus{ outline:none; border-color:var(--c-accent) !important; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.18) !important; background:var(--c-surface-3) !important; }
.main-blog-widget .blog-search-button{
  position:absolute; top:50%; right:7px; transform:translateY(-50%);
  display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  padding:0; border:0; background:transparent; cursor:pointer; color:var(--c-ink-3);
  transition:color .2s ease;
}
.main-blog-widget .blog-search-button:hover{ color:var(--c-accent); }
.main-blog-widget .blog-search-button svg{ width:18px; height:18px; display:block; }
.main-blog-widget .blog-search-button svg path{ fill:currentColor !important; }

/* category lists (mobile block + desktop sidebar) */
.main-blog-widget .articles-filter-container{ margin-bottom:30px; }
.main-blog-widget .filter-h2{ font-family:var(--font-head); font-size:var(--fs-h3); color:var(--c-ink) !important; margin:0 0 18px; }
.main-blog-widget .ps-blog-category{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.main-blog-widget .ps-blog-category li{ margin:0; padding:0; }
.main-blog-widget .ps-blog-category li a{
  display:inline-block; padding:8px 15px; border-radius:var(--r-pill);
  background:var(--c-surface) !important; border:1px solid var(--c-line);
  color:var(--c-ink-2) !important; font-family:var(--font-body); font-size:13.5px; line-height:1.3; text-decoration:none;
  transition:color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.main-blog-widget .ps-blog-category li a:hover{ color:var(--c-ink) !important; border-color:rgba(var(--c-primary-rgb),.5); background:var(--c-surface-3) !important; transform:translateY(-2px); }
.main-blog-widget .ps-blog-category li.active a,
.main-blog-widget .ps-blog-category li a.all-blogs{
  background:var(--grad-accent) !important; border-color:transparent !important; color:var(--btn-text) !important; font-weight:700;
}
.main-blog-widget .ps-blog-category li.active a:hover,
.main-blog-widget .ps-blog-category li a.all-blogs:hover{ filter:brightness(1.07); transform:translateY(-2px); }
@media all and (min-width:1024px){ .blog-sidebar .articles-filter-container{ position:sticky; top:96px; } }

/* article cards */
.main-blog-widget .blog-ul{ list-style:none; margin:0; padding:0; }
.main-blog-widget .blog-li{
  position:relative; overflow:hidden; margin-bottom:30px;
  background:var(--c-surface); border:1px solid var(--c-line); border-radius:var(--r-lg);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.main-blog-widget .blog-li:hover{ transform:translateY(-5px); border-color:rgba(var(--c-primary-rgb),.4); box-shadow:var(--shadow-2); }
.main-blog-widget .blog-li .row{ max-width:none; margin:0; }
.main-blog-widget .blog-li .columns,
.main-blog-widget .blog-li .blog-article{ float:none; width:100%; }
.main-blog-widget .blog-li .blog-article{ padding:0 26px 26px; }
.main-blog-widget .ps-article-img{ margin:0 -26px 22px; overflow:hidden; }
.main-blog-widget .ps-article-img img{ width:100%; height:240px; object-fit:cover; display:block; transition:transform .5s ease; }
.main-blog-widget .blog-li:hover .ps-article-img img{ transform:scale(1.05); }

.main-blog-widget .article-category{ font-family:var(--font-mono); font-size:12px; letter-spacing:.03em; line-height:1.7; color:var(--c-ink-3) !important; margin:0 0 12px; }
.main-blog-widget .article-category span{ font-family:var(--font-mono); font-size:13px !important; font-weight:400 !important; color:var(--c-ink-3) !important; }
.main-blog-widget .article-category .categories_text{ text-transform:uppercase; letter-spacing:.12em; color:var(--c-ink-3) !important; }
.main-blog-widget .article-category a{ color:var(--c-ink) !important; font-size:13px !important; text-decoration:none; transition:color .2s ease; }
.main-blog-widget .article-category a:hover{ color:var(--c-accent) !important; }
.main-blog-widget .article-title{ margin:0 0 12px; }
.main-blog-widget .article-title a,
.main-blog-widget .article-title .section-main-heading{
  font-family:var(--font-head); font-size:clamp(20px,2.4vw,25px); line-height:1.32; color:var(--c-ink) !important;
  text-decoration:none; text-wrap:balance; transition:color .2s ease;
}
.main-blog-widget .article-title a:hover,
.main-blog-widget .article-title a:hover .section-main-heading{ color:var(--c-accent) !important; }
.main-blog-widget .article-body{ margin:0 0 18px; color:var(--c-ink-2) !important; }
.is-wrapper .main-blog-widget .article-body p,
.is-wrapper .main-blog-widget .article-body.rte p,
.is-wrapper .main-blog-widget .rte p{ color:var(--c-ink-2) !important; font-size:15px; line-height:1.7; margin:0; }
.main-blog-widget .blog-read-more{
  display:inline-flex; align-items:center; gap:7px; font-family:var(--font-body); font-size:14px; font-weight:700;
  color:var(--c-accent) !important; text-decoration:none; transition:gap .2s ease;
}
.main-blog-widget .blog-read-more::after{ content:"\2192"; transition:transform .2s ease; }
.main-blog-widget .blog-read-more:hover::after{ transform:translateX(4px); }

/* pagination */
.main-blog-widget .ps-pagination-bar{ margin-top:14px; text-align:center; }
.main-blog-widget .ps-pagination-bar a,
.main-blog-widget .ps-pagination-bar span{
  display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 11px; margin:3px;
  border-radius:var(--r-sm); border:1px solid var(--c-line); background:var(--c-surface);
  color:var(--c-ink-2) !important; font-family:var(--font-body); font-size:14px; text-decoration:none;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.main-blog-widget .ps-pagination-bar a:hover{ border-color:rgba(var(--c-primary-rgb),.5); color:var(--c-ink) !important; background:var(--c-surface-3); }
.main-blog-widget .ps-pagination-bar .active,
.main-blog-widget .ps-pagination-bar .current{ background:var(--grad-accent); border-color:transparent; color:var(--btn-text) !important; }
@media all and (max-width:640px){ .main-blog-widget .ps-article-img img{ height:200px; } .main-blog-widget .blog-li .blog-article{ padding:0 20px 22px; } .main-blog-widget .ps-article-img{ margin:0 -20px 20px; } }

/* =================================================================
   BLOG ARTICLE (single post) — themed, scoped to .article-page-type
   ================================================================= */
.article-page-type{ background:var(--c-paper) !important; }

/* post title */
.article-page-type .blog-article-content > .article-title{
  font-family:var(--font-head); font-size:clamp(30px,4.4vw,48px) !important; line-height:1.18;
  color:var(--c-ink) !important; text-wrap:balance; margin:0 0 30px;
}

/* featured image (standalone — not the recent-post thumbnails) */
.article-page-type .blog-article-content .ps-article-img{ margin:0; }
.article-page-type .blog-article-content .ps-article-img img{
  width:100%; height:auto; display:block; border-radius:var(--r-lg); border:1px solid var(--c-line); box-shadow:var(--shadow-2);
}

/* author / meta column */
.article-page-type .blog-author{ font-family:var(--font-body); }
.article-page-type .lab-ul{ list-style:none; margin:0; padding:0; }
.article-page-type .lab-ul li{ margin:0 0 9px; }
.article-page-type .lab-ul .author_name{ font-family:var(--font-head); font-size:17px; color:var(--c-ink) !important; }
.article-page-type .lab-ul .pubdate{ font-family:var(--font-mono); font-size:13px; letter-spacing:.04em; color:var(--c-ink-3) !important; }
.is-wrapper .article-page-type .blog-author{ color:var(--c-ink-3); font-size:13.5px; line-height:1.75; }
.article-page-type .blog-author span{ font-size:13.5px !important; color:var(--c-ink-3) !important; font-weight:400 !important; }
.article-page-type .blog-author a{ color:var(--c-ink) !important; text-decoration:none; transition:color .2s ease; }
.article-page-type .blog-author a:hover{ color:var(--c-accent) !important; }
.new-blog-page-type .blog-author ul{ list-style:none; margin-left:0; color:var(--c-ink); }

/* article body (rich text) */
.article-page-type .article-body{ max-width:768px; margin:38px 0 0; }
.article-page-type .article-body > *:first-child{ margin-top:0; }
.article-page-type .blog-article-content .article-body.rte p{ color:var(--c-ink-2) !important; font-size:16.5px; line-height:1.8; margin:0 0 22px; }
.article-page-type .article-body h2{ font-family:var(--font-head); font-size:clamp(24px,3vw,32px); line-height:1.3; color:var(--c-ink) !important; margin:44px 0 16px; text-wrap:balance; }
.article-page-type .article-body h3{ font-family:var(--font-head); font-size:clamp(20px,2.4vw,24px); line-height:1.35; color:var(--c-ink) !important; margin:30px 0 12px; }
.article-page-type .article-body ul{ list-style:none; margin:0 0 22px; padding:0; }
.article-page-type .blog-article-content .article-body.rte li{ position:relative; padding-left:26px; margin:0 0 12px; color:var(--c-ink-2) !important; font-size:16.5px; line-height:1.7; }
.article-page-type .article-body li::before{ content:""; position:absolute; left:4px; top:11px; width:7px; height:7px; border-radius:50%; background:var(--grad-accent); }
.article-page-type .blog-article-content .article-body.rte strong{ color:var(--c-ink) !important; font-weight:700; }
.article-page-type .blog-article-content .article-body.rte a{ color:var(--c-accent) !important; text-decoration:underline; text-underline-offset:2px; transition:color .2s ease; }
.article-page-type .blog-article-content .article-body.rte a:hover{ color:var(--c-ink) !important; }

/* recent posts (full-width section below the article) */
.article-page-type .blog-sidebar{ margin-top:56px; padding-top:42px; border-top:1px solid var(--c-line); }
.article-page-type .blog-sidebar-h2{ font-family:var(--font-head); font-size:var(--fs-h2); color:var(--c-ink) !important; margin:0 0 26px; }
.article-page-type .ps-blog-recent-posts{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:26px; }
.article-page-type .ps-blog-recent-posts .blog-li{
  position:relative; overflow:hidden; margin:0; flex:1 1 300px; max-width:382px;
  background:var(--c-surface); border:1px solid var(--c-line); border-radius:var(--r-lg);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.article-page-type .ps-blog-recent-posts .blog-li:hover{ transform:translateY(-5px); border-color:rgba(var(--c-primary-rgb),.4); box-shadow:var(--shadow-2); }
.article-page-type .ps-blog-recent-posts .blog-li .row{ max-width:none; margin:0; }
.article-page-type .ps-blog-recent-posts .blog-li .columns,
.article-page-type .ps-blog-recent-posts .blog-li .blog-article{ float:none; width:100%; }
.article-page-type .ps-blog-recent-posts .blog-li .blog-article{ padding:0 22px 22px; }
.article-page-type .ps-blog-recent-posts .ps-article-img{ margin:0 -22px 18px; overflow:hidden; }
.article-page-type .ps-blog-recent-posts .ps-article-img img{ width:100%; height:200px; object-fit:cover; display:block; transition:transform .5s ease; }
.article-page-type .ps-blog-recent-posts .blog-li:hover .ps-article-img img{ transform:scale(1.05); }
.article-page-type .ps-blog-recent-posts .article-category{ font-family:var(--font-mono); font-size:12px; line-height:1.7; color:var(--c-ink-3) !important; margin:0 0 12px; }
.article-page-type .ps-blog-recent-posts .article-category span{ font-family:var(--font-mono); font-size:12.5px !important; font-weight:400 !important; color:var(--c-ink-3) !important; }
.article-page-type .ps-blog-recent-posts .article-category a{ color:var(--c-ink) !important; font-size:12.5px !important; text-decoration:none; transition:color .2s ease; }
.article-page-type .ps-blog-recent-posts .article-category a:hover{ color:var(--c-accent) !important; }
.article-page-type .ps-blog-recent-posts .article-title{ margin:0 0 12px; }
.article-page-type .ps-blog-recent-posts .article-title a,
.article-page-type .ps-blog-recent-posts .article-title a.color-black{ font-family:var(--font-head); font-size:clamp(18px,2vw,21px); line-height:1.32; color:var(--c-ink) !important; text-decoration:none; text-wrap:balance; transition:color .2s ease; }
.article-page-type .ps-blog-recent-posts .article-title a:hover{ color:var(--c-accent) !important; }
.article-page-type .ps-blog-recent-posts .item-body{ margin:0 0 16px; }
.article-page-type .ps-blog-recent-posts .item-body.rte p{ color:var(--c-ink-2) !important; font-size:14.5px; line-height:1.65; margin:0; }
.article-page-type .ps-blog-recent-posts .blog-read-more{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-body); font-size:14px; font-weight:700; color:var(--c-accent) !important; text-decoration:none; transition:gap .2s ease; }
.article-page-type .ps-blog-recent-posts .blog-read-more::after{ content:"\2192"; transition:transform .2s ease; }
.article-page-type .ps-blog-recent-posts .blog-read-more:hover::after{ transform:translateX(4px); }
@media all and (max-width:640px){ .article-page-type .ps-blog-recent-posts .blog-li{ max-width:none; } }

/* =================================================================
   LEAD MAGNET FORM — themed, scoped to #lead-magnet-form
   ================================================================= */
#lead-magnet-form .ww-form-container{
  position:relative; overflow:hidden; max-width:560px; margin:0 auto;
  padding:40px 38px; border:1px solid var(--c-line); border-radius:var(--r-lg);
  background:var(--c-surface); box-shadow:var(--shadow-2);
}
#lead-magnet-form .ww-form-container::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-accent-90); }
#lead-magnet-form form{ width:100%; }
#lead-magnet-form h2{ font-family:var(--font-head); font-size:clamp(22px,2.6vw,28px); line-height:1.3; color:var(--c-ink) !important; margin:0 0 14px; text-wrap:balance; }
#lead-magnet-form p{ color:var(--c-ink-2) !important; font-size:15.5px; line-height:1.7; margin:0 0 26px; }

#lead-magnet-form .first_name_wrap,
#lead-magnet-form .email_wrap{ margin-bottom:18px; }
#lead-magnet-form label{ display:block; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink-3) !important; margin-bottom:8px; }
#lead-magnet-form .required{ color:var(--c-accent) !important; margin-left:3px; }
#lead-magnet-form input.input:not(.button){
  width:100%; padding:13px 16px; line-height:1.4; font-family:var(--font-body); font-size:15px;
  background:var(--c-surface-2) !important; border:1px solid var(--c-line) !important;
  color:var(--c-ink) !important; border-radius:var(--r-btn) !important; box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#lead-magnet-form input.input:not(.button)::placeholder{ color:var(--c-ink-4); }
#lead-magnet-form input.input:not(.button):focus{ outline:none; border-color:var(--c-accent) !important; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.18) !important; background:var(--c-surface-3) !important; }
#lead-magnet-form .error{ display:block; margin-top:6px; font-family:var(--font-body); font-size:13px; color:var(--c-danger); }
#lead-magnet-form .captcha_wrap{ margin-bottom:14px; }
#lead-magnet-form input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center; width:100%; margin-top:4px;
  padding:15px 30px; cursor:pointer; -webkit-appearance:none; appearance:none;
  font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:.01em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important;
  border:0 !important; border-radius:var(--r-btn) !important; box-shadow:var(--shadow-btn);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#lead-magnet-form input[type="submit"]:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); }
@media all and (max-width:640px){ #lead-magnet-form .ww-form-container{ padding:30px 22px; } }

/* =================================================================
   NEWSLETTER / REGISTRATION PAGE — scoped to #newsletter-form
   ================================================================= */
.newsletter-form-wrapper{ background:var(--c-paper) !important; padding:clamp(48px,7vw,88px) 0; }
#newsletter-form form{
  position:relative; overflow:hidden; max-width:560px; margin:0 auto;
  padding:42px 38px; border:1px solid var(--c-line); border-radius:var(--r-lg);
  background:var(--c-surface); box-shadow:var(--shadow-2);
}
#newsletter-form form::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-accent-90); }

/* intro */
#newsletter-form document{ display:block; margin:0 0 24px; }
#newsletter-form document p{ color:var(--c-ink-2) !important; font-size:15.5px; line-height:1.7; margin:0; }

/* fieldset + legend */
#newsletter-form .fieldset{ border:0; margin:0; padding:0; min-width:0; }
#newsletter-form legend{ display:block; width:100%; float:none; padding:0; margin:0 0 18px; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--c-ink-3) !important; }

/* text fields */
#newsletter-form .first_name_wrap,
#newsletter-form .last_name_wrap,
#newsletter-form .email_wrap{ margin-bottom:18px; }
#newsletter-form label{ display:block; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink-3) !important; margin-bottom:8px; }
#newsletter-form .required{ color:var(--c-accent) !important; margin-left:3px; }
#newsletter-form input.input:not(.button):not([type="checkbox"]){
  width:100%; padding:13px 16px; line-height:1.4; font-family:var(--font-body); font-size:15px;
  background:var(--c-surface-2) !important; border:1px solid var(--c-line) !important;
  color:var(--c-ink) !important; border-radius:var(--r-btn) !important; box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#newsletter-form input.input:not(.button):not([type="checkbox"])::placeholder{ color:var(--c-ink-4); }
#newsletter-form input.input:not(.button):not([type="checkbox"]):focus{ outline:none; border-color:var(--c-accent) !important; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.18) !important; background:var(--c-surface-3) !important; }

/* opt-in checkbox (custom, dark) */
#newsletter-form .checkbox_wrap{ margin-bottom:20px; }
#newsletter-form .checkbox_wrap > p{ margin:0; }
#newsletter-form .checkbox_wrap .float-left{ float:none !important; }
#newsletter-form .checkbox_wrap label{ display:flex; align-items:center; gap:11px; margin:0; font-family:var(--font-body); font-size:14.5px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--c-ink-2) !important; cursor:pointer; }
#newsletter-form input[type="checkbox"]{
  appearance:none; -webkit-appearance:none; flex:0 0 auto; position:relative;
  width:20px; height:20px; margin:0; border:1px solid var(--c-line); border-radius:5px;
  background:var(--c-surface-2); cursor:pointer; transition:background .2s ease, border-color .2s ease;
}
#newsletter-form input[type="checkbox"]:checked{ background:var(--grad-accent); border-color:transparent; }
#newsletter-form input[type="checkbox"]:checked::after{ content:""; position:absolute; left:6px; top:2px; width:5px; height:10px; border:solid var(--btn-text); border-width:0 2px 2px 0; transform:rotate(45deg); }
#newsletter-form input[type="checkbox"]:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.25); }

/* errors + captcha */
#newsletter-form .error{ display:block; margin-top:6px; font-family:var(--font-body); font-size:13px; color:var(--c-danger); }
#newsletter-form .captcha_wrap{ margin-bottom:16px; }

/* submit */
#newsletter-form .submit_wrap > label{ display:none; }
#newsletter-form input[type="submit"]{
  display:inline-flex; align-items:center; justify-content:center; width:100%; margin-top:4px;
  padding:15px 30px; cursor:pointer; -webkit-appearance:none; appearance:none;
  font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:.01em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important;
  border:0 !important; border-radius:var(--r-btn) !important; box-shadow:var(--shadow-btn);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#newsletter-form input[type="submit"]:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); }
@media all and (max-width:640px){ #newsletter-form form{ padding:30px 22px; } }

/* =================================================================
   LOGIN PAGE — themed, scoped to .ps-login-page
   ================================================================= */
.ps-login-page{ background:var(--c-paper) !important; }
.ps-login-page .ps-login-form-wrap{
  position:relative; overflow:hidden; max-width:460px; margin:0 auto; float:none !important;
  padding:40px 36px; border:1px solid var(--c-line); border-radius:var(--r-lg);
  background:var(--c-surface); box-shadow:var(--shadow-2);
}
.ps-login-page .ps-login-form-wrap::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-accent-90); }
.ps-login-page .ps-login-form-wrap h4{ font-family:var(--font-head); font-size:clamp(22px,2.6vw,26px); line-height:1.25; color:var(--c-ink) !important; margin:0 0 24px; }

/* field groups + labels */
.ps-login-page form.settings > div{ margin-bottom:18px; }
.ps-login-page label{ display:block; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--c-ink-3) !important; margin-bottom:8px; }
.ps-login-page label .error{ color:var(--c-accent) !important; }

/* inputs */
.ps-login-page .ps-text{
  width:100%; padding:13px 16px; line-height:1.4; font-family:var(--font-body); font-size:15px;
  background:var(--c-surface-2) !important; border:1px solid var(--c-line) !important;
  color:var(--c-ink) !important; border-radius:var(--r-btn) !important; box-shadow:none !important;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ps-login-page .ps-text::placeholder{ color:var(--c-ink-4); }
.ps-login-page .ps-text:focus{ outline:none; border-color:var(--c-accent) !important; box-shadow:0 0 0 3px rgba(var(--c-accent-rgb),.18) !important; background:var(--c-surface-3) !important; }

/* password field + reveal eye */
.ps-login-page .password-container{ position:relative; }
.ps-login-page .password-container .passwordField{ padding-right:46px; }
.ps-login-page .toggle-password{ position:absolute; top:50%; transform:translateY(-50%); color:var(--c-ink-3); cursor:pointer; font-size:15px; transition:color .2s ease; }
.ps-login-page .toggle-password:hover{ color:var(--c-accent); }
.ps-login-page .password-container + p{ font-size:12.5px; color:var(--c-ink-3) !important; margin:8px 0 0; }

/* links */
.ps-login-page a{ color:var(--c-accent) !important; text-decoration:none; transition:color .2s ease; }
.ps-login-page a:hover{ color:var(--c-ink) !important; text-decoration:underline; }
.ps-login-page .ps-login-form-wrap > p{ text-align:center; font-size:14px; color:var(--c-ink-2) !important; margin:18px 0 0; }

/* primary login button */
.ps-login-page .ps-login-button{
  display:block; width:100%; padding:14px 30px; cursor:pointer; -webkit-appearance:none; appearance:none;
  font-family:var(--font-body); font-size:15px; font-weight:700; letter-spacing:.01em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important;
  border:0 !important; border-radius:var(--r-btn) !important; box-shadow:var(--shadow-btn);
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.ps-login-page .ps-login-button:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); }

/* separator + signup (secondary) */
.ps-login-page .ps-separator{ height:1px; background:var(--c-line); border:0; margin:24px 0; }
.ps-login-page .signup-container{ text-align:center; }
.ps-login-page .signup-container p{ font-size:14px; color:var(--c-ink-2) !important; margin:0 0 13px; }
.ps-login-page .ps-register-button{
  display:flex; align-items:center; justify-content:center;
  width:50% !important; height:56px !important; margin:0 auto; padding:0 20px;
  cursor:pointer; -webkit-appearance:none; appearance:none;
  font-family:var(--font-body); font-size:18px; font-weight:700; letter-spacing:.04em;
  background:transparent !important; color:var(--c-ink) !important;
  border:1px solid var(--c-line) !important; border-radius:var(--r-btn) !important;
  transition:transform .2s ease, border-color .2s ease, color .2s ease, background .2s ease;
}
.ps-login-page .ps-register-button:hover{ transform:translateY(-2px); border-color:rgba(var(--c-primary-rgb),.6) !important; color:var(--c-accent) !important; background:var(--c-surface-3) !important; }
@media all and (max-width:640px){ .ps-login-page .ps-login-form-wrap{ padding:30px 24px; } .ps-login-page .ps-register-button{ width:100% !important; } }

/* =================================================================
   SITE HEADER — themed, scoped to #header
   (nav styled against Foundation dropdown-menu classes; refine once
    the 'header-menu' include is known)
   ================================================================= */
#header{ /*background:var(--c-surface) !important;*/ background:transparent; border-bottom:1px solid var(--c-line); }
#header .new-header-menu-container{ /*background:var(--c-surface-2);*/ background:transparent; border-top:1px solid var(--c-line); }

/* phone link (desktop + mobile) */
#header .sitePhoneNumber{ font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--c-ink) !important; text-decoration:none; transition:color .2s ease; }
#header .sitePhoneNumber i{ color:var(--c-accent); margin-right:6px; }
#header .sitePhoneNumber:hover{ color:var(--c-accent) !important; }

/* logo */
#header .text-logo{ font-family:var(--font-head); font-size:clamp(22px,2.4vw,28px); font-weight:800; letter-spacing:-.01em; color:var(--c-ink) !important; }
#header .logo-container img{ max-height:160px; width:auto; display:inline-block; }

/* header CTA button */
#header .cta.button{
  display:inline-flex; align-items:center; justify-content:center;
  padding:11px 22px; font-family:var(--font-body); font-size:14px; font-weight:700; letter-spacing:.02em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important;
  border:0 !important; border-radius:var(--r-btn) !important; box-shadow:var(--shadow-btn); text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#header .cta.button:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); color:var(--btn-text) !important; }

/* hamburger (mobile) */
#header .sidenav-container{ background:transparent !important; }
#header .openMenu{ background:transparent; border:0; padding:6px; cursor:pointer; color:var(--c-primary); transition:color .2s ease; }
#header .openMenu .fa-bars,
#header .openMenu .icon{ color:var(--c-primary); }
#header .openMenu:hover,
#header .openMenu:hover .icon{ color:var(--c-accent); }

/* primary nav */
#header nav > .menu{ background:transparent; }
#header nav > .menu > li > a{ position:relative; font-family:var(--font-body); font-weight:600; font-size:15px; color:var(--c-ink) !important; padding:18px 16px; text-decoration:none; transition:color .2s ease; }
#header nav > .menu > li > a::before{ content:""; position:absolute; left:16px; right:16px; bottom:12px; height:2px; background:var(--grad-accent-90); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
#header nav > .menu > li > a:hover{ color:var(--c-accent) !important; }
#header nav > .menu > li > a:hover::before{ transform:scaleX(1); }
/* dropdown caret — collapse theme+Foundation arrows to ONE clean chevron, right-aligned, flips when open */
#header nav > .menu > .is-dropdown-submenu-parent > a{ padding-right:30px; }
#header nav > .menu > .is-dropdown-submenu-parent > a::after{
  content:"" !important; display:block !important; width:0 !important; height:0 !important;
  border:5px solid transparent !important; border-top-color:var(--c-ink-3) !important; border-bottom:0 !important;
  position:absolute !important; top:50% !important; right:12px !important; left:auto !important; bottom:auto !important;
  margin:-2px 0 0 0 !important; transition:transform .25s ease, border-top-color .2s ease;
}
#header nav > .menu > .is-dropdown-submenu-parent:hover > a::after{ border-top-color:var(--c-accent) !important; transform:rotate(180deg); }
#header nav > .menu > .is-dropdown-submenu-parent > a > span::before,
#header nav > .menu > .is-dropdown-submenu-parent > a > span::after,
#header nav > .menu > .is-dropdown-submenu-parent::before,
#header nav > .menu > .is-dropdown-submenu-parent::after{ content:none !important; display:none !important; }

/* dropdown submenus */
#header nav .is-dropdown-submenu{ background:var(--c-surface-2) !important; border:1px solid var(--c-line) !important; border-radius:var(--r-md); box-shadow:var(--shadow-2); padding:6px 0; min-width:210px; }
#header nav .is-dropdown-submenu > li > a{ color:var(--c-ink-2) !important; font-size:14px; line-height:1.4; white-space:nowrap; padding:10px 20px; text-decoration:none; transition:color .2s ease, background .2s ease; }
#header nav .is-dropdown-submenu > li > a:hover{ color:var(--c-accent) !important; background:var(--c-surface-3) !important; }

/* active / current page */
#header nav > .menu > li.active > a,
#header nav > .menu > li:has(li.active) > a{ color:var(--c-accent) !important; }
#header nav > .menu > li.active > a::before,
#header nav > .menu > li:has(li.active) > a::before{ transform:scaleX(1); }
#header nav .is-dropdown-submenu > li.active > a{ color:var(--c-accent) !important; }

/* mobile contact bars */
#header .mobile-contact-number-section,
#header .mobile-contact-button-section{ text-align:center; padding:11px 16px; border-top:1px solid var(--c-line); }
#header .mobile-contact-number-section .cta,
#header .mobile-contact-button-section .cta{ font-family:var(--font-body); font-size:14.5px; text-decoration:none; margin-bottom:0; }
#header .mobile-contact-number-section i,
#header .mobile-contact-button-section i{ color:var(--c-accent); margin-right:7px; }
#header .mobile-contact-number-section .cta:hover,
#header .mobile-contact-button-section .cta:hover{ color:var(--c-accent) !important; }

/* =================================================================
   MOBILE SLIDE-OUT MENU (#sidenav off-canvas) — matches desktop nav
   ================================================================= */
.js-off-canvas-overlay{ background:rgba(0,0,0,.55) !important; }
#sidenav.off-canvas{ background:var(--c-surface) !important; border-left:1px solid var(--c-line); box-shadow:var(--shadow-2); padding:0; }

/* menu shell + top-level links */
#sidenav .accordion-menu{ background:transparent; padding:6px 0; }
#sidenav .accordion-menu > li{ border-bottom:1px solid var(--c-line); }
#sidenav .accordion-menu > li > a{ font-family:var(--font-body); font-weight:600; font-size:16px; color:var(--c-ink) !important; padding:15px 22px; text-decoration:none; transition:color .2s ease, background .2s ease; }
#sidenav .accordion-menu > li > a:hover{ color:var(--c-accent) !important; background:var(--c-surface-2); }
#sidenav .accordion-menu > li.active > a{ color:var(--c-accent) !important; box-shadow:inset 3px 0 0 var(--c-primary); }

/* accordion caret — single clean chevron, right-aligned, flips when expanded */
#sidenav .is-accordion-submenu-parent > a{ position:relative; padding-right:44px; }
#sidenav .is-accordion-submenu-parent > a::after{
  content:"" !important; display:block !important; width:0 !important; height:0 !important;
  border:5px solid transparent !important; border-top-color:var(--c-ink-3) !important; border-bottom:0 !important;
  position:absolute !important; top:50% !important; right:22px !important; left:auto !important; bottom:auto !important;
  margin:-2px 0 0 0 !important; transform-origin:center; transition:transform .25s ease, border-top-color .2s ease;
}
#sidenav .is-accordion-submenu-parent[aria-expanded="true"] > a::after,
#sidenav .is-accordion-submenu-parent.is-active > a::after{ border-top-color:var(--c-accent) !important; transform:rotate(180deg); }
#sidenav .is-accordion-submenu-parent > a::before,
#sidenav .is-accordion-submenu-parent > a > span::before,
#sidenav .is-accordion-submenu-parent > a > span::after{ content:none !important; display:none !important; }

/* expanded submenu */
#sidenav .is-accordion-submenu{ background:var(--c-surface-2); }
#sidenav .is-accordion-submenu > li > a{ font-family:var(--font-body); font-weight:500; font-size:14.5px; color:var(--c-ink-2) !important; padding:12px 22px 12px 36px; text-decoration:none; transition:color .2s ease, background .2s ease; }
#sidenav .is-accordion-submenu > li > a:hover{ color:var(--c-accent) !important; background:var(--c-surface-3); }
#sidenav .is-accordion-submenu > li.active > a{ color:var(--c-accent) !important; box-shadow:inset 3px 0 0 var(--c-primary); }
#sidenav .is-accordion-submenu > li > a span{ display:flex; padding:0 !important; }

/* =================================================================
   KEYFRAMES
   ================================================================= */
@keyframes jea-blink{ 0%,100%{ opacity:1; } 50%{ opacity:.25; } }
@keyframes jea-spin{ to{ transform:rotate(360deg); } }
@keyframes jea-reveal{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
@keyframes jea-settle{ from{ opacity:0; transform:scale(1.07); } to{ opacity:1; transform:none; } }
@keyframes jea-cta-pulse{ 0%,100%{ box-shadow:0 10px 30px rgba(var(--c-primary-rgb),.26); } 50%{ box-shadow:0 16px 46px rgba(var(--c-primary-rgb),.5); } }
@keyframes jea-svc-sweep{ 0%{ top:-2px; opacity:0; } 12%{ opacity:1; } 88%{ opacity:1; } 100%{ top:100%; opacity:0; } }
@keyframes jea-card-in{ from{ opacity:0; transform:translateY(30px) scale(.96); } to{ opacity:1; transform:none; } }
@keyframes jea-shine{ from{ transform:translateX(-130%) skewX(-12deg); } to{ transform:translateX(280%) skewX(-12deg); } }
@keyframes jea-avatar-glow{ 0%,100%{ box-shadow:0 0 0 0 rgba(var(--c-primary-rgb),0); } 50%{ box-shadow:0 0 15px 1px rgba(var(--c-primary-rgb),.32); } }
@keyframes jea-ping{ 0%{ transform:scale(.18); opacity:.8; } 80%{ opacity:0; } 100%{ transform:scale(1); opacity:0; } }
@keyframes jea-blip{ 0%,100%{ transform:scale(1); opacity:.55; } 50%{ transform:scale(1.55); opacity:1; } }
@keyframes jea-core-pulse{ 0%,100%{ box-shadow:0 0 14px rgba(var(--c-accent-rgb),.7); } 50%{ box-shadow:0 0 26px rgba(var(--c-accent-rgb),1); } }

/* load + ambient motion (degrades to no motion under reduce) */
@media (prefers-reduced-motion:no-preference){
  .jea-sec-cta .jea-btn{ animation:jea-cta-pulse 2.8s ease-in-out infinite; }
  .jea-review-avatar{ animation:jea-avatar-glow 3.4s ease-in-out infinite; }
  .jea-review-card:hover::after{ animation:jea-shine .85s ease; }
}

/* scroll reveal (progressive enhancement; hidden state only when supported + motion ok) */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .jea-story-copy,
    .jea-mission-inner,
    .jea-founder-body,
    .jea-areas-text,
    .jea-svc-head,
    .jea-overview-copy,
    .jea-benefits-head,
    .jea-contact-intro,
    .jea-reviews-intro{ animation:jea-reveal linear both; animation-timeline:view(); animation-range:entry 0% entry 48%; }
    .jea-story-img,
    .jea-mission-img,
    .jea-founder-img,
    .jea-overview-media,
    .jea-map,
    .ww-form-container-3,
    #lead-magnet-form .ww-form-container,
    #newsletter-form form,
    .ps-login-page .ps-login-form-wrap,
    .article-page-type .blog-article-content .ps-article-img,
    .jea-coverage{ animation:jea-settle linear both; animation-timeline:view(); animation-range:entry 0% entry 60%; }
    .jea-sec-reviews .jea-review-card,
    .jea-sec-benefits .jea-benefit-card,
    .jea-sec-contact .jea-cinfo-item,
    .main-blog-widget .blog-li,
    .article-page-type .ps-blog-recent-posts .blog-li,
    .jea-sec-services .jea-svc-card{ animation:jea-card-in linear both; animation-timeline:view(); animation-range:entry 6% entry 58%; }
  }
}

@media (prefers-reduced-motion:reduce){
  .jea-dot--ok,.jea-radar-sweep,.jea-radar-core,.jea-radar-dot{ animation:none; }
  .jea-radar::before,.jea-radar::after{ display:none; }
  .jea-review-card{ transition:none; }
  .jea-review-card:hover{ transform:none; }
  .jea-review-card:hover .jea-review-avatar{ transform:none; }
  .jea-area-chip{ transition:none; }
  .jea-area-chip:hover{ transform:none; box-shadow:none; }
  .jea-svc-card{ transition:none; }
  .jea-svc-card:hover{ transform:none; }
  .jea-svc-img{ transition:none; }
  .jea-svc-card:hover .jea-svc-img{ transform:none; }
  .jea-svc-media::before,.jea-svc-media::after{ transition:none; }
  .jea-svc-card:hover .jea-svc-scan{ animation:none; }
  .jea-svc-btn::after{ transition:none; }
  .jea-svc-btn:hover::after{ transform:none; }
  .jea-benefit-card{ transition:none; }
  .jea-benefit-card:hover{ transform:none; }
  .jea-benefit-card:hover .jea-benefit-icon{ transform:none; }
  .jea-cinfo-item{ transition:none; }
  .jea-cinfo-item:hover{ transform:none; }
  .ww-form-container-3 input[type="submit"]:hover{ transform:none; }
  #lead-magnet-form input[type="submit"]:hover{ transform:none; }
  #newsletter-form input[type="submit"]:hover{ transform:none; }
  .ps-login-page .ps-login-button:hover{ transform:none; }
  .ps-login-page .ps-register-button:hover{ transform:none; }
  .main-blog-widget .blog-li{ transition:none; }
  .main-blog-widget .blog-li:hover{ transform:none; }
  .main-blog-widget .blog-li:hover .ps-article-img img{ transform:none; }
  .main-blog-widget .ps-blog-category li a:hover{ transform:none; }
  .main-blog-widget .blog-read-more:hover::after{ transform:none; }
  .article-page-type .ps-blog-recent-posts .blog-li{ transition:none; }
  .article-page-type .ps-blog-recent-posts .blog-li:hover{ transform:none; }
  .article-page-type .ps-blog-recent-posts .blog-li:hover .ps-article-img img{ transform:none; }
  .article-page-type .ps-blog-recent-posts .blog-read-more:hover::after{ transform:none; }
}

/* =================================================================
   RESPONSIVE  (tablet 1024 / phone 640)
   ================================================================= */
@media all and (max-width:1023.5px){
  .jea-feat-card{ grid-template-columns:1fr; }
  .jea-feat-media{ min-height:240px; border-right:none; border-bottom:1px solid var(--c-line-3); }
  .jea-feat-body{ padding:34px; }

  .jea-feature-card,.jea-feature-card--rev{ flex-direction:column; }
  .jea-feature-media{min-height: 700px;  order:2; }
  .jea-feature-text{ padding:34px; order:1; }
}

@media all and (max-width:640px){
  .jea-feat-body,.jea-feature-text{ padding:26px; }
  .jea-reviews-head{ align-items:flex-start; }
  .jea-radar{ width:150px; height:150px; }
  .jea-coverage-inner{ padding:24px; }
}

@media all and (max-width:568px){
.jea-feature-media {
        min-height: 360px;
    }
}

/* =================================================================
   ABOUT PAGE — components (reuse tokens + hero / review / cta helpers)
   ================================================================= */

/* section backgrounds — wrapper-scoped, adjacent sections alternate */
.is-wrapper > .jea-sec-story,    .is-wrapper .jea-sec-story{    background:var(--c-surface-2); border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-mission,  .is-wrapper .jea-sec-mission{  background:var(--c-paper);     border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }
.is-wrapper > .jea-sec-founder,  .is-wrapper .jea-sec-founder{  background:var(--c-surface-2); border-top:1px solid var(--c-line-2); padding:var(--space-section) 0; }

/* STORY — editorial split: origin text + full-height image panel */
.jea-story-rule{ width:48px; height:3px; border-radius:2px; background:var(--grad-accent-90); margin-bottom:30px; }
.is-wrapper p.jea-story-text{ font-size:17px; line-height:1.74; color:var(--c-ink-3); }
.is-wrapper p.jea-story-text + p.jea-story-text{ margin-top:20px; }
.jea-story-media{ position:relative; height:100%; min-height:460px; overflow:hidden; border:1px solid var(--c-line); border-radius:var(--r-xl); background:var(--c-surface); }
/*.jea-story-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }*/
.jea-story-media::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(155deg, rgba(var(--c-primary-rgb),.1) 0%, transparent 42%, rgba(0,0,0,.4) 100%); }

/* MISSION — statement over a cinematic image band */
.jea-mission-band{ position:relative; overflow:hidden; border:1px solid var(--c-line); border-radius:var(--r-xl); min-height:clamp(360px,46vh,460px); display:flex; align-items:center; justify-content:center; }
.jea-mission-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.jea-mission-scrim{ position:absolute; inset:0; pointer-events:none; background:radial-gradient(720px 420px at 50% 46%, rgba(var(--c-primary-rgb),.2), transparent 68%), linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,.52)); }
.jea-mission-inner{ position:relative; z-index:1; max-width:920px; margin:0 auto; padding:56px 48px; text-align:center; }
.jea-mission-rule{ width:54px; height:3px; border-radius:2px; background:var(--grad-accent-90); margin:0 auto 26px; }
.is-wrapper p.jea-mission-statement{
  font-family:var(--font-head); font-weight:700; font-size:clamp(26px,2.9vw,2.2em);
  line-height:1.24; letter-spacing:-.02em; color:var(--c-ink);
}

/* FOUNDER — portrait + first-person editorial */
.jea-founder-media{ position:sticky; top:100px; }
.jea-founder-body{ max-width:640px; }
.jea-founder-portrait{
  position:relative; overflow:hidden; aspect-ratio:4/5;
  border:1px solid var(--c-line); border-radius:var(--r-xl); background:var(--c-surface);
}
.jea-founder-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.is-wrapper p.jea-founder-lead{
  font-family:var(--font-head); font-weight:600; font-size:clamp(20px,2.4vw,27px);
  line-height:1.3; letter-spacing:-.015em; color:var(--c-ink); margin-bottom:28px;
}
.is-wrapper p.jea-founder-text{ font-size:16.5px; line-height:1.72; color:var(--c-ink-3); }
.is-wrapper p.jea-founder-text + p.jea-founder-text{ margin-top:18px; }

/* REVIEWS intro — section heading + lead above the cards */
.jea-reviews-intro{ max-width:760px; margin:0 auto 44px; text-align:center; }
.jea-reviews-intro-h2{ font-weight:800; font-size:var(--fs-h2); line-height:1.1; letter-spacing:-.02em; margin-bottom:18px; }
.is-wrapper p.jea-reviews-intro-text{ font-size:17px; line-height:1.72; color:var(--c-ink-2); }

/* ABOUT — responsive */
@media all and (max-width:1023.5px){
  .jea-founder-media{ position:static; margin-bottom:36px; }
  .jea-founder-portrait{ aspect-ratio:16/10; max-width:540px; }
  .jea-story-media{ height:auto; min-height:0; aspect-ratio:16/10; margin-top:30px; }
}
@media all and (max-width:640px){
  .jea-story-rule{ margin-bottom:24px; }
  .jea-mission-inner{ padding:36px 22px; }
}

/* =================================================================
   SITE FOOTER — themed, scoped to #footer
   ================================================================= */
#footer.new-footer{ background:var(--c-surface) !important; border-top:1px solid var(--c-line); }

/* footer nav — flat top-level row (dropdowns suppressed for footer) */
#footer .footer-menu-container{ border-bottom:1px solid var(--c-line); }
#footer .footer-menu-container .menu{ background:transparent; }
#footer .footer-menu-container .menu > li > a{ font-family:var(--font-body); font-weight:600; font-size:14.5px; letter-spacing:.01em; color:var(--c-ink-2) !important; padding:9px 18px; text-decoration:none; transition:color .2s ease; }
#footer .footer-menu-container .menu > li > a:hover{ color:var(--c-accent) !important; }
#footer .footer-menu-container .menu > li.active > a{ color:var(--c-accent) !important; }
#footer .footer-menu-container .menu > li.active > a span,
#footer .footer-menu-container .menu > li:hover > a span{ color:var(--c-accent) !important; }
#footer .footer-menu-container .is-dropdown-submenu{ display:none !important; }
#footer .footer-menu-container .is-dropdown-submenu-parent > a::after,
#footer .footer-menu-container .is-dropdown-submenu-parent > a::before{ content:none !important; display:none !important; }

/* column headings */
#footer h4{ font-family:var(--font-head); font-size:18px; font-weight:700; color:var(--c-ink) !important; margin-bottom:14px; }

/* about column */
#footer .footer-text{ padding-top:0px; }
#footer .footer-text p{ font-family:var(--font-body); font-size:14.5px; line-height:1.7; color:var(--c-ink-2) !important; margin-bottom:0; }
#footer .footer-social-media{ margin-top:0px; padding-bottom:0px; }
#footer .footer-social-media .menu a{ color:var(--c-ink-2) !important; transition:color .2s ease; }
#footer .footer-social-media .menu a:hover{ color:var(--c-accent) !important; }

/* logo column */
#footer .footer-media-box{ display:flex; align-items:center; justify-content:center; padding-top:0px; padding-bottom:0px; }
#footer .footer-media-box img{ max-height:160px; width:auto; border-radius:var(--r-md); }

/* contact column */
#footer .contact-us-column{ padding-top:0px; padding-bottom:10px; }
#footer .shop-address{ position:relative; padding-left:30px; font-family:var(--font-body); font-size:14.5px; line-height:1.7; color:var(--c-ink-2) !important; text-decoration:none; transition:color .2s ease; }
#footer .shop-address:hover{ color:var(--c-accent) !important; }
#footer .contact-number{ position:relative; padding-left:30px; margin-top:12px; }
#footer .contact-number a{ font-family:var(--font-body); font-size:16px; font-weight:700; color:var(--c-ink) !important; text-decoration:none; transition:color .2s ease; }
#footer .contact-number a:hover{ color:var(--c-accent) !important; }
#footer .email-id{ position:relative; padding-left:30px; display:inline-block; margin-top:8px; font-family:var(--font-body); font-size:14.5px; color:var(--c-ink-2) !important; text-decoration:none; transition:color .2s ease; }
#footer .email-id:hover{ color:var(--c-accent) !important; }
#footer .shop-address::before,
#footer .contact-number::before,
#footer .email-id::before{ font-family:"Font Awesome 6 Pro","Font Awesome 5 Pro","Font Awesome 6 Free","Font Awesome 5 Free","FontAwesome"; font-weight:900; color:var(--c-accent); font-size:15px; position:absolute; left:0; width:18px; text-align:center; }
#footer .shop-address::before{ content:"\f3c5"; top:0; line-height:1.7; }
#footer .contact-number::before{ content:"\f095"; top:50%; transform:translateY(-50%) scaleX(-1); }
#footer .email-id::before{ content:"\f0e0"; top:50%; transform:translateY(-50%); }

/* mailing-list button */
#footer .mailing-list-button .button{
  display:inline-flex; align-items:center; justify-content:center;
  margin-top:18px; padding:12px 24px; font-family:var(--font-body); font-size:14px; font-weight:700; letter-spacing:.02em;
  background:var(--grad-accent) !important; color:var(--btn-text) !important; border:0 !important; border-radius:var(--r-btn) !important;
  box-shadow:var(--shadow-btn); text-decoration:none; transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
#footer .mailing-list-button .button:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:var(--shadow-btn-lg); color:var(--btn-text) !important; }

/* copyright */
#footer .copyright-container{ border-top:1px solid var(--c-line); padding:18px 0; }
#footer .copyright{ font-family:var(--font-body); font-size:13px; color:var(--c-ink-3) !important; }
#footer .copyright a{ color:var(--c-ink-2) !important; text-decoration:none; transition:color .2s ease; }
#footer .copyright a:hover{ color:var(--c-accent) !important; }

@media screen and (max-width:1023.5px){ #footer{ margin-top:0; } #footer .shop-address, #footer .contact-number, #footer .email-id{ display:block !important; width:-moz-fit-content; width:fit-content; margin-left:auto !important; margin-right:auto !important; } #footer .shop-address{ text-align:left; }   #footer .footer-media-box {
    padding-bottom: 30px;
}}

/* =================================================================
   BACK-TO-TOP BUTTON (.back-to-top-button) — animated
   (Webware keeps the fixed placement; this restyles + animates it)
   ================================================================= */
.back-to-top-button{
  width:54px !important; height:54px !important;
  display:flex !important; align-items:center; justify-content:center;
  background:var(--grad-accent) !important; border-radius:var(--r-pill) !important;
  color:var(--btn-text) !important; text-decoration:none; overflow:visible; z-index:990;
  box-shadow:var(--shadow-btn-lg);
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease, filter .25s ease;
}
.back-to-top-button::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:var(--grad-accent); z-index:-1;
  animation:jea-btt-pulse 2.4s ease-out infinite;
}
@keyframes jea-btt-pulse{ 0%{ transform:scale(1); opacity:.45; } 70%,100%{ transform:scale(1.7); opacity:0; } }
.back-to-top-button:hover{
  transform:translateY(-5px) scale(1.07);
  box-shadow:var(--shadow-btn-lg), 0 0 26px 5px rgba(var(--c-accent-rgb),.45);
  filter:brightness(1.08);
}
.back-to-top-button:active{ transform:translateY(-2px) scale(.97); }
.back-to-top-button i{ position:relative; color:var(--btn-text) !important; font-size:20px !important; line-height:1 !important; }
.back-to-top-button:hover i{ animation:jea-btt-arrow .7s ease-in-out infinite; }
@keyframes jea-btt-arrow{ 0%,100%{ top:0; } 50%{ top:-5px; } }
.back-to-top-button .fa-border{ border:0 !important; padding:0 !important; border-radius:0 !important; background:transparent !important; }
.back-to-top-button .fa-pull-right{ float:none !important; margin:0 !important; }
@media (prefers-reduced-motion:reduce){
  .back-to-top-button::before{ animation:none; opacity:0; }
  .back-to-top-button:hover i{ animation:none; }
}


@media (max-width:1024px){
   .jea-bnl .bn-content{ 
    border-radius:0px !important;
    max-width: 100% !important;
   }  
}


  
@keyframes slideDown {
    from {
        transform: translateY(-100%);
    }
    to {
        transform: translateY(0);
    }
}


.main-navigation.sticky {
    animation: slideDown 0.3s ease-in-out;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99;
    width: 100%;
    background-color:#000;
    margin-top: 0;
   box-shadow: 0px 0px 29px 0px rgba(0, 0, 0, 0.07);
}

.main-navigation.sticky #mainNav{
        justify-content: center;
    }
  