/* Site-wide finish: themed scrollbars, glowing footer, dark-theme grid canvas */

/* —— Scrollbars —— */
:root {
  --sb-thumb: rgba(26, 26, 26, 0.22);
  --sb-thumb-hover: var(--brand);
  --sb-track: transparent;
}
[data-theme="dark"] {
  color-scheme: dark;
  --sb-thumb: rgba(255, 255, 255, 0.16);
  --sb-thumb-hover: #EE1F25;
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--sb-track); }
::-webkit-scrollbar-thumb {
  background: var(--sb-thumb);
  border: 3px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover { background-color: var(--sb-thumb-hover); }
::-webkit-scrollbar-corner { background: transparent; }
html::-webkit-scrollbar-thumb {
  background-image: linear-gradient(180deg, #ff5a3c, #EE1F25 60%, #b3141a);
  background-color: transparent;
}
@supports not selector(::-webkit-scrollbar) {
  * { scrollbar-width: thin; scrollbar-color: var(--sb-thumb) var(--sb-track); }
  html { scrollbar-color: #EE1F25 var(--sb-track); }
}

/* —— Dark theme: the whole page sits on the hero's grid + glow canvas —— */
[data-theme="dark"] {
  --bg: #0B0D12;
  --bg-accent: #11141B;
  --surface: #151821;
  --border: #262B36;
}
html[data-theme="dark"] { background: #0B0D12; }
html[data-theme="dark"] body::before,
html[data-theme="dark"] body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
html[data-theme="dark"] body::before {
  background:
    radial-gradient(42rem 42rem at 88% -8%, rgba(79, 70, 229, 0.30), transparent 62%),
    radial-gradient(38rem 38rem at -6% 55%, rgba(14, 165, 164, 0.20), transparent 62%),
    radial-gradient(34rem 34rem at 70% 112%, rgba(219, 39, 119, 0.16), transparent 62%);
  animation: sitefx-drift 24s ease-in-out infinite alternate;
}
html[data-theme="dark"] body::after {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse at 50% 40%, #000 35%, transparent 85%);
}
@keyframes sitefx-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-2.5rem, 1.5rem, 0) scale(1.06); }
}
[data-theme="dark"] .section--muted,
[data-theme="dark"] .hero-slider { background: transparent; }
[data-theme="dark"] .site-header {
  background: rgba(11, 13, 18, 0.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* —— Footer —— */
.dk-footer {
  position: relative;
  isolation: isolate;
  margin-top: 4rem;
  padding: clamp(4.5rem, 8vw, 6.5rem) 0 0;
  border-top: 0;
  background:
    radial-gradient(60% 260px at 50% 0%, rgba(238, 31, 37, 0.10), transparent 70%),
    var(--surface);
  overflow: hidden;
}
.dk-footer__fx { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.dk-footer__mesh {
  position: absolute;
  inset: 0 0 auto;
  height: 360px;
  background-image:
    linear-gradient(rgba(15, 23, 42, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.05) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(ellipse 60% 100% at 50% 0%, #000 20%, transparent 75%);
}
.dk-footer__curve {
  position: absolute;
  inset: 0 0 auto;
  width: 100%;
  height: clamp(60px, 7vw, 110px);
  overflow: visible;
}
.dk-footer__cap { fill: var(--bg); }
.dk-footer__line,
.dk-footer__halo,
.dk-footer__spark { fill: none; vector-effect: non-scaling-stroke; }
.dk-footer__line { stroke: url(#ftCurve); stroke-width: 2.5; }
.dk-footer__halo { stroke: url(#ftCurve); stroke-width: 14; opacity: 0.28; filter: blur(6px); }
.dk-footer__spark {
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 90 1600;
  filter: drop-shadow(0 0 6px #ff6b4a) drop-shadow(0 0 14px #EE1F25);
  animation: ft-spark 6s linear infinite;
}
@keyframes ft-spark {
  from { stroke-dashoffset: 1690; }
  to { stroke-dashoffset: 0; }
}
.dk-footer__orb {
  position: absolute;
  top: -9rem;
  left: 50%;
  width: min(46rem, 90vw);
  height: 16rem;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(238, 31, 37, 0.22), transparent);
  filter: blur(24px);
  animation: ft-breathe 6s ease-in-out infinite;
}
@keyframes ft-breathe {
  0%, 100% { opacity: 0.75; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.06); }
}
.dk-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  text-shadow: 0 0 22px rgba(238, 31, 37, 0.25);
}
.dk-footer__services {
  gap: 1rem;
  padding: 1.35rem 0;
  border-block-color: color-mix(in srgb, var(--border) 80%, transparent);
}
.dk-footer__svc-icon {
  position: relative;
  color: #fff;
  background: linear-gradient(135deg, #ff5a3c, #EE1F25 55%, #b3141a);
  box-shadow: 0 12px 26px -12px rgba(238, 31, 37, 0.85), inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}
.dk-footer__svc-icon::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1px dashed rgba(238, 31, 37, 0.45);
  animation: pb-spin 14s linear infinite;
}
.dk-footer__services li:hover .dk-footer__svc-icon { box-shadow: 0 16px 32px -10px rgba(238, 31, 37, 1); }
.dk-footer__heading { position: relative; padding-inline-start: 0.75rem; }
.dk-footer__heading::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.25em;
  bottom: 0.25em;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, #ff5a3c, #EE1F25);
  box-shadow: 0 0 10px rgba(238, 31, 37, 0.7);
}
.dk-footer__links a { transition: color 0.15s, padding 0.2s; }
.dk-footer__links a:hover { padding-inline-start: 0.3rem; }
.dk-footer__news button { background: linear-gradient(135deg, #ff5a3c, #EE1F25); box-shadow: 0 10px 22px -12px rgba(238, 31, 37, 0.9); }
.dk-footer__news input:valid + button,
.dk-footer__news button:hover { background: linear-gradient(135deg, #EE1F25, #b3141a); }
.dk-footer__about { border-top-color: color-mix(in srgb, var(--border) 80%, transparent); }

/* bottom red curved band */
.dk-footer__bottom {
  position: relative;
  isolation: isolate;
  margin: 2rem calc(50% - 50vw) 0;
  padding: 2.4rem 1rem 1.2rem;
  border-top: 0;
  color: rgba(255, 255, 255, 0.9);
}
.dk-footer__bottom::before {
  content: "";
  position: absolute;
  inset: 0 -10%;
  z-index: -1;
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  background:
    radial-gradient(40% 120% at 50% 0%, rgba(255, 140, 100, 0.55), transparent 70%),
    linear-gradient(90deg, #7f1d1d, #c4181e 25%, #EE1F25 50%, #c4181e 75%, #7f1d1d);
  box-shadow: 0 -12px 40px -12px rgba(238, 31, 37, 0.65);
}
.dk-footer__bottom::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(180deg, transparent, #000 60%);
}
.dk-footer__bottom a { color: #fff; }

[data-theme="dark"] .dk-footer {
  background:
    radial-gradient(60% 280px at 50% 0%, rgba(238, 31, 37, 0.16), transparent 70%),
    linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.35));
}
[data-theme="dark"] .dk-footer__cap { fill: transparent; }
[data-theme="dark"] .dk-footer__mesh { display: none; }
[data-theme="dark"] .dk-footer__news input { background: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .dk-badge { background: rgba(255, 255, 255, 0.92); }

@keyframes pb-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  html[data-theme="dark"] body::before,
  .dk-footer__spark,
  .dk-footer__orb,
  .dk-footer__svc-icon::after { animation: none; }
}
