/**
 * Utilities CSS - Classes utilitaires Secudeal
 * 
 * Classes réutilisables partout dans l'application
 * Complète Bootstrap avec des classes custom V1
 * 
 * @package SecudealV2
 * @since 2.0.0
 */

a {
  text-decoration: none;
}

/* Badges - font-weight léger Secudeal */
.badge {
  font-weight: 300 !important;
}

/* Modal close button - hide SVG for Font Awesome icon */
.btn-close {
  background-image: none !important;
  opacity: 1 !important;
}

/* ========== COLORS ========== */

a:hover {
  color: var(--secudeal-bleu-clair) !important;
}

/* Texte hérité */
.global-text-inherit {
  color: inherit !important;
}

/* Bleu clair */
.global-color-bleu-clair {
  color: var(--secudeal-bleu-clair) !important;
}

.global-color-bleu-clair-bg {
  background-color: var(--secudeal-bleu-clair) !important;
}

.global-color-bleu-clair-border {
  border-color: var(--secudeal-bleu-clair) !important;
}

/* Bleu moyen */
.global-color-bleu-moyen {
  color: var(--secudeal-bleu-moyen) !important;
}

.global-color-bleu-moyen-bg {
  background-color: var(--secudeal-bleu-moyen) !important;
}

.global-color-bleu-moyen-border {
  border-color: var(--secudeal-bleu-moyen) !important;
}

/* Bleu foncé */
.text-success,
.global-color-bleu-fonce {
  color: var(--secudeal-bleu-fonce) !important;
}

.global-color-bleu-fonce-bg {
  background-color: var(--secudeal-bleu-fonce) !important;
}

.global-color-bleu-fonce-border {
  border-color: var(--secudeal-bleu-fonce) !important;
}

/* Rose */
.global-color-rose {
  color: var(--secudeal-rose) !important;
}

.global-color-rose-bg {
  background-color: var(--secudeal-rose) !important;
}

.global-color-rose-border {
  border-color: var(--secudeal-rose) !important;
}

/* Override Bootstrap text-danger with Secudeal rose */
.text-danger {
  color: var(--secudeal-rose) !important;
}

/* Custom grey background for "Non soumis" status badge */
.global-color-grey-bg {
  background-color: var(--secudeal-grey) !important;
}

/* Override Bootstrap bg-* classes to use CSS variables */
.bg-info {
  background-color: var(--bs-info) !important;
}

.bg-success {
  background-color: var(--bs-success) !important;
}

.bg-danger {
  background-color: var(--bs-danger) !important;
}

.bg-warning {
  background-color: var(--bs-warning) !important;
}

/* Input error state - red border */
.form-control.is-invalid,
.form-control:invalid,
.form-control.border-danger {
  border-color: var(--secudeal-rose) !important;
}

/* Input success state - green/blue border */
.form-control.border-success {
  border-color: var(--secudeal-bleu-clair) !important;
}

/* Form text base styling */
.form-text {
  color: #000000;
}

/* Feedback text styling (SIRET validation, etc.) */
.form-text.text-danger,
.form-text.text-success,
.form-text.text-muted {
  font-size: 14px !important;
  text-align: right;
  display: block;
}

/* Jaune */
.global-color-jaune {
  color: var(--secudeal-jaune) !important;
}

.global-color-jaune-bg {
  background-color: var(--secudeal-jaune) !important;
}

.global-color-jaune-border {
  border-color: var(--secudeal-jaune) !important;
}

/* Gris clair */
.global-color-grey {
  color: #8a93a8 !important;
}

.global-color-grey-light-bg {
  background-color: #f8f9fa !important;
}

/* Blanc - Utiliser .border-white (Bootstrap 5.3 natif) */

/* ========== BORDER ========== */

.border-bottom-black-3 {
  border-bottom: 3px solid #000000;
}

/* Border bottom 3px - Migré vers Bootstrap 5.3
 * Utiliser: .border-bottom .border-3
 * Exemple: <a class="border-bottom border-3 global-color-bleu-clair-border">
 */

