:root {
  --dms56-navy: #061827;
  --dms56-navy-soft: #0b2436;
  --dms56-yellow: #f5b400;
  --dms56-paper: #f6f5f1;
  --dms56-white: #fff;
  --dms56-ink: #14212b;
  --dms56-muted: #65717b;
  --dms56-border: #d9dde0;
  --dms56-radius: 8px;
  --dms56-shadow: 0 24px 70px rgba(5, 22, 35, .14);
}

.dms56-home,
.dms56-home * { box-sizing: border-box; }
.dms56-home { overflow: hidden; background: var(--dms56-paper); color: var(--dms56-ink); }
.dms56-home h1,
.dms56-home h2,
.dms56-home h3,
.dms56-home p { margin-top: 0; }
.dms56-home img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dms56-section { padding: 76px 0; }
.dms56-kicker { display: block; margin-bottom: 14px; color: var(--dms56-yellow); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.dms56-kicker--dark { color: #263747; }
.dms56-rule { display: block; width: 42px; height: 3px; margin: 18px 0 24px; background: var(--dms56-yellow); }

.dms56-hero {
  position: relative;
  min-height: 650px;
  background-color: var(--dms56-navy);
  background-image: linear-gradient(90deg, rgba(2, 15, 25, .96) 0%, rgba(2, 15, 25, .87) 30%, rgba(2, 15, 25, .28) 58%, rgba(2, 15, 25, .05) 100%), var(--dms56-hero);
  background-position: center;
  background-size: cover;
  color: #fff;
}
.dms56-hero__inner { display: flex; align-items: center; min-height: 650px; }
.dms56-hero__copy { width: min(600px, 52%); padding: 52px 0; }
.dms56-hero h1 { margin-bottom: 0; color: #fff; font-size: clamp(48px, 5.2vw, 78px); line-height: .98; letter-spacing: -.055em; }
.dms56-hero p { margin-bottom: 30px; color: rgba(255,255,255,.82); font-size: 18px; line-height: 1.65; }
.dms56-actions { display: flex; align-items: center; gap: 30px; }
.dms56-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 22px; padding: 0 24px; border: 1px solid transparent; border-radius: 3px; font-weight: 800; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.dms56-button:hover { transform: translateY(-2px); }
.dms56-button--yellow { background: var(--dms56-yellow); color: #111b23; }
.dms56-link { display: inline-flex; gap: 16px; align-items: center; font-weight: 700; text-decoration: none; }
.dms56-link--light { color: #fff; }

.dms56-trust { background: var(--dms56-navy); color: #fff; border-top: 1px solid rgba(255,255,255,.12); }
.dms56-trust__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.dms56-trust article { display: flex; gap: 18px; align-items: center; min-height: 104px; padding: 22px 28px; border-right: 1px solid rgba(255,255,255,.14); }
.dms56-trust article:first-child { border-left: 1px solid rgba(255,255,255,.14); }
.dms56-trust strong,
.dms56-trust small { display: block; }
.dms56-trust strong { margin-bottom: 4px; font-size: 15px; }
.dms56-trust small { color: rgba(255,255,255,.62); font-size: 12px; }
.dms56-icon { color: var(--dms56-yellow); font-size: 29px; line-height: 1; }

.dms56-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 34px; }
.dms56-heading h2 { margin: 0; color: var(--dms56-ink); font-size: clamp(32px, 3.4vw, 48px); letter-spacing: -.035em; }
.dms56-heading .dms56-rule { margin: 13px 0 0; }
.dms56-heading > a { color: var(--dms56-ink); font-size: 14px; font-weight: 800; text-decoration: none; }
.dms56-heading > a span { margin-left: 16px; color: var(--dms56-yellow); }

.dms56-products { background: var(--dms56-paper); }
.dms56-products__grid { display: grid; grid-template-columns: 1.55fr .95fr; grid-template-rows: repeat(2, minmax(250px, 1fr)); gap: 18px; }
.dms56-family { position: relative; display: grid; grid-template-columns: 1fr 48%; min-height: 250px; overflow: hidden; border: 1px solid var(--dms56-border); border-radius: var(--dms56-radius); background: #fff; }
.dms56-family--feature { grid-row: 1 / span 2; min-height: 518px; grid-template-columns: 44% 56%; }
.dms56-family__copy { position: relative; z-index: 2; padding: 28px 0 24px 28px; }
.dms56-family__copy > span { color: #d99400; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.dms56-family h3 { margin: 13px 0 14px; font-size: clamp(20px, 2vw, 31px); line-height: 1.08; letter-spacing: -.03em; }
.dms56-family p { color: var(--dms56-muted); font-size: 13px; line-height: 1.55; }
.dms56-family a { display: inline-flex; gap: 16px; margin-top: 10px; color: var(--dms56-ink); font-size: 12px; font-weight: 850; text-decoration: none; }
.dms56-family a span { color: var(--dms56-yellow); }
.dms56-family > img { object-fit: contain; padding: 22px 18px 14px 0; }
.dms56-family--feature > img { align-self: center; max-height: 440px; padding: 18px 18px 18px 0; }
.dms56-family ul { display: grid; gap: 14px; margin: 32px 0 24px; padding: 0; list-style: none; }
.dms56-family li { padding-left: 34px; color: var(--dms56-muted); font-size: 11px; line-height: 1.35; }
.dms56-family li::before { content: '◎'; position: absolute; margin-left: -28px; color: #7d8a93; font-size: 18px; }
.dms56-family li b { color: var(--dms56-ink); font-size: 12px; }

.dms56-engineering { background: var(--dms56-navy); color: #fff; }
.dms56-engineering__grid { display: grid; grid-template-columns: .78fr 1.6fr; gap: 54px; align-items: stretch; }
.dms56-engineering__copy { padding: 28px 0; }
.dms56-engineering h2 { margin-bottom: 20px; color: #fff; font-size: clamp(34px, 3.1vw, 49px); line-height: 1.05; letter-spacing: -.035em; }
.dms56-engineering p { color: rgba(255,255,255,.67); line-height: 1.65; }
.dms56-engineering ul { display: grid; gap: 13px; margin: 30px 0 0; padding: 0; list-style: none; }
.dms56-engineering li { position: relative; padding-left: 24px; color: rgba(255,255,255,.83); }
.dms56-engineering li::before { content: '✓'; position: absolute; left: 0; color: var(--dms56-yellow); font-weight: 900; }
.dms56-engineering__media { display: grid; grid-template-columns: 1.25fr .9fr; gap: 14px; min-height: 490px; }
.dms56-engineering__media > div { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.dms56-engineering__media img { border-radius: 5px; }

.dms56-solutions { background: #fff; }
.dms56-solutions__layout { display: grid; grid-template-columns: 1.85fr .75fr; gap: 30px; }
.dms56-solutions__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.dms56-solutions__cards a { display: block; overflow: hidden; border: 1px solid var(--dms56-border); border-radius: 5px; color: var(--dms56-ink); text-decoration: none; }
.dms56-solutions__cards figure { height: 260px; margin: 0 0 18px; overflow: hidden; }
.dms56-solutions__cards img { transition: transform .35s ease; }
.dms56-solutions__cards a:hover img { transform: scale(1.035); }
.dms56-solutions__cards strong,
.dms56-solutions__cards span { display: block; padding: 0 18px; }
.dms56-solutions__cards strong { margin-bottom: 6px; font-size: 17px; }
.dms56-solutions__cards span { min-height: 58px; color: var(--dms56-muted); font-size: 12px; line-height: 1.45; }
.dms56-solutions__list { display: grid; align-content: center; border-left: 1px solid var(--dms56-border); }
.dms56-solutions__list article { display: flex; gap: 17px; align-items: center; padding: 15px 0 15px 26px; }
.dms56-solutions__list b { width: 38px; color: #7c8790; font-size: 28px; text-align: center; }
.dms56-solutions__list strong,
.dms56-solutions__list small { display: block; }
.dms56-solutions__list strong { margin-bottom: 4px; font-size: 14px; }
.dms56-solutions__list small { color: var(--dms56-muted); font-size: 11px; }

.dms56-process { background: var(--dms56-navy); color: #fff; }
.dms56-process__grid { display: grid; grid-template-columns: 1.48fr .72fr; gap: 52px; align-items: stretch; }
.dms56-process h2 { margin: 0; color: #fff; font-size: 38px; letter-spacing: -.035em; }
.dms56-process ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 28px; margin: 32px 0 0; padding: 0; list-style: none; }
.dms56-process li { position: relative; min-height: 118px; padding-top: 8px; }
.dms56-process li:not(:nth-child(3n))::after { content: '⟶'; position: absolute; top: 10px; right: 0; transform: translateX(54%); color: rgba(255,255,255,.45); font-size: 28px; }
.dms56-process li b,
.dms56-process li strong,
.dms56-process li small { display: block; }
.dms56-process li b { margin-bottom: 12px; color: var(--dms56-yellow); font-size: 31px; }
.dms56-process li strong { margin-bottom: 8px; font-size: 14px; }
.dms56-process li small { max-width: 165px; color: rgba(255,255,255,.58); line-height: 1.45; }
.dms56-process__grid > img { min-height: 390px; border-radius: 6px; }

.dms56-service { background: #fff; }
.dms56-service__grid { display: grid; grid-template-columns: .85fr 1.1fr .78fr; gap: 34px; align-items: center; }
.dms56-service h2 { margin-bottom: 14px; font-size: clamp(32px, 3vw, 46px); letter-spacing: -.04em; }
.dms56-service p { color: var(--dms56-muted); line-height: 1.65; }
.dms56-service__map { height: auto !important; object-fit: contain !important; }
.dms56-service__technician { height: 285px !important; border-radius: 5px; }
.dms56-service__features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; width: 45%; margin-top: -54px; }
.dms56-service__features span { position: relative; padding-top: 50px; color: var(--dms56-ink); font-size: 11px; font-weight: 800; text-align: center; }
.dms56-service__features span::before { content: '⚙'; position: absolute; top: 12px; left: 50%; transform: translateX(-50%); color: #7d8992; font-size: 26px; }

.dms56-references { background: var(--dms56-navy); color: #fff; }
.dms56-heading--light h2,
.dms56-heading--light > a { color: #fff; }
.dms56-references__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.dms56-references__grid a { position: relative; display: block; min-width: 0; overflow: hidden; border: 1px solid rgba(245,180,0,.68); border-radius: 5px; color: #fff; text-decoration: none; }
.dms56-references__grid img { height: 205px; }
.dms56-references__grid span { position: absolute; right: 0; bottom: 0; left: 0; padding: 45px 14px 13px; background: linear-gradient(transparent, rgba(2,15,25,.92)); }
.dms56-references__grid strong,
.dms56-references__grid small { display: block; }
.dms56-references__grid strong { font-size: 13px; }
.dms56-references__grid small { margin-top: 3px; color: rgba(255,255,255,.68); font-size: 10px; }

@media (max-width: 1100px) {
  .dms56-products__grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .dms56-family--feature { grid-row: auto; grid-column: 1 / -1; min-height: 440px; }
  .dms56-engineering__grid,
  .dms56-process__grid { grid-template-columns: 1fr; }
  .dms56-solutions__layout { grid-template-columns: 1fr; }
  .dms56-solutions__list { grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--dms56-border); border-left: 0; }
  .dms56-service__grid { grid-template-columns: 1fr 1fr; }
  .dms56-service__copy { grid-column: 1 / -1; }
  .dms56-service__features { width: 100%; margin-top: 20px; }
  .dms56-references__grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 767px) {
  .dms56-section { padding: 54px 0; }
  .dms56-hero,
  .dms56-hero__inner { min-height: 610px; }
  .dms56-hero { background-image: linear-gradient(180deg, rgba(2,15,25,.64), rgba(2,15,25,.96) 74%), var(--dms56-hero); background-position: 66% center; }
  .dms56-hero__inner { align-items: flex-end; }
  .dms56-hero__copy { width: 100%; padding: 54px 0; }
  .dms56-hero h1 { font-size: 46px; }
  .dms56-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .dms56-trust__grid { grid-template-columns: 1fr 1fr; }
  .dms56-trust article { min-height: 100px; padding: 18px 12px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .dms56-heading { align-items: flex-start; flex-direction: column; }
  .dms56-products__grid,
  .dms56-engineering__media,
  .dms56-solutions__cards,
  .dms56-process ol,
  .dms56-service__grid,
  .dms56-references__grid { grid-template-columns: 1fr; }
  .dms56-family,
  .dms56-family--feature { grid-column: auto; grid-template-columns: 1fr; min-height: auto; }
  .dms56-family__copy { padding: 26px; }
  .dms56-family > img { height: 260px; padding: 0 22px 22px; }
  .dms56-family--feature > img { height: 340px; }
  .dms56-family ul { grid-template-columns: repeat(3, 1fr); }
  .dms56-engineering__media { min-height: 0; }
  .dms56-engineering__media > img { height: 310px; }
  .dms56-engineering__media > div { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .dms56-engineering__media > div img { height: 190px; }
  .dms56-solutions__cards figure { height: 235px; }
  .dms56-solutions__list { grid-template-columns: 1fr; }
  .dms56-process ol { gap: 22px; }
  .dms56-process li { min-height: auto; padding-left: 54px; }
  .dms56-process li b { position: absolute; top: 2px; left: 0; }
  .dms56-process li::after { display: none; }
  .dms56-process__grid > img { min-height: 300px; }
  .dms56-service__copy { grid-column: auto; }
  .dms56-service__technician { height: 280px !important; }
  .dms56-service__features { grid-template-columns: 1fr 1fr; }
  .dms56-references__grid { grid-template-columns: 1fr 1fr; }
  .dms56-references__grid img { height: 170px; }
}

@media (prefers-reduced-motion: reduce) {
  .dms56-home *, .dms56-home *::before, .dms56-home *::after { scroll-behavior: auto !important; transition: none !important; }
}
