/* ═══════════════════════════════════════════════════════════════════════════
   reservation.css — Tunnel de réservation Merendella
   Toutes les classes sont préfixées .resa- pour éviter les conflits CSS
   ═══════════════════════════════════════════════════════════════════════════ */

#bandeaudiapowebservice {
  float: left;
  position: relative;
  width: 100%;
  height: 400px;
  margin-top: 120px;
}

#bandeaudiapowebservice img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

#conteneurdisponibilitesbleu{
    float: left;
    width: 100%;
    height: auto;
    background: #0097b2;
    margin: 0;
    padding: 0;
    padding-top: 50px;
    padding-bottom: 30px;
}

#conteneurdisponibilitesgris{
    float: left;
    width: 100%;
    height: auto;
    background: #f3f3f3;
    margin: 0;
    padding: 0;
    padding-top: 50px;
    padding-bottom: 30px;
}

/* ── Variables ───────────────────────────────────────────────────────────── */
.resa-wrapper {
    --orange:      #E8802A;
    --teal:        #2A9D8F;
    --teal-dark:   #207A6E;
    --text-dark:   #2C2C2C;
    --text-mid:    #555555;
    --text-light:  #888888;
    --border:      #E0E0E0;
    --bg-card:     #FFFFFF;
    --radius:      10px;
    --radius-sm:   4px;
    --green:       #27AE60;

    max-width: 1280px;
    margin: 0 auto;
    padding: 20px 16px 60px;
    font-family: "open_sanslight";
    color: var(--text-dark);
    box-sizing: border-box;
}

/* ── Étapes ──────────────────────────────────────────────────────────────── */
.resa-steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin: 0 0 32px;
}

.resa-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 1;
    max-width: 120px;
    position: relative;
}

.resa-step::after {
    content: '';
    position: absolute;
    top: 20px;
    left: calc(50% + 22px);
    width: calc(100% - 44px);
    height: 2px;
    background: var(--border);
}

.resa-step:last-child::after { display: none; }

.resa-step__icon {
    width: 44px;
    height: 44px;
    border: solid 2px #fff;
    border-radius: 50%;
    background: var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    position: relative;
    z-index: 1;
}

.resa-step--done   .resa-step__icon { background: var(--teal);   }
.resa-step--active .resa-step__icon { background: var(--orange); }

.resa-step__label {
    font-size: 11px;
    color: #fff;
    text-align: center;
}

.resa-step--active .resa-step__label { color: #fff; font-weight: 700; }
.resa-step--done   .resa-step__label { color: #fff; }

/* ── Titre ───────────────────────────────────────────────────────────────── */
.resa-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0 0 24px;
}

.resa-title span { color: var(--teal); }

/* ── Messages erreur / succès ────────────────────────────────────────────── */
.resa-error {
    background: #FEF2F1;
    border: 1px solid #F5C6C2;
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    font-size: 14px;
    color: #C0392B;
    margin-bottom: 20px;
}

.resa-warning {
    background: #FFF8E1;
    border: 1px solid #FFD54F;
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    font-size: 14px;
    color: #E65100;
    margin-bottom: 20px;
}

.resa-person-limit {
    color: #C0392B;
    font-size: 14px;
    margin: 0 0 12px;
}

.resa-person-note {
    color: var(--text-mid);
    font-size: 13px;
    background: #f5f9fb;
    border-left: 3px solid var(--teal);
    padding: 8px 12px;
    border-radius: 4px;
    margin: 0 0 14px;
}

.resa-success {
    text-align: center;
    padding: 60px 24px;
}

.resa-success-icon {
    width: 64px;
    height: 64px;
    background: var(--green);
    color: #fff;
    border-radius: 50%;
    font-size: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.resa-success h2        { color: var(--text-dark); margin: 0 0 12px; }
.resa-success-details   { background: #f5f5f5; border-radius: 8px; padding: 16px; margin: 20px auto; max-width: 400px; }
.resa-success-details p { margin: 4px 0; font-size: 14px; }
.resa-success-note      { font-size: 13px; color: var(--text-light); margin: 16px 0 24px; }

/* ── Layout ──────────────────────────────────────────────────────────────── */
.resa-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.resa-main    { flex: 1; min-width: 0; }
.resa-sidebar { flex: 0 0 280px; position: sticky; top: 20px; }

/* ── Carte ───────────────────────────────────────────────────────────────── */
.resa-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px 24px;
    margin-bottom: 16px;
    box-sizing: border-box;
}

.resa-section-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--orange);
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}