.rounded-25 {
  border-radius: 30px !important;
}

/* ========== Button ========== */

.btn-outline-white {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: transparent;
  --bs-btn-border-color: #ffffff;
  --bs-btn-hover-color: var(--secudeal-bleu-fonce);
  --bs-btn-hover-bg: #ffffff;
  --bs-btn-hover-border-color: #ffffff;
  --bs-btn-focus-shadow-rgb: var(--secudeal-bleu-fonce);
  --bs-btn-active-color: var(--secudeal-bleu-fonce);
  --bs-btn-active-bg: transparent;
  --bs-btn-active-border-color: #ffffff;
  --bs-btn-active-shadow: inset 0 3px 5px var(--secudeal-bleu-fonce);
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #ffffff;
  --bs-gradient: none;
  --bs-btn-border-width: 3px;
}

/* ========== TYPOGRAPHY ========== */

.text-right {
  text-align: right !important;
}

/* Font weights: Utiliser les classes Bootstrap 5.3 natives
 * .fw-light (300)
 * .fw-normal (400)
 * .fw-medium (500)
 * .fw-semibold (600)
 * .fw-bold (700)
 */

.fw-medium {
  font-weight: 500 !important;
}

.size-text-inherit {
  font-size: inherit !important;
}

.size-text-12 {
  font-size: 12px !important;
}

.size-text-13 {
  font-size: 13px !important;
}

.size-text-14 {
  font-size: 14px !important;
}

.size-text-15 {
  font-size: 15px !important;
}

.size-text-16 {
  font-size: 16px !important;
}

.size-text-17 {
  font-size: 17px !important;
}

.size-text-18 {
  font-size: 18px !important;
}

.size-text-20 {
  font-size: 20px !important;
}

.size-text-22 {
  font-size: 22px !important;
}

.size-text-24 {
  font-size: 24px !important;
}

.size-text-26 {
  font-size: 26px !important;
}

.size-text-28 {
  font-size: 28px !important;
}

.size-text-30 {
  font-size: 30px !important;
}

.size-text-30 {
  font-size: 30px !important;
}

.size-text-35 {
  font-size: 35px !important;
}

.size-text-40 {
  font-size: 40px !important;
}

.size-text-45 {
  font-size: 45px !important;
}

.size-text-50 {
  font-size: 50px !important;
}

.size-text-55 {
  font-size: 55px !important;
}

.size-text-58 {
  font-size: 58px !important;
}

.size-text-85 {
  font-size: 85px !important;
}

/* ========== SPACING ========== */

/* Override Bootstrap p-5 avec valeur custom Secudeal */
.p-5 {
  padding: var(--bs-spacing-5) !important;
}

@media (min-width: 576px) {
  .p-sm-5 {
    padding: var(--bs-spacing-5) !important;
  }
}

/* ========== FORM COMPONENTS ========== */

/* Form Switch - Style Secudeal V1 (beaucoup plus gros) */
.form-check.form-switch .form-check-input {
  width: 70px !important;
  height: 40px !important;
  min-height: 40px;
  border-radius: 50px !important;
  cursor: pointer !important;
  background-color: #d1d1d1 !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255,255,255,1%29'/%3e%3c/svg%3e") !important;
  background-size: 32px 32px !important;
  background-position: left 4px center !important;
  transition: background-position 0.15s ease-in-out, background-color 0.15s ease-in-out !important;
}

.form-check.form-switch .form-check-input:checked {
  background-color: var(--secudeal-bleu-clair) !important;
  background-position: right 4px center !important;
}

.form-check.form-switch {
  min-height: 40px;
  padding-left: 45px;
  display: flex;
  align-items: center;
}

.form-check.form-switch .form-check-label {
  line-height: 1.5em;
  cursor: pointer;
  padding-top: 0;
  margin-left: 15px;
}

