/* Epoxyology — Dark Glossy Industrial Reflective
   charcoal + metallic-flake (silver/blue) + high-gloss reflections */

:root{
  --bg:#0e0f12;
  --bg-2:#141720;
  --panel:#171a22;
  --panel-2:#1c2230;
  --ink:#f2f5fb;
  --muted:#aab3c5;
  --muted-2:#7e8aa0;
  --line:rgba(150,170,205,0.14);
  --silver:#cfd8e6;
  --steel:#8ea2c4;
  --blue:#5b8cff;
  --flake:#9fb4d8;
  --accent-grad:linear-gradient(120deg,#dfe7f4 0%,#9db0d4 38%,#5b8cff 100%);
  --gloss:linear-gradient(180deg,#2a3346 0%,#161b27 55%,#0d1018 100%);
  --radius:16px;
  --radius-sm:11px;
  --tap:46px;
  --maxw:1120px;
  --shadow:0 18px 50px rgba(0,0,0,0.55);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:
    radial-gradient(1100px 540px at 70% -8%, rgba(91,140,255,0.10), transparent 60%),
    radial-gradient(900px 500px at 8% 4%, rgba(207,216,230,0.06), transparent 55%),
    var(--bg);
  color:var(--ink);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}

a{color:inherit}
img{max-width:100%;display:block}

/* Skip link */
.skip-link{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--silver);color:#0e0f12;padding:12px 18px;border-radius:0 0 10px 0;font-weight:700;
}
.skip-link:focus{left:0}

:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}

/* Header */
.site-header{
  position:sticky;top:0;z-index:90;
  background:rgba(14,15,18,0.72);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:background .3s ease;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:var(--tap)}
.logo-mark{display:flex;filter:drop-shadow(0 4px 10px rgba(91,140,255,.35))}
.logo-word{font-weight:800;letter-spacing:.3px;font-size:1.15rem;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.main-nav{display:none;align-items:center;gap:6px}
.main-nav a{
  text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem;
  padding:10px 12px;border-radius:9px;min-height:var(--tap);display:inline-flex;align-items:center;
}
.main-nav a:hover{color:var(--ink)}
.nav-cta{
  background:var(--accent-grad);color:#0e0f12 !important;font-weight:800;
  box-shadow:0 8px 22px rgba(91,140,255,.30);
}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--tap);padding:13px 22px;border-radius:12px;
  font-weight:800;text-decoration:none;cursor:pointer;border:0;font-size:1rem;
  transition:transform .15s ease, box-shadow .2s ease;
}
.btn-primary{background:var(--accent-grad);color:#0e0f12;box-shadow:0 12px 30px rgba(91,140,255,.32)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(91,140,255,.42)}
.btn-ghost{background:rgba(207,216,230,.06);color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{background:rgba(207,216,230,.12)}
.btn-block{width:100%}

/* Eyebrow + headings */
.eyebrow{
  text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:800;
  color:var(--steel);margin:0 0 10px;
}
h1{font-size:clamp(2.2rem,8vw,4rem);line-height:1.04;letter-spacing:-.02em;margin:0 0 16px;font-weight:850}
h2{font-size:clamp(1.7rem,5.5vw,2.6rem);line-height:1.12;letter-spacing:-.015em;margin:0 0 12px;font-weight:820}
h3{font-size:1.18rem;margin:0 0 8px;font-weight:750}
.grad{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* HERO */
.hero{position:relative;overflow:hidden;padding:0 0 60px}
.hero-floor{position:absolute;inset:0;z-index:0}
.floor{position:absolute;left:0;right:0;bottom:0;height:55%}
.floor-dull{
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.012) 0 2px, transparent 2px 5px),
    linear-gradient(180deg,#23262d 0%, #15171d 100%);
}
.floor-dull::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(120px 60px at 30% 40%, rgba(0,0,0,.4), transparent 70%),
             radial-gradient(160px 70px at 72% 65%, rgba(0,0,0,.35), transparent 70%);
}
.floor-gloss{
  background:var(--gloss);
  clip-path:inset(0 0 0 100%);
  transition:clip-path 1.6s cubic-bezier(.2,.7,.2,1);
}
.floor-gloss::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg, transparent 30%, rgba(207,216,230,.18) 48%, rgba(91,140,255,.12) 52%, transparent 70%);
}
.floor-gloss.revealed{clip-path:inset(0 0 0 0)}
.reflection{
  position:absolute;left:0;right:0;top:0;height:40%;
  background:linear-gradient(180deg, rgba(207,216,230,.16), transparent);
  mix-blend-mode:screen;
}
.flake{
  position:absolute;width:7px;height:7px;border-radius:2px;
  background:var(--flake);opacity:0;transform:rotate(20deg);
  box-shadow:0 0 8px rgba(159,180,216,.7);
}
.floor-gloss.revealed .flake{animation:shimmer 3.2s ease-in-out infinite}
.f1{left:14%;top:30%}.f2{left:33%;top:62%;animation-delay:.4s}
.f3{left:52%;top:24%;animation-delay:.8s}.f4{left:68%;top:58%;animation-delay:1.2s}
.f5{left:82%;top:36%;animation-delay:1.6s}.f6{left:46%;top:74%;animation-delay:2s}
@keyframes shimmer{0%,100%{opacity:.15}50%{opacity:.95;transform:rotate(20deg) scale(1.25)}}

