:root{
  --red:#D01B1B;--blk:#080808;--white:#fff;--off:#F6F4F1;--gray:#888;
  --redglow:rgba(208,27,27,.18);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--blk);overflow-x:hidden;cursor:none;}

/* grain */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:99900;
  opacity:.025;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");}

/* scroll progress */
#prog{position:fixed;top:0;left:0;height:2px;background:var(--red);z-index:99999;width:0;pointer-events:none;}

/* cursor */
#cur{position:fixed;width:8px;height:8px;background:var(--red);border-radius:50%;pointer-events:none;z-index:99990;transform:translate(-50%,-50%);}
#curR{position:fixed;width:32px;height:32px;border:1.5px solid var(--red);border-radius:50%;pointer-events:none;z-index:99989;transform:translate(-50%,-50%);opacity:.4;transition:width .25s,height .25s,opacity .25s;}
body.hov #curR{width:50px;height:50px;opacity:.7;}

/* loader */
#loader{position:fixed;inset:0;background:var(--blk);z-index:99980;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .9s,visibility .9s;}
#loader.gone{opacity:0;visibility:hidden;pointer-events:none;}
.ldr-name{font-family:'Bebas Neue',sans-serif;font-size:80px;color:#fff;letter-spacing:10px;opacity:0;animation:fup .7s .2s forwards;}
.ldr-rule{width:0;height:1px;background:var(--red);margin-top:18px;animation:lrule 1.8s .4s ease forwards;}
.ldr-sub{font-size:9px;letter-spacing:6px;text-transform:uppercase;color:rgba(255,255,255,.3);margin-top:14px;opacity:0;animation:fup .6s .6s forwards;}
@keyframes fup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes lrule{to{width:200px;}}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:9000;display:flex;align-items:center;justify-content:space-between;padding:0 64px;height:72px;transition:all .4s;}
nav.solid{background:rgba(255,255,255,.97);backdrop-filter:blur(24px);border-bottom:1px solid rgba(0,0,0,.05);box-shadow:0 2px 24px rgba(0,0,0,.04);}
.nav-logo{font-family:'Bebas Neue',sans-serif;font-size:24px;letter-spacing:5px;color:#fff;text-decoration:none;display:flex;align-items:center;gap:10px;transition:color .3s;}
nav.solid .nav-logo{color:var(--blk);}
.nav-dot{width:7px;height:7px;background:var(--red);border-radius:50%;flex-shrink:0;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--redglow)}50%{box-shadow:0 0 0 8px transparent}}
.nav-links{display:flex;list-style:none;}
.nav-links a{display:block;padding:0 14px;height:72px;line-height:72px;font-size:9px;letter-spacing:2px;font-weight:500;text-transform:uppercase;color:rgba(255,255,255,.6);text-decoration:none;position:relative;transition:color .2s;}
nav.solid .nav-links a{color:rgba(0,0,0,.5);}
.nav-links a::after{content:'';position:absolute;bottom:16px;left:14px;right:14px;height:1.5px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.nav-links a:hover{color:#fff;}
nav.solid .nav-links a:hover{color:var(--blk);}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-cta{padding:10px 26px;background:var(--red);color:#fff;font-size:9px;letter-spacing:2.5px;font-weight:700;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background .25s,transform .2s;}
.nav-cta:hover{background:#ff2020;transform:translateY(-1px);}

/* ══════════════════════════════════════════════════════
   MEGA VIDEO ZONE
   ─ One fixed video behind sections 1, 2, 3
   ─ #video-zone is a tall wrapper div that defines
     how long the video "lasts" on screen
   ─ The fixed video fills viewport and stays put
   ─ All content (hero, marquee, services) is layered
     ON TOP with z-index, scrolling normally
   ─ When you scroll past #video-zone, the video
     disappears behind the next section
══════════════════════════════════════════════════════ */

/* The tall zone that the fixed video is "attached to" */
#video-zone{
  position:relative; /* so children with absolute positioning anchor here */
}

/* Fixed video — stays locked to viewport while inside the zone */
#bg-video-wrap{
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
  z-index:0;
}
#bg-video-wrap video{
  position:absolute;
  top:50%;left:50%;
  width:100%;
  min-height:100%;
  transform:translate(-50%,-50%);
  object-fit:cover;
  will-change:transform;
}
.bg-overlay{
  position:absolute;
  inset:0;
  /* gradient adapts as user scrolls deeper — JS updates opacity */
  background:linear-gradient(160deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.55) 55%,rgba(8,8,8,.12) 100%);
  transition:background .3s;
  pointer-events:none;
}