/* Input-group avec floating label - Hauteur 80px */
.input-group.input-group-floating {
  position: relative;
}

.input-group.input-group-floating>.form-control {
  height: 80px !important;
  font-size: 18px !important;
  padding: 1.625rem 1rem 0.625rem !important;
  border: 1px solid #e0e0e0;
  border-radius: 8px 0 0 8px !important;
  background-color: #ffffff !important;
}

.input-group.input-group-floating>.form-control::placeholder {
  color: transparent;
}

/* Afficher le placeholder quand le label est réduit */
.input-group.input-group-floating>.form-control:focus::placeholder,
.input-group.input-group-floating>.form-control:not(:placeholder-shown)::placeholder {
  color: #999;
}

.input-group.input-group-floating>label {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  padding: 1.625rem 1rem 0.625rem;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
  color: var(--bs-body-color);
  font-size: 18px;
  z-index: 4;
}

/* Label réduit au focus OU si le champ contient une valeur */
.input-group.input-group-floating>.form-control:focus~label,
.input-group.input-group-floating>.form-control:not(:placeholder-shown)~label {
  opacity: 1;
  transform: scale(0.75) translateY(-0.75rem) translateX(0.15rem);
  font-size: 14px;
}

.input-group.input-group-floating>.btn {
  height: 80px !important;
  padding: 1rem !important;
  font-size: 18px !important;
  border-radius: 0 8px 8px 0 !important;
  border: none !important;
}

.btn-close:focus {
  box-shadow: none !important;
}

/* ========== FORM FLOATING (BOOTSTRAP 5) ========== */

/* Conteneur form-floating global */
.form-floating {
  position: relative;
  width: 100%;
}

/* Input et Select form-floating - 80px height standard Secudeal */
.form-floating>.form-control,
.form-floating>.form-select {
  height: 80px !important;
  min-height: 80px !important;
  padding: 1.625rem 1rem 0.625rem !important;
  font-size: 18px !important;
  line-height: 1.5;
  background-color: #ffffff !important;
  border: 1px solid #e0e0e0 !important;
  border-radius: 0.5rem !important;
  width: 100% !important;
}

/* Select form-floating - Ajustements spécifiques */
.form-floating>.form-select {
  padding-top: 1.625rem !important;
  padding-bottom: 0.625rem !important;
  padding-right: 2.5rem !important;
  /* Espace pour la flèche dropdown */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 16px 12px;
}

/* Placeholder transparent pour animation label */
.form-floating .form-control::placeholder {
  color: transparent;
}

/* Afficher le placeholder quand le label est réduit */
.form-floating .form-control:focus::placeholder,
.form-floating .form-control:not(:placeholder-shown)::placeholder {
  color: #999;
}

/* Label flottant */
.form-floating>label {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  padding: 1.625rem 1rem 0.625rem;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
  color: var(--bs-body-color);
  font-size: 18px;
}

/* Label réduit au focus OU si le champ contient une valeur */
.form-floating>.form-control:focus~label,
.form-floating>.form-control:not(:placeholder-shown)~label,
.form-floating>.form-select:focus~label,
.form-floating>.form-select:not([value=""]):valid~label,
.form-floating>.form-select:not(:invalid)~label {
  opacity: 1;
  transform: scale(0.75) translateY(-0.75rem) translateX(0.15rem);
  font-size: 14px;
}

/* Label toujours réduit pour select (car a toujours une valeur ou option par défaut) */
.form-floating>.form-select~label {
  opacity: 1;
  transform: scale(0.75) translateY(-0.75rem) translateX(0.15rem);
  font-size: 14px;
}

.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),
.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,
.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,
.input-group:not(.has-validation)> :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* ========== CUSTOM FILE INPUT (PARCOURIR BUTTON) ========== */

/* Container du file input personnalisé */
.custom-file-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  padding: 0 0 0 1.25rem;
  font-size: 16px;
  border: 1px solid #e0e0e0;
  border-radius: 0.5rem;
  background-color: #ffffff;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

