/* ============================================================
   TETRACON — Brand Extensions
   Additive components layered on top of style.css. Nothing here
   overrides existing selectors used by the JS controllers.
   ============================================================ */

/* ---------- Hero photo layer ---------- */
.hero-photo {
  position: absolute; inset: 0;
  z-index: -4;
  transform: translateZ(0);
  backface-visibility: hidden;
  will-change: transform;
}
.hero-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1) brightness(0.98) contrast(1.04);
  display: block;
  opacity: 1;
}
.hero-bg {
  background:
    var(--grad-mesh),
    linear-gradient(100deg, rgba(210,234,255,0.72) 0%, rgba(200,228,255,0.38) 45%, rgba(190,222,255,0.16) 100%);
}

/* Extra legibility scrim, scoped to the text column only, so the photo
   stays fully visible across the rest of the hero. */
.hero .container::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(64ch, 92vw);
  height: 120%;
  background: radial-gradient(ellipse 60% 60% at 30% 50%, rgba(224,240,255,0.55) 0%, rgba(224,240,255,0.22) 55%, rgba(224,240,255,0) 80%);
  z-index: -1;
  pointer-events: none;
}
.hero .container { position: relative; }

/* ---------- Section eyebrow icon dot (reuse of existing tokens) ---------- */
.eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); display: inline-block; }

/* ---------- Media frame photography ---------- */
.media-frame img { width: 100%; height: 100%; object-fit: cover; }
.media-frame.is-photo { background: var(--navy-800); }
/* Real product photography (on white/transparent backdrops) needs to be
   letterboxed rather than cropped, or the product gets cut off. */
.media-frame.is-product {
  background: linear-gradient(160deg, #F4F7FB 0%, #E8EEF5 100%);
  padding: var(--space-8);
}
.media-frame.is-product img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 18px 28px rgba(15, 35, 65, 0.16));
}
.product-thumb.is-product-shot { background: linear-gradient(160deg, #F4F7FB 0%, #E8EEF5 100%); }
.product-thumb.is-product-shot img { object-fit: contain; padding: var(--space-5); }
.service-thumb.is-product-shot { background: linear-gradient(160deg, #F4F7FB 0%, #E8EEF5 100%); }
.service-thumb.is-product-shot img { object-fit: contain; padding: var(--space-4); }

/* ---------- Service card photo thumb ---------- */
.service-thumb {
  aspect-ratio: 16/10;
  border-radius: var(--radius-md);
  overflow: hidden;
  margin: calc(var(--space-8) * -1) calc(var(--space-6) * -1) var(--space-5);
}
.service-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
.service-card:hover .service-thumb img { transform: scale(1.08); }

/* ---------- Product thumb photography ---------- */
.product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-mid) var(--ease-out); }
.product-card:hover .product-thumb img { transform: scale(1.08); }

/* ---------- Industry card photography ---------- */
.industry-card-photo { position: absolute; inset: 0; z-index: -1; }
.industry-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.industry-card::before { background: linear-gradient(180deg, rgba(16,21,29,0.15) 0%, rgba(16,21,29,0.92) 100%); }

/* ---------- Principal Manufacturers ---------- */
.manufacturer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}
.manufacturer-card {
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  transition: box-shadow var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out);
}
.manufacturer-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--primary); }
.manufacturer-mark {
  width: 46px; height: 46px;
  border-radius: var(--radius-sm);
  background: var(--bg-alt);
  border: 1px solid var(--border-light);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--teal-600);
  margin-bottom: var(--space-4);
}
.manufacturer-card h4 { font-size: 1.02rem; }
.manufacturer-country {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--gray-500);
  margin-top: 2px;
}
.manufacturer-card p.desc { font-size: var(--fs-small); margin-top: var(--space-3); }
.manufacturer-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-4); }
.manufacturer-tags span {
  font-size: 0.68rem;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: var(--bg-alt);
  color: var(--teal-600);
  border: 1px solid var(--border-light);
}

/* ---------- Clients grid ---------- */
.client-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-4);
}
.client-card {
  aspect-ratio: 4/3;
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--space-2);
  padding: var(--space-4);
  transition: box-shadow var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out);
}
.client-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.client-mark {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--bg-alt);
  color: var(--teal-600);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.85rem;
}
.client-card span { font-size: var(--fs-micro); color: var(--text-secondary); line-height: 1.35; }

/* ---------- Gallery with lightbox ---------- */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
}
.gallery-item {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/5;
  cursor: pointer;
  isolation: isolate;
  border: none;
  display: block;
  width: 100%;
}
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
.gallery-item:hover img { transform: scale(1.12); }
.gallery-caption {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: var(--space-5);
  background: linear-gradient(0deg, rgba(16,21,29,0.88) 0%, transparent 60%);
  text-align: left;
}
.gallery-caption .tag { font-family: var(--font-mono); font-size: var(--fs-micro); color: var(--primary); letter-spacing: var(--ls-wide); text-transform: uppercase; }
.gallery-caption h3 { color: var(--white); font-size: 1.05rem; margin-top: 4px; }

