/* ====================================================================== */
/* ======== RESERVATION ================================================= */
/* ====================================================================== */

.resa_header {
text-align:center;
margin:0 0 20px 0
}

.resa_header h1 {
display:flex;
align-items:center;
justify-content:center;
gap:12px;
color:var(--mainColorA, #302625);
font-size:clamp(1.3rem, 3vw, 1.6rem);
margin:0 0 8px 0
}

.resa_header h1 i { color:#ED8611 }

.resa_header p {
color:#666;
font-size:0.9rem;
margin:0
}

.resa_alert {
display:flex;
align-items:flex-start;
gap:12px;
background:linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%);
border-left:4px solid #ff9800;
border-radius:8px;
font-size:0.85rem;
line-height:1.5;
margin:0 0 25px 0;
padding:15px
}

.resa_alert i {
color:#e65100;
font-size:1.1rem;
flex-shrink:0;
margin-top:2px
}

.resa_alert div { color:#5d4037 }

#resa_steps {
display:flex;
justify-content:space-between;
background:rgba(255, 255, 255, 0.9);
border-radius:12px;
margin:0 0 25px 0;
padding:12px 15px
}

.resa_step {
display:flex;
align-items:center;
gap:8px;
color:#aaa;
font-size:0.8rem;
cursor:default;
transition:all 0.3s
}

.resa_step span:first-child {
display:flex;
align-items:center;
justify-content:center;
width:28px;
height:28px;
background:#e0e0e0;
border-radius:50%;
font-weight:700;
font-size:0.75rem;
transition:all 0.3s
}

.resa_step.active {
color:var(--mainColorA, #302625);
font-weight:600
}

.resa_step.active span:first-child {
background:#ED8611;
color:white
}

.resa_step.done {
color:#ED8611;
cursor:pointer
}

.resa_step.done span:first-child {
background:#ED8611;
color:white
}

.resa_step.done:hover { opacity:0.8 }

@media(max-width:600px) {
	.resa_step span:last-child { display:none }
	
	#resa_steps { justify-content:center; gap:10px }
}

#resa_main {
background:rgba(255, 255, 255, 0.95);
border-radius:16px;
box-shadow:0 4px 20px rgba(0, 0, 0, 0.08);
min-height:300px;
padding:30px
}

.resa_section {
display:none
}

.resa_section.active {
display:block;
animation:resaFadeIn 0.3s ease
}

@keyframes resaFadeIn {
from { opacity:0; transform:translateY(10px) }
to { opacity:1; transform:translateY(0) }
}

.resa_section h2 {
display:flex;
align-items:center;
gap:10px;
color:var(--mainColorA, #302625);
font-size:1.2rem;
margin:0 0 8px 0
}

.resa_section h2 i {
color:#ED8611;
font-size:1rem
}

.resa_intro {
color:#666;
font-size:0.9rem;
margin:0 0 25px 0
}

.resa_note {
color:#888;
font-size:0.8rem;
margin:20px 0 0 0
}

.resa_note i { margin-right:5px }

#resa_participants_list {
display:flex;
flex-direction:column;
gap:12px;
margin-bottom:10px
}

.resa_participant {
display:flex;
align-items:center;
gap:15px;
background:#f8f9fa;
border:2px solid #e9ecef;
border-radius:10px;
transition:border-color 0.2s;
padding:15px
}

.resa_participant:hover { border-color:#dee2e6 }

.resa_participant.filled { border-color:#ED8611 }

.resa_participant_icon {
display:flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
background:#ED8611;
border-radius:50%;
color:white;
font-size:1rem;
flex-shrink:0
}

.resa_participant_label {
color:var(--mainColorA, #302625);
font-weight:600;
font-size:0.9rem;
min-width:120px
}

.resa_participant select {
flex:1;
max-width:350px;
background:white;
border:1px solid #ddd;
border-radius:6px;
font-size:0.9rem;
cursor:pointer;
padding:10px 12px
}

.resa_participant select:focus {
border-color:#ED8611;
outline:none;
box-shadow:0 0 0 3px rgba(237, 134, 17, 0.1)
}

.resa_participant_remove {
display:flex;
align-items:center;
justify-content:center;
width:32px;
height:32px;
background:#ffebee;
border:none;
border-radius:50%;
color:#e53935;
font-size:0.9rem;
cursor:pointer;
transition:all 0.2s
}

.resa_participant_remove:hover {
background:#e53935;
color:white
}

.resa_btn_add {
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
width:100%;
background:transparent;
border:2px dashed #ccc;
border-radius:10px;
color:#666;
font-size:0.9rem;
cursor:pointer;
transition:all 0.2s;
margin-top:10px;
padding:15px
}

.resa_btn_add:hover {
border-color:#ED8611;
color:#ED8611
}

.resa_btn_add:disabled {
opacity:0.5;
cursor:not-allowed
}

#resa_activites_list {
display:flex;
flex-direction:column;
gap:30px
}

.resa_activite_group {
border-bottom:1px solid #eee;
padding-bottom:25px
}

.resa_activite_group:last-child {
border-bottom:none;
padding-bottom:0
}

.resa_activite_group_title {
display:flex;
align-items:center;
gap:10px;
color:var(--mainColorA, #302625);
font-size:1rem;
font-weight:600;
margin:0 0 8px 0
}

.resa_activite_group_title i { color:#ED8611 }

.resa_activite_group_title span {
color:#888;
font-weight:400;
font-size:0.85rem
}

.resa_activite_subtitle {
color:#666;
font-size:0.85rem;
margin:0 0 15px 0
}

.resa_activite_card {
position:relative;
display:flex;
flex-direction:column;
background:white;
border:2px solid #e0e0e0;
border-radius:10px;
cursor:pointer;
overflow:hidden;
transition:all 0.2s
}

.resa_activite_card:hover {
border-color:#ED8611;
transform:translateY(-2px);
box-shadow:0 4px 12px rgba(0, 0, 0, 0.1)
}

.resa_activite_card.selected {
border-color:#ED8611;
box-shadow:0 0 0 3px rgba(237, 134, 17, 0.2)
}

.resa_activite_card.selected::after {
content:'\f00c';
font-family:'Font Awesome 7 Pro';
font-weight:900;
display:flex;
position:absolute;
align-items:center;
justify-content:center;
width:100%;
height:100%;
background:rgba(237, 134, 17, 0.85);
color:white;
font-size:2rem;
top:0;
left:0
}

.resa_activite_card img {
width:100%;
flex:1;
object-fit:cover
}

.resa_activite_card_name {
display:flex;
align-items:center;
justify-content:center;
min-height:calc(0.75rem * 1.4 * 2 + 16px);
background-color:#302625;
color:white;
font-size:0.75rem;
text-align:center;
line-height:1.4;
padding:8px 5px
}

.resa_activite_card.disabled {
opacity:0.4;
cursor:not-allowed
}

.resa_activite_card.disabled:hover {
border-color:#e0e0e0;
transform:none;
box-shadow:none
}

#resa_calendar {
background:white;
border:1px solid #e0e0e0;
border-radius:12px;
overflow:hidden;
max-width:500px;
margin:0 auto
}

.resa_calendar_header {
display:flex;
align-items:center;
justify-content:space-between;
background-color:#302625;
padding:15px 20px
}

.resa_calendar_header span {
color:white;
font-size:1rem;
font-weight:600;
text-transform:capitalize
}

.resa_calendar_header button {
display:flex;
align-items:center;
justify-content:center;
width:34px;
height:34px;
background:rgba(255, 255, 255, 0.15);
font-size:18px;
border:none;
border-radius:50%;
color:white;
cursor:pointer;
transition:background 0.2s
}

.resa_calendar_header button:hover { background:rgba(255, 255, 255, 0.25) }

.resa_calendar_header button:disabled {
opacity:0.3;
cursor:not-allowed
}

.resa_calendar_weekdays {
display:grid;
grid-template-columns:repeat(7, 1fr);
background:#f5f5f5;
border-bottom:1px solid #e0e0e0
}

.resa_calendar_weekdays span {
color:#666;
font-size:0.7rem;
font-weight:600;
text-align:center;
text-transform:uppercase;
padding:10px 0
}

#resa_cal_days {
display:grid;
grid-template-columns:repeat(7, 1fr);
gap:4px;
padding:10px
}

.resa_cal_day {
display:flex;
align-items:center;
justify-content:center;
aspect-ratio:1;
background:#f8f9fa;
border:2px solid transparent;
border-radius:8px;
color:#333;
font-size:0.85rem;
cursor:pointer;
transition:all 0.2s
}

.resa_cal_day:hover:not(.empty):not(.disabled):not(.past):not(.full) {
border-color:#ED8611;
transform:scale(1.05)
}

.resa_cal_day.empty {
background:transparent;
cursor:default
}

.resa_cal_day.past,
.resa_cal_day.disabled {
background:#f0f0f0;
color:#bbb;
cursor:not-allowed
}

.resa_cal_day.available { background:#e8f5e9; color:#2e7d32 }

.resa_cal_day.limited { background:#fff3e0; color:#e65100 }

.resa_cal_day.full {
background:#ffebee;
color:#c62828;
cursor:not-allowed
}

.resa_cal_day.selected {
background:#ED8611;
color:white;
font-weight:700
}

.resa_cal_day.today { box-shadow:inset 0 0 0 2px var(--mainColorA, #302625) }

.resa_calendar_legend {
display:flex;
justify-content:center;
gap:20px;
background:#f8f9fa;
border-top:1px solid #e0e0e0;
padding:12px
}

.resa_calendar_legend span {
display:flex;
align-items:center;
gap:6px;
color:#666;
font-size:0.75rem
}

.resa_dot {
width:24px;
height:24px;
border-radius:3px
}

.resa_dot.green { background:#4caf50 }
.resa_dot.red { background:#e53935 }

#resa_horaires_list {
display:flex;
flex-direction:column;
gap:25px
}

.resa_horaire_group {
background:#f8f9fa;
border-radius:10px;
padding:20px
}

.resa_horaire_group_title {
display:flex;
align-items:center;
gap:8px;
color:var(--mainColorA, #302625);
font-size:0.95rem;
font-weight:600;
margin:0 0 5px 0
}

.resa_horaire_group_title i { color:#ED8611 }

.resa_horaire_participants {
color:#888;
font-size:0.8rem;
margin:0 0 15px 0
}

.resa_horaire_slots {
display:flex;
flex-wrap:wrap;
gap:10px
}

.resa_slot {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
min-width:80px;
background:white;
border:2px solid #e0e0e0;
border-radius:8px;
cursor:pointer;
transition:all 0.2s;
padding:12px 15px
}

.resa_slot:hover:not(.disabled) {
border-color:#ED8611;
transform:translateY(-2px)
}

.resa_slot.selected {
background:#ED8611;
border-color:#ED8611;
color:white
}

.resa_slot.disabled {
background:#f5f5f5;
color:#bbb;
cursor:not-allowed
}

.resa_slot_time {
font-size:1rem;
font-weight:700
}

.resa_slot_info {
font-size:0.7rem;
opacity:0.8;
margin-top:3px
}

.resa_horaire_status {
display:flex;
align-items:center;
gap:6px;
font-size:0.85rem;
margin-top:12px
}

.resa_horaire_status.pending { color:#e65100 }
.resa_horaire_status.done { color:#2e7d32 }

#resa_copy_creneau {
text-align:center;
margin-top:20px
}

#resa_apply_same {
display:inline-flex;
align-items:center;
gap:8px;
background:#e3f2fd;
border:none;
border-radius:8px;
color:#1976d2;
font-size:0.85rem;
cursor:pointer;
transition:all 0.2s;
padding:12px 20px
}

#resa_apply_same:hover { background:#bbdefb }

.resa_recap_mini {
display:flex;
flex-wrap:wrap;
gap:15px;
background:#f0f4f8;
border-radius:8px;
margin:0 0 25px 0;
padding:15px
}

.resa_recap_mini_item {
display:flex;
align-items:center;
gap:8px;
font-size:0.85rem
}

.resa_recap_mini_item i {
color:#ED8611;
font-size:0.9rem
}

.resa_recap_mini_item strong { color:var(--mainColorA, #302625) }

#resa_summary {
background:#f8f9fa;
border-radius:10px;
margin:0 0 25px 0;
padding:20px
}

.resa_summary_row {
display:flex;
align-items:flex-start;
gap:15px;
border-bottom:1px solid #e9ecef;
padding:15px 0
}

.resa_summary_row:first-child { padding-top:0 }
.resa_summary_row:last-child { border-bottom:none; padding-bottom:0 }

.resa_summary_icon {
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
background:#ED8611;
border-radius:8px;
color:white;
font-size:0.9rem;
flex-shrink:0
}

.resa_summary_content { flex:1 }

.resa_summary_label {
display:block;
color:#888;
font-size:0.75rem;
text-transform:uppercase;
letter-spacing:0.5px;
margin-bottom:3px
}

.resa_summary_value {
color:var(--mainColorA, #302625);
font-size:0.95rem;
font-weight:600
}

.resa_summary_detail {
color:#666;
font-size:0.8rem;
font-weight:400;
margin-top:5px
}

#resa_auth {
background:#f8f9fa;
border-radius:10px;
margin:25px 0;
padding:20px
}

#resa_auth h3 {
display:flex;
align-items:center;
gap:10px;
color:var(--mainColorA, #302625);
font-size:1rem;
margin:0 0 15px 0
}

#resa_auth h3 i { color:#ED8611 }

.resa_auth_tabs {
display:flex;
gap:10px;
margin-bottom:20px
}

.resa_auth_tab {
flex:1;
background:white;
border:2px solid #e0e0e0;
border-radius:8px;
color:#666;
font-size:0.85rem;
font-weight:600;
cursor:pointer;
transition:all 0.2s;
padding:12px
}

.resa_auth_tab:hover { border-color:#bbb }

.resa_auth_tab.active {
background:#ED8611;
border-color:#ED8611;
color:white
}

.resa_auth_content {
display:none
}

.resa_auth_content.active { display:block }

.resa_forgot {
display:inline-block;
color:#ED8611;
text-decoration:none;
font-size:0.8rem;
margin-top:-10px
}

.resa_forgot:hover { text-decoration:underline }

.resa_connected {
display:flex;
align-items:center;
gap:12px;
background:#e8f5e9;
border-radius:10px;
color:#2e7d32;
font-size:0.9rem;
margin:25px 0;
padding:15px
}

.resa_connected i { font-size:1.2rem }

.resa_field { margin-bottom:15px }

.resa_field label {
display:block;
color:#555;
font-size:0.8rem;
font-weight:600;
margin-bottom:6px
}

.resa_field input,
.resa_field select,
.resa_field textarea {
width:100%;
background:white;
border:2px solid #e0e0e0;
border-radius:8px;
font-size:0.9rem;
box-sizing:border-box;
transition:border-color 0.2s;
padding:12px
}

.resa_field input:focus,
.resa_field select:focus,
.resa_field textarea:focus {
border-color:#ED8611;
outline:none
}

.resa_field textarea {
min-height:80px;
resize:vertical
}

.resa_row {
display:flex;
gap:15px;
margin-bottom:15px
}

.resa_row .resa_field {
flex:1;
margin-bottom:0
}

.resa_row .resa_field.small { flex:0.5 }
.resa_row .resa_field.large { flex:1.5 }

@media(max-width:600px) {
	.resa_row {
	flex-direction:column;
	gap:12px
	}
	
	.resa_row .resa_field.small,
	.resa_row .resa_field.large { flex:1 }
}

.resa_checkbox {
display:flex;
align-items:flex-start;
gap:12px;
cursor:pointer;
font-size:0.85rem;
line-height:1.5;
margin-top:20px
}

.resa_checkbox input { display:none }

.resa_checkbox .checkmark {
display:flex;
align-items:center;
justify-content:center;
width:22px;
height:22px;
background:white;
border:2px solid #ddd;
border-radius:4px;
flex-shrink:0;
transition:all 0.2s;
margin-top:1px
}

.resa_checkbox input:checked + .checkmark {
background:#ED8611;
border-color:#ED8611
}

.resa_checkbox input:checked + .checkmark::after {
content:'\f00c';
font-family:'Font Awesome 7 Pro';
font-weight:900;
color:white;
font-size:0.65rem
}

.resa_checkbox a {
color:#ED8611;
text-decoration:none
}

.resa_checkbox a:hover { text-decoration:underline }

.resa_success_box { text-align:center }

.resa_success_box > i {
font-size:4rem;
color:#4caf50;
margin-bottom:15px;
animation:resaSuccessPop 0.5s ease
}

@keyframes resaSuccessPop {
0% { transform:scale(0) }
50% { transform:scale(1.2) }
100% { transform:scale(1) }
}

.resa_success_box h2 {
color:#2e7d32;
font-size:1.4rem;
margin:0 0 10px 0
}

.resa_success_box > p {
color:#666;
font-size:0.95rem;
margin:0 0 25px 0
}

#resa_success_detail {
background:#f1f8e9;
border-radius:10px;
text-align:left;
margin:0 0 25px 0;
padding:20px
}

#resa_success_detail p {
display:flex;
align-items:center;
gap:10px;
color:#444;
font-size:0.9rem;
margin:0 0 8px 0
}

#resa_success_detail p:last-child { margin:0 }

#resa_success_detail i {
color:#ED8611;
width:18px
}

#resa_success_detail strong { color:var(--mainColorA, #302625) }

.resa_success_btns {
display:flex;
justify-content:center;
gap:15px;
flex-wrap:wrap
}

#resa_footer {
display:flex;
justify-content:space-between;
gap:15px;
margin-top:25px
}

.resa_btn {
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
min-width:130px;
border:none;
border-radius:10px;
font-size:0.9rem;
font-weight:600;
cursor:pointer;
text-decoration:none;
transition:all 0.2s;
padding:14px 24px
}

.resa_btn:hover { transform:translateY(-2px) }

.resa_btn.primary {
background-color:var(--orange);
color:white
}

.resa_btn.secondary {
background:#f5f5f5;
color:#666
}

.resa_btn.secondary:hover { background:#e8e8e8 }

.resa_btn.success {
background-color:#4caf50;
color:white
}

.resa_btn:disabled {
opacity:0.5;
cursor:not-allowed;
transform:none
}

@media(max-width:500px) {
	#resa_footer { flex-direction:column }
	
	.resa_btn { width:100% }
}

#resa_loader {
display:none;
position:fixed;
z-index:9999;
align-items:center;
justify-content:center;
width:100%;
height:100%;
background:rgba(255, 255, 255, 0.9);
top:0;
left:0
}

#resa_loader.active { display:flex }

.spinner {
width:50px;
height:50px;
border:4px solid #f0f0f0;
border-top-color:#ED8611;
border-radius:50%;
animation:spin 0.8s linear infinite
}

@keyframes spin {
	to { transform:rotate(360deg) }
}

@media(max-width:768px) {
	#resa_main { padding:20px 15px }
	
	.resa_participant {
	flex-wrap:wrap
	}
	
	.resa_participant_label { min-width:100% }
}

.resa_activite_grid {
display:grid;
grid-template-columns:repeat(5, 1fr);
gap:12px
}

@media(max-width:1024px) {
	.resa_activite_grid { grid-template-columns:repeat(4, 1fr) }
}

@media(max-width:768px) {
	.resa_activite_grid { grid-template-columns:repeat(3, 1fr) }
}

@media(max-width:480px) {
	.resa_activite_grid { grid-template-columns:repeat(2, 1fr) }
}

.resa_activite_card {
position:relative;
overflow:hidden
}

.resa_activite_overlay {
position:absolute;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
width:100%;
height:100%;
background:rgba(48, 38, 37, 0.88);
color:#fff;
text-align:center;
opacity:0;
top:0;
left:0;
transform:translateY(6px);
transition:opacity 0.22s ease, transform 0.22s ease;
padding:10px 8px;
pointer-events:none;
box-sizing:border-box
}

.resa_activite_card:hover .resa_activite_overlay {
opacity:1;
transform:translateY(0)
}

.resa_activite_card.selected .resa_activite_overlay { display:none }

.resa_activite_overlay strong {
font-size:0.8rem;
font-weight:700;
line-height:1.3;
color:#ED8611
}

.resa_activite_overlay p {
font-size:0.72rem;
line-height:1.4;
color:rgba(255,255,255,0.88);
margin:0;
overflow:hidden;
display:-webkit-box;
-webkit-line-clamp:3;
-webkit-box-orient:vertical
}

.resa_activite_overlay_age {
display:inline-flex;
align-items:center;
gap:4px;
background:rgba(237,134,17,0.25);
border-radius:20px;
font-size:0.68rem;
color:#ffd07a;
padding:3px 8px;
margin-top:2px
}

.resa_activite_overlay_age i { font-size:0.65rem }

.resa_copy_creneau_inline {
text-align:center;
margin:12px 0 0 0
}

.resa_copy_creneau_inline button {
display:inline-flex;
align-items:center;
gap:8px;
background:#e3f2fd;
border:none;
border-radius:8px;
color:#1976d2;
font-size:0.85rem;
cursor:pointer;
transition:background 0.2s;
padding:12px 20px
}

.resa_copy_creneau_inline button:hover { background:#bbdefb }

.resa_field label i.fa-gift { color:#ED8611; margin-right:4px }

.resa_field--pass { position:relative }

.resa_field--pass input { padding-right:40px }

.billetterie_eye, .resa_eye {
position:absolute;
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
font-size:18px;
background:none;
border:none;
color:#136f33;
cursor:pointer;
right:4px;
bottom:4px;
transition:color .2s
}

.resa_eye:hover { color:#136f33 }

/* ====================================================================== */
/* ======== OVERRIDE JUNGLE/FUN — coller en fin de fichier ============== */
/* ====================================================================== */

/* --- Logo + feuille déco --- */
#resa_wrap {
position:relative;
overflow:hidden
}

#resa_wrap::before {
content:'';
position:absolute;
display:block;
z-index:0;
width:280px;
height:280px;
background:url('/img/leafHeader_right_billetterie.png') no-repeat center/contain;
opacity:0.18;
top:-30px;
right:-40px;
pointer-events:none
}

#resa_logo {
display:flex;
align-items:center;
justify-content:center;
margin:0 0 18px 0
}

#resa_logo img {
height:52px;
width:auto
}

/* Tout le contenu au-dessus de la feuille */
#resa_steps,
#resa_main,
#resa_footer,
.resa_alert { position:relative; z-index:1 }

/* --- Steps --- */
#resa_steps {
background:var(--white);
border-radius:16px;
border:2px solid #e4edd6;
padding:14px 20px
}

.resa_step { font-size:0.88rem }

.resa_step span:first-child {
width:32px;
height:32px;
font-size:0.78rem;
background:#e4edd6;
color:#555
}

.resa_step.active {
color:#136f33;
font-weight:700
}

.resa_step.active span:first-child {
background:#136f33;
color:white
}

.resa_step.done { color:#6ca203 }

.resa_step.done span:first-child {
background:#6ca203;
color:white
}

/* --- Main panel --- */
#resa_main {
border-radius:20px;
border:2px solid #e4edd6;
box-shadow:none;
padding:34px
}

/* --- Titres d'étape --- */
.resa_section h2 {
font-size:1.5rem;
font-weight:800;
color:#136f33;
margin:0 0 6px 0
}

.resa_section h2 i { color:#6ca203 }

.resa_intro { font-size:0.95rem }

/* --- Participants --- */
.resa_participant {
background:var(--white);
border:2px solid #e4edd6;
border-radius:14px
}

.resa_participant.filled { border-color:#6ca203 }

.resa_participant_label {
font-size:1rem;
font-weight:700;
color:#136f33
}

.resa_participant_icon {
width:46px;
height:46px;
background:orange;
font-size:1.1rem
}

/* --- Boutons add/copy participant --- */
.resa_participant_btn {
border-radius:50px;
font-weight:700
}

/* --- Titre groupe activité --- */
.resa_activite_group_title {
font-size:1.1rem;
font-weight:800;
color:#136f33
}

.resa_activite_group_title i { color:#6ca203 }

/* --- Cartes activités --- */
.resa_activite_card {
border-radius:14px;
border:2px solid #e4edd6
}

.resa_activite_card:hover {
border-color:#6ca203;
transform:translateY(-4px)
}

.resa_activite_card.selected {
border-color:#ED8611;
box-shadow:0 0 0 3px rgba(237,134,17,0.25)
}

.resa_activite_card img { min-height:100px }

.resa_activite_card_name {
background:#136f33;
font-size:0.8rem;
font-weight:700;
letter-spacing:0.3px;
padding:9px 6px
}

/* --- Calendrier --- */
#resa_calendar {
border-radius:16px;
border:2px solid #e4edd6;
box-shadow:none;
max-width:520px
}

.resa_calendar_header { background:#136f33 }

.resa_calendar_header span { font-size:1.05rem; font-weight:700 }

.resa_cal_day { font-size:0.9rem; font-weight:600 }

.resa_cal_day.available { background:#4caf50; color:#fff }

.resa_cal_day.full { background:#e53935; color:#fff; cursor:not-allowed }

.resa_cal_day.limited { background:#fff3e0; color:#c4510a }

.resa_cal_day.selected { background:#ED8611; color:white }

/* --- Recap mini --- */
.resa_recap_mini {
background:#f0f7e6;
border:1px solid #d4e8b0;
border-radius:10px
}

.resa_recap_mini_item strong { color:#136f33 }

/* --- Horaires --- */
.resa_horaire_group {
border-radius:14px;
border:2px solid #e4edd6
}

.resa_horaire_group_title {
font-size:1rem;
font-weight:800;
color:#136f33
}

.resa_horaire_group_title i { color:#6ca203 }

.resa_slot {
border-radius:10px;
border:2px solid #e4edd6;
min-width:90px
}

.resa_slot:hover:not(.disabled) { border-color:#6ca203; transform:translateY(-3px) }

.resa_slot.selected { background:#ED8611; border-color:#ED8611 }

.resa_slot_time { font-size:1.1rem; font-weight:800 }

/* --- Summary --- */
#resa_summary {
border-radius:14px;
border:2px solid #e4edd6
}

.resa_summary_label {
font-size:0.72rem;
color:#6ca203;
font-weight:700;
letter-spacing:0.8px
}

.resa_summary_value { font-size:1rem; font-weight:700; color:#136f33 }

.resa_summary_icon { background:orange; border-radius:10px }

/* --- Auth --- */
#resa_auth {
background:#f0f7e6;
border:2px solid #d4e8b0;
border-radius:14px
}

#resa_auth h3 { font-size:1.05rem; font-weight:800; color:#136f33 }

.resa_auth_tab.active { background:#136f33; border-color:#136f33 }

/* --- Champ cadeau --- */
.resa_field label {
font-size:0.85rem;
font-weight:700;
color:#136f33
}

.resa_field input:focus,
.resa_field select:focus,
.resa_field textarea:focus { border-color:#6ca203 }

/* --- Connecté --- */
.resa_connected {
background:#f0f7e6;
border:2px solid #d4e8b0;
color:#136f33;
font-weight:600
}

/* --- Checkbox CGV --- */
.resa_checkbox input:checked + .checkmark { background:#136f33; border-color:#136f33 }

/* --- Boutons footer --- */
.resa_btn {
border-radius:50px;
font-size:0.95rem;
font-weight:800;
padding:16px 32px
}

.resa_btn.primary { background:#ED8611; color:white }

.resa_btn.primary:hover { background:#c4510a; transform:translateY(-2px) }

.resa_btn.success { background:#136f33; color:white }

.resa_btn.success:hover { background:#0e5227; transform:translateY(-2px) }

.resa_btn.secondary { background:#f0f0f0; color:#522827; font-weight:700 }

.resa_btn.secondary:hover { background:#e4e4e4; transform:translateY(-2px) }

/* --- Succès --- */
.resa_success_box > i { color:#6ca203; font-size:4.5rem }

.resa_success_box h2 { font-size:1.8rem; font-weight:900; color:#136f33 }

#resa_success_detail { background:#f0f7e6; border:2px solid #d4e8b0; border-radius:12px }

/* --- Alerte --- */
.resa_alert { border-left:5px solid #ED8611; font-size:0.88rem }

@media(max-width:768px) {
	#resa_main { padding:20px 16px }

	#resa_wrap::before { width:160px; height:160px; top:-10px; right:-20px }
}

.resa_cal_day.past,
.resa_cal_day.disabled { background:#e53935; color:#fff; cursor:not-allowed }

.resa_cal_day.full { background:#e53935; color:#fff; cursor:not-allowed }

.resa_cal_day.limited { background:#e53935; color:#fff; cursor:not-allowed }

/* ====================================================================== */
/* ======== CONNEXION / COMPTE ========================================== */
/* ====================================================================== */

.billetterie_wrapper { grid-template-columns:1fr 1fr auto }

.billetterie_card--compte {
display:flex;
flex-direction:column;
align-items:center;
width:clamp(260px, 22vw, 320px);
background:#fff;
border-radius:20px;
text-align:center;
overflow:hidden;
backface-visibility:hidden;
transform:translate3d(0,0,0);
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.4s ease;
padding:0
}

.billetterie_card--compte:hover {
box-shadow:0 20px 60px rgba(0,0,0,0.18);
transform:translateY(-8px)
}

.billetterie_header--compact {
position:relative;
display:flex;
align-items:center;
justify-content:center;
width:100%;
height:100px;
background:linear-gradient(135deg, #302625 0%, #4a3f3e 50%, #302625 100%);
overflow:hidden
}

.billetterie_header--compact::before {
content:'';
position:absolute;
width:200%;
height:200%;
background:radial-gradient(ellipse at 30% 50%, rgba(237,134,17,0.15) 0%, transparent 60%);
top:-50%;
left:-50%;
animation:billetterie_glow 6s ease-in-out infinite alternate
}

@keyframes billetterie_glow {
0% { transform:translate3d(0,0,0) }
100% { transform:translate3d(10%,5%,0) }
}

.billetterie_icon_wrap--compte {
position:relative;
width:70px;
height:70px;
background:linear-gradient(135deg, #ED8611 0%, #e67e00 100%);
border-radius:50%;
transform:none;
top:auto;
left:auto
}

.billetterie_icon_wrap--connected { background:linear-gradient(135deg, #4caf50 0%, #2e7d32 100%) }

.billetterie_card--compte .billetterie_icon {
font-size:28px;
color:rgba(255,255,255,0.95)
}

.billetterie_card--compte .billetterie_content {
display:flex;
flex-direction:column;
align-items:center;
flex:1;
width:100%;
padding:25px 20px
}

.billetterie_card--compte .billetterie_title {
color:var(--bordeaux);
font-weight:700;
line-height:1.2;
margin:0 0 4px
}

.billetterie_subtitle--compte {
color:#888;
font-weight:500;
text-transform:uppercase;
letter-spacing:0.8px;
margin:0 0 15px
}

.billetterie_separator--compte {
width:40px;
height:3px;
background:var(--orange);
border-radius:2px;
margin:0 0 20px
}

.billetterie_separator--connected {
background:#4caf50
}

.billetterie_field {
width:100%;
margin:0 0 10px
}

.billetterie_input_wrap {
position:relative;
display:flex;
align-items:center;
width:100%;
background:#f8f9fa;
border:2px solid #e9ecef;
border-radius:10px;
overflow:hidden;
transition:border-color 0.25s cubic-bezier(0.4,0,0.2,1), box-shadow 0.25s cubic-bezier(0.4,0,0.2,1)
}

.billetterie_input_wrap:focus-within {
border-color:#ED8611;
box-shadow:0 0 0 3px rgba(237,134,17,0.1)
}

.billetterie_input_wrap > i {
flex-shrink:0;
width:40px;
color:#aaa;
font-size:14px;
text-align:center;
transition:color 0.25s
}

.billetterie_input_wrap:focus-within > i { color:#ED8611 }

.billetterie_input_wrap input {
flex:1;
width:100%;
min-width:0;
background:transparent;
border:none;
font-size:14px;
color:#333;
outline:none;
padding:12px 12px 12px 0
}

.billetterie_input_wrap input::placeholder { color:#aaa }

.billetterie_toggle_pass {
position:absolute;
display:flex;
align-items:center;
justify-content:center;
width:36px;
height:100%;
background:none;
border:none;
color:#aaa;
font-size:14px;
cursor:pointer;
right:4px;
transition:color 0.2s
}

.billetterie_toggle_pass:hover { color:#ED8611 }

.billetterie_btn--compte {
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
width:100%;
background:linear-gradient(135deg, var(--bordeaux, #302625) 0%, #4a3f3e 100%);
border:none;
border-radius:50px;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
color:#fff;
cursor:pointer;
transition:transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
margin:5px 0 0;
padding:14px 24px
}

.billetterie_btn--compte:hover {
box-shadow:0 6px 25px rgba(48,38,37,0.4);
transform:translateY(-2px)
}

.billetterie_btn--forgot {
display:inline-flex;
align-items:center;
justify-content:center;
gap:10px;
width:100%;
background:linear-gradient(135deg, #ED8611 0%, #e67e00 100%);
border:none;
border-radius:50px;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
color:#fff;
cursor:pointer;
transition:transform 0.3s ease, box-shadow 0.3s ease;
margin:5px 0 0;
padding:14px 24px
}

.billetterie_btn--forgot:hover {
box-shadow:0 6px 25px rgba(237,134,17,0.4);
transform:translateY(-2px)
}

.billetterie_forgot_link {
display:inline-flex;
align-items:center;
gap:6px;
background:none;
border:none;
color:#ED8611;
cursor:pointer;
transition:color 0.2s;
margin:12px 0 0;
padding:0
}

.billetterie_forgot_link:hover { color:#cc6f00 }

.billetterie_forgot_panel {
display:none;
width:100%;
animation:billetterie_fadeSlide 0.35s cubic-bezier(0.4,0,0.2,1)
}

.billetterie_forgot_panel.active { display:block }

@keyframes billetterie_fadeSlide {
0% { opacity:0; transform:translateY(-8px) }
100% { opacity:1; transform:translateY(0) }
}

.billetterie_forgot_text {
color:#666;
line-height:1.5;
margin:0 0 12px
}

.billetterie_connected_name {
color:var(--bordeaux);
margin:0 0 12px
}

.billetterie_account_nav {
display:flex;
flex-direction:column;
gap:6px;
width:100%;
margin:0 0 15px
}

.billetterie_account_link {
display:flex;
align-items:center;
gap:10px;
width:100%;
background:#f8f9fa;
border:2px solid transparent;
border-radius:10px;
text-decoration:none;
color:var(--bordeaux, #302625);
font-weight:500;
transition:all 0.2s;
padding:10px 14px
}

.billetterie_account_link:hover {
background:#fff;
border-color:#ED8611
}

.billetterie_account_link i {
width:20px;
color:#ED8611;
font-size:14px;
text-align:center
}

.billetterie_login_loader {
display:inline-block;
width:18px;
height:18px;
border:2px solid rgba(255,255,255,0.3);
border-top-color:#fff;
border-radius:50%;
animation:spin 0.6s linear infinite
}

#billetterie_login_form {
transition:opacity 0.2s ease, transform 0.2s ease
}

@keyframes billetterie_shake {
0%, 100% { transform:translateX(0) }
20% { transform:translateX(-8px) }
40% { transform:translateX(8px) }
60% { transform:translateX(-4px) }
80% { transform:translateX(4px) }
}

.billetterie_reset_wrap {
display:flex;
align-items:center;
justify-content:center;
min-height:50vh;
padding:40px 20px
}

.billetterie_reset_card {
display:flex;
flex-direction:column;
align-items:center;
width:100%;
max-width:420px;
background:#fff;
border-radius:20px;
text-align:center;
padding:40px 30px
}

.billetterie_reset_icon {
display:flex;
align-items:center;
justify-content:center;
width:80px;
height:80px;
background:linear-gradient(135deg, #ED8611 0%, #e67e00 100%);
border-radius:50%;
font-size:36px;
color:#fff;
margin:0 0 20px
}

.billetterie_reset_title {
color:var(--bordeaux, #302625);
font-weight:700;
margin:0 0 8px
}

.billetterie_reset_desc {
color:#666;
line-height:1.5;
margin:0 0 25px
}

#billetterie_reset_form { width:100% }

#billetterie_reset_form .billetterie_field { margin:0 0 12px }

.billetterie_pass_strength {
display:flex;
align-items:center;
gap:10px;
margin:0 0 15px
}

.billetterie_strength_bar {
flex:1;
height:4px;
background:#e9ecef;
border-radius:2px;
overflow:hidden
}

#billetterie_strength_fill {
display:block;
width:0;
height:100%;
border-radius:2px;
transition:width 0.3s, background 0.3s
}

.billetterie_strength_label { color:#888 }

.billetterie_reset_success_icon {
font-size:64px;
color:#4caf50;
animation:resaSuccessPop 0.5s ease;
margin:0 0 15px
}

.billetterie_reset_success_text {
color:#333;
line-height:1.5;
margin:0 0 25px
}

.billetterie_card--compte:hover .billetterie_icon_wrap { transform:none }

.billetterie_wrapper { padding-top:25px }

.billetterie_card--compte .billetterie_icon_wrap {
position:relative;
width:70px;
height:70px;
top:auto;
left:auto;
transform:none
}

.billetterie_card--compte:hover .billetterie_icon_wrap { transform:none }

.billetterie_account_bottom {
display:flex;
flex-direction:column;
gap:0;
width:100%;
border-top:1px solid #eee;
margin:15px 0 0;
padding:15px 0 0
}

.billetterie_account_action {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
width:100%;
background:none;
border:none;
border-radius:8px;
color:#888;
cursor:pointer;
transition:all 0.2s;
padding:10px
}

.billetterie_account_action:hover {
background:#f5f5f5;
color:#555
}

.billetterie_account_action--danger:hover {
background:#fff5f5;
color:#e53935
}

@media(max-width:1100px) {
	.billetterie_wrapper {
	grid-template-columns:1fr 1fr;
	grid-template-rows:auto auto
	}

	.billetterie_card--compte {
	grid-column:1 / -1;
	width:100%;
	max-width:400px;
	justify-self:center
	}
}

@media(max-width:900px) {
	.billetterie_wrapper {
	grid-template-columns:1fr;
	gap:25px;
	padding:20px 15px
	}

	.billetterie_card--compte {
	width:100%;
	max-width:none
	}
}

@media(max-width:600px) {
	.billetterie_card--compte .billetterie_content { padding:20px 15px }

	.billetterie_reset_card { padding:30px 20px }

	.billetterie_btn--compte,
	.billetterie_btn--forgot {
	min-width:auto;
	width:100%;
	padding:12px 20px
	}
}

.resa_no_slots {
display:flex;
flex-direction:column;
align-items:center;
gap:6px;
width:100%;
background:#fff5f5;
border:1px solid #ffcdd2;
border-radius:12px;
text-align:center;
color:#c62828;
padding:30px 20px
}

.resa_no_slots i {
font-size:2rem;
opacity:0.6;
margin:0 0 5px
}

.resa_no_slots p:first-of-type {
font-size:1.05rem;
font-weight:600
}

.resa_no_slots p:last-of-type {
font-size:0.9rem;
color:#999
}

.resa_participant_actions {
display:flex;
gap:10px;
width:100%
}

.resa_participant_btn {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
width:50%;
background:none;
border:2px dashed #ddd;
border-radius:12px;
font-size:0.95rem;
color:#888;
cursor:pointer;
transition:all 0.2s;
padding:14px
}

.resa_participant_btn:hover {
border-color:#ED8611;
color:#ED8611
}

.resa_participant_btn:disabled {
opacity:0.4;
cursor:not-allowed
}

.resa_participant_btn--copy {
border-color:#e0e0e0;
background:#fafafa
}

.resa_participant_btn--copy:hover {
border-color:#ED8611;
background:#fff5e6
}

/* ====================================================================== */
/* ======== MES RÉSERVATIONS ============================================ */
/* ====================================================================== */

.mesresas_wrap {
max-width:860px;
margin:0 auto;
padding:20px 0 40px
}

.mesresas_page_header {
display:flex;
align-items:center;
gap:18px;
background:#fff;
border-radius:12px;
box-shadow:0 2px 12px rgba(0,0,0,0.07);
margin:0 0 28px 0;
padding:22px 25px
}

.mesresas_page_icon {
display:flex;
align-items:center;
justify-content:center;
width:54px;
height:54px;
background:linear-gradient(135deg, #ED8611, #c96e00);
border-radius:50%;
flex-shrink:0;
font-size:1.3rem;
color:#fff
}

.mesresas_page_header h2 {
font-size:1.1rem;
font-weight:700;
color:#302625;
margin:0 0 3px 0
}

.mesresas_page_header p {
font-size:0.82rem;
color:#999;
margin:0
}

.mesresas_section { margin:0 0 32px 0 }

.mesresas_section_title {
display:flex;
align-items:center;
gap:10px;
margin:0 0 16px 0
}

.mesresas_section_title h3 {
display:flex;
align-items:center;
gap:10px;
font-size:1rem;
font-weight:700;
color:#302625;
margin:0
}

.mesresas_section_dot {
width:10px;
height:10px;
border-radius:50%;
flex-shrink:0
}

.mesresas_section_dot--upcoming { background:#2e7d32 }

.mesresas_section_dot--past { background:#bbb }

.mesresas_count {
display:inline-flex;
align-items:center;
justify-content:center;
min-width:22px;
height:22px;
background:#ED8611;
border-radius:20px;
font-size:0.72rem;
font-weight:700;
color:#fff;
padding:0 6px
}

.mesresas_count--past { background:#bbb }

.mesresas_grid {
display:flex;
flex-direction:column;
gap:14px
}

.mesresas_card {
background:#fff;
border:2px solid #eee;
border-radius:14px;
box-shadow:0 2px 10px rgba(0,0,0,0.05);
overflow:hidden;
transition:box-shadow .2s, border-color .2s
}

.mesresas_card:hover {
box-shadow:0 4px 18px rgba(0,0,0,0.1);
border-color:#ddd
}

.mesresas_card--focus {
border-color:#ED8611;
box-shadow:0 2px 14px rgba(237,134,17,0.15)
}

.mesresas_card--past {
opacity:.7;
background:#fafafa
}

.mesresas_card_head {
display:flex;
align-items:flex-start;
justify-content:space-between;
flex-wrap:wrap;
gap:12px;
border-bottom:1px solid #f0f0f0;
padding:18px 20px 14px 20px
}

.mesresas_date_block {
display:flex;
align-items:center;
gap:13px
}

.mesresas_date_block > i {
font-size:1.4rem;
color:#ED8611;
flex-shrink:0
}

.mesresas_date_label {
display:block;
font-size:0.95rem;
font-weight:700;
color:#302625;
text-transform:capitalize
}

.mesresas_date_ref {
display:block;
font-size:0.75rem;
color:#bbb;
margin-top:2px
}

.mesresas_meta {
display:flex;
align-items:center;
flex-wrap:wrap;
gap:7px
}

.mesresas_badge {
display:inline-flex;
align-items:center;
gap:5px;
height:26px;
background:#f5f5f5;
border-radius:20px;
font-size:0.75rem;
font-weight:600;
color:#555;
padding:0 10px
}

.mesresas_badge i { font-size:0.7rem }

.mesresas_badge--participants { background:#fff3e0; color:#e65100 }

.mesresas_badge--heure { background:#e3f2fd; color:#1565c0 }

.mesresas_badge--focus { background:#fff8e1; color:#f57f17 }

.mesresas_activites {
display:flex;
flex-direction:column;
gap:8px;
list-style:none;
margin:0;
padding:14px 20px
}

.mesresas_activite {
display:flex;
align-items:center;
gap:10px;
font-size:0.88rem;
color:#333
}

.mesresas_activite i {
color:#2e7d32;
font-size:0.85rem;
flex-shrink:0
}

.mesresas_card--past .mesresas_activite i { color:#bbb }

.mesresas_activite em {
font-style:normal;
font-size:0.8rem;
color:#ED8611;
font-weight:700
}

.mesresas_observation {
display:flex;
align-items:flex-start;
gap:8px;
background:#fafafa;
border-top:1px solid #f0f0f0;
font-size:0.82rem;
color:#888;
font-style:italic;
margin:0;
padding:10px 20px
}

.mesresas_observation i { flex-shrink:0; margin-top:2px }

.mesresas_card_footer {
display:flex;
align-items:center;
border-top:1px solid #f0f0f0;
padding:12px 20px
}

.mesresas_btn {
display:inline-flex;
align-items:center;
gap:7px;
height:34px;
border:none;
border-radius:20px;
font-size:0.8rem;
font-weight:600;
cursor:pointer;
transition:opacity .2s, transform .15s;
padding:0 16px
}

.mesresas_btn:hover {
opacity:.85;
transform:translateY(-1px)
}

.mesresas_btn--cancel {
background:#fdecea;
color:#c62828
}

.mesresas_btn--cancel:hover { background:#ffcdd2 }

.mesresas_no_cancel {
display:flex;
align-items:center;
gap:6px;
font-size:0.78rem;
color:#bbb
}

.mesresas_no_cancel i { font-size:0.75rem }

.mesresas_empty {
display:flex;
flex-direction:column;
align-items:center;
gap:14px;
background:#fff;
border-radius:14px;
box-shadow:0 2px 12px rgba(0,0,0,0.06);
text-align:center;
color:#aaa;
font-size:0.95rem;
padding:50px 30px
}

.mesresas_empty i { font-size:2.5rem; color:#ddd }

.mesresas_btn_new {
display:inline-flex;
align-items:center;
gap:9px;
height:44px;
background:linear-gradient(135deg, #ED8611, #c96e00);
border-radius:50px;
font-size:0.88rem;
font-weight:700;
color:#fff;
text-decoration:none;
transition:opacity .2s, transform .15s;
padding:0 22px
}

.mesresas_btn_new:hover {
opacity:.9;
transform:translateY(-1px)
}

.mesresas_new_cta {
display:flex;
justify-content:center;
margin:8px 0 0 0
}

@media(max-width:600px) {
	.mesresas_card_head { flex-direction:column }

	.mesresas_meta { margin-top:0 }

	.mesresas_page_header { flex-direction:column; text-align:center }
}

/* ====================================================================== */
/* ======== ACHATS ====================================================== */
/* ====================================================================== */

.ab_catalogue_wrap {
display:flex;
align-items:flex-start;
gap:24px;
width:100%;
margin:60px 0 30px 0
}

.ab_card {
display:flex;
flex-direction:column;
overflow:hidden;
background:#fff;
border:2px solid #e8e8e8;
border-radius:12px;
transition:border-color .2s, transform .2s;
cursor:pointer
}

.ab_card_active { border-color:#e8630a }

.ab_card:hover { transform:translateY(-3px) }

.ab_card_img {
display:block;
width:100%;
aspect-ratio:16/9;
object-fit:cover
}

.ab_card_body {
flex:1;
padding:14px 14px 0
}

.ab_card_body h3 {
font-size:15px;
font-weight:700;
color:#1a3a1a;
margin:0 0 6px
}

.ab_card_age {
display:inline-block;
font-size:12px;
font-weight:600;
color:#2d7a2d;
background:#e8f5e9;
border-radius:20px;
margin-bottom:6px;
padding:2px 8px
}

.ab_card_desc {
font-size:13px;
color:#666;
margin:4px 0 0;
line-height:1.4
}

.ab_card_desc .validite_desc,
.validite_desc {
font-size:11px !important;
color:grey !important;
margin:10px 0 0 0;
padding:0
}

.ab_card_foot {
display:flex;
align-items:center;
justify-content:space-between;
padding:12px 14px;
margin-top:10px;
background:#f9f9f9;
border-top:1px solid #efefef
}

.ab_card_prix strong {
display:block;
font-size:17px;
font-weight:700;
color:#e8630a
}

.ab_card_prix small {
font-size:11px;
color:#999
}

.ab_qty {
display:flex;
align-items:center;
gap:8px
}

.ab_qminus,
.ab_qplus {
display:flex;
align-items:center;
justify-content:center;
width:28px;
height:28px;
background:#2d7a2d;
border:none;
border-radius:50%;
font-size:16px;
font-weight:700;
color:#fff;
cursor:pointer;
transition:background .15s;
line-height:1
}

.ab_qminus:hover,
.ab_qplus:hover { background:#1a5c1a }

.ab_qval {
display:inline-block;
width:22px;
text-align:center;
font-size:15px;
font-weight:700;
color:#1a3a1a
}

#ab_sidebar {
position:sticky;
top:20px;
width:280px;
flex-shrink:0;
background:#fff;
border:1px solid #ddd;
border-radius:14px;
overflow:hidden;
box-shadow:0 4px 20px rgba(0,0,0,.08)
}

.ab_sb_head {
display:flex;
align-items:center;
justify-content:space-between;
background:linear-gradient(135deg, #2d7a2d, #1a5c1a);
font-size:15px;
font-weight:700;
color:#fff;
padding:14px 16px
}

.ab_snb {
display:inline-flex;
align-items:center;
justify-content:center;
min-width:22px;
height:22px;
background:#e8630a;
border-radius:11px;
font-size:12px;
font-weight:700;
color:#fff;
padding:0 5px
}

.ab_sb_lines {
min-height:60px;
max-height:320px;
overflow-y:auto;
padding:12px 16px
}

.ab_sb_empty {
font-size:13px;
color:#aaa;
text-align:center;
margin:8px 0
}

.ab_sb_line {
display:flex;
align-items:center;
gap:8px;
font-size:13px;
color:#333;
padding:5px 0;
border-bottom:1px solid #f0f0f0
}

.ab_sb_titre { flex:1 }

.ab_sb_qty {
font-weight:600;
color:#2d7a2d
}

.ab_sb_sous {
font-weight:700;
color:#e8630a;
white-space:nowrap
}

.ab_sb_foot {
border-top:1px solid #eee;
padding:14px 16px
}

.ab_sb_total {
display:flex;
justify-content:space-between;
font-size:14px;
color:#333;
margin-bottom:12px
}

.ab_sb_total strong {
font-size:18px;
font-weight:700;
color:#e8630a
}

.ab_cta {
display:block;
width:100%;
background:#e8630a;
border:none;
border-radius:8px;
font-size:14px;
font-weight:700;
color:#fff;
text-align:center;
cursor:pointer;
transition:background .15s;
padding:12px 16px
}

.ab_cta:hover { background:#c4510a }

.ab_cta:disabled {
background:#ccc;
cursor:not-allowed
}

.ab_cta_green { background:#2d7a2d }

.ab_cta_green:hover { background:#1a5c1a }

.ab_btn_grey {
background:#888;
border:none;
border-radius:8px;
font-size:14px;
font-weight:600;
color:#fff;
cursor:pointer;
transition:background .15s;
padding:10px 20px
}

.ab_btn_grey:hover { background:#666 }

.ab_box {
background:#fff;
border-radius:14px;
box-shadow:0 4px 20px rgba(0,0,0,.07);
max-width:760px;
margin:30px auto;
padding:30px
}

#ab_s3 .ab_box {
width:100%;
max-width:100%
}

.ab_box h2 {
font-size:20px;
font-weight:700;
color:#1a3a1a;
margin:0 0 24px
}

#ab_footer {
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
background:#fff;
border-radius:12px;
box-shadow:0 -2px 16px rgba(0,0,0,.07);
max-width:760px;
margin:0 auto 30px;
padding:16px 24px
}

#ab_ftotal {
flex:1;
text-align:center;
font-size:15px;
color:#444
}

#ab_ftotal strong {
color:#e8630a;
font-size:18px
}

.ab_table {
width:100%;
border-collapse:collapse;
margin-bottom:20px;
font-size:14px
}

.ab_table th {
text-align:left;
font-weight:700;
color:#555;
border-bottom:2px solid #eee;
padding:8px 10px
}

.ab_table td {
color:#333;
border-bottom:1px solid #f0f0f0;
padding:10px
}

.ab_totaux {
border-top:2px solid #eee;
padding-top:16px;
margin-top:8px
}

.ab_tot_ligne {
display:flex;
justify-content:space-between;
font-size:14px;
color:#555;
margin-bottom:8px
}

.ab_tot_remise { color:#2d7a2d }

.ab_tot_final {
font-size:17px;
font-weight:700;
color:#1a3a1a;
border-top:1px solid #eee;
padding-top:12px;
margin-top:4px
}

.ab_tot_final strong { color:#e8630a }

.ab_promo_row {
display:flex;
gap:10px;
margin:16px 0 8px
}

.ab_promo_row input {
flex:1;
border:1px solid #ddd;
border-radius:8px;
font-size:14px;
padding:10px 14px
}

.ab_promo_row .ab_cta {
width:auto;
white-space:nowrap
}

.ab_ok { color:#2d7a2d; font-size:13px }

.ab_err { color:#c0392b; font-size:13px }

#ab_auth {
background:#f8f9fa;
border-radius:10px;
margin:25px 0;
padding:20px
}

#ab_auth h3 {
display:flex;
align-items:center;
gap:10px;
color:var(--mainColorA, #302625);
font-size:1rem;
margin:0 0 15px 0
}

#ab_auth h3 i { color:#ED8611 }

.ab_connected {
background:#e8f5e9;
border-radius:8px;
font-size:15px;
color:#2d7a2d;
margin-bottom:16px;
padding:12px 16px
}

.ab_cgv_label {
display:flex;
align-items:center;
gap:8px;
font-size:14px;
color:#555;
margin-top:16px;
cursor:pointer
}

.ab_recap_lines { margin-bottom:20px }

.ab_recap_line {
display:flex;
justify-content:space-between;
font-size:14px;
color:#555;
border-bottom:1px solid #f0f0f0;
padding:10px 0
}

.ab_secure {
display:flex;
align-items:center;
gap:12px;
background:#f0ece4;
border-radius:10px;
font-size:13px;
color:#555;
margin-top:20px;
padding:14px 18px
}

.ab_secure .fa-shield-halved { font-size:22px; color:#2d7a2d }

.ab_center { text-align:center }

.ab_ico_ok {
font-size:60px;
color:#2d7a2d;
margin:0 0 10px
}

.ab_ico_err {
font-size:60px;
color:#c0392b;
margin:0 0 10px
}

#ab_loader {
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(255,255,255,.7);
z-index:9999;
display:flex;
align-items:center;
justify-content:center
}

.ab_spinner {
width:40px;
height:40px;
border:4px solid #eee;
border-top-color:#e8630a;
border-radius:50%;
animation:abSpin .7s linear infinite
}

@keyframes abSpin { to { transform:rotate(360deg) } }

#ab_bar { display:none }

@media(max-width:900px) {
	.ab_catalogue_wrap { flex-direction:column }

	#ab_sidebar { display:none }

	#ab_bar {
	position:fixed;
	bottom:0;
	left:0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	width:100%;
	background:#fff;
	border-top:1px solid #ddd;
	box-shadow:0 -3px 12px rgba(0,0,0,.1);
	z-index:100;
	box-sizing:border-box;
	padding:12px 16px
	}

	#ab_bar .ab_cta { width:auto }

	.ab_bar_r {
	display:flex;
	align-items:center;
	gap:12px
	}

	#ab_bar_prix { font-size:16px; font-weight:700; color:#e8630a }

	.ab_wrap_content { padding-bottom:80px }
}

@media(max-width:600px) {
	.ab_row2 { flex-direction:column; gap:0 }

	.ab_box { margin:16px; padding:20px }

	#ab_footer { flex-wrap:wrap; padding:12px 16px }
}

.ab_catalogue {
display:flex;
flex-direction:column;
flex:1;
min-width:0
}

.ab_cat_title {
display:inline-flex;
align-items:center;
gap:10px;
font-size:clamp(20px, 2.5vw, 26px);
font-weight:900;
text-transform:uppercase;
letter-spacing:1px;
margin:0 0 16px;
padding-bottom:10px;
border-bottom:3px solid currentColor
}

.ab_cat_title::before {
content:'';
display:inline-block;
width:8px;
height:8px;
background:currentColor;
border-radius:50%;
flex-shrink:0
}

.ab_cat_group {
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:32px;
margin-bottom:62px
}

.ab_cat_group:last-child { margin-bottom:0 }

@media(max-width:1024px) {
	.ab_cat_group { grid-template-columns:repeat(2, 1fr) }
}

@media(max-width:600px) {
	.ab_cat_group { grid-template-columns:1fr }
}

.ab_nav {
display:flex;
align-items:center;
justify-content:space-between;
background:rgba(255,255,255,0.9);
border-radius:12px;
margin:0 0 25px 0;
padding:12px 15px
}

.ab_nav_step {
display:flex;
align-items:center;
gap:8px;
color:#aaa;
font-size:0.8rem;
cursor:default;
transition:all 0.3s;
white-space:nowrap
}

.ab_nav_step span {
display:inline-flex;
align-items:center;
justify-content:center;
width:28px;
height:28px;
background:#e0e0e0;
border-radius:50%;
font-size:0.75rem;
font-weight:700;
color:#aaa;
transition:all 0.3s
}

.ab_nav_step.active {
color:var(--mainColorA, #302625);
font-weight:600
}

.ab_nav_step.active span {
background:#ED8611;
color:#fff
}

.ab_nav_step.done {
color:#ED8611;
cursor:pointer
}

.ab_nav_step.done span {
background:#ED8611;
color:#fff
}

.ab_nav_step.done:hover { opacity:0.8 }

.ab_nav_sep {
flex:1;
height:2px;
background:#e0e0e0;
margin:0 6px;
min-width:12px
}

@media(max-width:600px) {
	.ab_nav {
	justify-content:center;
	gap:4px;
	padding:10px 12px
	}

	.ab_nav_step {
	gap:0;
	white-space:normal
	}

	.ab_nav_step > span:last-child { display:none }

	.ab_nav_sep { min-width:6px; margin:0 2px }
}

.ab_qty_edit {
display:inline-flex;
align-items:center;
gap:6px
}

.ab_qminus2,
.ab_qplus2 {
display:inline-flex;
align-items:center;
justify-content:center;
width:24px;
height:24px;
background:#2d7a2d;
border:none;
border-radius:50%;
font-size:14px;
font-weight:700;
color:#fff;
cursor:pointer;
line-height:1
}

.ab_qminus2:hover,
.ab_qplus2:hover { background:#1a5c1a }

.ab_qval2 {
min-width:20px;
text-align:center;
font-weight:700;
font-size:14px
}

.ab_del {
background:none;
border:none;
color:#c0392b;
font-size:16px;
cursor:pointer;
opacity:.6;
transition:opacity .15s;
padding:4px 6px
}

.ab_del:hover { opacity:1 }

#ab_bar {
display:none;
align-items:center;
justify-content:space-between;
gap:10px
}

.ab_bar_l {
display:flex;
align-items:center;
gap:6px;
font-size:13px;
color:#555;
white-space:nowrap
}

.ab_bar_l #ab_bar_nb { font-weight:600 }

.ab_bar_r {
display:flex;
align-items:center;
gap:10px;
flex:1;
justify-content:flex-end
}

.ab_bar_r #ab_bar_prix {
font-size:15px;
font-weight:700;
color:#e8630a;
white-space:nowrap
}

.ab_bar_r .ab_cta {
width:auto;
white-space:nowrap;
flex-shrink:0;
padding:10px 18px
}

@media(max-width:900px) {
	#ab_bar { display:flex }
}

#ab_footer .ab_cta,
#ab_footer .ab_btn_grey {
display:inline-flex;
align-items:center;
gap:6px;
width:auto;
white-space:nowrap;
flex-shrink:0
}

#ab_ftotal {
flex:1;
text-align:center;
font-size:14px;
font-weight:600;
color:#444;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis
}

.ab_success_wrap {
max-width:640px;
margin:30px auto
}

.ab_success_hero {
text-align:center;
background:linear-gradient(135deg, #2d7a2d, #1a5c1a);
border-radius:16px 16px 0 0;
padding:40px 30px 32px
}

.ab_success_icon {
font-size:60px;
color:#fff;
margin-bottom:14px
}

.ab_success_title {
font-size:26px;
font-weight:800;
color:#fff;
margin:0 0 8px
}

.ab_success_sub {
font-size:15px;
color:rgba(255,255,255,.8);
margin:0
}

.ab_success_body {
background:#fff;
border-radius:0 0 16px 16px;
box-shadow:0 8px 30px rgba(0,0,0,.1);
padding:30px
}

.ab_ok_lignes {
background:#f9f9f9;
border-radius:10px;
margin-bottom:20px;
overflow:hidden
}

.ab_ok_ligne {
display:flex;
justify-content:space-between;
font-size:14px;
color:#444;
border-bottom:1px solid #eee;
padding:10px 16px
}

.ab_ok_ligne strong { color:#333; font-weight:600 }

.ab_ok_total {
display:flex;
justify-content:space-between;
font-size:15px;
font-weight:700;
color:#1a3a1a;
background:#e8f5e9;
padding:12px 16px
}

.ab_ok_total strong { color:#2d7a2d; font-size:17px }

.ab_ok_ref {
text-align:center;
font-size:13px;
color:#888;
margin:0 0 20px
}

.ab_success_info {
display:flex;
flex-direction:column;
gap:12px;
margin-bottom:24px
}

.ab_success_info_item {
display:flex;
align-items:flex-start;
gap:14px;
background:#f0ece4;
border-radius:10px;
font-size:13px;
padding:14px 16px
}

.ab_success_info_item i {
font-size:20px;
color:#2d7a2d;
flex-shrink:0;
margin-top:2px
}

.ab_success_info_item strong {
display:block;
font-size:14px;
color:#333;
margin-bottom:3px
}

.ab_success_info_item span { color:#666 }

.ab_success_actions {
display:flex;
flex-direction:column;
gap:10px
}

.ab_success_btn {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
border-radius:10px;
font-size:14px;
font-weight:700;
text-decoration:none;
text-align:center;
padding:14px 20px;
transition:opacity .15s
}

.ab_success_btn:hover { opacity:.88 }

.ab_success_btn_main {
background:#e8630a;
color:#fff
}

.ab_success_btn_sec {
background:#2d7a2d;
color:#fff
}

.ab_success_btn_grey {
background:#eee;
color:#555
}

.ab_nav {
background:var(--white);
border:2px solid #e4edd6;
border-radius:16px;
box-shadow:none;
padding:14px 20px
}

.ab_nav_step { font-size:0.88rem }

.ab_nav_step span {
width:32px;
height:32px;
font-size:0.78rem;
background:#e4edd6;
color:#555
}

.ab_nav_step.active {
color:#136f33;
font-weight:700
}

.ab_nav_step.active span {
background:#136f33;
color:white
}

.ab_nav_step.done { color:#6ca203 }

.ab_nav_step.done span {
background:#6ca203;
color:white
}

.ab_nav_sep { background:#e0e0e0 }

.ab_catalogue_wrap { margin:50px 0 25px 0 }

.ab_card {
border:2px solid #e4edd6;
border-radius:14px
}

.ab_card:hover {
border-color:#6ca203;
transform:translateY(-4px)
}

.ab_card_active { border-color:#ED8611 }

.ab_card_body h3 {
color:#136f33;
font-size:14px;
font-weight:800
}

.ab_card_age {
color:#136f33;
background:#eaf3d8
}

.ab_card_foot { background:#f0f7e6; border-top:1px solid #e4edd6 }

.ab_card_prix strong { color:#ED8611; font-size:16px }

.ab_qminus,
.ab_qplus {
background:#136f33
}

.ab_qminus:hover,
.ab_qplus:hover { background:#0e5227 }

.ab_qval { color:#136f33 }

#ab_sidebar {
border:2px solid #e4edd6;
border-radius:16px;
box-shadow:none
}

.ab_sb_head { background:linear-gradient(135deg, #136f33, #0e5227) }

.ab_snb { background:#ED8611 }

.ab_sb_qty { color:#136f33 }

.ab_sb_sous { color:#ED8611 }

.ab_sb_total strong {
color:#ED8611;
font-size:17px
}

.ab_cta {
border-radius:50px;
font-size:0.95rem;
font-weight:800;
background:#ED8611;
padding:14px 28px
}

.ab_cta:hover { background:#c4510a }

.ab_cta:disabled { background:#ccc }

.ab_cta_green { background:#136f33 }

.ab_cta_green:hover { background:#0e5227 }

.ab_btn_grey {
border-radius:50px;
font-size:0.95rem;
font-weight:700;
background:#f0f0f0;
color:#522827
}

.ab_btn_grey:hover { background:#e4e4e4 }

.ab_box {
border-radius:20px;
border:2px solid #e4edd6;
box-shadow:none
}

.ab_box h2 {
color:#136f33;
font-size:1.3rem;
font-weight:800
}

#ab_footer {
background-color:var(--white);
border:2px solid #e4edd6;
border-radius:16px;
box-shadow:none
}

#ab_ftotal strong { color:#ED8611 }

.ab_tabs { border-bottom:2px solid #e4edd6 }

.ab_tab { font-size:0.9rem; font-weight:700; color:#888 }

.ab_tab.active {
color:#136f33;
border-bottom-color:#136f33
}

.ab_field label {
font-size:0.85rem;
font-weight:700;
color:#136f33
}

.ab_field input,
.ab_field select {
border:2px solid #e4edd6;
border-radius:8px;
font-size:0.9rem
}

.ab_field input:focus,
.ab_field select:focus {
border-color:#6ca203;
outline:none
}

.ab_promo_row input {
border:2px solid #e4edd6;
border-radius:8px
}

.ab_promo_row input:focus {
border-color:#6ca203;
outline:none
}

.ab_ok { color:#136f33 }

.ab_tot_remise { color:#136f33 }

.ab_tot_final strong { color:#ED8611 }

.ab_table th { color:#136f33 }

.ab_recap_line { color:#444 }

.ab_secure {
background:#f0f7e6;
border-radius:10px;
border:1px solid #d4e8b0;
font-size:0.85rem;
color:#444
}

.ab_spinner { border-top-color:#ED8611 }

#ab_bar {
background:#fff;
border-top:2px solid #e4edd6
}

#ab_bar_prix { color:#ED8611 }

.ab_success_hero { background:linear-gradient(135deg, #136f33, #0e5227)}

.ab_success_btn_main { background:#ED8611 }

.ab_success_btn_main:hover { background:#c4510a }

.ab_success_btn_sec { background:#136f33 }

.ab_success_btn_sec:hover { background:#0e5227 }

.ab_success_info_item { background:#f0f7e6 }

.ab_success_info_item i { color:#136f33 }

.ab_ok_total {
background:#eaf3d8;
color:#136f33
}

.ab_ok_total strong { color:#136f33 }

.ab_qminus2,
.ab_qplus2 { background:#136f33 }

.ab_qminus2:hover,
.ab_qplus2:hover { background:#0e5227 }

@media(max-width:600px) {
	.ab_box { border-radius:14px }

	.ab_row2 { flex-direction:column; gap:10px }
}

.ab_cadeau_row td {
background:#fffdf8;
border-bottom:2px solid #f0f7e6;
padding:6px 10px 12px
}

.ab_cadeau_label {
display:inline-flex;
align-items:center;
gap:6px;
font-size:12px;
font-weight:700;
color:#136f33;
margin-bottom:5px
}

.ab_cadeau_label i { font-size:13px; color:#ED8611 }

.ab_cadeau_input {
width:100%;
border:2px solid #e4edd6;
border-radius:8px;
font-size:13px;
color:#333;
box-sizing:border-box;
padding:8px 12px
}

.ab_cadeau_input:focus {
border-color:#6ca203;
outline:none
}
.ab_mentions {
display:flex;
flex-direction:column;
gap:5px;
background:#f8f9fa;
border-left:3px solid #ED8611;
border-radius:0 8px 8px 0;
font-size:0.78rem;
font-style:italic;
color:#777;
margin:70px 0 0;
padding:14px 18px
}

.ab_mentions p { margin:0 }

.ab_mentions_acces {
font-style:normal;
color:#555;
margin-top:8px !important
}

.ab_mentions_acces strong { color:var(--mainColorA, #302625) }

/* ====================================================================== */
/* ======== MES BILLETS ================================================= */
/* ====================================================================== */

.mbillets_wrap {
max-width:860px;
margin:0 auto;
padding:20px 0 40px
}

.mbillets_page_header {
display:flex;
align-items:center;
gap:18px;
background:#fff;
border-radius:12px;
box-shadow:0 2px 12px rgba(0,0,0,0.07);
margin:0 0 28px 0;
padding:22px 25px
}

.mbillets_page_icon {
display:flex;
align-items:center;
justify-content:center;
width:54px;
height:54px;
background:linear-gradient(135deg, #136f33, #0e5227);
border-radius:50%;
flex-shrink:0;
font-size:1.3rem;
color:#fff
}

.mbillets_page_header h2 {
font-size:1.1rem;
font-weight:700;
color:#302625;
margin:0 0 3px 0
}

.mbillets_page_header p {
font-size:0.82rem;
color:#999;
margin:0
}

.mbillets_empty {
display:flex;
flex-direction:column;
align-items:center;
gap:14px;
background:#fff;
border-radius:14px;
box-shadow:0 2px 12px rgba(0,0,0,0.06);
text-align:center;
color:#aaa;
font-size:0.95rem;
padding:50px 30px
}

.mbillets_empty i { font-size:2.5rem; color:#ddd }

.mbillets_commandes {
display:flex;
flex-direction:column;
gap:18px
}

.mbillets_cmd {
background:#fff;
border:2px solid #eee;
border-radius:14px;
box-shadow:0 2px 10px rgba(0,0,0,0.05);
overflow:hidden;
transition:box-shadow .2s, border-color .2s
}

.mbillets_cmd:hover {
box-shadow:0 4px 18px rgba(0,0,0,0.1);
border-color:#ddd
}

.mbillets_cmd--past {
opacity:.72;
background:#fafafa
}

.mbillets_cmd_head {
display:flex;
align-items:flex-start;
justify-content:space-between;
flex-wrap:wrap;
gap:12px;
border-bottom:1px solid #f0f0f0;
padding:18px 20px 14px 20px
}

.mbillets_cmd_date_block {
display:flex;
align-items:center;
gap:13px
}

.mbillets_cmd_date_block > i {
font-size:1.4rem;
color:#ED8611;
flex-shrink:0
}

.mbillets_cmd_ref {
display:block;
font-size:0.95rem;
font-weight:700;
color:#302625
}

.mbillets_cmd_date {
display:block;
font-size:0.75rem;
color:#bbb;
margin-top:2px
}

.mbillets_cmd_meta {
display:flex;
align-items:center;
flex-wrap:wrap;
gap:7px
}

.mbillets_badge {
display:inline-flex;
align-items:center;
gap:5px;
height:26px;
background:#f5f5f5;
border-radius:20px;
font-size:0.75rem;
font-weight:600;
color:#555;
padding:0 10px
}

.mbillets_badge i { font-size:0.7rem }

.mbillets_badge--ttc { background:#eaf3d8; color:#136f33 }

.mbillets_badge--promo { background:#fff3e0; color:#c4510a }

.mbillets_badge--nb { background:#e8f0fe; color:#1a56a0 }

.mbillets_badge--valid { background:#eaf3d8; color:#136f33 }

.mbillets_badge--used { background:#f5f5f5; color:#999 }

.mbillets_pending {
display:flex;
align-items:center;
gap:12px;
background:#fffbf0;
border-top:1px solid #f5e8c0;
font-size:0.85rem;
color:#a07800;
padding:16px 20px
}

.mbillets_pending i { font-size:1.1rem; flex-shrink:0 }

.mbillets_grid {
display:grid;
grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
gap:14px;
padding:16px 20px
}

.mbillets_card {
display:flex;
flex-direction:column;
background:#fff;
border:2px solid #e4edd6;
border-radius:12px;
overflow:hidden;
transition:border-color .2s, transform .2s
}

.mbillets_card:hover {
border-color:#6ca203;
transform:translateY(-2px)
}

.mbillets_card--used {
border-color:#eee;
opacity:.75
}

.mbillets_card--used:hover {
border-color:#ddd;
transform:none
}

.mbillets_card_top {
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:8px;
border-bottom:1px solid #f0f0f0;
padding:12px 14px 10px 14px
}

.mbillets_card_titre {
font-size:0.82rem;
font-weight:700;
color:#136f33;
line-height:1.3;
flex:1
}

.mbillets_card--used .mbillets_card_titre { color:#999 }

.mbillets_cadeau {
display:flex;
align-items:center;
gap:8px;
background:#fff8ee;
border-bottom:1px solid #f5e8c0;
font-size:0.78rem;
color:#a07800;
padding:8px 14px
}

.mbillets_cadeau i { color:#ED8611; flex-shrink:0 }

.mbillets_cadeau strong { color:#302625 }

.mbillets_card_body {
display:flex;
align-items:center;
gap:12px;
flex:1;
padding:14px
}

.mbillets_img {
flex-shrink:0;
border-radius:8px;
overflow:hidden
}

.mbillets_img img {
display:block;
width:110px;
height:74px;
object-fit:cover;
border-radius:8px
}

.mbillets_card--used .mbillets_img { filter:grayscale(1); opacity:.5 }

.mbillets_card_infos {
display:flex;
flex-direction:column;
gap:6px;
flex:1;
min-width:0
}

.mbillets_info_ref,
.mbillets_info_scan {
display:flex;
align-items:flex-start;
gap:6px;
font-size:0.75rem;
color:#888;
margin:0
}

.mbillets_info_ref i { color:#ccc; margin-top:2px; flex-shrink:0 }

.mbillets_info_ref span {
word-break:break-all;
font-family:monospace;
font-size:0.72rem;
color:#aaa
}

.mbillets_info_scan i { color:#6ca203; margin-top:2px; flex-shrink:0 }

.mbillets_info_scan span { color:#136f33; font-weight:600 }

.mbillets_dl {
display:flex;
align-items:center;
justify-content:center;
gap:7px;
height:40px;
background:linear-gradient(135deg, #136f33, #0e5227);
color:#fff;
font-size:0.8rem;
font-weight:700;
text-decoration:none;
transition:opacity .2s;
margin:0 14px 14px 14px;
border-radius:50px
}

.mbillets_dl:hover { opacity:.88 }

.mbillets_dl--grey {
background:#f0f0f0;
color:#888
}

.mbillets_progress_wrap {
display:flex;
align-items:center;
gap:12px;
background:#fafafa;
border-top:1px solid #f0f0f0;
font-size:0.75rem;
color:#bbb;
padding:10px 20px
}

.mbillets_progress {
flex:1;
height:5px;
background:#eee;
border-radius:3px;
overflow:hidden
}

.mbillets_progress_bar {
height:100%;
background:linear-gradient(90deg, #6ca203, #136f33);
border-radius:3px;
transition:width .4s ease
}

@media(max-width:600px) {
	.mbillets_cmd_head { flex-direction:column }

	.mbillets_cmd_meta { margin-top:0 }

	.mbillets_page_header { flex-direction:column; text-align:center }

	.mbillets_grid { grid-template-columns:1fr }

	.mbillets_card_body { flex-direction:column; align-items:flex-start }
}

@media(max-width:600px) {
	.ab_table { font-size:13px }

	.ab_table thead th:nth-child(3) { display:none }

	.ab_table td:nth-child(3) { display:none }

	.ab_table th,
	.ab_table td { padding:8px 5px }

	.ab_qty_edit { gap:4px }

	.ab_qminus2,
	.ab_qplus2 {
	width:28px;
	height:28px;
	font-size:15px
	}

	.ab_cadeau_row td { padding:6px 6px 10px }

	.ab_cadeau_label { font-size:11px }

	.ab_cadeau_input { font-size:12px }

	#ab_footer {
	position:fixed;
	bottom:0;
	left:0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	width:100%;
	border-radius:0;
	border-left:none;
	border-right:none;
	border-bottom:none;
	box-sizing:border-box;
	padding:10px 14px;
	z-index:101
	}

	#ab_ftotal {
	font-size:12px;
	flex:1;
	min-width:0
	}

	.ab_cta,
	.ab_btn_grey {
	font-size:0.82rem;
	padding:11px 16px
	}

	.ab_box { margin:0; padding:0; border:none }

	.ab_promo_row { flex-direction:column }

	.ab_promo_row input { width:100%; box-sizing:border-box }

	.ab_promo_row .ab_cta { width:100% }
}

.ab_pcards {
display:flex;
flex-direction:column;
gap:10px;
margin-bottom:16px
}

.ab_pcard {
display:flex;
flex-direction:column;
background:#fff;
border:2px solid #e4edd6;
border-radius:12px;
overflow:hidden
}

.ab_pcard_head {
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:10px;
padding:12px 14px 10px
}

.ab_pcard_titre {
font-size:0.9rem;
font-weight:700;
color:#136f33;
line-height:1.35;
flex:1
}

.ab_pcard_foot {
display:flex;
align-items:center;
gap:10px;
background:#f0f7e6;
border-top:1px solid #e4edd6;
padding:10px 14px
}

.ab_pcard_pu {
flex:1;
font-size:0.8rem;
color:#999;
text-align:center
}

.ab_pcard_sous {
font-size:1rem;
font-weight:800;
color:#ED8611;
white-space:nowrap
}

.ab_pcard_cadeau {
display:flex;
flex-direction:column;
gap:6px;
background:#fffdf8;
border-top:1px solid #f0f7e6;
padding:10px 14px
}

.ab_pcard .ab_del {
background:none;
border:none;
color:#bbb;
font-size:1rem;
cursor:pointer;
flex-shrink:0;
padding:2px 4px;
transition:color .15s
}

.ab_pcard .ab_del:hover { color:#c0392b }

#ab_footer {
position:fixed;
bottom:0;
left:0;
display:flex;
align-items:center;
gap:12px;
width:100%;
background:#fff;
border-top:2px solid #e4edd6;
box-shadow:0 -4px 20px rgba(0,0,0,.08);
box-sizing:border-box;
z-index:200;
padding:14px 24px
}

#ab_prev {
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
background:#f0f0f0;
border:none;
border-radius:50%;
font-size:1rem;
color:#555;
cursor:pointer;
flex-shrink:0;
transition:background .15s
}

#ab_prev:hover { background:#e0e0e0 }

#ab_ftotal {
flex:1;
text-align:center;
font-size:0.95rem;
font-weight:600;
color:#444;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis
}

#ab_ftotal strong { color:#ED8611 }

#ab_next {
display:inline-flex;
align-items:center;
gap:8px;
height:44px;
background:#ED8611;
border:none;
border-radius:50px;
font-size:0.9rem;
font-weight:800;
color:#fff;
cursor:pointer;
flex-shrink:0;
transition:background .15s;
padding:0 22px
}

#ab_next:hover { background:#c4510a }

#ab_pay {
display:inline-flex;
align-items:center;
gap:10px;
height:44px;
background:linear-gradient(135deg, #136f33, #0e5227);
border:none;
border-radius:50px;
font-size:0.9rem;
font-weight:800;
color:#fff;
cursor:pointer;
flex-shrink:0;
transition:opacity .15s;
padding:0 26px
}

#ab_pay:hover { opacity:.88 }

@media(max-width:600px) {
	#ab_footer { gap:8px; padding:10px 14px }

	#ab_prev {
	width:40px;
	height:40px;
	font-size:0.9rem
	}

	#ab_ftotal { font-size:0.82rem }

	#ab_next,
	#ab_pay { height:40px; font-size:0.82rem; padding:0 16px }
}

#ab_ftotal {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
flex:1;
overflow:hidden
}

.ab_ft_nb {
font-size:0.72rem;
font-weight:500;
color:#999;
line-height:1
}

.ab_ft_prix {
font-size:1rem;
font-weight:800;
color:#ED8611;
line-height:1;
margin-top:2px
}

#resa_steps {
display:flex;
align-items:center;
justify-content:center;
background:rgba(255,255,255,0.9);
border-radius:12px;
margin:0 0 25px 0;
padding:16px 12px
}

.resa_step {
display:flex;
flex-direction:column;
align-items:center;
gap:6px;
cursor:default;
flex-shrink:0
}

.resa_step_num {
display:flex;
align-items:center;
justify-content:center;
width:32px;
height:32px;
background:#e0e0e0;
border-radius:50%;
font-size:0.8rem;
font-weight:700;
color:#aaa;
transition:all 0.3s
}

.resa_step_label {
font-size:0.7rem;
font-weight:600;
color:#aaa;
white-space:nowrap;
transition:color 0.3s;
max-height:0;
overflow:hidden;
opacity:0;
transition:all 0.3s
}

.resa_step.active .resa_step_num {
background:#ED8611;
color:#fff;
width:36px;
height:36px;
font-size:0.85rem
}

.resa_step.active .resa_step_label {
max-height:20px;
opacity:1;
color:#ED8611;
font-weight:700
}

.resa_step.done .resa_step_num {
background:#6ca203;
color:#fff
}

.resa_step_sep {
flex:1;
height:2px;
background:#e0e0e0;
min-width:10px;
max-width:40px;
margin-bottom:20px;
transition:background 0.3s
}

.resa_step.done + .resa_step_sep,
.resa_step_sep:has(+ .resa_step.done) { background:#6ca203 }

@media(max-width:480px) {
	#resa_steps { padding:12px 8px }

	.resa_step_num { width:28px; height:28px; font-size:0.75rem }

	.resa_step.active .resa_step_num { width:32px; height:32px }

	.resa_step_sep { min-width:6px }
}

.resa_participant {
display:flex;
align-items:center;
gap:12px;
background:#f8f9fa;
border:2px solid #e9ecef;
border-radius:10px;
transition:border-color 0.2s;
padding:12px 14px
}

.resa_participant_label {
font-weight:700;
font-size:0.88rem;
color:var(--mainColorA, #302625);
white-space:nowrap;
min-width:0;
flex-shrink:0
}

.resa_participant select {
flex:1;
min-width:0;
background:white;
border:1px solid #ddd;
border-radius:6px;
font-size:0.88rem;
cursor:pointer;
padding:8px 10px
}

@media(max-width:600px) {
	.resa_participant { gap:8px; padding:10px 12px }

	.resa_participant_icon {
	width:32px;
	height:32px;
	font-size:0.85rem;
	flex-shrink:0
	}
}

.resa_participant_actions {
display:flex;
flex-direction:column;
gap:8px;
margin-top:12px
}

.resa_participant_btn {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
width:100%;
background:transparent;
border:2px dashed #ccc;
border-radius:10px;
color:#666;
font-size:0.88rem;
font-weight:600;
cursor:pointer;
transition:all 0.2s;
padding:12px
}

.resa_participant_btn:hover {
border-color:#ED8611;
color:#ED8611
}

.resa_participant_btn--copy {
border-color:#ddd;
color:#999
}

.resa_participant_btn--copy:hover {
border-color:#6ca203;
color:#6ca203
}

.resa_participant_btn:disabled {
opacity:0.4;
cursor:not-allowed
}

.resa_participant {
display:flex;
flex-direction:column;
gap:10px;
background:#f8f9fa;
border:2px solid #e9ecef;
border-radius:10px;
transition:border-color 0.2s;
padding:12px 14px
}

.resa_participant_top {
display:flex;
align-items:center;
gap:10px
}

.resa_participant_label {
font-weight:700;
font-size:0.88rem;
color:var(--mainColorA, #302625);
flex:1
}

.resa_participant select {
width:100%;
background:white;
border:1px solid #ddd;
border-radius:6px;
font-size:0.88rem;
cursor:pointer;
box-sizing:border-box;
padding:8px 10px
}

#resa_steps { align-items:flex-start }

.resa_step_sep {
margin-top:15px;
margin-bottom:0
}