
/*
  TECHNOGEN SAFE VISUAL OVERLAY
  Purpose: restore card layouts and machinery image containment without replacing site.css.
  Loaded AFTER assets/site.css, so these rules win without deleting existing design work.
*/

/* ---------- Product catalogue / reusable machinery cards ---------- */
.catalog-product-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid #d8e2e6 !important;
}
.catalog-product-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 230px !important;
  width:100% !important;
  height:230px !important;
  min-height:230px !important;
  max-height:230px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  padding:18px !important;
  background:#fff !important;
  border-bottom:1px solid #e1e8eb !important;
}
.catalog-product-media img,
.catalog-product-card .catalog-product-media img,
.related-product-cards .catalog-product-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  box-sizing:border-box !important;
  padding:0 !important;
  margin:auto !important;
  transform:none !important;
}
.catalog-product-card:hover .catalog-product-media img,
.catalog-product-card:hover img{
  transform:none !important;
}
.catalog-product-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
}
.catalog-product-actions{
  margin-top:auto !important;
}

/* Homepage category/machinery imagery: never crop a machine */
.category-feature-image{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#fff !important;
}
.category-feature-image img{
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  transform:none !important;
}

/* ---------- Homepage Turnkey Projects ---------- */
.home-turnkey-section .container,
.home-updates-section .container{
  width:min(1180px,calc(100% - 40px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.home-turnkey-section .section-heading,
.home-updates-section .section-heading{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:24px !important;
  margin-bottom:24px !important;
}
.home-turnkey-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
}
.home-turnkey-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid #d8e2e6 !important;
  box-shadow:0 10px 24px rgba(18,52,71,.055) !important;
}
.home-turnkey-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:190px !important;
  min-height:190px !important;
  overflow:hidden !important;
  padding:14px !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border-bottom:1px solid #e3e9ec !important;
}
.home-turnkey-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:auto !important;
}
.home-turnkey-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  gap:10px !important;
  padding:20px !important;
}
.home-turnkey-body>span{
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#17647c !important;
}
.home-turnkey-body h3{
  margin:0 !important;
  font-size:21px !important;
  line-height:1.28 !important;
}
.home-turnkey-body p{
  margin:0 0 4px !important;
  line-height:1.6 !important;
  color:#61717a !important;
}
.home-turnkey-body .text-link{
  margin-top:auto !important;
  padding-top:6px !important;
}

/* ---------- Homepage Updates ---------- */
.home-update-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
}
.home-update-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid #d8e2e6 !important;
  box-shadow:0 10px 24px rgba(18,52,71,.055) !important;
}
.home-update-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:190px !important;
  min-height:190px !important;
  overflow:hidden !important;
  padding:14px !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border-bottom:1px solid #e3e9ec !important;
}
.home-update-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:auto !important;
}
.home-update-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  gap:10px !important;
  padding:20px !important;
}
.home-update-body>span{
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#17647c !important;
}
.home-update-body h3{
  margin:0 !important;
  font-size:20px !important;
  line-height:1.3 !important;
}
.home-update-body p{
  margin:0 0 4px !important;
  line-height:1.6 !important;
  color:#61717a !important;
}
.home-update-body .text-link{
  margin-top:auto !important;
  padding-top:6px !important;
}

/* ---------- Turnkey detail: compact professional engineering presentation ---------- */
.turnkey-overview-section{
  padding-top:62px !important;
  padding-bottom:60px !important;
}
.turnkey-overview{
  display:grid !important;
  grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr) !important;
  gap:48px !important;
  align-items:center !important;
}
.turnkey-overview-copy .lead{
  max-width:820px !important;
  line-height:1.72 !important;
  color:#5d6f78 !important;
}
.turnkey-overview-panel{
  padding:26px 28px !important;
  background:#fff !important;
  border:1px solid #d5e0e4 !important;
  box-shadow:0 10px 28px rgba(16,54,70,.05) !important;
}
.turnkey-overview-label{
  display:block !important;
  margin-bottom:10px !important;
  font-size:11px !important;
  font-weight:850 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#17647c !important;
}
.turnkey-overview-panel strong{
  display:block !important;
  margin-bottom:10px !important;
  font-size:17px !important;
  line-height:1.55 !important;
  color:#153342 !important;
}
.turnkey-overview-panel p{
  margin:0 !important;
  line-height:1.62 !important;
  color:#63747d !important;
}