.resa-section-title--cols {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.resa-col-price {
    color: var(--teal);
    font-weight: 400;
    font-style: italic;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
}

/* ── Récapitulatif séjour ────────────────────────────────────────────────── */
.resa-summary {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.resa-summary__img {
    width: 120px;
    height: 90px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
}

.resa-summary__label { font-size: 12px; color: var(--text-light); margin: 0; }
.resa-summary__name  { font-size: 15px; font-weight: 700; color: var(--orange); margin: 4px 0; }
.resa-summary__camp  { font-size: 13px; color: var(--text-mid); margin: 0 0 4px; }
.resa-summary__dates { font-size: 13px; color: var(--text-dark); margin: 0; }

/* ── Supplément ──────────────────────────────────────────────────────────── */
.resa-supplement {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
}

.resa-supplement:last-child { border-bottom: none; }

.resa-supplement__qty select {
    width: 64px;
    padding: 6px 4px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    background: #fafafa;
    cursor: pointer;
}

.resa-supplement__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.resa-supplement__name  { font-size: 14px; font-weight: 500; }
.resa-supplement__desc  { font-size: 12px; color: var(--text-light); line-height: 1.4; }
.resa-supplement__price { font-size: 14px; font-weight: 500; white-space: nowrap; min-width: 70px; text-align: right; }

.supp-more {
    color: var(--teal);
    font-weight: 600;
    text-decoration: none;
    font-size: 12px;
}

/* ── Choix emplacement ───────────────────────────────────────────────────── */
.resa-place__hint { font-size: 13px; color: var(--text-mid); margin: 0 0 12px; }

.resa-link { color: var(--teal); font-weight: 600; text-decoration: none; }
.resa-link:hover { text-decoration: underline; }

.resa-place__row {
    display: flex;
    align-items: center;
    gap: 16px;
}

.resa-place__select {
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    background: #fafafa;
    min-width: 160px;
    cursor: pointer;
}

.resa-place__price {
    font-size: 14px;
    font-weight: 500;
    margin-left: auto;
}

.resa-place__note {
    font-size: 12px;
    color: var(--text-light);
    margin: 8px 0 0;
    font-style: italic;
}

/* ── Assurance ───────────────────────────────────────────────────────────── */
.resa-insurance { display: flex; flex-direction: column; gap: 10px; }

.resa-radio {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    cursor: pointer;
}

.resa-radio input { margin-top: 3px; flex-shrink: 0; }

/* ── Informations complémentaires ────────────────────────────────────────── */
.resa-info-compl { display: flex; flex-direction: column; gap: 16px; }

.resa-info-compl__row {
    display: flex;
    align-items: center;
    gap: 16px;
    justify-content: space-between;
}

.resa-info-compl__row p {
    flex: 1;
    font-size: 13px;
    color: var(--text-mid);
    margin: 0;
    line-height: 1.4;
}

.resa-info-compl__row input {
    flex: 0 0 260px;
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    background: #fafafa;
}

/* ── Champs client ───────────────────────────────────────────────────────── */
.resa-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.resa-field { display: flex; flex-direction: column; gap: 5px; }
.resa-field--full { grid-column: 1 / -1; }

.resa-field label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-mid);
    text-transform: uppercase;
    letter-spacing: .04em;
}

.resa-field input,
.resa-field select,
.resa-field textarea {
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    color: var(--text-dark);
    background: #fafafa;
    font-family: sans-serif;
    box-sizing: border-box;
}

.resa-field textarea { resize: vertical; }

.resa-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    color: var(--text-mid);
    cursor: pointer;
}

/* ── Sidebar récapitulatif ───────────────────────────────────────────────── */
.resa-recap__line {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
    padding: 6px 0;
    border-bottom: 1px solid #f0f0f0;
}

.resa-recap__line--supp { color: var(--text-mid); }

.resa-recap__total {
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    font-weight: 700;
    color: var(--teal);
    padding: 12px 0 16px;
    border-top: 2px solid var(--border);
    margin-top: 6px;
}

/* ── Bouton principal ────────────────────────────────────────────────────── */
.resa-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    background: var(--teal);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s;
    font-family: sans-serif;
}

.resa-btn-primary:hover      { background: var(--teal-dark); }
.resa-btn-primary--full      { width: 100%; }