.lightbox-overlay {
  position: fixed; inset: 0;
  background: rgba(16,21,29,0.92);
  display: none;
  align-items: center; justify-content: center;
  z-index: var(--z-modal);
  padding: var(--space-6);
}
.lightbox-overlay.is-open { display: flex; }
.lightbox-figure { max-width: 900px; width: 100%; }
.lightbox-figure img { width: 100%; max-height: 78vh; object-fit: contain; border-radius: var(--radius-md); }
.lightbox-figure figcaption { color: var(--text-on-dark-dim); text-align: center; margin-top: var(--space-4); font-size: var(--fs-small); }
.lightbox-close {
  position: absolute; top: var(--space-6); right: var(--space-6);
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: var(--white);
  display: grid; place-items: center;
}
.lightbox-nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: var(--white);
  display: grid; place-items: center;
}
.lightbox-prev { left: var(--space-6); }
.lightbox-next { right: var(--space-6); }

/* ---------- Office / contact media ---------- */
.office-media { border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 16/10; border: 1px solid var(--border-light); }
.office-media img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Certification badges ---------- */
.cert-strip { display: flex; flex-wrap: wrap; gap: var(--space-6); align-items: center; }
.cert-badge { display: flex; align-items: center; gap: var(--space-3); font-size: var(--fs-small); color: var(--text-secondary); }
.cert-badge .dot-ring { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--primary); display: grid; place-items: center; color: var(--teal-600); font-family: var(--font-display); font-weight: 700; font-size: 0.7rem; flex-shrink: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .manufacturer-grid { grid-template-columns: 1fr; }
  .client-grid { grid-template-columns: repeat(3, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .client-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .service-thumb { margin: calc(var(--space-6) * -1) calc(var(--space-5) * -1) var(--space-5); }
}

/* ============================================================
   TETRACON — Corporate Blue Extensions (topbar, manufacturers,
   industries, clients, downloads, product category pages)
   ============================================================ */

/* ---------- Top bar ---------- */
.topbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: var(--z-nav);
  background: var(--navy-900);
  color: var(--text-on-dark-dim);
  font-size: var(--fs-micro);
}
.topbar-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 38px;
}
.topbar-left { display: flex; gap: var(--space-6); }
.topbar-left a { color: var(--text-on-dark-dim); display: inline-flex; align-items: center; gap: 6px; transition: color var(--dur-fast) var(--ease-out); }
.topbar-left a:hover { color: var(--accent); }
@media (max-width: 720px) { .topbar-left a:first-child span, .topbar { font-size: 0.68rem; } .topbar-left { gap: var(--space-4); } }
@media (max-width: 560px) { .topbar-left a:nth-child(2) { display: none; } }

/* Reserves the exact combined height of the fixed topbar + nav so the
   page content (hero included) always starts below them — no overlap,
   no gap. --header-h is measured and set precisely by navigation.js;
   these are safe fallback values for the instant before JS runs. */
:root { --header-h: 124px; }
@media (max-width: 720px) { :root { --header-h: 86px; } }
body { padding-top: var(--header-h); }
.nav { top: 38px; }
@media (max-width: 720px) {
  .nav { top: 0; }
  .topbar { display: none; }
}

/* ---------- Manufacturer wall (logo cards + popup) ---------- */
.mfg-wall {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
}
.mfg-tile-actions { display: flex; gap: var(--space-2); justify-content: center; margin-top: var(--space-4); }
.mfg-tile-actions button {
  font-size: var(--fs-micro); font-weight: 600;
  padding: 6px 12px; border-radius: var(--radius-pill);
  border: 1px solid var(--border-light);
  background: var(--bg-alt); color: var(--primary);
  transition: all var(--dur-fast) var(--ease-out);
}
.mfg-tile-actions button:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }

.mfg-modal-overlay {
  position: fixed; inset: 0; z-index: var(--z-modal);
  background: rgba(57, 73, 90, 0.55);
  display: none; align-items: center; justify-content: center;
  padding: var(--space-5);
}
.mfg-modal-overlay.is-open { display: flex; }
.mfg-modal {
  background: var(--white); border-radius: var(--radius-lg);
  max-width: 560px; width: 100%; padding: var(--space-8);
  box-shadow: var(--shadow-lg);
  position: relative;
  max-height: 86vh; overflow-y: auto;
}
.mfg-modal-close {
  position: absolute; top: var(--space-5); right: var(--space-5);
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--bg-alt); color: var(--text-primary);
  display: grid; place-items: center;
}
.mfg-modal .mfg-logo { margin-inline: 0; }
.mfg-modal h3 { margin-top: var(--space-4); }
.mfg-modal .manufacturer-tags { margin-top: var(--space-5); }
.mfg-modal .mfg-modal-actions { display: flex; gap: var(--space-3); margin-top: var(--space-6); }

/* ---------- Industries page ---------- */
.industry-list-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
}
.industry-list-card {
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out);
}
.industry-list-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.industry-list-photo { aspect-ratio: 16/9; overflow: hidden; }
.industry-list-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-slow) var(--ease-out); }
.industry-list-card:hover .industry-list-photo img { transform: scale(1.06); }
.industry-list-body { padding: var(--space-6); }
.industry-list-apps { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-4); }
.industry-list-apps span { font-size: 0.7rem; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--bg-alt); color: var(--teal-600); border: 1px solid var(--border-light); }

/* ---------- Clients page ---------- */
.client-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-6); text-align: center; }
.client-stats .num { font-family: var(--font-display); font-weight: 700; font-size: 2.2rem; color: var(--primary); }
.client-stats .lbl { font-size: var(--fs-small); color: var(--text-secondary); margin-top: 4px; }

