Cooling Towers
Mechanical Draft, Natural Draft, Hybrid
Aftermarket
Refurbishment, Upgrades, Spare Parts
Our Global Reach
With offices in Switzerland, South Africa, India, Italy and Australia, the group delivers cooling towers, air cooled condensers, and comprehensive aftermarket services worldwide.
.world-map{
position: relative; width: 100%; max-width: 1200px; margin: 0 auto;
aspect-ratio: 16/9; background-color: transparent;
background-image: url('https://cicgroup.com/nextcooling/wp-content/uploads/sites/6/2025/08/map-white-no-dots-scaled.png');
background-repeat: no-repeat; background-position: center; background-size: contain; overflow: visible;
}
.pin{ position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%); background:transparent; border:0; padding:0; cursor:pointer; outline:none; }
@keyframes pulse{0%{transform:scale(1); box-shadow:0 0 0 4px rgba(255,255,255,.35);}50%{transform:scale(1.3); box-shadow:0 0 0 8px rgba(255,255,255,.2);}100%{transform:scale(1); box-shadow:0 0 0 4px rgba(255,255,255,.35);} }
.dot{ width:10px; height:10px; border-radius:50%; background:#fff; display:block; animation:pulse 1.8s infinite ease-in-out; transition:transform .18s ease, box-shadow .18s ease; }
.pin:hover .dot{ animation:none; transform:scale(1.45); box-shadow:0 0 0 6px rgba(255,255,255,.45); }
/* Tooltip: title only */
.tip{
position: absolute; inset: auto auto 14px 14px; display: inline-block;
background: rgba(10,25,33,.96); color: #f7fafc; border-radius: 0; padding: 8px 12px;
box-shadow: 0 12px 30px rgba(0,0,0,.35); opacity: 0; transform: translateY(8px);
transition: opacity .2s ease, transform .2s ease; pointer-events: none; z-index: 9999; text-align: left;
max-width: calc(100vw - 32px); white-space: nowrap;
}
.tip .title{ margin:0; font-weight:800; font-size:16px; color:#fff; }
.pin:hover .tip, .pin:focus-visible .tip{ opacity:1; transform:translateY(0); }
.tip .details{ display:none !important; } /* hide email/countries on hover */
.pin.flip .tip{ inset:auto 22px 20px auto; }
/* Lightbox */
.map-lightbox{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:100000; }
.map-lightbox.is-open{ display:flex; }
.map-lightbox__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.6); }
.map-lightbox__dialog{ position:relative; width:min(560px,92vw); background:rgba(10,25,33,.98); color:#f7fafc; border-radius:0; padding:18px; box-shadow:0 20px 50px rgba(0,0,0,.5); }
.map-lightbox__close{ position:absolute; top:8px; right:10px; width:34px; height:34px; border-radius:50%; border:0; background:rgba(255,255,255,.12); color:#fff; font-size:22px; line-height:34px; text-align:center; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.map-lightbox__title{ font-size:18px; font-weight:800; margin:4px 0 10px; }
.map-lightbox__body{ font-size:15px; line-height:1.5; }
.map-lightbox__email{ display:inline-block; margin:0 0 6px; color:#4ecaff; text-decoration:underline; text-underline-offset:2px; font-weight:600; }
.map-lightbox__address{ margin:8px 0 0; }
body.map-lightbox-open{ overflow:hidden; }
(function(){
const pins = document.querySelectorAll('.world-map .pin');
const modal = document.querySelector('.map-lightbox');
const mTitle = modal.querySelector('.map-lightbox__title');
const mBody = modal.querySelector('.map-lightbox__body');
// Flip tooltip for right-side pins
pins.forEach(pin => {
const left = parseFloat((pin.getAttribute('style')||'').match(/--x:\s*([\d.]+)%/)?.[1] || 50);
if(left > 70) pin.classList.add('flip');
});
function openFromPin(pin){
const title = pin.querySelector('.title')?.textContent?.trim() || 'Location';
mTitle.textContent = title;
const details = pin.querySelector('.details');
const emailEl = details?.querySelector('.email'); //
const addrEl = details?.querySelector('p'); // countries/locations
// Force EMAIL first, then countries
mBody.innerHTML = `
${emailEl ? `${emailEl.textContent.trim()}` : ''}
${addrEl ? `
${addrEl.innerHTML}
` : ''}`;
modal.classList.add('is-open');
document.body.classList.add('map-lightbox-open');
}
function closeModal(){
modal.classList.remove('is-open');
document.body.classList.remove('map-lightbox-open');
}
// Open on click
pins.forEach(pin => pin.addEventListener('click', (e)=>{ openFromPin(pin); e.stopPropagation(); }));
// Close handlers
modal.addEventListener('click', (e)=>{
if(e.target.closest('[data-close]')){ closeModal(); return; }
if(e.target.classList.contains('map-lightbox') || e.target.classList.contains('map-lightbox__backdrop')) closeModal();
});
document.addEventListener('keydown', (e)=>{ if(e.key === 'Escape') closeModal(); });
})();