.turnkey-flow-section{
  padding-top:68px !important;
  padding-bottom:74px !important;
}
.turnkey-flow-section .container,
.turnkey-support-section .container,
.turnkey-input-section .container{
  width:min(1180px,calc(100% - 40px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.turnkey-heading{
  max-width:860px !important;
  margin-bottom:28px !important;
}
.turnkey-heading p{
  max-width:780px !important;
  line-height:1.65 !important;
  color:#63747d !important;
}
.turnkey-flow-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
  counter-reset:none !important;
}
.turnkey-flow-grid>li{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid #d7e1e5 !important;
  box-shadow:0 8px 22px rgba(17,56,72,.045) !important;
  list-style:none !important;
}
.turnkey-flow-grid>li::before,
.turnkey-flow-grid>li::after{
  content:none !important;
  display:none !important;
}
.turnkey-flow-top{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  min-height:48px !important;
  padding:11px 16px !important;
  background:#f5f8f9 !important;
  border-bottom:1px solid #dfe7ea !important;
}
.turnkey-stage-index{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:34px !important;
  flex:0 0 34px !important;
  border:1px solid #cddce1 !important;
  background:#fff !important;
  color:#174f64 !important;
  font-size:12px !important;
  font-weight:900 !important;
}
.turnkey-stage-status{
  font-size:10px !important;
  font-weight:850 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#667981 !important;
}
.turnkey-flow-media,
.turnkey-flow-placeholder{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:205px !important;
  min-height:205px !important;
  max-height:205px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border-bottom:1px solid #e2e9ec !important;
}
.turnkey-flow-media{
  padding:16px !important;
}
.turnkey-flow-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:0 !important;
  margin:auto !important;
}
.turnkey-flow-placeholder{
  position:relative !important;
  flex-direction:column !important;
  gap:10px !important;
  padding:24px !important;
  background:linear-gradient(145deg,#f8fafb,#eef4f6) !important;
  text-align:center !important;
}
.turnkey-flow-placeholder::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  inset:20px !important;
  border:1px solid #d9e5e9 !important;
}
.turnkey-flow-placeholder span,
.turnkey-flow-placeholder small{
  position:relative !important;
  z-index:1 !important;
}
.turnkey-flow-placeholder span{
  font-size:38px !important;
  line-height:1 !important;
  font-weight:300 !important;
  color:#c38b29 !important;
}
.turnkey-flow-placeholder small{
  max-width:210px !important;
  font-size:12px !important;
  line-height:1.45 !important;
  font-weight:800 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
  color:#315d6d !important;
}
.turnkey-flow-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  padding:19px 19px 20px !important;
}
.turnkey-flow-body h3{
  margin:0 0 9px !important;
  font-size:19px !important;
  line-height:1.3 !important;
  color:#153342 !important;
}
.turnkey-flow-body p{
  margin:0 0 16px !important;
  font-size:14px !important;
  line-height:1.6 !important;
  color:#63747d !important;
}
.turnkey-flow-body .text-link,
.turnkey-configured{
  margin-top:auto !important;
}
.turnkey-configured{
  display:block !important;
  padding-top:11px !important;
  border-top:1px solid #e5ecef !important;
  font-size:12px !important;
  font-weight:800 !important;
  color:#17647c !important;
}

/* Turnkey support: 3 x 2 compact capability matrix */
.turnkey-support-section{
  padding-top:68px !important;
  padding-bottom:72px !important;
}
.turnkey-support-grid-pro{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:0 !important;
  width:100% !important;
  border-top:1px solid #d8e2e6 !important;
  border-left:1px solid #d8e2e6 !important;
}
.turnkey-support-pro{
  display:grid !important;
  grid-template-columns:42px minmax(0,1fr) !important;
  gap:13px !important;
  margin:0 !important;
  padding:22px 20px !important;
  background:#fff !important;
  border-right:1px solid #d8e2e6 !important;
  border-bottom:1px solid #d8e2e6 !important;
}
.turnkey-support-no{
  padding-top:2px !important;
  color:#bd861f !important;
  font-size:12px !important;
  font-weight:900 !important;
}
.turnkey-support-pro h3{
  margin:0 0 7px !important;
  font-size:17px !important;
  line-height:1.3 !important;
}
.turnkey-support-pro p{
  margin:0 !important;
  font-size:14px !important;
  line-height:1.58 !important;
  color:#63747d !important;
}

/* Requirements: boxed engineering intake matrix, not loose text */
.turnkey-input-section{
  padding-top:68px !important;
  padding-bottom:72px !important;
}
.turnkey-input-card{
  display:grid !important;
  grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr) !important;
  gap:36px !important;
  padding:32px !important;
  background:#fff !important;
  border:1px solid #d5e0e4 !important;
  box-shadow:0 10px 28px rgba(16,54,70,.045) !important;
}
.turnkey-input-copy h2{
  margin:.3rem 0 .7rem !important;
}
.turnkey-input-copy p{
  margin:0 !important;
  line-height:1.68 !important;
  color:#63747d !important;
}
.turnkey-input-list{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  width:100% !important;
  border-top:1px solid #dce6e9 !important;
  border-left:1px solid #dce6e9 !important;
}
.turnkey-input-item{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  gap:10px !important;
  margin:0 !important;
  padding:15px 14px !important;
  border-right:1px solid #dce6e9 !important;
  border-bottom:1px solid #dce6e9 !important;
}
.turnkey-input-item>span{
  padding-top:2px !important;
  font-size:11px !important;
  font-weight:900 !important;
  color:#bd861f !important;
}
.turnkey-input-item strong{
  display:block !important;
  margin:0 0 3px !important;
  font-size:14px !important;
  line-height:1.35 !important;
}
.turnkey-input-item small{
  display:block !important;
  font-size:12px !important;
  line-height:1.48 !important;
  color:#6b7a82 !important;
}

