﻿.mobile_logo {
  display: none;
}

.mobile_logo img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 767.98px) {
  .brand-preview-page .brand-landing-layout {
    position: relative;
  }

  /* Mobile: disable desktop pseudo-logo layer inside the branding box. */
  .brand-preview-page .brand-landing-box.brand-landing-box--desktop::before {
    content: none !important;
    display: none !important;
  }

  .brand-preview-page .mobile_logo {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: clamp(6px, 1.2vh, 12px);
    left: 50%;
    transform: translateX(-50%);
    width: min(62vw, 260px);
    max-width: 82%;
    z-index: 30;
    pointer-events: none;
  }

  .brand-preview-page .mobile_logo img {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
  }
}

@media (min-width: 768px) {
  .brand-preview-page .mobile_logo {
    display: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }
}
/* Structure principale */
.sfondo-body {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}

html {
  overflow-x: hidden;
  width: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  /* Da brand_theme.php (--brand-bg-* = livello 1 + override Manager) */
  background-image: var(--brand-bg-desktop);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  overflow-y: auto;
  overflow-x: hidden;
  width: 100%;
  margin: 0;
  padding: 0;
}
/* Conteneur parent pour header et main avec le background */
.main-background-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  background-image: var(--brand-bg-desktop);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  min-height: calc(100vh - 0px);
  position: relative;
  width: 100%;
}

/* Assurer que le contenu principal prend tout l'espace disponible */
main {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
}

/* Overlay retirÃ© pour avoir les mÃªmes couleurs vives que COOP-CALENDARIO-2025 */

/* Header sans background (utilise celui du wrapper parent) */
.main-header {
  width: 100%;
  padding: 0 20px 12px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  position: relative;
  min-height: 0;
}


/* Logo centrÃ© dans le header */
.main-header .logo-concorso {
  max-width: 98%;
  max-height: 280px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  object-fit: contain;
}

/* Logo plus grand sur desktop */
@media (min-width: 992px) {
  .main-header .logo-concorso {
    max-width: 98%;
    max-height: 270px;
  }
}

@media (min-width: 1200px) {
  .main-header .logo-concorso {
    max-width: 98%;
    max-height: 300px;
  }
}

@media (min-width: 1920px) {
  .main-header .logo-concorso {
    max-width: 96%;
    max-height: 330px;
  }
}

/* Tablettes */
@media (min-width: 768px) and (max-width: 991px) {
  .main-header .logo-concorso {
    max-width: 96%;
    max-height: 280px;
  }
}

/* Harmonisation accueil et login */
.help-content {
  color: #000;
}

.login-container {
  max-width: 1000px;
  width: 100%;
  margin: 20px auto;
  background: transparent;
  background-image: none;
  border-radius: 12px;
  box-shadow: none;
  padding: 20px 0;
  box-sizing: border-box;
  overflow-x: hidden;
}
.home-form-container, .login-form-container {
  max-width: 400px;
  width: 100%;
  margin: 0 auto;
  box-shadow: none;
  background: transparent;
}
/* Supprimer la limitation globale de .form-container */
.form-container {
  box-shadow: none;
  background: transparent;
}

main {
  margin: 0 !important;
  padding: 0 !important;
}

form {
  padding: 0px 0px 0px 0px !important;
}

.swal2-actions .btn {
    margin-right: 0.5em;
    min-width: 110px;
    font-size: 1.1rem;
    padding: 0.5em 1.5em;
}
.swal2-actions .btn:last-child {
    margin-right: 0;
}

.swal2-confirm.swal2-styled {
    background-color: #28a745 !important;
    border: none !important;
    color: #fff !important;
}
.swal2-confirm.swal2-styled:focus,
.swal2-confirm.swal2-styled:hover {
    background-color: #218838 !important;
}

.swal2-popup .swal2-actions .swal2-confirm.swal2-styled {
    background-color: #28a745 !important;
    border: none !important;
    color: #fff !important;
    box-shadow: none !important;
}
.swal2-popup .swal2-actions .swal2-confirm.swal2-styled:focus,
.swal2-popup .swal2-actions .swal2-confirm.swal2-styled:hover {
    background-color: #218838 !important;
}

/* Style commun pour footer logos (desktop et mobile) */
.footer-logos-wrapper,
.footer-logos-swiper {
    max-width: 1000px;
    width: 100%;
    margin: 0 auto;
    border-radius: 1px;
    padding: 10px;
    background: #fff;
}

/* Version desktop spÃ©cifique */
.footer-logos-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    flex-wrap: wrap;
    padding: 15px 20px;
}

/* Version mobile (carousel) spÃ©cifique */
.footer-logos-swiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
}

.footer-logo-img {
    height: 150px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

/* Responsive pour mobile */
@media (max-width: 768px) {
    .footer-logos-wrapper {
        gap: 20px;
        padding: 12px 15px;
    }
    .footer-logo-img {
        height: 100px;
        max-width: 160px;
    }
    
    /* Forcer la disparition de la grille desktop en responsive */
    .footer-logos-wrapper.d-none.d-md-flex {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
    }
}

@media (max-width: 576px) {
    .footer-logos-wrapper {
        gap: 15px;
        padding: 10px 12px;
    }
    .footer-logo-img {
        height: 90px;
        max-width: 140px;
    }
    
    /* Forcer la disparition de la grille desktop en responsive */
    .footer-logos-wrapper.d-none.d-md-flex {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
    }
}

/* Styles pour le footer */
footer {
  margin-top: 0;
  width: 100%;
  background: #fff;
  padding: 20px 0;
}

footer .txt-info {
  color: #fff;
  font-size: 1rem;
}
footer .txt-info a {
  color: #fff;
  text-decoration: underline;
}
footer .txt-info a:hover {
  color: #ffd700;
}

.footer-collab {
  margin-top: auto;
  width: 100%;
  background: #fff;
}

.gold-flat {
  display: block;
  width: 100%;
  background: linear-gradient(90deg,
    #a97c2f 0%,
    #e7c873 18%,
    #FCE68E 45%,
    #eac14d 65%,
    #a97c2f 82%,
    #7a5a1a 100%
  );
  color: #1a1a1a;
  font-family: 'HelveticaNeue321', Arial, sans-serif;
  font-weight: 750;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-align: center;
  padding: 22px 10px 18px 10px;
  border-radius: 16px;
  box-shadow: 0 4px 16px 0 rgba(183, 140, 43, 0.18);
  margin-bottom: 24px;
  margin-top: 0;
  border: 2px solid #e7c873;
}
.gold-flat {
  box-sizing: border-box;
}
@media (max-width: 600px) {
  .gold-flat {
    margin-left: 6px;
    margin-right: 6px;
    width: calc(100% - 12px); /* 100% moins les marges */
  }
}

.testata {
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.piede {
  max-width: 420px;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

img.img-fluid {
  max-width: 1000px;
  width: 100%;
  height: auto;
}

.card1 {
  background-color: #fff;
  border-radius: 1px;
  margin: 0;
  padding: 0;
  text-align: center;
  width: 100%;
  max-width: 1000px;
}

.card2 {
  background-color: #fff;
  border-radius: 1px;
  margin: 0;
  padding: 0;
  text-align: center;
  width: 100%;
  max-width: 1000px;
}

/* Responsive pour les cartes */
@media (max-width: 768px) {
  .card1, .card2 {
    border-radius: 1px;
  }
}

@media (max-width: 576px) {
  .card1, .card2 {
    border-radius: 1px;
  }
}

/* Alignement parfait label + input */
.form-label {
  text-align: left !important;
  display: block;
  margin-bottom: 0.5rem;
  padding-left: 2px;
}
.input-group, .form-control, .form-select {
  max-width: 400px;
  margin-left: 0 !important;
}
#message.form-control {
  max-width: 100%;
}
#help-form .form-control {
  max-width: 100%;
}

/* Alignement des cases Ã  cocher et texte */
.checkbox-align {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto 0.5rem auto;
}
.checkbox-align label {
  margin-bottom: 0;
  text-align: left;
}

/* Centrage de la checkbox privacy dans help.php */
#help-form .form-check {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 8px;
  margin: 0 auto;
  max-width: 600px;
}

