/* Reset minimale e variabili */
:root{
  --bg:#2b2d33;
  --surface:#33363d;
  --surface-alt:#3a3d45;
  --text:#e8edf2;
  --muted:#b3c0cf;
  --primary:#40bab8;
  --primary-700:#094a4e;
  --accent:#40bab8;
  --ok:#40bab8;
  --danger:#ff6b6b;
  --container:1100px;
  --radius:14px;
  --shadow:0 10px 30px rgba(0,0,0,.25);
  --font:"Cocogoose Pro","Montserrat",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{
  margin:0;
  font-family:var(--font);
  font-weight:400;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}

/* Tipografia gerarchica */
h1,h2,h3,h4{
  font-family:var(--font);
  font-weight:700;
  letter-spacing:.02em;
  line-height:1.2;
}
h1{font-weight:800}
h2{font-weight:700;font-size:clamp(22px,3.5vw,34px)}
h3{font-weight:600;font-size:clamp(16px,2vw,20px)}
p,.section__intro{font-weight:400;letter-spacing:.01em}
.brand span{font-weight:800;letter-spacing:.05em;text-transform:uppercase;font-size:15px}

img{max-width:100%;height:auto}
.hidden{display:none}

/* Accessibilità */
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem 1rem;border-radius:8px}

/* Layout */
.container{max-width:var(--container);margin-inline:auto;padding:0 20px}
.section{padding:72px 0}
.section--alt{background:var(--surface)}
.section__intro{color:var(--muted);max-width:850px}

/* Header */
.header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(43,45,51,.9);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-100%);opacity:0;transition:transform .4s ease,opacity .4s ease}
.header--visible{transform:translateY(0);opacity:1}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:700;letter-spacing:.3px}
.brand img{display:block}

.nav__toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--text);padding:.5rem .75rem;border-radius:10px}
.nav__menu{display:flex;gap:18px;list-style:none;margin:0;padding:0}
.nav__menu a{color:var(--text);text-decoration:none;padding:.45rem .6rem;border-radius:10px;font-weight:500;font-size:14px;letter-spacing:.03em}
.nav__menu a:hover{background:rgba(255,255,255,.06)}

/* Language switcher */
.lang-switch{display:flex;gap:6px;align-items:center;margin-left:12px;padding-left:12px;border-left:1px solid rgba(255,255,255,.15)}
.lang-switch__link{color:var(--muted);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.05em;padding:4px 6px;border-radius:4px;transition:color .2s,background .2s}
.lang-switch__link:hover{color:var(--text);background:rgba(255,255,255,.06)}
.lang-switch__link--active{color:var(--primary);background:rgba(64,186,184,.1)}

/* Hero fullscreen */
.hero-full{
  position:relative;
  width:100%;
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  overflow:hidden;
}
.hero-full__logo{
  display:flex;
  align-items:center;
  justify-content:center;
  animation:heroFadeIn 1.8s ease-out both;
}
.hero-full__logo-img{
  width:clamp(360px, 60vw, 760px);
  height:auto;
}
@keyframes heroFadeIn{
  0%{opacity:0;transform:scale(.88)}
  100%{opacity:1;transform:scale(1)}
}

/* Scroll indicator */
.hero-full__scroll{
  position:absolute;
  bottom:36px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  animation:scrollPulse 2.2s ease-in-out infinite;
}
.hero-full__scroll-text{
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:500;
}
.hero-full__scroll-line{
  width:1px;
  height:40px;
  background:linear-gradient(180deg,var(--muted),transparent);
}
@keyframes scrollPulse{
  0%,100%{opacity:.5;transform:translateX(-50%) translateY(0)}
  50%{opacity:1;transform:translateX(-50%) translateY(6px)}
}

