/* =====================================================================
   ISS Site Premium v3 — refinement layer over site-pro.css.
   Additive only: every colour still comes from the CMS brand variables
   (--sp-primary / --sp-accent), so Appearance settings keep working.
   ===================================================================== */
body.sp-body{
  --sp-gold-glow:color-mix(in srgb,var(--sp-accent) 45%,transparent);
  --sp-hairline:linear-gradient(90deg,transparent,color-mix(in srgb,var(--sp-accent) 70%,transparent),transparent);
  font-feature-settings:"cv11","ss01";
}

/* ---------- Scroll progress ---------- */
.sp-progress{position:fixed;top:0;left:0;right:0;z-index:120;height:3px;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,var(--sp-accent),color-mix(in srgb,var(--sp-accent) 50%,#fff));box-shadow:0 0 12px var(--sp-gold-glow)}

/* ---------- Header ---------- */
body.sp-body .sp-header{transition:background .3s var(--sp-ease),box-shadow .3s var(--sp-ease),border-color .3s var(--sp-ease)}
body.sp-body .sp-header.is-scrolled{background:color-mix(in srgb,var(--sp-surface) 78%,transparent);border-bottom-color:transparent;
  box-shadow:0 1px 0 color-mix(in srgb,var(--sp-line) 70%,transparent),0 18px 40px -26px rgba(12,21,39,.45)}
body.sp-body .sp-brand-mark{box-shadow:0 10px 24px -12px color-mix(in srgb,var(--sp-primary) 80%,transparent),inset 0 1px 0 rgba(255,255,255,.18)}
body.sp-body .sp-nav-link.is-active::after,body.sp-body .sp-nav-link::after{transition:transform .3s var(--sp-ease),opacity .3s}
body.sp-body .sp-nav-link:not(.is-active)::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;border-radius:2px;background:var(--sp-accent);transform:scaleX(0);opacity:0}
body.sp-body .sp-nav-link:not(.is-active):hover::after{transform:scaleX(1);opacity:.7}

/* ---------- Hero ---------- */
body.sp-body .sp-hero-in{position:relative}
body.sp-body .sp-hero-in::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:520px;height:520px;right:-120px;top:10%;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--sp-accent) 26%,transparent),transparent 62%);filter:blur(10px);animation:spAurora 14s ease-in-out infinite alternate}
@keyframes spAurora{50%{transform:translate(-60px,40px) scale(1.08)}100%{transform:translate(30px,-20px) scale(.96)}}
body.sp-body .sp-hero h1{text-wrap:balance;background:linear-gradient(180deg,#fff 30%,color-mix(in srgb,#fff 78%,var(--sp-accent)));-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 12px 30px rgba(0,0,0,.25))}
body.sp-body .sp-hero h1 .sp-accent-text{-webkit-text-fill-color:transparent}
body.sp-body .sp-hero .sp-chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
body.sp-body .sp-hero .sp-lead{text-wrap:pretty}
body.sp-body .sp-hero-dot{transition:width .35s var(--sp-ease),background .3s}

/* ---------- Floating stat strip ---------- */
body.sp-body .sp-stat-strip{border-color:color-mix(in srgb,var(--sp-line) 70%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--sp-surface) 96%,transparent),var(--sp-surface));
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
body.sp-body .sp-stat-strip>div{transition:background .3s var(--sp-ease)}
body.sp-body .sp-stat-strip>div:hover{background:color-mix(in srgb,var(--sp-accent) 5%,transparent)}
body.sp-body .sp-stat-strip .sp-stat-ico{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sp-accent) 25%,transparent)}