.client-marquee { overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.client-marquee-track { display: flex; gap: var(--space-5); width: max-content; animation: marquee-scroll 28s linear infinite; }
.client-marquee-track .client-card { width: 160px; flex-shrink: 0; }

/* ---------- Downloads page ---------- */
.download-search { position: relative; max-width: 460px; }
.download-search input {
  width: 100%; padding: 14px 18px 14px 44px;
  border: 1px solid var(--border-light); border-radius: var(--radius-pill);
  font-family: var(--font-body); font-size: var(--fs-small);
  background: var(--white);
}
.download-search svg { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--gray-500); }
.download-list { display: grid; gap: var(--space-4); margin-top: var(--space-8); }
.download-row {
  display: flex; align-items: center; gap: var(--space-5);
  background: var(--white); border: 1px solid var(--border-light);
  border-radius: var(--radius-md); padding: var(--space-5) var(--space-6);
  transition: box-shadow var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out);
}
.download-row:hover { box-shadow: var(--shadow-md); border-color: var(--primary); }
.download-icon { width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--bg-alt); color: var(--primary); display: grid; place-items: center; flex-shrink: 0; }
.download-meta { flex: 1; }
.download-meta h4 { font-size: 0.98rem; }
.download-meta p { font-size: var(--fs-micro); color: var(--text-secondary); margin-top: 2px; }
.download-row { scroll-margin-top: 100px; }
.download-actions { display: flex; align-items: center; gap: var(--space-2); flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; }
.download-actions .btn-sm { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; white-space: nowrap; }
.ds-checking { font-size: var(--fs-micro); color: var(--text-secondary); font-style: italic; }
.download-row.is-pending { opacity: 0.92; }

/* ---------- Product category pages (Galvanic-style) ---------- */
.category-block { padding-block: var(--space-16); border-bottom: 1px solid var(--border-light); }
.category-block:last-child { border-bottom: none; }
.category-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: var(--space-12); align-items: center; }
.category-grid.is-reverse .category-media { order: 2; }
.category-media .media-frame { aspect-ratio: 4/3.3; }
.category-feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); margin-top: var(--space-6); }
.category-feature-grid li { display: flex; gap: var(--space-3); align-items: flex-start; font-size: var(--fs-small); color: var(--text-secondary); }
.category-feature-grid svg { flex-shrink: 0; margin-top: 3px; color: var(--primary); }
.category-apps { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-5); }
.category-apps span { font-size: var(--fs-micro); padding: 5px 12px; border-radius: var(--radius-pill); background: var(--bg-alt); color: var(--teal-600); border: 1px solid var(--border-light); }
.category-cta { display: flex; gap: var(--space-3); margin-top: var(--space-8); flex-wrap: wrap; }
.category-jumplinks { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.category-jumplinks a {
  font-size: var(--fs-small); font-weight: 600; padding: 8px 16px;
  border-radius: var(--radius-pill); border: 1px solid var(--border-light);
  color: var(--text-primary); background: var(--white);
  transition: all var(--dur-fast) var(--ease-out);
}
.category-jumplinks a:hover { background: var(--primary); border-color: var(--primary); color: var(--white); }

.feature-tile-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.feature-tile { background: var(--white); border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: var(--space-6); text-align: center; transition: box-shadow var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out); }
.feature-tile:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.feature-tile .value-icon { margin-inline: auto; }

@media (max-width: 960px) {
  .mfg-wall { grid-template-columns: repeat(2, 1fr); }
  .industry-list-grid { grid-template-columns: 1fr; }
  .client-stats { grid-template-columns: repeat(2, 1fr); }
  .category-grid { grid-template-columns: 1fr; }
  .category-grid.is-reverse .category-media { order: -1; }
  .category-feature-grid { grid-template-columns: 1fr; }
  .feature-tile-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .mfg-wall { grid-template-columns: 1fr; }
  .feature-tile-grid { grid-template-columns: 1fr; }
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- Dual product showcase (category-media variant for 2 products) ---------- */
.category-media.is-dual { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); aspect-ratio: auto; }
.category-media.is-dual .product-card { margin: 0; }
.category-media.is-dual .product-thumb { aspect-ratio: 4/3.3; }
.img-pending {
  width: 100%; height: 100%; min-height: 140px;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg-alt);
  color: var(--gray-500);
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  text-align: center;
  padding: var(--space-4);
}
@media (max-width: 640px) {
  .category-media.is-dual { grid-template-columns: 1fr; }
}

/* ============================================================
   ENHANCEMENTS v2 — Header, Hero, Logos, Cards, Map
   ============================================================ */

/* Nav: transparent at top, frosted white when scrolled.
   A soft top-down scrim (independent of the hero photo's own brightness)
   keeps the white logo/nav-link text legible over any hero image — bright
   sky, smoke, metal, whatever happens to sit behind the header. */
