/* ===== HEADER BASE ===== */
.site-header {
  width: 100%;
}

/* ===== RIGA 1: TOP BAR ===== */
.top-bar{
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.0);
}

.top-icon-link{
  color: #1f1f1f;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
}

.top-icon-link:hover{
  color: #1f8f3a;
  background: rgba(31,143,58,.08);
}

/* Se vuoi ridurre ancora un filo su mobile */
@media (max-width: 576px){
  .top-icon-link{
    width: 32px;
    height: 32px;
  }
}

/* ===== RIGA 2: LOGO BAR ===== */
.logo-bar {
  position: relative;
  /*background: #61aa47; /* verde CECAT */
  background: linear-gradient(90deg, #61aa47, #fff, #fff, #61aa47);
  height: 120px;
}

.logo-wrapper {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #ffffff;
  padding: 10px 20px;
  border-radius: 4px;
}

.logo-wrapper img {
  height: 120px;
  width: auto;
}

/* ===== RIGA 3: MENU ===== */
.main-nav {
  background: #ffffff;
  border-bottom: 1px solid #ddd;
}

.main-nav .nav-link {
    font-size: 1.3rem;
  color: #1f1f1f;
}

.main-nav .nav-link:hover {
  color: #61aa47;
}

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

  .logo-bar {
    height: 70px;
  }

  .logo-wrapper img {
    height: 50px;
  }

  .navbar-toggler {
    border: none;
  }

}

.bg-success {
  background-color: #61aa47 !important;
}
.text-success {
  color: #61aa47 !important;
}
.border-success {
  border-color: #61aa47 !important;
}
.btn-success {
  background-color: #61aa47 !important;
  border-color: #61aa47 !important;
}
.btn-success:hover {
  background-color: #4e8c39 !important;
  border-color: #4e8c39 !important;
}
.btn-outline-success {
  color: #61aa47 !important;
  border-color: #61aa47 !important;
}
.btn-outline-success:hover {
  color: #fff !important;
  background-color: #61aa47 !important;
  border-color: #61aa47 !important;
}
.text-bg-success {
  color: #fff !important;
  background-color: #61aa47 !important;
}

/* Piccola "vita" alle card, senza effetti pacchiani */
.hover-lift { transition: transform .15s ease, box-shadow .15s ease; }
.hover-lift:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.08); }

.partner-marquee{
  overflow: hidden;
  position: relative;
  width: 100%;
  padding: 10px 0;
}

/* Track che scorre */
.partner-track{
  display: flex;
  width: max-content;
  animation: partner-scroll 35s linear infinite;
}

/* Pausa su hover (desktop) */
.partner-marquee:hover .partner-track{
  animation-play-state: paused;
}

/* Set di loghi (uno dopo l'altro) */
.partner-set{
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 14px;
}

/* Loghi */
.partner-set img{
  height: 56px;
  width: auto;
  flex: 0 0 auto;
  display: block;
  opacity: .95;
  filter: grayscale(100%);
  transition: filter .2s ease, opacity .2s ease;
}

.partner-set img:hover{
  filter: grayscale(0%);
  opacity: 1;
}

/* Animazione: sposta di mezzo contenuto (perché hai duplicato) */
@keyframes partner-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* Mobile: un filo più piccoli */
@media (max-width: 768px){
  .partner-set img{ height: 46px; }
  .partner-set{ gap: 18px; }
}