/* ---------- Section headings ---------- */
body.sp-body .sp-head h2,body.sp-body .sp-section h2{text-wrap:balance}
body.sp-body .sp-eyebrow{padding:6px 12px 6px 10px;border-radius:999px;background:color-mix(in srgb,var(--sp-accent) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--sp-accent) 24%,transparent);letter-spacing:.14em}
body.sp-body .sp-eyebrow::before{width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,var(--sp-accent) 22%,transparent)}
body.sp-body .sp-section.is-dark .sp-eyebrow{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
body.sp-body .sp-section + .sp-section:not(.is-alt):not(.is-dark)::before{content:"";position:absolute;top:0;left:50%;width:min(720px,80%);height:1px;transform:translateX(-50%);background:var(--sp-hairline);opacity:.35}

/* ---------- Cards: gradient edge + spotlight ---------- */
body.sp-body .sp-card,body.sp-body .sp-industry,body.sp-body .sp-contact-card{isolation:isolate}
body.sp-body .sp-card::before,body.sp-body .sp-industry::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s var(--sp-ease);
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--sp-accent) 12%,transparent),transparent 60%)}
body.sp-body .sp-card:hover::before,body.sp-body .sp-industry:hover::before{opacity:1}
body.sp-body .sp-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .4s var(--sp-ease);
  background:linear-gradient(140deg,color-mix(in srgb,var(--sp-accent) 70%,transparent),transparent 40%,transparent 60%,color-mix(in srgb,var(--sp-primary) 40%,transparent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
body.sp-body .sp-card.is-hover:hover::after,body.sp-body .sp-service-card:hover::after{opacity:1}
body.sp-body .sp-card-ico{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 10px 22px -14px color-mix(in srgb,var(--sp-accent) 80%,transparent);transition:transform .4s var(--sp-ease)}
body.sp-body .sp-card:hover .sp-card-ico{transform:translateY(-2px) rotate(-4deg) scale(1.05)}
body.sp-body .sp-feature{transition:border-color .25s,background .25s,transform .25s var(--sp-ease)}
body.sp-body .sp-feature:hover{border-color:color-mix(in srgb,var(--sp-accent) 40%,var(--sp-line));background:var(--sp-surface);transform:translateX(3px)}
body.sp-body .sp-link{background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s var(--sp-ease)}
body.sp-body .sp-link:hover{background-size:100% 1px}

/* ---------- Buttons ---------- */
body.sp-body .sp-btn{position:relative;overflow:hidden;isolation:isolate}
body.sp-body .sp-btn-accent::after{content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-120%) skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transition:transform .7s var(--sp-ease)}
body.sp-body .sp-btn-accent:hover::after{transform:translateX(120%) skewX(-18deg)}

/* ---------- Dark stats band & CTA ---------- */
body.sp-body .sp-section.is-dark{overflow:hidden}
body.sp-body .sp-section.is-dark::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(70% 80% at 50% 50%,#000,transparent);mask-image:radial-gradient(70% 80% at 50% 50%,#000,transparent)}
body.sp-body .sp-stat{position:relative;transition:transform .35s var(--sp-ease),border-color .35s,background .35s;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
body.sp-body .sp-stat:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--sp-accent) 45%,transparent);background:rgba(255,255,255,.06)}
body.sp-body .sp-stat-val{background:linear-gradient(180deg,#fff,color-mix(in srgb,#fff 70%,var(--sp-accent)));-webkit-background-clip:text;background-clip:text;color:transparent}
body.sp-body .sp-cta{box-shadow:0 40px 80px -40px color-mix(in srgb,var(--sp-accent) 85%,transparent)}
body.sp-body .sp-cta::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.25;
  background-image:radial-gradient(rgba(0,0,0,.25) 1px,transparent 1px);background-size:18px 18px;
  -webkit-mask-image:linear-gradient(90deg,transparent 40%,#000);mask-image:linear-gradient(90deg,transparent 40%,#000)}

/* ---------- Testimonials, steps, media ---------- */
body.sp-body .sp-quote{position:relative}
body.sp-body .sp-step-num{box-shadow:0 0 0 6px color-mix(in srgb,var(--sp-accent) 12%,transparent),0 14px 30px -16px color-mix(in srgb,var(--sp-accent) 90%,transparent);transition:transform .35s var(--sp-ease)}
body.sp-body .sp-step:hover .sp-step-num{transform:scale(1.08)}
body.sp-body .sp-media-card{box-shadow:var(--sp-shadow-1);transition:box-shadow .4s var(--sp-ease),transform .4s var(--sp-ease)}
body.sp-body .sp-media-card:hover{box-shadow:var(--sp-shadow-2);transform:translateY(-3px)}

/* Graceful placeholder for images that fail to load (set by site-premium.js). */
body.sp-body img.sp-img-fallback{object-fit:cover;background:
  radial-gradient(60% 60% at 70% 20%,color-mix(in srgb,var(--sp-accent) 30%,transparent),transparent 70%),
  linear-gradient(150deg,color-mix(in srgb,var(--sp-primary) 85%,#2a4a8a),var(--sp-primary))}

/* ---------- Inner page hero ---------- */
body.sp-body .sp-page-hero{padding:96px 0 84px}
body.sp-body .sp-page-hero h1{color:#fff;text-wrap:balance;letter-spacing:-.03em}
body.sp-body .sp-page-hero .sp-container{position:relative}
body.sp-body .sp-page-hero .sp-container::before{content:"";position:absolute;z-index:-1;right:-80px;top:-60px;width:380px;height:380px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--sp-accent) 22%,transparent),transparent 65%);filter:blur(6px)}
body.sp-body .sp-crumbs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);font-size:13px}

/* ---------- Forms ---------- */
body.sp-body .sp-field input,body.sp-body .sp-field select,body.sp-body .sp-field textarea{transition:border-color .2s,box-shadow .2s,background .2s}
body.sp-body .sp-field input:focus,body.sp-body .sp-field select:focus,body.sp-body .sp-field textarea:focus{
  border-color:color-mix(in srgb,var(--sp-accent) 70%,var(--sp-line));box-shadow:0 0 0 4px color-mix(in srgb,var(--sp-accent) 16%,transparent)}
body.sp-body .sp-form-card{box-shadow:var(--sp-shadow-2)}

/* ---------- Footer ---------- */
body.sp-body .sp-footer{position:relative}
body.sp-body .sp-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--sp-hairline);opacity:.8}
body.sp-body .sp-footer a{transition:color .2s}
body.sp-body .sp-social a{transition:transform .25s var(--sp-ease),background .25s,color .25s}
body.sp-body .sp-social a:hover{transform:translateY(-3px)}