.hero-inner{position:relative;z-index:1;padding:64px 20px 0;text-align:left;max-width:780px}
.lede{font-size:clamp(1.02rem,2.6vw,1.22rem);color:var(--muted);max-width:60ch;margin:0 0 26px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.hero-badges{
  list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0;
}
.hero-badges li{
  font-size:.82rem;font-weight:700;color:var(--silver);
  border:1px solid var(--line);background:rgba(207,216,230,.05);
  padding:7px 13px;border-radius:99px;
}

/* Sections */
.section{padding:64px 0}
.section-alt{
  background:
    linear-gradient(180deg, rgba(91,140,255,.04), transparent 40%),
    var(--bg-2);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.section-lede{color:var(--muted);max-width:62ch;margin:0 0 30px;font-size:1.04rem}

/* Cards */
.cards{display:grid;grid-template-columns:1fr;gap:16px}
.card{
  background:linear-gradient(180deg, var(--panel-2), var(--panel));
  border:1px solid var(--line);border-radius:var(--radius);padding:22px;
  position:relative;overflow:hidden;box-shadow:var(--shadow);
}
.card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(207,216,230,.5),transparent);
}
.card-ico{font-size:1.7rem;margin-bottom:10px;filter:drop-shadow(0 2px 6px rgba(91,140,255,.4))}
.card p{color:var(--muted);margin:0}

/* Steps */
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:16px}
.step{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 22px 22px 22px;position:relative;
}
.step-num{
  display:inline-block;font-size:1.6rem;font-weight:850;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:6px;
}
.step p{color:var(--muted);margin:0}

/* Before / After slider */
.ba{
  position:relative;width:100%;aspect-ratio:16/10;max-width:760px;
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow);user-select:none;
}
.ba-after,.ba-before{position:absolute;inset:0}
.ba-after{
  background:
    radial-gradient(600px 220px at 50% 0%, rgba(207,216,230,.22), transparent 60%),
    var(--gloss);
}
.ba-after::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(4px 4px at 20% 30%, rgba(159,180,216,.9), transparent),
    radial-gradient(3px 3px at 60% 55%, rgba(91,140,255,.8), transparent),
    radial-gradient(3px 3px at 80% 25%, rgba(207,216,230,.9), transparent),
    radial-gradient(4px 4px at 38% 70%, rgba(159,180,216,.8), transparent),
    linear-gradient(100deg, transparent 40%, rgba(207,216,230,.12) 50%, transparent 62%);
}
.ba-before{
  width:50%;
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.06) 0 3px, transparent 3px 7px),
    linear-gradient(180deg,#2a2d34,#191b21);
  border-right:2px solid rgba(207,216,230,.5);
}
.ba-before::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(90px 50px at 30% 40%, rgba(0,0,0,.45), transparent 70%),
             radial-gradient(120px 60px at 70% 70%, rgba(0,0,0,.4), transparent 70%);
}
.ba-tag{
  position:absolute;top:12px;z-index:3;font-size:.72rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:99px;
}
.ba-tag-before{left:12px;background:rgba(0,0,0,.6);color:var(--silver);border:1px solid var(--line)}
.ba-tag-after{right:12px;background:var(--accent-grad);color:#0e0f12}
.ba-range{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:5;
}
.ba-handle{
  position:absolute;top:50%;left:50%;z-index:4;
  width:42px;height:42px;border-radius:50%;
  transform:translate(-50%,-50%);
  background:var(--silver);display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.5);pointer-events:none;
}

/* Why grid */
.why-grid{display:grid;grid-template-columns:1fr;gap:16px}
.why-item{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;
}
.why-item p{color:var(--muted);margin:0}

