body {
  margin: 0;
  font-family: 'Playfair Display', serif;
}

/* Multi-sede: scelta sedi e landing dedicate */
:root{
  --ts-blue:#0c2340;
  --ts-cyan:#318aca;
  --ts-gold:#d1ba6f;
  --ts-ink:#172033;
  --ts-soft:#f4f8fc;
}

.locations-choice{
  position:relative;
  padding:92px 0 84px;
  background:
    linear-gradient(135deg,rgba(209,186,111,.16),transparent 34%),
    repeating-linear-gradient(135deg,rgba(12,35,64,.035) 0 1px,transparent 1px 22px),
    linear-gradient(180deg,#ffffff 0%,#edf6fb 100%);
}
.locations-choice__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  color:var(--ts-cyan);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
}
.locations-choice h2{
  color:var(--ts-blue);
  font-weight:900;
  letter-spacing:0;
}
.locations-choice__lead{
  color:#4b5d73;
  max-width:760px;
  margin:0 auto;
  font-size:1.08rem;
}
.location-card{
  height:100%;
  min-height:560px;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(12,35,64,.12);
  border-radius:8px;
  background:linear-gradient(180deg,#ffffff 0%,#f9fcff 100%);
  box-shadow:0 22px 60px rgba(12,35,64,.15);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.location-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,var(--ts-cyan),var(--ts-gold));
  z-index:2;
}
.location-card::after{
  content:"";
  position:absolute;
  inset:auto -15% -28% auto;
  width:210px;
  height:210px;
  border-radius:50%;
  background:rgba(49,138,202,.08);
  z-index:-1;
}
.location-card:hover{
  transform:translateY(-6px);
  box-shadow:0 34px 80px rgba(12,35,64,.22);
  border-color:rgba(49,138,202,.36);
}
.location-card__top{
  min-height:150px;
  padding:28px;
  color:#fff;
  background:
    linear-gradient(135deg,rgba(12,35,64,.97),rgba(49,138,202,.92)),
    url('../img/FotoIndexHeader.jpg') center/cover no-repeat;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.location-card--popoli .location-card__top{
  background:
    linear-gradient(135deg,rgba(12,35,64,.97) 0%,rgba(35,106,143,.92) 48%,rgba(209,186,111,.82) 100%),
    url('../img/hero.jpg') center/cover no-repeat;
}
.location-card--popoli::before{
  background:linear-gradient(90deg,var(--ts-gold),#57c785,var(--ts-cyan));
}
.location-card__badge{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  padding:.38rem .76rem;
  border-radius:8px;
  background:rgba(255,255,255,.20);
  border:1px solid rgba(255,255,255,.22);
  font-size:.78rem;
  font-weight:900;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.location-card__body{ padding:28px; }
.location-card__body h3{ font-weight:900; color:var(--ts-blue); }
.location-card__body p{ color:#58677a; }
.location-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.location-btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:44px;
  padding:.65rem 1rem;
  border-radius:8px;
  text-decoration:none;
  font-weight:800;
  transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.location-btn:hover{ transform:translateY(-1px); }
.location-btn--primary{ background:var(--ts-cyan); color:#fff; box-shadow:0 12px 26px rgba(49,138,202,.24); }
.location-btn--primary:hover{ color:#fff; background:#236f9e; box-shadow:0 16px 32px rgba(49,138,202,.30); }
.location-btn--ghost{ color:var(--ts-blue); border:1px solid rgba(12,35,64,.18); background:#fff; }
.location-btn--ghost:hover{ color:var(--ts-blue); background:#eef6fc; }

.office-page{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--ts-ink);
  background:#fff;
}
.office-main{ padding-top:112px; }
.office-hero{
  position:relative;
  overflow:hidden;
  padding:84px 0 68px;
  color:#fff;
  background:
    linear-gradient(135deg,rgba(12,35,64,.95),rgba(49,138,202,.86)),
    url('../img/FotoIndexHeader.jpg') center/cover no-repeat;
}
.office-hero--popoli{
  background:
    linear-gradient(135deg,rgba(12,35,64,.96),rgba(35,106,143,.88) 55%,rgba(209,186,111,.72)),
    url('../img/hero.jpg') center/cover no-repeat;
}

body.site-root .hero,
body.site-root .offerta{
  display:none !important;
}

body.site-root .locations-choice{
  padding-top:118px;
}

.city-main{
  background:#f4f7fb;
}

.city-hero{
  position:relative;
  padding:150px 0 90px;
  overflow:hidden;
  color:#fff;
  background:
    linear-gradient(135deg,rgba(12,35,64,.96),rgba(49,138,202,.88)),
    url('../img/Tecnoservice_logo_2024_ROTONDO.png') right 8% center / 360px auto no-repeat;
}

.city-hero::after{
  content:"";
  position:absolute;
  inset:auto -10% -28% -10%;
  height:220px;
  background:#f4f7fb;
  transform:skewY(-3deg);
  transform-origin:left top;
}

.city-hero__grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:32px;
  align-items:center;
}

.city-hero h1{
  max-width:820px;
  font-size:clamp(2.45rem,5vw,5rem);
  line-height:.98;
  font-weight:900;
  letter-spacing:0;
  margin:18px 0;
}

.city-hero p{
  max-width:760px;
  font-size:1.15rem;
  line-height:1.7;
  color:rgba(255,255,255,.88);
}

.city-hero__panel{
  padding:28px;
  border-radius:8px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(12px);
  box-shadow:0 24px 60px rgba(0,0,0,.22);
}

.city-panel-label,
.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.76rem;
  font-weight:900;
  color:#318aca;
}

.city-hero__panel h2{
  margin:10px 0;
  font-size:2.35rem;
  font-weight:900;
}

.city-contact-stack{
  display:grid;
  gap:10px;
  margin-top:18px;
}

.city-contact-stack a{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-weight:800;
}

.city-section{
  padding:72px 0;
}

.city-section--light{
  background:#f4f7fb;
}

.city-section--blue{
  color:#fff;
  background:
    radial-gradient(circle at 20% 10%,rgba(49,138,202,.55),transparent 34%),
    linear-gradient(135deg,#07182c,#0c2340 58%,#173f65);
}

.section-heading{
  max-width:780px;
  margin:0 auto 30px;
  text-align:center;
}

.section-heading h2{
  margin:8px 0 12px;
  color:#0c2340;
  font-weight:900;
  font-size:clamp(2rem,4vw,3.35rem);
}

.section-heading p{
  color:#5d6b7b;
  line-height:1.7;
}

.section-heading--inverse h2,
.section-heading--inverse p{
  color:#fff;
}

.city-course-strip,
.city-category-strip{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(280px,360px);
  gap:18px;
  overflow-x:auto;
  padding:8px 4px 18px;
  scroll-snap-type:x proximity;
}

.city-course-strip::-webkit-scrollbar,
.city-category-strip::-webkit-scrollbar{
  height:8px;
}

.city-course-strip::-webkit-scrollbar-thumb,
.city-category-strip::-webkit-scrollbar-thumb{
  background:#9fb2c7;
  border-radius:999px;
}

.city-course-card,
.city-category-card{
  scroll-snap-align:start;
  overflow:hidden;
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 42px rgba(12,35,64,.12);
  border:1px solid rgba(12,35,64,.08);
}

.city-course-card img{
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
  background:#e9eef4;
}

.city-course-card div{
  padding:22px;
}

.city-course-card span{
  display:inline-flex;
  margin-bottom:8px;
  padding:.25rem .55rem;
  border-radius:999px;
  background:#e8f3fb;
  color:#0c2340;
  font-size:.78rem;
  font-weight:900;
}

.city-course-card h3,
.city-category-card h3{
  color:#0c2340;
  font-size:1.15rem;
  font-weight:900;
}

.city-course-card p,
.city-category-card p{
  color:#607083;
  line-height:1.55;
}

.city-course-card a,
.city-category-card a{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:#318aca;
  font-weight:900;
  text-decoration:none;
}

.city-featured-swiper{
  position:relative;
  overflow:hidden;
  border-radius:8px;
  box-shadow:0 26px 70px rgba(12,35,64,.18);
  border:1px solid rgba(12,35,64,.10);
}

.city-featured-swiper .swiper-wrapper{
  align-items:stretch;
}

.city-featured-slide{
  min-height:430px;
  height:auto;
  color:#fff;
}

.city-featured-slide__content{
  min-height:430px;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  gap:30px;
  align-items:center;
  padding:clamp(28px,5vw,56px);
}

.city-featured-slide__copy{
  max-width:720px;
}

.city-featured-slide__tag{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-bottom:14px;
  padding:.38rem .72rem;
  border-radius:8px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.city-featured-slide h3{
  font-size:clamp(1.8rem,4vw,3.65rem);
  line-height:1.02;
  font-weight:900;
  letter-spacing:0;
  margin-bottom:18px;
  text-transform:uppercase;
}

.city-featured-slide p{
  max-width:680px;
  color:rgba(255,255,255,.90);
  line-height:1.7;
  font-size:1.02rem;
}

.city-featured-slide__meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:20px 0 22px;
}

.city-featured-slide__meta span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.42rem .72rem;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.18);
  font-weight:800;
}

.city-featured-slide__cta{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  min-height:46px;
  padding:.72rem 1.05rem;
  border-radius:8px;
  color:#0c2340;
  background:#fff;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 16px 34px rgba(0,0,0,.18);
  transition:transform .18s ease, box-shadow .18s ease;
}

.city-featured-slide__cta:hover{
  color:#0c2340;
  transform:translateY(-2px);
  box-shadow:0 22px 44px rgba(0,0,0,.22);
}

.city-featured-slide__visual{
  position:relative;
  display:grid;
  place-items:center;
  min-height:320px;
}

.city-featured-slide__visual::before{
  content:"";
  position:absolute;
  inset:9% 2% 0 12%;
  border-radius:8px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  transform:rotate(-3deg);
}

.city-featured-slide__visual img{
  position:relative;
  width:min(360px,92%);
  max-height:330px;
  object-fit:contain;
  filter:drop-shadow(0 26px 32px rgba(0,0,0,.28));
  transform:translateY(0);
  transition:transform .55s ease;
}

.city-featured-swiper .swiper-slide-active .city-featured-slide__visual img{
  transform:translateY(-6px);
}

.city-featured-controls{
  position:absolute;
  left:clamp(20px,5vw,56px);
  right:clamp(20px,5vw,56px);
  bottom:22px;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  pointer-events:none;
}

.city-featured-nav{
  width:42px;
  height:42px;
  border-radius:8px;
  display:grid;
  place-items:center;
  color:#0c2340;
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 30px rgba(0,0,0,.14);
  pointer-events:auto;
}

.city-featured-nav::after{
  font-size:1rem;
  font-weight:900;
}

.city-featured-pagination{
  position:static;
  width:auto !important;
  pointer-events:auto;
}

.city-featured-pagination .swiper-pagination-bullet{
  width:9px;
  height:9px;
  opacity:.55;
  background:#fff;
}

.city-featured-pagination .swiper-pagination-bullet-active{
  width:24px;
  border-radius:999px;
  opacity:1;
  background:var(--ts-gold);
}

.city-category-card{
  min-height:250px;
  padding:26px;
}

.city-category-card__icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#fff;
  background:linear-gradient(135deg,#318aca,#0c2340);
  margin-bottom:18px;
}

.city-category-card--online .city-category-card__icon{
  background:linear-gradient(135deg,#d1ba6f,#0c2340);
}

.city-split{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);
  gap:32px;
  align-items:center;
}

.city-split h2{
  color:#0c2340;
  font-weight:900;
  font-size:clamp(2rem,4vw,3rem);
}

.city-map{
  box-shadow:0 20px 50px rgba(12,35,64,.14);
  border:1px solid rgba(12,35,64,.08);
}

@media (max-width:991px){
  body.site-root .locations-choice{
    padding-top:96px;
  }
  .city-hero{
    padding:126px 0 72px;
    background:linear-gradient(135deg,rgba(12,35,64,.98),rgba(49,138,202,.90));
  }
  .city-hero__grid,
  .city-split{
    grid-template-columns:1fr;
  }
  .city-hero__panel{
    padding:22px;
  }
  .city-course-strip,
  .city-category-strip{
    grid-auto-columns:minmax(250px,82vw);
  }
  .city-featured-slide,
  .city-featured-slide__content{
    min-height:0;
  }
  .city-featured-slide__content{
    grid-template-columns:1fr;
    gap:18px;
    padding:30px 22px 78px;
  }
  .city-featured-slide__copy{
    order:2;
  }
  .city-featured-slide__visual{
    order:1;
    min-height:190px;
  }
  .city-featured-slide__visual::before{
    inset:10% 16% 0 16%;
  }
  .city-featured-slide__visual img{
    max-height:210px;
  }
  .city-featured-slide p{
    font-size:.95rem;
    line-height:1.55;
  }
  .city-featured-controls{
    left:18px;
    right:18px;
    bottom:18px;
  }
}
.office-hero::after{ content:none; }
.office-hero .container{ position:relative; z-index:1; }
.office-kicker{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.4rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
}
.office-hero h1{
  margin-top:18px;
  max-width:820px;
  font-weight:900;
  letter-spacing:0;
  font-size:clamp(2.2rem,5vw,4.7rem);
}
.office-hero p{
  max-width:760px;
  color:rgba(255,255,255,.90);
  font-size:clamp(1rem,2vw,1.22rem);
}
.office-panel{
  border:1px solid rgba(12,35,64,.10);
  border-radius:8px;
  background:#fff;
  box-shadow:0 20px 54px rgba(12,35,64,.12);
}
.office-panel--lift{ margin-top:-54px; position:relative; z-index:2; }
.office-data-list{
  display:grid;
  gap:14px;
}
.office-data-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.office-data-item i{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#fff;
  background:linear-gradient(135deg,#318aca,#0c2340);
  flex:0 0 42px;
}
.office-cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.office-status{
  border-left:5px solid var(--ts-gold);
  background:#fff9e8;
  color:#4d3d10;
  border-radius:8px;
}
.office-pill{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background:#eef6fc;
  color:#0c2340;
  font-weight:800;
}

.popoli-details-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.popoli-detail-card{
  height:100%;
  padding:20px;
  border-radius:8px;
  background:linear-gradient(180deg,#ffffff 0%,#f6fbff 100%);
  border:1px solid rgba(12,35,64,.10);
  box-shadow:0 16px 36px rgba(12,35,64,.08);
}

.popoli-detail-card h3{
  display:flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 12px;
  color:#0c2340;
  font-size:1.05rem;
  font-weight:900;
}

.popoli-detail-card h3 i{ color:#318aca; }
.popoli-detail-card ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
  color:#526276;
}

.popoli-training-section{
  padding:78px 0 86px;
  background:
    linear-gradient(135deg,rgba(209,186,111,.18),transparent 32%),
    linear-gradient(180deg,#f7fbff 0%,#ffffff 100%);
}

.popoli-training-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.popoli-training-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:16px;
  padding:24px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(12,35,64,.10);
  box-shadow:0 18px 48px rgba(12,35,64,.12);
}

.popoli-training-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg,#318aca,#d1ba6f);
}

.popoli-training-card__icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#fff;
  background:linear-gradient(135deg,#0c2340,#318aca);
  box-shadow:0 12px 28px rgba(49,138,202,.24);
}

.popoli-training-card h3{
  margin:0;
  color:#0c2340;
  font-size:1.18rem;
  font-weight:900;
}

.popoli-training-card p{
  margin:.35rem 0 0;
  color:#5c6d80;
  line-height:1.5;
}

.popoli-training-card ul{
  grid-column:1 / -1;
  margin:8px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.popoli-training-card li{
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  padding:.42rem .62rem;
  border-radius:999px;
  background:#eef7fc;
  color:#1f4f70;
  font-size:.86rem;
  font-weight:800;
}

.popoli-training-card li i{
  color:#318aca;
  font-size:.72rem;
}

@media (max-width:991px){
  .office-main{ padding-top:94px; }
  .popoli-details-grid,
  .popoli-training-grid{
    grid-template-columns:1fr;
  }
  .popoli-training-card{
    grid-template-columns:48px minmax(0,1fr);
    padding:20px;
  }
  .popoli-training-card__icon{
    width:48px;
    height:48px;
  }
  .popoli-training-card ul{
    display:grid;
    grid-template-columns:1fr;
  }
}

@media (max-width:576px){
  body.site-root .locations-choice{ padding-top:86px; }
  .locations-choice{ padding:52px 0; }
  .office-hero{ padding:64px 0 56px; }
}
/* Stile WhatsApp Moderno */
.whatsapp-icon {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 60px;
  height: 60px;
  background-color: #25D366;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  cursor: pointer;
  z-index: 9999;
  transition: transform 0.3s ease;
  animation: pulse 2s infinite;
}

.whatsapp-icon:hover {
  transform: scale(1.1);
}

.notification-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  background-color: #FF3B30;
  color: white;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  font-weight: bold;
}

.whatsapp-chat {
  position: fixed;
  bottom: 100px;
  right: 25px;
  width: 320px;
  height: 350px;
  background: #e5ddd5;
  border-radius: 10px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
  z-index: 10000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: 'Segoe UI', Helvetica, sans-serif;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.3s ease;
}

.whatsapp-chat.active {
  transform: translateY(0);
  opacity: 1;
}

.chat-header {
  background-color: #075E54;
  color: white;
  padding: 10px 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.profile {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

.profile-info {
  display: flex;
  flex-direction: column;
}

.profile-name {
  font-weight: 600;
  font-size: 16px;
}

.profile-status {
  font-size: 12px;
  opacity: 0.8;
}

.chat-actions {
  display: flex;
  gap: 10px;
}

.action-btn {
  background: none;
  border: none;
  color: white;
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.action-btn:hover {
  opacity: 1;
}

.chat-body {
  flex: 1;
  padding: 15px;
  overflow-y: auto;
  background-image: url('https://web.whatsapp.com/img/bg-chat-tile-light_a4be512e7195b6b733d9110b408f075d.png');
  background-repeat: repeat;
}

.message-date {
  text-align: center;
  color: #888;
  font-size: 12px;
  margin: 10px 0;
}

.message {
  max-width: 80%;
  margin-bottom: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  position: relative;
  font-size: 14px;
  line-height: 1.4;
  word-wrap: break-word;
}

.message.received {
  background-color: white;
  align-self: flex-start;
  border-top-left-radius: 0;
}

.message.sent {
  background-color: #DCF8C6;
  align-self: flex-end;
  border-top-right-radius: 0;
  margin-left: auto;
}

.message-time {
  font-size: 11px;
  color: #666;
  text-align: right;
  margin-top: 4px;
}

.chat-footer {
  background-color: #f0f0f0;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.input-container {
  flex: 1;
  display: flex;
  align-items: center;
  background-color: white;
  border-radius: 20px;
  padding: 5px 10px;
}

.input-container input {
  flex: 1;
  border: none;
  outline: none;
  padding: 8px;
  font-size: 14px;
}

.emoji-btn, .attach-btn {
  background: none;
  border: none;
  color: #666;
  cursor: pointer;
  padding: 5px;
}

.send-btn {
  background-color: #25D366;
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: white;
}

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* Pulsazione */
@keyframes pulse {
  0% {
      transform: scale(1);
      box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5);
  }
  70% {
      transform: scale(1.05);
      box-shadow: 0 0 0 12px rgba(37, 211, 102, 0);
  }
  100% {
      transform: scale(1);
      box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

/* HERO CON IMMAGINE BACKGROUND */
.hero {
  position: relative;
  /*background: url('../img/FotoIndexHeader.jpg') center center / cover no-repeat;*/
  width: 100%;
  display: block;
  align-items: center;
  justify-content: center;
  padding-top: 120px; /* spazio per header sticky */
  padding-bottom: 0px;
  box-sizing: border-box;
  
}

/* Blocco trasparente a tutta larghezza */
.hero-banner {
  width: 100%;
  background: rgba(255, 255, 255, 0.8);
  padding: 1.5rem 2rem;
  text-align: center;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.hero-banner h1 {
  margin: 0;
  font-size: 2.2rem;
  font-weight: bold;
  color: #0c2340; /* blu scuro */
}

.hero-banner p {
  margin: 0.5rem 0 0;
  font-size: 1.1rem;
  color: #318aca; /* azzurro */
}





/* Effetto slide su bottone */
.btn-slide {
  position: relative;
  overflow: hidden;
  transition: color 0s ease;
  z-index: 1;
}

.btn-slide::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: currentColor;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  z-index: -1;
  opacity: 0.2;
}

.btn-slide:hover::before {
  transform: translateX(0);
}

.btn-slide:hover {
  color: white !important;
}








/* Dropdown on hover */
.nav-item.dropdown:hover .dropdown-menu {
  display: block;
  margin-top: 0; /* allinea bene col link */
}

/* Optional: migliora visibilità dropdown */
.dropdown-menu {
  background-color: #0c2340;
  border: none;
}

.dropdown-menu .dropdown-item {
  color: white;
}

.dropdown-menu .dropdown-item:hover {
  background-color: #318aca;
  color: white;
}







/* SEZIONE BOX */
.offerta {
  background-color: #318aca;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

/* CARD */
.box-formazione {
  background: white;
  border: 2px solid transparent;
  transition: all 0.3s ease;
  padding: 1rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: scale(1);
  border-radius: 1px;
  
}
.box-formazione h5 {
  color: #318aca;
  font-weight: bold;
  font-size: 1.1rem;
  height: 60px;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.box-formazione img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  margin-bottom: 1rem;
}
.approfondisci-btn {
  margin-top: auto;
  border: 2px solid #318aca;
  color: #318aca;
  background-color: transparent;
  font-weight: 500;
  position: relative;
  overflow: hidden;
  transition: color 0.3s ease;
}


/* ANIMAZIONE HOVER BOTTONE */
.approfondisci-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.15);
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  z-index: 0;
}
.approfondisci-btn:hover::before {
  transform: translateX(0);
}
.approfondisci-btn:hover {
  color: white;
  border-color: white;
  z-index: 1;
}
.approfondisci-btn span {
  position: relative;
  z-index: 2;
}

/* HOVER CARD */
.box-formazione:hover {
  background-color: #0c2340  !important;
  transform: scale(1.05);
}
.box-formazione:hover h5,
.box-formazione:hover .approfondisci-btn {
  color: white !important;
  border-color: white !important;
}

/* RESPONSIVE FIX */
@media (max-width: 767px) {
  .hero {
    height: 110vh;
    padding-bottom: 100px;
  }

  .box-formazione h5 {
    font-size: 1rem;
    height: auto;
  }

  .box-formazione img {
    height: 160px;
  }
}







/* Sezione documenti istituzionali */
.documenti-istituzionali {
  background-color: #0c2340;
}

.doc-box {
  background-color: white;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.titolo-box {
  font-family: 'Playfair Display', serif;
  color: #318aca;
  font-size: 2.3rem;
  font-weight: 500;
  text-align: left;
}



.descrizione-box {
  font-family: 'Playfair Display', serif;
  text-align: left;
  color: #318aca;
  font-size: 1rem;
  font-weight: 80;
  padding-top: 15px;
}







/* GOL & EIPASS sezioni */
section.text-center h3 {
  font-size: 1.6rem;
  font-weight: bold;
  color: #318aca;
}

section.text-center p {
  max-width: 700px;
  margin: 0 auto 1rem;
  font-size: 1rem;
  color: #318aca;
}

section.text-center a.btn {
  margin-top: 1rem;
}

/* EIPASS sezione */
.eipass-section {
  background-color: #318aca;
  color: white;
  padding: 3rem 1rem;
}

.eipass-section h3 {
  font-size: 1.6rem;
  font-weight: bold;
  color: white;
}

.eipass-section p {
  max-width: 700px;
  margin: 0 auto 1rem;
  font-size: 1rem;
  color: white;
}

.eipass-section .btn {
  border-color: white;
  color: white;
}

.eipass-section .btn:hover {
  background-color: white;
  color: #318aca;
}

/* Certificazioni */
section.text-center img {
  max-width: 100px;
  margin: 0 15px;
}

/* ──────────────────────────────── */
/* Tecnoservice in Breve           */
/* ──────────────────────────────── */
section.bg-dark {
  background-color: #0c2340 !important;
  color: #ffffff;
}

section.bg-dark h4 {
  font-weight: 600;
  margin-bottom: 2rem;
}

section.bg-dark label {
  color: #ccc;
  margin-bottom: 0.3rem;
  display: block;
}

.progress {
  height: 25px;
  background-color: #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
}

.progress-bar {
  font-weight: bold;
  font-size: 0.9rem;
  line-height: 25px;
  transition: width 1s ease-out;
  text-align: right;
  padding-right: 10px;
}

/* Responsive flex wrap per immagine + barre */
@media (max-width: 768px) {
  .d-flex.flex-md-row {
    flex-direction: column !important;
    align-items: center;
    text-align: center;
  }

  .d-flex img {
    margin-bottom: 2rem;
  }
}






/*Footer*//* ---------------------------- */
/* 1. Sezione Top contatti      */
/* ---------------------------- */
.background-primary.padding.text-center {
  background-color: #318aca;
  padding: 1.5rem;
  text-align: center;
}

.background-primary .button {
  display: inline-block;
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  padding: 10px 20px;
  font-size: 1.2rem;
  margin: 0.3rem;
  border-radius: 4px;
  transition: all 0.3s ease;
  text-decoration: none;
}

.background-primary .button:hover {
  background-color: white;
  color: #318aca;
}

/* ---------------------------- */
/* 2. MAIN FOOTER CON MAPPA + INFO */
/* ---------------------------- */
.background-dark.full-width {
  background-color: #0f1e31;
  color: white;
  display: flex;
  flex-wrap: wrap;
  padding: 2rem 1rem;
  gap: 1rem;
}

.background-dark .s-12 {
  flex: 1 1 100%;
  max-width: 100%;
}

.background-dark iframe {
  width: 100%;
  height: 350px;
  border: none;
}

.padding-2x {
  padding: 1rem 2rem;
}

.float-left {
  float: left;
}

.margin-left-70 {
  margin-left: 70px;
}

.margin-bottom-30 {
  margin-bottom: 1.5rem;
}

.icon3x {
  font-size: 2rem;
  margin-top: 5px;
  color: #388dcd;
}

.background-dark h3 {
  color: #388dcd;
  font-size: 1.1rem;
  margin-bottom: 0.4rem;
}

.background-dark p,
.background-dark a {
  color: #ffffff;
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 0.5rem;
}

/* ---------------------------- */
/* 3. Bottom Footer Grigio      */
/* ---------------------------- */
.background-grey.full-width {
  background-color: #4f4f4f;
  color: white;
  text-align: center;
  padding: 2rem 1rem;
}

.background-grey img {
  max-height: 60px;
  margin-bottom: 1rem;
}

.background-grey .line {
  margin-bottom: 1rem;
}

.background-grey a {
  color: #ffffff;
  text-decoration: none;
}

.background-grey a:hover {
  text-decoration: underline;
}

.text-size-10 {
  font-size: 0.75rem;
}

/* ---------------------------- */
/* 4. Social media              */
/* ---------------------------- */
.background-grey .line img {
  height: 32px;
  margin: 0 10px;
}

/* ---------------------------- */
/* 5. Responsive                */
/* ---------------------------- */
@media (max-width: 768px) {
  .margin-left-70 {
    margin-left: 0 !important;
  }

  .padding-2x {
    padding: 1rem;
  }

  .float-left {
    float: none;
    display: block;
    text-align: center;
    margin-bottom: 1rem;
  }

  .background-dark.full-width {
    flex-direction: column;
  }

  .background-primary .button {
    display: block;
    width: 80%;
    margin: 0.5rem auto;
  }
}

.course-card-link-target{
  cursor:pointer;
}
.course-card-link-target:focus-visible{
  outline:3px solid #318aca;
  outline-offset:3px;
}

.location-course-search{
  position:relative;
  margin-top:1rem;
  text-align:left;
}
.location-course-search > label{
  display:block;
  margin-bottom:.45rem;
  font-weight:800;
  color:#0c2340;
}
.location-course-search__field{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) 2.5rem;
  align-items:center;
  min-height:48px;
  border:1px solid rgba(12,35,64,.18);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 22px rgba(12,35,64,.08);
}
.location-course-search__field > i{
  padding-left:.9rem;
  color:#318aca;
}
.location-course-search__field input{
  min-width:0;
  border:0;
  outline:0;
  padding:.75rem;
  background:transparent;
  color:#0c2340;
}
.location-course-search__field button{
  width:2.25rem;
  height:2.25rem;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#49627e;
}
.location-course-search__field button:hover,
.location-course-search__field button:focus-visible{
  background:#eaf4fb;
  color:#0c2340;
}
.location-course-search__results{
  position:relative;
  z-index:1;
  margin-top:6px;
  max-height:320px;
  overflow:auto;
  border:1px solid rgba(12,35,64,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 34px rgba(12,35,64,.16);
}
.location-course-search__result{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem .9rem;
  border-bottom:1px solid rgba(12,35,64,.08);
  color:#0c2340;
  text-decoration:none;
}
.location-course-search__result:last-child{ border-bottom:0; }
.location-course-search__result:hover,
.location-course-search__result:focus-visible{
  background:#eaf4fb;
}
.location-course-search__result span{ font-weight:800; }
.location-course-search__result small{
  flex:0 0 auto;
  color:#58708b;
  text-align:right;
}
.location-course-search__empty{
  margin:0;
  padding:.9rem;
  color:#64748b;
}
@media (max-width:575.98px){
  .location-card{ min-height:0; }
  .location-course-search__result{ flex-direction:column; gap:.2rem; }
  .location-course-search__result small{ text-align:left; }
}
