/* ============================================================
   LIT BIOHAZARD — SITE STYLESHEET
   One file, linked by every page. Edit colors/fonts/spacing here
   and it updates the whole site at once.
   ============================================================ */

*{ box-sizing:border-box; }

:root{
  --lb-bg-1:#0a0a0c;
  --lb-bg-2:#150a0b;
  --lb-surface:#151517;
  --lb-surface-2:#1c1c1f;
  --lb-border:rgba(255,255,255,0.09);
  --lb-red:#e2001a;
  --lb-red-bright:#ff2a3d;
  --lb-red-dim:#7a0010;
  --lb-amber:#ffb800;
  --lb-white:#f5f5f5;
  --lb-grey:#a9a9ad;
  --lb-grey-dim:#77777c;
  --lb-radius:10px;
  --lb-radius-lg:18px;
  --lb-maxw:1280px;
  --lb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--lb-font);
  background:var(--lb-bg-1);
  color:var(--lb-white);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
img{ max-width:100%; display:block; }
h1,h2,h3,h4{ margin:0 0 .6em; font-weight:800; letter-spacing:-0.01em; line-height:1.12; }

.lb-container{
  width:100%;
  max-width:var(--lb-maxw);
  margin:0 auto;
  padding-left:6vw;
  padding-right:6vw;
}
@media (min-width:1400px){ .lb-container{ padding-left:2rem; padding-right:2rem; } }

.lb-section{ position:relative; padding:5.5rem 0; }
.lb-section--tight{ padding:3.2rem 0; }
.lb-section--alt{ background:var(--lb-bg-2); }

.lb-eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  color:var(--lb-red-bright);
  font-size:.78rem; letter-spacing:.18em; font-weight:700;
  text-transform:uppercase; margin-bottom:1rem;
}
.lb-eyebrow::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background:var(--lb-red-bright);
  box-shadow:0 0 8px 2px rgba(255,42,61,0.8);
  animation:lb-blink 1.6s ease-in-out infinite;
}
@keyframes lb-blink{ 0%,100%{opacity:1;} 50%{opacity:.3;} }

.lb-h1{ font-size:clamp(2.1rem, 4.2vw, 3.5rem); }
.lb-h2{ font-size:clamp(1.7rem, 3vw, 2.5rem); }
.lb-h3{ font-size:clamp(1.2rem, 1.8vw, 1.5rem); }
.lb-lead{ font-size:clamp(1rem, 1.3vw, 1.15rem); color:var(--lb-grey); max-width:56ch; }