.nav {
  background: linear-gradient(180deg, rgba(5,11,20,0.45) 0%, rgba(5,11,20,0.08) 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 1px solid rgba(255,255,255,0) !important;
  box-shadow: none !important;
  transition: padding var(--dur-mid) var(--ease-out),
              background var(--dur-mid) var(--ease-out),
              backdrop-filter var(--dur-mid) var(--ease-out),
              box-shadow var(--dur-mid) var(--ease-out),
              border-color var(--dur-mid) var(--ease-out);
}
.nav:not(.is-scrolled) .brand,
.nav:not(.is-scrolled) .nav-links a {
  text-shadow: 0 1px 6px rgba(0,0,0,0.45);
}
.nav.is-scrolled {
  background: rgba(255,255,255,0.92) !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  border-bottom: 1px solid rgba(15,35,65,0.08) !important;
  box-shadow: 0 10px 30px -12px rgba(10,20,40,0.18) !important;
  padding-block: 0.85rem;
}
.nav.is-scrolled .brand { color: var(--navy-900); font-size: 1.1rem; transition: color var(--dur-mid), font-size var(--dur-mid); }
.nav.is-scrolled .nav-links a { color: var(--navy-700, #23324a); }
.nav.is-scrolled .nav-links a:hover,
.nav.is-scrolled .nav-links a.active { color: var(--navy-900); }
.nav-links a { transition: color var(--dur-mid) var(--ease-out); font-weight: 500; letter-spacing: 0.01em; }
.nav-links a::after { height: 2px; border-radius: 2px; }

.nav .btn-primary { box-shadow: 0 8px 22px -8px rgba(0,110,150,0.55); }
.nav.is-scrolled .btn-primary { box-shadow: 0 8px 22px -8px rgba(0,110,150,0.35); }

/* Non-home pages start with scrolled look (no dark hero behind) */
body.solid-nav .nav { 
  background: rgba(255,255,255,0.94) !important;
  backdrop-filter: blur(18px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(160%) !important;
  border-bottom: 1px solid rgba(15,35,65,0.08) !important;
  box-shadow: 0 10px 30px -12px rgba(10,20,40,0.14) !important;
}
body.solid-nav .brand { color: var(--navy-900); }
body.solid-nav .nav-links a { color: var(--navy-700, #23324a); }
body.solid-nav .nav-links a:hover,
body.solid-nav .nav-links a.active { color: var(--navy-900); }

/* Brand text on scrolled/solid state */
.brand { transition: color var(--dur-mid) var(--ease-out), font-size var(--dur-mid) var(--ease-out); }

/* Hero — clean, light corporate look (photo stays visible, no dark scrim) */
.hero h1 { text-shadow: none; }
.hero-sub { text-shadow: none; }

/* Manufacturer tile — card polish (hover/transition tweaks merged into the
   canonical .mfg-tile / .mfg-logo rules further down this file) */

/* Product card mfr chip → small logo */
.pcard-mfr {
  background: #fff !important;
  color: var(--navy-800) !important;
  padding: 4px 8px !important;
  border: 1px solid rgba(15,35,65,0.1);
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  height: 26px;
  min-width: 26px;
}
.pcard-mfr img.logo-img { max-height: 18px; max-width: 60px; width: auto; height: auto; object-fit: contain; display: block; }

/* Client cards — logo showcase */
.client-mark {
  background: #fff !important;
  border: 1px solid rgba(15,35,65,0.08) !important;
  display: grid !important;
  place-items: center;
  min-height: 78px;
  padding: 12px !important;
  overflow: hidden;
  color: var(--navy-900) !important;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem !important;
  letter-spacing: 0.02em;
  border-radius: var(--radius-md) !important;
}
.client-mark img.logo-img { max-height: 56px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
.client-card {
  background: #fff;
  border: 1px solid rgba(15,35,65,0.08);
  border-radius: var(--radius-lg);
  padding: 18px 14px;
  transition: transform var(--dur-mid), box-shadow var(--dur-mid), border-color var(--dur-mid);
  text-align: center;
}
.client-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px -18px rgba(10,20,40,0.18);
  border-color: rgba(0,174,239,0.3);
}
.client-card > span:last-child {
  display: block;
  margin-top: 10px;
  font-size: var(--fs-micro);
  color: var(--text-secondary);
  font-weight: 500;
}

/* Mega-nav manufacturer mark → logo */
.mega-mfr-mark { background: #fff !important; color: var(--navy-800) !important; padding: 6px 10px; border-radius: 8px; display: inline-grid; place-items: center; min-width: 40px; min-height: 28px; }
.mega-mfr-mark img.logo-img { max-height: 22px; max-width: 60px; width: auto; height: auto; object-fit: contain; }

/* Manufacturer detail hero mark → logo */
.mfr-mark-big { background: #fff !important; color: var(--navy-900) !important; padding: 16px !important; }
.mfr-mark-big img.logo-img { max-height: 72px; max-width: 180px; width: auto; height: auto; object-fit: contain; }

/* Contact page — office info + map polish */
.office-media { display: none !important; }
.map-frame {
  position: relative;
  width: 100%;
  padding-bottom: 46%;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 20px 40px -22px rgba(10,20,40,0.28);
  border: 1px solid rgba(15,35,65,0.08);
  background: #eef2f7;
}
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 720px) { .map-frame { padding-bottom: 90%; } }

/* CTA banner — refined "Talk to an Engineer" */
.cta-banner {
  background:
    radial-gradient(1200px 400px at 10% 0%, rgba(0,174,239,0.32), transparent 60%),
    radial-gradient(900px 300px at 100% 100%, rgba(0,90,150,0.35), transparent 60%),
    linear-gradient(135deg, #06263f 0%, #0b3a5d 55%, #0e5479 100%) !important;
  border-radius: 22px;
  padding: clamp(28px, 5vw, 56px) clamp(24px, 5vw, 56px);
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 30px 60px -30px rgba(0,20,45,0.55), inset 0 1px 0 rgba(255,255,255,0.06);
}
.cta-banner h2 { color:#fff; letter-spacing:-0.01em; }
.cta-banner .btn { padding: 0.95rem 1.6rem; }

/* Section refinements */
.section-pad { padding-block: clamp(48px, 6vw, 96px); }

/* Focus polish */
.nav-links a:focus-visible { outline: 2px solid var(--cyan-500); outline-offset: 4px; border-radius: 4px; }

/* Downloads section — cleaner rows */
.download-row { transition: transform var(--dur-fast), box-shadow var(--dur-fast), border-color var(--dur-fast); }
.download-row:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -18px rgba(10,20,40,0.22); border-color: rgba(0,174,239,0.35); }

/* Small helpers */
.mfg-logo img[data-broken="1"],
.client-mark img[data-broken="1"],
.pcard-mfr img[data-broken="1"],
.mega-mfr-mark img[data-broken="1"],
.mfr-mark-big img[data-broken="1"] { display: none; }

/* ============================================================
   ENTERPRISE POLISH v2 — additive overrides
   ============================================================ */

/* ---------- HEADER: glassmorphic sticky, always readable ---------- */
.nav {
  padding: 14px 0;
  background: rgba(6, 12, 24, 0.78);
  backdrop-filter: blur(18px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 24px -12px rgba(0,0,0,0.45);
  transition: background var(--dur-mid) var(--ease-out),
              padding var(--dur-mid) var(--ease-out),
              box-shadow var(--dur-mid) var(--ease-out),
              border-color var(--dur-mid) var(--ease-out);
}
.nav.is-scrolled {
  padding: 10px 0;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid rgba(15,30,55,0.08);
  box-shadow: 0 10px 30px -14px rgba(15,30,55,0.18);
}
.nav.is-scrolled .brand { color: var(--navy-900); }
.nav.is-scrolled .nav-links a { color: #2b3a55; }
.nav.is-scrolled .nav-links a:hover,
.nav.is-scrolled .nav-links a.active { color: var(--navy-900); }
.nav-links a.active::after { width: 100% !important; }
body.solid-nav .nav {
  background: rgba(255,255,255,0.94) !important;
  backdrop-filter: blur(18px) saturate(180%);
  border-bottom: 1px solid rgba(15,30,55,0.08);
  box-shadow: 0 10px 30px -14px rgba(15,30,55,0.14);
}
body.solid-nav .brand { color: var(--navy-900); }
body.solid-nav .nav-links a { color: #2b3a55; }
body.solid-nav .nav-links a:hover,
body.solid-nav .nav-links a.active { color: var(--navy-900); }
.nav .btn-primary { transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); }
.nav .btn-primary:hover { transform: translateY(-1px); }

/* ---------- HERO: soft light wash so the photo stays visible ---------- */
.hero-photo::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(200,228,255,0.12) 0%, rgba(200,228,255,0.22) 45%, rgba(190,222,255,0.38) 100%),
    linear-gradient(115deg, rgba(0,87,184,0.10) 0%, rgba(255,255,255,0) 60%);
  pointer-events: none;
}

/* ---------- FEATURE TILES: readable on dark section ---------- */
.section-dark .feature-tile {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
  padding: var(--space-6);
  border-radius: 14px;
  box-shadow: 0 10px 30px -18px rgba(0,0,0,0.6);
  transition: transform var(--dur-mid) var(--ease-out),
              background var(--dur-mid) var(--ease-out),
              border-color var(--dur-mid) var(--ease-out),
              box-shadow var(--dur-mid) var(--ease-out);
}
.section-dark .feature-tile:hover {
  transform: translateY(-6px);
  background: rgba(255,255,255,0.07);
  border-color: rgba(0,174,239,0.45);
  box-shadow: 0 22px 50px -22px rgba(0,120,180,0.55);
}
.section-dark .feature-tile h4 { color: #fff; font-size: 1.05rem; letter-spacing: -0.005em; }
.section-dark .feature-tile p { color: rgba(255,255,255,0.82) !important; font-size: 0.92rem; line-height: 1.55; }
.section-dark .feature-tile .value-icon {
  background: linear-gradient(135deg, rgba(0,174,239,0.22), rgba(0,174,239,0.06));
  color: #7fdcff;
  border: 1px solid rgba(0,174,239,0.35);
  margin-inline: auto var(--space-4);
  width: 48px; height: 48px; border-radius: 12px;
  display: grid; place-items: center;
}

/* ---------- MANUFACTURER TILES: real logos, equal height, premium ---------- */
.mfg-wall { align-items: stretch; }
.mfg-tile {
  display: flex; flex-direction: column;
  min-height: 320px;
  padding: 28px 22px 22px;
  border-radius: 16px;
  background: var(--white);
  border: 1px solid var(--border-light);
  text-align: center;
  cursor: pointer;
  transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out), border-color 0.35s var(--ease-out);
}
.mfg-tile:hover { transform: translateY(-8px); box-shadow: 0 24px 48px -20px rgba(15,30,55,0.22); border-color: var(--primary); }
.mfg-tile h4 { margin-top: 4px; font-size: 1.02rem; }
.mfg-tile .manufacturer-country { font-size: 0.78rem; color: var(--text-secondary); margin-top: 2px; }
.mfg-tile .manufacturer-tags { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.mfg-tile .manufacturer-tags span { font-size: 0.68rem; padding: 3px 9px; border-radius: 999px; background: var(--bg-alt); color: var(--text-secondary); border: 1px solid var(--border-light); }
.mfg-tile-actions { margin-top: auto; padding-top: 16px; }
.mfg-logo {
  width: 130px; height: 78px;
  margin: 0 auto 16px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--border-light);
  box-shadow: 0 4px 14px -8px rgba(15,30,55,0.15);
  display: grid; place-items: center;
  padding: 10px;
  overflow: hidden;
}
.mfg-logo img.logo-img {
  max-width: 100%; max-height: 100%;
  width: auto; height: auto;
  object-fit: contain;
  display: block;
  image-rendering: -webkit-optimize-contrast;
}
.mfg-logo .logo-fallback {
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.1rem; color: var(--primary); letter-spacing: 0.02em;
}

/* Product card mini-logo */
.pcard-mfr {
  min-width: 64px; height: 28px;
  padding: 4px 10px;
  background: rgba(255,255,255,0.94);
  border-radius: 6px;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.pcard-mfr img.logo-img { max-height: 20px; max-width: 60px; object-fit: contain; }

/* Manufacturer detail hero logo */
.mfr-mark-big {
  width: 200px; height: 120px;
  background: #fff !important;
  border-radius: 16px;
  padding: 18px !important;
  display: grid; place-items: center;
  box-shadow: 0 20px 50px -24px rgba(0,0,0,0.5);
}
.mfr-mark-big img.logo-img { max-height: 84px; max-width: 100%; object-fit: contain; }

/* Mega-nav logo chip */
.mega-mfr-mark {
  width: 70px; height: 34px; padding: 4px 6px;
  background: #fff; border-radius: 6px;
  display: grid; place-items: center;
  border: 1px solid var(--border-light);
}
.mega-mfr-mark img.logo-img { max-height: 24px; max-width: 60px; object-fit: contain; }

/* ---------- CLIENT LOGOS: equal grid, premium wall ---------- */
.client-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 18px;
}
.client-item {
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: 14px;
  padding: 24px 18px 18px;
  text-align: center;
  min-height: 150px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), border-color 0.3s var(--ease-out);
}
.client-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px -18px rgba(15,30,55,0.2);
  border-color: var(--primary);
}
.client-mark {
  width: 100%; max-width: 140px; height: 60px;
  display: grid; place-items: center;
  background: transparent;
  padding: 4px;
}
.client-mark img.logo-img {
  max-height: 56px; max-width: 100%; width: auto; height: auto;
  object-fit: contain; filter: none;
}
.client-mark .logo-fallback {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.95rem; color: var(--navy-900); letter-spacing: 0.03em;
}
.client-item span:last-child {
  font-size: 0.75rem; color: var(--text-secondary); font-weight: 500;
}

/* ---------- CTA BANNER: single centered button ---------- */
.cta-banner {
  padding: 56px 48px;
  text-align: center;
  border-radius: 22px;
  background:
    radial-gradient(circle at 20% 0%, rgba(0,174,239,0.35) 0%, transparent 60%),
    linear-gradient(135deg, var(--navy-900) 0%, var(--navy-950) 100%) !important;
  box-shadow: 0 40px 80px -40px rgba(0,80,140,0.5);
  display: flex; flex-direction: column; align-items: center; gap: 22px;
}
.cta-banner > div { max-width: 780px; }
.cta-banner h2 { color: #fff; max-width: none; font-size: clamp(1.6rem, 3vw, 2.2rem); letter-spacing: -0.02em; }
.cta-banner p { margin-inline: auto; }
.cta-banner .btn { padding: 1.05rem 2rem; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.01em; }

/* ---------- DOWNLOADS: manufacturer accordions ---------- */

.mfr-dl-card {
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: 14px;
  padding: 20px;
  display: flex; flex-direction: column; gap: 14px;
  transition: transform 0.25s var(--ease-out), box-shadow 0.25s var(--ease-out), border-color 0.25s var(--ease-out);
}
.mfr-dl-card:hover { transform: translateY(-3px); box-shadow: 0 16px 30px -18px rgba(15,30,55,0.18); border-color: var(--primary); }
.mfr-dl-card .mfr-dl-head {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-light);
}
.mfr-dl-card .mfr-dl-logo {
  width: 72px; height: 44px; padding: 6px;
  background: #fff; border: 1px solid var(--border-light);
  border-radius: 8px; display: grid; place-items: center; flex-shrink: 0;
}
.mfr-dl-card .mfr-dl-logo img { max-height: 32px; max-width: 60px; object-fit: contain; }
.mfr-dl-card .mfr-dl-logo .logo-fallback { font-family: var(--font-display); font-weight: 700; font-size: 0.75rem; color: var(--primary); }
.mfr-dl-card h4 { font-size: 0.95rem; margin: 0; }
.mfr-dl-card .mfr-dl-count { font-size: 0.72rem; color: var(--text-secondary); font-weight: 500; margin-top: 2px; }
.mfr-dl-list { display: flex; flex-direction: column; gap: 6px; }
.mfr-dl-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--bg-alt);
  transition: background 0.2s var(--ease-out);
}
.mfr-dl-item:hover { background: #e8f4fa; }
.mfr-dl-item span { font-size: 0.82rem; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mfr-dl-item a {
  font-size: 0.72rem; font-weight: 600;
  color: var(--primary); text-decoration: none;
  padding: 4px 10px; border-radius: 6px;
  border: 1px solid rgba(0,110,150,0.25); background: #fff;
  flex-shrink: 0;
}
.mfr-dl-item a:hover { background: var(--primary); color: #fff; }
.mfr-dl-item.is-pending { opacity: 0.9; }
.mfr-dl-status { font-size: 0.7rem; color: var(--text-secondary); font-style: italic; flex-shrink: 0; }
.mfr-dl-empty { font-size: 0.78rem; color: var(--text-secondary); font-style: italic; padding: 10px; text-align: center; background: var(--bg-alt); border-radius: 8px; }

/* ---------- CATALOG: pagination pills ---------- */
.pagination { display: flex; gap: 6px; justify-content: center; margin-top: 40px; flex-wrap: wrap; }
.pagination button {
  min-width: 40px; height: 40px; padding: 0 12px;
  border: 1px solid var(--border-light); background: #fff;
  border-radius: 8px; font-weight: 600; font-size: 0.85rem;
  color: var(--text-primary); cursor: pointer;
  transition: all 0.2s var(--ease-out);
}
.pagination button:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
.pagination button.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.pagination button:disabled { opacity: 0.4; cursor: not-allowed; }

/* Remove excess whitespace below catalog grid on short results */
.catalog-grid { align-content: start; }

/* ---------- CONTACT PAGE: clean layout ---------- */
.map-frame {
  border-radius: 16px; overflow: hidden;
  height: 480px;
  box-shadow: 0 20px 50px -28px rgba(15,30,55,0.25);
  border: 1px solid var(--border-light);
}
.map-frame iframe { width: 100%; height: 100%; display: block; border: 0; }
.info-card {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 18px; margin-bottom: 12px;
  background: #fff; border: 1px solid var(--border-light);
  border-radius: 12px;
  transition: box-shadow 0.25s var(--ease-out), border-color 0.25s var(--ease-out);
}
.info-card:hover { box-shadow: 0 12px 24px -16px rgba(15,30,55,0.18); border-color: var(--primary); }
.info-card .value-icon {
  width: 40px; height: 40px; border-radius: 10px;
  background: rgba(0,110,150,0.08); color: var(--primary);
  display: grid; place-items: center; flex-shrink: 0;
}
.info-card h4 { font-size: 0.98rem; margin: 0 0 4px; }
.info-card p { font-size: 0.88rem; color: var(--text-secondary); margin: 0; line-height: 1.5; }

/* ---------- Responsive tweaks ---------- */
@media (max-width: 960px) {
  .mfg-wall { grid-template-columns: repeat(2, 1fr); }
  .cta-banner { padding: 44px 24px; }
}
@media (max-width: 560px) {
  .mfg-wall { grid-template-columns: 1fr; }
  .mfg-tile { min-height: 280px; }
  .mfg-logo { width: 110px; height: 68px; }
  .cta-banner { padding: 36px 20px; border-radius: 16px; }
  .cta-banner .btn { width: 100%; }
  .client-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Client marquee cards (existing markup) */
.client-marquee { overflow: hidden; }
.client-marquee-track {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 18px;
  animation: none !important;
}
.client-card {
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: 14px;
  padding: 22px 16px 16px;
  text-align: center;
  min-height: 140px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out), border-color 0.3s var(--ease-out);
}
.client-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 34px -18px rgba(15,30,55,0.2);
  border-color: var(--primary);
}
.client-card .client-mark {
  width: 100%; max-width: 140px; height: 56px;
  display: grid; place-items: center; background: transparent;
}
.client-card .client-mark img.logo-img {
  max-height: 52px; max-width: 100%; object-fit: contain;
}
.client-card .client-mark .logo-fallback {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.95rem; color: var(--navy-900);
}
.client-card > span:last-child {
  font-size: 0.75rem; color: var(--text-secondary); font-weight: 500; line-height: 1.35;
}
@media (max-width: 560px) {
  .client-marquee-track { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   CLIENTS PAGE — Enterprise upgrade (appended, additive only)
   Scoped entirely to .client-* classes, which are used only on
   clients.html — no other page is affected by this block.
   ============================================================ */

/* ---------- Stat cards (Section 2) ---------- */
.client-stats > div {
  padding: var(--space-6) var(--space-4);
  background: var(--white);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  transition: transform var(--dur-mid) var(--ease-out), box-shadow var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out);
}
.client-stats > div:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 174, 239, 0.3);
}
.client-stats .num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
}
.client-stats .num .suffix { color: var(--accent); font-size: 0.6em; }
.client-stats .lbl { font-weight: 500; margin-top: 6px; }

/* ---------- Featured client logo strip (Section 3) ---------- */
.client-featured-strip { overflow: hidden; position: relative; }
.client-featured-strip::before,
.client-featured-strip::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 90px; z-index: 2; pointer-events: none;
}
.client-featured-strip::before { left: 0; background: linear-gradient(90deg, var(--bg-page), transparent); }
.client-featured-strip::after { right: 0; background: linear-gradient(270deg, var(--bg-page), transparent); }
.client-featured-track {
  display: flex;
  gap: var(--space-5);
  width: max-content;
  animation: marquee 36s linear infinite;
}
.client-featured-strip:hover .client-featured-track,
.client-featured-strip:focus-within .client-featured-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .client-featured-track { animation: none; flex-wrap: wrap; width: 100%; justify-content: center; }
}
.client-feat-card {
  flex-shrink: 0;
  width: 168px;
  height: 92px;
  background: var(--white) !important;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  display: grid;
  place-items: center;
  padding: var(--space-4);
  transition: box-shadow var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out);
}
.client-feat-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
  border-color: rgba(0, 174, 239, 0.3);
}
.client-feat-card .client-mark {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  min-height: 0;
  padding: 0 !important;
}
.client-feat-card .client-mark img.logo-img {
  max-height: 42px;
  max-width: 130px;
  filter: grayscale(100%);
  opacity: 0.55;
  transition: filter var(--dur-mid) var(--ease-out), opacity var(--dur-mid) var(--ease-out);
}
.client-feat-card:hover .client-mark img.logo-img {
  filter: grayscale(0%);
  opacity: 1;
}
.client-feat-card .client-mark .logo-fallback {
  font-size: 0.85rem;
  opacity: 0.6;
  transition: opacity var(--dur-mid) var(--ease-out);
}
.client-feat-card:hover .client-mark .logo-fallback { opacity: 1; }
@media (max-width: 640px) {
  .client-feat-card { width: 138px; height: 78px; }
}

