/* ==========================================================================
   Header nav: Services mega menu (inc/nav-services.php)
   ========================================================================== */

.nav-has-dd{display:flex;align-items:center;gap:.25rem}

.nav-dd-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink,#17243C);cursor:pointer;transition:background .25s,color .25s}
.nav-dd-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.nav-has-dd.is-open .nav-dd-toggle{color:#1A4279}
.nav-has-dd.is-open .nav-dd-toggle svg{transform:rotate(180deg)}
.nav-dd-toggle:focus-visible{outline:2px solid #2F6FDB;outline-offset:2px}

/* Reset the big nav-link styling for everything inside the panel */
.nav-links .nav-dd a{font-family:var(--font-body);font-size:inherit;font-weight:inherit;color:inherit;line-height:inherit}
.nav-links .nav-dd a::after{content:none!important;display:none!important}
.nav-dd ul{list-style:none;margin:0;padding:0}
.nav-dd p{margin:0}

/* ---------------------------------------------------------------- Desktop */
@media (min-width:1024px){
  #header .nav{position:relative}
  .nav-has-dd{position:static}
  .nav-has-dd.is-open > .nav-dd-trigger{color:#1A4279}
  .nav-has-dd.is-open > .nav-dd-trigger::after{transform:scaleX(1);transform-origin:right}

  .nav-dd{position:absolute;top:100%;inset-inline:0;z-index:30;padding-top:.35rem;
    opacity:0;visibility:hidden;transform:translateY(12px);
    transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1),visibility 0s linear .45s;pointer-events:none}
  .nav-has-dd.is-open > .nav-dd{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto}

  .nav-dd-panel{display:grid;grid-template-columns:minmax(300px,.82fr) 2fr;gap:0;
    background:#fff;border:1px solid rgba(23,36,60,.07);border-radius:24px;padding:12px;
    box-shadow:0 50px 90px -40px rgba(21,46,85,.45),0 18px 36px -24px rgba(21,46,85,.25),0 1px 0 rgba(255,255,255,.8) inset}

  /* Preview card */
  .nav-dd-feat{position:relative;border-radius:16px;overflow:hidden;background:#152E55;min-height:420px;isolation:isolate}
  .nav-dd-feat::before{content:"";position:absolute;inset:0;z-index:0;opacity:.5;
    background:radial-gradient(120% 80% at 100% 0%,rgba(47,111,219,.55),transparent 60%),radial-gradient(90% 70% at 0% 100%,rgba(26,66,121,.9),transparent 70%)}
  .nav-links .nav-dd .nav-dd-slide{position:absolute;inset:0;z-index:1;display:block;color:#fff;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility 0s linear .55s}
  .nav-links .nav-dd .nav-dd-slide.is-active{opacity:1;visibility:visible;transition-delay:0s}
  .nav-dd-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s cubic-bezier(.22,1,.36,1)}
  .nav-dd-slide.is-active img{transform:scale(1)}
  .nav-dd-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,27,52,.96) 0%,rgba(13,27,52,.78) 38%,rgba(13,27,52,.25) 72%,rgba(13,27,52,.1) 100%)}
  .nav-dd-slide-cap{position:absolute;inset-inline:0;bottom:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.6rem 1.6rem 1.5rem}
  .nav-dd-slide.is-active .nav-dd-slide-cap > *{animation:navDdUp .6s cubic-bezier(.22,1,.36,1) both}
  .nav-dd-slide.is-active .nav-dd-slide-cap > *:nth-child(2){animation-delay:.05s}
  .nav-dd-slide.is-active .nav-dd-slide-cap > *:nth-child(3){animation-delay:.1s}
  .nav-dd-slide.is-active .nav-dd-slide-cap > *:nth-child(4){animation-delay:.15s}
  .nav-dd-pill{display:inline-block;padding:.22rem .7rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .nav-dd-slide-cap strong{font-family:"Cairo",var(--font-body);font-size:1.42rem;font-weight:800;line-height:1.35;color:#fff}
  .nav-dd-slide-cap em{font-style:normal;font-size:.86rem;line-height:1.75;color:rgba(255,255,255,.78);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .nav-dd-slide-go{display:inline-flex;align-items:center;gap:.5rem;margin-top:.3rem;font-size:.86rem;font-weight:700;color:#fff;padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.4)}
  .nav-dd-slide-go i{font-style:normal;transition:transform .35s cubic-bezier(.22,1,.36,1)}
  .nav-dd-slide:hover .nav-dd-slide-go i{transform:translateX(-4px)}
  [dir="ltr"] .nav-dd-slide:hover .nav-dd-slide-go i{transform:translateX(4px)}

  /* List side */
  .nav-dd-body{display:flex;flex-direction:column;padding:1.5rem 2rem 1rem}
  .nav-dd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:0 .9rem 1.1rem;margin-bottom:.6rem;border-bottom:1px solid rgba(23,36,60,.08)}
  .nav-dd-eyebrow{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:700;color:#2F6FDB;margin-bottom:.3rem!important}
  .nav-dd-eyebrow::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
  .nav-dd-title{font-family:"Cairo",var(--font-body);font-size:1.22rem;font-weight:800;color:#17243C;line-height:1.4}
  .nav-dd-count{font-family:var(--font-mono,monospace);font-size:.78rem;color:#5D6A80;white-space:nowrap}
  .nav-dd-count b{font-size:1.5rem;font-weight:500;color:#1A4279;margin-inline-end:.15rem;letter-spacing:-.02em}

  .nav-dd-list{display:grid;grid-template-columns:1fr 1fr;column-gap:1.2rem;row-gap:.15rem}
  .nav-dd-group{grid-column:1/-1;padding:.9rem .9rem .35rem;font-size:.74rem;font-weight:700;color:#5D6A80}
  .nav-dd-item{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1)}
  .nav-has-dd.is-open .nav-dd-item{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 35ms + 90ms)}
  .nav-links .nav-dd .nav-dd-item a{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:.95rem;
    padding:.85rem .9rem;border-radius:14px;color:#17243C;transition:background .3s ease}
  .nav-dd-num{font-family:var(--font-mono,monospace);font-size:.72rem;font-weight:500;color:#9AA6B8;padding-top:.32rem;transition:color .3s}
  .nav-dd-txt{display:flex;flex-direction:column;gap:.15rem;min-width:0}
  .nav-dd-name{font-family:"Cairo",var(--font-body);font-size:1rem;font-weight:700;line-height:1.5;color:#17243C;transition:color .3s}
  .nav-dd-desc{font-size:.8rem;line-height:1.6;color:#5D6A80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav-dd-arr{align-self:center;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;
    font-size:.9rem;color:#fff;background:#1A4279;opacity:0;transform:translateX(8px) scale(.85);transition:opacity .3s,transform .4s cubic-bezier(.22,1,.36,1)}
  [dir="ltr"] .nav-dd-arr{transform:translateX(-8px) scale(.85)}
  .nav-links .nav-dd .nav-dd-item a.is-active{background:#F3F5F9}
  .nav-dd-item a.is-active .nav-dd-num{color:#2F6FDB}
  .nav-dd-item a.is-active .nav-dd-name{color:#1A4279}
  .nav-dd-item a.is-active .nav-dd-arr{opacity:1;transform:none}
  .nav-dd-item a[aria-current="page"] .nav-dd-name::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#2F6FDB;margin-inline-start:.5rem;vertical-align:middle}
  .nav-dd-item a:focus-visible{outline:2px solid #2F6FDB;outline-offset:-2px}

  .nav-dd-foot{margin-top:auto;padding-top:1rem}
  .nav-dd-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:1rem 1.1rem 1rem 1rem;
    border-radius:16px;background:linear-gradient(100deg,#EEF3FA 0%,#F5F7FA 100%);border:1px solid rgba(26,66,121,.08)}
  .nav-dd-foot p{font-size:.86rem;line-height:1.6;color:#5D6A80}
  .nav-dd-foot p strong{display:block;font-family:"Cairo",var(--font-body);font-size:.95rem;font-weight:700;color:#17243C}
  .nav-dd-actions{display:flex;align-items:center;gap:1.1rem;flex-shrink:0}
  .nav-links .nav-dd .nav-dd-btn{display:inline-flex;align-items:center;padding:.62rem 1.3rem;border-radius:999px;background:#1A4279;color:#fff;font-size:.88rem;font-weight:700;
    box-shadow:0 10px 22px -12px rgba(26,66,121,.7);transition:background .3s,transform .3s,box-shadow .3s}
  .nav-links .nav-dd .nav-dd-btn:hover{background:#152E55;transform:translateY(-1px);box-shadow:0 14px 26px -12px rgba(26,66,121,.8)}
  .nav-links .nav-dd .nav-dd-all{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;color:#1A4279}
  .nav-dd-all i{font-style:normal;transition:transform .35s cubic-bezier(.22,1,.36,1)}
  .nav-dd-all:hover i{transform:translateX(-4px)}
  [dir="ltr"] .nav-dd-all:hover i{transform:translateX(4px)}

  /* Soft page dim behind the open menu */
  body::after{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;background:rgba(15,28,52,.22);
    backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
  body.nav-dd-active::after{opacity:1;visibility:visible;transition-delay:0s}
  body.nav-dd-active #header{background:var(--paper,#F3F4F6)}
}

@media (min-width:1024px) and (max-width:1199px){
  .nav-dd-panel{grid-template-columns:260px 1fr}
  .nav-dd-body{padding:1.2rem 1.2rem .8rem}
  .nav-dd-desc{display:none}
}

@keyframes navDdUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ------------------------------------------------- Mobile / tablet overlay */
@media (max-width:1023px){
  .nav-open .nav-links{overflow-y:auto;justify-content:safe center;-webkit-overflow-scrolling:touch}
  .nav-open .nav-links:has(.nav-has-dd.is-open){justify-content:flex-start;padding-top:6rem;padding-bottom:3rem}

  .nav-has-dd{flex-wrap:wrap;justify-content:center;width:100%;gap:.35rem}
  .nav-dd-toggle{width:36px;height:36px;background:rgba(26,66,121,.08);color:#1A4279}
  .nav-dd-toggle svg{width:17px;height:17px}

  .nav-dd{display:none;flex-basis:100%;width:100%;padding:.8rem 1.2rem 0}
  .nav-has-dd.is-open > .nav-dd{display:block;animation:navDdUp .45s cubic-bezier(.22,1,.36,1)}
  .nav-dd-feat,.nav-dd-head,.nav-dd-desc,.nav-dd-arr,.nav-dd-foot p{display:none}
  .nav-dd-panel{max-width:440px;margin:0 auto;background:#fff;border-radius:20px;padding:.5rem;border:1px solid rgba(23,36,60,.07);box-shadow:0 20px 40px -28px rgba(21,46,85,.4)}
  .nav-dd-group{padding:.8rem .9rem .3rem;font-size:.74rem;font-weight:700;color:#5D6A80;text-align:start}
  .nav-dd-item + .nav-dd-item{border-top:1px solid rgba(23,36,60,.06)}
  .nav-open .nav-links .nav-dd .nav-dd-item a{display:flex;align-items:center;gap:.9rem;padding:.85rem .9rem;font-size:1rem;text-align:start;border-radius:12px}
  .nav-open .nav-links .nav-dd .nav-dd-item a:active{background:#F3F5F9}
  .nav-dd-num{font-family:var(--font-mono,monospace);font-size:.72rem;color:#2F6FDB}
  .nav-dd-name{font-family:"Cairo",var(--font-body);font-weight:700;color:#17243C;line-height:1.5}
  .nav-dd-foot{display:flex;padding:.6rem .4rem .4rem}
  .nav-dd-actions{display:flex;flex-direction:column;gap:.4rem;width:100%}
  .nav-open .nav-links .nav-dd .nav-dd-btn{display:block;width:100%;padding:.8rem 1rem;border-radius:14px;background:#1A4279;color:#fff;font-size:.95rem;font-weight:700;text-align:center}
  .nav-open .nav-links .nav-dd .nav-dd-all{display:block;width:100%;padding:.7rem 1rem;font-size:.92rem;font-weight:700;color:#1A4279;text-align:center}
  .nav-dd-all i{font-style:normal}
}

@media (prefers-reduced-motion:reduce){
  .nav-dd,.nav-dd *,body::after{transition:none!important;animation:none!important}
}

/* v2.1: readable preview caption on every image - image sits in the top part,
   the caption on a solid navy base it fades into. */
@media (min-width:1024px){
  .nav-dd-feat{background:#0F2141}
  .nav-dd-slide img{height:58%;bottom:auto}
  .nav-dd-slide::after{background:linear-gradient(to bottom,rgba(15,33,65,0) 0%,rgba(15,33,65,0) 30%,rgba(15,33,65,.85) 50%,#0F2141 58%,#0F2141 100%)}
  .nav-dd-slide-cap{padding:1.5rem 1.6rem 1.6rem;gap:.55rem}
  .nav-dd-slide-cap strong{font-size:1.3rem;text-shadow:0 2px 12px rgba(0,0,0,.35)}
  .nav-dd-slide-cap em{color:rgba(255,255,255,.86)}
  .nav-dd-pill{background:rgba(47,111,219,.35);border-color:rgba(255,255,255,.25)}
}
/* v3: light preview card - photo on top, caption on a soft light base. No dark areas. */
@media (min-width:1024px){
  .nav-dd-feat{background:#F3F5F9;border:1px solid rgba(23,36,60,.06)}
  .nav-dd-feat::before{display:none}
  .nav-links .nav-dd .nav-dd-slide{color:#17243C}
  .nav-dd-slide img{inset:10px 10px auto 10px;width:calc(100% - 20px);height:52%;border-radius:12px}
  .nav-dd-slide::after{display:none}
  .nav-dd-slide-cap{top:calc(52% + 10px);bottom:auto;padding:1.2rem 1.4rem 1.4rem;gap:.5rem}
  .nav-dd-pill{background:#E5EBF4;border:0;color:#1A4279;backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav-dd-slide-cap strong{color:#17243C;text-shadow:none;font-size:1.2rem}
  .nav-dd-slide-cap em{color:#5D6A80}
  .nav-dd-slide-go{color:#1A4279;border-bottom-color:rgba(26,66,121,.35)}
  /* no page dimming behind the menu */
  body::after{display:none}
}