/* Label du fichier (à gauche) */
.custom-file-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  margin-right: 1rem;
}

/* Label avec fichier sélectionné */
.custom-file-label.has-file {
  color: var(--secudeal-bleu-fonce);
  font-weight: 500;
}

/* Bouton Parcourir (à droite) */
.custom-file-button {
  height: 80px;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  font-size: 16px;
  font-weight: 500;
  color: #ffffff;
  background-color: var(--secudeal-bleu-clair);
  border: none;
  border-radius: 0 0.5rem 0.5rem 0;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.custom-file-button:hover {
  background-color: var(--secudeal-bleu-moyen);
}

/* Base class for input-group buttons (DRY) */
.btn-input-group {
  padding: 0 1rem;
  display: flex;
  align-items: center;
  font-size: 16px;
  font-weight: 500 !important;
  color: #ffffff;
  border: none;
  cursor: pointer;
  transition: background-color 0.2s ease;
  text-decoration: none;
  white-space: nowrap;
}

/* Bouton Voir le document (à gauche, couleurs inversées du Parcourir) */
.btn-document-view {
  height: 80px;
  background-color: var(--secudeal-bleu-moyen);
  border-radius: 0.5rem 0 0 0.5rem;
}

.btn-document-view:hover {
  background-color: var(--secudeal-bleu-clair);
  color: #ffffff !important;
}

/* Bouton Vérifier SIRET */
.input-group .btn-input-group {
  background-color: var(--secudeal-bleu-clair);
}

.input-group .btn-input-group:hover {
  background-color: var(--secudeal-bleu-moyen);
  color: #ffffff;
}

/* Keep left rounded border when custom-file-input is alone in input-group */
/* Works when: 1) first-child, 2) preceded by hidden element, 3) explicit class */
.input-group>.custom-file-input:first-child,
.input-group>.d-none+.custom-file-input,
.input-group-standalone>.custom-file-input,
.custom-file-input:only-child {
  border-radius: 0.5rem !important;
}

.input-group>.custom-file-input:first-child>.custom-file-button,
.input-group>.d-none+.custom-file-input>.custom-file-button,
.input-group-standalone>.custom-file-input>.custom-file-button,
.custom-file-input:only-child>.custom-file-button {
  border-radius: 0 0.5rem 0.5rem 0 !important;
}

/* ========== SECTION TRANSITIONS (UX) ========== */

/* Smooth section show/hide transitions */
.document-upload,
.ubo-item,
#ubo-list,
#shareholders-doc,
#ubo-section,
#articles-doc,
#personal-info-section,
#name-business-container {
  transition: opacity 0.3s ease, max-height 0.3s ease, margin 0.3s ease;
}

/* Hidden state for sections that use d-none */
.document-upload.d-none,
.ubo-item.d-none,
#ubo-list.d-none,
#shareholders-doc.d-none,
#ubo-section.d-none,
#articles-doc.d-none,
#personal-info-section.d-none,
#name-business-container.d-none {
  opacity: 0;
  max-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* ========== MOBILE RESPONSIVE (Toggle Switch) ========== */

@media (max-width: 768px) {

  /* Toggle switch section - stack on mobile */
  .form-check.form-switch {
    margin-top: 0.5rem;
  }

  /* Toggle question - full width on mobile */
  #ubo-section .d-flex.align-items-center.justify-content-between {
    flex-direction: column;
    align-items: flex-start !important;
  }

  /* UBO items - full width inputs on mobile */
  .ubo-item .col-md-4,
  .ubo-item .col-md-6 {
    margin-bottom: 0.5rem;
  }
}

/* ========== ACCESSIBILITY ========== */

/* Focus des inputs déjà géré dans form-floating */

/* Skip link pour navigation clavier (optionnel pour future) */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--secudeal-bleu-moyen);
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 100;
}

/* ========== FORM VALIDATION ========== */