#help-form .form-check-label {
  text-align: center;
  margin-bottom: 0;
}

@media (max-width: 767.98px) {
  .input-group, .form-control, .form-select {
    max-width: 100%;
  }
}

@media (max-width: 991.98px) {
  .form-container {
    max-width: 98vw;
  }
  form {
    padding: 20px 20px !important;
  }
}

/* Suppression de la marge top sur le container principal de help.php */
.login-container, .container.help-content {
  color: #000;
}

.login-container {
  margin-top: 20px !important;
  margin-bottom: 20px !important;
  border-radius: 0 !important;
}

/* Optionnel : si .col a une marge top, on l'annule aussi dans ce contexte */
#help-form .col,
.login-container .col {
  margin-top: 0 !important;
}

.login-container img {
  max-width: 100%;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* S'assurer que l'image piede reste collÃ©e en bas dans le login-container */
.login-container .piede {
  margin-top: 0;
  margin-bottom: 0;
}

.accordion-button:not(.collapsed) {
  background-color: rgba(56, 166, 104, 0.25) !important;
  color: #212529 !important;
  box-shadow: none;
  border-color: #38A668 !important;
}

input:focus, textarea:focus, select:focus {
  border-color: #018a4a !important;
  box-shadow: 0 0 0 0.2rem rgba(1, 138, 74, 0.15) !important;
  outline: none !important;
}

.registration-form-container {
  max-width: 800px !important;
  width: 100%;
  margin: 0 auto;
  box-shadow: none;
  background: transparent;
}
.registration-form-container .form-control,
.registration-form-container .form-select,
.registration-form-container .input-group {
  max-width: 100%;
}

/* Registrazione: layout piu compatto e stile coerente con waiting page */
.registration-login-container {
  margin-top: -48px !important;
  padding-top: 0 !important;
  position: relative;
  z-index: 2;
}

.registration-login-container .registration-form-container {
  max-width: 620px !important;
  margin-top: 0 !important;
}

#registration-form .form-label {
  font-family: 'BebasNeue Book', 'BebasNeue Light', Arial, sans-serif;
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  letter-spacing: 0.02em;
}

#registration-form .form-control,
#registration-form .form-select {
  border-radius: 14px !important;
  border: 1.5px solid #d7926a !important;
  color: #000000 !important;
  background-color: #fffaf6 !important;
  height: 34px !important;
  font-size: 0.95rem !important;
}

#registration-form .form-control::placeholder {
  color: #bf8d73 !important;
}

#registration-form .form-control:focus,
#registration-form .form-select:focus {
  border-color: #f1690b !important;
  box-shadow: 0 0 0 0.2rem rgba(241, 105, 11, 0.2) !important;
}

.registration-login-container .form-check-label {
  font-family: 'BebasNeue Book', 'BebasNeue Light', Arial, sans-serif;
  color: #ffffff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  letter-spacing: 0.01em;
  font-size: 1rem !important;
}

.registration-login-container .form-check-label a {
  color: #ffe7c0 !important;
  font-weight: 700;
}


#registration-form .row.mb-3 {
  margin-bottom: 0.25rem !important;
}

#registration-form .form-label {
  margin-bottom: 0.35rem !important;
  font-size: 1rem !important;
}

#registration-form .error-message,
#registration-form .invalid-feedback {
  color: #842029 !important;
  background-color: #f8d7da !important;
  border: 1px solid #f5c2c7 !important;
  border-radius: 0.375rem !important;
  padding: 0.5rem 1rem !important;
  margin: 0.5rem 1rem 1.5rem 1rem !important;
  font-weight: 400;
  text-shadow: none !important;
}

#registration-form .form-control.is-invalid,
#registration-form .form-select.is-invalid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}

#registration-form #submitBtn {
  min-height: 52px !important;
  padding: 10px 20px !important;
  font-size: 1rem !important;
  border-radius: 14px !important;
}

@media (max-width: 767.98px) {
  #registration-form #submitBtn {
    min-height: 45px !important;
    font-size: 0.92rem !important;
  }
}

@media (max-width: 767.98px) {
  #registration-form .row.mb-3 {
    margin-bottom: 0.25rem !important;
  }

  #registration-form .form-label {
    margin-bottom: 0.15rem !important;
    font-size: 0.86rem !important;
  }

  .registration-login-container .form-check-label {
    font-size: 0.86rem !important;
  }

  #registration-form .form-control,
  #registration-form .form-select {
    height: 30px !important;
    padding-top: 0.1rem !important;
    padding-bottom: 0.1rem !important;
    font-size: 0.84rem !important;
  }

  .registration-login-container .checkbox-align {
    margin-bottom: 0.2rem !important;
  }

  #registration-form .error-message,
  #registration-form .invalid-feedback {
    margin: 0.25rem 0.45rem 0.5rem 0.45rem !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.76rem !important;
  }
}

@media (max-width: 767.98px) {
  .registration-login-container {
    margin-top: -16px !important;
  }
}

/* Wrapper pour le formulaire help */
.help-form-wrapper {
  max-width: 900px;
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
}

#help-form {
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 600px) {
  .help-form-wrapper {
    padding: 0 6px;
  }
}

#help-form .col-12,
#help-form .col-md-6 {
  padding-left: 8px;
  padding-right: 8px;
}
@media (max-width: 600px) {
  #help-form .col-12,
  #help-form .col-md-6 {
    padding-left: 2px;
    padding-right: 2px;
  }
}

@media (max-width: 600px) {
  .home-form-container .btn {
    margin-left: 6px;
    margin-right: 6px;
    width: calc(100% - 12px);
    box-sizing: border-box;
  }
}

#reset-password-form {
  max-width: 400px;
  margin: 0 auto;
  padding-left: 32px;
  padding-right: 32px;
}

@media (max-width: 600px) {
  #reset-password-form {
    padding-left: 8px;
    padding-right: 8px;
  }
}

@media (max-width: 474px) {
  .storico-codici-table-wrapper table,
  .storico-codici-table {
    min-width: unset !important;
    font-size: 0.85rem;
  }
  .storico-codici-table-wrapper th,
  .storico-codici-table-wrapper td,
  .storico-codici-table th,
  .storico-codici-table td {
    padding: 0.25rem 0.2rem !important;
    white-space: nowrap;
    font-size: 0.85rem;
  }
  .storico-codici-table-wrapper {
    padding: 0;
    margin: 0;
  }
}

/* Forcer la bordure blanche par dÃ©faut pour tous les champs */
.form-control,
.form-select,
input,
select,
textarea {
  border-color: #dee2e6 !important;
  border-width: 1px !important;
  border-style: solid !important;
  color: #000000 !important;
}