/* Accessibilità: se l’utente riduce animazioni, non animare */
@media (prefers-reduced-motion: reduce){
  .partner-track{
    animation: none;
    transform: none;
  }
  .partner-marquee{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

.hero-video{
  position: relative;
  height: 720px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.hero-video video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-video .overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}

.hero-video .container{
  position: relative;
  z-index: 2;
}

/* ===== FOOTER ===== */
.site-footer{
  background: #333; /* blu molto scuro, istituzionale */
  color: rgba(255,255,255,.9);
}

.site-footer a{
  color: rgba(255,255,255,.9);
  text-decoration: none;
}

.site-footer a:hover{
  color: #6ee7b7; /* verde chiaro coerente */
  text-decoration: underline;
}

.footer-list{
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.footer-list li{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 10px;
  line-height: 1.35;
}

.footer-list i{
  margin-top: 3px;
  opacity: .9;
  width: 18px;
  text-align: center;
}

.footer-social-link{
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}

.footer-social-link:hover{
  background: rgba(110,231,183,.15);
  border-color: rgba(110,231,183,.35);
  text-decoration: none;
}

.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
}

.footer-bottom a{
  text-decoration: none;
}
.footer-bottom a:hover{
  text-decoration: underline;
}

.chi-siamo-img{
  width: 100%;
  object-fit: cover;
}

/* HERO chi-siamo */
.about-hero{
  position: relative;
  background: url('/public/assets/img/chi-siamo-hero.jpg') center/cover no-repeat;
  min-height: 360px;
}
.about-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.about-hero .container{
  position: relative;
  z-index: 2;
}
.breadcrumb-light .breadcrumb-item a,
.breadcrumb-light .breadcrumb-item{
  color: rgba(255,255,255,.92);
}
.breadcrumb-light .breadcrumb-item.active{
  color: rgba(255,255,255,.75);
}

/* card nel hero */
.about-hero-card{
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 16px;
  padding: 18px 18px;
}

/* list */
.about-list{
  padding-left: 18px;
  margin: 0;
}

.light-gray-bg {
  background-color: #e1eddf;
}

.accordion-button:not(.collapsed) {
  background-color: #e1eddf !important;
}

/* Card aree: sobrie, moderne */
.area-card{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.area-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  border-color: rgba(31,143,58,.25);
}

/* Icon badge */
.area-icon{
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(31,143,58,.10);
  color: #1f8f3a;
  font-size: 22px;
}

/* CTA stile link, non bottone */
.area-cta{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  color: #1f8f3a;
  text-decoration: none;
}

.area-cta:hover{
  text-decoration: underline;
}

/* Lista link interna più elegante */
.area-links{
  list-style: none;
  padding-left: 0;
  border-top: 1px solid rgba(0,0,0,.06);
  padding-top: 10px;
}

.area-links li{
  margin: 6px 0;
}

.area-links a{
  text-decoration: none;
  color: rgba(0,0,0,.75);
}

.area-links a:hover{
  color: #1f8f3a;
  text-decoration: underline;
}

/* HERO contatti */
.contact-hero{
  position: relative;
  background: url('/public/assets/img/contatti-hero.jpg') center/cover no-repeat;
  min-height: 260px;
}
.contact-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.contact-hero .container{
  position: relative;
  z-index: 2;
}

/* breadcrumb chiaro su hero scuro */
.breadcrumb-light .breadcrumb-item a,
.breadcrumb-light .breadcrumb-item{
  color: rgba(255,255,255,.92);
}
.breadcrumb-light .breadcrumb-item.active{
  color: rgba(255,255,255,.75);
}

.contact-block .contact-label{
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(0,0,0,.55);
  margin-bottom: 2px;
}
.contact-block .contact-value{
  font-weight: 600;
}

/* evita che la mappa “tocchi” i bordi della card */
.contact-map .ratio{
  border-radius: 12px;
}

.detail-hero{
  position: relative;
  background: url('/public/assets/img/hero-cecat.jpg') center/cover no-repeat;
  min-height: 320px;
}
.detail-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.58);
}
.detail-hero .container{
  position: relative;
  z-index: 2;
}

.detail-hero-actions{
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  padding: 14px;
  backdrop-filter: blur(6px);
}

.content-prose h2{
  margin-top: 28px;
  margin-bottom: 10px;
  font-weight: 700;
}
.content-prose p{
  color: rgba(0,0,0,.72);
  line-height: 1.65;
}

.catalog-hero{
  position: relative;
  background: url('/public/assets/img/hero-cecat.jpg') center/cover no-repeat;
  min-height: 280px;
}
.catalog-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.catalog-hero .container{
  position: relative;
  z-index: 2;
}

/* Card catalogo */
.catalog-card{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  overflow: hidden;
}
.catalog-card .card-img-top{
  aspect-ratio: 16/9;
  object-fit: cover;
}

.area-card{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.area-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0,0,0,.08);
}
.area-icon{
  font-size: 34px;
  line-height: 1;
}

.area-hero{
  position: relative;
  min-height: 320px;
  background: url('/public/assets/img/hero-cecat.jpg') center/cover no-repeat;
}
.area-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.area-hero .container{
  position: relative;
  z-index: 2;
}
.area-hero-formazione{
  background-image: url('/public/assets/img/hero-cecat.jpg'); /* se vuoi un’immagine specifica, cambiala qui */
}

.area-hero-consulenza{
  background-image: url('/public/assets/img/hero-cecat.jpg'); /* sostituisci con immagine più “tecnica” se vuoi */
}

.area-hero-certificazioni{
  background-image: url('/public/assets/img/hero-cecat.jpg'); /* sostituisci se hai un’immagine più adatta */
}

.area-hero-progetti{
  background-image: url('/public/assets/img/hero-cecat.jpg'); /* sostituisci con immagine più “progetti” se vuoi */
}