/* États de validation Bootstrap 5 avec icônes */

.form-floating>.form-control.is-valid {
  border-color: var(--bs-success) !important;
  padding-right: 3rem !important;
  /* Espace pour l'icône */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1.25rem 1.25rem;
}

.form-check.form-switch .form-check-input:checked {
  background-color: var(--secudeal-bleu-clair) !important;
  background-position: right 4px center !important;
}

.form-check.form-switch {
  min-height: 40px;
  padding-left: 45px;
  display: flex;
  align-items: center;
}

.form-check.form-switch .form-check-label {
  line-height: 1.5em;
  cursor: pointer;
  padding-top: 0;
  margin-left: 15px;
}

/* Input-group avec floating label - Hauteur 80px */
.input-group.input-group-floating {
  position: relative;
}

.input-group.input-group-floating>.form-control {
  height: 80px !important;
  font-size: 18px !important;
  padding: 1.625rem 1rem 0.625rem !important;
  border: 1px solid #e0e0e0;
  border-radius: 8px 0 0 8px !important;
  background-color: #ffffff !important;
}

.input-group.input-group-floating>.form-control::placeholder {
  color: transparent;
}

/* Afficher le placeholder quand le label est réduit */
.input-group.input-group-floating>.form-control:focus::placeholder,
.input-group.input-group-floating>.form-control:not(:placeholder-shown)::placeholder {
  color: #999;
}

.input-group.input-group-floating>label {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  padding: 1.625rem 1rem 0.625rem;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
  color: var(--bs-body-color);
  font-size: 18px;
  z-index: 4;
}

/* Label réduit au focus OU si le champ contient une valeur */
.input-group.input-group-floating>.form-control:focus~label,
.input-group.input-group-floating>.form-control:not(:placeholder-shown)~label {
  opacity: 1;
  transform: scale(0.75) translateY(-0.75rem) translateX(0.15rem);
  font-size: 14px;
}

.input-group.input-group-floating>.btn {
  height: 80px !important;
  padding: 1rem !important;
  font-size: 18px !important;
  border-radius: 0 8px 8px 0 !important;
  border: none !important;
}

/* ========== ACCESSIBILITY ========== */

/* Focus des inputs déjà géré dans form-floating */

/* Skip link pour navigation clavier (optionnel pour future) */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--secudeal-bleu-moyen);
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 100;
}

/* ========== FORM VALIDATION ========== */

/* États de validation Bootstrap 5 avec icônes */

.form-floating>.form-control.is-valid {
  border-color: var(--bs-success) !important;
  padding-right: 3rem !important;
  /* Espace pour l'icône */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1.25rem 1.25rem;
}

.form-floating>.form-control.is-invalid {
  border-color: var(--bs-danger) !important;
  background-position: right 1rem center;
}

/* Input number : décaler l'icône de validation à gauche pour éviter les flèches natives */
.form-floating>input[type="number"].is-valid,
.form-floating>input[type="number"].is-invalid {
  padding-right: 2.5rem !important;
  /* Plus d'espace pour flèches + icône */
  background-position: right 0.75rem center !important;
  /* Décalage à gauche */
}

/* Messages de feedback */
.invalid-feedback,
.valid-feedback {
  display: none;
  font-size: 13px;
  margin-top: 0.25rem;
  text-align: right;
  /* Alignement à droite comme demandé */
}

.form-control.is-invalid~.invalid-feedback {
  display: block;
  color: var(--bs-danger);
}

.form-control.is-valid~.valid-feedback {
  display: block;
  color: var(--bs-success);
}

.form-control:focus,
.form-check-input:focus,
.form-control.is-valid:focus,
.was-validated .form-control:valid:focus,
.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus {
  box-shadow: none;
}

.input-group>.form-control:focus,
.input-group>.form-floating:focus-within,
.input-group>.form-select:focus {
  z-index: 4;
}