/* Forcer la bordure blanche mÃªme avec l'autofill Google */
.form-control:-webkit-autofill,
.form-select:-webkit-autofill,
input:-webkit-autofill,
select:-webkit-autofill,
textarea:-webkit-autofill {
  border-color: #dee2e6 !important;
  border-width: 1px !important;
  border-style: solid !important;
  -webkit-box-shadow: 0 0 0 30px white inset !important;
  background-color: white !important;
}

/* Supprimer les validations visuelles - tous les champs restent blancs SAUF les mots de passe */
.form-control.is-valid,
.form-select.is-valid,
input.is-valid,
select.is-valid,
textarea.is-valid {
  border-color: #dee2e6 !important; /* MÃªme couleur que les champs normaux */
}

/* Garder les icÃ´nes de validation SEULEMENT pour les mots de passe */
#password.is-valid,
#confirm_password.is-valid {
  border-color: #198754 !important; /* Vert pour les mots de passe */
}

/* Champs invalides en rouge */
.form-control.is-invalid,
.form-select.is-invalid,
input.is-invalid,
select.is-invalid,
textarea.is-invalid {
  border-color: #dc3545 !important;
}

/* Colore checkbox selezionate */
.form-check-input:checked {
  background-color: #005030 !important;
  border-color: #005030 !important;
}

/* Scroll automatique vers les messages d'erreur - dÃ©jÃ  dÃ©fini en haut */

/* Mise en Ã©vidence des messages d'erreur */
#error-messages {
  scroll-margin-top: 20px;
}

/* Annuler les paddings du container Bootstrap en responsive */
/* Background images responsive pour body et main - AlignÃ© avec COOP-CALENDARIO-2025 */