/* About */
.about-wrap{display:grid;grid-template-columns:1fr;gap:28px;align-items:center}
.about-copy p{color:var(--muted)}
.about-facts{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.about-facts li{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:14px 12px;text-align:center;
}
.about-facts strong{display:block;font-size:1.05rem;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.about-facts span{font-size:.74rem;color:var(--muted-2)}
.about-art{display:flex;justify-content:center}
.about-tile{
  width:100%;max-width:420px;aspect-ratio:4/3;border-radius:var(--radius);
  border:1px solid var(--line);box-shadow:var(--shadow);position:relative;overflow:hidden;
  background:
    radial-gradient(500px 200px at 50% 0%, rgba(207,216,230,.25), transparent 60%),
    var(--gloss);
}
.about-tile::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(4px 4px at 25% 35%, rgba(159,180,216,.9), transparent),
    radial-gradient(3px 3px at 65% 60%, rgba(91,140,255,.85), transparent),
    radial-gradient(3px 3px at 80% 30%, rgba(207,216,230,.9), transparent),
    radial-gradient(4px 4px at 40% 75%, rgba(159,180,216,.8), transparent),
    linear-gradient(105deg, transparent 38%, rgba(207,216,230,.16) 50%, transparent 64%);
}

/* Reviews */
.rev-grid{display:grid;grid-template-columns:1fr;gap:16px}
.rev-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;
}
.stars{color:#ffd36b;font-size:1.05rem;letter-spacing:2px;margin-bottom:8px}
.rev-theme{font-weight:800;margin:0 0 4px}
.rev-note{color:var(--muted);margin:0;font-size:.95rem}
.rev-disclaimer{color:var(--muted-2);font-size:.82rem;margin-top:18px;max-width:62ch}

/* Service area */
.area-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:10px}
.area-list li{
  border:1px solid var(--line);background:rgba(207,216,230,.05);
  padding:9px 15px;border-radius:99px;font-weight:700;font-size:.92rem;
}
.area-note{color:var(--muted);font-size:.95rem}

/* Contact */
.contact-wrap{display:grid;grid-template-columns:1fr;gap:28px}
.contact-copy p{color:var(--muted)}
.contact-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}
.contact-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.contact-list a{color:var(--silver);font-weight:700;text-decoration:none}
.contact-list a:hover{text-decoration:underline}
.ci{display:inline-block;min-width:48px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2);font-weight:800}
.contact-social{gap:14px}
.contact-social a{font-size:.92rem}

.quote-form{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow);
}
.field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}
.field label{font-weight:700;font-size:.86rem;color:var(--muted)}
.field input,.field select,.field textarea{
  background:var(--bg);border:1px solid var(--line);border-radius:10px;
  color:var(--ink);padding:12px 13px;font:inherit;min-height:var(--tap);width:100%;
}
.field textarea{min-height:90px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}
.form-status{margin:0 0 6px;font-weight:700;font-size:.92rem;color:var(--steel)}
.form-status.error{color:#ff8a8a}
.form-status.ok{color:#7fe0a8}
.form-fallback{font-size:.85rem;color:var(--muted-2);margin:12px 0 0;text-align:center}
.form-fallback a{color:var(--silver);font-weight:700}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:34px 0 96px;background:var(--bg-2)}
.footer-brand{font-weight:850;font-size:1.2rem;margin:0 0 6px;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.footer-meta{color:var(--muted);font-size:.9rem;margin:0 0 6px}
.footer-fine{color:var(--muted-2);font-size:.8rem;margin:0}

/* Sticky mobile CTA */
.sticky-cta{
  position:fixed;left:16px;right:16px;bottom:14px;z-index:80;
  text-align:center;text-decoration:none;
  background:var(--accent-grad);color:#0e0f12;font-weight:850;
  min-height:var(--tap);display:flex;align-items:center;justify-content:center;
  border-radius:14px;box-shadow:0 14px 34px rgba(91,140,255,.4);
}

/* Reveal-on-scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1 !important;transform:none !important;transition:none}
  .floor-gloss{transition:none;clip-path:inset(0 0 0 0)}
  .floor-gloss.revealed .flake{animation:none;opacity:.6}
  .ba-after::after,.floor-gloss::before{display:none}
}

/* ---- Responsive ---- */
@media (min-width:680px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(3,1fr)}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .rev-grid{grid-template-columns:repeat(3,1fr)}
  .contact-wrap{grid-template-columns:1fr 1fr}
  .about-wrap{grid-template-columns:1.1fr .9fr}
}
@media (min-width:900px){
  .main-nav{display:flex}
  .sticky-cta{display:none}
  .cards{grid-template-columns:repeat(3,1fr)}
  .hero-inner{padding-top:96px}
  .hero{padding-bottom:90px}
  .section{padding:84px 0}
}
