/* ==========================================================
   Sub-page template
   The hydrated shell (.sub-hero / .sub-features / .feat-card) and the inline
   about-content pages share these components in two visual contexts:
   - Dark, glassy treatment via the `subpage-dark` body class (service detail
     pages get it in site.js; the About content pages set it in markup).
   - The lighter base treatment below, used by case-study and contact pages.
   ========================================================== */

/* ---- Dark top nav (used only on sub-pages) ---- */
.site-nav.sub{
  background:#001a28;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.site-nav.sub .logo img{ filter: brightness(0) invert(1) }
.site-nav.sub ul a{ color:#E6F3FE }
.site-nav.sub ul a:hover{ background:rgba(255,255,255,.06); color:#9cfac7 }
.site-nav.sub ul a.active{ color:#008afc }
.site-nav.sub .cta{
  background:#008afc; color:#fff !important;
}
.site-nav.sub .burger{ border-color:rgba(255,255,255,.2) }
.site-nav.sub .burger svg{ color:#fff }

/* ---- Sub hero (base / light context) ---- */
.sub-hero{
  padding:60px 0 40px;
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(230,243,254,.82) 0%, rgba(246,249,252,.94) 74%, rgba(246,249,252,0) 100%);
}
.sub-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(78% 112% at 50% 0%, rgba(0,138,252,.04) 0%, transparent 62%),
    var(--hero-network-light) center top / 720px 480px repeat;
  opacity:.44;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.72) 68%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.72) 68%, transparent 100%);
}
.sub-hero .container{
  position:relative;
  z-index:1;
}
.sub-hero .crumbs{
  font-family:var(--mono); font-size:12px; letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:18px;
}
.sub-hero .crumbs a{ color:var(--body); text-decoration:none }
.sub-hero .crumbs a:hover{ color:var(--vivid-azure) }
.sub-hero .crumbs span{ margin:0 8px; opacity:.5 }
.sub-hero h1{
  font-size:clamp(38px, 4.6vw, 60px);
  color:var(--darker-azure);
  margin:0 0 16px;
  max-width:18ch;
}
.sub-hero .lede{
  font-size:clamp(16px, 1.2vw, 18px); color:var(--body);
  max-width:60ch; margin:0 0 28px;
}
.sub-hero .ctas{ display:flex; gap:12px; flex-wrap:wrap }

/* ---- Portal solutions device showcase ---- */
.portal-device-showcase{
  position:relative;
  overflow:hidden;
  padding:42px 0 22px;
  background:none;
  border:0;
}
.portal-device-showcase::before,
.portal-device-showcase::after{
  display:none;
}
.portal-device-showcase .container{
  position:relative;
  z-index:1;
}
.portal-device-copy{
  display:grid;
  justify-items:center;
  max-width:860px;
  margin:0 auto;
  text-align:center;
}
.portal-device-copy h2{
  margin:0 0 16px;
  color:var(--darker-azure);
  font-size:58px;
  line-height:1.05;
  letter-spacing:0;
}
.portal-device-copy p{
  max-width:760px;
  margin:0 auto;
  color:rgba(11,34,51,.78);
  font-size:21px;
  line-height:1.55;
}
.portal-device-stage{
  position:relative;
  max-width:1060px;
  margin:42px auto 0;
  min-height:550px;
}
.portal-device{
  position:relative;
  margin:0;
}
.portal-device--laptop{
  width:min(100%, 960px);
  aspect-ratio:1260 / 756;
  z-index:1;
}
.portal-device--phone{
  position:absolute;
  right:5%;
  bottom:34px;
  width:185px;
  aspect-ratio:147 / 304;
  filter:drop-shadow(0 18px 24px rgba(0,42,64,.28));
  z-index:5;
}
.portal-device-screen{
  position:absolute;
  overflow:hidden;
  background:#eef3f7;
  box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;
}
.portal-device--laptop .portal-device-screen{
  top:9.35%;
  left:13.55%;
  width:72.9%;
  height:75.25%;
  border-radius:0;
  z-index:1;
}
.portal-device--phone .portal-device-screen{
  top:1.3%;
  left:4.76%;
  width:91.16%;
  height:97.4%;
  border-radius:0;
  background:#fff;
  z-index:1;
}
.portal-device-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  z-index:2;
}
.portal-device--phone .portal-device-frame{
  z-index:3;
}
.portal-device-slide{
  position:absolute;
  inset:-3px;
  width:calc(100% + 6px);
  height:calc(100% + 6px);
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:center center;
  opacity:0;
  transform:translateX(100%);
  transition:transform .7s cubic-bezier(.22, 1, .36, 1), opacity .28s ease;
  will-change:transform;
}
.portal-device--laptop .portal-device-slide{
  background:#eef3f7;
}
.portal-device--phone .portal-device-slide{
  inset:0;
  width:100%;
  height:100%;
  object-fit:fill;
  object-position:center center;
  background:#fff;
}
.portal-device-slide.is-active{
  opacity:1;
  transform:translateX(0);
  z-index:2;
}
.portal-device-slide.is-exiting{
  opacity:1;
  transform:translateX(-100%);
  z-index:1;
}

