/* DMT image presentation upgrade. All photography is served locally. */
:root { --photo-green: #174f3c; --photo-gold: #d9af54; }
.home-hero { background: linear-gradient(115deg, #101b17, #121918 65%, #1c2d25); }
.hero-layout { gap: 45px; }
.visual-image { inset: 16px 0 16px 16px; border-radius: 24px 100px 24px 24px; box-shadow: 0 28px 65px #0004; }
.visual-image img { filter: none; object-position: 36% center; transform: scale(1); animation: dmtPhotoDrift 24s ease-in-out infinite alternate; }
.visual-overlay { background: linear-gradient(0deg, #071b14b0, transparent 48%), linear-gradient(90deg, #0a211218, transparent 60%); }
.hero-visual::after { border-color: var(--photo-gold); top: -2px; right: -12px; }
.hero-visual-top { left: -3px; }
.vertical-label { text-shadow: 0 2px 8px #0008; }
.orbit-mark { background: #11362638; backdrop-filter: blur(5px); }
.orbit-mark span:first-child { border-color: var(--photo-gold); }
.floating-card { box-shadow: 0 15px 40px #071b1426; }
.floating-card-icon { background: #edf5f0; color: var(--photo-green); }
.hero-metrics strong { color: #fff; }
.pillar-card { overflow: hidden; border-radius: 18px; }
.pillar-media { display: block; position: relative; overflow: hidden; aspect-ratio: 1.9; border-radius: 10px; margin-bottom: 24px; background: #e6ece8; }
.pillar-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.pillar-card:hover .pillar-media img { transform: scale(1.035); }
.pillar-card h3 { margin-top: 24px; }
.service-card { border-radius: 18px; box-shadow: 0 5px 18px #163c2605; }
.service-photo, .related-grid .service-photo { aspect-ratio: 1.5; background: #e8eee9; }
.service-photo::after { background: linear-gradient(0deg, #0b26120c, transparent 40%); }
.service-photo img { object-position: center; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
.service-card:hover .service-photo img { transform: scale(1.035); }
.service-card:hover { border-color: #becfc5; box-shadow: 0 18px 45px #133b2612; }
.service-type { color: var(--photo-green); }
.has-hero-photo .page-hero-inner { grid-template-columns: 1.12fr .88fr; gap: 56px; padding-block: 54px; min-height: 415px; }
.has-hero-photo { background: linear-gradient(115deg, #101d18, #182a21); }
.has-hero-photo::before { background: radial-gradient(ellipse, #c5a64d13, transparent 65%); }
.has-hero-photo h1 { font-size: clamp(2.6rem, 4.4vw, 4.5rem); overflow-wrap: break-word; }
.page-hero-photo { position: relative; min-width: 0; aspect-ratio: 1.5; border-radius: 18px 65px 18px 18px; overflow: hidden; box-shadow: 0 18px 55px #0003; background: #294636; }
.page-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.photo-brand-line { position: absolute; left: 0; bottom: 0; right: 0; height: 4px; background: linear-gradient(90deg, #d9af54 0 33.3%, #b91f33 33.3% 66.6%, #309b50 66.6%); }
.split-feature-image { min-height: 0; aspect-ratio: 1.5; border-radius: 20px; align-self: center; box-shadow: 0 18px 45px #152b1810; }
.split-feature-image img { display: block; height: 100%; width: 100%; object-fit: cover; }
.detail-image { height: auto; aspect-ratio: 1.5; border-radius: 18px 18px 0 0; }
.about-band-portrait > img { filter: none; }
.leader-photo > img, .about-band-portrait > img { image-rendering: auto; }
.client-logo-card img { width: auto; height: auto; max-width: 100%; max-height: 62px; object-fit: contain; }
.client-logo-large img { max-height: 72px; }
.region-image img, .map-panel img { object-fit: contain; }
.region-image { padding-bottom: 53px; }
.image-corner-label { left: 20px; bottom: 15px; }
@keyframes dmtPhotoDrift { from { transform: scale(1); } to { transform: scale(1.035); } }
@media (max-width: 1170px) {
  .hero-layout { gap: 25px; }
  .has-hero-photo .page-hero-inner { gap: 32px; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .hero-layout { gap: 18px; }
  .visual-image { inset: 16px 0 16px 10px; }
  .hero-visual-top { left: -9px; }
  .has-hero-photo .page-hero-inner { grid-template-columns: 1.1fr .9fr; }
}
@media (max-width: 760px) {
  .hero-layout { gap: 32px; }
  .hero-visual { height: auto; aspect-ratio: 1.27; max-width: 565px; }
  .visual-image { inset: 12px 0 10px 16px; border-radius: 18px 74px 18px 18px; }
  .visual-image img { object-position: 32% center; }
  .hero-visual::after { width: 100px; height: 100px; right: -6px; }
  .hero-visual-top { left: 0; top: 35px; }
  .floating-card { left: 0; bottom: 46px; }
  .hero-visual-bottom { bottom: 23px; }
  .pillar-media { margin-bottom: 20px; }
  .has-hero-photo .page-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 38px 44px; }
  .has-hero-photo h1 { font-size: clamp(2.4rem, 7.5vw, 3.75rem); }
  .page-hero-photo { display: block; width: 100%; max-width: 570px; aspect-ratio: 1.65; border-radius: 16px 48px 16px 16px; }
  .has-hero-photo .breadcrumbs { margin-bottom: 26px; }
  .split-feature-image { width: 100%; max-width: 650px; }
}
@media (max-width: 520px) {
  .client-logo-card img { max-height: 55px; }
  .hero-visual { height: auto; aspect-ratio: 1.08; }
  .visual-image { inset-inline-start: 12px; }
  .visual-image img { object-position: 29% center; }
  .floating-card { bottom: 42px; }
  .service-photo, .related-grid .service-photo { aspect-ratio: 1.5; }
  .pillar-media { aspect-ratio: 1.8; }
  .page-hero-photo { aspect-ratio: 1.5; }
}
@media (prefers-reduced-motion: reduce) {
  .visual-image img { animation: none; transform: none; }
  .service-photo img, .pillar-media img { transition: none; }
  .service-card:hover .service-photo img, .pillar-card:hover .pillar-media img { transform: none; }
}
