/* Nanopool — native Elementor, matched to original HTML design (CSS/JS only) */

html{scroll-behavior:smooth}
.e-con[id]{scroll-margin-top:88px}

/* =========================================================
   HERO
   ========================================================= */
#np-hero{
  min-height:88vh;
  padding-top:118px !important;
  background:
    radial-gradient(120% 95% at 75% 12%, rgba(95,140,190,.85) 0%, rgba(58,98,150,.34) 34%, rgba(20,32,52,0) 66%),
    radial-gradient(46% 55% at 12% 90%, rgba(46,81,121,.55) 0%, rgba(20,32,52,0) 70%),
    radial-gradient(34% 42% at 92% 8%, rgba(75,115,160,.40) 0%, rgba(20,32,52,0) 70%),
    linear-gradient(160deg,#18283f 0%,#0f1929 78%) !important;
}
#np-hero .e-con-inner > .elementor-element:nth-child(3) .elementor-heading-title{
  background:linear-gradient(100deg,#d4ba82 0%,#f6ead0 30%,#d4ba82 60%);
  background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent !important;
  animation:npAccentShimmer 6s ease-in-out infinite;
}
@keyframes npAccentShimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.np-el-tags{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:26px; }
.np-el-tag{ display:inline-flex; align-items:center; gap:9px; font-family:var(--font-body); font-size:15px; font-weight:600; color:#AEB9C7; }
.np-el-dot{ width:8px; height:8px; flex:none; background:#c2a36b; clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0% 50%); animation:npHexPulse 2.6s ease-in-out infinite; }
.np-el-tag:nth-child(2) .np-el-dot{animation-delay:.4s}
.np-el-tag:nth-child(3) .np-el-dot{animation-delay:.8s}
.np-el-tag:nth-child(4) .np-el-dot{animation-delay:1.2s}
@keyframes npHexPulse{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
.np-el-creds{ margin-top:18px; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:#7c899a; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.np-el-creds i{ color:#c2a36b; font-style:normal; }

/* =========================================================
   BUTTONS — faithful .np-btn + cursor-follow spotlight
   ========================================================= */
.elementor-button{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  min-height:46px; padding:0 1.55em !important;
  font-family:var(--font-body); font-weight:700; letter-spacing:.02em; line-height:1;
  border-radius:6px; text-decoration:none !important;
  transition:background-color .22s cubic-bezier(.22,1,.36,1), color .22s cubic-bezier(.22,1,.36,1), border-color .22s cubic-bezier(.22,1,.36,1), transform .14s cubic-bezier(.22,1,.36,1) !important;
  box-shadow:none !important;
}
.elementor-button:hover, .elementor-button:hover .elementor-button-text{ text-decoration:none !important; }
.elementor-button > *{ position:relative; z-index:1; }
.elementor-button::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0;
  transition:opacity .25s ease;
  background:radial-gradient(95px 95px at var(--bx,50%) var(--by,50%), rgba(255,249,233,.55), transparent 70%);
}
.elementor-button:hover::after{ opacity:1; }
.elementor-button:active{ transform:scale(.98); }
.elementor-button .elementor-button-icon{ transition:transform .22s cubic-bezier(.22,1,.36,1); }
.elementor-button:hover .elementor-button-icon{ transform:translateX(4px); }

/* =========================================================
   CARDS — soft lift on hover
   ========================================================= */
.e-con-inner .e-con:has(> .e-con-inner .elementor-widget-heading h3),
.e-con-inner .e-con:has(> .elementor-widget-heading h3){
  transition:transform .25s cubic-bezier(.22,1,.36,1), box-shadow .25s cubic-bezier(.22,1,.36,1), border-color .25s ease !important;
}
.e-con-inner .e-con:has(> .e-con-inner .elementor-widget-heading h3):hover,
.e-con-inner .e-con:has(> .elementor-widget-heading h3):hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px -16px rgba(12,18,28,.22) !important;
  border-color:#d6cfc1 !important;
}
#np-hero .elementor-widget-text-editor{ max-width:36em; }

/* =========================================================
   HEADER — transparent over the hero, scrolls away with the page
   ========================================================= */
#np-site-header{
  position:absolute; top:0; left:0; right:0; width:100%; z-index:50;
  background-color:transparent !important; border-bottom-color:transparent !important; box-shadow:none !important;
}
.np-menu .elementor-icon-list-icon{ display:none!important; }
.np-menu .elementor-icon-list-items{ display:flex; flex-wrap:wrap; }
.np-menu .elementor-icon-list-item{ margin:0; }
.np-menu .elementor-icon-list-item > a{ transition:color .25s ease; font-family:var(--font-body); font-weight:600; font-size:15px; color:#fff; }
#np-site-header .np-menu .elementor-icon-list-item:hover > a{ color:#C2A36B!important; }

/* =========================================================
   FLOATING MENU — appears once the header has scrolled out of view
   ========================================================= */
/* pinned to the right edge, vertically centered (side tab) */
.np-floatnav{ position:fixed; top:50%; right:-8px; transform:translateY(-50%); z-index:1000; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease, right .4s cubic-bezier(.22,1,.36,1), visibility .3s; }
.np-floatnav.is-visible{ opacity:1; visibility:visible; right:0; pointer-events:auto; }
/* vertical side tab */
.np-floatnav__btn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.85em; width:50px; min-height:140px; padding:18px 0; background:#c2a36b; color:#0a0f18; border:0; border-radius:10px 0 0 10px; cursor:pointer; box-shadow:-12px 14px 34px -14px rgba(0,0,0,.55); transition:background-color .25s ease, width .25s ease; }
.np-floatnav__btn:hover{ background:#ab8b4c; width:56px; }
.np-floatnav__label{ writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--font-body); font-weight:700; font-size:14px; letter-spacing:.18em; text-transform:uppercase; line-height:1; }
.np-floatnav__bars{ display:flex; flex-direction:column; gap:5px; }
.np-floatnav__bars span{ display:block; width:22px; height:2px; background:#0a0f18; border-radius:2px; transition:transform .3s cubic-bezier(.22,1,.36,1), opacity .2s ease; }
.np-floatnav.is-open .np-floatnav__bars span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.np-floatnav.is-open .np-floatnav__bars span:nth-child(2){ opacity:0; }
.np-floatnav.is-open .np-floatnav__bars span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
/* panel flies out to the LEFT of the edge button */
.np-floatnav__panel{ position:absolute; top:50%; right:calc(100% + 12px); min-width:236px; max-height:80vh; overflow:auto; background:linear-gradient(180deg,#0d1626 0%,#0a0f18 100%); border:1px solid rgba(255,255,255,.08); border-radius:12px; box-shadow:0 30px 60px -24px rgba(0,0,0,.7); padding:10px; display:flex; flex-direction:column; opacity:0; transform:translateY(-50%) translateX(14px) scale(.98); transform-origin:right center; pointer-events:none; transition:opacity .25s ease, transform .28s cubic-bezier(.22,1,.36,1); }
.np-floatnav.is-open .np-floatnav__panel{ opacity:1; transform:translateY(-50%) translateX(0) scale(1); pointer-events:auto; }
.np-floatnav__panel a{ font-family:var(--font-body); font-weight:600; font-size:15px; color:#e7ecf3; text-decoration:none; padding:11px 14px; border-radius:8px; transition:background-color .2s ease, color .2s ease, padding-left .2s ease; }
.np-floatnav__panel a:hover{ background:rgba(194,163,107,.12); color:#c2a36b; padding-left:18px; }
.np-floatnav__cta{ margin-top:6px; background:#c2a36b !important; color:#0a0f18 !important; font-weight:700 !important; text-align:center; justify-content:center; }
.np-floatnav__cta:hover{ background:#ab8b4c !important; color:#0a0f18 !important; padding-left:14px !important; }

/* =========================================================
   HTML PARITY POLISH — typography, rhythm, components (no block changes)
   ========================================================= */
/* section vertical rhythm — tightened to reduce whitespace (header/footer keep their own padding) */
.elementor .e-con.e-parent[id]:not(#np-hero):not(#np-site-header):not(#np-site-footer){ padding-top:clamp(2.5rem, 1.6rem + 2vw, 3.75rem) !important; padding-bottom:clamp(2.5rem, 1.6rem + 2vw, 3.75rem) !important; }

/* prominent section headings like .lsec__head h2 (fs-h1) */
.e-con.e-parent[id]:not(#np-hero) .elementor-widget-heading h2.elementor-heading-title{
  font-size:var(--fs-h1) !important; line-height:var(--lh-heading) !important; letter-spacing:var(--ls-heading) !important;
}
.e-con.e-parent[id]:not(#np-hero) .elementor-widget-heading h3.elementor-heading-title{
  line-height:var(--lh-snug); letter-spacing:var(--ls-heading);
}

/* lead = first paragraph after a heading — like .np-lead */
.e-con.e-parent[id]:not(#np-hero) .elementor-widget-heading + .elementor-widget-text-editor .elementor-widget-container{
  font-size:var(--fs-lead); line-height:var(--lh-relaxed);
}
/* readable but space-filling measure for section copy */
.e-con.e-parent[id]:not(#np-hero) .elementor-widget-text-editor{ max-width:82ch; }
.e-con.e-parent[id]:not(#np-hero) .elementor-widget-text-editor .elementor-widget-container{ line-height:var(--lh-body); }

/* lists side-by-side (flex grid) to use the full width & cut vertical whitespace (NOT header/footer menus) */
.e-con.e-parent[id]:not(#np-hero):not(#np-site-header):not(#np-site-footer) .elementor-widget-icon-list .elementor-icon-list-items{
  display:flex !important; flex-wrap:wrap; column-gap:44px; row-gap:6px;
}
.e-con.e-parent[id]:not(#np-hero):not(#np-site-header):not(#np-site-footer) .elementor-icon-list-item{
  display:flex !important; flex:1 1 210px; max-width:340px; margin:0;
}

/* eyebrow: brighter champagne gold on dark sections (var(--accent-on-dark)) */
#drivers .np-eyebrow .elementor-heading-title,
#certifications .np-eyebrow .elementor-heading-title,
#videos .np-eyebrow .elementor-heading-title,
#awards .np-eyebrow .elementor-heading-title,
#contact .np-eyebrow .elementor-heading-title{ color:#d4ba82 !important; }

/* cards: soft cool depth by default like .np-card --shadow-md */
.e-con-inner .e-con:has(> .e-con-inner .elementor-widget-heading h3),
.e-con-inner .e-con:has(> .elementor-widget-heading h3){
  box-shadow:0 10px 24px -8px rgba(12,18,28,.12);
}

/* icon-list: align multi-line items cleanly */
.e-con.e-parent[id]:not(#np-hero) .elementor-icon-list-item{ align-items:flex-start; }
.e-con.e-parent[id]:not(#np-hero) .elementor-icon-list-icon{ margin-top:.2em; }

/* JS-built 2-column section grids (intro left / content right) like the HTML */
.np-2col{ display:grid; gap:clamp(28px,4vw,64px); align-items:start; position:relative; z-index:1; width:100%; }
.np-2col .np-col{ min-width:0; }
.np-2col .elementor-widget-text-editor{ max-width:none !important; }
.np-2col .np-col-left{ align-self:start; }
.np-2col .np-col-right > *:not(:first-child){ margin-top:16px; }
@media (max-width:900px){ .np-2col{ grid-template-columns:1fr !important; } }
/* contact details: label above value (split from run-together text via JS) */
#contact .elementor-icon-list-text{ display:block; }
#contact .np-il-label{ display:block; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#7c899a; margin-bottom:1px; }

/* =========================================================
   FOOTER
   ========================================================= */
#np-site-footer .np-menu .elementor-icon-list-item > a{ transition:color .25s ease; }
#np-site-footer .np-menu .elementor-icon-list-item:hover > a{ color:#FFFFFF!important; }
#np-site-footer .elementor-social-icon{ transition:background-color .3s ease, transform .25s ease; }
#np-site-footer .elementor-social-icon:hover{ background-color:rgba(212,186,130,.18)!important; transform:translateY(-2px); }

/* =========================================================
   FAQ accordion
   ========================================================= */
#faq .elementor-accordion .elementor-tab-title{ transition:color .25s ease, background-color .25s ease; border-radius:8px; }
#faq .elementor-accordion .elementor-tab-title.elementor-active{ color:#957637!important; }
#faq .elementor-accordion .elementor-tab-title:hover{ color:#C2A36B!important; }
#faq .elementor-accordion .elementor-accordion-item{ border-color:#E4DED2!important; }
#faq .elementor-tab-content{ line-height:1.65; }

@media (prefers-reduced-motion:reduce){
  #np-hero .e-con-inner > .elementor-element:nth-child(3) .elementor-heading-title{ animation:none; }
  .np-el-dot{ animation:none; }
}