.form-control.is-invalid,
.was-validated .form-control:invalid,
.input-group.input-group-floating>.form-control.is-invalid,
.was-validated .input-group.input-group-floating>.form-control:invalid {
  border: 1px solid var(--bs-danger);
}

.bootstrap-select .dropdown-toggle:focus,
.bootstrap-select>select.mobile-device:focus+.dropdown-toggle {
  outline: none;
  outline: 0;
  outline-offset: 0;
}

/* Disabled buttons styling */
.btn.disabled,
.btn:disabled,
fieldset:disabled .btn {
  color: var(--bs-btn-disabled-color) !important;
  pointer-events: none;
  background-color: var(--bs-btn-disabled-bg) !important;
  border-color: var(--bs-btn-disabled-border-color) !important;
  opacity: var(--bs-btn-disabled-opacity) !important;
}

.btn-check:checked+.btn,
.btn.active,
.btn.show,
.btn:first-child:active,
:not(.btn-check)+.btn:active {
  border-color: transparent !important;
}

/* ========== BOOTSTRAP-SELECT COUNTRY PICKER FIXES ========== */

/* Hide native form-select arrow when bootstrap-select is active (prevents double arrow) */
.bootstrap-select>.dropdown-toggle.form-select,
.bootstrap-select>.dropdown-toggle.form-control,
select.countrypicker.form-select {
  background-image: none !important;
  border: 0 !important;
  padding: 0;
}

/* White background for disabled country pickers */
.bootstrap-select.disabled>.dropdown-toggle,
.bootstrap-select>.dropdown-toggle:disabled,
select.countrypicker:disabled {
  background-color: #ffffff !important;
  opacity: 0.7;
}

/* Ensure bootstrap-select dropdown button matches form styling */
.bootstrap-select>.dropdown-toggle {
  background-color: #ffffff !important;
  border: 1px solid #e0e0e0 !important;
}

/* ========== CONTRIBUTION CARDS ========== */

.contribution-card {
  transition: all 0.2s ease;
  cursor: pointer;
}

.contribution-card:hover {
  border-color: var(--secudeal-bleu-clair) !important;
  box-shadow: 0 0 0 2px rgba(0, 112, 224, 0.1);
}

.contribution-card.selected {
  border-color: var(--secudeal-bleu-clair) !important;
}

.contribution-card .form-check-input {
  width: 1.5rem;
  height: 1.5rem;
}

.contribution-card .form-check-input:checked {
  background-color: var(--secudeal-bleu-clair);
  border-color: var(--secudeal-bleu-clair);
}

.iti {
  width: 100%;
  display: block;
}

.iti input.form-control {
  height: 80px !important;
  font-size: 18px !important;
  padding-left: 60px !important;
  border: 1px solid #e0e0e0 !important;
  border-top-right-radius: 0px !important;
  border-bottom-right-radius: 0px !important;
  background-color: #ffffff !important;
}

.form-floating:has(#phone)>label {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  padding: 27px 16px 31px 60px;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
  color: var(--bs-body-color);
  font-size: 18px;
  z-index: 3;
}

.input-group>.form-floating>.form-control,
.input-group>.form-floating>.iti {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.form-floating:has(.iti) {
  position: relative;
}

.iti__selected-country-primary {
  padding: 0 18px !important;
}

.form-floating:has(#phone:focus)>label,
.form-floating:has(#phone.has-value)>label {
  opacity: 1;
  transform: scale(0.75) translateY(-0.75rem) translateX(0.15rem);
  font-size: 14px;
  padding-left: 75px !important;
}

.form-floating .iti .form-control-plaintext:focus,
.form-floating .iti .form-control-plaintext:not(:placeholder-shown),
.form-floating .iti .form-control:focus,
.form-floating .iti .form-control:not(:placeholder-shown),
.form-floating .iti .form-control:not(:placeholder-shown) {
  padding-top: 1.625rem;
  padding-bottom: .625rem;
}

.iti__selected-country-primary {
  padding: 0 10px !important;
}