:root {
  --dvm-red: #a90f17;
  --dvm-red-dark: #8c0b12;
  --dvm-navy: #102131;
  --dvm-navy-soft: #1a3042;
  --dvm-ink: #162431;
  --dvm-blue-grey: #71808d;
  --dvm-surface: #f3f6f8;
  --dvm-line: #dfe5e9;
  --dvm-modern-shell: 1180px;
  --dvm-text: #444;
  --dvm-muted: #6c6c6c;
  --dvm-border: #e6e6e6;
  --dvm-shell: 900px;
  --dvm-header: 1000px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.dvm-site {
  margin: 0;
  color: var(--dvm-text);
  background: #fff;
  font-family: "Istok Web", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}

a { color: inherit; text-decoration-color: rgba(68, 68, 68, .55); text-underline-offset: .16em; }
a:hover, a:focus-visible { color: var(--dvm-red); }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 10px;
  left: 10px;
  padding: 10px 14px;
  background: #fff;
  color: #111;
  border: 2px solid var(--dvm-red);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.site-header { background: #fff; }

.header-shell {
  width: min(calc(100% - 40px), var(--dvm-header));
  min-height: 150px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}

.brand { display: block; }
.brand img { display: block; width: 100%; height: auto; }

.header-content { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.phone { align-self: flex-end; margin: 0 10px 16px 0; text-decoration: none; color: #222; }
.phone span { margin-right: 18px; }

.menu-toggle { display: none; }

.primary-nav ul { margin: 0; padding: 0; list-style: none; }
.nav-row { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.nav-row > li { position: relative; }
.nav-row a { display: block; padding: 10px 13px; text-decoration: none; white-space: nowrap; }
.nav-row-main > li:first-child > a { max-width: 240px; overflow: hidden; text-overflow: ellipsis; }
.nav-row a.is-active, .nav-row a:hover, .nav-row a:focus-visible { color: #fff; background: #616161; border-radius: 3px; }
.nav-row-secondary { margin-top: 2px !important; }
.nav-row-secondary a { padding-top: 3px; padding-bottom: 3px; }

.submenu {
  display: none;
  position: absolute;
  z-index: 50;
  top: 100%;
  left: 0;
  width: 320px;
  padding: 8px !important;
  background: #fff;
  border: 1px solid var(--dvm-border);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.submenu li + li { border-top: 1px solid #eee; }
.submenu a { white-space: normal; }
.has-submenu:hover > .submenu, .has-submenu:focus-within > .submenu { display: block; }
.nav-more .submenu { right: 0; left: auto; }
.nav-row-secondary .submenu a { padding: 10px 13px; }

.brand-accent, .footer-accent { height: 37px; background: var(--dvm-red); }

.hero {
  min-height: 616px;
  background-color: #444;
  background-image: linear-gradient(rgba(68,68,68,.5), rgba(68,68,68,.5)), url("images/hero.png");
  background-size: cover;
  background-position: center;
  color: #fff;
  display: flex;
  align-items: center;
}

.hero-content {
  width: min(calc(100% - 40px), 1090px);
  margin: 0 auto;
  padding: 80px 0;
}
.hero h1 { max-width: 570px; margin: 0 0 28px; color: #fff; font-size: clamp(2rem, 3vw, 2.5rem); font-weight: 400; line-height: 1.35; letter-spacing: .01em; }
.hero p { max-width: 500px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.05rem, 2vw, 1.45rem); line-height: 1.34; }

.content-shell { width: min(calc(100% - 40px), var(--dvm-shell)); margin: 0 auto; }
.content-section { padding: 38px 0 0; }
.content-section:last-child { padding-bottom: 48px; }
.content-section h2 { margin: 0 0 24px; color: var(--dvm-text); font-size: clamp(1.65rem, 3vw, 2rem); font-weight: 400; line-height: 1.35; }
.content-section h2 + h2 { margin-top: 42px; }
.content-section p { margin: 0 0 20px; }
.content-section ul { margin: 0 0 24px; padding-left: 38px; }

.intro-section { padding-top: 52px; }
.video-frame { position: relative; width: 100%; padding-top: 56.25%; margin: 0 0 36px; overflow: hidden; border-radius: 7px; background: #000; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.dash-list { padding-left: 0 !important; list-style: none; }
.dash-list li::before { content: "– "; }
.service-links { padding-left: 0 !important; list-style: none; }
.service-links li::before { content: "• "; }
.text-link { font-weight: 600; }

.button {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 9px 16px;
  color: #444;
  background: #e7e7e7;
  border-radius: 5px;
  text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.button:hover, .button:focus-visible { color: #fff; background: var(--dvm-red); }

.page-content { min-height: 55vh; padding: 58px 0 70px; }
.page-content h1 { margin-top: 0; font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; line-height: 1.2; }
.entry-content img { max-width: 100%; height: auto; }
body.page .page-content:has(.entry-content > .section) { width: 100%; max-width: none; padding: 0; }
body.page .page-content:has(.entry-content > .section) article { margin: 0; }
body.page .page-content:has(.entry-content > .section) .entry-content { overflow: hidden; }

.dvm-page-heading {
  width: min(calc(100% - 40px), var(--dvm-shell));
  margin: 0 auto;
  padding: 48px 0 16px;
}
.dvm-page-heading h1 { margin: 0; }

.dvm-contact-form-section { padding: 54px 20px 68px; background: #f4f4f4; }
.dvm-contact-form-shell { width: min(100%, 760px); margin: 0 auto; }
.dvm-contact-form-shell h2 { margin: 0 0 26px; font-size: clamp(1.7rem, 3vw, 2.2rem); font-weight: 400; }
.dvm-contact-form { display: grid; gap: 18px; }
.dvm-contact-form > label:not(.dvm-consent) { display: grid; gap: 6px; font-weight: 600; }
.dvm-contact-form input[type="text"],
.dvm-contact-form input[type="email"],
.dvm-contact-form input[type="tel"],
.dvm-contact-form textarea { width: 100%; padding: 12px 13px; color: #333; background: #fff; border: 1px solid #aaa; border-radius: 2px; font: inherit; }
.dvm-contact-form input:focus,
.dvm-contact-form textarea:focus { border-color: var(--dvm-red); outline: 2px solid rgba(169,15,23,.18); outline-offset: 1px; }
.dvm-consent { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: .94rem; }
.dvm-consent input { margin-top: 4px; }
.dvm-required { margin: -8px 0 0; font-size: .9rem; color: var(--dvm-muted); }
.dvm-contact-form button { justify-self: start; padding: 11px 20px; color: #fff; background: var(--dvm-red); border: 0; border-radius: 3px; font: inherit; font-weight: 600; cursor: pointer; }
.dvm-contact-form button:hover, .dvm-contact-form button:focus-visible { background: var(--dvm-red-dark); }
.dvm-form-message { margin: 0 0 22px; padding: 14px 16px; border-left: 4px solid; background: #fff; }
.dvm-form-success { border-color: #2d7c36; }
.dvm-form-error { border-color: var(--dvm-red); }
.dvm-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.site-footer { margin-top: 0; background: #fff; text-align: center; }
.footer-accent { height: 78px; }
.footer-shell { width: min(calc(100% - 40px), var(--dvm-shell)); margin: 0 auto; padding: 58px 0 68px; }
.footer-logo { display: inline-block; width: 150px; margin-bottom: 25px; }
.footer-logo img { display: block; width: 100%; height: auto; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px 0; margin-bottom: 18px; }
.footer-nav a { padding: 0 11px; border-right: 1px solid #777; }
.footer-nav a:last-child { border-right: 0; }
.copyright { margin: 0 0 20px; font-family: Georgia, "Times New Roman", serif; }
.social-links { display: flex; justify-content: center; gap: 10px; }
.social-links a { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: #fff; background: #d90a13; text-decoration: none; font-weight: 700; }

@media (max-width: 900px) {
  .header-shell { min-height: 104px; grid-template-columns: 250px 1fr; }
  .phone { margin-bottom: 8px; }
  .nav-row a { padding: 8px 9px; font-size: .92rem; }
  .nav-row-main > li:first-child > a { max-width: 190px; }
  .hero { min-height: 520px; background-position: 45% center; }
}

@media (max-width: 760px) {
  .header-shell { width: min(calc(100% - 28px), var(--dvm-header)); min-height: 92px; grid-template-columns: minmax(170px, 240px) 1fr; gap: 16px; }
  .header-content { align-items: flex-end; }
  .phone { order: 0; margin: 0 0 7px; font-size: .88rem; }
  .phone span { display: none; }
  .menu-toggle { display: inline-flex; order: 1; padding: 8px 12px; color: #fff; background: #555; border: 0; border-radius: 3px; font: inherit; }
  .primary-nav { display: none; position: absolute; z-index: 100; top: 92px; left: 0; right: 0; padding: 12px 18px; background: #fff; border-top: 1px solid #eee; box-shadow: 0 12px 20px rgba(0,0,0,.12); }
  .primary-nav.is-open { display: block; }
  .nav-row { display: block; }
  .nav-row-main > li:first-child > a { max-width: none; }
  .submenu { display: block; position: static; width: auto; margin-left: 15px !important; padding: 0 !important; border: 0; box-shadow: none; }
  .submenu a { font-size: .88rem; }
  .nav-row a.is-active, .nav-row a:hover, .nav-row a:focus-visible { border-radius: 0; }
  .brand-accent { height: 20px; }
  .hero { min-height: 500px; background-position: 39% center; }
  .hero-content { padding: 55px 0; }
  .hero h1 { max-width: 370px; line-height: 1.25; text-shadow: 0 2px 12px rgba(0,0,0,.45); }
  .hero p { max-width: 360px; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
  .content-shell { width: min(calc(100% - 32px), var(--dvm-shell)); }
  .content-section { padding-top: 34px; }
  .intro-section { padding-top: 38px; }
  .footer-accent { height: 46px; }
  .footer-shell { padding: 44px 0 54px; }
}

@media (max-width: 460px) {
  .header-shell { grid-template-columns: 165px 1fr; }
  .phone { font-size: .78rem; }
  .hero { min-height: 440px; background-position: 31% center; }
  .hero h1 { font-size: 1.85rem; }
  .hero p { font-size: 1.05rem; }
  .footer-nav { display: grid; gap: 8px; }
  .footer-nav a { border: 0; }
}

/* Modern homepage concept — intentionally scoped to the front page. */
body.home {
  --dvm-navy: #102131;
  --dvm-navy-soft: #1a3042;
  --dvm-ink: #162431;
  --dvm-blue-grey: #71808d;
  --dvm-surface: #f3f6f8;
  --dvm-line: #dfe5e9;
  --dvm-modern-shell: 1180px;
  color: var(--dvm-ink);
  background: #fff;
}

body.home .site-header {
  position: relative;
  z-index: 100;
  border-bottom: 1px solid rgba(16, 33, 49, .08);
  box-shadow: 0 8px 30px rgba(16, 33, 49, .04);
}
body.home .header-shell { width: min(calc(100% - 48px), var(--dvm-modern-shell)); min-height: 118px; }
body.home .phone { color: var(--dvm-navy); font-weight: 600; }
body.home .nav-row a { color: var(--dvm-navy); border-radius: 2px; font-size: .94rem; }
body.home .nav-row a.is-active,
body.home .nav-row a:hover,
body.home .nav-row a:focus-visible { color: #fff; background: var(--dvm-navy); }
body.home .brand-accent { height: 4px; background: linear-gradient(90deg, var(--dvm-red) 0 34%, var(--dvm-navy) 34% 100%); }

.modern-home { overflow: hidden; }
.modern-home a { text-decoration: none; }
.modern-shell { width: min(calc(100% - 48px), var(--dvm-modern-shell)); margin: 0 auto; }
.modern-section { padding: 108px 0; }
.modern-section h2,
.modern-process h2,
.modern-cta h2 { margin: 0; color: var(--dvm-ink); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }
.modern-section h3,
.modern-process h3 { color: var(--dvm-ink); }
.section-kicker { margin: 0 0 18px; color: var(--dvm-red); font-size: .77rem; font-weight: 800; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.section-kicker-light { color: #ff9aa0; }

.modern-hero {
  min-height: 650px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(440px, .95fr);
  color: #fff;
  background: var(--dvm-navy);
}
.modern-hero-copy {
  align-self: center;
  padding: clamp(72px, 8vw, 112px) clamp(40px, 6vw, 88px) clamp(100px, 10vw, 135px) max(32px, calc((100vw - var(--dvm-modern-shell)) / 2));
}
.modern-hero h1 { max-width: 760px; margin: 0 0 28px; color: #fff; font-size: clamp(2.5rem, 3.8vw, 3.3rem); font-weight: 500; line-height: 1.02; letter-spacing: -.052em; hyphens: none; overflow-wrap: normal; word-break: normal; }
.modern-hero-lead { max-width: 640px; margin: 0 0 34px; color: #dce5eb; font-size: clamp(1.05rem, 1.6vw, 1.26rem); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 38px; }
.modern-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 13px 21px; border: 1px solid transparent; border-radius: 3px; font-weight: 700; line-height: 1.2; transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease; }
.modern-button:hover, .modern-button:focus-visible { transform: translateY(-2px); }
.modern-button-primary { color: #fff; background: var(--dvm-red); }
.modern-button-primary:hover, .modern-button-primary:focus-visible { color: #fff; background: #c1131d; }
.modern-button-secondary { color: #fff; border-color: rgba(255,255,255,.44); background: transparent; }
.modern-button-secondary:hover, .modern-button-secondary:focus-visible { color: var(--dvm-navy); background: #fff; border-color: #fff; }
.modern-button-dark { color: #fff; background: var(--dvm-navy); }
.modern-button-dark:hover, .modern-button-dark:focus-visible { color: #fff; background: var(--dvm-red); }
.modern-button-light { color: var(--dvm-red); background: #fff; }
.modern-button-light:hover, .modern-button-light:focus-visible { color: var(--dvm-navy); }
.hero-trust { display: flex; flex-wrap: wrap; gap: 13px 24px; margin: 0; padding: 0; color: #c9d4dc; font-size: .9rem; list-style: none; }
.hero-trust li { display: flex; align-items: center; gap: 9px; }
.hero-trust li::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--dvm-red); }
.modern-hero-visual { position: relative; min-height: 650px; overflow: hidden; background: #cad4dd; }
.modern-hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,33,49,.45), transparent 38%), linear-gradient(0deg, rgba(16,33,49,.52), transparent 42%); pointer-events: none; }
.modern-hero-visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 35% center; }
.hero-visual-badge { position: absolute; z-index: 2; right: 34px; bottom: 34px; display: grid; gap: 2px; padding: 18px 20px; color: var(--dvm-navy); background: rgba(255,255,255,.94); border-left: 4px solid var(--dvm-red); box-shadow: 0 15px 35px rgba(0,0,0,.16); }
.hero-visual-badge strong { font-size: .98rem; }
.hero-visual-badge span { color: #5e6e7b; font-size: .84rem; }

.proof-strip { position: relative; z-index: 4; width: min(calc(100% - 48px), var(--dvm-modern-shell)); margin: -42px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; box-shadow: 0 18px 45px rgba(16,33,49,.12); }
.proof-item { min-height: 84px; display: flex; align-items: center; gap: 13px; padding: 18px 24px; border-right: 1px solid var(--dvm-line); }
.proof-item:last-child { border-right: 0; }
.proof-item strong { color: var(--dvm-red); font-size: 1.35rem; letter-spacing: -.03em; }
.proof-item span { color: #40515e; font-size: .9rem; font-weight: 700; }

.modern-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px, 8vw, 105px); align-items: center; }
.modern-split-intro { align-items: start; }
.modern-copy p { margin: 0 0 20px; color: #50616e; font-size: 1.06rem; line-height: 1.75; }
.arrow-link { display: inline-flex; align-items: center; gap: 12px; color: var(--dvm-navy); font-weight: 800; }
.arrow-link::after { content: "→"; color: var(--dvm-red); font-size: 1.2em; transition: transform .2s ease; }
.arrow-link:hover::after, .arrow-link:focus-visible::after { transform: translateX(4px); }

.modern-services { background: var(--dvm-surface); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 65px; align-items: end; margin-bottom: 48px; }
.section-heading > p { margin: 0 0 4px; color: #63727e; line-height: 1.7; }
.service-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.service-card { min-height: 320px; display: flex; flex-direction: column; padding: 28px 25px; color: var(--dvm-ink); background: #fff; border: 1px solid var(--dvm-line); border-top: 3px solid transparent; box-shadow: 0 8px 24px rgba(16,33,49,.04); transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.service-card:hover, .service-card:focus-visible { color: var(--dvm-ink); border-top-color: var(--dvm-red); box-shadow: 0 20px 38px rgba(16,33,49,.11); transform: translateY(-6px); }
.service-index { color: var(--dvm-red); font-size: .75rem; font-weight: 800; letter-spacing: .12em; }
.service-card h3 { margin: 58px 0 15px; font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; }
.service-card p { margin: 0 0 24px; color: #64737f; font-size: .94rem; line-height: 1.65; }
.card-link { margin-top: auto; color: var(--dvm-navy); font-size: .9rem; font-weight: 800; }
.card-link::after { content: " ↗"; color: var(--dvm-red); }

.modern-process { padding: 102px 0; color: #fff; background: var(--dvm-navy); }
.modern-process h2 { color: #fff; }
.process-heading { max-width: 720px; margin-bottom: 56px; }
.process-heading > p:last-child { max-width: 650px; margin: 22px 0 0; color: #bfcbd3; font-size: 1.02rem; line-height: 1.7; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: process; }
.process-grid li { position: relative; min-height: 230px; padding: 28px 28px 22px 0; border-top: 1px solid rgba(255,255,255,.22); }
.process-grid li:not(:last-child) { margin-right: 28px; }
.process-grid li:not(:last-child)::after { content: ""; position: absolute; top: -4px; right: -6px; width: 7px; height: 7px; border-radius: 50%; background: var(--dvm-red); box-shadow: 0 0 0 5px var(--dvm-navy); }
.process-grid span { color: #ff8f96; font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.process-grid h3 { margin: 54px 0 12px; color: #fff; font-size: 1.16rem; }
.process-grid p { margin: 0; color: #afbdc6; font-size: .9rem; line-height: 1.65; }

.deliverable-split { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
.deliverable-visual { position: relative; min-height: 500px; background: #ecf0f3; }
.deliverable-visual img { width: 100%; height: 100%; min-height: 500px; display: block; object-fit: cover; }
.image-caption { position: absolute; right: 20px; bottom: 20px; max-width: 260px; padding: 14px 16px; color: #fff; background: rgba(16,33,49,.9); border-left: 3px solid var(--dvm-red); font-size: .88rem; font-weight: 700; }
.deliverable-split > div:last-child > p:not(.section-kicker) { margin: 24px 0; color: #596a77; font-size: 1.03rem; line-height: 1.7; }
.check-list { display: grid; gap: 13px; margin: 0 0 32px; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 30px; color: #354754; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--dvm-red); font-weight: 900; }

.modern-use-cases { background: #fff; border-top: 1px solid var(--dvm-line); }
.use-case-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--dvm-line); }
.use-case-grid > div { min-height: 260px; padding: 28px 24px; border-right: 1px solid var(--dvm-line); }
.use-case-grid > div:last-child { border-right: 0; }
.use-case-grid strong { color: var(--dvm-red); font-size: .74rem; letter-spacing: .13em; }
.use-case-grid h3 { margin: 54px 0 13px; font-size: 1.16rem; }
.use-case-grid p { margin: 0; color: #697783; font-size: .92rem; line-height: 1.6; }

.modern-references { background: var(--dvm-surface); }
.section-heading-centered { align-items: center; }
.section-heading-centered .arrow-link { justify-self: end; }
.reference-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.reference-card { display: grid; min-width: 0; color: var(--dvm-ink); background: #fff; box-shadow: 0 9px 25px rgba(16,33,49,.06); transition: transform .22s ease, box-shadow .22s ease; }
.reference-card:hover, .reference-card:focus-visible { color: var(--dvm-ink); transform: translateY(-5px); box-shadow: 0 20px 38px rgba(16,33,49,.12); }
.reference-card img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: #e8ecef; }
.reference-copy { display: grid; padding: 22px 22px 24px; }
.reference-copy small { margin-bottom: 8px; color: var(--dvm-red); font-size: .69rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.reference-copy strong { min-height: 52px; font-size: 1.18rem; line-height: 1.35; }
.reference-copy > span { margin-top: 20px; color: #60707c; font-size: .87rem; font-weight: 700; }
.reference-copy > span::after { content: " →"; color: var(--dvm-red); }

.modern-video { background: #fff; }
.video-split { grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); }
.video-split > div:first-child > p:last-child { margin: 24px 0 0; color: #5c6d79; line-height: 1.72; }
.modern-video-frame { margin: 0; border-radius: 2px; box-shadow: 0 18px 42px rgba(16,33,49,.16); }

.modern-locations { background: var(--dvm-navy); }
.modern-locations h2 { color: #fff; }
.modern-locations .section-kicker { color: #ff9aa0; }
.modern-locations p:not(.section-kicker) { margin: 25px 0 0; color: #becbd3; line-height: 1.7; }
.location-cloud { display: flex; flex-wrap: wrap; gap: 10px; align-content: center; }
.location-cloud a { padding: 11px 16px; color: #eaf0f4; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; font-size: .9rem; font-weight: 700; transition: background .2s ease, border-color .2s ease; }
.location-cloud a:hover, .location-cloud a:focus-visible { color: #fff; background: var(--dvm-red); border-color: var(--dvm-red); }

.modern-cta { padding: 88px 0; color: #fff; background: var(--dvm-red); }
.modern-cta h2 { max-width: 760px; color: #fff; }
.modern-cta .section-kicker { color: #ffd5d7; }
.modern-cta p:not(.section-kicker) { max-width: 720px; margin: 22px 0 0; color: #ffe8e9; font-size: 1.04rem; line-height: 1.7; }
.cta-shell { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(250px, .6fr); gap: 70px; align-items: center; }
.cta-actions { display: grid; justify-items: start; gap: 20px; }
.cta-phone { display: grid; color: #fff; }
.cta-phone:hover, .cta-phone:focus-visible { color: #fff; }
.cta-phone span { color: #ffdadd; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cta-phone strong { font-size: 1.32rem; }

body.home .site-footer { background: #f7f9fa; }
body.home .footer-accent { display: none; }
body.home .footer-shell { padding-top: 54px; }

@media (max-width: 1050px) {
  body.home .header-shell { grid-template-columns: 270px 1fr; }
  body.home .nav-row a { padding-inline: 9px; font-size: .87rem; }
  .modern-hero { grid-template-columns: minmax(0, 1.12fr) minmax(350px, .88fr); }
  .service-card-grid, .use-case-grid { grid-template-columns: repeat(2, 1fr); }
  .service-card { min-height: 280px; }
  .use-case-grid > div:nth-child(2) { border-right: 0; }
  .use-case-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--dvm-line); }
}

@media (max-width: 820px) {
  body.home .header-shell { min-height: 96px; }
  body.home .primary-nav { top: 96px; }
  .modern-section { padding: 78px 0; }
  .modern-hero { display: flex; min-height: auto; flex-direction: column; }
  .modern-hero-copy { padding: 66px 28px 76px; }
  .modern-hero h1 { max-width: 680px; font-size: clamp(2.4rem, 7vw, 3.5rem); }
  .modern-hero-visual { min-height: 480px; }
  .proof-strip { grid-template-columns: repeat(2, 1fr); margin-top: -28px; }
  .proof-item:nth-child(2) { border-right: 0; }
  .proof-item:nth-child(-n+2) { border-bottom: 1px solid var(--dvm-line); }
  .modern-split, .section-heading, .cta-shell { grid-template-columns: 1fr; gap: 35px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); gap: 34px 0; }
  .process-grid li:nth-child(2)::after { display: none; }
  .reference-grid { grid-template-columns: 1fr 1fr; }
  .reference-card:last-child { grid-column: 1 / -1; }
  .reference-card:last-child img { aspect-ratio: 16 / 8; }
  .section-heading-centered .arrow-link { justify-self: start; }
}

@media (max-width: 560px) {
  body.home .header-shell { width: min(calc(100% - 28px), var(--dvm-modern-shell)); grid-template-columns: minmax(170px, 225px) 1fr; }
  .modern-shell, .proof-strip { width: min(calc(100% - 32px), var(--dvm-modern-shell)); }
  .modern-hero-copy { padding: 55px 20px 64px; }
  .modern-hero h1 { font-size: clamp(1.72rem, 8.5vw, 2.25rem); }
  .modern-hero-lead { font-size: 1rem; }
  .modern-hero-visual { min-height: 370px; }
  .modern-hero-visual img { object-position: 30% center; }
  .hero-visual-badge { right: 18px; bottom: 18px; left: 18px; }
  .proof-item { min-height: 74px; padding: 15px 16px; }
  .proof-item strong { font-size: 1.12rem; }
  .proof-item span { font-size: .78rem; }
  .modern-section h2, .modern-process h2, .modern-cta h2 { font-size: 2.15rem; }
  .service-card-grid, .use-case-grid, .process-grid, .reference-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 255px; }
  .use-case-grid > div { min-height: 220px; border-right: 0; border-bottom: 1px solid var(--dvm-line); }
  .use-case-grid > div:last-child { border-bottom: 0; }
  .process-grid { gap: 0; }
  .process-grid li { min-height: 195px; margin-right: 0 !important; }
  .process-grid li::after { display: none; }
  .reference-card:last-child { grid-column: auto; }
  .reference-card:last-child img { aspect-ratio: 4 / 3; }
  .deliverable-visual, .deliverable-visual img { min-height: 360px; }
  .modern-cta { padding: 70px 0; }
}

/* Modern shared system for services, references and regional pages. */
body:not(.home) { background: #f2f5f7; }
body:not(.home) .brand-accent { display: none; }
body:not(.home) .site-header { border-bottom: 1px solid #e2e7ea; box-shadow: 0 5px 24px rgba(14,32,51,.05); }
body:not(.home) .site-footer { margin-top: 0; background: #fff; }
body:not(.home) .footer-accent { display: none; }

.modern-subpage {
  --page-accent: var(--dvm-red);
  width: min(calc(100% - 44px), 1240px);
  margin: 36px auto 0;
  padding-bottom: 72px;
}
.modern-subpage--project { --page-accent: #2d8a8b; }
.modern-subpage--region { --page-accent: #d27627; }
.modern-subpage--contact { --page-accent: #2d8a8b; }
.modern-subpage a { text-decoration: none; }

.modern-page-hero {
  display: grid;
  min-height: 530px;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  overflow: hidden;
  border-radius: 5px;
  background: var(--dvm-navy);
  box-shadow: 0 22px 55px rgba(12,30,49,.16);
}
.modern-page-hero-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 64px clamp(34px, 5vw, 76px);
  color: #fff;
}
.modern-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 42px; color: #b9c7d1; font-size: .78rem; font-weight: 700; letter-spacing: .03em; }
.modern-breadcrumbs a { color: #dbe4e9; }
.modern-breadcrumbs a:hover, .modern-breadcrumbs a:focus-visible { color: #fff; }
.modern-page-eyebrow { margin: 0 0 16px; color: #ffbdc1; font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-subpage--project .modern-page-eyebrow { color: #94dedc; }
.modern-subpage--region .modern-page-eyebrow { color: #ffc68e; }
.modern-page-hero h1 { max-width: 790px; margin: 0; color: #fff; font-size: clamp(2.45rem, 3.4vw, 3.3rem); line-height: 1.03; letter-spacing: -.046em; hyphens: none; overflow-wrap: normal; word-break: normal; }
.modern-page-lead { max-width: 700px; margin: 25px 0 0; color: #dce5ea; font-size: 1.05rem; line-height: 1.72; }
.modern-page-actions { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; margin-top: 32px; }
.modern-text-link { color: #fff; font-weight: 800; }
.modern-text-link::before { content: 'Direkt: '; color: #9fb1bd; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.modern-page-hero-media { min-height: 100%; background-color: #dfe7ea; background-position: center; background-size: cover; }
.modern-page-hero--legal { min-height: 390px; grid-template-columns: minmax(0, 1fr); }
.modern-page-hero--legal .modern-page-hero-copy { min-height: 390px; }

.modern-page-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 34px; align-items: start; margin-top: 34px; }
.modern-page-layout--wide { grid-template-columns: 1fr; }
.modern-page-copy { min-width: 0; padding: clamp(30px, 5vw, 68px); border: 1px solid #e3e8eb; border-radius: 5px; background: #fff; box-shadow: 0 12px 35px rgba(13,31,52,.06); }
.modern-page-copy .entry-content { color: #425267; font-size: 1rem; line-height: 1.72; }
.modern-page-copy .dvm-legacy-heading-placeholder { display: none !important; }
.modern-page-copy .section-root { margin: 0 0 34px !important; background: transparent !important; }
.modern-page-copy .section-root:last-child { margin-bottom: 0 !important; }
.modern-page-copy .section-inner { opacity: 0 !important; background-image: none !important; }
.modern-page-copy .section-inner-width,
.modern-page-copy .section-content,
.modern-page-copy .grid-row-root { width: 100% !important; max-width: none !important; }
.modern-page-copy .grid-row-top-level { padding: 0 !important; }
.modern-page-copy h2,
.modern-page-copy h2 *,
.modern-page-copy h3,
.modern-page-copy h3 *,
.modern-page-copy h4,
.modern-page-copy h4 * { color: var(--dvm-navy) !important; font-family: Inter, Arial, sans-serif !important; letter-spacing: -.025em !important; }
.modern-page-copy h2 { margin: 12px 0 22px !important; font-size: clamp(1.72rem, 2.7vw, 2.55rem) !important; line-height: 1.12 !important; }
.modern-page-copy h3 { margin: 28px 0 14px !important; font-size: 1.35rem !important; line-height: 1.25 !important; }
.modern-page-copy p,
.modern-page-copy p *:not(a),
.modern-page-copy li,
.modern-page-copy li *:not(a) { color: #425267 !important; font-family: Inter, Arial, sans-serif !important; font-size: 1rem !important; line-height: 1.72 !important; }
.modern-page-copy p { margin: 0 0 18px; }
.modern-page-copy a { color: #a71823 !important; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.modern-page-copy img { max-width: 100%; height: auto; border-radius: 4px; box-shadow: 0 8px 24px rgba(13,31,52,.11); }
.modern-page-copy .image-gallery-wrapper { gap: 15px !important; }
.modern-page-copy iframe { max-width: 100%; border-radius: 4px; }

.modern-page-sidebar { position: sticky; top: 28px; padding: 32px; border-top: 4px solid var(--page-accent); border-radius: 4px; color: #d9e3e9; background: var(--dvm-navy); box-shadow: 0 12px 35px rgba(13,31,52,.13); }
.modern-sidebar-kicker { margin: 0 0 13px; color: #ffadb2; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.modern-subpage--project .modern-sidebar-kicker { color: #8ed7d4; }
.modern-subpage--region .modern-sidebar-kicker { color: #ffc184; }
.modern-page-sidebar h2 { margin: 0 0 17px; color: #fff; font-size: 1.64rem; line-height: 1.16; letter-spacing: -.03em; }
.modern-page-sidebar > p:not(.modern-sidebar-kicker) { margin: 0 0 22px; color: #c5d2da; line-height: 1.65; }
.modern-sidebar-list { display: grid; gap: 11px; margin: 0 0 27px; padding: 21px 0; list-style: none; border-top: 1px solid rgba(255,255,255,.13); border-bottom: 1px solid rgba(255,255,255,.13); }
.modern-sidebar-list li { position: relative; padding-left: 19px; color: #e7edf1; font-size: .88rem; line-height: 1.45; }
.modern-sidebar-list li::before { content: ''; position: absolute; top: .48em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--page-accent); }
.modern-page-sidebar .modern-button { width: 100%; }
.modern-sidebar-contact { display: block; margin-top: 16px; color: #fff; font-size: .9rem; font-weight: 700; overflow-wrap: anywhere; }

.modern-page-cta { display: flex; gap: 40px; align-items: center; justify-content: space-between; margin-top: 34px; padding: 50px clamp(30px, 5vw, 66px); border-radius: 5px; color: #fff; background: var(--page-accent); }
.modern-page-cta .modern-page-eyebrow { margin-bottom: 10px; color: rgba(255,255,255,.78); }
.modern-page-cta h2 { max-width: 720px; margin: 0; color: #fff; font-size: clamp(1.85rem, 3vw, 2.8rem); line-height: 1.12; letter-spacing: -.035em; }

/* Compact contact page: replaces fixed heights inherited from the former site builder. */
.modern-contact-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 34px; margin-top: 34px; }
.modern-contact-intro,
.modern-contact-card,
.modern-contact-form-card { border: 1px solid #e3e8eb; border-radius: 5px; background: #fff; box-shadow: 0 12px 35px rgba(13,31,52,.06); }
.modern-contact-intro { padding: clamp(34px, 5vw, 66px); }
.modern-contact-kicker { margin: 0 0 13px; color: #247b7d; font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.modern-contact-intro h2,
.modern-contact-card h2 { margin: 0 0 20px; color: var(--dvm-navy); line-height: 1.13; letter-spacing: -.035em; }
.modern-contact-intro h2 { max-width: 720px; font-size: clamp(2rem, 3.4vw, 3.35rem); }
.modern-contact-intro > p:not(.modern-contact-kicker) { max-width: 760px; margin: 0 0 18px; color: #425267; line-height: 1.75; }
.modern-contact-intro > p:last-child { margin-bottom: 0; }
.modern-contact-details { display: grid; gap: 20px; }
.modern-contact-card { display: flex; flex-direction: column; justify-content: center; padding: 34px; }
.modern-contact-card h2 { font-size: 1.7rem; }
.modern-contact-card p,
.modern-contact-card address { margin: 0 0 16px; color: #526174; font-style: normal; line-height: 1.65; }
.modern-contact-card a { display: block; width: fit-content; margin-top: 8px; color: var(--dvm-navy); font-weight: 800; }
.modern-contact-card a:hover,
.modern-contact-card a:focus-visible { color: var(--dvm-red); }
.modern-contact-form-card { margin-top: 34px; padding: clamp(30px, 5vw, 64px); }
.modern-contact-form-card .dvm-contact-form-section { padding: 0; background: transparent; }
.modern-contact-form-card .dvm-contact-form-shell { width: 100%; }
.modern-contact-form-card .dvm-contact-form-shell h2 { color: var(--dvm-navy); font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 750; letter-spacing: -.035em; }
.modern-contact-form-card .dvm-contact-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.modern-contact-form-card .dvm-contact-form > label:nth-of-type(4),
.modern-contact-form-card .dvm-consent,
.modern-contact-form-card .dvm-required,
.modern-contact-form-card .dvm-contact-form button { grid-column: 1 / -1; }
.modern-contact-form-card .dvm-contact-form textarea { min-height: 190px; resize: vertical; }
.modern-contact-form-card .dvm-contact-form input,
.modern-contact-form-card .dvm-contact-form textarea { border-color: #cbd4d9; border-radius: 3px; }

/* Curated project index: replaces the irregular geometry of the legacy builder gallery. */
.modern-projects-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #dce4e8;
  border-top: 4px solid var(--page-accent);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-projects-overview > div { padding: 28px 32px; border-right: 1px solid #e3e8eb; }
.modern-projects-overview > div:last-child { border-right: 0; }
.modern-projects-overview strong,
.modern-projects-overview span { display: block; }
.modern-projects-overview strong { margin-bottom: 7px; color: var(--dvm-navy); font-size: 1.04rem; letter-spacing: -.015em; }
.modern-projects-overview span { color: #607080; font-size: .87rem; line-height: 1.55; }

.modern-projects-groups { display: grid; gap: 34px; margin-top: 34px; }
.modern-project-group {
  padding: clamp(30px, 4vw, 52px);
  border: 1px solid #dfe6e9;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-project-group-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr);
  gap: 42px;
  align-items: end;
  margin-bottom: 30px;
  padding-bottom: 27px;
  border-bottom: 1px solid #dfe6e9;
}
.modern-project-kicker { margin: 0 0 10px; color: #247b7d; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-project-group-heading h2,
.modern-projects-contact h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.85rem, 2.8vw, 2.75rem); line-height: 1.12; letter-spacing: -.035em; }
.modern-project-group-heading > p { margin: 0; color: #526174; line-height: 1.7; }
.modern-project-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.modern-project-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #dce4e8;
  border-radius: 5px;
  color: inherit;
  background: #fff;
  box-shadow: 0 8px 24px rgba(13,31,52,.07);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.modern-project-card:hover,
.modern-project-card:focus-visible { border-color: #84bebe; box-shadow: 0 16px 34px rgba(13,31,52,.13); transform: translateY(-4px); }
.modern-project-card:focus-visible { outline: 3px solid rgba(45,138,139,.25); outline-offset: 3px; }
.modern-project-card-media { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #e8edef; }
.modern-project-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.modern-project-card:hover .modern-project-card-media img { transform: scale(1.035); }
.modern-project-card-copy { display: flex; min-height: 196px; flex: 1; flex-direction: column; padding: 23px 24px 22px; }
.modern-project-card-copy strong { display: block; color: var(--dvm-navy); font-size: 1.11rem; line-height: 1.32; letter-spacing: -.018em; }
.modern-project-card-copy > span { display: block; margin-top: 10px; color: #607080; font-size: .89rem; line-height: 1.6; }
.modern-project-card-copy em { display: block; margin-top: auto; padding-top: 20px; color: #247b7d; font-size: .83rem; font-style: normal; font-weight: 800; letter-spacing: .015em; }
.modern-project-card-copy em span { display: inline-block; margin-left: 5px; transition: transform .2s ease; }
.modern-project-card:hover .modern-project-card-copy em span { transform: translateX(4px); }

.modern-projects-contact {
  display: flex;
  gap: 42px;
  align-items: center;
  justify-content: space-between;
  margin-top: 34px;
  padding: 42px clamp(30px, 5vw, 58px);
  border-radius: 5px;
  color: #dce5ea;
  background: var(--dvm-navy);
  box-shadow: 0 14px 38px rgba(13,31,52,.13);
}
.modern-projects-contact .modern-project-kicker { color: #8ed7d4; }
.modern-projects-contact h2 { color: #fff; }
.modern-projects-contact p:not(.modern-project-kicker) { max-width: 690px; margin: 14px 0 0; line-height: 1.65; }
.modern-projects-contact-actions { display: flex; min-width: 270px; flex-direction: column; gap: 16px; align-items: stretch; }
.modern-projects-contact-actions > a:last-child { color: #fff; font-weight: 800; text-align: center; }

/* Hannover regional page: clear service path, local proof and compact references. */
.modern-hannover-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #dce4e8;
  border-top: 4px solid var(--page-accent);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-hannover-overview > div { padding: 27px 30px; border-right: 1px solid #e3e8eb; }
.modern-hannover-overview > div:last-child { border-right: 0; }
.modern-hannover-overview strong,
.modern-hannover-overview span { display: block; }
.modern-hannover-overview strong { margin-bottom: 7px; color: var(--dvm-navy); font-size: 1.01rem; letter-spacing: -.014em; }
.modern-hannover-overview span { color: #607080; font-size: .86rem; line-height: 1.55; }

.modern-hannover-intro,
.modern-hannover-services,
.modern-hannover-process,
.modern-hannover-references,
.modern-hannover-region { margin-top: 34px; border: 1px solid #dfe6e9; border-radius: 5px; background: #fff; box-shadow: 0 12px 35px rgba(13,31,52,.06); }
.modern-hannover-kicker { margin: 0 0 11px; color: #247b7d; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-hannover-intro h2,
.modern-hannover-section-heading h2,
.modern-hannover-process h2,
.modern-hannover-region h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.95rem, 3.15vw, 3rem); line-height: 1.12; letter-spacing: -.038em; }

.modern-hannover-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, .94fr); overflow: hidden; }
.modern-hannover-intro-copy { padding: clamp(34px, 5vw, 66px); }
.modern-hannover-intro-copy > p:not(.modern-hannover-kicker) { margin: 20px 0 0; color: #526174; line-height: 1.72; }
.modern-hannover-intro-links { display: grid; margin-top: 28px; border-top: 1px solid #dce4e8; }
.modern-hannover-intro-links a { display: flex; align-items: center; justify-content: space-between; padding: 16px 3px; border-bottom: 1px solid #dce4e8; color: var(--dvm-navy); font-weight: 800; }
.modern-hannover-intro-links a:hover,
.modern-hannover-intro-links a:focus-visible { color: var(--dvm-red); }
.modern-hannover-intro-links a span { transition: transform .2s ease; }
.modern-hannover-intro-links a:hover span { transform: translateX(4px); }
.modern-hannover-intro-media { position: relative; min-height: 100%; margin: 0; overflow: hidden; background: #e5ebee; }
.modern-hannover-intro-media img { width: 100%; height: 100%; min-height: 550px; object-fit: cover; }
.modern-hannover-intro-media figcaption { position: absolute; right: 24px; bottom: 24px; left: 24px; padding: 13px 15px; border-left: 4px solid #e2934e; color: #fff; background: rgba(13,31,52,.9); font-size: .79rem; font-weight: 700; line-height: 1.45; }

.modern-hannover-services,
.modern-hannover-references { padding: clamp(30px, 4vw, 52px); }
.modern-hannover-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 42px; align-items: end; margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid #dfe6e9; }
.modern-hannover-section-heading > p { margin: 0; color: #526174; line-height: 1.7; }
.modern-hannover-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #dfe6e9; border-left: 1px solid #dfe6e9; }
.modern-hannover-service-grid article { min-height: 225px; padding: 27px 25px; border-right: 1px solid #dfe6e9; border-bottom: 1px solid #dfe6e9; }
.modern-hannover-service-grid article > span { display: block; margin-bottom: 24px; color: #c97737; font-size: .76rem; font-weight: 800; letter-spacing: .1em; }
.modern-hannover-service-grid h3 { margin: 0; color: var(--dvm-navy); font-size: 1.17rem; line-height: 1.3; letter-spacing: -.02em; }
.modern-hannover-service-grid p { margin: 13px 0 0; color: #607080; font-size: .88rem; line-height: 1.62; }

.modern-hannover-process { display: grid; grid-template-columns: minmax(0, .86fr) minmax(430px, 1.14fr); gap: clamp(38px, 6vw, 76px); padding: clamp(34px, 5vw, 62px); color: #dce5ea; background: var(--dvm-navy); }
.modern-hannover-process .modern-hannover-kicker { color: #ffc184; }
.modern-hannover-process h2 { color: #fff; }
.modern-hannover-process > div > p:not(.modern-hannover-kicker) { margin: 20px 0 0; color: #c5d2da; line-height: 1.72; }
.modern-hannover-process ol { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.15); }
.modern-hannover-process li { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; padding: 18px 2px; border-bottom: 1px solid rgba(255,255,255,.15); }
.modern-hannover-process li > span { color: #ffc184; font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.modern-hannover-process li strong,
.modern-hannover-process li small { display: block; }
.modern-hannover-process li strong { color: #fff; font-size: .98rem; }
.modern-hannover-process li small { margin-top: 4px; color: #aebec8; font-size: .8rem; line-height: 1.45; }

.modern-hannover-project-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.modern-hannover-project { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #dce4e8; border-radius: 5px; color: inherit; background: #fff; box-shadow: 0 8px 24px rgba(13,31,52,.07); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.modern-hannover-project:hover,
.modern-hannover-project:focus-visible { border-color: #e0a16a; box-shadow: 0 16px 34px rgba(13,31,52,.13); transform: translateY(-4px); }
.modern-hannover-project-media { display: block; overflow: hidden; aspect-ratio: 4 / 3; background: #e8edef; }
.modern-hannover-project-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.modern-hannover-project:hover .modern-hannover-project-media img { transform: scale(1.035); }
.modern-hannover-project-copy { display: flex; min-height: 220px; flex: 1; flex-direction: column; padding: 22px 22px 20px; }
.modern-hannover-project-copy strong,
.modern-hannover-project-copy > span,
.modern-hannover-project-copy em { display: block; }
.modern-hannover-project-copy strong { color: var(--dvm-navy); font-size: 1.05rem; line-height: 1.34; letter-spacing: -.016em; }
.modern-hannover-project-copy > span { margin-top: 10px; color: #607080; font-size: .86rem; line-height: 1.58; }
.modern-hannover-project-copy em { margin-top: auto; padding-top: 18px; color: #b4642c; font-size: .81rem; font-style: normal; font-weight: 800; }

.modern-hannover-region { display: flex; gap: 48px; align-items: center; justify-content: space-between; padding: clamp(36px, 5vw, 60px); }
.modern-hannover-region > div:first-child { max-width: 760px; }
.modern-hannover-region > div:first-child > p:not(.modern-hannover-kicker) { margin: 18px 0 0; color: #526174; line-height: 1.72; }
.modern-hannover-region-actions { display: flex; min-width: 270px; flex-direction: column; gap: 16px; align-items: stretch; }
.modern-hannover-region-actions > a:last-child { color: var(--dvm-navy); font-weight: 800; text-align: center; }

/* Point-cloud service page: compact editorial layout instead of legacy fixed-height blocks. */
.modern-pointcloud-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #dfe6e9;
  border-top: 4px solid var(--page-accent);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-pointcloud-overview > div { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; padding: 25px 24px; border-right: 1px solid #e2e8eb; }
.modern-pointcloud-overview > div:last-child { border-right: 0; }
.modern-pointcloud-overview span { grid-row: 1 / 3; align-self: center; color: var(--dvm-red); font-size: 1.2rem; font-weight: 800; letter-spacing: -.03em; }
.modern-pointcloud-overview strong { color: var(--dvm-navy); font-size: .98rem; line-height: 1.3; }
.modern-pointcloud-overview small { margin-top: 4px; color: #687786; font-size: .78rem; line-height: 1.45; }

.modern-pointcloud-intro,
.modern-pointcloud-process,
.modern-pointcloud-benefits,
.modern-pointcloud-references { margin-top: 34px; border: 1px solid #dfe6e9; border-radius: 5px; background: #fff; box-shadow: 0 12px 35px rgba(13,31,52,.06); }
.modern-pointcloud-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); overflow: hidden; }
.modern-pointcloud-intro-copy { padding: clamp(34px, 5vw, 66px); }
.modern-pointcloud-kicker { margin: 0 0 11px; color: #a71823; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-pointcloud-intro h2,
.modern-pointcloud-section-heading h2,
.modern-pointcloud-benefits h2,
.modern-pointcloud-references h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.95rem, 3.15vw, 3rem); line-height: 1.12; letter-spacing: -.038em; }
.modern-pointcloud-intro-copy > p:not(.modern-pointcloud-kicker) { margin: 21px 0 0; color: #526174; line-height: 1.72; }
.modern-pointcloud-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 0; padding: 0; list-style: none; }
.modern-pointcloud-tags li { padding: 8px 11px; border: 1px solid #cfd9de; border-radius: 2px; color: var(--dvm-navy); background: #f6f8f9; font-size: .78rem; font-weight: 800; }
.modern-pointcloud-intro-media { position: relative; min-height: 100%; margin: 0; overflow: hidden; background: #e5ebee; }
.modern-pointcloud-intro-media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.modern-pointcloud-intro-media figcaption { position: absolute; right: 24px; bottom: 24px; left: 24px; padding: 13px 15px; border-left: 4px solid var(--dvm-red); color: #fff; background: rgba(13,31,52,.9); font-size: .79rem; font-weight: 700; line-height: 1.45; }

.modern-pointcloud-process { padding: clamp(30px, 4vw, 52px); }
.modern-pointcloud-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 42px; align-items: end; margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid #dfe6e9; }
.modern-pointcloud-section-heading > p { margin: 0; color: #526174; line-height: 1.7; }
.modern-pointcloud-step { display: grid; grid-template-columns: minmax(0, .92fr) minmax(400px, 1.08fr); gap: clamp(34px, 5vw, 68px); align-items: center; padding: 48px 0; border-bottom: 1px solid #dfe6e9; }
.modern-pointcloud-step:last-child { padding-bottom: 0; border-bottom: 0; }
.modern-pointcloud-step:first-of-type { padding-top: 12px; }
.modern-pointcloud-step--reverse .modern-pointcloud-step-copy { order: 2; }
.modern-pointcloud-step--reverse .modern-pointcloud-step-media,
.modern-pointcloud-step--reverse .modern-pointcloud-media-pair { order: 1; }
.modern-pointcloud-step-copy { position: relative; }
.modern-pointcloud-step-number { display: grid; width: 48px; height: 48px; place-items: center; margin-bottom: 22px; border-radius: 50%; color: #fff; background: var(--dvm-navy); font-size: .83rem; font-weight: 800; }
.modern-pointcloud-step h3 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.55rem, 2.4vw, 2.15rem); line-height: 1.17; letter-spacing: -.032em; }
.modern-pointcloud-step-copy > p:not(.modern-pointcloud-kicker) { margin: 18px 0 0; color: #526174; line-height: 1.72; }
.modern-pointcloud-step-copy ul { display: grid; gap: 9px; margin: 22px 0 0; padding: 0; color: #405166; list-style: none; }
.modern-pointcloud-step-copy li { position: relative; padding-left: 20px; line-height: 1.55; }
.modern-pointcloud-step-copy li::before { content: ''; position: absolute; top: .55em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--dvm-red); }
.modern-pointcloud-step-media { margin: 0; overflow: hidden; border-radius: 4px; background: #e5ebee; box-shadow: 0 10px 28px rgba(13,31,52,.12); }
.modern-pointcloud-step-media img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.modern-pointcloud-media-pair { display: grid; gap: 14px; }
.modern-pointcloud-media-pair img { display: block; width: 100%; aspect-ratio: 16 / 8.1; object-fit: cover; border-radius: 4px; background: #e5ebee; box-shadow: 0 10px 28px rgba(13,31,52,.11); }

.modern-pointcloud-benefits { padding: clamp(32px, 4.6vw, 58px); }
.modern-pointcloud-benefits header { max-width: 720px; margin-bottom: 30px; }
.modern-pointcloud-benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #dfe6e9; border-left: 1px solid #dfe6e9; }
.modern-pointcloud-benefit-grid > div { min-height: 165px; padding: 27px 26px; border-right: 1px solid #dfe6e9; border-bottom: 1px solid #dfe6e9; }
.modern-pointcloud-benefit-grid strong,
.modern-pointcloud-benefit-grid span { display: block; }
.modern-pointcloud-benefit-grid strong { margin-bottom: 10px; color: var(--dvm-navy); font-size: 1.03rem; }
.modern-pointcloud-benefit-grid span { color: #607080; font-size: .88rem; line-height: 1.6; }

.modern-pointcloud-references { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .8fr); gap: 56px; align-items: center; padding: clamp(34px, 5vw, 60px); }
.modern-pointcloud-references > div > p:not(.modern-pointcloud-kicker) { margin: 18px 0 0; color: #526174; line-height: 1.7; }
.modern-pointcloud-references nav { display: grid; border-top: 1px solid #dce4e8; }
.modern-pointcloud-references nav a { display: flex; gap: 20px; align-items: center; justify-content: space-between; padding: 18px 4px; border-bottom: 1px solid #dce4e8; color: var(--dvm-navy); font-weight: 800; }
.modern-pointcloud-references nav a:hover,
.modern-pointcloud-references nav a:focus-visible { color: var(--dvm-red); }
.modern-pointcloud-references nav a span { transition: transform .2s ease; }
.modern-pointcloud-references nav a:hover span { transform: translateX(4px); }

/* Modern video collections */
.modern-video-showcase { margin-top: 34px; padding: clamp(34px, 4.8vw, 60px); border: 1px solid #dfe6e9; border-radius: 5px; background: #fff; box-shadow: 0 12px 35px rgba(13,31,52,.06); }
.modern-video-showcase-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 42px; align-items: end; margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid #dfe6e9; }
.modern-video-showcase-heading h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.95rem, 3.15vw, 3rem); line-height: 1.12; letter-spacing: -.038em; }
.modern-video-showcase-heading > p { margin: 0; color: #526174; line-height: 1.7; }
.modern-video-kicker { margin: 0 0 11px; color: #a71823; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.modern-video-grid--feature-first .modern-video-card:first-child { grid-column: 1 / -1; }
.modern-video-grid--single { max-width: 930px; grid-template-columns: minmax(0, 1fr); }
.modern-video-card { overflow: hidden; border: 1px solid #dce4e8; border-radius: 4px; background: #f7f9fa; box-shadow: 0 10px 28px rgba(13,31,52,.08); }
.modern-video-embed { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #0d1f34; }
.modern-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.modern-video-card-copy { padding: 22px 24px 24px; }
.modern-video-card-copy h3 { margin: 0; color: var(--dvm-navy); font-size: 1.12rem; line-height: 1.35; letter-spacing: -.018em; }
.modern-video-card-copy p { margin: 10px 0 0; color: #607080; font-size: .88rem; line-height: 1.62; }
.dvm-tga-inline-video { width: 100%; margin: 18px 0 34px; }
.dvm-tga-inline-video .modern-video-card { background: #fff; }
.dvm-inline-video-block { width: 100%; margin: 10px 0 42px; padding: clamp(24px, 4vw, 42px); border: 1px solid #dce4e8; border-radius: 4px; background: #f3f6f7; }
.modern-page-copy .dvm-inline-video-block > h2 { margin-top: 0 !important; }
.dvm-inline-video-block .modern-video-card { background: #fff; }
.modern-video-channel { display: inline-flex; gap: 12px; align-items: center; margin-top: 30px; color: var(--dvm-navy); font-weight: 800; }
.modern-video-channel:hover,
.modern-video-channel:focus-visible { color: var(--dvm-red); }
.modern-video-channel span { transition: transform .2s ease; }
.modern-video-channel:hover span { transform: translateX(4px); }
.modern-page-copy .video-module-root,
.modern-page-copy .module-blocker-consent-video { display: none !important; }

/* Denkmalschutz-Punktwolke: compact case-study layout. */
.modern-heritage-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #dfe6e9;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-heritage-overview > div { padding: 27px 30px; border-right: 1px solid #e3e8eb; }
.modern-heritage-overview > div:last-child { border-right: 0; }
.modern-heritage-overview strong,
.modern-heritage-overview span { display: block; }
.modern-heritage-overview strong { margin-bottom: 7px; color: var(--dvm-navy); font-size: 1.01rem; letter-spacing: -.014em; }
.modern-heritage-overview span { color: #607080; font-size: .86rem; line-height: 1.55; }
.modern-heritage-intro,
.modern-heritage-process,
.modern-heritage-delivery,
.modern-heritage-gallery,
.modern-heritage-usecases {
  margin-top: 34px;
  overflow: hidden;
  border: 1px solid #dfe6e9;
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(13,31,52,.06);
}
.modern-heritage-kicker { margin: 0 0 11px; color: #9d5b2f; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-heritage-intro h2,
.modern-heritage-process h2,
.modern-heritage-section-heading h2,
.modern-heritage-usecases h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.95rem, 3.15vw, 3rem); line-height: 1.12; letter-spacing: -.038em; }
.modern-heritage-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, .92fr); }
.modern-heritage-intro-copy { padding: clamp(34px, 5vw, 64px); }
.modern-heritage-intro-copy > p:not(.modern-heritage-kicker) { margin: 20px 0 0; color: #526174; line-height: 1.72; }
.modern-heritage-intro-links { display: grid; margin-top: 27px; border-top: 1px solid #dce4e8; }
.modern-heritage-intro-links a { display: flex; align-items: center; justify-content: space-between; padding: 16px 3px; border-bottom: 1px solid #dce4e8; color: var(--dvm-navy); font-weight: 800; }
.modern-heritage-intro-links a:hover,
.modern-heritage-intro-links a:focus-visible { color: var(--dvm-red); }
.modern-heritage-intro-links span { transition: transform .2s ease; }
.modern-heritage-intro-links a:hover span { transform: translateX(4px); }
.modern-heritage-intro-media { position: relative; min-height: 100%; margin: 0; overflow: hidden; background: #071019; }
.modern-heritage-intro-media img { width: 100%; height: 100%; min-height: 550px; object-fit: contain; }
.modern-heritage-intro-media figcaption { position: absolute; right: 24px; bottom: 24px; left: 24px; padding: 13px 15px; border-left: 4px solid #c17c45; color: #fff; background: rgba(13,31,52,.92); font-size: .79rem; font-weight: 700; line-height: 1.45; }
.modern-heritage-process { display: grid; grid-template-columns: minmax(0, .88fr) minmax(430px, 1.12fr); gap: clamp(38px, 6vw, 76px); padding: clamp(34px, 5vw, 62px); color: #dce5ea; background: var(--dvm-navy); }
.modern-heritage-process .modern-heritage-kicker { color: #e9aa73; }
.modern-heritage-process h2 { color: #fff; }
.modern-heritage-process-copy > p:not(.modern-heritage-kicker) { margin: 20px 0 0; color: #c5d2da; line-height: 1.72; }
.modern-heritage-process ol { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.15); }
.modern-heritage-process li { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; padding: 18px 2px; border-bottom: 1px solid rgba(255,255,255,.15); }
.modern-heritage-process li > span { color: #e9aa73; font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.modern-heritage-process li strong,
.modern-heritage-process li small { display: block; }
.modern-heritage-process li strong { color: #fff; font-size: .98rem; }
.modern-heritage-process li small { margin-top: 4px; color: #aebec8; font-size: .8rem; line-height: 1.45; }
.modern-heritage-delivery,
.modern-heritage-gallery { padding: clamp(30px, 4vw, 52px); }
.modern-heritage-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .78fr); gap: 42px; align-items: end; margin-bottom: 30px; padding-bottom: 28px; border-bottom: 1px solid #dfe6e9; }
.modern-heritage-section-heading > p { margin: 0; color: #526174; line-height: 1.7; }
.modern-heritage-delivery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #dfe6e9; border-left: 1px solid #dfe6e9; }
.modern-heritage-delivery-grid article { min-height: 220px; padding: 27px 25px; border-right: 1px solid #dfe6e9; border-bottom: 1px solid #dfe6e9; }
.modern-heritage-delivery-grid article > span { display: block; margin-bottom: 23px; color: #a95c2a; font-size: .73rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.modern-heritage-delivery-grid h3 { margin: 0; color: var(--dvm-navy); font-size: 1.15rem; line-height: 1.3; letter-spacing: -.02em; }
.modern-heritage-delivery-grid p { margin: 13px 0 0; color: #607080; font-size: .87rem; line-height: 1.62; }
.modern-heritage-gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.modern-heritage-gallery-grid figure { position: relative; min-height: 310px; margin: 0; overflow: hidden; border-radius: 4px; background: #071019; }
.modern-heritage-gallery-grid .modern-heritage-gallery-main { grid-column: 1 / -1; min-height: 430px; }
.modern-heritage-gallery-grid img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: contain; }
.modern-heritage-gallery-grid figcaption { position: absolute; right: 18px; bottom: 18px; left: 18px; padding: 11px 13px; color: #fff; background: rgba(13,31,52,.9); font-size: .78rem; font-weight: 700; line-height: 1.4; }
.modern-heritage-usecases { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr); gap: 58px; align-items: center; padding: clamp(34px, 5vw, 60px); }
.modern-heritage-usecases > div > p:not(.modern-heritage-kicker) { margin: 18px 0 0; color: #526174; line-height: 1.72; }
.modern-heritage-usecases ul { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid #dce4e8; }
.modern-heritage-usecases li { padding: 17px 3px; border-bottom: 1px solid #dce4e8; }
.modern-heritage-usecases strong,
.modern-heritage-usecases span { display: block; }
.modern-heritage-usecases strong { color: var(--dvm-navy); font-size: .98rem; }
.modern-heritage-usecases span { margin-top: 5px; color: #607080; font-size: .82rem; line-height: 1.52; }

/* Contextual internal links shared by service, project and regional pages. */
.modern-related { margin-top: 34px; padding: clamp(30px, 4vw, 52px); border: 1px solid #dfe6e9; border-radius: 5px; background: #eef3f5; box-shadow: 0 12px 35px rgba(13,31,52,.05); }
.modern-related-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); gap: 42px; align-items: end; margin-bottom: 28px; }
.modern-related-kicker { margin: 0 0 10px; color: var(--dvm-red); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.modern-related-heading h2 { margin: 0; color: var(--dvm-navy); font-size: clamp(1.75rem, 2.75vw, 2.55rem); line-height: 1.13; letter-spacing: -.035em; }
.modern-related-heading > p { margin: 0; color: #526174; line-height: 1.68; }
.modern-related-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.modern-related-card { display: flex; min-width: 0; min-height: 245px; flex-direction: column; padding: 24px 23px 21px; border: 1px solid #d9e2e6; border-radius: 4px; color: inherit; background: #fff; box-shadow: 0 8px 22px rgba(13,31,52,.05); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.modern-related-card:hover,
.modern-related-card:focus-visible { border-color: #cf8b5c; color: inherit; box-shadow: 0 14px 28px rgba(13,31,52,.1); transform: translateY(-3px); }
.modern-related-card > span { margin-bottom: 18px; color: #a95c2a; font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.modern-related-card strong { color: var(--dvm-navy); font-size: 1.06rem; line-height: 1.32; letter-spacing: -.018em; }
.modern-related-card small { margin-top: 11px; color: #607080; font-size: .83rem; line-height: 1.58; }
.modern-related-card em { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 18px; color: var(--dvm-red); font-size: .79rem; font-style: normal; font-weight: 800; }
.modern-related-card em b { font-size: 1rem; transition: transform .2s ease; }
.modern-related-card:hover em b { transform: translateX(4px); }

@media (max-width: 980px) {
  .modern-page-hero { min-height: 0; grid-template-columns: 1fr; }
  .modern-page-hero-media { min-height: 400px; order: -1; }
  .modern-page-hero-copy { padding-block: 54px 62px; }
  .modern-breadcrumbs { margin-bottom: 30px; }
  .modern-page-layout { grid-template-columns: 1fr; }
  .modern-page-sidebar { position: static; }
  .modern-contact-layout { grid-template-columns: 1fr; }
  .modern-contact-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modern-project-group-heading { grid-template-columns: 1fr; gap: 14px; }
  .modern-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modern-projects-contact { align-items: flex-start; flex-direction: column; }
  .modern-hannover-intro { grid-template-columns: 1fr; }
  .modern-hannover-intro-media,
  .modern-hannover-intro-media img { min-height: 430px; }
  .modern-hannover-section-heading,
  .modern-hannover-process { grid-template-columns: 1fr; }
  .modern-hannover-section-heading { gap: 14px; }
  .modern-hannover-service-grid,
  .modern-hannover-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modern-hannover-region { align-items: flex-start; flex-direction: column; }
  .modern-pointcloud-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modern-pointcloud-overview > div:nth-child(2) { border-right: 0; }
  .modern-pointcloud-overview > div:nth-child(-n+2) { border-bottom: 1px solid #e2e8eb; }
  .modern-pointcloud-intro { grid-template-columns: 1fr; }
  .modern-pointcloud-intro-media { min-height: 420px; }
  .modern-pointcloud-intro-media img { min-height: 420px; }
  .modern-pointcloud-section-heading,
  .modern-pointcloud-step,
  .modern-pointcloud-references { grid-template-columns: 1fr; }
  .modern-pointcloud-section-heading { gap: 14px; }
  .modern-pointcloud-step--reverse .modern-pointcloud-step-copy,
  .modern-pointcloud-step--reverse .modern-pointcloud-step-media,
  .modern-pointcloud-step--reverse .modern-pointcloud-media-pair { order: initial; }
  .modern-pointcloud-benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modern-video-showcase-heading { grid-template-columns: 1fr; gap: 14px; }
	.modern-heritage-intro,
	.modern-heritage-process,
	.modern-heritage-section-heading,
	.modern-heritage-usecases,
	.modern-related-heading { grid-template-columns: 1fr; }
	.modern-heritage-intro-media,
	.modern-heritage-intro-media img { min-height: 430px; }
	.modern-heritage-section-heading,
	.modern-related-heading { gap: 14px; }
	.modern-heritage-delivery-grid,
	.modern-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .modern-subpage { width: min(calc(100% - 28px), 1240px); margin-top: 18px; padding-bottom: 48px; }
  .modern-page-hero-media { min-height: 275px; }
  .modern-page-hero-copy { padding: 38px 24px 47px; }
  .modern-page-hero h1 { font-size: clamp(1.65rem, 7.2vw, 2.25rem); }
  .modern-page-lead { font-size: .96rem; }
  .modern-page-actions { align-items: flex-start; flex-direction: column; }
  .modern-page-copy { padding: 28px 20px; }
  .modern-page-copy .grid-row-root { display: block !important; }
  .modern-page-copy .grid-column-root { width: 100% !important; max-width: none !important; margin-bottom: 20px !important; }
  .modern-page-sidebar { padding: 28px 24px; }
  .modern-page-cta { align-items: flex-start; flex-direction: column; padding: 38px 24px; }
  .modern-contact-layout { gap: 20px; margin-top: 20px; }
  .modern-contact-details { grid-template-columns: 1fr; }
  .modern-contact-intro,
  .modern-contact-card,
  .modern-contact-form-card { padding: 28px 22px; }
  .modern-contact-form-card { margin-top: 20px; }
  .modern-contact-form-card .dvm-contact-form { grid-template-columns: 1fr; }
  .modern-contact-form-card .dvm-contact-form > label:nth-of-type(4),
  .modern-contact-form-card .dvm-consent,
  .modern-contact-form-card .dvm-required,
  .modern-contact-form-card .dvm-contact-form button { grid-column: auto; }
  .modern-projects-overview { grid-template-columns: 1fr; margin-top: 20px; }
  .modern-projects-overview > div { padding: 22px 24px; border-right: 0; border-bottom: 1px solid #e3e8eb; }
  .modern-projects-overview > div:last-child { border-bottom: 0; }
  .modern-projects-groups { gap: 20px; margin-top: 20px; }
  .modern-project-group { padding: 28px 20px; }
  .modern-project-group-heading { margin-bottom: 22px; padding-bottom: 21px; }
  .modern-project-grid { grid-template-columns: 1fr; gap: 18px; }
  .modern-project-card-copy { min-height: 0; }
  .modern-projects-contact { gap: 28px; margin-top: 20px; padding: 34px 24px; }
  .modern-projects-contact-actions { width: 100%; min-width: 0; }
  .modern-hannover-overview { grid-template-columns: 1fr; margin-top: 20px; }
  .modern-hannover-overview > div { padding: 22px 24px; border-right: 0; border-bottom: 1px solid #e3e8eb; }
  .modern-hannover-overview > div:last-child { border-bottom: 0; }
  .modern-hannover-intro,
  .modern-hannover-services,
  .modern-hannover-process,
  .modern-hannover-references,
  .modern-hannover-region { margin-top: 20px; }
  .modern-hannover-intro-copy,
  .modern-hannover-services,
  .modern-hannover-process,
  .modern-hannover-references,
  .modern-hannover-region { padding: 28px 22px; }
  .modern-hannover-intro-media,
  .modern-hannover-intro-media img { min-height: 310px; }
  .modern-hannover-service-grid,
  .modern-hannover-project-grid { grid-template-columns: 1fr; }
  .modern-hannover-service-grid article { min-height: 0; }
  .modern-hannover-project-copy { min-height: 0; }
  .modern-hannover-region { gap: 30px; }
  .modern-hannover-region-actions { width: 100%; min-width: 0; }
  .modern-pointcloud-overview { grid-template-columns: 1fr; margin-top: 20px; }
  .modern-pointcloud-overview > div { border-right: 0; border-bottom: 1px solid #e2e8eb; }
  .modern-pointcloud-overview > div:nth-child(2) { border-right: 0; }
  .modern-pointcloud-overview > div:last-child { border-bottom: 0; }
  .modern-pointcloud-intro,
  .modern-pointcloud-process,
  .modern-pointcloud-benefits,
  .modern-pointcloud-references { margin-top: 20px; }
  .modern-pointcloud-intro-copy,
  .modern-pointcloud-process,
  .modern-pointcloud-benefits,
  .modern-pointcloud-references { padding: 28px 22px; }
  .modern-pointcloud-intro-media,
  .modern-pointcloud-intro-media img { min-height: 300px; }
  .modern-pointcloud-step { gap: 25px; padding: 36px 0; }
  .modern-pointcloud-step-number { width: 42px; height: 42px; margin-bottom: 18px; }
  .modern-pointcloud-media-pair { grid-template-columns: 1fr; }
  .modern-pointcloud-media-pair img { aspect-ratio: 16 / 10; }
  .modern-pointcloud-benefit-grid { grid-template-columns: 1fr; }
  .modern-pointcloud-benefit-grid > div { min-height: 0; }
  .modern-pointcloud-references { gap: 30px; }
  .modern-video-showcase { margin-top: 20px; padding: 28px 22px; }
  .modern-video-grid { grid-template-columns: 1fr; gap: 18px; }
  .modern-video-grid--feature-first .modern-video-card:first-child { grid-column: auto; }
  .modern-video-card-copy { padding: 19px 18px 21px; }
	.modern-heritage-overview { grid-template-columns: 1fr; margin-top: 20px; }
	.modern-heritage-overview > div { padding: 22px 24px; border-right: 0; border-bottom: 1px solid #e3e8eb; }
	.modern-heritage-overview > div:last-child { border-bottom: 0; }
	.modern-heritage-intro,
	.modern-heritage-process,
	.modern-heritage-delivery,
	.modern-heritage-gallery,
	.modern-heritage-usecases,
	.modern-related { margin-top: 20px; }
	.modern-heritage-intro-copy,
	.modern-heritage-process,
	.modern-heritage-delivery,
	.modern-heritage-gallery,
	.modern-heritage-usecases,
	.modern-related { padding: 28px 22px; }
	.modern-heritage-intro-media,
	.modern-heritage-intro-media img { min-height: 300px; }
	.modern-heritage-delivery-grid,
	.modern-heritage-gallery-grid,
	.modern-related-grid { grid-template-columns: 1fr; }
	.modern-heritage-delivery-grid article,
	.modern-related-card { min-height: 0; }
	.modern-heritage-gallery-grid .modern-heritage-gallery-main { grid-column: auto; min-height: 300px; }
	.modern-heritage-gallery-grid figure { min-height: 270px; }
}
