:root {
color-scheme: light;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
background: #c8b7f4;
}

html {
scroll-behavior: smooth;
}

body {
min-width: 320px;
min-height: 100vh;
margin: 0;
overflow-x: hidden;
color: #111842;
background:
radial-gradient(circle at 18% 12%, rgba(255,255,255,.54), transparent 32rem),
linear-gradient(145deg, #dcccf8 0%, #c0a9f1 48%, #a896e5 100%);
}

@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}

*, *::before, *::after {
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
}
}

body {
background: #ffffff;
}

.ecn-site-header {
position: relative;
z-index: 30;
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
width: min(1180px, calc(100% - 48px));
margin: 0 auto;
padding: 24px 0;
background: #ffffff;
}

.ecn-brand {
display: inline-flex;
align-items: center;
gap: 18px;
min-width: 0;
color: #080d35;
text-decoration: none;
}

.ecn-footer {
position: relative;
z-index: 2;
padding: 42px 24px 118px;
border-top: 1px solid #ece8ef;
color: #272642;
text-align: center;
background: #f8f4f6;
}

.ecn-footer nav {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px 20px;
width: min(920px, 100%);
margin: 0 auto;
}

.ecn-footer nav + nav {
margin-top: 12px;
}

.ecn-footer a {
color: #272642;
font-size: .88rem;
font-weight: 700;
text-decoration: none;
}

.ecn-footer a:hover,
.ecn-footer a.active {
color: #6546df;
}

.ecn-footer-secondary a {
font-size: .8rem;
font-weight: 600;
}

.ecn-footer p {
margin: 30px auto 0;
padding-top: 24px;
border-top: 1px solid rgba(39,38,66,.12);
font-size: .83rem;
font-weight: 700;
}

.ecn-footer > small {
display: block;
margin-top: 8px;
color: rgba(39,38,66,.58);
font-size: .73rem;
}

@media (max-width: 820px) {
.ecn-site-header {
gap: 16px;
width: calc(100% - 30px);
padding: 16px 0;
}

.ecn-brand {
gap: 10px;
}
}

@media (max-width: 600px) {
.ecn-site-header {
width: calc(100% - 24px);
}

.ecn-footer {
padding-inline: 18px;
}

.ecn-footer nav {
gap: 10px 15px;
}
}

:root {
--audit-ink: #11163f;
--audit-violet: #6546df;
--audit-lavender-1: #f3edff;
--audit-lavender-2: #e5d8fa;
--audit-lavender-3: #d5c5f1;
}

body {
overflow-x: hidden;
background: #ffffff;
}

.ecn-site-header {
position: relative;
display: block;
width: min(1180px, calc(100% - 48px));
min-height: 0;
margin: 0 auto;
padding: 18px 0 20px;
background: #ffffff;
}

.ecn-site-header::after {
content: "";
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(79,58,163,.14) 18%, rgba(79,58,163,.14) 82%, transparent);
}

.ecn-mobile-header-art,
.ecn-header-home-link,
.ecn-header-audit-link {
display: none;
}

.ecn-desktop-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 42px;
}

.ecn-desktop-brand {
display: flex;
align-items: center;
gap: 16px;
min-width: 0;
color: var(--audit-ink);
text-decoration: none;
}

.ecn-desktop-logo {
display: block;
flex: 0 0 72px;
width: 72px;
height: 76px;
overflow: hidden;
}

.ecn-desktop-logo img {
display: block;
width: auto;
max-width: none;
height: 76px;
}

.ecn-desktop-brand-copy {
display: flex;
flex-direction: column;
line-height: 1;
}

.ecn-desktop-brand-copy strong {
font-size: clamp(2rem, 3.5vw, 3rem);
font-weight: 900;
letter-spacing: -.045em;
white-space: nowrap;
}

.ecn-desktop-brand-copy > strong span {
color: #6a38ef;
}

.ecn-desktop-brand-copy small {
margin-top: 8px;
color: #11163f;
font-size: clamp(.88rem, 1.5vw, 1.15rem);
font-weight: 720;
letter-spacing: .04em;
}

