  /* ==========================================================================
       PALETTE : couleur de base du logo #12a19a + jaune en 2e couleur
       ========================================================================== */
    #rdv-page-container {
      --rdv-main: #12a19a;
      --rdv-main-dark: #0c7c76;
      --rdv-main-deep: #095a56;
      --rdv-main-light: #e3f5f4;
      --rdv-yellow: #f9c80e;
      --rdv-yellow-dark: #e0b000;
      --rdv-text: #1f2d2c;
      --rdv-muted: #5f6f6e;
      --rdv-border: #d5e2e1;

      background: linear-gradient(180deg, #f3fbfa 0%, #eaf3f2 100%) !important;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
      color: var(--rdv-text) !important;
      position: relative !important;
      z-index: 1 !important;
      margin: 0 !important;
      margin-top: 50px !important;
      padding: 50px 20px 60px !important;
      display: block !important;
      float: none !important;
      width: 100% !important;
      box-sizing: border-box !important;
      clear: both !important;
    }

    #rdv-page-container *, #rdv-page-container *::before, #rdv-page-container *::after {
      box-sizing: border-box !important;
    }

    #rdv-page-container a {
      text-decoration: none !important;
    }

    #rdv-page-container .rdv-layout {
      max-width: 1180px !important;
      margin: 0 auto !important;
      display: flex !important;
      gap: 36px !important;
      align-items: stretch !important;
    }

    /* ==========================================================================
       COLONNE DE GAUCHE : panneau turquoise
       ========================================================================== */
    #rdv-page-container .rdv-left-col {
      flex: 0 0 42% !important;
      max-width: 42% !important;
      position: relative !important;
      overflow: hidden !important;
      padding: 44px 38px !important;
      border-radius: 22px !important;
      color: #fff !important;
      background: linear-gradient(155deg, var(--rdv-main) 0%, var(--rdv-main-dark) 60%, var(--rdv-main-deep) 100%) !important;
      box-shadow: 0 18px 40px rgba(18, 161, 154, 0.25) !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: center !important;
    }

    /* Décors jaunes discrets */
    #rdv-page-container .rdv-left-col::before {
      content: '' !important;
      position: absolute !important;
      top: -70px !important;
      right: -70px !important;
      width: 220px !important;
      height: 220px !important;
      border-radius: 50% !important;
      background: rgba(249, 200, 14, 0.22) !important;
    }
    #rdv-page-container .rdv-left-col::after {
      content: '' !important;
      position: absolute !important;
      bottom: -90px !important;
      left: -60px !important;
      width: 240px !important;
      height: 240px !important;
      border-radius: 50% !important;
      background: rgba(255, 255, 255, 0.07) !important;
    }
    #rdv-page-container .rdv-left-col > * {
      position: relative !important;
      z-index: 2 !important;
    }

    #rdv-page-container .rdv-sub-badge {
      display: inline-block !important;
      align-self: flex-start !important;
      font-size: 12px !important;
      font-weight: 800 !important;
      letter-spacing: 1.6px !important;
      color: #1f2d2c !important;
      text-transform: uppercase !important;
      background: var(--rdv-yellow) !important;
      padding: 7px 14px !important;
      border-radius: 30px !important;
      margin-bottom: 22px !important;
    }

    #rdv-page-container .rdv-main-title {
      font-size: 38px !important;
      font-weight: 800 !important;
      line-height: 1.15 !important;
      color: #fff !important;
      margin: 0 0 18px 0 !important;
      border-bottom: none !important;
    }
    #rdv-page-container .rdv-main-title .rdv-hl {
      color: var(--rdv-yellow) !important;
    }

    #rdv-page-container .rdv-intro {
      font-size: 15px !important;
      color: rgba(255, 255, 255, 0.9) !important;
      line-height: 1.65 !important;
      margin: 0 0 28px 0 !important;
    }

    #rdv-page-container .rdv-features {
      list-style: none !important;
      padding: 0 !important;
      margin: 0 0 32px 0 !important;
    }

    #rdv-page-container .rdv-features li {
      display: flex !important;
      align-items: center !important;
      gap: 12px !important;
      font-size: 15px !important;
      font-weight: 600 !important;
      color: #fff !important;
      margin-bottom: 14px !important;
    }

    #rdv-page-container .rdv-check {
      flex: 0 0 24px !important;
      width: 24px !important;
      height: 24px !important;
      background-color: var(--rdv-yellow) !important;
      color: #1f2d2c !important;
      border-radius: 50% !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      font-size: 13px !important;
      font-weight: 800 !important;
    }

    #rdv-page-container .rdv-loc-box {
      background: #ffffff !important;
      border-radius: 14px !important;
      border-left: 5px solid var(--rdv-yellow) !important;
      padding: 16px 20px !important;
      display: flex !important;
      align-items: center !important;
      gap: 15px !important;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12) !important;
      max-width: 340px !important;
    }

    #rdv-page-container .rdv-loc-icon {
      flex: 0 0 44px !important;
      width: 44px !important;
      height: 44px !important;
      background-color: var(--rdv-main-light) !important;
      border-radius: 12px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      color: var(--rdv-main) !important;
    }

    #rdv-page-container .rdv-loc-details h4 {
      margin: 0 !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      color: var(--rdv-text) !important;
    }

    #rdv-page-container .rdv-loc-details p {
      margin: 3px 0 0 0 !important;
      font-size: 13px !important;
      color: var(--rdv-muted) !important;
    }

    /* ==========================================================================
       COLONNE DE DROITE : formulaire
       ========================================================================== */
    #rdv-page-container .rdv-right-col {
      flex: 1 !important;
      min-width: 0 !important;
      background: #ffffff !important;
      border-radius: 22px !important;
      padding: 0 !important;
      overflow: hidden !important;
      box-shadow: 0 18px 40px rgba(18, 60, 58, 0.10) !important;
    }

    #rdv-page-container .rdv-banner {
      position: relative !important;
      background: linear-gradient(120deg, var(--rdv-main) 0%, var(--rdv-main-dark) 100%) !important;
      color: #ffffff !important;
      padding: 28px 30px 30px !important;
      margin: 0 !important;
      border-radius: 0 !important;
    }
    #rdv-page-container .rdv-banner::after {
      content: '' !important;
      position: absolute !important;
      left: 0 !important;
      bottom: 0 !important;
      width: 100% !important;
      height: 5px !important;
      background: var(--rdv-yellow) !important;
    }
    #rdv-page-container .rdv-banner h2 {
      font-size: 30px !important;
      line-height: 1.15 !important;
      margin: 0 0 4px 0 !important;
      border-bottom: none !important;
      font-weight: 800 !important;
      color: #fff !important;
    }
    #rdv-page-container .rdv-banner h3 {
      font-size: 20px !important;
      margin: 0 0 10px 0 !important;
      border-bottom: none !important;
      font-weight: 600 !important;
      color: var(--rdv-yellow) !important;
    }
    #rdv-page-container .rdv-banner p {
      font-size: 13px !important;
      margin: 0 !important;
      opacity: 0.95 !important;
      line-height: 1.5 !important;
      color: #fff !important;
    }

    #rdv-page-container #rdv-form {
      padding: 28px 30px 32px !important;
    }

    /* Titres d'étapes numérotées */
    #rdv-page-container .rdv-step-title {
      display: flex !important;
      align-items: center !important;
      font-weight: 700 !important;
      color: var(--rdv-text) !important;
      font-size: 15px !important;
      margin-bottom: 14px !important;
    }
    #rdv-page-container .rdv-step-badge {
      background-color: var(--rdv-main) !important;
      color: #ffffff !important;
      width: 28px !important;
      height: 28px !important;
      border-radius: 50% !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      margin-right: 10px !important;
      font-size: 14px !important;
      font-weight: 800 !important;
      flex: 0 0 28px !important;
    }

    #rdv-page-container .rdv-section {
      margin-bottom: 26px !important;
      padding-bottom: 6px !important;
    }

    /* Cartes concession / visio */
    #rdv-page-container .rdv-cards-row {
      display: flex !important;
      gap: 14px !important;
    }
    #rdv-page-container .rdv-card {
      position: relative !important;
      flex: 1 !important;
      border: 2px solid var(--rdv-border) !important;
      border-radius: 14px !important;
      padding: 20px 14px !important;
      text-align: center !important;
      cursor: pointer !important;
      transition: all 0.2s ease !important;
      background: #fff !important;
    }
    #rdv-page-container .rdv-card:hover {
      border-color: var(--rdv-main) !important;
      transform: translateY(-2px) !important;
      box-shadow: 0 8px 18px rgba(18, 161, 154, 0.15) !important;
    }
    #rdv-page-container .rdv-card.active {
      border-color: var(--rdv-main) !important;
      background-color: var(--rdv-main-light) !important;
    }
    #rdv-page-container .rdv-card.active::after {
      content: '✓' !important;
      position: absolute !important;
      top: -11px !important;
      right: -11px !important;
      width: 26px !important;
      height: 26px !important;
      border-radius: 50% !important;
      background: var(--rdv-yellow) !important;
      color: #1f2d2c !important;
      font-size: 14px !important;
      font-weight: 800 !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) !important;
    }
    #rdv-page-container .rdv-card-icon {
      width: 48px !important;
      height: 48px !important;
      margin: 0 auto 10px auto !important;
      border-radius: 50% !important;
      background: var(--rdv-main-light) !important;
      color: var(--rdv-main) !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
    }
    #rdv-page-container .rdv-card.active .rdv-card-icon {
      background: var(--rdv-main) !important;
      color: #fff !important;
    }
    #rdv-page-container .rdv-card-title {
      font-weight: 700 !important;
      margin-bottom: 4px !important;
      color: var(--rdv-text) !important;
      font-size: 15px !important;
    }
    #rdv-page-container .rdv-card-desc {
      font-size: 12px !important;
      color: var(--rdv-muted) !important;
      line-height: 1.4 !important;
    }

    /* Lignes et champs */
    #rdv-page-container .form-row {
      display: flex !important;
      gap: 15px !important;
      margin-bottom: 0 !important;
    }
    #rdv-page-container .form-group {
      flex: 1 !important;
      min-width: 0 !important;
      display: flex !important;
      flex-direction: column !important;
      margin-bottom: 16px !important;
    }
    #rdv-page-container label {
      font-weight: 600 !important;
      margin-bottom: 6px !important;
      font-size: 13px !important;
      color: var(--rdv-text) !important;
      display: block !important;
    }
    #rdv-page-container input[type="text"],
    #rdv-page-container input[type="tel"],
    #rdv-page-container input[type="email"],
    #rdv-page-container select {
      width: 100% !important;
      padding: 10px 14px !important;
      border: 1.5px solid var(--rdv-border) !important;
      border-radius: 10px !important;
      font-size: 14px !important;
      color: var(--rdv-text) !important;
      background-color: #fbfdfd !important;
      height: 46px !important;
      outline: none !important;
      transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease !important;
    }
    #rdv-page-container input[type="text"]:focus,
    #rdv-page-container input[type="tel"]:focus,
    #rdv-page-container input[type="email"]:focus,
    #rdv-page-container select:focus {
      border-color: var(--rdv-main) !important;
      background-color: #fff !important;
      box-shadow: 0 0 0 4px rgba(18, 161, 154, 0.15) !important;
    }
    #rdv-page-container select:disabled, 
    #rdv-page-container input:disabled {
      background-color: #eef2f2 !important;
      cursor: not-allowed !important;
      opacity: 0.7 !important;
    }

    /* Captcha */
    #rdv-page-container .rdv-captcha-wrap {
      display: flex !important;
      align-items: center !important;
      flex-wrap: wrap !important;
      gap: 14px !important;
      margin-bottom: 10px !important;
    }
    #rdv-page-container .rdv-captcha-box {
      background: #fffbea !important;
      border: 2px dashed var(--rdv-yellow-dark) !important;
      color: var(--rdv-main-dark) !important;
      font-size: 24px !important;
      font-weight: 800 !important;
      letter-spacing: 7px !important;
      padding: 8px 22px !important;
      border-radius: 10px !important;
      user-select: none !important;
      text-align: center !important;
    }
    #rdv-page-container .rdv-btn-refresh {
      background: none !important;
      border: none !important;
      color: var(--rdv-main) !important;
      cursor: pointer !important;
      font-size: 14px !important;
      font-weight: 600 !important;
      text-decoration: none !important;
      padding: 0 !important;
    }
    #rdv-page-container .rdv-btn-refresh:hover {
      color: var(--rdv-main-deep) !important;
    }

    #rdv-page-container .rdv-error-msg {
      color: #d9534f !important;
      font-size: 12px !important;
      margin-top: 5px !important;
      display: none !important;
    }

    /* Bouton de validation (jaune) */
    #rdv-page-container .btn-submit {
      width: 100% !important;
      background-color: var(--rdv-yellow) !important;
      color: #1f2d2c !important;
      padding: 15px !important;
      border: none !important;
      border-radius: 12px !important;
      font-weight: 800 !important;
      letter-spacing: 0.8px !important;
      cursor: pointer !important;
      font-size: 15px !important;
      text-decoration: none !important;
      box-shadow: 0 8px 18px rgba(249, 200, 14, 0.40) !important;
      transition: all 0.2s ease !important;
      margin-top: 6px !important;
    }
    #rdv-page-container .btn-submit:hover {
      background-color: var(--rdv-yellow-dark) !important;
      transform: translateY(-2px) !important;
      box-shadow: 0 12px 22px rgba(249, 200, 14, 0.45) !important;
    }

    /* ==========================================================================
       RESPONSIVE
       ========================================================================== */
    @media (max-width: 992px) {
      #rdv-page-container .rdv-layout {
        gap: 24px !important;
      }
      #rdv-page-container .rdv-left-col {
        flex: 0 0 38% !important;
        max-width: 38% !important;
        padding: 34px 26px !important;
      }
      #rdv-page-container .rdv-main-title {
        font-size: 30px !important;
      }
    }

    @media (max-width: 768px) {
      #rdv-page-container {
        padding: 30px 14px 40px !important;
      }
      #rdv-page-container .rdv-layout {
        flex-direction: column !important;
        gap: 24px !important;
      }
      /* Le formulaire passe en haut sur smartphone */
      #rdv-page-container .rdv-right-col {
        order: 1 !important;
        width: 100% !important;
      }
      #rdv-page-container .rdv-left-col {
        order: 2 !important;
        flex: none !important;
        max-width: 100% !important;
        width: 100% !important;
        padding: 30px 22px !important;
      }
      #rdv-page-container .rdv-main-title {
        font-size: 27px !important;
      }
      #rdv-page-container .rdv-loc-box {
        max-width: 100% !important;
      }
      #rdv-page-container .rdv-banner {
        padding: 22px 20px 24px !important;
      }
      #rdv-page-container .rdv-banner h2 {
        font-size: 24px !important;
      }
      #rdv-page-container #rdv-form {
        padding: 22px 18px 26px !important;
      }
      #rdv-page-container .form-row {
        flex-direction: column !important;
        gap: 0 !important;
      }
    }

    @media (max-width: 420px) {
      #rdv-page-container .rdv-cards-row {
        flex-direction: column !important;
      }
      #rdv-page-container .rdv-captcha-wrap {
        flex-direction: column !important;
        align-items: flex-start !important;
      }
    }

    /* ==========================================================================
       CALENDRIER FLATPICKR (couleurs du site)
       ========================================================================== */
    .flatpickr-calendar {
      width: 280px !important;
      max-width: 100% !important;
      box-shadow: 0 10px 25px rgba(0,0,0,0.15) !important;
      border-radius: 12px !important;
      background: #fff !important;
    }
    .flatpickr-days {
      width: 280px !important;
    }
    .dayContainer {
      width: 280px !important;
      min-width: 280px !important;
      max-width: 280px !important;
    }
    .flatpickr-months .flatpickr-month,
    .flatpickr-current-month .flatpickr-monthDropdown-months,
    span.flatpickr-weekday {
      color: #12a19a !important;
      fill: #12a19a !important;
    }
    .flatpickr-day.selected,
    .flatpickr-day.selected:hover {
      background: #12a19a !important;
      border-color: #12a19a !important;
      color: #fff !important;
    }
    .flatpickr-day.today {
      border-color: #f9c80e !important;
    }
    .flatpickr-day.today:hover {
      background: #f9c80e !important;
      border-color: #f9c80e !important;
      color: #1f2d2c !important;
    }
    .flatpickr-day:hover {
      background: #e3f5f4 !important;
      border-color: #e3f5f4 !important;
    }

    /* ==========================================================================
       FENETRE MODALE
       ========================================================================== */
    #rdv-modal {
      display: none;
      position: fixed;
      z-index: 9999;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      padding: 15px;
      background-color: rgba(9, 60, 57, 0.55);
      backdrop-filter: blur(3px);
      align-items: center;
      justify-content: center;
    }
    #rdv-modal .rdv-modal-box {
      background: #ffffff;
      width: 100%;
      max-width: 430px;
      border-radius: 20px;
      padding: 34px 30px 30px;
      text-align: center;
      box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
      border-top: 6px solid #f9c80e;
      animation: modalScale 0.3s ease;
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }
    #rdv-modal .rdv-modal-icon {
      width: 64px;
      height: 64px;
      background-color: #12a19a;
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 30px;
      margin: 0 auto 18px auto;
      box-shadow: 0 0 0 8px #e3f5f4;
    }
    #rdv-modal h3 {
      margin: 0 0 10px 0;
      color: #1f2d2c;
      font-size: 21px;
      font-weight: 800;
    }
    #rdv-modal-message {
      margin: 0 0 24px 0;
      color: #5f6f6e;
      font-size: 14px;
      line-height: 1.6;
    }
    #rdv-modal-close-btn {
      width: 100%;
      background-color: #12a19a;
      color: #fff;
      border: none;
      border-radius: 12px;
      padding: 13px;
      font-size: 15px;
      font-weight: 800;
      cursor: pointer;
      transition: background 0.2s;
    }
    #rdv-modal-close-btn:hover {
      background-color: #0c7c76;
    }
    @keyframes modalScale {
      from { transform: scale(0.8); opacity: 0; }
      to { transform: scale(1); opacity: 1; }
    }