/* ---------- Client showcase grid (Section 5) — exact column spec ---------- */
.client-card { box-shadow: var(--shadow-sm); }
.client-grid {
  grid-template-columns: repeat(5, 1fr) !important;
  gap: var(--space-5) !important;
}
@media (max-width: 960px) {
  .client-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 640px) {
  .client-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ============================================================
   LOGO CONTAINMENT — final safety net
   Several logo containers accumulated slightly different sizing rules
   over past edits (duplicate .mfg-logo / .pcard-mfr / .mfr-mark-big /
   .mega-mfr-mark / .client-mark blocks earlier in this file). Rather
   than rely on cascade order between all of them, this block is the
   single authoritative rule, placed last and marked !important, that
   guarantees every logo image is scaled to fit fully inside its box
   with no overflow/clipping — regardless of the source image's own
   width or height.
   ============================================================ */
.mfg-logo,
.pcard-mfr,
.mega-mfr-mark,
.mfr-mark-big,
.client-mark,
.mfr-dl-logo {
  overflow: hidden !important;
  position: relative !important;
}
.mfg-logo img.logo-img,
.pcard-mfr img.logo-img,
.mega-mfr-mark img.logo-img,
.mfr-mark-big img.logo-img,
.client-mark img.logo-img,
.mfr-dl-logo img.logo-img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}