.resa-secure {
    font-size: 12px;
    color: var(--text-light);
    text-align: center;
    margin: 10px 0 0;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .resa-layout            { flex-direction: column-reverse; }
    .resa-sidebar           { position: static; width: 100%; }
    .resa-fields            { grid-template-columns: 1fr; }
    .resa-step::after       { display: none; }
    .resa-step__label       { display: none; }
    .resa-info-compl__row   { flex-direction: column; align-items: flex-start; }
    .resa-info-compl__row input { flex: none; width: 100%; }
}

/* ── Bouton bas de page ──────────────────────────────────────────────────── */
.resa-footer-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}

.resa-btn-primary--large {
    padding: 14px 40px;
    font-size: 16px;
}

/* ── Bouton secondaire (retour) ──────────────────────────────────────────── */
.resa-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    background: transparent;
    color: var(--teal);
    border: 2px solid var(--teal);
    border-radius: var(--radius-sm);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: all .15s;
    font-family: sans-serif;
}

.resa-btn-secondary:hover {
    background: var(--teal);
    color: #fff;
}

.resa-footer-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}

.resa-btn-primary--large {
    padding: 14px 40px;
    font-size: 16px;
}

/* ── Participants ────────────────────────────────────────────────────────── */
.resa-participants__header {
    font-size: 14px;
    color: var(--text-dark);
    margin: 0 0 20px;
}

.resa-participants__group {
    margin-bottom: 24px;
}

.resa-participants__group:last-child { margin-bottom: 0; }

.resa-participants__title {
    font-size: 13px;
    font-weight: 700;
    color: var(--orange);
    letter-spacing: .05em;
    margin: 0 0 12px;
}

.resa-participant {
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f0f0f0;
}

