*{
margin:0;
padding:0;
box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
}
h3{
margin-bottom: 2rem;
color:#000;

}





/* POPUP */

.contact-modal{

position:fixed;
top:0;
left:0;

width:100%;
height:100%;

background:rgba(0,0,0,0.65);

display:none;
align-items:center;
justify-content:center;

z-index:9999;

}


/* CARTE */

.contact-card{

background:white;

padding:20px 15px;

border-radius:16px;

text-align:center;

width:300px;

box-shadow:0 25px 60px rgba(0,0,0,0.35);

}


/* LOGO */

.contact-logo{

width:150px;
margin-bottom:20px;

}

.contact-address{
font-size:14px;
margin:15px 0;
color:#555;
}

.contact-address a{
text-decoration:none;
color:#555;
font-size:12px;
}

.contact-address a:hover{
color:#00c853;
}
/* TEL */

.contact-phone {
    font-size: 20px;
    font-weight: 600;
    margin: 10px 0;
    color: #656565;
}


/* EMAIL */

.contact-email{

font-size:15px;
color:#666;

margin-bottom:20px;

}


/* BOUTONS */

.contact-buttons{

display:flex;
flex-direction:column;
gap:10px;

}


/* BTN */

.contact-btn{

display:block;

padding:12px;

border-radius:30px;

text-decoration:none;

font-weight:600;

font-size:16px;

}


/* BTN APPEL */

.contact-btn.call{

background:#00c853;
color:white;

}


/* BTN MAIL */

.contact-btn.mail{

background:#2196f3;
color:white;

}


/* BOUTON FLOTTANT */

.call-float:hover{

transform:scale(1.1);

}





.mega-item span {
    color: #0a0a0a;
    text-shadow: 0 0 2px #ffffff;
}







.booking-ticket{

display:none;

background:#fff;
padding:30px;
border-radius:10px;

position:sticky;
top:140px;

height:fit-content;

}

.ticket-reserve-btn{

margin-top:25px;

width:100%;

background:#edec3d;

border:none;

padding:16px;

font-size:18px;

color:#000;

border-radius:8px;

cursor:pointer;

transition:.3s;

}

.ticket-reserve-btn:hover{

background:#edec3d;
transform:scale(1.03);

}

.no-booking{

text-align:center;

position:sticky;
top:140px;

}

.no-booking img{

max-width:480px;
opacity:.9;
position:fixed;
right:20px;

}

.booking-ticket{

display:none;

}

.booking-ticket {
    position: fixed;
    right: 74px;
    width: 30%;
    color:#000;
}

.ticket-logo{
position:absolute;
top:10px;
right:10px;
width:250px;
pointer-events:none;
}

.today-btn {
    margin-left: 68px;
    padding: 15px 39px;
    font-size: 16px;
    border: none;
    border-radius: 6px;
    background:#f8f740;
    cursor: point;
    margin-top: -2.6rem;
}

.today-btn:hover{
background:#f8f740;
}

.today-btn.active{
background:#f8f740;
color:white;
}

option:disabled{
color:#999;
}



.slider{
position:relative;
overflow:hidden;
border-radius:8px;
}

.slides{
position:relative;
}

.slide{
width:100%;
display:none;
cursor:pointer;
}

.slide.active{
display:block;
}

.bullets{
text-align:center;
margin-top:10px;
}

.bullet{
width:10px;
height:10px;
background:#ccc;
display:inline-block;
border-radius:50%;
margin:5px;
cursor:pointer;
}

.bullet.active{
background:#FFD400;
}


/* LIGHTBOX */

.lightbox{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.9);

display:flex;
align-items:center;
justify-content:center;

opacity:0;
visibility:hidden;

transition:opacity 0.35s ease;

z-index:9999;
}

.lightbox.active{
opacity:1;
visibility:visible;
}

.lightbox img{
max-width:90%;
max-height:90%;
transform:scale(0.9);
transition:transform 0.35s ease;
}

.lightbox.active img{
transform:scale(1);
}

.lightbox-arrow{
position:absolute;
top:50%;
transform:translateY(-50%);
font-size:50px;
color:white;
cursor:pointer;
padding:20px;
user-select:none;
}

.lightbox-arrow.prev{
left:30px;
}

.lightbox-arrow.next{
right:30px;
}

.lightbox-counter{
position:absolute;
top:30px;
left:50%;
transform:translateX(-50%);
color:white;
font-size:18px;
font-weight:500;
background:rgba(0,0,0,0.5);
padding:6px 12px;
border-radius:20px;
}
/* colonne texte */



/* titre */






/* description */



/* calendrier */

.calendar{

padding:12px;

font-size:16px;

border-radius:6px;

border:none;

margin-bottom:40px;

}

/* tableau */

.price-table{

width:100%;

border-collapse:collapse;

margin-bottom:40px;

background:#fff;
border-color:2px #fff;
border-radius:18px;

overflow:hidden;

}

.price-table th {
    background:#f8f740;
    padding: 14px;
    text-align: left;
    color: #000;
}



.price-table td{

padding:14px;

border-bottom:1px solid #333;
color:#000;

}

/* bouton reserver */

.reserve-btn{

background:#00c853;

border:none;

padding:16px 30px;

font-size:18px;

color:white;

border-radius:8px;

cursor:pointer;

transition:.3s;

}

.reserve-btn:hover{

background:#00a844;

transform:scale(1.05);

}

/* MOBILE */



/* mobile */



/* container date */

.booking-date{

display:flex;

align-items:center;

gap:12px;

margin-bottom:30px;

}

/* check vert */

.date-check{

color:#00c853!important;

font-size:22px;
    margin-top: -2rem;

display:none;

}

/* heure cachée au départ */