@media (max-width:980px){
  .portal-device-copy h2{ font-size:44px; }
  .portal-device-copy p{ font-size:18px; }
  .portal-device-stage{
    min-height:0;
    padding-bottom:18px;
  }
  .portal-device--phone{
    right:0;
    bottom:7%;
    width:22%;
    min-width:160px;
  }
}
@media (max-width:720px){
  .portal-device-showcase{
    padding:36px 0 22px;
  }
  .portal-device-copy h2{
    font-size:34px;
    line-height:1.12;
  }
  .portal-device-copy p{
    font-size:16px;
  }
  .portal-device-stage{
    margin-top:30px;
    padding-bottom:0;
  }
  .portal-device--laptop{
    width:100%;
  }
  .portal-device--phone{
    right:3%;
    bottom:7%;
    width:26%;
    min-width:92px;
    max-width:104px;
  }
}
@media (max-width:500px){
  .portal-device-stage{
    margin-top:26px;
  }
  .portal-device--phone{
    right:2%;
    bottom:5%;
    width:26%;
    min-width:92px;
  }
}
@media (prefers-reduced-motion: reduce){
  .portal-device-slide{
    transition:none;
    transform:none;
    opacity:0;
  }
  .portal-device-slide.is-active{
    opacity:1;
  }
}

/* ---- Feature section (base / light context) ---- */
.sub-features{
  padding:40px 0 60px;
}
.sub-features .label{
  font-family:var(--display); font-weight:600;
  color:var(--darker-azure); font-size:17px;
  margin:0 0 20px;
}
.sub-features .grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:24px;
}
@media (max-width:760px){ .sub-features .grid{ grid-template-columns:1fr } }