/* scrub progress bar fixed to bottom of viewport only while in zone */
#zone-prog{
  position:fixed;
  bottom:0;left:0;
  height:2px;
  background:var(--red);
  width:0%;
  z-index:8000;
  pointer-events:none;
  opacity:0;
  transition:opacity .3s;
}
#zone-prog.visible{opacity:1;}

/* All content inside #video-zone sits on top of the video */
.zone-content{
  position:relative;
  z-index:2;
  margin-top:-100vh; /* overlap the sticky video — content starts at top */
}

/* ── HERO ── */
.hero{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 64px;
  padding-top:72px;
  position:relative;
}
@keyframes slideup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero-badge{display:inline-flex;align-items:center;gap:10px;padding:6px 16px;border:1px solid rgba(208,27,27,.4);border-radius:20px;width:fit-content;margin-bottom:28px;opacity:0;animation:slideup .6s 2.3s forwards;}
.hbdot{width:6px;height:6px;background:var(--red);border-radius:50%;animation:pulse 1.5s infinite;}
.hbtxt{font-size:8.5px;letter-spacing:3px;font-weight:700;text-transform:uppercase;color:var(--red);}
.hero-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(72px,10.5vw,148px);line-height:.88;letter-spacing:2px;color:#fff;margin-bottom:20px;opacity:0;animation:slideup .9s 2.4s forwards;}
.hero-h1 .red{color:var(--red);}
.hero-h1 .outline{-webkit-text-stroke:1.5px rgba(255,255,255,.3);color:transparent;}
.hero-sub{font-size:14px;color:rgba(255,255,255,.5);line-height:1.9;max-width:400px;font-weight:300;opacity:0;animation:slideup .6s 2.6s forwards;}
.hero-btns{display:flex;align-items:center;gap:18px;margin-top:36px;opacity:0;animation:slideup .6s 2.8s forwards;}
.hero-scroll-hint{position:absolute;bottom:40px;left:64px;display:flex;align-items:center;gap:12px;opacity:0;animation:slideup .5s 3.2s forwards;}
.hero-scroll-hint span{font-size:8px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.3);}
.scroll-line{width:48px;height:1px;background:rgba(255,255,255,.15);overflow:hidden;}
.scroll-line::after{content:'';display:block;width:100%;height:100%;background:var(--red);transform:translateX(-100%);animation:scrollpulse 2s 3.5s ease-in-out infinite;}
@keyframes scrollpulse{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* buttons */
.btn-red{padding:15px 40px;background:var(--red);color:#fff;font-size:9.5px;letter-spacing:2.5px;font-weight:700;text-transform:uppercase;text-decoration:none;border-radius:2px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .3s;box-shadow:0 8px 32px rgba(208,27,27,.3);}
.btn-red::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.12);transform:translateX(-101%);transition:transform .35s;}
.btn-red:hover::before{transform:translateX(0);}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 16px 48px rgba(208,27,27,.45);}
.btn-ghost{font-size:9.5px;letter-spacing:2px;font-weight:600;text-transform:uppercase;color:rgba(255,255,255,.6);text-decoration:none;display:flex;align-items:center;gap:10px;transition:color .2s;}
.btn-ghost:hover{color:#fff;}
.bgarr{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;transition:all .3s;}
.btn-ghost:hover .bgarr{background:var(--red);border-color:var(--red);}

/* ── MARQUEE — inside zone so video shows through ── */
.marquee{overflow:hidden;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);padding:13px 0;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);}
.mq-track{display:flex;width:max-content;animation:mq 24s linear infinite;}
.mq-item{display:flex;align-items:center;gap:22px;padding:0 22px;white-space:nowrap;font-size:9.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.5);}
.mq-sep{width:4px;height:4px;background:var(--red);border-radius:50%;}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SERVICES — inside zone, semi-transparent bg so video peeks through ── */
.services{padding:80px 64px 120px;}
.services-inner-bg{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(8,8,8,.82) 0%,rgba(8,8,8,.92) 100%);
  pointer-events:none;
}
.services-content{position:relative;z-index:1;}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.06);max-width:1240px;margin:64px auto 0;}
.svc-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);padding:40px 32px;position:relative;overflow:hidden;cursor:none;transition:background .3s,border-color .3s;}
.svc-card::before{content:'';position:absolute;inset:0;background:var(--red);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);transition:clip-path .55s cubic-bezier(.77,0,.18,1);opacity:.85;}
.svc-card:hover::before{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
.svc-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .4s;}
.svc-card:hover::after{transform:scaleX(1);}
.svc-z{position:relative;z-index:1;}
.svc-num{font-family:'Bebas Neue',sans-serif;font-size:48px;color:rgba(255,255,255,.06);line-height:1;margin-bottom:8px;transition:color .3s;}
.svc-card:hover .svc-num{color:rgba(255,255,255,.12);}
.svc-icon{width:40px;height:40px;background:rgba(208,27,27,.15);border-radius:6px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:background .3s;}
.svc-card:hover .svc-icon{background:rgba(255,255,255,.15);}
.svc-icon svg{stroke:var(--red);transition:stroke .3s;}
.svc-card:hover .svc-icon svg{stroke:#fff;}
.svc-name{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;margin-bottom:10px;}
.svc-desc{font-size:12px;color:rgba(255,255,255,.45);line-height:1.85;font-weight:300;transition:color .3s;}
.svc-card:hover .svc-desc{color:rgba(255,255,255,.75);}
.svc-price{margin-top:16px;font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);}
.svc-card:hover .svc-price{color:#fff;}
.svc-arr{position:absolute;top:24px;right:24px;width:26px;height:26px;border:1px solid rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;transition:all .35s;}
.svc-card:hover .svc-arr{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);transform:rotate(45deg);}
.svc-card:hover .svc-arr svg{stroke:#fff;}
.svc-price{font-size:15px;font-weight:700;color:var(--red);letter-spacing:.5px;margin-top:14px;}

/* section eyebrow shared */
.seyebrow{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;}
.ey-line{width:32px;height:1.5px;background:var(--red);}
.ey-txt{font-size:8.5px;letter-spacing:4.5px;text-transform:uppercase;font-weight:700;color:var(--red);}
.sh2{font-family:'Bebas Neue',sans-serif;font-size:clamp(40px,5.5vw,72px);letter-spacing:2px;text-align:center;line-height:1;}
.sh2.light{color:#fff;}
.sh2.dark{color:var(--blk);}
.ssub{font-size:13.5px;line-height:1.9;font-weight:300;text-align:center;max-width:560px;margin:14px auto 0;}
.ssub.light{color:rgba(255,255,255,.45);}
.ssub.dark{color:var(--gray);}

/* ─── EVERYTHING BELOW video zone is solid white ─── */

/* reveal animations */
.rv{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease;}
.rv-l{opacity:0;transform:translateX(-32px);transition:opacity .8s ease,transform .8s ease;}
.rv-r{opacity:0;transform:translateX(32px);transition:opacity .8s ease,transform .8s ease;}
.rv.on,.rv-l.on,.rv-r.on{opacity:1;transform:none;}
.d1{transition-delay:.07s}.d2{transition-delay:.14s}.d3{transition-delay:.21s}
.d4{transition-delay:.28s}.d5{transition-delay:.35s}.d6{transition-delay:.42s}

/* ── VIDEO BREAK (video 1 again, scrub) — between focus and certs ── */
.scrub-box{
  position:relative;
  width:100%;
  overflow:hidden;
  display:block;
}
.scrub-video{
  position:relative;
  width:100%;
  height:100%;
}
.scrub-video video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
/* overlay and text anchor to the scrub-box, not the video */
.scrub-overlay-grad{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.scrub-text-layer{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:0 64px;
  z-index:2;
}
.scrub-prog-bar{
  position:absolute;
  bottom:0;left:0;
  height:3px;
  background:var(--red);
  width:0%;
  z-index:3;
  transition:width .08s linear;
}

.break-text-inner{max-width:640px;}
.bt-eye{font-size:8.5px;letter-spacing:5px;text-transform:uppercase;color:var(--red);margin-bottom:14px;opacity:0;transform:translateY(14px);transition:opacity .7s,transform .7s;}
.bt-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,7.5vw,100px);color:#fff;line-height:.9;letter-spacing:2px;margin-bottom:18px;opacity:0;transform:translateY(18px);transition:opacity .7s .1s,transform .7s .1s;}
.bt-p{font-size:14px;color:rgba(255,255,255,.48);line-height:1.9;font-weight:300;max-width:480px;opacity:0;transform:translateY(12px);transition:opacity .7s .18s,transform .7s .18s;}
.break-text-inner.vis .bt-eye,.break-text-inner.vis .bt-h,.break-text-inner.vis .bt-p{opacity:1;transform:none;}
.bt-right-inner{max-width:560px;text-align:right;}
.bt-q{font-family:'Playfair Display',serif;font-size:clamp(26px,3.5vw,52px);font-style:italic;color:#fff;line-height:1.25;margin-bottom:14px;opacity:0;transform:translateX(16px);transition:opacity .8s,transform .8s;}
.bt-q em{font-style:normal;color:var(--red);}
.bt-by{font-size:9px;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.28);opacity:0;transform:translateX(10px);transition:opacity .8s .15s,transform .8s .15s;}
.bt-right-inner.vis .bt-q,.bt-right-inner.vis .bt-by{opacity:1;transform:none;}

/* ── FOCUS ── */
.focus{background:var(--off);padding:120px 64px;}
.focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;max-width:1240px;margin:64px auto 0;background:rgba(0,0,0,.05);}
.fc{background:var(--white);padding:60px 52px;position:relative;overflow:hidden;cursor:none;transition:transform .3s,box-shadow .3s;}
.fc:hover{transform:translateY(-4px);box-shadow:0 24px 60px rgba(0,0,0,.07);}
.fc::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--red);transition:height .5s cubic-bezier(.77,0,.18,1);}
.fc.on::before,.fc:hover::before{height:100%;}
.fc-tag{font-size:8px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:14px;}
.fc-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(28px,3.2vw,46px);color:var(--blk);letter-spacing:1px;line-height:.95;margin-bottom:16px;}
.fc-p{font-size:13px;color:#555;line-height:2;font-weight:300;}

/* ── CERTS ── */
.certs{background:var(--blk);padding:120px 64px;}
.certs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;max-width:1240px;margin:64px auto 0;background:rgba(255,255,255,.03);}
.cert{background:var(--blk);padding:48px 28px;text-align:center;position:relative;overflow:hidden;cursor:none;transition:background .3s;}
.cert::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.77,0,.18,1);}
.cert.on::before,.cert:hover::before{transform:scaleX(1);}
.cert:hover{background:#111;}
.ci-box{width:52px;height:52px;border:1.5px solid rgba(208,27,27,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;transition:all .3s;}
.cert:hover .ci-box{background:var(--red);border-color:var(--red);}
.ci-box svg{stroke:var(--red);transition:stroke .3s;}
.cert:hover .ci-box svg{stroke:#fff;}
.cert-name{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fff;line-height:1.5;}
.cert-extra{max-width:1240px;margin:40px auto 0;display:flex;align-items:center;justify-content:center;gap:12px;color:rgba(255,255,255,.28);font-size:11px;letter-spacing:1px;}
.cedot{width:5px;height:5px;background:var(--red);border-radius:50%;}

/* ── ONLINE ── */
.online{background:var(--white);padding:120px 64px;}
.online-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;max-width:1240px;margin:64px auto 0;}
.oc{padding:52px;border:1px solid rgba(0,0,0,.07);position:relative;overflow:hidden;transition:border-color .35s,box-shadow .35s;cursor:none;}
.oc::after{content:'';position:absolute;bottom:0;left:0;width:0;height:3px;background:var(--red);transition:width .55s cubic-bezier(.77,0,.18,1);}
.oc:hover{border-color:rgba(208,27,27,.2);box-shadow:0 14px 52px rgba(208,27,27,.07);}
.oc:hover::after{width:100%;}
.oc-bg{font-family:'Bebas Neue',sans-serif;font-size:90px;color:rgba(0,0,0,.03);position:absolute;top:14px;right:22px;line-height:1;pointer-events:none;}
.oc-tag{font-size:8px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:11px;}
.oc-h{font-family:'Bebas Neue',sans-serif;font-size:42px;letter-spacing:1px;color:var(--blk);margin-bottom:14px;}
.oc-p{font-size:13px;color:#555;line-height:1.95;font-weight:300;margin-bottom:18px;}
.oc-list{list-style:none;display:flex;flex-direction:column;gap:9px;}
.oc-list li{font-size:12px;color:#444;display:flex;align-items:flex-start;gap:10px;}
.oc-list li::before{content:'';width:5px;height:5px;background:var(--red);border-radius:50%;flex-shrink:0;margin-top:6px;}

/* ── ABOUT ── */
.about{background:var(--white);padding:120px 64px;}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;max-width:1180px;margin:64px auto 0;align-items:center;}
.about-photo{aspect-ratio:4/5;background:linear-gradient(160deg,#f7f6f4,#ececea);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;position:relative;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.1);}
.about-photo::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,transparent 40%,rgba(208,27,27,.05) 100%);pointer-events:none;}
.about-photo svg{stroke:#c4c4c0;position:relative;z-index:1;}
.about-photo span{font-size:9.5px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#aaa;max-width:180px;line-height:1.7;position:relative;z-index:1;}
.about-eyebrow{font-size:8.5px;letter-spacing:4.5px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:14px;}
.about-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(34px,4.2vw,58px);color:var(--blk);letter-spacing:1px;line-height:.95;margin-bottom:24px;}
.about-p{font-size:14px;color:#444;line-height:1.95;font-weight:300;margin-bottom:18px;}
.about-p:last-of-type{margin-bottom:0;}
.about-quote{border-left:3px solid var(--red);padding-left:24px;margin-top:30px;}
.about-quote p{font-family:'Playfair Display',serif;font-style:italic;font-size:17px;color:var(--blk);line-height:1.7;}
.about-stats{display:flex;gap:0;margin-top:36px;padding-top:28px;border-top:1px solid rgba(0,0,0,.07);}
.about-stat{flex:1;padding-right:24px;}
.about-stat-num{font-family:'Bebas Neue',sans-serif;font-size:32px;color:var(--red);letter-spacing:.5px;line-height:1;}
.about-stat-lbl{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#999;margin-top:8px;font-weight:600;}

/* ── PRICING ── */
.pricing{background:var(--off);padding:120px 64px;}
.price-grid{display:grid;grid-template-columns:1fr;gap:22px;max-width:900px;margin:64px auto 0;}
.price-card{background:var(--white);border:1px solid rgba(0,0,0,.06);border-radius:14px;padding:40px 40px 36px;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s;box-shadow:0 2px 18px rgba(0,0,0,.03);}
.price-card:hover{transform:translateY(-5px);box-shadow:0 26px 60px rgba(0,0,0,.09);border-color:rgba(208,27,27,.15);}
.price-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.77,0,.18,1);}
.price-card.on::before,.price-card:hover::before{transform:scaleX(1);}
.price-card.full{grid-column:1 / -1;}
.price-icon{width:46px;height:46px;border-radius:12px;background:rgba(208,27,27,.08);display:flex;align-items:center;justify-content:center;margin-bottom:20px;transition:background .3s;}
.price-card:hover .price-icon{background:var(--red);}
.price-icon svg{stroke:var(--red);transition:stroke .3s;}
.price-card:hover .price-icon svg{stroke:#fff;}
.price-tag{font-size:8px;letter-spacing:3px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:10px;}
.price-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(24px,2.6vw,34px);color:var(--blk);letter-spacing:1px;line-height:1;margin-bottom:6px;}
.price-note{font-size:11.5px;color:#888;font-weight:300;margin-bottom:26px;}
table.price-table{width:100%;border-collapse:collapse;margin-bottom:18px;}
table.price-table th{font-size:8.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#999;text-align:left;padding:0 10px 12px 0;border-bottom:1.5px solid rgba(0,0,0,.08);}
table.price-table td{font-size:12.5px;color:#333;padding:13px 10px;border-bottom:1px solid rgba(0,0,0,.05);border-radius:0;}
table.price-table tr:last-child td{border-bottom:none;}
table.price-table td:first-child{padding-left:12px;border-radius:8px 0 0 8px;}
table.price-table td:last-child{padding-right:12px;border-radius:0 8px 8px 0;}
table.price-table td.pt-pkg{font-weight:700;color:var(--blk);}
table.price-table td.pt-price{font-weight:700;color:var(--red);font-size:13.5px;}
table.price-table td.pt-save{color:#2a9d5c;font-size:11px;font-weight:600;}
table.price-table tr.pt-best td{background:rgba(208,27,27,.045);}
.pt-badge{display:inline-block;margin-left:8px;font-size:7px;letter-spacing:1px;font-weight:700;text-transform:uppercase;color:#fff;background:var(--red);padding:3px 8px;border-radius:20px;vertical-align:middle;white-space:nowrap;}
.price-fine{font-size:11px;color:#999;line-height:1.75;font-weight:300;}
.price-fine strong{color:#555;}

/* tiered pricing cards (subscriptions / packages with feature lists) */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px;}
.tier-grid.two{grid-template-columns:repeat(2,1fr);}
.tier{border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:28px 22px;position:relative;background:#fcfcfb;transition:transform .3s,box-shadow .3s,border-color .3s,background .3s;}
.tier:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(0,0,0,.06);}
.tier.popular{border-color:var(--red);background:#fff;box-shadow:0 14px 38px rgba(208,27,27,.12);}
.tier-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;font-size:7.5px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase;padding:5px 13px;border-radius:20px;white-space:nowrap;box-shadow:0 4px 14px rgba(208,27,27,.35);}
.tier-name{font-size:9.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:#999;margin-bottom:12px;}
.tier.popular .tier-name{color:var(--red);}
.tier-price{font-family:'Bebas Neue',sans-serif;font-size:36px;color:var(--blk);letter-spacing:.5px;line-height:1;}
.tier-price span{font-size:11px;font-family:'DM Sans',sans-serif;font-weight:400;color:#999;text-transform:none;letter-spacing:0;margin-left:3px;}
.tier-save{font-size:10px;font-weight:700;color:#2a9d5c;margin-top:6px;}
.tier-desc{font-size:11.5px;color:#666;line-height:1.75;font-weight:300;margin-top:14px;}
.tier-list{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:9px;}
.tier-list li{font-size:11.5px;color:#444;display:flex;align-items:flex-start;gap:8px;line-height:1.55;}
.tier-list li::before{content:'';width:5px;height:5px;background:var(--red);border-radius:50%;flex-shrink:0;margin-top:6px;}

.price-payment{max-width:1240px;margin:52px auto 0;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px;color:#888;font-size:11.5px;letter-spacing:.5px;flex-wrap:wrap;}
.price-payment .pdot{width:5px;height:5px;background:var(--red);border-radius:50%;flex-shrink:0;}
.ft-payment{max-width:1240px;margin:24px auto 0;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px;color:rgba(255,255,255,.22);font-size:10.5px;letter-spacing:.5px;flex-wrap:wrap;}
.ft-payment .pdot{width:4px;height:4px;background:var(--red);border-radius:50%;flex-shrink:0;}

/* ── FREE TRIAL BANNER ── */
.trial-banner{background:var(--blk);padding:80px 64px;text-align:center;position:relative;overflow:hidden;}
.trial-eye{font-size:8.5px;letter-spacing:4.5px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:14px;}
.trial-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(36px,5vw,64px);color:#fff;letter-spacing:1.5px;line-height:1;margin-bottom:16px;}
.trial-h .red{color:var(--red);}
.trial-p{font-size:13.5px;color:rgba(255,255,255,.5);max-width:520px;margin:0 auto 32px;line-height:1.85;font-weight:300;}

/* ── CTA ── */
.cta-section{position:relative;overflow:hidden;}
.cta-vwrap{position:absolute;inset:0;z-index:0;}
.cta-vwrap video{width:100%;height:100%;object-fit:cover;opacity:.22;}
.cta-voverlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,8,.99) 0%,rgba(8,8,8,.78) 100%);z-index:1;}
.cta-content{position:relative;z-index:2;padding:140px 64px;text-align:center;}
.cta-h{font-family:'Bebas Neue',sans-serif;font-size:clamp(52px,8vw,108px);color:#fff;letter-spacing:2px;line-height:.9;margin-bottom:22px;}
.cta-h .red{color:var(--red);}
.cta-p{font-size:15px;color:rgba(255,255,255,.42);max-width:500px;margin:0 auto 52px;line-height:1.9;font-weight:300;}
.cta-btns{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:56px;flex-wrap:wrap;}
.btn-cta{padding:18px 52px;background:var(--red);color:#fff;font-size:10px;letter-spacing:3px;font-weight:700;text-transform:uppercase;text-decoration:none;border-radius:2px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .3s;box-shadow:0 8px 36px rgba(208,27,27,.4);}
.btn-cta::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.1);transform:translateX(-101%);transition:transform .35s;}
.btn-cta:hover::before{transform:translateX(0);}
.btn-cta:hover{transform:translateY(-2px);box-shadow:0 16px 56px rgba(208,27,27,.55);}
.btn-cta-out{padding:17px 40px;border:1.5px solid rgba(255,255,255,.18);color:rgba(255,255,255,.6);font-size:10px;letter-spacing:3px;font-weight:700;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:all .3s;}
.btn-cta-out:hover{border-color:var(--red);color:#fff;}
.cstrip{display:flex;align-items:center;justify-content:center;gap:48px;flex-wrap:wrap;}
.citem{display:flex;align-items:center;gap:12px;color:rgba(255,255,255,.32);font-size:12.5px;transition:color .3s;}
.citem:hover{color:rgba(255,255,255,.85);}
.citem a{color:inherit;text-decoration:none;}
.cicon{width:38px;height:38px;border:1px solid rgba(255,255,255,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;}
.citem:hover .cicon{background:var(--red);border-color:var(--red);}

/* ── FOOTER ── */
footer{background:#040404;padding:80px 64px 40px;}
.ft{max-width:1240px;margin:0 auto;}
.ft-top{display:flex;align-items:flex-start;justify-content:space-between;gap:48px;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.04);}
.ft-logo{font-family:'Bebas Neue',sans-serif;font-size:32px;letter-spacing:5px;color:#fff;}
.ft-logo span{color:var(--red);}
.ft-sub{font-size:9.5px;letter-spacing:3px;color:rgba(255,255,255,.2);margin-top:8px;text-transform:uppercase;}
.ft-links{display:flex;gap:52px;}
.ftc h5{font-size:8px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.18);margin-bottom:18px;font-weight:700;}
.ftc ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.ftc ul li a{font-size:12px;color:rgba(255,255,255,.3);text-decoration:none;transition:color .2s;display:flex;align-items:center;gap:8px;}
.ftc ul li a::before{content:'';width:0;height:1.5px;background:var(--red);transition:width .25s;flex-shrink:0;}
.ftc ul li a:hover::before{width:10px;}
.ftc ul li a:hover{color:rgba(255,255,255,.8);}
.ft-bot{max-width:1240px;margin:28px auto 0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.ft-bot p{font-size:10px;color:rgba(255,255,255,.1);}
.ft-tag2{text-align:center;margin-top:28px;}
.ft-tag2 p{font-size:8px;letter-spacing:6px;text-transform:uppercase;color:rgba(208,27,27,.35);}

/* responsive */
@media(max-width:1100px){
  .testi-grid-wrap{grid-template-columns:1fr 1fr!important;}
  .testi-grid-wrap [style*="grid-row:span 2"]{grid-row:span 1!important;}
  nav,section,.cta-content,footer{padding-left:32px!important;padding-right:32px!important;}
  .svc-grid,.focus-grid,.certs-grid,.online-grid{grid-template-columns:1fr 1fr!important;}
  .about-grid{grid-template-columns:1fr!important;}
  .ft-top{flex-direction:column;}
  .scrub-text-layer,.hero{padding-left:32px!important;padding-right:32px!important;}
}
@media(max-width:700px){
  .testi-grid-wrap{grid-template-columns:1fr!important;}
  nav{padding:0 20px!important;}
  nav{justify-content:flex-start!important;}
  .nav-links,.nav-cta{display:none!important;}
  .svc-grid,.focus-grid,.certs-grid,.online-grid{grid-template-columns:1fr!important;}
}

/* ══════════════════════════════════════════
   SUBPAGE SHARED STYLES (used by service pages,
   about page, etc. — simpler than the homepage's
   video-scrub hero, but same visual language)
══════════════════════════════════════════ */
.page-hero{background:var(--blk);padding:180px 64px 90px;position:relative;overflow:hidden;}
.page-hero-eyebrow{font-size:8.5px;letter-spacing:4.5px;text-transform:uppercase;font-weight:700;color:var(--red);margin-bottom:16px;}
.page-hero-h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(44px,7vw,88px);line-height:.95;letter-spacing:1.5px;color:#fff;max-width:900px;margin-bottom:20px;}
.page-hero-h1 .red{color:var(--red);}
.page-hero-sub{font-size:14px;color:rgba(255,255,255,.55);line-height:1.9;max-width:560px;font-weight:300;}

.content-section{padding:100px 64px;max-width:1000px;margin:0 auto;}
.content-section.narrow{max-width:760px;}
.content-h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(30px,4vw,48px);letter-spacing:1px;color:var(--blk);margin-bottom:20px;}
.content-p{font-size:14.5px;line-height:1.95;color:#444;font-weight:300;margin-bottom:20px;}
.content-list{list-style:none;margin:24px 0;display:flex;flex-direction:column;gap:14px;}
.content-list li{font-size:14px;color:#333;display:flex;align-items:flex-start;gap:12px;line-height:1.7;}
.content-list li>span,.content-list li>strong{flex:1;min-width:0;}
.content-list li::before{content:'';width:6px;height:6px;background:var(--red);border-radius:50%;flex-shrink:0;margin-top:8px;}

.related-links{background:var(--off);padding:70px 64px;text-align:center;}
.related-links-inner{max-width:900px;margin:0 auto;}
.related-links h3{font-family:'Bebas Neue',sans-serif;font-size:clamp(24px,3vw,36px);color:var(--blk);margin-bottom:28px;letter-spacing:1px;}
.related-grid{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;}
.related-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:24px 28px;text-decoration:none;color:var(--blk);font-size:12.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:all .3s;box-shadow:0 2px 12px rgba(0,0,0,.03);}
.related-card:hover{border-color:var(--red);color:var(--red);transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.08);}

/* simple nav for subpages (no video zone behind it, needs solid state by default) */
body.subpage nav{background:rgba(255,255,255,.97);backdrop-filter:blur(24px);border-bottom:1px solid rgba(0,0,0,.05);box-shadow:0 2px 24px rgba(0,0,0,.04);}
body.subpage .nav-logo{color:var(--blk);}
body.subpage .nav-links a{color:rgba(0,0,0,.5);}
body.subpage .nav-links a:hover{color:var(--blk);}
body.subpage{cursor:auto;}

/* Blog post inline images */
.blog-img-wrap{margin:32px 0;}
.blog-img{width:100%;border-radius:14px;display:block;object-fit:cover;max-height:420px;}
.blog-img-cap{font-size:11px;color:#999;margin-top:8px;text-align:center;font-weight:300;}

/* Responsive YouTube embed */
.blog-video-wrap{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:14px;margin:32px 0;background:#000;}
.blog-video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:14px;}