.turnkey-final-cta{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:36px !important;
  padding:30px 32px !important;
  background:#fff !important;
  border:1px solid #d5e0e4 !important;
}
.turnkey-final-cta h2{
  margin:.25rem 0 .5rem !important;
}
.turnkey-final-cta p{
  max-width:720px !important;
  margin:0 !important;
  line-height:1.62 !important;
  color:#63747d !important;
}

@media (max-width:980px){
  .home-turnkey-grid,
  .home-update-grid,
  .turnkey-flow-grid,
  .turnkey-support-grid-pro{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .turnkey-overview,
  .turnkey-input-card{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:640px){
  .home-turnkey-section .container,
  .home-updates-section .container,
  .turnkey-flow-section .container,
  .turnkey-support-section .container,
  .turnkey-input-section .container{
    width:min(100% - 28px,1180px) !important;
  }
  .catalog-product-media{
    flex-basis:210px !important;
    height:210px !important;
    min-height:210px !important;
    max-height:210px !important;
  }
  .home-turnkey-grid,
  .home-update-grid,
  .turnkey-flow-grid,
  .turnkey-support-grid-pro,
  .turnkey-input-list{
    grid-template-columns:1fr !important;
  }
  .home-turnkey-section .section-heading,
  .home-updates-section .section-heading{
    align-items:flex-start !important;
    flex-direction:column !important;
  }
  .turnkey-flow-media,
  .turnkey-flow-placeholder{
    height:195px !important;
    min-height:195px !important;
    max-height:195px !important;
  }
  .turnkey-input-card{
    padding:22px 18px !important;
  }
  .turnkey-final-cta{
    display:block !important;
    padding:24px 20px !important;
  }
  .turnkey-final-cta .btn{
    margin-top:18px !important;
  }
}


/* === Product Landing Page refinement: 2026-10-10 === */

/* Machine Overview defaults to professional justified body copy.
   Explicit inline alignment from the rich editor can still override this rule. */
.product-overview-copy > p:not(.eyebrow),
.product-overview-copy > div p,
.product-overview-copy blockquote{
  text-align:justify;
  text-justify:inter-word;
}

/* Keep headings/labels natural rather than justified. */
.product-overview-copy h2,
.product-overview-copy h3,
.product-overview-copy h4,
.product-overview-copy .eyebrow,
.product-overview-copy dt,
.product-overview-copy dd{
  text-align:left;
}

/* Cleaner heading blocks after removal of internal CMS instruction text. */
.applications-band .section-heading,
.product-feature-band .section-heading,
#interlocks .section-heading{
  grid-template-columns:1fr !important;
  max-width:860px;
}

/* Product RFQ: clearer conversion block and form state. */
.product-rfq-form .status{
  grid-column:1 / -1;
  margin:0 0 14px;
  padding:12px 14px;
  border-left:3px solid #2b7a54;
  background:#eef8f2;
  color:#235d42;
  font-weight:700;
  line-height:1.5;
}
.product-rfq-form textarea{
  min-height:120px;
}

/* === Product Landing Page structure refinement: 2026-10-10 v2 === */
.product-section-heading{
  display:flex;
  align-items:center;
  gap:13px;
  margin:0 0 22px;
}
.product-section-heading>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border:1px solid #c9d9df;
  background:#fff;
  color:#16627a;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.product-section-heading h2{
  margin:0!important;
  font-size:clamp(24px,2.3vw,34px);
  line-height:1.15;
}
.section-heading-wide{
  max-width:900px;
}
.operating-principle-card .product-section-heading{
  margin-bottom:18px;
}
.applicable-industry-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.applicable-industry-card{
  display:flex;
  align-items:center;
  gap:13px;
  min-height:72px;
  padding:17px 18px;
  background:#fff;
  border:1px solid #d8e3e7;
}
.applicable-industry-card>span{
  font-size:11px;
  font-weight:900;
  color:#c28720;
}
.applicable-industry-card strong{
  font-size:15px;
  line-height:1.35;
  color:#173443;
}
@media(max-width:900px){
  .applicable-industry-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:600px){
  .applicable-industry-grid{grid-template-columns:1fr;}
  .product-section-heading{align-items:flex-start;}
}
