/* ============================================================
   Home page specific styling
   ============================================================ */
.hero{
  position:relative;
  padding-top:calc(var(--header-h) + 64px);
  padding-bottom:90px;
  overflow:hidden;
  background:
    radial-gradient(ellipse 900px 520px at 78% 10%, rgba(28,92,140,.4), transparent 60%),
    linear-gradient(190deg, var(--navy) 0%, var(--ink) 78%);
}
.hero .container{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:40px;
}
.hero-copy .eyebrow{ margin-bottom:18px; }
.hero h1{ margin-bottom:22px; }
.hero h1 .accent{ color:var(--gold); }
.hero p.lede{ margin-bottom:34px; }
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }

.hero-stats{
  display:flex; gap:40px; margin-top:54px; flex-wrap:wrap;
}
.hero-stats div{ border-left:2px solid var(--gold); padding-left:14px; }
.hero-stats .num{ font-family:var(--font-display); font-weight:700; font-size:1.7rem; color:var(--white); display:block; }
.hero-stats .lbl{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; color:var(--text-dim); text-transform:uppercase; }

.hero-visual{ position:relative; display:flex; align-items:center; justify-content:center; }
.hero-visual .glow-block{
  position:absolute; width:420px; height:420px;
  background:radial-gradient(circle, rgba(246,185,29,.18), transparent 70%);
  filter:blur(4px);
}
.hero-visual .logo-wrap{
  position:relative;
  width:min(420px,80%);
  animation:rbd-float 5s ease-in-out infinite;
}
.hero-visual .logo-wrap img{ width:100%; filter:drop-shadow(0 30px 50px rgba(0,0,0,.55)); }
.hero-visual .bolt-trail{
  position:absolute; top:8%; right:-6%;
  width:130px;
}
.hero-visual .flame{
  position:absolute; bottom:6%; left:2%;
  width:90px;
  animation:rbd-flicker 1.6s ease-in-out infinite;
  transform-origin:top center;
}
@keyframes rbd-float{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-14px); }
}
@keyframes rbd-flicker{
  0%,100%{ opacity:.85; transform:scaleY(1) translateY(0); }
  50%{ opacity:1; transform:scaleY(1.08) translateY(2px); }
}

/* ---------- category teaser cards ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.cat-card{
  position:relative;
  aspect-ratio:3/4;
  background:linear-gradient(165deg, var(--blue) 0%, var(--navy) 100%);
  border:1px solid rgba(255,255,255,.08);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:22px;
  overflow:hidden;
  transition:transform .3s var(--ease), border-color .3s var(--ease);
}
.cat-card:hover{ transform:translateY(-6px); border-color:var(--gold); }
.cat-card .cat-icon{
  position:absolute; top:18px; left:18px; width:42px; height:42px; color:var(--gold); opacity:.9;
}
.cat-card .cat-icon svg{ width:100%; height:100%; }
.cat-card h3{ font-size:1.1rem; margin-bottom:6px; }
.cat-card p{ font-size:.84rem; margin:0; }
.cat-card::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(-32deg, rgba(255,255,255,.04) 0 2px, transparent 2px 26px);
  pointer-events:none;
}

/* ---------- services teaser ---------- */
.service-card{
  background:var(--navy-2); border:1px solid rgba(255,255,255,.07);
  padding:34px 28px;
  position:relative;
}
.service-card .num{
  font-family:var(--font-mono); color:var(--gold); font-size:.8rem; letter-spacing:.1em;
  display:block; margin-bottom:18px;
}
.service-card h3{ font-size:1.2rem; margin-bottom:12px; }
.service-card p{ font-size:.92rem; margin-bottom:0; }

/* ---------- process steps ---------- */
.process-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.process-step{ position:relative; padding:0 18px; text-align:left; }
.process-step:not(:first-child)::before{
  content:""; position:absolute; left:0; top:18px; width:1px; height:calc(100% - 36px);
  background:rgba(255,255,255,.12);
}
.process-step .step-no{
  font-family:var(--font-display); font-weight:700; color:var(--gold); font-size:1.4rem;
  display:block; margin-bottom:14px;
}
.process-step h3{ font-size:1rem; margin-bottom:8px; }
.process-step p{ font-size:.85rem; }

/* ---------- cta band ---------- */
.cta-band{
  background:
    linear-gradient(120deg, var(--blue) 0%, var(--navy) 60%);
  padding:70px 0;
  position:relative;
  overflow:hidden;
}
.cta-band::before{
  content:""; position:absolute; right:-4%; top:-30%;
  width:380px; height:6px; background:var(--gold); opacity:.25;
  transform:rotate(-30deg);
}
.cta-band .container{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.cta-band h2{ margin-bottom:10px; max-width:520px; }
.cta-band p{ color:var(--off-white); margin:0; }

@media (max-width: 980px){
  .hero .container{ grid-template-columns:1fr; }
  .hero-visual{ order:-1; margin-bottom:10px; }
  .cat-grid{ grid-template-columns:1fr 1fr; }
  .process-row{ grid-template-columns:1fr 1fr; row-gap:36px; }
  .process-step:nth-child(3)::before, .process-step:nth-child(1)::before{ display:none; }
}
@media (max-width: 600px){
  .cat-grid{ grid-template-columns:1fr; }
  .process-row{ grid-template-columns:1fr; }
  .process-step::before{ display:none; }
  .cta-band .container{ flex-direction:column; align-items:flex-start; }
}
