/* =========================================================
   IONEX ENGINEERS — PRODUCT DETAIL PAGE (e.g. RO Plant)
   Fonts  : Rubik (headings) + Poppins (body)
   Colors : #0091DD · #029340 · #0b1620 · #071019 · #ffffff · #0a0a0a
========================================================= */

:root{
  --blue:   #0091DD;
  --green:  #029340;
  --dark:   #0b1620;
  --dark-2: #071019;
  --white:  #ffffff;
  --black:  #0a0a0a;
  --text:   #4a5a63;
  --light:  #f4f8f9;

  --font-head: 'Rubik', sans-serif;
  --font-body: 'Poppins', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }
a{ text-decoration:none; color:inherit; }
ul, ol{ list-style:none; }
img{ max-width:100%; display:block; }
html{ overflow-x:hidden; }
body{ font-family: var(--font-body); color: var(--text); overflow-x:hidden; }

/* =========================================================
   HERO / BREADCRUMB
========================================================= */
.page-hero{
position: relative;
  width: 100%;
  aspect-ratio: 1905 / 512;

  display: flex;
  align-items: center;

  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; /* Entire image visible */
}
.page-hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(100deg, rgba(11,22,32,.93) 0%, rgba(0, 0, 0, 0.507) 70%);
}
.page-hero-inner{
  position:relative;
  z-index:2;
  max-width: 1300px;
  margin:0 auto;
  padding: 0 clamp(18px, 4vw, 30px);
  width:100%;
}
.breadcrumb{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  font-family: var(--font-head);
  font-weight:500;
  font-size: clamp(12.5px, 1.6vw, 14px);
  color: rgba(255,255,255,.8);
  margin-bottom: 14px;
}
.breadcrumb a:hover{ color:#4fd487; }
.breadcrumb i{ font-size:10px; color: rgba(255,255,255,.5); }
.breadcrumb span{ color:#4fd487; font-weight:600; }

.page-hero-inner h1{
  font-family: var(--font-head);
  font-weight:800;
  font-size: clamp(28px, 5vw, 44px);
  color: var(--white);
}

/* =========================================================
   PRODUCT DETAIL SECTION
========================================================= */
.product-detail-section{
  padding: clamp(50px, 7vw, 90px) clamp(18px, 4vw, 30px);
  background: var(--white);
}

.product-detail-inner{
  max-width: 1300px;
  margin: 0 auto;
  display:grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(30px, 5vw, 60px);
  align-items:start;
}

/* =========================================================
   LEFT — IMAGE SLIDER
========================================================= */
.product-media{ position:sticky; top: 30px; }

.product-slider{ width:100%; }

.slider-main{
  position:relative;
  border-radius: 10px;
  overflow:hidden;
  box-shadow: 0 25px 55px rgba(11,22,32,.14);
  border: 1px solid #eef2f3;
}

.slider-img{
  width:100%;
  height: clamp(280px, 34vw, 460px);
  object-fit: cover;
  cursor: zoom-in;
  transition: transform .5s ease;
}
.slider-img:hover{ transform: scale(1.035); }

.zoom-hint{
  position:absolute;
  bottom: 16px; right: 16px;
  display:flex;
  align-items:center;
  gap:8px;
  background: rgba(11,22,32,.7);
  color: var(--white);
  font-family: var(--font-head);
  font-weight:500;
  font-size: 12px;
  padding: 7px 14px;
  border-radius: 30px;
  pointer-events:none;
  opacity:0;
  transition:.3s;
}
.slider-main:hover .zoom-hint{ opacity:1; }

.slider-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: 42px; height:42px;
  border-radius:50%;
  border:none;
  background: rgba(255,255,255,.92);
  color: var(--dark);
  font-size: 14px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  box-shadow: 0 8px 20px rgba(0,0,0,.15);
  transition:.25s;
}
.slider-nav:hover{ background: var(--green); color: var(--white); }
.slider-nav.prev{ left: 16px; }
.slider-nav.next{ right: 16px; }

/* hide nav / dots / thumbs when only a single image */
.product-slider.single .slider-nav,
.product-slider.single .slider-dots,
.product-slider.single .slider-thumbs{ display:none; }

.slider-dots{
  display:flex;
  justify-content:center;
  gap: 8px;
  margin-top: 16px;
}
.dot{
  width: 8px; height:8px;
  border-radius:50%;
  background: #d7e0e2;
  cursor:pointer;
  transition:.25s;
}
.dot.active{ background: var(--green); width: 22px; border-radius: 5px; }

.slider-thumbs{
  display:flex;
  gap: 12px;
  margin-top: 16px;
  overflow-x:auto;
  padding-bottom: 4px;
}
.thumb{
  width: 74px; height: 60px;
  object-fit:cover;
  border-radius: 6px;
  cursor:pointer;
  opacity:.55;
  border: 2px solid transparent;
  transition:.25s;
  flex-shrink:0;
}
.thumb:hover{ opacity:.85; }
.thumb.active{ opacity:1; border-color: var(--green); }

/* =========================================================
   RIGHT — PRODUCT INFO
========================================================= */
.product-label{
  display:inline-block;
  font-family: var(--font-head);
  font-weight:700;
  font-size: 12.5px;
  letter-spacing: 1.5px;
  text-transform:uppercase;
  color: var(--green);
  background: rgba(2,147,64,.08);
  padding: 6px 16px;
  border-radius: 30px;
  margin-bottom: 16px;
}

.product-info h2{
  font-family: var(--font-head);
  font-weight:800;
  font-size: clamp(26px, 4vw, 36px);
  color: var(--dark);
}

.info-underline{
  display:block;
  width: 60px; height:3px;
  border-radius:3px;
  background: linear-gradient(90deg, var(--green), var(--blue));
  margin: 14px 0 24px;
}

.product-desc{
  font-size: clamp(13.8px, 1.7vw, 14.8px);
  line-height: 1.9;
  color: var(--text);
  font-family:var(--font-body);
  font-weight: 400;
  margin-bottom: 36px;
}

.process-title{
  font-family: var(--font-head);
  font-weight:700;
  font-size: clamp(18px, 2.4vw, 21px);
  color: var(--dark);
  margin-bottom: 26px;
  position:relative;
  padding-left: 18px;
}
.process-title::before{
  content:"";
  position:absolute;
  left:0; top:4px;
  width:5px; height: 20px;
  border-radius:3px;
  background: var(--green);
}

/* ---- timeline steps ---- */
.process-steps{
  position:relative;
  margin-bottom: 40px;
}
.process-steps::before{
  content:"";
  position:absolute;
  top: 6px; bottom: 6px;
  left: 21px;
  width: 2px;
  background: repeating-linear-gradient(180deg, #dfe6e8 0 6px, transparent 6px 12px);
}

.process-steps li{
  position:relative;
  display:flex;
  gap: 20px;
  padding-bottom: 28px;
}
.process-steps li:last-child{ padding-bottom:0; }

.step-num{
  flex-shrink:0;
  width: 44px; height:44px;
  border-radius:50%;
  background: var(--white);
  border: 2px solid var(--green);
  color: var(--green);
  font-family: var(--font-head);
  font-weight:700;
  font-size: 13px;
  display:flex; align-items:center; justify-content:center;
  position:relative;
  z-index:2;
  transition:.3s;
}
.process-steps li:hover .step-num{ background: var(--green); color: var(--white); }

.step-body h4{
  font-family: var(--font-head);
  font-weight:700;
  font-size: 15.5px;
  color: var(--dark);
  margin-bottom: 6px;
  padding-top: 8px;
}
.step-body p{
  font-size: 13.3px;
  line-height: 1.7;
  color: var(--text);
}

/* ---- CTA ---- */
.enquire-btn{
  display:inline-flex;
  align-items:center;
  gap:16px;
  background: var(--green);
  color: var(--white);
  font-family: var(--font-head);
  font-weight:700;
  font-size: 15px;
  padding: 14px 8px 14px 26px;
  border-radius: 50px;
  transition:.3s;
}
.enquire-icon{
  width:38px; height:38px;
  border-radius:50%;
  background: var(--dark);
  display:flex; align-items:center; justify-content:center;
  font-size:14px;
  transition:.3s;
  flex-shrink:0;
}
.enquire-btn:hover{ background: var(--blue); }
.enquire-btn:hover .enquire-icon{ transform: translateX(4px); }

/* =========================================================
   LIGHTBOX
========================================================= */
.lightbox{
  position:fixed; inset:0;
  background: rgba(7,16,25,.94);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:.3s ease;
  z-index: 999;
  padding: 30px;
}
.lightbox.open{ opacity:1; visibility:visible; }

.lightbox img{
  max-width: 90vw;
  max-height: 85vh;
  border-radius: 8px;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
}

.lightbox-close{
  position:absolute;
  top: 26px; right: 30px;
  width: 44px; height:44px;
  border-radius:50%;
  border:none;
  background: rgba(255,255,255,.1);
  color: var(--white);
  font-size:18px;
  cursor:pointer;
  transition:.25s;
}
.lightbox-close:hover{ background: var(--green); }

.lightbox-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width: 50px; height:50px;
  border-radius:50%;
  border:none;
  background: rgba(255,255,255,.1);
  color: var(--white);
  font-size:16px;
  cursor:pointer;
  transition:.25s;
}
.lightbox-nav:hover{ background: var(--green); }
.lb-prev{ left: 24px; }
.lb-next{ right: 24px; }

/* =========================================================
   RESPONSIVE — LAPTOP (≤1199px)
========================================================= */
@media (max-width: 1199px){
  .product-detail-inner{ grid-template-columns: 0.95fr 1.05fr; }
}

/* =========================================================
   RESPONSIVE — TABLET (≤991px)
========================================================= */
@media (max-width: 991px){
  .product-detail-inner{ grid-template-columns: 1fr; }
  .product-media{ position:static; max-width: 560px; margin: 0 auto; }
  .process-steps::before{ left: 21px; }
}

/* =========================================================
   RESPONSIVE — MOBILE (≤575px)
========================================================= */
@media (max-width: 575px){
    .page-hero{
        min-height: 20vh;
    }
  .product-detail-section{ padding: 40px 16px; }
  .slider-nav{ width:36px; height:36px; font-size:12px; }
  .slider-nav.prev{ left:10px; }
  .slider-nav.next{ right:10px; }
  .thumb{ width:60px; height:50px; }

  .process-steps li{ gap:14px; }
  .step-num{ width:38px; height:38px; font-size:11.5px; }
  .step-body h4{ font-size:14.5px; padding-top:4px; }

  .lightbox-close{ top:16px; right:16px; width:38px; height:38px; }
  .lightbox-nav{ width:40px; height:40px; }
  .lb-prev{ left:10px; }
  .lb-next{ right:10px; }
}