.resa-participant:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.resa-participant--first { background: #fafafa; padding: 12px; border-radius: var(--radius-sm); }

.resa-participant__checkbox { margin-bottom: 12px; }

.resa-participant__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.resa-participant__fields input {
    padding: 9px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    color: var(--text-dark);
    background: #fff;
    font-family: sans-serif;
    box-sizing: border-box;
    width: 100%;
}

.resa-input--buyer {
    background: #f0f0f0 !important;
    color: var(--text-mid) !important;
}

.resa-participant__dob {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.resa-participant__dob label {
    font-size: 12px;
    color: var(--text-light);
}

.resa-participant__dob input {
    max-width: 200px;
}

@media (max-width: 768px) {
    .resa-participant__fields { grid-template-columns: 1fr; }
    .resa-participant__dob input { max-width: 100%; }
}

/* ── Page paiement ───────────────────────────────────────────────────────── */
.resa-payment-notice {
    background: #EAF7F0;
    border: 1px solid #A8DFC4;
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    font-size: 14px;
    color: #1E7A4A;
    margin-bottom: 16px;
}

.resa-payment-notice--urgent {
    background: #FEF9EC;
    border-color: #F5DFA0;
    color: #8A6200;
}

.resa-payment-option {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px;
    border: 2px solid var(--border);
    border-radius: var(--radius-sm);
    margin-bottom: 10px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.resa-payment-option:last-child { margin-bottom: 0; }

.resa-payment-option:has(input:checked),
.resa-payment-option--selected {
    border-color: var(--teal);
    background: #F0FAF9;
}

.resa-payment-option input[type="radio"] {
    margin-top: 4px;
    flex-shrink: 0;
    accent-color: var(--teal);
    width: 18px;
    height: 18px;
}

.resa-payment-option__content { flex: 1; }

.resa-payment-option__header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.resa-payment-option__icon  { font-size: 20px; }

.resa-payment-option__label {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-dark);
}

.resa-payment-option__amount {
    font-size: 15px;
    font-weight: 700;
    color: var(--teal);
    white-space: nowrap;
}

.resa-payment-option__note {
    font-size: 12px;
    color: var(--text-light);
    margin: 4px 0 0;
    line-height: 1.4;
}

.resa-payment-cards {
    display: flex;
    gap: 8px;
    margin: 8px 0 4px;
}

.resa-payment-card {
    height: 24px;
    width: auto;
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 2px 4px;
    background: #fff;
}

.resa-recap__acompte {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--orange);
    font-weight: 600;
    padding: 6px 0;
    border-top: 1px dashed var(--border);
    margin-top: 4px;
}

.resa-summary__ref {
    font-size: 12px;
    color: var(--text-light);
    margin: 4px 0 0;
}

/* ── Page confirmation ───────────────────────────────────────────────────── */
.resa-confirm__banner {
    display: flex;
    align-items: center;
    gap: 20px;
    background: linear-gradient(135deg, var(--teal), var(--teal-dark));
    color: #fff;
    border-radius: var(--radius);
    padding: 24px 28px;
    margin-bottom: 24px;
}

.resa-confirm__banner-icon {
    width: 56px;
    height: 56px;
    background: rgba(255,255,255,.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    flex-shrink: 0;
}

.resa-confirm__banner-text h2 {
    margin: 0 0 6px;
    font-size: 20px;
    font-weight: 700;
}

.resa-confirm__banner-text p {
    margin: 0;
    font-size: 14px;
    opacity: .9;
}

.resa-confirm__details { display: flex; flex-direction: column; gap: 0; }

.resa-confirm__detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 14px;
}

.resa-confirm__detail-row:last-child { border-bottom: none; }

.resa-confirm__detail-label { color: var(--text-mid); }

.resa-confirm__detail-value { font-weight: 600; color: var(--text-dark); }

.resa-confirm__ref {
    font-family: monospace;
    font-size: 15px;
    color: var(--teal);
    letter-spacing: .05em;
}

.resa-confirm__detail-row--highlight .resa-confirm__detail-value {
    color: var(--orange);
}

.resa-confirm__instructions p {
    font-size: 14px;
    color: var(--text-mid);
    margin: 0 0 12px;
    line-height: 1.5;
}

.resa-confirm__ref-box {
    font-family: monospace;
    font-size: 16px;
    font-weight: 700;
    color: var(--teal);
    background: #f0faf9;
    border: 1px dashed var(--teal);
    border-radius: var(--radius-sm);
    padding: 10px 16px;
    margin: 8px 0 16px;
    letter-spacing: .05em;
}

.resa-confirm__bank {
    background: #f5f5f5;
    border-radius: var(--radius-sm);
    padding: 12px 16px;
    margin: 8px 0 12px;
}

.resa-confirm__bank p {
    margin: 2px 0 !important;
    font-size: 13px !important;
}

.resa-confirm__note {
    font-size: 13px !important;
    color: var(--orange) !important;
    font-weight: 500;
}

.resa-confirm__info-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.resa-confirm__info-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.resa-confirm__info-icon {
    font-size: 20px;
    flex-shrink: 0;
    margin-top: 2px;
}

.resa-confirm__info-item strong {
    display: block;
    font-size: 13px;
    color: var(--text-dark);
    margin-bottom: 2px;
}

/* Le display:block ci-dessus vise les INTITULÉS (« Arrivée », « Départ »), enfants
   directs du bloc. Un mot mis en valeur À L'INTÉRIEUR d'un paragraphe doit rester
   dans le fil du texte, sinon la phrase se casse en trois lignes. */
.resa-confirm__info-item p strong {
    display: inline;
    margin-bottom: 0;
}

.resa-confirm__info-item p {
    font-size: 13px;
    color: var(--text-mid);
    margin: 0;
    line-height: 1.4;
}

.resa-btn-secondary--full { display: block; width: 100%; box-sizing: border-box; }

/* ── Ligne promo dans récapitulatif ─────────────────────────────────────── */
.resa-recap__line--promo {
    color: var(--green);
    font-weight: 500;
}

/* ── Ma réservation (accès direct par numéro + nom) ─────────────────────────── */
.resa-mr-access { margin-bottom: 20px; }

.resa-mr-access__hint {
    margin: 0 0 16px;
    font-size: 14px;
    color: var(--text-mid);
}

.resa-mr-form {
    display: flex;
    gap: 16px;
    align-items: flex-end;
    flex-wrap: wrap;
}

.resa-mr-form__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 220px;
}

.resa-mr-form__field label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-dark);
}

.resa-mr-form__field input {
    padding: 11px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-size: 15px;
}

.resa-mr-form__submit { flex: 0 0 auto; }

.resa-mr-error {
    margin: 16px 0 0;
    padding: 12px 16px;
    background: #FEF2F1;
    border: 1px solid #F5C6C2;
    border-radius: var(--radius-sm);
    font-size: 14px;
    color: #C0392B;
}

.resa-mr-line {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 14px;
    color: var(--text-dark);
}

.resa-mr-line:last-child { border-bottom: none; }

.resa-mr-pay .resa-radio { margin: 4px 0; }

.resa-mr-paysoon {
    margin: 14px 0 0;
    padding: 12px 14px;
    background: #f5f9fb;
    border-left: 3px solid var(--teal);
    border-radius: 4px;
    font-size: 13px;
    color: var(--text-mid);
    line-height: 1.5;
}

.resa-mr-paid {
    margin: 14px 0 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--green);
}
