.products-section .product-intro {
  max-width: 360px;
}

.products-section .product-card {
  display: block;
  color: #2c1b16;
}

/* Give the image and its top-right arrow one shared product link. */
.products-section .product-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  z-index: 5;
  cursor: pointer;
}

/* Only Weld Purging Solutions has navigation on the homepage carousel. */
.products-section .item:not(.product-navigation-enabled) a,
.products-section .item:not(.product-navigation-enabled) .product-card::before {
  pointer-events: none;
  cursor: default;
}

/* Only Automation & Infrastructure navigates from the services grid. */
.services-grid .service-card-disabled {
  pointer-events: none;
  cursor: default;
}

/* Only Industrial Automation navigates from its service listing page. */
.service-item:not(.service-navigation-enabled) a {
  pointer-events: none;
  cursor: default;
}

/* Only Weld Purging Solutions navigates from the products listing page. */
.products-page-grid > div:not(.product-navigation-enabled) a {
  pointer-events: none;
  cursor: default;
}

.products-page-grid .product-title-link,
.products-section .product-title-link {
  color: inherit;
}

.products-page-grid .product-title-link:hover,
.products-section .product-title-link:hover {
  color: #0ba2a3;
}

.products-section .product-card:hover {
  color: #0ba2a3;
}

.products-section .product-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
}

.products-section .product-card h3 {
  font-size: clamp(1.35rem, 1.75vw, 1.75rem);
  line-height: 1.1;
  margin: 20px 0 12px;
}

.products-section .product-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.products-section .product-meta span {
  position: relative;
  background: #ecf8f8;
  color: #00282f;
  font-size: 13px;
  line-height: 1;
  padding: 9px 16px;
}

/* Make the complete category badge, including its arrow, clickable. */
.products-section .product-meta span > a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  cursor: pointer;
}

/* The industry badge must not trigger the product-image zoom. */
.products-section .item > .hover:has(.product-meta:hover) .hover-scale-1-2 {
  transform: scale(1);
}

@media (max-width: 991px) {
  .products-section .product-intro {
    max-width: none;
  }

  .products-section .product-card h3 {
    font-size: 1.45rem;
  }
}

/* Prevent a duplicate divider from flashing while a homepage FAQ closes. */
.home-faq .accordion-section-title {
  transition-property: color, background-color;
}

.home-faq .accordion-section-content {
  border-bottom-color: transparent;
}

.home-faq .accordion-section-title.active + .accordion-section-content {
  border-bottom-color: #dddddd;
}

.purpose-section,
.certification-section {
  padding: 90px 0;
}

.purpose-section-heading,
.certification-section-heading {
  margin-bottom: 42px;
}

.purpose-section h2,
.certification-section h2 {
  color: #173f43;
  font-size: clamp(2rem, 3vw, 3.1rem);
  line-height: 0.98;
  margin-bottom: 0;
  text-transform: uppercase;
}

.purpose-section-heading p,
.certification-section-heading p {
  color: #527176;
  font-size: 15px;
  line-height: 1.7;
}

.purpose-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-areas:
    "sparks crane mission"
    "vision crane containers";
}

.purpose-grid-image,
.purpose-card {
  min-height: 250px;
}

.purpose-grid-image {
  overflow: hidden;
}
.purpose-grid-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.purpose-grid-sparks {
  grid-area: sparks;
}
.purpose-grid-crane {
  grid-area: crane;
}
.purpose-grid-containers {
  grid-area: containers;
}

.purpose-card {
  background: #e5f5f6;
  color: #41676c;
  padding: 34px 28px;
}

.purpose-card h3,
.certificate-approvals h3 {
  color: #0ba2a3;
  font-size: 16px;
  margin-bottom: 22px;
  text-transform: uppercase;
}

.purpose-card p,
.purpose-card li {
  font-size: 14px;
  line-height: 1.7;
}

.purpose-card ul {
  margin: 0;
  padding-left: 18px;
}

.certificate-image {
  align-items: center;
  background: #e5f5f6;
  display: flex;
  justify-content: center;
  min-height: 330px;
  padding: 24px;
  height: 100%;
}

.certificate-image img {
  display: block;
  max-height: 320px;
  max-width: 100%;
  object-fit: contain;
}
.certificate-approvals {
  max-width: 520px;
}
.certificate-approvals h3 {
  color: #173f43;
  font-size: 20px;
  text-transform: none;
}

.certificate-approval-item button {
  align-items: center;
  background: transparent;
  border: 0;
  color: #00282fbf;
  display: flex;
  font-family: inherit;
  font-size: 14px;
  justify-content: space-between;
  padding: 13px 0;
  text-align: left;
  width: 100%;
}

/* .certificate-approval-item {
  border-bottom: 1px solid #DDDDDD;
} */

.certificate-approval-item:not(:last-child) {
  border-bottom: 1px solid #dddddd;
}

.certificate-approval-item button span::before {
  content: "+";
  font-size: 21px;
  font-weight: 400;
}
.certificate-approval-item button[aria-expanded="true"] span::before {
  content: "-";
}
.certificate-approval-item .collapse p {
  color: #00282fbf;
  font-size: 13px;
  line-height: 1.45;
  margin: 0;
  padding: 4px 0 10px;
}

/* Override Bootstrap's display:none collapse rule so the content can expand
   from its actual height instead of appearing after the animation finishes. */
.certificate-approval-item .collapse:not(.show) {
  display: block;
}

.certificate-approval-item .collapse {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 360ms cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0s linear 360ms;
  visibility: hidden;
  will-change: max-height;
}

