/* ===========================================================
   EDC — Neumorphic theme layer
   Loaded after styles.css. The page structure, content, navigation and
   interaction behaviour come from styles.css; this file applies the
   lilac neumorphic look: one soft base colour, raised and pressed surfaces,
   purple primary actions, and orange/blue kept for accents.
=========================================================== */
:root{
  --purple:#7B449A;
  --purple-deep:#5E3378;
  --orange:#F1592A;
  --orange-deep:#B8431C;
  --blue:#25AAE1;
  --blue-deep:#1D7AA3;
  --pink:#B2669B;

  --surface:#ECE6F3;
  --surface-deep:#E4DCEE;
  --nm-dark:#CFC4DD;
  --nm-darker:#BEB1CF;
  --nm-light:#FFFFFF;
  --nm-dark-soft:#DDD4E7;
  --ink:#3E2750;
  --ink-soft:#5B4A68;
  --line:#D9CFE4;

  --dark:#4A2862;
  --dark-deep:#3B1F4F;
  --dark-nm-dark:#2E183F;
  --dark-nm-light:#6A3E86;

  --grad-brand:linear-gradient(110deg,#7B449A 0%,#8D58B0 30%,#B2669B 62%,#D6582C 100%);
  --grad-btn:#7B449A;
  --grad-btn-hover:#8249A3;

  --serif:"Plus Jakarta Sans","Helvetica Neue",Arial,sans-serif;
  --sans:"Plus Jakarta Sans","Helvetica Neue",Arial,sans-serif;

  --nm-raised-sm:5px 5px 12px var(--nm-dark),-5px -5px 12px var(--nm-light);
  --nm-raised:10px 10px 22px var(--nm-dark),-10px -10px 22px var(--nm-light);
  --nm-raised-lg:16px 16px 34px var(--nm-dark),-14px -14px 30px var(--nm-light);
  --nm-inset:inset 5px 5px 11px var(--nm-dark),inset -5px -5px 11px var(--nm-light);
  --nm-inset-lg:inset 7px 7px 16px var(--nm-dark),inset -7px -7px 16px var(--nm-light);
  /* purple surfaces: extruded from the base, with their own light and shade */
  --p-raise:10px 10px 22px var(--nm-darker),-9px -9px 20px var(--nm-light),inset 2px 2px 5px #9D68BC,inset -3px -3px 6px #58306F;
  --p-pressed:inset 5px 5px 10px #58306F,inset -4px -4px 9px #9D68BC;
}

/* One flat base colour for the whole page: no washes, dots or line art */
body{background:var(--surface);background-image:none;color:var(--ink)}
::selection{background:#D9C3E8;color:var(--ink)}
:focus-visible{outline:3px solid var(--purple);outline-offset:3px}

/* Headings: dark ink, bold, tight. Gradient is kept for emphasis only. */
h1,h2,h3,h4{font-family:var(--sans);font-weight:700;letter-spacing:-.035em;color:var(--ink)}
h1,h2{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--ink);-webkit-text-fill-color:currentColor}
h1{font-weight:750;letter-spacing:-.05em;line-height:1.08}
h1.service-title{letter-spacing:-.055em;line-height:1.05}
h3{font-size:1.2rem;color:var(--purple-deep)}
p{color:var(--ink-soft)}
.grad-text,.underline{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.underline svg path{stroke:var(--orange)}
.section--forest h2,.section--forest h3{color:var(--ink);-webkit-text-fill-color:var(--ink)}
/* Alternate bands stay on the same base so surfaces read as one material */
.section--sand-deep{--surface:#ECE6F3;--nm-dark:#CFC4DD;--nm-light:#FFFFFF;--line:#D9CFE4}

/* Kicker / badges */
.kicker{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);padding:10px 18px 10px 14px;box-shadow:var(--nm-raised-sm)}
.kicker::before{color:var(--orange)}
.badge{color:var(--purple-deep)}

/* ---------- Buttons: same click behaviour as the source site ----------
   Primary: raised purple, lifts 2px on hover, presses in on click.
   Outline: raised base colour, presses in on hover. */
.btn{font-family:var(--sans);letter-spacing:-.005em}
.btn-primary{background:var(--purple);color:#fff;box-shadow:var(--p-raise)}
.btn-primary:hover{background:var(--grad-btn-hover);transform:translateY(-2px);box-shadow:13px 13px 26px var(--nm-darker),-11px -11px 24px var(--nm-light),inset 2px 2px 5px #A36FC2,inset -3px -3px 6px #58306F}
.btn-primary:active{box-shadow:var(--p-pressed);transform:translateY(0)}
.btn-outline{background:var(--surface);color:var(--purple-deep);box-shadow:var(--nm-raised-sm)}
.btn-outline:hover{box-shadow:var(--nm-inset)}
.btn-outline:active{box-shadow:var(--nm-inset-lg)}
.section--forest .btn-outline{background:var(--surface);color:var(--purple-deep);box-shadow:var(--nm-raised-sm)}
.section--forest .btn-outline:hover{box-shadow:var(--nm-inset)}

/* ---------- Navigation bar (layout and behaviour from the source site) ---------- */
.promo-bar{background:var(--purple-deep)}
.site-header{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 8px 18px -12px var(--nm-darker)}
.site-header::after{display:none}
.site-header.scrolled{box-shadow:0 12px 24px -14px var(--nm-darker)}
.nav a{color:#4B3860}
.nav a.current{color:var(--purple);background:var(--surface);box-shadow:var(--nm-inset)}
.nav a:not(.current):hover{box-shadow:var(--nm-raised-sm);color:var(--purple)}
.nav a:not(.current):active{box-shadow:var(--nm-inset)}
.nav-cta .btn{padding:12px 22px}
.nav a.btn-primary{color:#fff;background:var(--purple);box-shadow:var(--p-raise)}
.nav a.btn-primary:hover{color:#fff;background:var(--grad-btn-hover);transform:translateY(-2px);box-shadow:13px 13px 26px var(--nm-darker),-11px -11px 24px var(--nm-light),inset 2px 2px 5px #A36FC2,inset -3px -3px 6px #58306F}
.nav a.btn-primary:active{box-shadow:var(--p-pressed);transform:translateY(0)}
.menu-btn{background:var(--surface);box-shadow:var(--nm-raised-sm)}
.menu-btn:active,.site-header.open .menu-btn{box-shadow:var(--nm-inset)}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{background:var(--purple)}
.lang-btn{color:var(--purple-deep);box-shadow:var(--nm-raised-sm)}
.lang-btn:hover,.lang-btn[aria-expanded=true]{box-shadow:var(--nm-inset)}
.lang-menu{background:var(--surface);box-shadow:var(--nm-raised-lg)}
.lang-menu li:hover{background:var(--surface);box-shadow:var(--nm-raised-sm);color:var(--purple)}
.lang-menu li.active{color:var(--purple);box-shadow:var(--nm-inset)}
@media (max-width:900px){
  .site-header.open .nav-links{background:var(--surface);box-shadow:0 22px 28px -18px var(--nm-darker)}
}

/* ---------- Hero ---------- */
.hero--vivid{background:none}
.hero .lede{color:var(--ink-soft)}
.hero-art{background:var(--surface);box-shadow:var(--nm-raised-lg)}
.hero-art .scrim{background:linear-gradient(200deg,rgba(62,39,80,0) 45%,rgba(62,39,80,.35) 100%)}
.hero-art .tag{background:var(--surface);backdrop-filter:none;color:var(--purple-deep);box-shadow:var(--nm-raised-sm)}
.float-badge{background:var(--surface);box-shadow:var(--nm-raised)}
.sparkle-badge{background:var(--orange);border-radius:50%;transform:none;box-shadow:6px 6px 14px var(--nm-darker),-5px -5px 12px var(--nm-light),inset 2px 2px 4px #FF9B77,inset -2px -2px 4px #C8431A}

/* ---------- Cards, snapshot, steps, quotes ---------- */
.card{background:var(--surface);box-shadow:var(--nm-raised)}
.card::before{width:34px;height:34px;top:22px;left:26px;background:var(--surface);box-shadow:var(--nm-raised-sm)}
.card::after{content:"";position:absolute;top:34px;left:38px;width:10px;height:10px;border-radius:50%;background:var(--purple)}
.card--ochre::before,.card--forest::before{background:var(--surface)}
.card--ochre::after{background:var(--orange)}
.card--forest::after{background:var(--blue)}
.card{padding-top:74px}
.card:hover{box-shadow:var(--nm-raised-lg);transform:translateY(-4px)}
a.card:active{box-shadow:var(--nm-inset);transform:none}
.card .go{color:var(--purple)}
.snapshot-band{background:var(--surface);box-shadow:var(--nm-raised-lg)}
.snapshot-band::before{display:none}
.snapshot-item{background:var(--surface);box-shadow:var(--nm-raised-sm)}
.snapshot-item:hover{box-shadow:var(--nm-inset)}
.snapshot-item .num{font-family:var(--sans);font-weight:750;letter-spacing:-.04em}
.step{background:var(--surface);box-shadow:var(--nm-raised-sm)}
.step::before{font-family:var(--sans);font-weight:700;color:var(--purple);box-shadow:var(--nm-inset)}
.quote{background:var(--surface);box-shadow:var(--nm-raised)}
.quote::before{font-family:Georgia,serif}
.quote p{font-family:var(--sans);font-style:normal;font-weight:500;color:var(--purple-deep);letter-spacing:-.01em}
.quote-row .quote:nth-child(2) p{color:#1C5F7E}
.quote-row .quote:nth-child(3) p{color:#8F3714}
.check-list li{color:var(--ink-soft)}
.check-list li::before{color:var(--purple);box-shadow:var(--nm-raised-sm)}
.note{box-shadow:var(--nm-inset)}
.region-card img,.region-card .photo{box-shadow:var(--nm-inset)}
table{box-shadow:var(--nm-raised-sm)}
th{font-family:var(--sans);font-weight:700}
input,select,textarea{background:var(--surface)!important;box-shadow:var(--nm-inset)!important}

/* ---------- Call to action ---------- */
.cta-band{background:var(--surface);box-shadow:var(--nm-raised-lg)}
.cta-band::before{display:none}
.cta-band::after{display:none}
.cta-band h2{background:none;-webkit-background-clip:initial;background-clip:initial;color:var(--ink);-webkit-text-fill-color:var(--ink)}
.section--forest .cta-band,.cta-band.on-dark{background:var(--purple);box-shadow:var(--p-raise)}
.section--forest .cta-band h2,.cta-band.on-dark h2{color:#fff;-webkit-text-fill-color:#fff}
.section--forest .cta-band p,.cta-band.on-dark p{color:#F3E8FA}
.section--forest .cta-band .btn-primary,.cta-band.on-dark .btn-primary{background:var(--surface);color:var(--purple-deep);box-shadow:6px 6px 14px #58306F,-5px -5px 12px #9D68BC}
.section--forest .cta-band .btn-primary:active,.cta-band.on-dark .btn-primary:active{box-shadow:inset 4px 4px 9px var(--nm-darker),inset -4px -4px 9px #fff}

/* ---------- Footer: deep brand purple ---------- */
.site-footer{background:var(--dark);box-shadow:inset 0 14px 24px -16px var(--dark-nm-dark)}
.site-footer h4{font-family:var(--sans);font-weight:700}
.footer-grid a{color:#D6C4E3}
.footer-grid a:hover{color:#fff}
.footer-bottom{color:#C2AED2;border-top-color:rgba(255,255,255,.12)}

}
@media (prefers-contrast:more){
  .card,.quote,.step,.snapshot-item,.btn-outline,.lang-btn,.site-header,input,select,textarea{outline:1.5px solid #7D6A8F;outline-offset:-1.5px}
}

/* Small screens: keep the header on one line */
.nav-cta .btn{white-space:nowrap}
@media (max-width:640px){
  .site-header .wrap{padding-left:16px;padding-right:16px;gap:8px}
  .logo img{height:38px}
  .nav-cta{gap:8px}
  .nav-cta .btn{padding:10px 14px;font-size:.82rem}
  .lang-btn{padding:9px 11px;font-size:.8rem}
  .menu-btn{flex:none}
}
@media (max-width:370px){.lang-icon{display:none}.nav-cta .btn{padding:10px 12px}}
