/* Responsive styles
================================================== */
@media (max-width: 767px) {
  /* 1. Flex container wrap & overflow hidden */
  .cta-sticky-mobile {
    display: flex;
    flex-wrap: wrap !important;
    justify-content: center !important;   /* centra i due elementi senza spazi esterni */
    padding: 8px 5px;                     /* padding orizzontale ridotto */
    overflow-x: hidden;                   /* blocca eventuali residui */
  }

  /* 2. Item su più righe e centrati */
  .cta-sticky-mobile span,
  .cta-sticky-mobile a {
    flex: 1 1 100%;       /* ciascun item occupa tutta la riga se necessario */
    text-align: center;
    margin: 4px 0;        /* separazione verticale minima */
  }

  /* 3. Bottone: mantiene dimensione leggibile */
  .cta-sticky-mobile a {
    padding: 8px 16px;    /* puoi ridurre leggermente se serve */
  }
}

/* 1. Global box-sizing + overflow fix */
html, body {
  overflow-x: hidden;
}
*, *::before, *::after {
  box-sizing: border-box;
}

/* 2. Immagini responsive */
img {
  display: block;      /* evita whitespace indesiderati */
  max-width: 100%;
  height: auto;
}

/* 3. Flex-wrapping per .download-section */
@media (max-width: 767px) {
  .download-section .row {
    display: flex !important;
    flex-wrap: wrap;
    margin-left: -15px;  /* come Bootstrap */
    margin-right: -15px; /* come Bootstrap */
  }
  .download-section .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
    padding-left: 15px;  /* come Bootstrap */
    padding-right: 15px; /* come Bootstrap */
  }
}
/* Large Devices, Wide Screens */
@media (min-width: 1200px) {
  /* Dropdown animation */
  .navbar-nav .dropdown-menu,
  .navbar-nav .dropdown.megamenu div.dropdown-menu {
    background: none;
    border: 0;
    box-shadow: none;
    display: block;
    opacity: 0;
    z-index: 1;
    visibility: hidden;
    -webkit-transform: scale(0.8);
    -moz-transform: scale(0.8);
    -ms-transform: scale(0.8);
    -o-transform: scale(0.8);
    transform: scale(0.8);
    -webkit-transition: visibility 500ms, opacity 500ms, -webkit-transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
    -moz-transition: visibility 500ms, opacity 500ms, -moz-transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
    -o-transition: visibility 500ms, opacity 500ms, -o-transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
    -ms-transition: visibility 500ms, opacity 500ms, -ms-transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
    transition: visibility 500ms, opacity 500ms, transform 500ms cubic-bezier(0.43, 0.26, 0.11, 0.99);
  }
  .navbar-nav .dropdown:hover div.dropdown-menu,
  .navbar-nav .dropdown.megamenu:hover div.dropdown-menu {
    opacity: 1;
    visibility: visible;
    color: #777;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  .navbar-nav .dropdown-backdrop {
    visibility: hidden;
  }
}
/*		Tablet Layout: 768px.
		Gutters: 24px.
		Outer margins: 28px.
		Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */
/*		Mobile Layout: 320px.
		Gutters: 24px.
		Outer margins: 34px.
		Inherits styles from: Default Layout.
---------------------------------------------
cols    1     2      3
px      68    160    252    */
@media only screen and (max-width: 767px) {
  .title {
    font-size: 40px;
  }
  .navbar-header .navbar-brand a {
    padding: 6px 8px;
  }
  #hero-area {
    padding: 140px 0;
  }
  #hero-area .btn {
    margin-top: 8px;
  }
  #about {
    padding: 70px 0;
  }
  #about .block {
    padding: 0;
  }
  figure .buttons {
    left: 16%;
  }
  #feature .media {
    margin: 0px 0px 35px;
  }
  #footer .copyright {
    text-align: center;
  }
  #footer .social {
    text-align: center;
  }
  .dropdown-menu > ul > li > a {
    display: block;
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    padding: 15px;
    color: #333;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .dropdown-menu > ul {
    list-style: none;
    padding: 0 15px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
    margin-top: -5px;
    background: #fff;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 0.09px rgba(0, 0, 0, 0.15);
  }
  .navbar-collapse {
    background: #333333;
  }
  #top-bar .main-menu li > a {
    color: #fff;
    padding: 21px 10px;
    background: transparent;
  }
  #top-bar .dropdown-menu > ul {
    list-style: none;
    padding: 0 15px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0;
    margin-top: -5px;
    background: #fff;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 0.09px rgba(0, 0, 0, 0.15);
  }
  #top-bar .dropdown-menu > ul > li > a {
    display: block;
    font-size: 14px;
    font-weight: 400;
    line-height: normal;
    text-decoration: none;
    padding: 15px;
    color: #333;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
}
@media (max-width: 767px) {
  /* container flex a tutta larghezza e senza overflow */
  .cta-sticky-mobile {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 8px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    background: #02bdd5 !important;
    overflow-x: hidden !important;
    z-index: 9999 !important;
  }

  /* figli del flex: possono restringersi e andare a capo */
  .cta-sticky-mobile > * {
    flex: 1 1 auto !important;
    min-width: 0 !important;        /* << chiave per farli “strizzarsi” */
    text-align: center !important;
    margin: 4px 0 !important;
  }

  /* bottone con padding controllato */
  .cta-sticky-mobile a {
    padding: 8px 16px !important;
  }
}

/*		Wide Mobile Layout: 480px.
		Gutters: 24px.
		Outer margins: 22px.
		Inherits styles from: Default Layout, Mobile Layout.
------------------------------------------------------------
cols    1     2      3      4      5
px      68    160    252    344    436    */

.cta-sticky {
  position: fixed;
  right: 28px;
  bottom: 28px;
  background: linear-gradient(90deg, #0075B8 60%, #36a0e0 100%);
  color: #fff;
  border-radius: 32px;
  padding: 16px 32px 16px 18px;
  font-weight: 700;
  font-size: 1.15em;
  box-shadow: 0 8px 28px #00558833;
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  transition: box-shadow 0.18s, background 0.18s, transform 0.14s;
  animation: ctaBounce 1.1s cubic-bezier(.36,1.41,.48,.94) 1;
}
.cta-sticky:hover, .cta-sticky:focus {
  background: linear-gradient(90deg, #036bb7 70%, #37b1e1 100%);
  box-shadow: 0 12px 40px #0033565d;
  transform: scale(1.035);
}
.cta-icon {
  background: #ffffff20;
  border-radius: 50%;
  padding: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (max-width: 600px) {
  .cta-sticky {
    right: 10px;
    bottom: 10px;
    padding: 13px 18px 13px 14px;
    font-size: 1em;
  }
  .cta-sticky span br { display:none; }
}
@keyframes ctaBounce {
  0%   { transform: translateY(45px) scale(.96);}
  60%  { transform: translateY(-9px) scale(1.05);}
  80%  { transform: translateY(2px) scale(.98);}
  100% { transform: translateY(0) scale(1);}
}

.testimonials { margin:2.5em 0 2em 0; }
.testimonial-list { display:flex; gap:24px; flex-wrap:wrap;}
.testimonial { background:#f6fbff; border-radius:10px; box-shadow:0 2px 14px #9cd2e91a; padding:1.3em 1.4em; max-width:320px; flex:1 1 210px; display:flex; flex-direction:column; align-items:flex-start;}
.testimonial img { width:48px; height:48px; border-radius:50%; margin-bottom:.7em;}
.testimonial blockquote { font-style:italic; font-size:1em; color:#21506e; margin:0;}
.testimonial cite { display:block; font-style:normal; font-size:0.93em; color:#1587c7; margin-top:.5em;}
@media(max-width:680px){.testimonial-list{flex-direction:column;gap:12px;}}

.badges { display:flex; flex-wrap:wrap; gap:16px; margin:2em 0 1em 0;}
.badge { background:#00a4ba; border-radius:22px; display:flex; align-items:center; gap:9px; padding:7px 18px; font-weight:500; font-size:.97em; }