.feat-card{
  background:rgba(120,194,255,.18);
  border:1px solid rgba(255,255,255,.42);
  border-radius:14px;
  padding:26px 26px 22px;
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
  box-shadow:0 1px 0 rgba(255,255,255,.28) inset, 0 18px 36px -20px rgba(0,42,64,.22);
  transition: transform .22s, box-shadow .22s, border-color .22s, background .22s;
  position:relative;
  overflow:hidden;
  color:var(--darker-azure);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .feat-card{ background:#fff; border-color:var(--line); }
}
.feat-card > *{ position:relative; z-index:1 }
.feat-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18) 0%, rgba(255,255,255,.05) 42%, rgba(255,255,255,0) 100%),
    radial-gradient(80% 55% at 0% 0%, rgba(120,194,255,.16), transparent 70%);
}
.feat-card:hover{
  transform:translateY(-3px);
  border-color:var(--vivid-azure);
  background:rgba(120,194,255,.24);
  box-shadow:0 1px 0 rgba(255,255,255,.32) inset, 0 24px 44px -20px rgba(0,42,64,.28);
}
.feat-card .head{
  display:flex; align-items:center; gap:12px;
  margin-bottom:12px;
}
.feat-card .ic{
  width:48px; height:48px; border-radius:12px;
  background:rgba(0,42,64,.08);
  color:var(--darker-azure);
  border:1px solid rgba(0,42,64,.14);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
body[data-site-section="cybersecurity"] .feat-card .ic img,
body[data-site-section="custom-development"] .feat-card .ic img,
body[data-site-section="tribal-services"] .feat-card .ic img,
body[data-site-section="public-safety"] .feat-card .ic img{
  width:26px;
  height:26px;
  display:block;
  object-fit:contain;
  filter:brightness(0) saturate(100%) invert(36%) sepia(98%) saturate(3107%) hue-rotate(196deg) brightness(101%) contrast(101%);
}
.feat-card h3{
  font-size:19px; color:var(--darker-azure); margin:0;
  letter-spacing:-0.01em;
}
.feat-card p{
  color:var(--body); font-size:14.5px; margin:0;
  line-height:1.6;
}

/* ---- Bottom dark CTA strip (hidden by default; opted-in per page) ---- */
.sub-cta{
  display:none;
  background:
    linear-gradient(100deg, rgba(0,26,40,.9) 0%, rgba(0,42,64,.85) 50%, rgba(0,79,122,.75) 100%),
    url("../public/DBWebBackgrounds/bg-dark.png") center center / cover no-repeat,
    #002a40;
  color:#fff;
  padding:44px 0;
  text-align:center;
  margin-top:60px;
}
.sub-cta p{
  max-width:60ch; margin:0 auto 20px;
  font-size:17px; line-height:1.55; color:#E6F3FE;
}
.sub-cta .btn{
  background:rgba(0,0,0,.35);
  color:#fff;
  border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(6px);
}
.sub-cta .btn:hover{ background:rgba(0,138,252,.3); border-color:#9cfac7 }

.sub-page-wrap{ position:relative }
.sub-page-wrap > *{ position:relative; z-index:1 }

/* ---- Shared bg-waves detail style (promoted from Assessments & Pentesting) ---- */
body[data-page="assessments-pentesting"] .sub-hero h1{ max-width:none; white-space:nowrap; }
@media (max-width:760px){
  body[data-page="assessments-pentesting"] .sub-hero h1{ white-space:normal; }
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero h1,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-features .label{
  color:var(--darker-azure);
  text-shadow:0 1px 18px rgba(255,255,255,.46);
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .lede{
  color:var(--body);
  text-shadow:0 1px 16px rgba(255,255,255,.42);
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .crumbs{
  color:rgba(0,42,64,.62);
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .crumbs a{ color:var(--darker-azure); }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .crumbs a:hover{ color:#008afc; }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .btn.dark,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn.dark{ display:inline-flex; align-items:center; gap:8px; transition:background .2s, color .18s, transform .18s, border-color .18s; }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .btn.dark .btn-arrow,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn.dark .btn-arrow{ flex-shrink:0; transition:transform .18s; }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .btn.dark:hover{ color:#9cfac7; transform:translateY(-1px); border-color:#008afc; }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-hero .btn.dark:hover .btn-arrow,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn.dark:hover .btn-arrow{ animation:cyber-arrow-bounce-right .62s cubic-bezier(.2,.88,.3,1); }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta{ display:block; background:none; padding:0 0 60px; }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .sub-cta-card,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta > .container:not(:has(.sub-cta-card)){
  background:
    linear-gradient(100deg, rgba(0,52,80,.58) 0%, rgba(0,72,110,.5) 50%, rgba(0,104,160,.42) 100%),
    rgba(0,64,95,.32);
  backdrop-filter:blur(12px) saturate(135%);
  -webkit-backdrop-filter:blur(12px) saturate(135%);
  border:1px solid rgba(255,255,255,.14);
  border-radius:18px;
  padding:48px 40px;
  box-shadow:0 28px 60px -30px rgba(0,42,64,.45);
  transition:transform .22s, box-shadow .22s, border-color .22s;
  position:relative;
  overflow:hidden;
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .sub-cta-card:hover,
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta > .container:not(:has(.sub-cta-card)):hover{
  transform:translateY(-4px);
  border-color:rgba(0,138,252,.45);
  box-shadow:0 1px 0 rgba(255,255,255,.12) inset, 0 34px 70px -30px rgba(0,42,64,.5);
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta h2{ color:#fff; margin:0 0 12px; font-size:clamp(26px,3vw,34px); }
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn{
  background:var(--darker-azure); color:#fff;
  border:1px solid transparent;
  backdrop-filter:none; -webkit-backdrop-filter:none;
  transition:background .2s, color .18s, transform .18s, border-color .18s;
}
body.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn:hover{
  background:var(--dark-azure); color:#9cfac7; transform:translateY(-1px);
  border-color:#008afc; text-decoration:none;
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .sub-cta-card{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  column-gap:32px;
  row-gap:6px;
  text-align:left;
  padding:26px 34px;
  border-radius:12px;
  background:
    linear-gradient(100deg, rgba(0,52,80,.94) 0%, rgba(0,62,96,.9) 50%, rgba(0,79,122,.82) 100%),
    rgba(0,42,64,.86);
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-features{
  padding-bottom:0;
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta{
  margin-top:56px;
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta h2{
  grid-column:1;
  margin:0 0 6px;
  font-size:20px;
  line-height:1.2;
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta p{
  grid-column:1;
  max-width:64ch;
  margin:0;
  font-size:13.5px;
  line-height:1.45;
}
body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn{
  grid-column:2;
  grid-row:1 / span 2;
  justify-self:end;
  white-space:nowrap;
}
@media (max-width:760px){
  body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .sub-cta-card{
    grid-template-columns:1fr;
    row-gap:14px;
    padding:28px 24px;
  }
  body.subpage-dark:is([data-site-section="cybersecurity"], [data-site-section="custom-development"], [data-site-section="tribal-services"], [data-site-section="public-safety"])[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .sub-cta .btn{
    grid-column:1;
    grid-row:auto;
    justify-self:start;
  }
}

/* ---- Per-page background image (service detail + About content pages) ---- */
body[data-page-bg="bg-waves-6-gradient"]{
  background:
    url("../public/DBWebBackgrounds/bg-waves-6-gradient.png") top center / cover no-repeat fixed,
    #001a28;
}

/* ---- Legacy child-page footer image (excluded pages) ---- */
.site-footer::before{
  background: url("../public/DBWebBackgrounds/bg-dark.png") center center / cover no-repeat;
  filter: blur(20px);
  transform: scale(1.1);
  opacity: 0.8;
}

/* ==========================================================
   Dark sub-page context (body.subpage-dark)
   Deep, atmospheric background; light type; frosted-glass cards;
   translucent-green primary CTA. Matches the homepage system.
   Data-page backgrounds opt out of the generic dark background.
   ========================================================== */
body.subpage-dark:not([data-page-bg]){
  background:
    url("../public/DBWebBackgrounds/bg-dark.png") top center / cover no-repeat fixed,
    #001a28;
}

/* Hero sits directly on the dark page background */
.subpage-dark .sub-hero{ background:transparent; }
.subpage-dark .sub-hero::before{ display:none; }
.subpage-dark .sub-hero h1{ color:#fff; }
.subpage-dark .sub-hero .lede{ color:#AFCBDE; }
.subpage-dark .sub-hero .crumbs{ color:rgba(230,243,254,.55); }
.subpage-dark .sub-hero .crumbs a{ color:#E6F3FE; }
.subpage-dark .sub-hero .crumbs a:hover{ color:#9cfac7; }
.subpage-dark .sub-features .label{ color:#E6F3FE; }

/* Primary CTA -> translucent green on dark-only pages (bg-waves detail pages keep the assessment treatment) */
.subpage-dark:not([data-page-bg]) .sub-hero .ctas .btn{
  background:rgba(156,250,199,.18);
  color:#9cfac7;
  border:0.5px solid transparent;
  box-shadow:none;
}
.subpage-dark:not([data-page-bg]) .sub-hero .ctas .btn:hover{
  background:rgba(156,250,199,.28);
  border-color:#9cfac7;
  text-decoration:none;
}

/* Feature cards -> dark frosted-glass panels */
.subpage-dark .feat-card{
  background:var(--glass-fill-panel);
  border:1px solid var(--glass-border-panel);
  box-shadow:var(--glass-shadow-panel);
  backdrop-filter:blur(var(--glass-blur-md)) saturate(var(--glass-saturate));
  -webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(var(--glass-saturate));
  color:#E6F3FE;
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .subpage-dark .feat-card{ background:#062236; border-color:rgba(255,255,255,.14); }
}
.subpage-dark .feat-card::before{
  background:
    linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,0) 46%),
    radial-gradient(80% 70% at 50% 0%, rgba(0,138,252,.12), transparent 72%);
}
.subpage-dark .feat-card .ic{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  color:#9cfac7;
}
.subpage-dark .feat-card h3{ color:#fff; }
.subpage-dark .feat-card p{ color:#AFCBDE; }
.subpage-dark .feat-card:hover{
  transform:translateY(-3px);
  border-color:rgba(0,138,252,.3);
  background:var(--glass-fill-strong);
  box-shadow:var(--glass-shadow-strong);
}

/* Bg-waves detail pages -> white frosted-glass panels */
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card{
  background:linear-gradient(180deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.58) 100%);
  border-color:rgba(255,255,255,.58);
  box-shadow:0 1px 0 rgba(255,255,255,.72) inset, 0 24px 52px -28px rgba(0,42,64,.36);
  color:var(--darker-azure);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card{ background:#fff; border-color:rgba(0,138,252,.16); }
}
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card::before{
  background:
    linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 48%),
    radial-gradient(80% 70% at 0% 0%, rgba(0,138,252,.12), transparent 72%);
}
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card .ic{
  background:rgba(0,138,252,.08);
  border-color:rgba(0,138,252,.58);
  color:#008afc;
}
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card h3{ color:var(--darker-azure); }
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card p{ color:var(--body); }
.subpage-dark[data-page-bg="bg-waves-6-gradient"]:not(.case-studies-excluded):not(.contact-page) .feat-card:hover{
  border-color:rgba(0,138,252,.55);
  background:linear-gradient(180deg, rgba(255,255,255,.84) 0%, rgba(255,255,255,.64) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.78) inset, 0 28px 58px -28px rgba(0,42,64,.42);
}

/* Footer glow tuned for the dark pages */
.subpage-dark .site-footer::before{
  background:
    linear-gradient(0deg, rgba(0,138,252,.18), rgba(0,138,252,.18)),
    radial-gradient(55% 80% at 0% 0%, rgba(156,250,199,.08), transparent 60%),
    radial-gradient(48% 68% at 100% 0%, rgba(0,138,252,.18), transparent 60%);
  filter:none;
  transform:none;
  opacity:1;
}

/* ---- Mobile spacing + full-width tappable CTA ---- */
@media (max-width:560px){
  .sub-hero{ padding:44px 0 28px; }
  .sub-features{ padding:28px 0 48px; }
  .subpage-dark .sub-hero .ctas{ flex-direction:column; align-items:stretch; }
  .subpage-dark .sub-hero .ctas .btn{ width:100%; justify-content:center; }
}
@media (max-width:480px){
  .subpage-dark .feat-card{ padding:20px 20px 18px; }
}