.ecn-desktop-brand-copy small span {
color: transparent;
background: linear-gradient(90deg, #11163f 0%, #5541c9 54%, #7c35ef 100%);
-webkit-background-clip: text;
background-clip: text;
}

.ecn-desktop-cta {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
flex: 0 0 auto;
min-width: 270px;
min-height: 82px;
padding: 13px 28px;
border: 1px solid rgba(255,255,255,.56);
border-radius: 20px;
color: #ffffff;
text-align: center;
text-decoration: none;
background: linear-gradient(112deg, #7e34ed 0%, #5144ed 52%, #2864e9 100%);
box-shadow: 0 10px 22px rgba(55,49,174,.18), inset 0 1px 0 rgba(255,255,255,.22);
transition: transform .18s ease, box-shadow .18s ease;
}

.ecn-desktop-cta:hover {
transform: translateY(-2px);
box-shadow: 0 15px 31px rgba(67,54,190,.27);
}

.ecn-desktop-cta strong {
font-size: 1.25rem;
line-height: 1.15;
}

.ecn-desktop-cta strong span {
margin-left: 8px;
font-size: 1.75rem;
}

.ecn-desktop-cta small {
margin-top: 5px;
font-size: .82rem;
letter-spacing: .035em;
}

.ecn-footer {
padding-top: 44px;
border-top: 1px solid rgba(59,45,116,.09);
background: linear-gradient(180deg, #fbfafc 0%, #f6f3f8 100%);
}

.ecn-footer-promise span,
.ecn-footer-promise strong {
display: block;
}

.ecn-footer-promise strong {
margin-top: 5px;
}

@media (min-width: 821px) {
.ecn-footer {
padding: 64px 48px 132px;
}

.ecn-footer nav {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
width: min(1160px, 100%);
}

.ecn-footer nav:first-of-type a {
display: flex;
align-items: center;
min-height: 58px;
justify-content: space-between;
padding: 15px 4px;
border: 0;
border-radius: 0;
font-size: 1rem;
text-align: left;
background: transparent;
transition: color .18s ease, border-color .18s ease;
}

.ecn-footer nav:first-of-type a::after {
content: none;
}

.ecn-footer nav:first-of-type a:hover,
.ecn-footer nav:first-of-type a.active {
border-color: rgba(101,70,223,.42);
background: transparent;
}

.ecn-footer nav:first-of-type a:hover::after,
.ecn-footer nav:first-of-type a.active::after {
color: #6546df;
transform: translate(2px, -2px);
}

.ecn-footer nav + nav {
display: flex;
justify-content: space-between;
gap: 22px;
width: min(1160px, 100%);
margin-top: 34px;
box-sizing: border-box;
padding: 22px 28px;
border: 0;
border-radius: 16px;
background: rgba(111,72,210,.045);
}

.ecn-footer-secondary a {
font-size: .9rem;
}

.ecn-footer .ecn-footer-promise {
display: flex;
flex-direction: column;
align-items: center;
width: min(1160px, 100%);
margin-top: 38px;
padding-top: 30px;
border-top: 0;
font-size: 1rem;
line-height: 1.35;
}

.ecn-footer-promise span {
color: rgba(39,38,66,.7);
font-weight: 650;
}

.ecn-footer-promise strong {
margin-top: 6px;
color: var(--audit-ink);
font-size: clamp(1.35rem, 2vw, 1.7rem);
font-weight: 850;
letter-spacing: -.02em;
}

.ecn-footer > small {
margin-top: 11px;
font-size: .82rem;
}
}

@media (max-width: 720px) {
.ecn-site-header {
position: relative;
width: 85%;
margin: 0 auto;
padding: 0;
}

.ecn-footer {
padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px));
}

.ecn-desktop-header {
display: none;
}

.ecn-mobile-header-art {
display: block;
width: 100%;
height: auto;
}

.ecn-header-home-link,
.ecn-header-audit-link {
position: absolute;
top: 0;
bottom: 0;
z-index: 2;
display: block;
}

.ecn-header-home-link {
left: 0;
width: 61%;
}

.ecn-header-audit-link {
right: 0;
width: 39%;
}
}

/* Shared geometry and keyboard access */
:root { background: #ffffff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 100; padding: .8rem 1rem; background: white; color: #11163f; }
.skip-link:focus { top: .5rem; }
a:focus-visible { outline: 3px solid #6546df; outline-offset: 4px; }
body[data-header="hidden"] .ecn-site-header, body[data-footer="hidden"] .ecn-footer { display: none; }

/* =========================================================
   V35 — shared footer polish
   Desktop/tablet: more structured, brand-led footer.
   Mobile: preserve the compact centered navigation.
   ========================================================= */
.ecn-footer,
.ecn-footer * {
  box-sizing: border-box;
}

.ecn-footer {
  overflow: hidden;
  padding: 46px 24px 76px;
  border-top: 1px solid rgba(74,56,132,.09);
  background:
    radial-gradient(circle at 14% 12%, rgba(111,72,210,.075), transparent 31rem),
    linear-gradient(180deg,#fbfafd 0%,#f7f4fa 68%,#f4f0f8 100%);
}

.ecn-footer-main,
.ecn-footer-secondary,
.ecn-footer-bottom {
  width: min(1160px, 100%);
  margin-inline: auto;
}

.ecn-footer-brand {
  display: none;
}

.ecn-footer-services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 20px;
  width: 100%;
  margin: 0;
}

.ecn-footer-services a {
  color: #272642;
  font-size: .88rem;
  font-weight: 760;
  text-decoration: none;
}

.ecn-footer-secondary {
  margin-top: 12px !important;
}

.ecn-footer-bottom {
  text-align: center;
}

.ecn-footer .ecn-footer-promise {
  margin: 28px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(39,38,66,.11);
}

.ecn-footer-bottom > small {
  display: block;
  margin-top: 8px;
  color: rgba(39,38,66,.58);
  font-size: .73rem;
}

@media (min-width: 821px) {
  .ecn-footer {
    padding: 62px 48px 66px;
    text-align: left;
  }

  .ecn-footer-main {
    display: grid;
    grid-template-columns: minmax(260px,.8fr) minmax(560px,1.65fr);
    gap: clamp(48px,7vw,110px);
    align-items: start;
  }

  .ecn-footer-brand {
    display: block;
    padding: 8px 0 4px;
  }

  .ecn-footer-wordmark {
    display: inline-block;
    color: #0e143d !important;
    font-size: clamp(2rem,3vw,2.7rem) !important;
    font-weight: 920 !important;
    letter-spacing: -.055em;
    line-height: 1;
    text-decoration: none;
  }

  .ecn-footer-wordmark span {
    color: #6937eb;
  }

  .ecn-footer-brandline {
    max-width: 330px;
    margin: 17px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: rgba(39,38,66,.68);
    font-size: .96rem !important;
    font-weight: 590 !important;
    line-height: 1.55;
  }

  .ecn-footer-philosophy {
    max-width: 330px;
    margin: 21px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: #272642;
    font-size: .96rem !important;
    font-weight: 590 !important;
    line-height: 1.5;
  }

  .ecn-footer-philosophy strong {
    color: #5f3ed8;
    font-weight: 820;
  }

  .ecn-footer-services {
    display: grid !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 56px !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .ecn-footer-services a,
  .ecn-footer nav:first-of-type a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-height: 54px;
    padding: 12px 0 !important;
    border-bottom: 1px solid rgba(39,38,66,.09) !important;
    color: #252640;
    font-size: .96rem !important;
    font-weight: 730;
    text-align: left;
    background: transparent !important;
    transition: color .16s ease, transform .16s ease;
  }

  .ecn-footer-services a::after,
  .ecn-footer nav:first-of-type a::after {
    content: "↗" !important;
    position: absolute;
    right: 0;
    color: rgba(101,70,223,.35);
    font-size: .95rem;
    transform: none;
    transition: transform .16s ease,color .16s ease;
  }

  .ecn-footer-services a:hover,
  .ecn-footer-services a.active,
  .ecn-footer nav:first-of-type a:hover,
  .ecn-footer nav:first-of-type a.active {
    color: #6546df;
    transform: translateX(2px);
  }

  .ecn-footer-services a:hover::after,
  .ecn-footer-services a.active::after {
    color: #6546df;
    transform: translate(2px,-2px);
  }

  .ecn-footer-secondary,
  .ecn-footer nav + nav {
    display: flex !important;
    justify-content: flex-start !important;
    flex-wrap: wrap;
    gap: 10px 28px !important;
    width: min(1160px,100%) !important;
    margin: 44px auto 0 !important;
    padding: 21px 0 !important;
    border-top: 1px solid rgba(39,38,66,.11) !important;
    border-bottom: 1px solid rgba(39,38,66,.11) !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .ecn-footer-secondary a {
    color: rgba(39,38,66,.74);
    font-size: .84rem !important;
    font-weight: 650;
  }

  .ecn-footer-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 36px;
    padding-top: 27px;
  }

  .ecn-footer .ecn-footer-promise {
    align-items: flex-start !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left;
  }

  .ecn-footer-promise span {
    font-size: .87rem;
  }

  .ecn-footer-promise strong {
    margin-top: 4px;
    font-size: clamp(1.18rem,1.7vw,1.48rem);
  }

  .ecn-footer-bottom > small {
    margin: 0 0 4px;
    font-size: .79rem;
    white-space: nowrap;
  }

  /* Reserve just enough room for pages with a fixed invitation bar. */
  body[data-page="audit"] .ecn-footer {
    padding-bottom: 96px;
  }
}

@media (max-width: 820px) {
  .ecn-footer {
    padding: 42px 18px calc(86px + env(safe-area-inset-bottom,0px));
  }

  .ecn-footer-main {
    display: block;
  }

  .ecn-footer-brand {
    display: none;
  }

  .ecn-footer-services {
    gap: 10px 15px;
  }

  .ecn-footer-secondary,
  .ecn-footer nav + nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 15px;
    margin-top: 12px !important;
    padding: 0;
    background: transparent;
  }

  .ecn-footer .ecn-footer-promise {
    margin-top: 28px !important;
    padding-top: 22px !important;
  }
}

/* =========================================================
   V36 — conversion-led header + footer hierarchy
   Desktop/tablet navigation emphasizes Audit, Receptionist,
   Missed Calls and the Eden Standard. Mobile header remains
   the compact artwork version that already performs well.
   ========================================================= */

@media (min-width: 821px) {
  .ecn-site-header {
    width: min(1240px, calc(100% - 44px));
    padding: 15px 0 16px;
  }

  .ecn-desktop-header {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: clamp(22px,3vw,46px);
  }

  .ecn-desktop-brand {
    gap: 11px;
  }

  .ecn-desktop-logo {
    flex-basis: 52px;
    width: 52px;
    height: 56px;
  }

  .ecn-desktop-logo img {
    height: 56px;
  }

  .ecn-desktop-brand-copy strong {
    font-size: clamp(1.45rem,2.05vw,2rem);
  }

  .ecn-desktop-brand-copy small {
    margin-top: 5px;
    font-size: clamp(.7rem,.9vw,.82rem);
    letter-spacing: .025em;
  }

  .ecn-desktop-nav {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    align-items: stretch;
    gap: 4px;
    min-width: 0;
  }

  .ecn-desktop-nav a {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: 58px;
    padding: 8px 11px;
    border-radius: 13px;
    color: #252640;
    text-decoration: none;
    transition: background .16s ease,color .16s ease,transform .16s ease;
  }

  .ecn-desktop-nav a:hover,
  .ecn-desktop-nav a.active {
    color: #5f3ed8;
    background: rgba(101,70,223,.055);
    transform: translateY(-1px);
  }

  .ecn-desktop-nav a.active::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 4px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg,#7a35ed,#2d66eb);
  }

  .ecn-desktop-nav strong {
    overflow: hidden;
    font-size: clamp(.78rem,.9vw,.9rem);
    font-weight: 790;
    line-height: 1.18;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .ecn-desktop-nav small {
    overflow: hidden;
    margin-top: 4px;
    color: rgba(39,38,66,.58);
    font-size: clamp(.61rem,.7vw,.7rem);
    font-weight: 570;
    line-height: 1.15;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .ecn-desktop-cta {
    min-width: 190px;
    min-height: 62px;
    padding: 10px 18px;
    border-radius: 16px;
  }

  .ecn-desktop-cta strong {
    font-size: .95rem;
    white-space: nowrap;
  }

  .ecn-desktop-cta strong span {
    margin-left: 5px;
    font-size: 1.06rem;
  }

  .ecn-desktop-cta small {
    margin-top: 4px;
    font-size: .67rem;
  }

  .ecn-footer-audit-cta {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    width: min(100%,330px);
    margin-top: 24px;
    padding: 16px 18px;
    border: 1px solid rgba(101,70,223,.14);
    border-radius: 16px;
    background: linear-gradient(135deg,rgba(111,72,210,.075),rgba(45,102,235,.045));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
    transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease;
  }

  .ecn-footer-audit-cta:hover {
    transform: translateY(-2px);
    border-color: rgba(101,70,223,.28);
    box-shadow: 0 10px 24px rgba(72,55,148,.08),inset 0 1px 0 rgba(255,255,255,.8);
  }

  .ecn-footer-audit-cta > span {
    color: rgba(39,38,66,.66);
    font-size: .77rem;
    font-weight: 630;
    line-height: 1.35;
  }

  .ecn-footer-audit-cta strong {
    margin-top: 5px;
    color: #5f3ed8;
    font-size: .94rem;
    font-weight: 820;
  }

  .ecn-footer-services a.ecn-footer-core {
    color: #17183a;
    font-weight: 820;
  }

  .ecn-footer-services a.ecn-footer-core::before {
    content: "CORE";
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    padding: 1px 6px;
    border-radius: 999px;
    color: #6546df;
    font-size: .54rem;
    font-weight: 850;
    letter-spacing: .08em;
    background: rgba(101,70,223,.08);
  }

  .ecn-footer-legal {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    color: rgba(39,38,66,.54);
    font-size: .73rem;
    text-align: right;
  }

  .ecn-footer-legal small {
    color: rgba(39,38,66,.58);
    font-size: .79rem;
  }
}

@media (min-width: 821px) and (max-width: 1040px) {
  .ecn-site-header {
    width: min(940px, calc(100% - 36px));
  }

  .ecn-desktop-header {
    grid-template-columns: 1fr auto;
    gap: 16px 26px;
  }

  .ecn-desktop-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    padding-top: 8px;
    border-top: 1px solid rgba(79,58,163,.08);
  }

  .ecn-desktop-nav a {
    min-height: 50px;
    padding-inline: 12px;
  }

  .ecn-desktop-cta {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (max-width: 820px) {
  .ecn-footer-audit-cta {
    display: none;
  }

  .ecn-footer-legal {
    display: block;
    margin-top: 8px;
    color: rgba(39,38,66,.55);
    font-size: .7rem;
    text-align: center;
  }

  .ecn-footer-legal > span {
    display: none;
  }

  .ecn-footer-legal small {
    color: rgba(39,38,66,.58);
    font-size: .73rem;
  }

  .ecn-footer-bottom > small {
    display: none;
  }
}

/* =========================================================
   V37 — bridge the large-phone / small-tablet header gap
   721–820px previously fell between the mobile artwork header
   and the fully styled desktop navigation. Keep the proven
   compact artwork header through 820px, then switch cleanly
   to the structured tablet/desktop navigation at 821px.
   ========================================================= */
@media (min-width: 721px) and (max-width: 820px) {
  .ecn-site-header {
    position: relative;
    width: min(92%, 760px);
    margin: 0 auto;
    padding: 0;
  }

  .ecn-desktop-header {
    display: none;
  }

  .ecn-mobile-header-art {
    display: block;
    width: 100%;
    height: auto;
  }

  .ecn-header-home-link,
  .ecn-header-audit-link {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    display: block;
  }

  .ecn-header-home-link {
    left: 0;
    width: 61%;
  }

  .ecn-header-audit-link {
    right: 0;
    width: 39%;
  }
}
