/* ==========================================================================
   EZ Compliance — Core Design System
   ========================================================================== */

:root{
  /* Brand palette */
  --dark:#241631;
  --dark-2:#3B2350;
  --red-dark:#C92D1E;
  --red-light:#F05A4B;
  --red:#E43A29;
  --grey:#9E9E9E;
  --grey-dark:#6F6F6F;
  --grey-light:#D9D9D9;
  --bg:#FAFAFA;
  --ink:#241631;
  --ink-light:#6F6F6F;
  --white:#FFFFFF;
  --line: rgba(36,22,49,0.08);
  --grad-dark: linear-gradient(135deg, var(--dark) 0%, var(--dark-2) 100%);
  --grad-red: linear-gradient(135deg, var(--red-dark) 0%, var(--red) 100%);
  --shadow-sm: 0 2px 10px rgba(36,22,49,.06);
  --shadow-md: 0 12px 32px rgba(36,22,49,.10);
  --shadow-lg: 0 24px 64px rgba(36,22,49,.16);

  /* Type */
  --font-head:'Poppins', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;

  /* Layout */
  --maxw: 1280px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --header-h: 84px;
  --announce-h: 42px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:auto;}
html.lenis, html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;padding:0;-webkit-appearance:none;appearance:none;}
input,textarea,select{font-family:inherit;}

h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  color:var(--dark);
  margin:0 0 .5em;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-0.01em;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--red-light);
  background:rgba(240,90,75,.08);
  border:1px solid rgba(240,90,75,.18);
  padding:6px 14px;
  border-radius:999px;
}
.eyebrow::before{
  content:'';
  width:6px;height:6px;border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 4px rgba(228,58,41,.18);
}

p{color:var(--ink-light);line-height:1.7;margin:0 0 1em;}

.container{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 32px;
}

section{position:relative;}
.section-pad{padding:120px 0;}
.section-pad-sm{padding:72px 0;}

@media(max-width:1024px){
  .section-pad{padding:88px 0;}
  .container{padding:0 24px;}
}
@media(max-width:640px){
  .section-pad{padding:64px 0;}
  .container{padding:0 20px;}
}

/* ---------- Buttons ---------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 30px;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  border:1px solid transparent;
  transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, background .35s ease, color .35s ease;
  white-space:nowrap;
  overflow:hidden;
  isolation:isolate;
}
.btn svg{width:16px;height:16px;flex:none;transition:transform .3s ease;}
.btn:hover svg{transform:translate(3px,-3px);}

.btn-primary{
  background:var(--grad-dark);
  color:#fff;
  box-shadow:0 10px 24px rgba(36,22,49,.28);
}
.btn-primary::after{
  content:'';
  position:absolute;inset:0;
  background:var(--red);
  z-index:-1;
  transform:translateY(101%);
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.btn-primary:hover::after{transform:translateY(0);}
.btn-primary:hover{box-shadow:0 14px 30px rgba(228,58,41,.32);}

.btn-ghost{
  background:transparent;
  border-color:rgba(36,22,49,.18);
  color:var(--dark);
}
.btn-ghost:hover{border-color:var(--dark);background:rgba(36,22,49,.04);transform:translateY(-2px);}

.btn-light{
  background:#fff;
  color:var(--dark);
  box-shadow:var(--shadow-sm);
}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}

.btn-sm{padding:10px 20px;font-size:.85rem;}

/* magnetic wrapper target */
.magnetic{will-change:transform;}

/* ---------- Glass ---------- */
.glass{
  background:rgba(255,255,255,.6);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.5);
}
.glass-dark{
  background:rgba(36,22,49,.55);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.12);
}

/* ---------- Section heading ---------- */
.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(1.8rem,3.4vw,2.7rem);}
.section-head .eyebrow{margin-bottom:16px;}

/* ---------- Background effects ---------- */
.bg-fx{
  position:absolute;inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}
.bg-blob{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:.35;
  will-change:transform;
}
.bg-blob.b1{width:520px;height:520px;top:-160px;left:-120px;background:var(--red);}
.bg-blob.b2{width:460px;height:460px;bottom:-180px;right:-100px;background:var(--red-light);}
.bg-noise{
  position:absolute;inset:0;
  opacity:.035;
  mix-blend-mode:overlay;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.particle{
  position:absolute;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--red);
  opacity:.5;
}
.light-beam{
  position:absolute;
  width:2px;
  height:340px;
  background:linear-gradient(to bottom, rgba(255,255,255,.5), transparent);
  transform:rotate(18deg);
  opacity:.25;
}

/* ---------- Cards ---------- */
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
  transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s ease, border-color .4s ease;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:rgba(240,90,75,.25);}

/* ---------- Stat strip ---------- */
.stat{
  text-align:center;
}
.stat .num{
  font-family:var(--font-head);
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:700;
  color:var(--dark);
  display:flex;align-items:baseline;justify-content:center;gap:2px;
}
.stat .num .suffix{color:var(--red);}
.stat .label{color:var(--ink-light);font-size:.92rem;margin-top:6px;}

/* ---------- Utility ---------- */
.text-red{color:var(--red);}
.text-red-light{color:var(--red-light);}
.center{text-align:center;}
.reveal-up{opacity:0;transform:translateY(48px);}
.reveal-left{opacity:0;transform:translateX(-48px);}
.reveal-right{opacity:0;transform:translateX(48px);}
.reveal-scale{opacity:0;transform:scale(.92);}

::selection{background:var(--red);color:#fff;}

/* Scrollbar */
::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--dark-2);border-radius:10px;}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  padding:calc(var(--header-h) + var(--announce-h) + 88px) 0 88px;
  transition:padding-top .35s ease;
  background:var(--grad-dark);
  position:relative;
  overflow:hidden;
}
.page-hero .container{position:relative;z-index:2;}
.page-hero h1{color:#fff;font-size:clamp(2.1rem,4.4vw,3.4rem);}
.page-hero p{color:rgba(255,255,255,.72);max-width:620px;font-size:1.05rem;}
.breadcrumb{
  display:flex;gap:8px;align-items:center;
  font-family:var(--font-mono);
  font-size:.78rem;
  color:rgba(255,255,255,.55);
  margin-bottom:22px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.breadcrumb a{color:rgba(255,255,255,.8);}
.breadcrumb a:hover{color:var(--red);}

/* Skip link */
.skip-link{
  position:absolute;left:-999px;top:0;
  background:var(--dark);color:#fff;padding:12px 20px;z-index:9999;border-radius:0 0 10px 0;
}
.skip-link:focus{left:0;}

:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
