/* ============================================================
   SERVICES — EpoxyOn (engineering). 1:1 with joSme. Fluid / rem.
   Deep page; light bands via data-site="materials".
   ============================================================ */

/* Page hero (dark image) */
.esv-hero{ min-height:23.75rem; display:flex; flex-direction:column; justify-content:flex-end; background-size:cover; background-position:center; }
.esv-hero-body{ display:flex; flex-direction:column; gap:0.75rem; padding-block:0 2.875rem; max-width:51rem; }
.esv-crumb{ font-family:var(--font-display); font-weight:700; font-size:0.719rem; letter-spacing:.1em; color:#B9C2B0; margin:0; }
.esv-title{ font-family:var(--font-display); font-weight:800; font-size:2.875rem; letter-spacing:-.011em; line-height:1.05; color:#fff; margin:0; }
.esv-sub{ font-size:0.9375rem; line-height:1.5; color:#D7DDD0; max-width:35rem; margin:0; }

/* Key stats (dark) */
.esv-stats{ display:flex; align-items:center; gap:2.75rem; padding-block:2.25rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.esv-stat{ flex:1 1 0; display:flex; flex-direction:column; gap:0.375rem; }
.esv-stat-v{ font-family:var(--font-display); font-weight:800; font-size:1.75rem; letter-spacing:-.01em; color:var(--text-primary); }
.esv-stat-l{ font-family:var(--font-display); font-weight:700; font-size:0.656rem; letter-spacing:.09em; color:var(--text-secondary); }
.esv-stat-sep{ flex:none; align-self:center; width:1px; height:3.25rem; background:var(--line); }

/* shared header */
.esv-hdr{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.625rem; }
.esv-h2{ font-family:var(--font-display); font-weight:800; font-size:1.375rem; color:var(--text-primary); margin:0; }
.esv-hdr-c{ font-family:var(--font-display); font-weight:700; font-size:0.75rem; letter-spacing:.08em; color:var(--text-secondary); white-space:nowrap; }

/* Services list (light band) */
.esv-list{ background:var(--bg); }
.esv-list .wrap{ padding-block:3.5rem 4rem; }
.esv-rows{ display:flex; flex-direction:column; }
.esv-row{ display:flex; align-items:center; gap:1.75rem; padding-block:1.375rem; border-bottom:1px solid var(--line); text-decoration:none; }
.esv-row:last-child{ border-bottom:0; }
.esv-no{ flex:0 0 2.125rem; font-family:var(--font-display); font-weight:800; font-size:0.813rem; letter-spacing:.15em; color:var(--text-secondary); }
.esv-tc{ flex:1 1 0; display:flex; flex-direction:column; gap:0.4375rem; }
.esv-nr{ display:flex; align-items:center; gap:0.875rem; }
.esv-n{ font-family:var(--font-display); font-weight:800; font-size:1.25rem; letter-spacing:-.01em; color:var(--text-primary); }
.esv-c{ font-family:var(--font-display); font-weight:700; font-size:0.688rem; letter-spacing:.09em; color:var(--text-secondary); }
.esv-d{ font-size:0.844rem; line-height:1.55; color:var(--text-secondary); }
.esv-m{ font-family:var(--font-display); font-weight:700; font-size:0.719rem; letter-spacing:.04em; color:var(--text-primary); }
.esv-lk{ font-family:var(--font-display); font-weight:700; font-size:0.719rem; letter-spacing:.07em; color:var(--text-primary); white-space:nowrap; }
.esv-th{ flex:none; width:9.375rem; height:6.875rem; background-size:cover; background-position:center; border-radius:0.25rem; }
.esv-row:hover .esv-n, .esv-row:hover .esv-lk{ color:var(--brand); }

/* Specialist capabilities (dark surface) */
.esv-spec{ background:var(--surface); }
.esv-spec .wrap{ padding-block:3.25rem; }
.esv-spec-grid{ display:grid; grid-template-columns:repeat(2,1fr); column-gap:2.75rem; row-gap:1.5rem; }
.esv-spec-item{ display:flex; gap:0.875rem; align-items:flex-start; }
.esv-spec-ic{ flex:none; width:2.125rem; height:2.125rem; color:var(--text-primary); }
.esv-spec-tc{ display:flex; flex-direction:column; gap:0.3125rem; }
.esv-spec-h{ font-family:var(--font-display); font-weight:800; font-size:0.9375rem; color:var(--text-primary); }
.esv-spec-d{ font-size:0.813rem; line-height:1.5; color:var(--text-secondary); }

/* Cure band (light) */
.esv-cure{ background:var(--bg); }
.esv-cure-inner{ display:flex; flex-direction:column; gap:0.875rem; padding-block:2.5rem; }
.esv-cure-t{ font-family:var(--font-display); font-weight:700; font-size:0.719rem; letter-spacing:.12em; color:var(--text-secondary); }
.esv-cure-steps{ display:flex; align-items:center; justify-content:space-between; gap:0.5rem; }
.esv-cure-step{ display:flex; flex-direction:column; gap:0.1875rem; }
.esv-cure-v{ font-family:var(--font-display); font-weight:800; font-size:1.25rem; color:var(--text-primary); }
.esv-cure-l{ font-family:var(--font-display); font-weight:700; font-size:0.656rem; letter-spacing:.09em; color:var(--text-secondary); }
.esv-cure-arrow{ flex:none; width:1rem; height:1rem; color:var(--text-secondary); }

/* CTA (fixed dark) */
.esv-cta{ display:flex; flex-direction:column; align-items:center; gap:1.125rem; background:#171B17; padding:3.75rem 3rem; text-align:center; }
.esv-cta-eyebrow{ font-family:var(--font-display); font-weight:700; font-size:0.75rem; letter-spacing:.1em; color:rgba(255,255,255,.65); margin:0; }
.esv-cta-h{ font-family:var(--font-display); font-weight:800; font-size:1.875rem; color:#fff; max-width:44rem; margin:0; }
.esv-cta-btn{ margin-top:0.5rem; }

/* Responsive */
@media (max-width:1000px){
  .esv-title{ font-size:2.25rem; }
  .esv-spec-grid{ grid-template-columns:1fr; }
  .esv-cure-steps{ flex-wrap:wrap; gap:1rem 0.5rem; }
}
@media (max-width:820px){
  .esv-th{ display:none; }
  .esv-row{ flex-wrap:wrap; gap:0.75rem 1rem; }
  .esv-stats{ flex-wrap:wrap; gap:1.5rem; }
  .esv-stat-sep{ display:none; }
  .esv-stat{ flex:1 1 40%; }
}
@media (max-width:600px){
  .esv-hdr{ flex-direction:column; align-items:flex-start; gap:0.375rem; }
  .esv-hdr-c{ white-space:normal; }
}