/* Gallery strip (auto-scroll) */
.gallery-strip{
  overflow:hidden;
  background:var(--surface);
  padding:8px 0;
  border-block:1px solid rgba(255,255,255,.06);
  scroll-margin-top:80px;
}
.gallery-strip__track{
  display:flex;
  gap:8px;
  width:max-content;
  animation:galleryScroll 78s linear infinite;
}
.gallery-strip__track:hover{
  animation-play-state:paused;
}
.gallery-strip__item{
  position:relative;
  flex-shrink:0;
  width:clamp(392px,39vw,588px);
  overflow:hidden;
  border-radius:var(--radius);
}
.gallery-strip__item img{
  width:100%;
  height:364px;
  transform:scale(1.05);
}
.gallery-strip__caption{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:14px 16px;
  background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,transparent 100%);
  color:#fff;
  font-size:13px;
  font-weight:600;
  letter-spacing:.3px;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .35s ease,transform .35s ease;
}
.gallery-strip__item:hover .gallery-strip__caption{
  opacity:1;
  transform:translateY(0);
}
@keyframes galleryScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* Facade types icon grid */
.facade-types{
  background:var(--bg);
  padding:72px 0 56px;
}
.facade-types__title{
  text-align:center;
  font-size:clamp(22px,3.5vw,36px);
  margin:0 0 6px;
}
.facade-types__subtitle{
  text-align:center;
  color:var(--muted);
  font-size:14px;
  margin:0 0 40px;
}
.facade-types__grid{
  display:flex;
  justify-content:center;
  gap:clamp(16px,4vw,48px);
  flex-wrap:wrap;
}
.facade-type{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:var(--muted);
  transition:color .3s ease,transform .3s ease;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.facade-type:hover,
.facade-type--active{
  color:var(--primary);
  transform:translateY(-6px);
}
.facade-type__icon{
  width:80px;
  height:80px;
  border:1.5px solid rgba(255,255,255,.1);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  background:var(--surface);
  transition:border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.facade-type:hover .facade-type__icon,
.facade-type--active .facade-type__icon{
  border-color:var(--primary);
  background:rgba(64,186,184,.08);
  box-shadow:0 0 30px rgba(64,186,184,.15);
}
.facade-type__icon svg{
  width:100%;
  height:100%;
}
.facade-type__label{
  font-size:13px;
  font-weight:600;
  text-align:center;
  letter-spacing:.04em;
  text-transform:uppercase;
  max-width:110px;
  line-height:1.3;
}
.facade-type__projects{
  display:none;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:8px;
  animation:fadeInThumbs .35s ease;
}
.facade-type--active .facade-type__projects{
  display:flex;
}
.facade-type__thumb{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  text-decoration:none;
  color:var(--muted);
  transition:color .2s ease,transform .2s ease;
}
.facade-type__thumb:hover{
  color:var(--primary);
  transform:scale(1.08);
}
.facade-type__thumb img{
  width:52px;
  height:52px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(255,255,255,.12);
  transition:border-color .2s ease;
}
.facade-type__thumb:hover img{
  border-color:var(--primary);
}
.facade-type__thumb span{
  font-size:10px;
  font-weight:500;
  text-align:center;
  max-width:64px;
  line-height:1.2;
}
@keyframes fadeInThumbs{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:translateY(0)}
}

/* Facade detail sections */
.facade-detail{
  display:flex;
  gap:32px;
  align-items:flex-start;
  padding:40px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
  scroll-margin-top:80px;
}
.facade-detail:last-child{
  border-bottom:none;
}
.facade-detail__icon{
  flex-shrink:0;
  width:72px;
  height:72px;
  color:var(--primary);
  padding:12px;
  background:rgba(64,186,184,.08);
  border:1px solid rgba(64,186,184,.2);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.facade-detail__icon svg{
  width:100%;
  height:100%;
}
.facade-detail__content h3{
  margin:0 0 10px;
  font-size:20px;
  color:var(--text);
}
.facade-detail__content p{
  color:var(--muted);
  margin:0 0 14px;
  line-height:1.7;
}

/* Badges */
.badges{background:var(--surface-alt);padding:26px 0;border-block:1px solid rgba(255,255,255,.06)}
.badges__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.badge{background:#25272d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:18px;text-align:center}
.badge__num{font-weight:800;font-size:24px;color:var(--accent);letter-spacing:.03em}
.badge__label{display:block;color:var(--muted);font-size:14px}

/* Cards / Projects */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.card{background:#25272d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card h3{margin-top:0}
.list{margin:12px 0 0 18px;color:var(--muted)}
.ticks{list-style:none;padding:0;margin:12px 0 0}
.ticks li{position:relative;padding-left:26px;margin:10px 0;color:var(--muted)}
.ticks li::before{content:"✓";position:absolute;left:0;color:var(--ok)}

/* Ambiti di intervento */
.ambiti-box{
  margin-top:36px;
  padding:28px 32px;
  background:var(--surface);
  border-left:3px solid var(--primary);
  border-radius:0 var(--radius) var(--radius) 0;
}
.ambiti-box__title{
  margin:0 0 16px;
  font-size:1.15rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--primary);
}
.ambiti-box__list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 32px;
}
.ambiti-box__list li{
  position:relative;
  padding-left:22px;
  color:var(--text);
  font-size:.95rem;
  font-weight:500;
}
.ambiti-box__list li::before{
  content:"\25B8";
  position:absolute;
  left:0;
  color:var(--primary);
  font-size:1rem;
}

.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:26px}
.project{
  position:relative;
  overflow:hidden;
  border-radius:4px;
  cursor:pointer;
  margin:0;
}
.project img{
  width:100%;
  height:320px;
  object-fit:cover;
  display:block;
  transition:transform .6s cubic-bezier(.25,.46,.45,.94),filter .6s ease;
}
.project figcaption{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:20px;
  background:rgba(9,74,78,.75);
  opacity:0;
  transition:opacity .4s ease;
}
.project figcaption h3{
  color:#fff;
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin:0;
  transform:translateY(12px);
  transition:transform .4s ease;
}
.project figcaption p{
  color:rgba(255,255,255,.8);
  font-size:.82rem;
  line-height:1.5;
  margin:10px 0 0;
  max-width:260px;
  transform:translateY(12px);
  transition:transform .4s ease .05s;
}
.project:hover img{
  transform:scale(1.08);
  filter:brightness(.7);
}
.project:hover figcaption{
  opacity:1;
}
.project:hover figcaption h3,
.project:hover figcaption p{
  transform:translateY(0);
}

/* Grid 2 */
.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:.7rem 1.2rem;border-radius:12px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:.2s;font-family:var(--font);font-weight:600;letter-spacing:.04em;font-size:14px}
.btn--primary{background:var(--primary-700);color:var(--primary);border-color:var(--primary-700)}
.btn--primary:hover{background:var(--primary);color:#fff}
.btn--light{background:transparent;border-color:rgba(255,255,255,.2);color:var(--text)}
.btn--light:hover{background:rgba(255,255,255,.06)}

/* Forms */
.form{background:#25272d;border:1px solid rgba(255,255,255,.1);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow)}
.form__row{display:flex;flex-direction:column;margin-bottom:14px}
label{font-weight:600;margin-bottom:8px;letter-spacing:.02em;font-size:14px}
input,textarea{
  background:#2b2d33;border:1px solid rgba(255,255,255,.18);
  color:var(--text);padding:.7rem .8rem;border-radius:12px;outline:none
}
input:focus,textarea:focus{border-color:var(--primary)}
.error{color:var(--danger);font-size:.9rem;height:1.2em}
.checkbox{display:flex;gap:10px;align-items:center}

/* Contact box */
.contact-box{background:#25272d;border:1px solid rgba(255,255,255,.1);padding:20px;border-radius:var(--radius);box-shadow:var(--shadow)}

/* Contact inline (icon cards) */
.contact-inline{
  display:flex;
  gap:20px;
  margin:28px auto 0;
  max-width:960px;
  text-align:center;
}
.contact-inline__card{
  flex:1;
  background:#25272d;
  border:1px solid rgba(255,255,255,.1);
  padding:28px 22px 24px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  transition:border-color .3s ease,transform .3s ease;
}
.contact-inline__card:hover{
  border-color:rgba(64,186,184,.25);
  transform:translateY(-3px);
}
.contact-inline__icon{
  width:48px;
  height:48px;
  margin:0 auto 14px;
  color:var(--primary);
  background:rgba(64,186,184,.08);
  border:1px solid rgba(64,186,184,.15);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
  transition:background .3s ease,border-color .3s ease;
}
.contact-inline__card:hover .contact-inline__icon{
  background:rgba(64,186,184,.15);
  border-color:rgba(64,186,184,.35);
}
.contact-inline__icon svg{width:100%;height:100%}
.contact-inline__card h3{
  margin:0 0 10px;
  font-size:13px;
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}
.contact-inline__card p{
  margin:0 0 4px;
  font-size:14px;
  color:var(--muted);
  line-height:1.65;
}
.contact-inline__card a[href^="tel"]{
  color:var(--text);text-decoration:none;font-weight:500;transition:color .2s;
}
.contact-inline__card a[href^="tel"]:hover{color:var(--primary)}
.contact-inline__card a[href^="mailto"]{
  color:var(--primary);font-weight:600;text-decoration:none;transition:color .2s;
}
.contact-inline__card a[href^="mailto"]:hover{color:#5dd8d6}

/* Contact sidebar (contatti.html) */
.contact-sidebar{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.contact-sidebar .contact-inline__card{
  text-align:left;
}
.contact-sidebar .contact-inline__icon{
  margin:0 0 12px;
}

@media(max-width:640px){
  .contact-inline{flex-direction:column}
}
.contact-box a[href^="tel"]{color:var(--primary);text-decoration:none;font-weight:500;transition:color .2s}
.contact-box a[href^="tel"]:hover{color:#5dd8d6}
.contact-box a[href^="mailto"]{color:var(--primary-700);background:linear-gradient(90deg,var(--primary-700),var(--primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600;text-decoration:none;transition:filter .2s}
.contact-box a[href^="mailto"]:hover{filter:brightness(1.4)}

/* Equipment grid */
.equip-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:32px;
}
.equip-card{
  background:#25272d;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  padding:28px 24px;
  text-align:center;
  box-shadow:var(--shadow);
  transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
.equip-card:hover{
  border-color:rgba(64,186,184,.25);
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.equip-card__icon{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  color:var(--primary);
  background:rgba(64,186,184,.08);
  border:1px solid rgba(64,186,184,.15);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px;
  transition:background .3s ease,border-color .3s ease;
}
.equip-card:hover .equip-card__icon{
  background:rgba(64,186,184,.12);
  border-color:rgba(64,186,184,.3);
}
.equip-card__icon svg{width:100%;height:100%}
.equip-card__title{
  font-size:16px;
  font-weight:700;
  margin:0 0 8px;
  color:var(--text);
  letter-spacing:.03em;
  text-transform:uppercase;
}
.equip-card__desc{
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
  margin:0;
}

/* Equipment card – clickable variant */
.equip-card--clickable{
  cursor:pointer;
}
.equip-card__spec{
  color:var(--primary);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  margin:0 0 8px;
  text-transform:uppercase;
}
.equip-card__zoom{
  display:inline-block;
  margin-top:14px;
  font-size:13px;
  font-weight:600;
  color:var(--primary);
  opacity:.7;
  transition:opacity .3s;
}
.equip-card--clickable:hover .equip-card__zoom{
  opacity:1;
}

/* Equipment Lightbox */
.equip-lightbox{
  display:none;
  position:fixed;
  inset:0;
  z-index:300;
  background:rgba(0,0,0,.85);
  backdrop-filter:blur(8px);
  align-items:center;
  justify-content:center;
  padding:24px;
}
.equip-lightbox.show{
  display:flex;
}
.equip-lightbox__close{
  position:absolute;
  top:18px;
  right:22px;
  background:none;
  border:none;
  color:#fff;
  font-size:40px;
  cursor:pointer;
  line-height:1;
  z-index:2;
  transition:color .2s,transform .2s;
}
.equip-lightbox__close:hover{
  color:var(--primary);
  transform:scale(1.15);
}
.equip-lightbox__prev,
.equip-lightbox__next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-size:36px;
  width:50px;
  height:50px;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s,color .2s;
  z-index:2;
}
.equip-lightbox__prev{left:18px}
.equip-lightbox__next{right:18px}
.equip-lightbox__prev:hover,
.equip-lightbox__next:hover{
  background:var(--primary);
  color:#fff;
}
.equip-lightbox__prev.hidden,
.equip-lightbox__next.hidden{
  display:none;
}
.equip-lightbox__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  max-width:90vw;
  max-height:85vh;
  animation:modalIn .3s ease;
}
.equip-lightbox__img{
  max-width:100%;
  max-height:75vh;
  border-radius:var(--radius);
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  object-fit:contain;
}
.equip-lightbox__caption{
  color:#fff;
  font-size:15px;
  font-weight:600;
  letter-spacing:.03em;
  margin:16px 0 0;
  text-align:center;
}
@media(max-width:640px){
  .equip-lightbox{padding:12px}
  .equip-lightbox__close{
    top:10px;
    right:12px;
    font-size:48px;
    padding:8px;
    -webkit-tap-highlight-color:transparent;
  }
  .equip-lightbox__prev,
  .equip-lightbox__next{
    width:44px;
    height:44px;
    font-size:28px;
  }
  .equip-lightbox__prev{left:6px}
  .equip-lightbox__next{right:6px}
  .equip-lightbox__img{
    max-height:65vh;
    border-radius:8px;
  }
  .equip-lightbox__content{
    max-width:96vw;
  }
  .equip-card--clickable,
  .cert-card--clickable{
    -webkit-tap-highlight-color:transparent;
  }
}

/* Logo Carousel – Clients & Partners */
.carousel-section__title{
  text-align:center;
  margin-bottom:6px;
}
.carousel-section__subtitle{
  text-align:center;
  margin:0 auto 40px;
}
.logo-carousel{
  overflow:hidden;
  padding:10px 0;
  position:relative;
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.logo-carousel__track{
  display:flex;
  gap:clamp(32px,6vw,72px);
  width:max-content;
  animation:logoScroll var(--speed,30s) linear infinite;
}
.logo-carousel__track:hover{
  animation-play-state:paused;
}
.logo-carousel__track--reverse{
  animation-name:logoScrollReverse;
}
.logo-carousel__item{
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(140px,18vw,220px);
  height:100px;
  padding:14px 20px;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:0 4px 20px rgba(0,0,0,.12);
  transition:transform .3s ease,box-shadow .3s ease;
}
.logo-carousel__item:hover{
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 8px 30px rgba(0,0,0,.2);
}
.logo-carousel__item img{
  max-width:90%;
  max-height:90%;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:none;
  transition:filter .3s ease;
}
.logo-carousel__item:hover img{
  filter:grayscale(0);
}
@keyframes logoScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
@keyframes logoScrollReverse{
  0%{transform:translateX(-50%)}
  100%{transform:translateX(0)}
}

/* Training grid */
.training-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:32px;
}
.training-card{
  background:#25272d;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  padding:32px 24px;
  text-align:center;
  box-shadow:var(--shadow);
  transition:border-color .3s ease,transform .3s ease;
}
.training-card:hover{
  border-color:rgba(9,74,78,.4);
  transform:translateY(-4px);
}
.training-card__icon{
  width:80px;
  height:80px;
  margin:0 auto 20px;
  color:var(--primary);
  background:rgba(9,74,78,.15);
  border:1px solid rgba(9,74,78,.3);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  transition:background .3s ease,border-color .3s ease;
}
.training-card:hover .training-card__icon{
  background:rgba(64,186,184,.12);
  border-color:rgba(64,186,184,.35);
}
.training-card__icon svg{width:100%;height:100%}
.training-card h3{
  font-size:18px;
  font-weight:800;
  margin:0 0 10px;
  color:var(--text);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.training-card p{
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
  margin:0;
}

/* Certification cards */
.cert-grid{
  display:flex;
  flex-direction:column;
  gap:28px;
  margin-top:36px;
}
.cert-card{
  display:flex;
  gap:28px;
  background:#25272d;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  padding:0;
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
.cert-card:hover{
  border-color:rgba(64,186,184,.25);
  transform:translateY(-3px);
  box-shadow:0 16px 40px rgba(0,0,0,.35);
}
.cert-card--clickable{
  cursor:pointer;
}
.cert-card__visual{
  flex-shrink:0;
  width:220px;
  min-height:200px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}
.cert-card__visual img{
  max-width:100%;
  max-height:180px;
  object-fit:contain;
}
.cert-card__body{
  padding:24px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.cert-card__body h3{
  margin:0 0 4px;
  font-size:1.15rem;
  font-weight:800;
  color:var(--text);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.cert-card__subtitle{
  color:var(--primary);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:0 0 10px;
}
.cert-card__body p{
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
  margin:0 0 10px;
}
.cert-card__body .ticks{
  margin:4px 0 0;
}
.cert-card__body .ticks li{
  font-size:13px;
  margin:6px 0;
}
.cert-card__zoom{
  display:inline-block;
  margin-top:12px;
  font-size:13px;
  font-weight:600;
  color:var(--primary);
  opacity:.7;
  transition:opacity .3s;
}
.cert-card--clickable:hover .cert-card__zoom{
  opacity:1;
}
@media(max-width:640px){
  .cert-card{
    flex-direction:column;
  }
  .cert-card__visual{
    width:100%;
    min-height:140px;
    padding:20px;
  }
  .cert-card__body{
    padding:20px;
  }
}

/* Social icons */
.social{display:flex;gap:12px;align-items:center}
.social__link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  color:var(--muted);
  transition:color .3s,border-color .3s,background .3s,transform .3s;
}
.social__link svg{width:18px;height:18px}
.social__link:hover{
  color:var(--primary);
  border-color:var(--primary);
  background:rgba(64,186,184,.1);
  transform:translateY(-2px);
}
.social--lg .social__link{width:42px;height:42px}
.social--lg .social__link svg{width:20px;height:20px}

/* Footer */
.footer{border-top:1px solid rgba(255,255,255,.1);background:#222428;padding:24px 0;color:var(--muted)}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer a{color:var(--muted);text-decoration:none;margin-right:12px}
.footer a:hover{color:var(--text)}

/* Swiss Map */
.swiss-map{max-width:920px;margin:2.5rem auto 0;position:relative}
.swiss-map__svg{width:100%;height:auto;overflow:visible;display:block;font-family:var(--font)}
.swiss-map__country{fill:url(#countryGrad);stroke:rgba(64,186,184,.4);stroke-width:1.8;stroke-linejoin:round}
.swiss-map__lake{fill:rgba(64,186,184,.1);stroke:rgba(64,186,184,.18);stroke-width:.7}
.swiss-map__dot{fill:#40bab8;stroke:#222428;stroke-width:2;transition:fill .25s}
.swiss-map__dot--hq{fill:#fff;stroke:#40bab8;stroke-width:2.5}
.swiss-map__pulse{fill:rgba(64,186,184,.3);transform-origin:center;transform-box:fill-box;animation:mapPulse 2.5s ease-out infinite}
.swiss-map__pulse--hq{fill:rgba(255,255,255,.2)}
@keyframes mapPulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(3);opacity:0}}
.swiss-map__pin{cursor:default}
.swiss-map__pin:hover .swiss-map__dot{fill:#5de0de}
.swiss-map__city-name{fill:#e8edf2;font-size:21px;font-weight:700;letter-spacing:.4px}
.swiss-map__city-name--hq{fill:#40bab8}
.swiss-map__project-name{fill:rgba(179,192,207,.75);font-size:16px;font-weight:400;letter-spacing:.2px}
.swiss-map__pin:hover .swiss-map__city-name{fill:#fff}
.swiss-map__pin:hover .swiss-map__project-name{fill:#e8edf2}
.swiss-map__legend{display:flex;justify-content:center;gap:28px;margin-top:1.5rem;font-size:13px;color:var(--muted)}
.swiss-map__legend-item{display:flex;align-items:center;gap:8px}
.swiss-map__legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.swiss-map__legend-dot--project{background:#40bab8;box-shadow:0 0 6px rgba(64,186,184,.5)}
.swiss-map__legend-dot--hq{background:#fff;border:2px solid #40bab8;box-shadow:0 0 6px rgba(255,255,255,.3)}

/* Responsive */
@media (max-width: 990px){
  .cards,.projects,.equip-grid,.training-grid{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr}
  .badges__grid{grid-template-columns:repeat(2,1fr)}
  .facade-detail{gap:24px}
}
@media (max-width: 640px){
  .nav__toggle{display:inline-block}
  .nav__menu{display:none;flex-direction:column;background:#25272d;position:absolute;right:20px;top:64px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px}
  .nav__menu.show{display:flex}
  .lang-switch{margin-left:0;padding-left:0;border-left:none;margin-top:4px;padding-top:8px;border-top:1px solid rgba(255,255,255,.12);justify-content:center}
  .badges__grid{grid-template-columns:1fr 1fr}
  .cards,.projects,.equip-grid,.training-grid{grid-template-columns:1fr}
  .facade-types__grid{gap:20px}
  .facade-type__icon{width:64px;height:64px;padding:13px}
  .facade-type:hover,.facade-type--active{transform:none}
  .facade-type__projects{
    position:relative;
    width:100%;
    max-width:280px;
  }
  .facade-type__thumb img{width:44px;height:44px}
  .facade-type__thumb span{font-size:9px;max-width:56px}
  .facade-detail{flex-direction:column;gap:16px;align-items:center;text-align:center}
  .facade-detail .ticks{text-align:left}
  .ambiti-box__list{grid-template-columns:1fr}

  /* Swiss map mobile */
  .swiss-map__city-name{font-size:25px}
  .swiss-map__project-name{font-size:18px}
  .swiss-map__dot{stroke-width:2.5}
  .swiss-map__dot--hq{stroke-width:3}
  .swiss-map__legend{flex-direction:column;align-items:center;gap:12px}

  /* Carousel mobile fix */
  .logo-carousel{
    mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  }
  .logo-carousel__track{
    gap:20px;
  }
  .logo-carousel__item{
    width:100px;
    height:60px;
    padding:8px 12px;
    border-radius:8px;
  }
  .logo-carousel__item img{
    filter:grayscale(0);
  }
  .carousel-section__title{
    font-size:1.3rem;
  }
  .carousel-section__subtitle{
    font-size:.85rem;
    margin-bottom:24px;
  }

  /* Projects: always show caption on mobile */
  .project figcaption{
    position:relative;
    inset:auto;
    opacity:1;
    background:rgba(9,74,78,.9);
    padding:14px 16px;
  }
  .project figcaption h3{
    transform:none;
    font-size:1rem;
  }
  .project figcaption p{
    transform:none;
    margin:6px 0 0;
  }
  .project img{
    height:220px;
  }
  .project:hover img{
    transform:none;
    filter:none;
  }
}

/* Subpages */
.header--subpage{
  transform:translateY(0) !important;
  opacity:1 !important;
  position:sticky;
}
.subpage{
  padding-top:0;
}
.page-hero{
  padding:28px 0 16px;
  background:linear-gradient(135deg,rgba(9,74,78,.25) 0%,var(--bg) 100%);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.page-hero h1{
  font-size:clamp(1.8rem,4vw,2.6rem);
  font-weight:800;
  letter-spacing:.04em;
  color:#fff;
  margin:0 0 12px;
}
.page-hero .section__intro{
  color:rgba(255,255,255,.75);
  max-width:700px;
}
.nav__menu a.active{
  color:var(--primary);
  background:rgba(64,186,184,.1);
}

/* Teaser CTA */
.teaser{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.teaser h2{
  text-align:center;
  width:100%;
}
.teaser .section__intro{
  margin-inline:auto;
}
.teaser .ticks{
  text-align:left;
  margin:16px 0 0;
}
.teaser__cta{
  margin-top:28px;
}
.projects--preview{
  justify-content:center;
  margin-bottom:8px;
}

/* Privacy / Impressum Modal */
.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(0,0,0,.7);
  backdrop-filter:blur(6px);
  align-items:center;
  justify-content:center;
  padding:24px;
}
.modal-overlay.show{
  display:flex;
}
.modal{
  position:relative;
  background:var(--surface);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius);
  max-width:680px;
  width:100%;
  max-height:85vh;
  overflow-y:auto;
  box-shadow:0 24px 64px rgba(0,0,0,.5);
  animation:modalIn .3s ease;
}
@keyframes modalIn{
  from{opacity:0;transform:translateY(24px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.modal__close{
  position:sticky;
  top:0;
  float:right;
  margin:12px 14px 0 0;
  background:none;
  border:none;
  color:var(--muted);
  font-size:28px;
  cursor:pointer;
  line-height:1;
  z-index:1;
  transition:color .2s;
}
.modal__close:hover{
  color:var(--text);
}
.modal__body{
  padding:32px 36px 40px;
}
.modal__body h2{
  color:var(--primary);
  font-size:1.3rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  margin:0 0 18px;
}
.modal__body h2:not(:first-child){
  margin-top:28px;
}
.modal__body p{
  color:var(--text);
  font-size:.92rem;
  line-height:1.7;
  margin:0 0 12px;
}
.modal__body a{
  color:var(--primary);
  text-decoration:underline;
  text-underline-offset:2px;
}
.modal__body a:hover{
  color:var(--text);
}
.modal__divider{
  border:none;
  border-top:1px solid rgba(255,255,255,.1);
  margin:28px 0;
}
.privacy-link{
  color:var(--primary) !important;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
}
.privacy-link:hover{
  color:var(--text) !important;
}
@media(max-width:640px){
  .modal__body{padding:24px 20px 28px}
  .gallery-strip__track{animation-duration:66.3s}
}