/* Sfondo: solo due asset branding (mobile / desktop), tutte le breakpoint */
@media (max-width: 767.98px) {
  body {
    background-image: var(--brand-bg-mobile);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-mobile);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

@media (min-width: 768px) and (max-width: 1023.98px) {
  body {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

@media (min-width: 1024px) and (max-width: 1365.98px) {
  body {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

@media (min-width: 1366px) and (max-width: 1919.98px) {
  body {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

@media (min-width: 1920px) and (max-width: 2559.98px) {
  body {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

@media (min-width: 2560px) {
  body {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  .main-background-wrapper {
    background-image: var(--brand-bg-desktop);
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
}

/* Tablettes en mode portrait et mobiles - Legacy pour compatibilitÃ© */
@media (max-width: 767.98px) {
  .main-header {
    padding: 0 12px 8px;
    min-height: 0;
  }
  .main-header .logo-concorso {
    max-width: 98%;
    max-height: 200px;
  }
  
  /* Le main-container a la classe "container" de Bootstrap qui ajoute des paddings */
  .main-container.container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  
  /* Annuler aussi les paddings de main-content si prÃ©sent */
  .main-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
  }
  
  /* Forcer login-container Ã  100% de largeur sans marges */
  main .login-container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 0 !important;
  }
  
  /* S'assurer que main n'a pas de marges non plus */
  main {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
  }
}

/* TrÃ¨s petits Ã©crans */
@media (max-width: 480px) {
  .main-header .logo-concorso {
    max-width: 98%;
    max-height: 170px;
  }
}

@media (max-width: 360px) {
  .main-header .logo-concorso {
    max-width: 98%;
    max-height: 150px;
  }
}

/* Pour trÃ¨s petits Ã©crans aussi */
@media (max-width: 576px) {
  .main-container.container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  main .login-container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 600px) {
  main .login-container .btn.btn-lg {
    font-size: 0.9rem !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  /* Bouton REGOLAMENTO responsive - limite la largeur Ã  partir de 600px */
  main .login-container .btn.btn-lg[href*="regolamento"],
  main .login-container a.btn.btn-lg[style*="background-color:#EA5C11"] {
    max-width: calc(100% - 24px) !important;
    width: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    font-size: 0.95rem !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    display: inline-block !important;
  }
  
  /* Conteneur du bouton REGOLAMENTO - ajustement des marges */
  main .login-container .text-center .mt-3 {
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }
}

/* Ajustements supplÃ©mentaires pour trÃ¨s petits Ã©crans */
@media (max-width: 480px) {
  main .login-container .btn.btn-lg[href*="regolamento"],
  main .login-container a.btn.btn-lg[style*="background-color:#EA5C11"] {
    max-width: calc(100% - 16px) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    font-size: 0.85rem !important;
  }
}

@media (max-width: 360px) {
  main .login-container .btn.btn-lg[href*="regolamento"],
  main .login-container a.btn.btn-lg[style*="background-color:#EA5C11"] {
    max-width: calc(100% - 12px) !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    font-size: 0.8rem !important;
  }
}

@media (max-width: 768px) {
  main .login-container .title-txt {
    font-size: 2rem !important;
  }
}


@media (max-width: 600px) {
  main .login-container .title-txt {
    font-size: 1.75rem !important;
  }
}


@media (max-width: 500px) {
  main .login-container .title-txt {
    font-size: 1.5rem !important;
    margin-bottom: 20px !important;
  }
}

@media (max-width: 320px) {
  main .login-container .title-txt {
    font-size: 1.1rem !important;
    margin-bottom: 10px !important;
  }
}


/* ========================================
   MESSAGE DE DÃ‰FAITE RESPONSIVE
   Augmentation proportionnelle des tailles
   ======================================== */

@media (max-width: 768px) {
  /* Titre "NON HAI VINTO" */
  main .login-container h3[style*="font-size: 30px"] {
    font-size: 28px !important;
    margin-bottom: 12px !important;
  }
  
  /* Paragraphe du message de dÃ©faite */
  main .login-container div[style*="background: linear-gradient(135deg, #dc3545"] p[style*="font-size: 16px"] {
    font-size: 16px !important;
  }
}

@media (max-width: 600px) {
  main .login-container h3[style*="font-size: 30px"] {
    font-size: 26px !important;
    margin-bottom: 10px !important;
  }
  
  main .login-container div[style*="background: linear-gradient(135deg, #dc3545"] p[style*="font-size: 16px"] {
    font-size: 15px !important;
  }
}

@media (max-width: 500px) {
  main .login-container h3[style*="font-size: 30px"] {
    font-size: 24px !important;
    margin-bottom: 12px !important;
  }
  
  main .login-container div[style*="background: linear-gradient(135deg, #dc3545"] p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
  }
}

@media (max-width: 400px) {
  main .login-container h3[style*="font-size: 30px"] {
    font-size: 22px !important;
    margin-bottom: 10px !important;
  }
  
  main .login-container div[style*="background: linear-gradient(135deg, #dc3545"] p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
  }
}

@media (max-width: 320px) {
  main .login-container h3[style*="font-size: 30px"] {
    font-size: 20px !important;
    margin-bottom: 8px !important;
  }
  
  main .login-container div[style*="background: linear-gradient(135deg, #dc3545"] p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* ========================================
   MESSAGE DE VICTOIRE RESPONSIVE
   RÃ©duction progressive de toutes les tailles
   ======================================== */

/* RÃ©duction progressive Ã  partir de 768px */
@media (max-width: 768px) {
  /* Titre COMPLIMENTI! */
  main .login-container .complimenti-title,
  main .login-container h2[style*="font-size: 28px"] {
    font-size: 26px !important;
    margin-bottom: 15px !important;
  }
  
  /* Titre HAI VINTO! */
  main .login-container h3[style*="font-size: 28px"] {
    font-size: 26px !important;
    margin-bottom: 12px !important;
  }
  
  /* Titre Prepagata Todis */
  main .login-container h4[style*="font-size: 24px"] {
    font-size: 22px !important;
    margin-bottom: 8px !important;
  }
  
  /* Montant â‚¬ */
  main .login-container div[style*="font-size: 48px"] {
    font-size: 42px !important;
  }
  
  /* Paragraphes */
  main .login-container p[style*="font-size: 16px"] {
    font-size: 16px !important;
    margin: 12px 0 !important;
  }
  
  main .login-container p[style*="font-size: 14px"] {
    font-size: 14px !important;
    margin: 8px 0 !important;
  }
  
  /* Padding des divs */
  main .login-container div[style*="padding: 30px"] {
    padding: 20px !important;
  }
  
  main .login-container div[style*="padding: 20px"] {
    padding: 15px !important;
  }
  
  /* Titres h5 et h6 */
  main .login-container h5 {
    font-size: 16px !important;
    margin-bottom: 12px !important;
  }
  
  main .login-container h6 {
    font-size: 14px !important;
  }
}

/* Ã€ 600px */
@media (max-width: 600px) {
  /* Titre COMPLIMENTI! */
  main .login-container .complimenti-title,
  main .login-container h2[style*="font-size: 28px"] {
    font-size: 24px !important;
    margin-bottom: 12px !important;
  }
  
  /* Titre HAI VINTO! */
  main .login-container h3[style*="font-size: 28px"] {
    font-size: 24px !important;
    margin-bottom: 10px !important;
  }
  
  /* Titre Prepagata Todis */
  main .login-container h4[style*="font-size: 24px"] {
    font-size: 20px !important;
    margin-bottom: 6px !important;
  }
  
  /* Montant â‚¬ */
  main .login-container div[style*="font-size: 48px"] {
    font-size: 38px !important;
  }
  
  /* Paragraphes - Minimum 0.875rem (14px) comme le footer */
  main .login-container p[style*="font-size: 16px"] {
    font-size: 15px !important;
    margin: 10px 0 !important;
  }
  
  main .login-container p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 6px 0 !important;
  }
  
  /* Padding des divs */
  main .login-container div[style*="padding: 30px"] {
    padding: 15px !important;
  }
  
  main .login-container div[style*="padding: 20px"] {
    padding: 12px !important;
  }
  
  /* Titres h5 et h6 - Minimum footer size pour h6 */
  main .login-container h5 {
    font-size: 14px !important;
    margin-bottom: 10px !important;
  }
  
  main .login-container h6 {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* Ã€ 500px */
@media (max-width: 500px) {
  /* Titre COMPLIMENTI! */
  main .login-container .complimenti-title,
  main .login-container h2[style*="font-size: 28px"] {
    font-size: 22px !important;
    margin-bottom: 10px !important;
  }
  
  /* Titre HAI VINTO! */
  main .login-container h3[style*="font-size: 28px"] {
    font-size: 22px !important;
    margin-bottom: 8px !important;
  }
  
  /* Titre Prepagata Todis */
  main .login-container h4[style*="font-size: 24px"] {
    font-size: 18px !important;
    margin-bottom: 5px !important;
  }
  
  /* Montant â‚¬ */
  main .login-container div[style*="font-size: 48px"] {
    font-size: 34px !important;
  }
  
  /* Paragraphes - Minimum 0.875rem (14px) comme le footer */
  main .login-container p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 8px 0 !important;
  }
  
  main .login-container p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 5px 0 !important;
  }
  
  /* Padding des divs */
  main .login-container div[style*="padding: 30px"] {
    padding: 12px !important;
  }
  
  main .login-container div[style*="padding: 20px"] {
    padding: 10px !important;
  }
  
  /* Titres h5 et h6 - Minimum footer size */
  main .login-container h5 {
    font-size: 14px !important; /* Minimum footer size */
    margin-bottom: 8px !important;
  }
  
  main .login-container h6 {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* Ã€ 400px */
@media (max-width: 400px) {
  /* Titre COMPLIMENTI! */
  main .login-container .complimenti-title,
  main .login-container h2[style*="font-size: 28px"] {
    font-size: 20px !important;
    margin-bottom: 8px !important;
  }
  
  /* Titre HAI VINTO! */
  main .login-container h3[style*="font-size: 28px"] {
    font-size: 20px !important;
    margin-bottom: 6px !important;
  }
  
  /* Titre Prepagata Todis */
  main .login-container h4[style*="font-size: 24px"] {
    font-size: 16px !important;
    margin-bottom: 4px !important;
  }
  
  /* Montant â‚¬ */
  main .login-container div[style*="font-size: 48px"] {
    font-size: 30px !important;
  }
  
  /* Paragraphes - Minimum 0.875rem (14px) comme le footer */
  main .login-container p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 6px 0 !important;
  }
  
  main .login-container p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 4px 0 !important;
  }
  
  /* Padding des divs */
  main .login-container div[style*="padding: 30px"] {
    padding: 10px !important;
  }
  
  main .login-container div[style*="padding: 20px"] {
    padding: 8px !important;
  }
  
  /* Titres h5 et h6 - Minimum footer size */
  main .login-container h5 {
    font-size: 14px !important; /* Minimum footer size */
    margin-bottom: 6px !important;
  }
  
  main .login-container h6 {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* TrÃ¨s petits Ã©crans */
@media (max-width: 320px) {
  /* Titre COMPLIMENTI! */
  main .login-container .complimenti-title,
  main .login-container h2[style*="font-size: 28px"] {
    font-size: 18px !important;
    margin-bottom: 6px !important;
  }
  
  /* Titre HAI VINTO! */
  main .login-container h3[style*="font-size: 28px"] {
    font-size: 18px !important;
    margin-bottom: 5px !important;
  }
  
  /* Titre Prepagata Todis */
  main .login-container h4[style*="font-size: 24px"] {
    font-size: 15px !important;
    margin-bottom: 3px !important;
  }
  
  /* Montant â‚¬ */
  main .login-container div[style*="font-size: 48px"] {
    font-size: 26px !important;
  }
  
  /* Paragraphes - Minimum 0.875rem (14px) comme le footer */
  main .login-container p[style*="font-size: 16px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 5px 0 !important;
  }
  
  main .login-container p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
    margin: 3px 0 !important;
  }
  
  /* Padding des divs */
  main .login-container div[style*="padding: 30px"] {
    padding: 8px !important;
  }
  
  main .login-container div[style*="padding: 20px"] {
    padding: 6px !important;
  }
  
  /* Titres h5 et h6 - Minimum footer size */
  main .login-container h5 {
    font-size: 14px !important; /* Minimum footer size */
    margin-bottom: 5px !important;
  }
  
  main .login-container h6 {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* ========================================
   AJUSTEMENTS SPÃ‰CIFIQUES MESSAGE DE VICTOIRE
   ======================================== */

/* RÃ©duire la taille des paragraphes "Dettagli del premio" en responsive - Minimum footer size */
@media (max-width: 768px) {
  /* Paragraphes dans la section Dettagli del premio */
  main .login-container div[style*="background: #f8f9fa"] p {
    font-size: 15px !important;
  }
}

@media (max-width: 600px) {
  main .login-container div[style*="background: #f8f9fa"] p {
    font-size: 14px !important; /* Minimum footer size */
  }
}

@media (max-width: 500px) {
  main .login-container div[style*="background: #f8f9fa"] p {
    font-size: 14px !important; /* Minimum footer size */
  }
}

@media (max-width: 400px) {
  main .login-container div[style*="background: #f8f9fa"] p {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* Augmenter la taille des textes sous "Prima email" et "Seconda email" */
@media (max-width: 768px) {
  /* Paragraphes sous Prima email et Seconda email */
  main .login-container div[style*="background: #e7f3ff"] .col-md-6 p[style*="font-size: 14px"] {
    font-size: 16px !important;
  }
  
  /* Ajuster le texte "Importante" pour qu'il soit cohÃ©rent */
  main .login-container div[style*="background: #e7f3ff"] small {
    font-size: 15px !important;
  }
}

@media (max-width: 600px) {
  main .login-container div[style*="background: #e7f3ff"] .col-md-6 p[style*="font-size: 14px"] {
    font-size: 15px !important;
  }
  
  main .login-container div[style*="background: #e7f3ff"] small {
    font-size: 14px !important;
  }
}

@media (max-width: 500px) {
  main .login-container div[style*="background: #e7f3ff"] .col-md-6 p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
  }
  
  main .login-container div[style*="background: #e7f3ff"] small {
    font-size: 14px !important; /* Minimum footer size */
  }
}

@media (max-width: 400px) {
  main .login-container div[style*="background: #e7f3ff"] .col-md-6 p[style*="font-size: 14px"] {
    font-size: 14px !important; /* Minimum footer size */
  }
  
  main .login-container div[style*="background: #e7f3ff"] small {
    font-size: 14px !important; /* Minimum footer size */
  }
}

/* Style pour le bouton PARTECIPA avec image bottone1.png */
#submitBtn,
.btn-submit {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  transition: all 0.3s ease;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

#submitBtn:hover,
#submitBtn:focus,
#submitBtn:active,
.btn-submit:hover,
.btn-submit:focus,
.btn-submit:active {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  opacity: 1;
  transform: translateY(-2px);
}

#submitBtn:disabled,
.btn-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Responsive pour petits Ã©crans */
@media (max-width: 600px) {
  #submitBtn {
    font-size: 0.9rem;
    min-height: 50px;
    padding: 10px 20px;
  }
}

@media (max-width: 480px) {
  #submitBtn {
    font-size: 0.85rem;
    min-height: 45px;
    padding: 8px 16px;
    letter-spacing: 0.3px;
  }
}

@media (max-width: 360px) {
  #submitBtn {
    font-size: 0.75rem;
    min-height: 40px;
    padding: 8px 12px;
    letter-spacing: 0.2px;
  }
}

/* Style pour le bouton PARTECIPA DI NUOVO avec image bottone1.png */
.btn-partecipa-nuovo {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  transition: all 0.3s ease;
  font-weight: 600;
  letter-spacing: 0.5px;
  padding: 12px 24px;
}

.btn-partecipa-nuovo:hover,
.btn-partecipa-nuovo:focus,
.btn-partecipa-nuovo:active,
.btn-partecipa-nuovo:visited {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  opacity: 1;
  transform: translateY(-2px);
  text-decoration: none;
}

/* Responsive pour petits Ã©crans */
@media (max-width: 600px) {
  .btn-partecipa-nuovo {
    font-size: 0.9rem;
    min-height: 50px;
    padding: 10px 20px;
  }
}

@media (max-width: 480px) {
  .btn-partecipa-nuovo {
    font-size: 0.85rem;
    min-height: 45px;
    padding: 8px 16px;
    letter-spacing: 0.3px;
  }
}

@media (max-width: 360px) {
  .btn-partecipa-nuovo {
    font-size: 0.75rem;
    min-height: 40px;
    padding: 8px 12px;
    letter-spacing: 0.2px;
  }
}

/* Style pour le bouton REGOLAMENTO - centrage du texte */
/* Style pour le bouton REGOLAMENTO avec image bottone1.png */
.btn-regolamento,
a.btn-regolamento,
.btn.btn-regolamento {
  background-image: var(--brand-btn-green) !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  border: none !important;
  color: #ffffff !important;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 50px;
  padding: 8px 18px;
  font-weight: 600;
  letter-spacing: 0.4px;
  transition: all 0.3s ease;
}

.btn-regolamento:hover,
.btn-regolamento:focus,
.btn-regolamento:active,
.btn-regolamento:visited,
a.btn-regolamento:hover,
a.btn-regolamento:focus,
a.btn-regolamento:active,
a.btn-regolamento:visited,
.btn.btn-regolamento:hover,
.btn.btn-regolamento:focus,
.btn.btn-regolamento:active,
.btn.btn-regolamento:visited {
  background-image: var(--brand-btn-green) !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  border: none !important;
  color: #ffffff !important;
  opacity: 1;
  transform: translateY(-2px);
  text-decoration: none;
}

/* Responsive pour petits Ã©crans */
@media (max-width: 600px) {
  .btn-regolamento {
    font-size: 0.9rem;
    min-height: 50px;
    padding: 10px 20px;
  }
}

@media (max-width: 480px) {
  .btn-regolamento {
    font-size: 0.85rem;
    min-height: 45px;
    padding: 8px 16px;
    letter-spacing: 0.3px;
  }
}

@media (max-width: 360px) {
  .btn-regolamento {
    font-size: 0.75rem;
    min-height: 40px;
    padding: 8px 12px;
    letter-spacing: 0.2px;
  }
}


@media (min-width: 768px) {
  .btn-regolamento {
    min-width: 240px;
    padding: 8px 22px;
  }
}

@media (min-width: 992px) {
  .btn-regolamento {
    min-width: 260px;
    padding: 8px 24px;
  }
}

@media (min-width: 1200px) {
  .btn-regolamento {
    min-width: 280px;
    padding: 8px 26px;
  }
}

/* Style pour le bouton INVIA avec image bottone1.png */
.btn-invia {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  transition: all 0.3s ease;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 12px 48px;
  min-width: 200px;
}

.btn-invia:hover,
.btn-invia:focus,
.btn-invia:active {
  background-image: var(--brand-btn-green);
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  border: none;
  color: #ffffff !important;
  opacity: 1;
  transform: translateY(-2px);
}

/* Responsive pour petits Ã©crans */
@media (max-width: 600px) {
  .btn-invia {
    font-size: 0.9rem;
    min-height: 50px;
    padding: 10px 32px;
    min-width: 160px;
  }
}

@media (max-width: 480px) {
  .btn-invia {
    font-size: 0.85rem;
    min-height: 45px;
    padding: 8px 24px;
    letter-spacing: 0.3px;
    min-width: 140px;
  }
}

@media (max-width: 360px) {
  .btn-invia {
    font-size: 0.75rem;
    min-height: 40px;
    padding: 8px 20px;
    letter-spacing: 0.2px;
    min-width: 120px;
  }
}

/* Override globale: pulsanti in stile Bootstrap success senza immagini */
#submitBtn,
.btn-submit,
.btn-partecipa-nuovo,
.btn-regolamento,
a.btn-regolamento,
.btn.btn-regolamento,
.btn-invia,
.btn-regolamento-thankyou {
  font-family: 'BebasNeue Bold', 'BebasNeue Book', Arial, sans-serif !important;
  background-image: var(--brand-btn-green) !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 20px !important;
  color: #fff !important;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3) !important;
  min-height: clamp(56px, 6vw, 72px) !important;
  min-width: clamp(220px, 30vw, 320px) !important;
  width: auto !important;
  max-width: 100% !important;
  padding: clamp(12px, 2.2vw, 18px) clamp(26px, 4.5vw, 48px) !important;
  font-size: clamp(1rem, 2.1vw, 1.24rem) !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: nowrap !important;
}

#submitBtn.w-100,
.btn-submit.w-100,
.btn-partecipa-nuovo.w-100,
.btn-regolamento.w-100,
.btn.btn-regolamento.w-100,
.btn-invia.w-100,
.btn-regolamento-thankyou.w-100 {
  min-width: 0 !important;
  width: 100% !important;
}

#submitBtn:hover,
#submitBtn:focus,
#submitBtn:active,
.btn-submit:hover,
.btn-submit:focus,
.btn-submit:active,
.btn-partecipa-nuovo:hover,
.btn-partecipa-nuovo:focus,
.btn-partecipa-nuovo:active,
.btn-regolamento:hover,
.btn-regolamento:focus,
.btn-regolamento:active,
.btn-regolamento:visited,
a.btn-regolamento:hover,
a.btn-regolamento:focus,
a.btn-regolamento:active,
a.btn-regolamento:visited,
.btn.btn-regolamento:hover,
.btn.btn-regolamento:focus,
.btn.btn-regolamento:active,
.btn.btn-regolamento:visited,
.btn-invia:hover,
.btn-invia:focus,
.btn-invia:active,
.btn-invia:visited,
.btn-regolamento-thankyou:hover,
.btn-regolamento-thankyou:focus,
.btn-regolamento-thankyou:active,
.btn-regolamento-thankyou:visited {
  background-image: var(--brand-btn-green) !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  border: none !important;
  color: #fff !important;
  opacity: 1;
  transform: translateY(-2px);
  text-decoration: none;
}

#submitBtn:disabled,
.btn-submit:disabled,
.btn-partecipa-nuovo:disabled,
.btn-regolamento:disabled,
.btn-invia:disabled,
.btn-regolamento-thankyou:disabled {
  background-image: var(--brand-btn-green) !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  border: none !important;
  opacity: 0.65;
}

/* Override specifico per pulsante nella waiting page (desktop, non ultrawide) */
@media (min-width: 992px) and (max-width: 1599.98px) {
  .waiting-landing-actions .btn-regolamento {
    min-height: 54px !important;
    min-width: 260px !important;
    padding: 11px 26px !important;
    font-size: 1rem !important;
    letter-spacing: 0.02em !important;
  }
}

.waiting-page-container {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  padding: 0 8px;
  padding-bottom: 300px;
  box-sizing: border-box;
}

/* BebasNeue per il contenitore waiting (serve avere i file in assets/fonts) */
@font-face {
  font-family: 'BebasNeue Book';
  src: url('../fonts/BEBASNEUE BOOK.OTF') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'BebasNeue Light';
  src: url('../fonts/BEBASNEUE LIGHT.OTF') format('opentype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'BebasNeue Bold';
  src: url('../fonts/BEBASNEUE BOLD.OTF') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'BebasNeue Thin';
  src: url('../fonts/BEBASNEUE THIN.OTF') format('opentype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'HelveticaNeue321';
  src: url('../fonts/HELVETICANEUELTSTD-BLKCN.OTF') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'HelveticaNeue321';
  src: url('../fonts/HELVETICANEUELTSTD-BLKCNO.OTF') format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

.waiting-landing-box {
  max-width: 640px;
  --waiting-box-w: min(68vw, 640px);
  width: var(--waiting-box-w);
  height: calc(var(--waiting-box-w) * 1056 / 1338);
  margin: 0 auto;
  padding: clamp(44px, 6vw, 68px) clamp(40px, 5.8vw, 60px) clamp(28px, 4.6vw, 46px);
  background-image: var(--brand-box-landing);
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  position: relative;
  z-index: 1;
  margin-bottom: 0 !important;
}

.waiting-landing-box--pre {
  max-width: 600px;
  --waiting-box-w: min(86vw, 600px);
  width: var(--waiting-box-w);
  height: calc(var(--waiting-box-w) * 283 / 1324);
  margin: 0 auto;
  padding: clamp(18px, 2.6vw, 26px) clamp(28px, 6vw, 120px);
  background-image: var(--brand-box-short);
  background-size: 100% auto;
}

@media (min-width: 1600px) {
  .waiting-landing-box--pre {
    max-width: 760px;
    --waiting-box-w: min(70vw, 760px);
    padding: clamp(16px, 1.6vw, 24px) clamp(28px, 3.6vw, 120px);
  }
}

@media (max-width: 991.98px) {
  .waiting-landing-box--pre {
    max-width: 760px;
    --waiting-box-w: min(94vw, 760px);
    padding: clamp(18px, 3.8vw, 26px) clamp(22px, 8vw, 70px);
  }
}

.waiting-landing-actions {
  max-width: 640px;
  margin-top: -44px !important;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  position: relative;
  transform: none;
  z-index: 2;
}

.waiting-message {
  background: transparent;
  border: 0;
  box-shadow: none;
  color: #00321f;
  padding: 14px 12px;
  margin: 0;
}

.waiting-landing-box h1 {
  font-family: 'BebasNeue Bold', Arial, sans-serif !important;
  font-size: clamp(1.8rem, 2.7vw, 2.3rem) !important;
  line-height: 1.08 !important;
  letter-spacing: 0.01em;
}

.waiting-message p {
  font-family: 'BebasNeue Book', 'BebasNeue Light', Arial, sans-serif;
  font-size: clamp(1rem, 1.55vw, 1.24rem) !important;
  line-height: 1.24 !important;
  letter-spacing: 0.003em;
}

@media (min-width: 992px) and (max-width: 1599.98px) {
  .waiting-landing-actions {
    margin-top: -32px !important;
  }
}

.waiting-landing-box--pre .waiting-message p {
  font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important;
}

.waiting-landing-box--pre .pre-title-line {
  color: #9d4b24;
  font-weight: 700;
  line-height: 1.2;
}

.waiting-landing-box--pre .pre-text-mobile {
  display: none;
}

.waiting-landing-box--pre .pre-text-desktop {
  color: #9d4b24;
  font-weight: 600;
}

@media (min-width: 1400px) {
  .waiting-landing-box--pre .waiting-message p {
    font-size: clamp(1.05rem, 1.2vw, 1.3rem) !important;
  }
}

@media (max-width: 1200px) {
  .waiting-landing-box--pre .waiting-message p {
    font-size: clamp(1.05rem, 2.4vw, 1.35rem) !important;
  }
}

@media (max-width: 991.98px) {
  .waiting-landing-box--pre .waiting-message p {
    font-size: clamp(1rem, 2.8vw, 1.25rem) !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 767.98px) {
  .waiting-landing-box--pre .waiting-message p {
    font-size: clamp(0.98rem, 3.6vw, 1.15rem) !important;
    line-height: 1.25 !important;
  }
}

.waiting-coupon-note {
  font-size: 1.1rem !important;
}

@media (max-width: 767.98px) {
  .waiting-page-container {
    max-width: 100%;
    width: 100%;
    padding: 0 0 12px;
  }
  .waiting-landing-box {
    --waiting-box-w: min(80vw, 440px);
    width: var(--waiting-box-w);
    height: auto;
    min-height: calc(var(--waiting-box-w) * 1056 / 1338);
    padding: clamp(44px, 10vw, 58px) clamp(28px, 6.5vw, 36px) clamp(22px, 4.8vw, 30px);
    background-image: var(--brand-box-landing-mob);
    overflow: visible;
  }
  .waiting-landing-box h1 {
    font-size: 1.2rem !important;
    line-height: 1.1 !important;
    margin-bottom: 0.9rem !important;
    padding: 0 0.75rem;
  }
  .waiting-landing-box p {
    font-size: 0.84rem !important;
    line-height: 1.3 !important;
    margin-bottom: 0.55rem !important;
  }
  .waiting-landing-box .fs-6 {
    font-size: 0.84rem !important;
  }
  .waiting-coupon-note {
    font-size: 0.8rem !important;
  }
  .waiting-landing-actions {
    margin-top: -28px !important;
    transform: none;
  }

}

@media (max-width: 767.98px) {
  .waiting-landing-box--pre {
    --waiting-box-w: min(82vw, 420px);
    width: var(--waiting-box-w);
    max-width: var(--waiting-box-w);
    aspect-ratio: 818 / 947;
    height: auto;
    padding: clamp(22px, 6.5vw, 30px) clamp(24px, 10vw, 46px);
    background-image: var(--brand-box-landing-mob);
    background-size: contain;
    overflow: hidden;
  }
  .waiting-landing-box--pre .waiting-message p {
    font-size: clamp(1.15rem, 4.4vw, 1.35rem) !important;
    line-height: 1.28 !important;
  }
  .waiting-landing-box--pre .pre-title-line {
    text-transform: uppercase;
    letter-spacing: 0.02em;
  }
  .waiting-landing-box--pre .pre-text-mobile {
    display: block;
  }
  .waiting-landing-box--pre .pre-text-desktop {
    display: none;
  }
  .waiting-landing-box--pre p {
    font-size: 1.1rem !important;
    line-height: 1.25 !important;
  }
  .waiting-landing-box--pre .fs-6 {
    font-size: 1.1rem !important;
  }
}

/* Sfondo progetto (override finale); html body = maggiore specificità sulle media query legacy sopra */
html body,
html body .main-background-wrapper {
  background-image: var(--brand-bg-desktop) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

@media (max-width: 767.98px) {
  html body,
  html body .main-background-wrapper {
    background-image: var(--brand-bg-mobile) !important;
  }
}

/* =========================================================
   Shared Brand Layout (migrated from brand-layout.css)
   ========================================================= */

/* Force la page a occuper toute la hauteur de l'ecran. */
.brand-preview-page {
  min-height: 100vh;
  --brand-edge: clamp(6px, 1.2vmin, 12px);
  --brand-inset-x: max(0px, calc(var(--brand-edge) - 2cm));
  --brand-edge-y: 0px;
}

.brand-page-background {
  background-image: url('../img/brand_321/1920x1080_todis_background_desktop.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.brand-preview-stage {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--brand-edge, clamp(6px, 1.2vmin, 12px)) var(--brand-inset-x, max(0px, calc(var(--brand-edge, 12px) - 2cm)));
  box-sizing: border-box;
}

.brand-preview-page .brand-preview-stage {
  padding-top: var(--brand-edge-y, 0px);
  padding-bottom: var(--brand-edge-y, 0px);
}

.brand-landing-layout {
  width: min(
    100%,
    calc(100vw - 2 * var(--brand-inset-x, var(--brand-edge, 12px))),
    calc(98vh * 1.0926),
    1920px
  );
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.brand-landing-box {
  width: 100%;
  aspect-ratio: 1333 / 1220;
  max-height: calc(100vh - 2 * var(--brand-edge, 12px));
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.brand-preview-page .brand-landing-box {
  max-height: 100vh;
}

.brand-landing-box--desktop {
  background-image: url('../img/brand_321/box landing desktop_conlogo.png');
}

@media (min-width: 768px) {
  .brand-preview-page .brand-preview-stage {
    overflow: hidden;
  }

  .brand-preview-page {
    --brand-desktop-fg-scale: 1.14;
  }

  .brand-landing-box.brand-landing-box--desktop {
    background-image: none;
    overflow: visible;
  }

  .brand-landing-box.brand-landing-box--desktop::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 0;
    width: calc(100% * var(--brand-desktop-fg-scale));
    aspect-ratio: 1333 / 1220;
    background-image: url('../img/brand_321/box landing desktop_conlogo.png');
    background-size: 100% 100%;
    background-repeat: no-repeat;
    background-position: center top;
    pointer-events: none;
  }

  .brand-landing-box.brand-landing-box--desktop .brand-landing-box__content,
  .brand-landing-box.brand-landing-box--desktop .brand-landing-box__action {
    z-index: 1;
  }
}

.brand-logo-box {
  display: none;
  width: min(62%, 640px);
  position: absolute;
  top: clamp(-40px, -4vw, -20px);
  left: 50%;
  transform: translateX(-50%);
  align-items: center;
  justify-content: center;
  z-index: 3;
  pointer-events: none;
}

.brand-logo-box img {
  display: block;
  width: 100%;
  height: auto;
}

.brand-landing-box__content {
  width: 70%;
  height: 65%;
  position: absolute;
  top: 26%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px dashed #0b6b57;
  border-radius: 22px;
  background-color: rgba(11, 107, 87, 0.08);
}

.brand-landing-box__demo-copy {
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.brand-landing-box__action {
  width: min(300px, 92%);
  min-height: 56px;
  flex: 0 0 auto;
  position: absolute;
  left: 50%;
  bottom: 1%;
  transform: translateX(-50%);
  border: 2px dashed #8a2be2;
  border-radius: 16px;
  background: rgba(138, 43, 226, 0.06);
  padding: 10px 12px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.btn-action,
a.btn-action,
.btn.btn-action {
  --btn-action-dark: #bf066c;
  --btn-action-light: #f21c85;
  --btn-action-shadow: rgba(0, 0, 0, 0.28);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(90deg, var(--btn-action-dark) 0%, var(--btn-action-light) 100%);
  color: #ffffff;
  font-size: clamp(1rem, 1.25vw, 1.45rem);
  letter-spacing: 0.01em;
  line-height: 1;
  padding: 0.45rem 0.9rem;
  text-decoration: none;
  box-shadow: 4px 6px 0 var(--btn-action-shadow);
  transition: transform 0.12s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

.btn-action:hover,
.btn-action:focus,
a.btn-action:hover,
a.btn-action:focus,
.btn.btn-action:hover,
.btn.btn-action:focus {
  color: #ffffff;
  text-decoration: none;
  filter: brightness(1.03);
}

.btn-action:active,
a.btn-action:active,
.btn.btn-action:active {
  color: #ffffff;
  transform: translate(1px, 1px);
  box-shadow: 3px 4px 0 var(--btn-action-shadow);
}

.btn-action:focus-visible,
a.btn-action:focus-visible,
.btn.btn-action:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(191, 6, 108, 0.24), 4px 6px 0 var(--btn-action-shadow);
}

.brand-landing-box__action-hint {
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, 0.55);
}

.brand-landing-box__action-note {
  font-size: 11px;
  line-height: 1.1;
  color: rgba(0, 0, 0, 0.5);
}

.registration-brand-footnote {
  margin: 0.35rem 0 0;
  font-size: clamp(0.52rem, 1.35cqmin, 0.65rem);
  line-height: 1.2;
  text-align: center;
  color: #e85a1a;
  font-family: 'BebasNeue Book', 'BebasNeue Light', Arial, sans-serif;
  letter-spacing: 0.02em;
}

.background-test-page .brand-landing-box__content.brand-landing-box__content--waiting {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  --waiting-text-scale: 1;
  --waiting-title-margin-top: 0px;
  --waiting-copy-margin-top: 0px;
  --waiting-font-min-body: 1rem;
  --waiting-font-min-accent: 1.125rem;
  --waiting-font-min-hero: 1.25rem;
  padding: clamp(10px, min(1.6vw, 2vh), 22px);
  justify-content: flex-start;
  gap: 0;
  text-align: center;
  overflow: hidden;
  box-sizing: border-box;
  min-height: 0;
}

.background-test-page .brand-landing-box__content.brand-landing-box__content--waiting .brand-landing-box__scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  overflow-x: hidden;
  justify-content: flex-start;
}

.background-test-page .brand-waiting-title {
  margin: var(--waiting-title-margin-top) 0 0.65rem;
  color: #c40464;
  font-family: 'BebasNeue Bold', 'BebasNeue Book', Arial, sans-serif;
  font-size: calc(clamp(1.85rem, calc(1.05rem + min(3.6vw, 4.2vh)), 3.45rem) * var(--waiting-text-scale));
  line-height: 0.95;
  text-align: center;
  text-transform: uppercase;
}

.background-test-page .brand-waiting-title__accent {
  color: #e45c0c;
  font-family: 'BebasNeue Bold', 'BebasNeue Book', Arial, sans-serif;
  font-size: 1em;
  line-height: inherit;
}

.background-test-page .brand-waiting-copy {
  margin: var(--waiting-copy-margin-top) 0 0;
  color: #e45c0c;
  font-family: 'Arial Narrow', Arial, sans-serif;
  font-size: calc(clamp(0.86rem, calc(0.72rem + min(0.84vw, 0.96vh)), 1.12rem) * var(--waiting-text-scale));
  line-height: 1.14;
  font-weight: 300;
  text-align: center;
}

.background-test-page .brand-waiting-copy p {
  margin: 0 0 clamp(0.15rem, min(0.8vw, 0.85vh), 0.45rem);
}

.background-test-page .brand-waiting-copy__headline {
  margin: 0;
  color: #c40464;
  font-family: 'BebasNeue Bold', 'BebasNeue Book', Arial, sans-serif;
  font-size: calc(clamp(1.82rem, calc(1.02rem + min(3.35vw, 3.2vh)), 3.35rem) * var(--waiting-text-scale));
  line-height: 0.95;
  text-transform: uppercase;
}

.background-test-page .brand-waiting-copy__accent,
.background-test-page .brand-waiting-copy__accent-inline {
  color: #e45c0c;
  font-family: 'HelveticaNeue321', 'Arial Narrow', Arial, sans-serif;
  font-size: calc(clamp(0.88rem, calc(0.72rem + min(0.86vw, 0.98vh)), 1.2rem) * var(--waiting-text-scale));
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

@media (min-width: 768px) {
  .background-test-page .brand-waiting-copy {
    width: min(100%, 26rem);
    margin-left: auto;
    margin-right: auto;
  }
}

@media (min-width: 768px) and (max-width: 1366px), (min-width: 768px) and (max-height: 800px) {
  .background-test-page .brand-waiting-copy {
    width: min(100%, 20rem);
  }
}

.background-test-switcher {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 1200;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
  max-width: min(92vw, 620px);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
}

.background-test-switcher__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 6px 10px;
  border-radius: 9px;
  border: 1px solid #d9d9d9;
  background: #ffffff;
  color: #333;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.15s ease;
}

.background-test-switcher__btn:hover,
.background-test-switcher__btn:focus {
  border-color: #bf066c;
  color: #bf066c;
}

.background-test-switcher__btn.is-active {
  border-color: #bf066c;
  background: #bf066c;
  color: #fff;
}

@media (max-width: 767.98px) {
  .brand-preview-page .main-background-wrapper,
  .brand-preview-page main {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  .brand-preview-stage {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  .brand-page-background {
    background-image: url('../img/brand_321/1920x1080_todis_background_mobile.png');
    background-position: center top;
  }

  .brand-landing-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-content: start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    gap: 6px;
    box-sizing: border-box;
  }

  .brand-landing-box {
    position: relative;
    left: auto;
    transform: none;
    justify-self: center;
    width: min(100%, 1260px);
    min-width: 750px;
    max-width: 1260px;
    margin-inline: 0;
    aspect-ratio: 1333 / 1220;
    max-height: 92vh;
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    justify-content: flex-start;
    align-items: center;
    gap: 0;
    padding: clamp(8%, 10vw, 14%) clamp(9%, 11vw, 13%) clamp(12%, 16vw, 20%);
    box-sizing: border-box;
    --brand-mobile-content-top: 15%;
    --brand-mobile-content-height: 62%;
    --brand-mobile-content-action-gap: clamp(2px, 0.6vh, 8px);
  }

  .brand-landing-box--desktop {
    background-image: url('../img/brand_321/box_cuore.png');
    background-size: contain;
    background-position: center center;
  }

  .brand-landing-box__content {
    width: min(70%, calc(100vw - 24px));
    max-width: 100%;
    height: var(--brand-mobile-content-height, 57%);
    position: absolute;
    top: var(--brand-mobile-content-top, 17%);
    left: 50%;
    transform: translateX(-50%);
    box-sizing: border-box;
  }

  .brand-landing-box__action {
    display: flex;
    position: absolute;
    top: calc(var(--brand-mobile-content-top, 17%) + var(--brand-mobile-content-height, 57%) + var(--brand-mobile-content-action-gap, 4px));
    left: 50%;
    right: auto;
    bottom: auto;
    transform: translateX(-50%);
    width: min(300px, 88vw);
    max-width: 100%;
    min-height: 48px;
    margin-top: 0;
    flex: 0 0 auto;
    padding: 8px 10px 10px;
    gap: 6px;
    box-sizing: border-box;
  }

  .brand-logo-box {
    display: flex;
    width: min(92%, 520px);
    position: static;
    top: auto;
    left: auto;
    transform: none;
  }

  .brand-landing-box__action .btn-action,
  .brand-landing-box__action a.btn-action,
  .brand-landing-box__action .btn.btn-action {
    min-height: 42px;
    font-size: clamp(0.92rem, 3.9vw, 1.18rem);
    padding: 0.42rem 0.75rem;
  }

  .background-test-page .brand-waiting-title {
    font-size: calc(clamp(2rem, calc(1.2rem + 5vw), 3.7rem) * var(--waiting-text-scale));
  }

  .background-test-page .brand-waiting-copy {
    font-size: calc(clamp(1rem, calc(0.86rem + 2.1vw), 1.36rem) * var(--waiting-text-scale));
    line-height: 1.2;
  }

  .background-test-page .brand-waiting-copy__accent,
  .background-test-page .brand-waiting-copy__accent-inline {
    font-size: calc(clamp(1rem, calc(0.9rem + 2.4vw), 1.34rem) * var(--waiting-text-scale));
    line-height: 1.1;
  }

  @media (max-height: 517px) {
    .background-test-page .brand-landing-box {
      --brand-mobile-content-top: 14%;
      --brand-mobile-content-height: 66%;
    }
  }

  @media (max-height: 355px) {
    .background-test-page .brand-landing-box {
      --brand-mobile-content-top: clamp(8%, 10vh, 12%);
      --brand-mobile-content-height: clamp(70%, 74vh, 76%);
    }
  }
}