.time-container{

display:none;

margin-bottom:30px;

}
.ticket-reserve-btn.disabled{
opacity:0.5;
cursor:not-allowed;
pointer-events:none;
}
/* check vert */

.check{

color:#00c853!important;

font-size:20px;

display:none;
    margin-top: -2rem;

}

/* alignement */

.booking-date,
.booking-time{

display:flex;
align-items:center;
gap:10px;

margin-bottom:25px;

}

/* heure cachée au départ */

.time-container{

display:none;

}

.booking-people{
margin-bottom:8px;
}

.people-info {
    font-size: 13px;
    color: #000;
    margin-bottom: 26px;
    margin-top: -2.2rem;
    font-style: italic;
}

.ticket-line span{
color: #000 !important;
font-weight:500;
}

.ticket-total span {
  color:#000!important;
}
/* ================= MOBILE ================= */

@media(max-width:1000px){

.header{
height:80px;
padding:0 20px;
}

.nav-logo{
display:block;
}
/* burger */

.burger{
display:flex;
}

/* slide menu */

.nav{
position:fixed;
top:0;
left:0;
width:100%;
height:100vh;
background:rgba(0,0,0,0.92);

transform:translateX(100%);
transition:transform .35s ease;

overflow-y:auto;
padding-top:120px;
}

.nav.active{
transform:translateX(0);
}

/* menu vertical */

.nav ul{
flex-direction:column;
align-items:flex-start;
gap:35px;
padding-left:40px;
}

/* liens */

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


.social{
display:none;
}
  
  
.mega-menu{
position:static;
transform:none;
opacity:1;
visibility:visible;

display:none;
flex-direction:column;
align-items:center;
gap:20px;
padding-top:20px;
width:100%;
}





.preview {
    float: right;
    margin-top: -3rem!important;
}


.date-input-wrapper{
position:relative;
display:inline-block;
}

.clear-date{
position:absolute;
right:10px;

top: 28%;
transform:translateY(-50%);
font-size:14px;
cursor:pointer;
opacity:0.5;
display:none;
}

.clear-date:hover{
opacity:1;
}


span#ticketRestant {
    color: #fff !important;
}

span#ticketAcompte {
    color: #fff!important;
}









.footer-credit span {
    color: #fff !important;
}






.footer-payments{

display:flex;
align-items:center;
gap:10px;
margin-top:5px;

}

.footer-payments img{

height:22px;
filter:invert(1);
opacity:0.9;

}



.footer-payments span {
    font-size: 13px;
    opacity: 0.8;
    color: #fff !important;
}

@media (max-width:600px){

.footer-payments{

justify-content:center;
flex-wrap:wrap;

}

}

.legal-single-column{
width:900px;
margin:auto;
padding:60px 20px;
line-height:1.8;
font-size:16px;
}

.legal-single-column h1{
font-size:36px;
margin-bottom:20px;
}

.legal-single-column h2{
margin-top:35px;
font-size:24px;
}

.legal-single-column ul{
margin-left:20px;
}

.legal-update{
opacity:0.7;
margin-bottom:30px;
}

.cookie-banner{

position:fixed;
bottom:0;
left:0;
width:100%;
background:#0f172a;
color:white;
z-index:999999;
box-shadow:0 -8px 25px rgba(0,0,0,0.35);

}

.cookie-container{

max-width:1200px;
margin:auto;
padding:25px;
display:flex;
justify-content:space-between;
gap:40px;
flex-wrap:wrap;

}

.cookie-text{

max-width:700px;

}

.cookie-text p{

font-size:14px;
line-height:1.6;
color:#cbd5f5;

}

.cookie-links a{

color:#22c55e;
margin-right:15px;
font-size:13px;
text-decoration:none;

}

.cookie-actions{

display:flex;
gap:10px;
align-items:center;
flex-wrap:wrap;

}

.cookie-btn{

border:none;
padding:10px 16px;
border-radius:8px;
cursor:pointer;
font-weight:600;

}

.accept{

background:#22c55e;
color:white;

}

.reject{

background:#ef4444;
color:white;

}

.settings{

background:#334155;
color:white;

}

.save{

background:#22c55e;
color:white;
margin-top:15px;

}

.cookie-settings{

display:none;
max-width:1200px;
margin:auto;
padding:20px;
border-top:1px solid rgba(255,255,255,0.1);

}

.cookie-option{

display:block;
margin-top:12px;

}

.cookie-option span{

display:block;
font-size:12px;
color: #fff!important;

}

.today-btn {
    background: #0aa3b5;
    color: #fff;
    border: none;
    padding: 8px 14px;
    margin-left: 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.2s ease;
}

.today-btn:hover {
    background: #078999;
}

.today-btn:active {
    transform: scale(0.95);
}
/* OVERLAY */
.lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    background: rgba(0,0,0,0.9);

    display: none;
    align-items: center;
    justify-content: center;

    z-index: 9999;
}

/* CONTENU */
.lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90%;
}

/* IMAGE */
#lightboxImg {
    width: 100%;
    height: auto;
    max-height: 90vh;
    border-radius: 10px;
}

/* FLECHES */
.lightbox-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 40px;
    color: white;
    cursor: pointer;
    user-select: none;
    padding: 10px;
}

/* GAUCHE */
.lightbox-arrow.prev {
    left: -60px;
}

/* DROITE */
.lightbox-arrow.next {
    right: -60px;
}

/* COMPTEUR */
#lightboxCounter {
    position: absolute;
    bottom: -30px;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-size: 14px;
}

/* HOVER */
.lightbox-arrow:hover {
    opacity: 0.7;
}

}

.activity-features{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin:25px 0;
}

.feature-card{
    background:#fff;
    border-radius:12px;
    padding:15px;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
    font-weight:600;
}