.lb-btn{
  padding:.9rem 1.7rem;
  border-radius:6px;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.02em;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.lb-btn:hover{ transform:translateY(-2px); }
.lb-btn-primary{
  background:linear-gradient(135deg, var(--lb-red-bright), var(--lb-red));
  color:#fff;
  box-shadow:0 8px 24px -6px rgba(226,0,26,0.55);
}
.lb-btn-primary:hover{ box-shadow:0 12px 28px -6px rgba(226,0,26,0.7); }
.lb-btn-secondary{
  background:transparent;
  color:var(--lb-white);
  border-color:rgba(255,255,255,0.25);
}
.lb-btn-secondary:hover{ border-color:rgba(255,255,255,0.55); }
.lb-btn-block{ width:100%; justify-content:center; }

.lb-ctas{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ---- Badges / trust strip ---- */
.lb-badge{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.4rem .8rem;
  border-radius:999px;
  border:1px solid var(--lb-border);
  background:var(--lb-surface);
  font-size:.78rem; color:var(--lb-grey);
  font-weight:600;
}

/* ---- Cards ---- */
.lb-card{
  background:var(--lb-surface);
  border:1px solid var(--lb-border);
  border-radius:var(--lb-radius-lg);
  padding:2rem;
  transition:border-color .2s ease, transform .2s ease;
  display:flex;
  flex-direction:column;
}
.lb-card:hover{ border-color:rgba(226,0,26,0.4); transform:translateY(-3px); }
.lb-card > a.lb-btn{ margin-top:auto; align-self:flex-start; }
.lb-card.lb-text-center > a.lb-btn{ align-self:center; }
.lb-card-icon{
  width:52px; height:52px; border-radius:12px;
  background:radial-gradient(circle at 30% 30%, var(--lb-red-bright), var(--lb-red-dim));
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.2rem;
  box-shadow:0 6px 18px -4px rgba(226,0,26,0.5);
}

.lb-grid{ display:grid; gap:1.75rem; }
.lb-grid-2{ grid-template-columns:repeat(2,1fr); }
.lb-grid-3{ grid-template-columns:repeat(3,1fr); }
.lb-grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:920px){
  .lb-grid-3,.lb-grid-4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .lb-grid-2,.lb-grid-3,.lb-grid-4{ grid-template-columns:1fr; }
}

/* ---- Scroll reveal ---- */
.lb-reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.lb-reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ---- Page hero banner (inner pages) ---- */
.lb-page-hero{
  position:relative; overflow:hidden;
  padding:4.5rem 0 3.5rem;
  background:
    radial-gradient(ellipse at 80% 20%, rgba(226,0,26,0.16), transparent 55%),
    linear-gradient(160deg, var(--lb-bg-1) 0%, var(--lb-bg-2) 100%);
  border-bottom:1px solid var(--lb-border);
}
.lb-breadcrumb{ color:var(--lb-grey-dim); font-size:.85rem; margin-bottom:1rem; }
.lb-breadcrumb a:hover{ color:var(--lb-red-bright); }

/* ---- CTA band ---- */
.lb-cta-band{
  border-radius:var(--lb-radius-lg);
  background:linear-gradient(135deg, rgba(226,0,26,0.18), rgba(226,0,26,0.04));
  border:1px solid rgba(226,0,26,0.3);
  padding:3rem;
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
}
@media (max-width:700px){ .lb-cta-band{ padding:2rem; flex-direction:column; text-align:center; } }

/* ---- Step list ---- */
.lb-steps{ display:grid; gap:1.5rem; }
.lb-step{ display:flex; gap:1.25rem; align-items:flex-start; }
.lb-step-num{
  flex:none; width:42px; height:42px; border-radius:50%;
  border:2px solid var(--lb-red-bright);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; color:var(--lb-red-bright);
}

/* ---- Utility ---- */
.lb-flex-center{ display:flex; align-items:center; }
.lb-text-center{ text-align:center; }
.lb-mx-auto{ margin-left:auto; margin-right:auto; }
.lb-mt-2{ margin-top:2rem; }
.lb-mt-3{ margin-top:3rem; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.lb-logo{ display:flex; align-items:center; gap:.6rem; font-weight:800; font-size:1.15rem; letter-spacing:-0.01em; }
.lb-logo-mark{ display:inline-flex; width:30px; height:30px; position:relative; flex:none; }
.lb-logo-mark svg{ width:100%; height:100%; display:block; }
.lb-logo span{ color:var(--lb-red-bright); }

.lb-header{
  position:sticky; top:0; z-index:50;
  background:rgba(10,10,12,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--lb-border);
}
.lb-header-inner{
  max-width:var(--lb-maxw); margin:0 auto; padding:.9rem 6vw;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
@media (min-width:1400px){ .lb-header-inner{ padding-left:2rem; padding-right:2rem; } }

.lb-nav{ display:flex; align-items:center; gap:.85rem; flex-wrap:nowrap; white-space:nowrap; }
.lb-nav a{ color:var(--lb-grey); font-size:.85rem; font-weight:600; transition:color .15s ease; }
.lb-nav a:hover, .lb-nav a.is-active{ color:var(--lb-white); }
.lb-nav-phone{ color:var(--lb-white) !important; font-weight:700 !important; }
.lb-nav a.lb-btn-primary{ color:#fff !important; }
.lb-nav a.lb-btn-primary:hover{ color:#fff !important; }

.lb-nav-toggle{
  display:none;
  width:40px; height:40px; border-radius:6px;
  border:1px solid var(--lb-border); background:transparent;
  color:var(--lb-white); cursor:pointer;
  align-items:center; justify-content:center;
  flex:none;
}
.lb-nav-toggle span{ display:block; width:18px; height:2px; background:currentColor; position:relative; }
.lb-nav-toggle span::before, .lb-nav-toggle span::after{
  content:""; position:absolute; left:0; width:18px; height:2px; background:currentColor;
}
.lb-nav-toggle span::before{ top:-6px; }
.lb-nav-toggle span::after{ top:6px; }

@media (max-width:1320px){
  .lb-nav-toggle{ display:flex; }
  .lb-nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--lb-bg-1); border-bottom:1px solid var(--lb-border);
    padding:0 6vw; max-height:0; overflow:hidden;
    white-space:normal;
    transition:max-height .25s ease, padding .25s ease;
  }
  .lb-nav.is-open{
    max-height:calc(100vh - 76px); padding:.5rem 6vw 1.25rem;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  .lb-nav a{ padding:.7rem 0; width:100%; border-bottom:1px solid var(--lb-border); font-size:.9rem; }
  .lb-nav a:last-child{ border-bottom:none; }
  .lb-header-inner{ position:relative; flex-wrap:wrap; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.lb-footer{ background:#08080a; border-top:1px solid var(--lb-border); padding:4rem 0 2rem; }
.lb-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; margin-bottom:2.5rem; }
.lb-footer h4{ font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; color:var(--lb-grey-dim); margin-bottom:1rem; }
.lb-footer p{ color:var(--lb-grey); font-size:.92rem; }
.lb-footer li{ margin-bottom:.6rem; }
.lb-footer a{ color:var(--lb-grey); font-size:.92rem; }
.lb-footer a:hover{ color:var(--lb-red-bright); }
.lb-footer-bottom{
  border-top:1px solid var(--lb-border); padding-top:1.5rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  color:var(--lb-grey-dim); font-size:.82rem;
}
@media (max-width:920px){ .lb-footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){
  .lb-footer-grid{ grid-template-columns:1fr; }
  .lb-container{ padding-left:1.25rem; padding-right:1.25rem; }
}

/* ============================================================
   HOME PAGE — HERO / TREFOIL ANIMATION
   (the one section built with genuinely custom code — no page
   builder or WYSIWYG tool can produce a live canvas particle
   animation any other way)
   ============================================================ */
.lb-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse at 75% 50%, rgba(226,0,26,0.16), transparent 60%),
    radial-gradient(ellipse at 20% 20%, rgba(226,0,26,0.08), transparent 55%),
    linear-gradient(160deg, var(--lb-bg-1) 0%, var(--lb-bg-2) 100%);
}
.lb-scanlines{
  position:absolute; inset:0; pointer-events:none; mix-blend-mode:overlay; opacity:.5;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 2px, transparent 4px);
}
.lb-sweep{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.lb-sweep::before{
  content:""; position:absolute; top:-20%; bottom:-20%; width:35%; left:-40%;
  background:linear-gradient(100deg, transparent, rgba(226,0,26,0.10) 45%, rgba(255,42,61,0.16) 50%, rgba(226,0,26,0.10) 55%, transparent);
  filter:blur(2px);
  animation:lb-sweep-move 9s ease-in-out infinite;
}
@keyframes lb-sweep-move{
  0%{ transform:translateX(0) skewX(-12deg); }
  50%{ transform:translateX(340%) skewX(-12deg); }
  100%{ transform:translateX(0) skewX(-12deg); }
}

.lb-hero-grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.1fr 0.9fr; align-items:center; gap:2rem;
  padding:6vh 0;
}
@media (max-width:880px){
  .lb-hero-grid{ grid-template-columns:1fr; text-align:center; padding-top:3vh; }
  .lb-hero-grid .lb-eyebrow, .lb-hero-grid .lb-ctas{ justify-content:center; }
  .lb-hero-grid .lb-lead{ margin-left:auto; margin-right:auto; }
}

.lb-meta-row{ margin-top:2rem; display:flex; gap:1.5rem; color:var(--lb-grey); font-size:.85rem; flex-wrap:wrap; }
.lb-meta-row strong{ color:var(--lb-white); display:block; font-size:1rem; }
@media (max-width:880px){ .lb-meta-row{ justify-content:center; } }

.lb-stage{
  position:relative; aspect-ratio:1/1; width:100%; max-width:460px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
}
.lb-ring{ position:absolute; border-radius:50%; border:1px solid rgba(226,0,26,0.25); }
.lb-ring--outer{ inset:2%; animation:lb-rotate 40s linear infinite; }
.lb-ring--outer::before, .lb-ring--outer::after{
  content:""; position:absolute; width:6px; height:6px; border-radius:50%;
  background:var(--lb-red-bright); box-shadow:0 0 8px 2px rgba(255,42,61,0.7);
}
.lb-ring--outer::before{ top:-3px; left:50%; transform:translateX(-50%); }
.lb-ring--outer::after{ bottom:-3px; left:50%; transform:translateX(-50%); }
.lb-ring--inner{ inset:14%; border-style:dashed; animation:lb-rotate-rev 55s linear infinite; }
@keyframes lb-rotate{ to{ transform:rotate(360deg); } }
@keyframes lb-rotate-rev{ to{ transform:rotate(-360deg); } }

.lb-pulse-ring{
  position:absolute; inset:30%; border-radius:50%; border:2px solid var(--lb-red-bright);
  opacity:0; animation:lb-pulse-out 3.6s cubic-bezier(.2,.6,.3,1) infinite;
}
.lb-pulse-ring.d2{ animation-delay:1.2s; }
.lb-pulse-ring.d3{ animation-delay:2.4s; }
@keyframes lb-pulse-out{
  0%{ transform:scale(0.55); opacity:0.55; }
  80%{ opacity:0; }
  100%{ transform:scale(1.9); opacity:0; }
}

.lb-symbol-wrap{
  position:relative; width:58%; aspect-ratio:1/1;
  animation:lb-breathe 4.2s ease-in-out infinite;
  filter:drop-shadow(0 0 18px rgba(226,0,26,0.55)) drop-shadow(0 0 46px rgba(226,0,26,0.28));
}
@keyframes lb-breathe{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.045); } }

.lb-symbol-svg{ width:100%; height:100%; display:block; animation:lb-spin 26s linear infinite; }
@keyframes lb-spin{ to{ transform:rotate(360deg); } }

.lb-particles{ position:absolute; inset:0; pointer-events:none; }

/* ============================================================
   CONTACT PAGE — FORM STYLING
   ============================================================ */
.lb-form{ display:grid; gap:1.1rem; }
.lb-form-row{ display:grid; gap:1.1rem; grid-template-columns:1fr 1fr; }
.lb-field label{ display:block; font-size:.85rem; font-weight:700; margin-bottom:.4rem; color:var(--lb-grey); }
.lb-field input, .lb-field textarea, .lb-field select{
  width:100%;
  background:var(--lb-surface);
  border:1px solid var(--lb-border);
  border-radius:8px;
  padding:.85rem 1rem;
  color:var(--lb-white);
  font-family:var(--lb-font);
  font-size:.95rem;
}
.lb-field input:focus, .lb-field textarea:focus, .lb-field select:focus{
  outline:none; border-color:var(--lb-red-bright);
}
.lb-field textarea{ resize:vertical; min-height:120px; }
.lb-form-note{ font-size:.8rem; color:var(--lb-grey-dim); }
@media (max-width:640px){ .lb-form-row{ grid-template-columns:1fr; } }

.lb-field input[type="file"]{ padding:.55rem; cursor:pointer; }
.lb-field input[type="file"]::file-selector-button{
  background:var(--lb-red-bright); color:#fff; border:none; border-radius:6px;
  padding:.55rem 1rem; font-weight:700; margin-right:1rem; cursor:pointer;
}
.lb-field-hint{ font-size:.78rem; color:var(--lb-grey-dim); margin-top:.4rem; }

.lb-check{ display:flex; align-items:flex-start; gap:.7rem; }
.lb-check input[type="checkbox"]{
  flex:none; width:19px; height:19px; margin-top:.15rem;
  accent-color:var(--lb-red-bright); cursor:pointer;
}
.lb-check label{ font-size:.88rem; color:var(--lb-grey); font-weight:500; cursor:pointer; }

/* ---- Photo placeholder slots (press/media pages) ---- */
.lb-photo-slot{
  aspect-ratio:4/3; border:2px dashed var(--lb-border); border-radius:var(--lb-radius-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  color:var(--lb-grey-dim); text-align:center; padding:1rem; background:var(--lb-surface);
}
.lb-photo-slot svg{ opacity:.5; }
.lb-photo-slot span{ font-size:.82rem; font-weight:600; }

.lb-gallery-photo{
  aspect-ratio:4/3; border-radius:var(--lb-radius-lg); overflow:hidden; background:var(--lb-surface);
}
.lb-gallery-photo img{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---- Promo slide-in (homepage discount code) ---- */
.lb-promo{
  position:fixed; right:1.5rem; bottom:1.5rem; z-index:80;
  max-width:320px; background:var(--lb-bg-1); border:1px solid var(--lb-border);
  border-left:4px solid var(--lb-red-bright); border-radius:var(--lb-radius-lg);
  box-shadow:0 18px 45px rgba(0,0,0,0.35); padding:1.25rem 1.35rem;
  transform:translateY(140%); opacity:0; transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .5s ease;
  pointer-events:none;
}
.lb-promo.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
.lb-promo.is-pulse{ animation:lb-promo-pulse 1.8s ease-in-out .6s 2; }
.lb-promo-close{
  position:absolute; top:.5rem; right:.6rem; width:26px; height:26px; border-radius:50%;
  border:none; background:transparent; color:var(--lb-grey-dim); font-size:1.1rem; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.lb-promo-close:hover{ color:var(--lb-white); background:rgba(255,255,255,0.08); }
.lb-promo-badge{
  display:inline-flex; align-items:center; gap:.35rem; font-weight:800; font-size:.78rem;
  letter-spacing:.04em; color:var(--lb-red-bright); text-transform:uppercase; margin-bottom:.5rem;
}
.lb-promo-code{
  display:inline-block; margin-top:.7rem; padding:.35rem .8rem; border-radius:8px;
  background:rgba(255,42,61,0.12); border:1px dashed var(--lb-red-bright);
  font-weight:800; letter-spacing:.06em; color:var(--lb-red-bright); font-size:.9rem;
}
@keyframes lb-promo-pulse{
  0%,100%{ box-shadow:0 18px 45px rgba(0,0,0,0.35), 0 0 0 0 rgba(255,42,61,0.0); }
  50%{ box-shadow:0 18px 45px rgba(0,0,0,0.35), 0 0 0 8px rgba(255,42,61,0.18); }
}
@media (max-width:560px){
  .lb-promo{ left:1rem; right:1rem; bottom:1rem; max-width:none; }
}

/* ---- Footer social icons ---- */
.lb-footer-social{ display:flex; gap:.6rem; }
.lb-footer-social a{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%; flex:none;
  border:1px solid var(--lb-border); color:var(--lb-grey);
  transition:color .2s ease, border-color .2s ease, background .2s ease;
}
.lb-footer-social a:hover{ color:var(--lb-white); border-color:var(--lb-red-bright); background:rgba(255,42,61,0.12); }
.lb-footer-social svg{ width:16px; height:16px; fill:currentColor; }

/* ---- Cookie consent banner (site-wide) ---- */
.lb-cookie{
  position:fixed; left:1.5rem; bottom:1.5rem; z-index:95;
  max-width:360px; background:var(--lb-bg-1); border:1px solid var(--lb-border);
  border-left:4px solid var(--lb-red-bright); border-radius:var(--lb-radius-lg);
  box-shadow:0 18px 45px rgba(0,0,0,0.35); padding:1.25rem 1.35rem;
  transform:translateY(140%); opacity:0; transition:transform .55s cubic-bezier(.16,1,.3,1), opacity .5s ease;
  pointer-events:none;
}
.lb-cookie.is-visible{ transform:translateY(0); opacity:1; pointer-events:auto; }
.lb-cookie p{ margin:0 0 1rem; font-size:.86rem; color:var(--lb-grey); line-height:1.55; }
.lb-cookie p a{ color:var(--lb-white); text-decoration:underline; }
.lb-cookie-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.lb-cookie-actions .lb-btn{ padding:.55rem 1rem; font-size:.82rem; }
@media (max-width:560px){
  .lb-cookie{ left:1rem; right:1rem; bottom:1rem; max-width:none; }
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}