/* ---------- Floating UI (cookie, fabs, bottom nav) ---------- */
body.sp-body .sp-cookie{-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);
  background:color-mix(in srgb,var(--sp-surface) 88%,transparent)!important;border:1px solid color-mix(in srgb,var(--sp-line) 80%,transparent);box-shadow:0 24px 60px -24px rgba(12,21,39,.45)}
body.sp-body .sp-fab{transition:transform .25s var(--sp-ease),box-shadow .25s}
body.sp-body .sp-fab:hover{transform:translateY(-3px) scale(1.04)}
body.sp-body .sp-bottom-nav{border:1px solid color-mix(in srgb,var(--sp-line) 70%,transparent)}

/* ---------- Mobile polish ---------- */
@media (max-width:720px){
  body.sp-body .sp-hero-in::before{width:320px;height:320px;right:-140px;top:0}
  body.sp-body .sp-hero h1{letter-spacing:-.03em}
  body.sp-body .sp-page-hero{padding:72px 0 60px}
  body.sp-body .sp-eyebrow{font-size:11px}
  body.sp-body .sp-card:hover .sp-card-ico{transform:none}
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion:reduce){
  body.sp-body .sp-hero-in::before{animation:none}
  .sp-progress{display:none}
  body.sp-body .sp-btn-accent::after{display:none}
}
@media print{.sp-progress{display:none}}
