 body,
 html {
     margin: 0;
     padding: 0;
     font-family: sans-serif;
     overflow-x: hidden;
     height: 100%;
 }

 .wpb_animate_when_almost_visible {
     opacity: 1;
 }

 body {
     margin: 0;
     /* margine dai bordi destro e sinistro */
     font-family: Arial, sans-serif;
     background: #ffffff;
     /* bianco ottico */
     color: #333;
     display: flex;
     flex-direction: column;
     min-height: 100vh;
 }

 /* HEADER */
 .site-header {
     background: #57c785;
     /* solo l'header verde */
     padding: 20px 24px;
     margin: 0;
     /* estende il verde fino ai bordi finestra */
 }

 .site-header .header-inner {
     max-width: 1200px;
     margin: 0 auto;
     display: flex;
     align-items: center;
 }

 .site-header img {
     max-width: 120px;
     height: auto;
     display: block;
     margin: 0;
 }

 .site-header .site-title {
     margin-left: -28px;
     font-size: 1.6rem;
     font-weight: 700;
     color: #ffffff;
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 /* MAIN WRAPPER PER AGGANCIAR E IL FOOTER IN BASSO */
 .page-main {
     margin: 24px 24px 200px 24px;
     flex: 1;
     /* occupa tutto lo spazio tra header e footer */
     display: flex;
     flex-direction: column;
     /* mantiene titolo sopra e form sotto */
 }

 /* TITOLO PAGINA */
 .page-title {
     padding-top: 24px;
     text-align: center;
 }

 .page-title h1 {
     max-width: 1200px;
     margin: 0 auto;
     font-size: 2rem;
     font-weight: 700;
     color: #57c785;
 }

 /* BODY: FORM DISISCRIZIONE CENTRATO */
 .hero-section {
     background: #ffffff;
     padding: 40px 0 60px;
     flex: 1;
     /* riempie lo spazio verticale rimasto nel main */
     display: flex;
     align-items: center;
     /* centra verticalmente la card */
 }

 .hero-layout {
     max-width: 1200px;
     margin: 0 auto;
     display: flex;
     justify-content: center;
     box-sizing: border-box;
     width: 100%;
 }

 .card {
     background: #ffffff;
     padding: 30px;
     border-radius: 12px;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
     width: 100%;
     max-width: 600px;
     box-sizing: border-box;
 }

 .card-intro {
     font-size: 0.95rem;
     color: #4b5563;
     line-height: 1.5;
     margin-bottom: 16px;
 }

 .card-intro strong {
     font-weight: 600;
 }

 /* STILE CF7 */
 .card .wpcf7-form {
     display: flex;
     flex-direction: column;
     gap: 14px;
 }

 .card .wpcf7-form p {
     margin: 0;
 }

 .card label {
     display: block;
     font-size: 0.95rem;
     color: #374151;
     margin-bottom: 4px;
 }

 .card input[type="email"],
 .card input[type="text"],
 .card input[type="tel"] {
     width: 100%;
     padding: 10px 12px;
     border: 1px solid #d1d5db;
     border-radius: 6px;
     font-size: 0.95rem;
     box-sizing: border-box;
 }

 .card input[type="email"]:focus,
 .card input[type="text"]:focus,
 .card input[type="tel"]:focus {
     outline: none;
     border-color: #57c785;
     box-shadow: 0 0 0 2px rgba(87, 199, 133, 0.2);
 }

 .card input[type="submit"],
 .card .wpcf7-submit {
     background: #57c785;
     color: #ffffff;
     border: none;
     border-radius: 999px;
     padding: 10px 26px;
     font-size: 0.95rem;
     font-weight: 600;
     cursor: pointer;
     align-self: flex-start;
     text-transform: uppercase;
     letter-spacing: 0.03em;
     transition: background 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
 }

 .card .wpcf7-submit:hover {
     background: #45a76c;
     transform: translateY(-1px);
     box-shadow: 0 8px 20px rgba(34, 197, 94, 0.25);
 }

 .card .wpcf7-response-output {
     margin-top: 12px;
     padding: 10px 12px;
     border-radius: 6px;
     font-size: 0.88rem;
 }

 .card .wpcf7-not-valid-tip {
     font-size: 0.8rem;
     color: #b91c1c;
     margin-top: 4px;
 }

 .highlight {
     margin-bottom: 10px;
 }

 .highlight-discount {
     margin-top: 5px;
 }

 footer {
     background: #222;
     color: #fff;
     text-align: center;
     padding: 20px;
     margin: 0 -24px 0;
     /* footer a tutta larghezza */
     position: fixed;
     left: 0;
     right: 0;
     bottom: 0;
     /* agganciato al fondo viewport */
     z-index: 10;
 }

 footer a {
     color: #fff;
     text-decoration: underline;
 }

 /* 🔹 Tablet breakpoint */
 @media (max-width: 992px) {
     .card {
         max-width: 500px;
     }

     .page-title h1 {
         font-size: 1.7rem;
     }
 }

 /* 🔹 Smartphone breakpoint */
 @media (max-width: 600px) {
     body {
         margin: 0 12px;
     }

     .site-header {
         padding: 16px 12px;
         margin: 0 -12px;
     }

     .page-title {
         padding-top: 18px;
     }

     .page-title h1 {
         font-size: 1.5rem;
     }

     .hero-section {
         padding: 30px 0 40px;
     }

     .hero-layout {
         padding: 0 4px;
     }

     .card {
         padding: 20px;
         max-width: 100%;
     }

     footer {
         font-size: 0.85rem;
         padding: 15px;
         margin: 0 -12px 0;
     }
 }