.certificate-approval-item .collapse.is-open {
  transition: max-height 360ms cubic-bezier(0.4, 0, 0.2, 1);
  visibility: visible;
}

.certificate-button {
  background: #0ba2a3;
  color: #fff;
  display: inline-flex;
  gap: 28px;
  margin-top: 35px;
  padding: 13px 35px;
}

.certificate-button:hover {
  background: #087d7e;
  color: #fff;
}

@media (max-width: 991px) {
  .purpose-section,
  .certification-section {
    padding: 65px 0;
  }
  .purpose-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-template-areas: "sparks crane" "vision crane" "mission containers";
  }
  .purpose-section-heading,
  .certification-section-heading {
    margin-bottom: 30px;
  }
  .certificate-approvals {
    max-width: none;
  }
  .certificate-image {
    height: auto;
  }
}

@media (max-width: 575px) {
  .purpose-grid {
    grid-template-columns: 1fr;
    grid-template-areas: "sparks" "vision" "crane" "mission" "containers";
  }
  .purpose-grid-image,
  .purpose-card {
    min-height: 230px;
  }
  .purpose-grid-crane {
    min-height: 420px;
  }
}

/* productdetails */

.benefits-section {
  padding: 80px 0;
  text-align: center;
  background: #e7f6f6;
}

.section-subtitle {
  display: block;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #00282f;
  margin-bottom: 10px;
}

.section-title {
  max-width: 1056px;
  margin: 0 auto 55px;
  font-size: 48px;
  font-weight: 300;
  line-height: 1.08;
  text-transform: uppercase;
  color: #17343d;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.benefit-card {
  background: #00282f14;
  text-align: left;
  padding: 28px;
  min-height: 210px;
  transition: 0.3s;
}

.benefit-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, 0.08);
}

.benefit-card h3 {
  font-size: 24px;
  font-weight: 300;
  text-transform: uppercase;
  margin-bottom: 18px;
  color: #00282f;
  line-height: 1.2;
}

.benefit-card p {
  font-size: 17px;
  line-height: 1.8;
  color: #00282fbf;
}

/* Tablet */

@media (max-width: 992px) {
  .section-title {
    font-size: 40px;
  }

  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile */

@media (max-width: 768px) {
  .benefits-section {
    padding: 60px 0;
  }

  .section-title {
    font-size: 30px;
  }

  .benefits-grid {
    grid-template-columns: 1fr;
  }

  .benefit-card {
    min-height: auto;
  }

  .benefit-card h3 {
    font-size: 24px;
  }

  .benefit-card p {
    font-size: 16px;
  }
}

/* gallery */

.gallery-section {
  padding: 80px 0;
}

.gallery-subtitle {
  display: block;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  text-transform: uppercase;
  color: #00282f;
  margin-bottom: 35px;
  letter-spacing: 1px;
}

.gallery-grid{
    display:flex;
    gap:12px;
    align-items:stretch;
}

.gallery-left{
    flex:1.9;
    display:flex;
    flex-direction:column;
    gap:12px;
    height:580px;
}

.gallery-row{
    display:grid;
    gap:12px;
}

.row-top{
    grid-template-columns:0.8fr 1.2fr;
    flex:280;
}

.row-bottom{
    grid-template-columns:1.2fr 0.8fr;
    flex:240;
}

/* RIGHT IMAGE */
.item3-wrap{
    flex:1;              /* instead of 0.9 */
    height:580px;        /* exactly same as left */
}

.gallery-item{
    overflow:hidden;
    min-width:0;
    min-height:0;
}

.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:.4s;
}

.gallery-item:hover img{
    transform:scale(1.06);
}
/* Tablet */
@media (max-width:992px){

    .gallery-grid{
        flex-direction:column;
    }

    .gallery-left{
        height:auto;
    }

    .row-top,
    .row-bottom{
        grid-template-columns:1fr 1fr;
        height:260px;
        flex:none;
    }

    .gallery-item{
        height:260px;
    }

    .item3-wrap{
        height:260px;
        flex:none;
    }
}

/* Mobile */
@media (max-width:768px){

    .gallery-grid{
        flex-direction:column;
    }

    .gallery-left{
        gap:12px;
    }

    .row-top,
    .row-bottom{
        grid-template-columns:1fr;
        height:auto;
        gap:12px;
    }

    .gallery-item{
        height:220px;
    }

    .item3-wrap{
        height:220px;
    }
}

/* Keep all three homepage hero columns visible and separated on tablets. */
@media (min-width: 766px) and (max-width: 1025px) {
  .home-banner-row {
    --bs-gutter-x: 1.5rem;
    align-items: center;
    flex-wrap: nowrap;
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .home-banner-side {
    display: block;
    flex: 0 0 25%;
    width: 25%;
  }

  .home-banner-side:first-child {
    transform: translateY(35px) !important;
  }

  .home-banner-side:last-child {
    transform: translateY(-35px) !important;
  }

  .home-banner-content {
    flex: 0 0 50%;
    width: 50%;
    min-width: 0;
  }

  .home-banner-content h1 {
    font-size: clamp(38px, 5.2vw, 56px);
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  .home-banner-content p {
    font-size: 14px;
    line-height: 1.5;
  }

  .home-banner-side h3 {
    font-size: clamp(17px, 2.2vw, 23px);
    line-height: 1.2;
  }
}

@media (max-width: 765px) {
  .home-banner-row {
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .home-banner-side {
    position: static;
    top: auto;
    transform: none !important;
  }

  .home-banner-content {
    min-width: 0;
  }

  .home-banner-content h1 {
    overflow-wrap: anywhere;
  }
}