/* Client Showcase grid — scoped fix for logos rendering taller than their
   box (percentage height on the image can't resolve inside the auto-sized
   grid row of .client-mark, so it silently falls back to auto and gets
   clipped by overflow:hidden). Scoped to .client-card .client-mark only —
   does NOT touch .mfg-logo/.pcard-mfr/.mega-mfr-mark/.mfr-mark-big/
   .mfr-dl-logo, which size their containers differently and were not
   affected by this issue. */
.client-card .client-mark img.logo-img {
  position: absolute !important;
  inset: 0 !important;
}

/* Trusted By Industry Leaders marquee — same fix as the Client Showcase
   grid above, scoped to .client-feat-card only. The image's percentage
   height can't resolve inside .client-mark's auto-sized grid row, so it
   silently falls back to natural aspect ratio and gets clipped by
   overflow:hidden. This does not touch any other logo container. */
.client-feat-card .client-mark img.logo-img {
  position: absolute !important;
  inset: 0 !important;
}
.mfg-logo img.logo-img,
.pcard-mfr img.logo-img,
.mega-mfr-mark img.logo-img,
.mfr-mark-big img.logo-img,
.mfr-dl-logo img.logo-img {
  position: absolute !important;
  inset: 0 !important;
}
.client-card .client-mark img.logo-img {
  position: absolute !important;
  inset: 0 !important;
}

.client-feat-card .client-mark img.logo-img {
  position: absolute !important;
  inset: 0 !important;
}
/* ============================================================
   MANUFACTURER LOGO FIX — DEFINITIVE OVERRIDE
   Placed last on purpose so it wins over every earlier conflicting
   rule in this file for these logo boxes — several of which set
   different max-height/max-width/width/height values above, which
   is why the logos were still showing cropped/half-cut.
   ============================================================ */
.mfg-logo,
.pcard-mfr,
.mega-mfr-mark,
.mfr-mark-big,
.mfr-dl-logo {
  position: relative !important;
  overflow: hidden !important;
}
.mfg-logo img.logo-img,
.pcard-mfr img.logo-img,
.mega-mfr-mark img.logo-img,
.mfr-mark-big img.logo-img,
.mfr-dl-logo img.logo-img {
  position: absolute !important;
  inset: 15% !important;
  width: 70% !important;
  height: 70% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}