.booking-page{padding:32px 24px 56px;max-width:1200px;margin:0 auto}.booking-steps{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap;position:relative}.booking-step{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--color-background-secondary, #f1f5f9);border-radius:999px;font-weight:600;color:var(--color-text-dark, #1e293b);border:none;cursor:default}.booking-step__number{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-border, #e5e7eb);color:var(--color-text-dark, #1e293b);font-weight:700}.booking-step__icon{display:none;font-size:16px;line-height:1}.booking-step__line{flex:1;height:2px;background:var(--color-border, #e5e7eb);border-radius:999px;margin:0 6px}.booking-step.is-completed+.booking-step__line{background:var(--color-primary-dark)}.booking-step.is-active{background:color-mix(in srgb,var(--color-accent-alt) 15%,var(--color-white));color:var(--color-primary);padding:8px 20px}.booking-step.is-active .booking-step__number{background:var(--color-accent-alt);color:var(--color-white)}.booking-step.is-completed .booking-step__number{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.booking-step.is-completed .booking-step__number-text{display:none}.booking-step.is-completed .booking-step__icon{display:inline-flex}.booking-step.is-clickable{cursor:pointer}@media(min-width:769px){.booking-steps{gap:24px;justify-content:space-between}.booking-step{background:transparent;padding:0;gap:12px;position:relative;z-index:1}.booking-step__number{background:var(--color-white);border:2px solid var(--color-border, #e5e7eb)}.booking-step.is-active .booking-step__number{border-color:var(--color-accent-alt, #ff8000)}.booking-step.is-clickable .booking-step__number{border-color:var(--color-primary, #1e3a8a)}.booking-step__line{margin:0 10px}}@media(max-width:768px){.booking-step__line{display:none}}.booking-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:28px;align-items:start}.booking-panel{background:var(--color-white);border-radius:18px;padding:24px;box-shadow:var(--shadow-medium, 0 10px 24px rgba(0, 0, 0, .08));border:1px solid var(--color-border, #e5e7eb)}.booking-panel__title{font-size:1.2rem;font-weight:700;margin:0 0 8px;color:var(--color-primary, #1e3a8a)}.booking-panel__subtitle{margin:0 0 16px;color:var(--color-text-dark, #334155)}.booking-panel__capacity{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--color-accent-alt, #ff8000)}.booking-panel--step.is-hidden{display:none}.booking-field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.booking-field-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.booking-field--compact{margin-bottom:0;flex:1 1 220px}.booking-private-field{max-width:280px}.booking-private-field.is-hidden{display:none}.booking-checkbox{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--color-text-dark, #1e293b)}.booking-checkbox.is-hidden{display:none}.booking-checkbox span{font-size:.85rem;font-weight:600;color:var(--color-text-light, #64748b);white-space:nowrap}.booking-checkbox input{width:18px;height:18px;accent-color:var(--color-accent-alt, #ff8000)}.booking-private-help{margin:6px 0 0;font-size:.78rem;line-height:1.35;color:var(--color-text-light, #64748b)}.booking-private-help.is-hidden{display:none}.booking-label{font-weight:600;color:var(--color-text-dark, #1e293b)}.booking-select,.booking-input,.booking-textarea{border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:10px 12px;font-weight:600;color:var(--color-text-dark, #1e293b);background:var(--color-white)}.booking-textarea{min-height:120px;resize:vertical;font-weight:500}.booking-actions{display:flex;justify-content:flex-end;margin-top:10px}.booking-actions--submit{justify-content:space-between;margin-top:18px}.booking-actions--confirm{flex-direction:column;justify-content:center;margin-top:24px;gap:18px}.booking-next-step,.booking-submit,.booking-back-step,.booking-confirm-button{border:none;border-radius:999px;padding:12px 28px;font-weight:700;background:var(--color-accent-alt, #ff8000);color:var(--color-white);cursor:pointer;box-shadow:0 12px 20px #ff800040;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.booking-back-step{background:var(--color-white);color:var(--color-primary, #1e3a8a);border:2px solid var(--color-primary, #1e3a8a);box-shadow:none}.booking-confirm-button{background:var(--color-accent-alt, #ff8000);color:var(--color-white);box-shadow:0 12px 20px #ff800040}.booking-confirm-button[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.booking-next-step:hover,.booking-submit:hover,.booking-back-step:hover,.booking-confirm-button:hover{transform:translateY(-1px);box-shadow:0 16px 28px #ff800047}.booking-back-step:hover{box-shadow:0 8px 18px #1e3a8a26}.booking-submit[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.booking-confirm-layout{display:grid;gap:20px}.booking-confirm-placeholder{min-height:140px;border-radius:14px;background:var(--color-primary);color:var(--color-white);font-weight:700;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}.booking-confirm-card{background:var(--color-white);border-radius:14px;padding:16px 18px;border:1px solid var(--color-border, #e5e7eb);box-shadow:var(--shadow-soft, 0 8px 18px rgba(0, 0, 0, .08))}.booking-confirm-card__title{margin:0 0 12px;font-size:1rem;color:var(--color-primary, #1e3a8a);font-weight:700}.booking-coupon-input-row{display:flex;align-items:stretch;gap:10px}.booking-coupon-input-row .booking-input{flex:1 1 auto;min-width:0}.booking-promo-validate-btn{border:2px solid var(--color-primary, #1e3a8a);border-radius:10px;background:var(--color-white);color:var(--color-primary, #1e3a8a);font-weight:700;padding:0 16px;min-width:116px;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.booking-promo-validate-btn:hover{background:color-mix(in srgb,var(--color-primary, #1e3a8a) 12%,var(--color-white))}.booking-promo-validate-btn[disabled]{cursor:not-allowed;opacity:.55}.booking-promo-feedback{min-height:18px;margin:6px 0 0;font-size:.83rem;font-weight:600}.booking-promo-feedback.is-success{color:var(--color-success, #22c55e)}.booking-promo-feedback.is-error{color:var(--color-error, #ef4444)}.booking-promo-feedback.is-info{color:var(--color-text-light, #64748b)}.booking-coupon-field{margin-top:16px;margin-bottom:0}.booking-coupon-field--summary{margin-top:0}.booking-coupon-help{margin:6px 0 0;font-size:.85rem;color:var(--color-text-light, #64748b)}.booking-confirm-list{display:grid;gap:10px}.booking-confirm-item{display:flex;justify-content:space-between;gap:12px;font-weight:600}.booking-confirm-label{color:var(--color-text-muted, #64748b)}.booking-confirm-value{color:var(--color-text-dark, #1e293b);text-align:right}.booking-confirm-terms{display:grid;gap:12px;align-items:center;background:var(--color-white);border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow-soft, 0 8px 18px rgba(0, 0, 0, .08));max-width:520px;margin:0 auto}.booking-confirm-terms__link{color:var(--color-primary, #1e3a8a);font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.booking-confirm-terms__label{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--color-text-dark, #1e293b);cursor:pointer}.booking-confirm-terms__label input{width:18px;height:18px}.booking-confirm-error{min-height:18px;color:var(--color-error, #ef4444);font-weight:600;text-align:center}.booking-cgv-modal .modal-header{background:var(--color-primary, #1e3a8a);color:var(--color-white)}.booking-cgv-modal .btn-close{filter:brightness(0) invert(1)}.booking-cgv-modal__body{padding:0;height:70vh}.booking-cgv-modal__content{height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;text-align:center;color:var(--color-text-dark, #1e293b)}.booking-cgv-modal__link{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border-radius:999px;background:var(--color-primary, #1e3a8a);color:var(--color-white);font-weight:700;text-decoration:none}@media(max-width:768px){.booking-cgv-modal .modal-dialog{width:100%;max-width:none;margin:0;height:100vh}.booking-cgv-modal .modal-content{border-radius:0;height:100vh}.booking-cgv-modal__body,.booking-cgv-modal__frame{height:calc(100vh - 56px)}}.booking-participants{display:grid;gap:12px;margin-bottom:20px}.participant-row{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,.8fr));gap:10px;align-items:center}.participant-row input,.participant-row select{width:100%}.booking-reserver-form{margin-top:18px}.booking-reserver-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}.booking-reserver-field .form-group-material{margin-bottom:0}.booking-info-list{margin:8px 0 0;padding-left:18px;color:var(--color-text-dark, #334155);display:grid;gap:6px}.booking-summary{display:flex;flex-direction:column;gap:20px}.booking-card-preview .activity-card{margin:0}.booking-panel--summary{padding:20px}.booking-details{display:grid;gap:12px}.booking-date-card{border:2px solid var(--color-border-primary);border-radius:14px;padding:12px 14px;background:var(--color-white);display:grid;gap:6px;text-align:center;font-weight:700;color:var(--color-primary)}.booking-date-card__date{font-size:1.05rem}.booking-date-card__time{font-size:.9rem;color:var(--color-primary);display:flex;align-items:baseline;justify-content:center;gap:6px}.booking-guide{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.booking-guide__avatar{width:40px;height:40px;border-radius:50%;background:var(--color-blue-100);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;background-size:cover;background-position:center}.booking-guide__avatar.has-photo{color:transparent}.booking-detail{display:flex;justify-content:space-between;gap:10px;font-weight:600}.booking-detail__label{color:var(--color-text-muted, #64748b)}.booking-detail__value{color:var(--color-text-dark, #1e293b)}.booking-total{background:color-mix(in srgb,var(--color-primary, #1e3a8a) 12%,var(--color-white));border-radius:16px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;font-size:1.1rem;font-weight:700;border:1px solid var(--color-border, #e5e7eb)}.booking-promo-box{background:var(--color-white);border:1px solid var(--color-border, #e5e7eb);border-radius:14px;padding:16px;box-shadow:var(--shadow-soft, 0 8px 18px rgba(0, 0, 0, .08))}.booking-total__value{color:var(--color-primary, #1e3a8a)}.booking-total-detail{color:var(--color-text-muted, #64748b);font-size:.92rem;font-weight:600;display:block}.booking-total-discount{font-size:.76rem;font-weight:400;display:flex;width:fit-content;max-width:100%;align-self:flex-start;align-items:center;gap:6px;padding:2px 8px;border-radius:999px}.booking-total-discount-remove{margin-left:2px;width:17px;height:17px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;line-height:1;cursor:pointer;padding:0;transition:background-color .2s ease,transform .2s ease,opacity .2s ease}.booking-total-discount-remove-icon{display:block;width:10px;height:10px;pointer-events:none}.booking-total-discount-remove:hover{background:color-mix(in srgb,currentColor 18%,transparent);transform:scale(1.03)}.booking-total-discount-remove[disabled]{cursor:not-allowed;opacity:.55;transform:none}.booking-total-discount-remove[hidden]{display:none!important}.booking-total-discount.is-success{color:#fff;background:var(--color-success, #22c55e);border:1px solid color-mix(in srgb,var(--color-success, #22c55e) 82%,#000000)}.booking-total-discount.is-info{color:var(--color-text-light, #64748b)}.booking-total-discount.is-last-minute{color:#fff;background:var(--color-accent, #ff7f27);border:1px solid color-mix(in srgb,var(--color-accent, #ff7f27) 78%,#000000)}.booking-total-discount.is-last-minute .booking-total-discount-remove{display:none!important}.booking-total-discount.is-success .booking-total-discount-remove{color:#fff;border-color:color-mix(in srgb,#ffffff 82%,transparent);background:color-mix(in srgb,#ffffff 14%,transparent)}.booking-total-discount.is-success .booking-total-discount-remove:hover{background:color-mix(in srgb,#ffffff 24%,transparent);color:#fff}.booking-total-discount.is-hidden{display:none}.booking-total__info{display:flex;flex-direction:column;gap:4px}@media(max-width:960px){.booking-layout{grid-template-columns:1fr}.participant-row{grid-template-columns:1fr 1fr}.booking-reserver-grid{grid-template-columns:1fr}}@media(max-width:640px){.booking-page{padding:24px 16px 40px}.booking-step{width:100%;justify-content:center}.participant-row{grid-template-columns:1fr}.booking-actions{justify-content:center}.booking-coupon-input-row{flex-direction:column}.booking-promo-validate-btn{width:100%;min-height:44px}}.booking-stripe-card{border-radius:14px;background:linear-gradient(135deg,var(--color-white) 0%,var(--color-blue-100) 100%);border:1px solid var(--color-primary-light, #93c5fd);padding:20px;box-shadow:var(--shadow-soft, 0 8px 18px rgba(0, 0, 0, .08))}.booking-stripe-card__title{margin:0 0 8px;font-size:1.05rem;color:var(--color-primary, #1e3a8a);font-weight:700;display:flex;align-items:center;gap:8px}.booking-stripe-card__info{margin:0 0 16px;font-size:.88rem;color:var(--color-text-muted, #64748b);line-height:1.5}.booking-stripe-card__element{background:var(--color-white);border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:14px 16px;min-height:48px;transition:border-color .2s ease,box-shadow .2s ease}.booking-stripe-card__element:focus-within{border-color:var(--color-primary, #1e3a8a);box-shadow:0 0 0 3px #1e3a8a1f}.booking-stripe-card__errors{margin-top:8px;font-size:.85rem;color:var(--error-color, #ef4444);min-height:20px}.booking-stripe-card__badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.booking-stripe-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#1e3a8a0f;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--color-primary, #1e3a8a);white-space:nowrap}.booking-stripe-badge i{line-height:1}.booking-stripe-badge--secure i{font-size:.78rem}.booking-stripe-badge--cards i{font-size:1.05rem}.booking-stripe-badge--cards .fa-cc-visa{color:#1a1f71}.booking-stripe-badge--cards .fa-cc-mastercard{color:#eb001b}.booking-stripe-badge--apple i{font-size:1.05rem;color:#111827}.booking-stripe-badge--google i{font-size:1rem;color:#4285f4}.booking-payment-info{border-radius:14px;background:linear-gradient(135deg,var(--color-green-50) 0%,var(--color-green-100) 100%);border:1px solid var(--success-color, #22c55e);padding:20px;display:flex;align-items:center;gap:12px;font-weight:600;color:var(--color-green-800)}.booking-payment-info__icon{font-size:1.5rem}.booking-payment-info__text{font-size:.95rem;line-height:1.4}.booking-confirm-terms__label--penalty{margin-top:8px;padding:10px 12px;background:var(--color-amber-50);border:1px solid var(--color-amber-500);border-radius:10px}.booking-confirm-terms__label--penalty span{font-size:.88rem;color:var(--color-amber-800);line-height:1.5}.booking-stripe-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;color:var(--color-text-muted, #64748b);font-size:.9rem}.booking-stripe-loading__spinner{width:20px;height:20px;border:2px solid rgba(30,58,138,.2);border-top-color:var(--color-primary, #1e3a8a);border-radius:50%;animation:stripe-spin .6s linear infinite}@keyframes stripe-spin{to{transform:rotate(360deg)}}.booking-stripe-confirmed{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--color-green-50);border:1px solid var(--success-color);border-radius:10px;color:var(--color-green-800);font-weight:600}.booking-stripe-confirmed__icon{font-size:1.3rem}@media(max-width:640px){.booking-stripe-card{padding:16px}.booking-stripe-card__badges{gap:6px}.booking-stripe-badge{font-size:.72rem;padding:3px 8px}}
