#headerSlider_wrapper {
position:relative;
overflow:hidden;
height:100svh
}

#headerSlider_wrapper::before {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:6px;
background-color:var(--evenement2);
bottom:-3px;
left:0
}

#headerSlider,
#headerSlider .splide__track,
#headerSlider .splide__list,
#headerSlider .splide__slide { height:100% }

#headerSlider .splide__slide img {
width:100%;
height:100%;
object-fit:cover
}

.parallax_landscape {
position:absolute;
bottom:0;
left:0;
width:100%;
height:auto;
background-color:#126f34;
border-bottom:1px solid #126f34;
z-index:10;
pointer-events:none
}

.parallax_layer {
position:absolute;
bottom:0;
left:0;
width:100%;
height:auto;
opacity:0;
transform:translateY(60px);
animation:landscapeReveal 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
transition:opacity 0.3s ease, transform 0.3s ease
}

.parallax_back {
z-index:1;
animation-delay:0.2s
}

.parallax_front {
z-index:2;
animation-delay:0.4s
}

@keyframes landscapeReveal {
	to {
	opacity:1;
	transform:translateY(0)
	}
}

/* ====================================================================== */
/* ======== FLYING LEAFS ================================================ */
/* ====================================================================== */

.leaf_deco {
position:absolute;
background-size:contain;
opacity:0;
pointer-events:none;
z-index:9900;
will-change:transform
}

.leaf_deco.visible { animation:leafFloat 1s ease-out forwards }

.leaf_deco[data-zone="top-left"] {
top:clamp(-50px, -5vh, 0);
left:clamp(-100px, -8vw, -50px)
}

.leaf_deco[data-zone="top-right"] {
top:clamp(-50px, -5vh, 0);
right:clamp(-100px, -8vw, -50px)
}

.leaf_deco[data-zone="middle-left"] {
top:50%;
left:clamp(-80px, -6vw, -30px);
transform:translateY(-50%)
}

.leaf_deco[data-zone="middle-right"] {
top:50%;
right:clamp(-80px, -6vw, -30px);
transform:translateY(-50%)
}

.leaf_deco[data-zone="bottom-left"] {
bottom:clamp(-50px, -5vh, 0);
left:clamp(-100px, -8vw, -50px)
}

.leaf_deco[data-zone="bottom-right"] {
bottom:clamp(-50px, -5vh, 0);
right:clamp(-100px, -8vw, -50px)
}

.leaf_deco[data-size="small"] {
width:clamp(200px, 20vw, 300px);
height:auto
}

.leaf_deco[data-size="medium"] {
width:clamp(300px, 30vw, 400px);
height:auto
}

.leaf_deco[data-size="large"] {
width:clamp(400px, 40vw, 500px);
height:auto
}

.leaf_separator {
position:relative;
width:100%;
height:0;
overflow:visible;
z-index:12000;
pointer-events:none
}

.leaf_deco--separator {
position:absolute;
top:clamp(-150px, -12vh, -80px);
background-size:contain;
opacity:0;
pointer-events:none;
z-index:12000;
will-change:transform
}

.leaf_deco--separator.visible { animation:leafFloat 1s ease-out forwards }

.leaf_deco--separator[data-side="left"] { left:clamp(-100px, -8vw, -50px) }

.leaf_deco--separator[data-side="right"] { right:clamp(-100px, -8vw, -50px) }

.leaf_deco--separator[data-size="small"] {
width:clamp(200px, 20vw, 300px);
height:auto
}

.leaf_deco--separator[data-size="medium"] {
width:clamp(300px, 30vw, 400px);
height:auto
}

.leaf_deco--separator[data-size="large"] {
width:clamp(400px, 40vw, 500px);
height:auto
}

@keyframes leafFloat {
	0% {
	opacity:0;
	transform:translateY(30px) scale(0.95)
	}
	100% {
	opacity:0.85;
	transform:translateY(0) scale(1)
	}
}

@media(max-width:1200px) {
	.leaf_deco[data-size="large"],
	.leaf_deco--separator[data-size="large"] {
	width:clamp(250px, 30vw, 350px);
	height:clamp(250px, 30vw, 350px)
	}
}

@media(max-width:768px) {
	.leaf_deco,
	.leaf_separator { display:none }
}

/* ====================================================================== */
/* ======== SEPARATORS ================================================== */
/* ====================================================================== */

#separator_bienvenue {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

#separator_activite {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

#separator_groupe {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

#actualites_home::before {
content:'';
position:absolute;
z-index:12000;
width:100%;
height:6px;
background-color:var(--white);
bottom:-3px;
left:0
}

#separator_actualites {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

#separator_visite {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

/* ====================================================================== */
/* ======== ACTIVITES =================================================== */
/* ====================================================================== */

.activite_page {
width:100%;
margin:0 auto;
padding:40px 20px
}

.activite_title {
width:100%;
color:var(--bordeaux);
line-height:1.2;
margin:0 0 40px
}

.activite_content {
display:flex;
gap:50px;
width:100%
}

.activite_text {
flex:1;
min-width:0
}

.activite_media {
display:flex;
flex-direction:column;
align-self:flex-start;
gap:20px;
width:50%;
min-width:0
}

.activite_carousel {
width:100%;
height:500px;
border-radius:12px;
overflow:hidden
}

.activite_carousel .splide__track { height:100% }

.activite_carousel .splide__list { height:100% }

.activite_carousel .splide__slide {
height:100%;
overflow:hidden
}

.activite_carousel .splide__slide img {
width:100%;
height:100%;
object-fit:cover;
object-position:center
}

.activite_carousel .splide__arrow {
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
background:rgba(255,255,255,0.9);
border:none;
border-radius:50%;
opacity:1
}

.activite_carousel .splide__arrow svg {
width:20px;
height:20px;
fill:var(--bordeaux)
}

.activite_carousel .splide__arrow:hover { background:var(--white) }

@media(max-width:768px) {
	.activite_carousel { height:350px }

	.activite_carousel .splide__arrow {
	width:36px;
	height:36px
	}
}

@media(max-width:480px) {
	.activite_carousel { height:250px }
}

.activite_meta {
display:flex;
align-items:center;
gap:30px;
background:var(--white);
border-radius:8px;
padding:15px 25px
}

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

.activite_meta_icon {
display:flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
background:var(--meta);
border-radius:50%;
font-size:18px;
color:white
}

.activite_meta_data {
display:flex;
flex-direction:column;
gap:2px
}

.activite_meta_label { color:var(--bordeaux) }

.activite_meta_value { color:var(--bordeaux) }

.activite_extras {
display:flex;
align-items:flex-start;
gap:25px
}

.activite_video {
flex:1;
aspect-ratio:16/9;
min-width:0;
border-radius:12px;
overflow:hidden
}

.activite_video_full { width:100% }

.activite_video iframe {
width:100%;
height:100%;
border:none
}

.activite_label {
display:flex;
flex-direction:column;
align-items:flex-end;
gap:10px;
width:40%
}

.activite_label_solo { width:40% }

.activite_label img {
max-width:100%;
height:auto
}

@media(max-width:992px) {
	.activite_content {
	flex-direction:column;
	gap:30px
	}

	.activite_media { width:100% }

	.activite_title {
	font-size:clamp(28px, 5vw, 42px);
	margin:0 0 30px
	}
}

@media(max-width:768px) {
	.activite_page { padding:25px 15px }

	.activite_meta {
	flex-wrap:wrap;
	gap:20px;
	padding:15px 20px
	}

	.activite_extras {
	flex-direction:column;
	gap:20px
	}

	.activite_video,
	.activite_video_full { width:100% }

	.activite_label,
	.activite_label_solo {
	width:100%;
	align-items:center
	}
}

@media(max-width:480px) {
	.activite_meta {
	flex-direction:column;
	align-items:flex-start;
	gap:15px
	}

	.activite_carousel .splide__arrow {
	width:36px;
	height:36px
	}
}

.activite_meta {
display:flex;
flex-wrap:wrap;
align-items:center;
gap:30px;
background:var(--white);
border-radius:8px;
padding:15px 25px
}

@media(max-width:768px) {
	.activite_meta {
	gap:20px;
	padding:15px 20px
	}
	
	.activite_meta_item { width:calc(50% - 10px) }
}

@media(max-width:480px) {
	.activite_meta_item { width:100% }
}

/* ====================================================================== */
/* ======== FORMULES ==================================================== */
/* ====================================================================== */

.formule_page {
width:100%;
max-width:1200px;
margin:0 auto;
padding:40px 20px 0 20px
}

.formule_title {
width:100%;
color:var(--bordeaux);
line-height:1.2;
margin:0 0 40px
}

.formule_content {
display:flex;
gap:50px;
width:100%
}

.formule_text {
flex:1;
min-width:0
}

.formule_media {
position:sticky;
display:flex;
flex-direction:column;
gap:20px;
width:50%;
min-width:0;
top:20px
}

.formule_carousel {
width:100%;
height:500px;
border-radius:12px;
overflow:hidden
}

.formule_carousel .splide__track { height:100% }

.formule_carousel .splide__list { height:100% }

.formule_carousel .splide__slide {
height:100%;
overflow:hidden
}

.formule_carousel .splide__slide img {
width:100%;
height:100%;
object-fit:cover;
object-position:center
}

.formule_carousel .splide__arrow {
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
background:rgba(255,255,255,0.9);
border:none;
border-radius:50%;
opacity:1
}

.formule_carousel .splide__arrow svg {
width:20px;
height:20px;
fill:var(--bordeaux)
}

.formule_carousel .splide__arrow:hover { background:var(--white) }

@media(max-width:992px) {
	.formule_content {
	flex-direction:column;
	gap:30px
	}

	.formule_media {
	position:relative;
	width:100%;
	top:auto
	}

	.formule_title {
	font-size:clamp(28px, 5vw, 42px);
	margin:10px 0 25px
	}
}

@media(max-width:768px) {
	.formule_page { padding:25px 15px }

	.formule_carousel {	height:350px }

	.formule_carousel .splide__arrow {
	width:36px;
	height:36px
	}
}

@media(max-width:480px) {
	.formule_carousel { height:250px }
}

/* ====================================================================== */
/* ======== GROUPE ====================================================== */
/* ====================================================================== */

.groupe_wrapper {
display:grid;
grid-template-columns:repeat(4, 1fr);
gap:25px;
width:100%;
max-width:1400px;
margin:0 auto;
padding:10px
}

.groupe_card {
display:flex;
flex-direction:column;
border-radius:15px;
box-shadow:0 5px 15px rgba(0,0,0,0.15);
overflow:hidden;
backface-visibility:hidden;
transform:translate3d(0,0,0);
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

.groupe_card:hover { transform:translateY(-5px) }

.groupe_header {
position:relative;
height:200px
}

.groupe_img_wrap {
width:100%;
height:100%;
overflow:hidden;
margin:0 0 -1px 0
}

.groupe_img {
display:block;
width:100%;
height:100%;
object-fit:cover;
backface-visibility:hidden;
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.groupe_card:hover .groupe_img { transform:scale(1.05) }

.groupe_logo {
position:absolute;
z-index:1;
max-width:85%;
max-height:75%;
width:auto;
height:auto;
object-fit:contain;
filter:drop-shadow(0 2px 8px rgba(0,0,0,0.3));
top:50%;
left:50%;
transform:translate(-50%, -50%) rotate(0deg) scale(1);
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.groupe_card:hover .groupe_logo { transform:translate(-50%, -50%) rotate(-5deg) scale(0.92) }

.groupe_btn {
position:absolute;
z-index:2;
background-color:var(--bordeaux);
border-radius:50px;
font-weight:400;
color:#fff;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
white-space:nowrap;
bottom:-16px;
left:50%;
transform:translateX(-50%);
transition:background 0.3s;
padding:10px 22px
}

.groupe_btn:hover { background:#e67e00 }

.groupe_btn:focus {
outline:3px solid #fff;
outline-offset:2px
}

.groupe_content {
display:flex;
flex-direction:column;
align-items:center;
flex-grow:1;
text-align:center;
color:#fff;
padding:35px 20px 25px
}

.groupe_card--red .groupe_content { background-color:var(--construction) }

.groupe_card--orange .groupe_content { background-color:var(--green) }

.groupe_card--taupe .groupe_content { background-color:var(--cabanopee) }

.groupe_card--green .groupe_content { background-color:var(--domaineK) }

.groupe_card--evenement .groupe_content { background-color:var(--orange) }

.groupe_title {
font-weight:700;
text-transform:uppercase;
line-height:1.2 !important;
margin:0 0 12px 0
}

.groupe_desc {
font-weight:400;
line-height:1.5 !important;
opacity:0.95;
margin:0
}

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

@media(max-width:680px) {
	.groupe_wrapper {
	grid-template-columns:1fr;
	max-width:100%;
	padding:0
	}
	
	.groupe_header { height:260px }
	
	.groupe_content { padding:30px 20px 25px }
}

/* ====================================================================== */
/* ======== PACKS ======================================================= */
/* ====================================================================== */

.pack_wrapper {
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:25px;
width:100%;
max-width:1200px;
margin:0 auto;
padding:20px
}

.pack_card {
display:flex;
flex-direction:column;
flex:0 0 calc((100% - 75px) / 4);
border-radius:15px;
box-shadow:0 5px 15px rgba(0,0,0,0.15);
overflow:hidden;
backface-visibility:hidden;
transform:translate3d(0,0,0);
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

.pack_card:hover { transform:translateY(-5px) }

.pack_price {
background-color:var(--bordeaux);
text-align:center;
text-transform:uppercase;
letter-spacing:1px;
color:#fff;
padding:12px 15px
}

.pack_price--alt { background-color:var(--bordeaux) }

.pack_header {
position:relative;
aspect-ratio:4/3
}

.pack_img_wrap {
width:100%;
height:100%;
overflow:hidden;
margin:0 0 -1px 0
}

.pack_img {
display:block;
width:100%;
height:100%;
object-fit:cover;
backface-visibility:hidden;
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.pack_card:hover .pack_img { transform:scale(1.05) }

.pack_btn {
position:absolute;
z-index:2;
background-color:var(--bordeaux);
border-radius:50px;
color:#fff;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
white-space:nowrap;
bottom:-16px;
left:50%;
transform:translateX(-50%);
transition:background 0.3s;
padding:10px 22px
}

.pack_btn:hover { background-color:#e67e00 }

.pack_btn:focus {
outline:3px solid #fff;
outline-offset:2px
}

.pack_content {
display:flex;
align-items:center;
justify-content:center;
flex-grow:1;
min-height:70px;
background-color:var(--orange);
text-align:center;
color:#fff;
padding:30px 20px 20px
}

.pack_title {
text-transform:uppercase;
line-height:1.3 !important;
margin:0
}

@media(max-width:1280px) {
	.pack_card { flex:0 0 calc((100% - 25px) / 2) }
}

#autresActivites {
display:inline-block;
position:relative;
z-index:9000;
width:100%;
background-color:var(--white);
margin:0;
padding:0
}

#autresActivites .btnNormal { background-color:var(--activites) }
#autresActivites .btnNormal:hover { background-color:var(--lightGreenA) }

#autresPacks {
display:inline-block;
position:relative;
z-index:9000;
width:100%;
background-color:#fff;
margin:0 0 40px 0;
padding:0
}

#autresActivites .leaf_deco,
#autresPacks .leaf_deco { opacity:1.0 }

#separator_autres {
display:block;
position:absolute;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
top:0;
margin:0;
padding:0
}

#separator_footer {
display:block;
position:relative;
width:100%;
height:auto;
z-index:9000;
aspect-ratio:1920/40;
margin:0;
padding:0
}

/* ====================================================================== */
/* ======== AUTRES ACITVITES ============================================ */
/* ====================================================================== */

.autres_activites_wrapper {
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:25px;
width:100%;
max-width:1400px;
margin:0 auto;
padding:20px
}

.autres_activites_card {
display:flex;
flex-direction:column;
border-radius:15px;
box-shadow:0 5px 15px rgba(0,0,0,0.15);
overflow:hidden;
backface-visibility:hidden;
transform:translate3d(0,0,0);
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

.autres_activites_card:hover { transform:translateY(-5px) }

.autres_activites_header {
position:relative;
height:200px
}

.autres_activites_img_wrap {
width:100%;
height:100%;
overflow:hidden;
margin:0 0 -1px 0
}

.autres_activites_img {
display:block;
width:100%;
height:100%;
object-fit:cover;
backface-visibility:hidden;
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.autres_activites_card:hover .autres_activites_img { transform:scale(1.05) }

.autres_activites_btn {
position:absolute;
z-index:2;
background:#FF8C00;
border-radius:50px;
font-weight:700;
color:#fff;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
white-space:nowrap;
bottom:-16px;
left:50%;
transform:translateX(-50%);
transition:background 0.3s;
padding:10px 22px
}

.autres_activites_btn:hover { background:#e67e00 }

.autres_activites_btn:focus {
outline:3px solid #fff;
outline-offset:2px
}

.autres_activites_content {
display:flex;
flex-direction:column;
align-items:center;
flex-grow:1;
background-color:var(--bordeaux);
text-align:center;
color:#fff;
padding:35px 20px 25px
}

.autres_activites_title {
font-weight:700;
text-transform:uppercase;
line-height:1.2 !important;
margin:0 0 12px 0
}

.autres_activites_desc {
font-weight:400;
line-height:1.5 !important;
opacity:0.95;
margin:0
}

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

@media(max-width:680px) {
	.autres_activites_wrapper {
	grid-template-columns:1fr;
	max-width:100%;
	padding:0
	}
	
	.autres_activites_header { height:180px }
	
	.autres_activites_content { padding:30px 20px 25px }
}

/* ====================================================================== */
/* ======== BILLETTERIE - HUB =========================================== */
/* ====================================================================== */

.billetterie_section { background-color:var(--white) }

.billetterie_wrapper {
display:grid;
grid-template-columns:repeat(2, 1fr);
gap:clamp(25px, 4vw, 50px);
width:100%;
margin:0 auto;
padding:0 20px clamp(20px, 4vw, 40px)
}

.billetterie_card {
display:flex;
flex-direction:column;
align-items:center;
background:#fff;
border-radius:20px;
box-shadow:0 10px 40px rgba(0,0,0,0.12);
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:hover {
box-shadow:0 20px 60px rgba(0,0,0,0.18);
transform:translateY(-8px)
}

.billetterie_header {
position:relative;
width:100%;
height:clamp(180px, 22vw, 240px);
overflow:hidden
}

.billetterie_img_wrap {
width:100%;
height:100%;
overflow:hidden
}

.billetterie_img {
display:block;
width:100%;
height:100%;
object-fit:cover;
backface-visibility:hidden;
transition:transform 0.5s cubic-bezier(0.4, 0, 0.2, 1)
}

.billetterie_card:hover .billetterie_img { transform:scale(1.08) }

.billetterie_icon_wrap {
position:absolute;
display:flex;
align-items:center;
justify-content:center;
width:clamp(80px, 12vw, 110px);
height:clamp(80px, 12vw, 110px);
border-radius:50%;
box-shadow:0 8px 25px rgba(0,0,0,0.3);
top:50%;
left:50%;
transform:translate(-50%, -50%);
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.billetterie_card:hover .billetterie_icon_wrap { transform:translate(-50%, -50%) scale(1.1) rotate(-5deg) }

.billetterie_icon {
font-size:clamp(32px, 5vw, 48px);
color:rgba(255,255,255,0.95);
filter:drop-shadow(0 2px 4px rgba(0,0,0,0.2))
}

.billetterie_content {
display:flex;
flex-direction:column;
align-items:center;
flex:1;
width:100%;
padding:clamp(25px, 4vw, 40px) clamp(20px, 3vw, 35px)
}

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

.billetterie_subtitle {
color:var(--taupe);
font-weight:600;
text-transform:uppercase;
letter-spacing:1px;
margin:0 0 20px
}

.billetterie_card--achat .billetterie_subtitle { color:var(--orange) }

.billetterie_card--reservation .billetterie_subtitle { color:var(--darkGreen) }

.billetterie_separator {
width:60px;
height:3px;
border-radius:2px;
margin:0 0 20px
}

.billetterie_card--achat .billetterie_separator { background:var(--orange) }

.billetterie_card--reservation .billetterie_separator { background:var(--darkGreen) }

.billetterie_desc {
color:#555;
line-height:1.7;
margin:0 0 25px
}

.billetterie_avantages {
display:flex;
flex-direction:column;
gap:12px;
width:100%;
text-align:left;
list-style:none;
margin:0;
padding:0
}

.billetterie_avantage {
display:flex;
align-items:flex-start;
gap:12px;
color:#444;
line-height:1.5
}

.billetterie_avantage i {
flex-shrink:0;
width:20px;
height:20px;
border-radius:50%;
font-size:11px;
color:#fff;
line-height:20px;
text-align:center;
margin-top:2px
}

.billetterie_card--achat .billetterie_avantage i { background:var(--orange) }

.billetterie_card--reservation .billetterie_avantage i { background:var(--darkGreen) }

.billetterie_footer {
width:100%;
border-top:1px solid rgba(0,0,0,0.08);
padding:clamp(20px, 3vw, 30px)
}

.billetterie_btn {
display:inline-flex;
align-items:center;
justify-content:center;
gap:12px;
min-width:240px;
border:none;
border-radius:50px;
box-shadow:0 4px 15px rgba(0,0,0,0.2);
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;
padding:16px 32px
}

.billetterie_card--achat .billetterie_btn { background:linear-gradient(135deg, var(--orange) 0%, #e67e00 100%) }

.billetterie_card--reservation .billetterie_btn { background:linear-gradient(135deg, var(--darkGreen) 0%, #0d5a28 100%) }

.billetterie_btn:hover {
box-shadow:0 6px 25px rgba(0,0,0,0.3);
transform:translateY(-2px)
}

.billetterie_card--achat .billetterie_btn:hover { background:linear-gradient(135deg, #e67e00 0%, #cc6f00 100%) }

.billetterie_card--reservation .billetterie_btn:hover { background:linear-gradient(135deg, #0d5a28 0%, #084a1f 100%) }

.billetterie_btn:focus {
outline:3px solid #fff;
outline-offset:3px
}

.billetterie_btn i { font-size:18px }

.billetterie_help {
display:flex;
align-items:flex-start;
gap:20px;
width:100%;
max-width:900px;
background:linear-gradient(135deg, #f8f6f3 0%, #fff 100%);
border:2px dashed var(--taupe);
border-radius:16px;
margin:clamp(30px, 5vw, 50px) auto 0;
padding:clamp(20px, 3vw, 30px)
}

.billetterie_help_icon {
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
width:50px;
height:50px;
background:var(--bordeaux);
border-radius:50%;
font-size:24px;
color:#fff
}

.billetterie_help_content { flex:1 }

.billetterie_help_title {
color:var(--bordeaux);
margin:0 0 8px
}

.billetterie_help_text {
color:#555;
line-height:1.7;
margin:0
}

.billetterie_help_text strong { color:var(--bordeaux) }

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

@media(max-width:600px) {
	.billetterie_help {
	flex-direction:column;
	align-items:center;
	text-align:center
	}
	
	.billetterie_btn {
	min-width:auto;
	width:100%;
	padding:14px 24px
	}
	
	.billetterie_avantages { text-align:center }
	
	.billetterie_avantage { justify-content:center }
}

/* ====================================================================== */
/* ======== HORAIRES ================================================ */
/* ====================================================================== */

.horaires_intro {
font-size:1.1em;
margin-bottom:30px
}

.horaires_accordion { margin-bottom:25px }

.horaires_bloc {
background:#f8f8f8;
border-left:4px solid var(--darkGreen);
margin-bottom:10px;
overflow:hidden
}

.horaires_bloc--ete {
background:linear-gradient(135deg, #f0f7ed 0%, #e8f4e5 100%);
border-left-color:var(--orange)
}

.horaires_toggle {
display:flex;
align-items:center;
justify-content:space-between;
width:100%;
background:none;
border:none;
cursor:pointer;
text-align:left;
padding:18px 25px
}

.horaires_toggle:hover { background:rgba(0,0,0,0.03) }

.horaires_mois {
font-size:1.25em;
font-weight:600;
color:var(--darkGreen)
}

.horaires_icon {
color:var(--darkGreen);
font-size:0.9em;
transition:transform 0.3s ease
}

.horaires_bloc--open .horaires_icon { transform:rotate(180deg) }

.horaires_content {
max-height:0;
opacity:0;
transition:max-height 0.35s ease, opacity 0.25s ease, padding 0.35s ease;
padding:0 25px
}

.horaires_bloc--open .horaires_content {
max-height:300px;
opacity:1;
padding:0 25px 20px 25px
}

.horaires_info {
font-size:0.9em;
color:#666;
margin:0 0 10px 0
}

.horaires_liste {
list-style:none;
margin:0;
padding:0
}

.horaires_liste li {
border-bottom:1px dotted #ddd;
padding:8px 0
}

.horaires_liste li:last-child { border-bottom:none }

.horaires_encart {
background:#fff;
border:2px solid var(--darkGreen);
border-radius:8px;
margin:25px 0;
padding:20px 25px
}

.horaires_encart--vacances { border-color:var(--orange) }

.horaires_encart_titre {
font-size:1.1em;
color:var(--darkGreen);
margin:0 0 10px 0
}

.horaires_encart_titre span {
font-weight:normal;
font-size:0.85em;
color:#666
}

.horaires_vacances {
display:flex;
flex-wrap:wrap;
gap:15px 30px;
list-style:none;
margin:0;
padding:0
}

.horaires_note {
display:flex;
align-items:flex-start;
gap:10px;
background:#fff8e6;
border-radius:6px;
font-size:0.95em;
margin-top:30px;
padding:15px 20px
}

.horaires_note i {
color:var(--orange);
font-size:1.2em;
flex-shrink:0;
margin-top:2px
}

@media(max-width:768px) {
	.horaires_toggle { padding:15px 18px }
	
	.horaires_content { padding:0 18px }
	
	.horaires_bloc--open .horaires_content { padding:0 18px 15px 18px }
	
	.horaires_vacances {
	flex-direction:column;
	gap:8px
	}
}

/* ====================================================================== */
/* ======== TARIFS ====================================================== */
/* ====================================================================== */

.tarifs_infos { margin:30px 0 }

.tarifs_encart {
background:#f8f8f8;
border-radius:8px;
margin-bottom:20px;
padding:20px 25px
}

.tarifs_encart--accompagnement { border-left:4px solid var(--orange) }

.tarifs_encart--acces { border-left:4px solid var(--darkGreen) }

.tarifs_encart--inclus { border-left:4px solid #4a90d9 }

.tarifs_encart--conditions {
background:#fff8e6;
border-left:4px solid #d9a441
}

.tarifs_encart_titre {
display:flex;
align-items:center;
gap:10px;
font-size:1.1em;
color:var(--darkGreen);
margin:0 0 15px 0
}

.tarifs_encart_titre i { font-size:1em }

.tarifs_liste_asterisques {
list-style:none;
margin:0 0 15px 0;
padding:0
}

.tarifs_liste_asterisques li {
display:flex;
align-items:baseline;
gap:8px;
padding:6px 0;
border-bottom:1px dotted #ddd
}

.tarifs_liste_asterisques li:last-child { border-bottom:none }

.tarifs_asterisque {
display:inline-flex;
align-items:center;
justify-content:center;
min-width:24px;
height:24px;
background:var(--orange);
border-radius:50%;
font-size:0.75em;
font-weight:700;
color:#fff;
flex-shrink:0
}

.tarifs_note_small {
display:flex;
align-items:flex-start;
gap:10px;
background:#fff;
border-radius:6px;
font-size:0.9em;
color:#555;
margin:0;
padding:12px 15px
}

.tarifs_note_small i {
color:var(--darkGreen);
flex-shrink:0;
margin-top:2px
}

.tarifs_liste_acces {
list-style:none;
margin:0;
padding:0
}

.tarifs_liste_acces li {
display:flex;
align-items:center;
gap:12px;
padding:10px 0;
border-bottom:1px dotted #ddd
}

.tarifs_liste_acces li:last-child { border-bottom:none }

.tarifs_pastille {
display:inline-block;
width:16px;
height:16px;
border-radius:50%;
flex-shrink:0
}

.tarifs_pastille--jaune { background:#f4d03f }

.tarifs_pastille--violet { background:#9b59b6 }

.tarifs_pastille--vert { background:#27ae60 }

.tarifs_pastille--noir { background:#2c3e50 }

.tarifs_liste {
list-style:none;
margin:0;
padding:0
}

.tarifs_liste li {
position:relative;
padding:8px 0 8px 20px
}

.tarifs_liste li::before {
content:'✓';
position:absolute;
color:var(--darkGreen);
font-weight:700;
left:0
}

.tarifs_paiements {
background:#fff;
border:2px solid var(--darkGreen);
border-radius:8px;
margin-top:25px;
padding:20px 25px
}

.tarifs_paiements_liste {
display:flex;
flex-wrap:wrap;
gap:12px 25px;
list-style:none;
margin:0;
padding:0
}

.tarifs_paiements_liste li {
display:flex;
align-items:center;
gap:8px;
font-size:0.95em
}

.tarifs_paiements_liste i {
color:var(--darkGreen);
width:18px;
text-align:center
}

@media(max-width:768px) {
	.tarifs_encart { padding:15px 18px }
	
	.tarifs_paiements_liste {
	flex-direction:column;
	gap:10px
	}
}

/* ====================================================================== */
/* ======== ACCES ======================================================= */
/* ====================================================================== */

.acces_map {
background:#fff;
border:2px solid var(--darkGreen);
border-radius:12px;
overflow:hidden;
box-shadow:0 4px 20px rgba(0,0,0,0.1);
margin:30px 0
}

.acces_map_header {
display:flex;
align-items:center;
gap:10px;
background:var(--darkGreen);
font-size:0.95em;
font-weight:600;
color:#fff;
padding:12px 20px
}

.acces_map_header i { font-size:1.1em }

.acces_map_container {
position:relative;
width:100%;
height:0;
padding-bottom:40%
}

.acces_map_container iframe {
position:absolute;
width:100%;
height:100%;
border:none;
top:0;
left:0
}

.acces_map_footer {
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:15px;
background:#f8f8f8;
border-top:1px solid #eee;
padding:15px 20px
}

.acces_map_btn {
display:inline-flex;
align-items:center;
gap:8px;
background:var(--orange);
border-radius:6px;
font-size:14px !important;
font-weight:600;
color:#fff;
text-decoration:none;
padding:10px 20px;
transition:background 0.2s ease
}

.acces_map_btn:hover { background:var(--darkGreen) }

.acces_map_link {
display:inline-flex;
align-items:center;
gap:6px;
font-size:14px !important;
color:var(--darkGreen);
text-decoration:none;
transition:color 0.2s ease
}

.acces_map_link:hover {
color:var(--orange);
text-decoration:underline
}

#block47 img {
width:50% !important;
margin:0 25% !important
}

@media(max-width:768px) {
	.acces_map_container { padding-bottom:60% }
	
	.acces_map_footer {
	flex-direction:column;
	align-items:stretch;
	text-align:center
	}
	
	.acces_map_btn { justify-content:center }
	
	.acces_map_link { justify-content:center }
}

/* ====================================================================== */
/* ======== REALISATIONS ================================================ */
/* ====================================================================== */

.real_section {
width:100%;
margin:25px auto 0;
padding:0 0 40px 0
}

/* HEADER */

.real_header {
text-align:center;
margin:0 0 50px 0
}

.real_title {
color:var(--cabanopeeA, #302625);
font-size:clamp(1.8rem, 4vw, 2.5rem);
font-weight:700;
margin:0 0 15px 0
}

.real_subtitle {
color:#666;
font-size:1rem;
line-height:1.6;
max-width:600px;
margin:0 auto
}

/* GRID */

.real_grid {
display:grid;
grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
gap:30px
}

/* CARD */

.real_card {
background:white;
border-radius:16px;
box-shadow:0 4px 20px rgba(0, 0, 0, 0.08);
cursor:pointer;
overflow:hidden;
transition:transform 0.3s ease, box-shadow 0.3s ease
}

.real_card:hover {
box-shadow:0 12px 40px rgba(0, 0, 0, 0.15);
transform:translateY(-8px)
}

.real_card_img {
position:relative;
width:100%;
height:220px;
overflow:hidden
}

.real_card_img img {
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.5s ease
}

.real_card:hover .real_card_img img {
transform:scale(1.08)
}

.real_card_overlay {
display:flex;
position:absolute;
align-items:center;
justify-content:space-between;
width:100%;
background:linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);
opacity:0;
bottom:0;
left:0;
transition:opacity 0.3s ease;
padding:40px 20px 15px 20px
}

.real_card:hover .real_card_overlay {
opacity:1
}

.real_card_count,
.real_card_view {
display:flex;
align-items:center;
gap:6px;
color:white;
font-size:0.85rem
}

.real_card_view {
background:var(--subColorA, #ED8611);
border-radius:20px;
font-weight:600;
padding:6px 14px
}

.real_card_content {
padding:20px
}

.real_card_title {
color:var(--cabanopeeA, #302625);
font-size:1.15rem;
font-weight:600;
line-height:1.3;
margin:0 0 8px 0
}

.real_card_desc {
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
color:#666;
font-size:0.9rem;
line-height:1.5;
margin:0
}

/* EMPTY */

.real_empty {
display:flex;
flex-direction:column;
align-items:center;
gap:15px;
color:#999;
font-size:1rem;
text-align:center;
padding:60px 20px
}

.real_empty i {
font-size:3rem;
opacity:0.5
}

/* MODAL */

.real_modal {
display:none;
position:fixed;
z-index:15000;
flex-direction:column;
width:100%;
height:100%;
background:rgba(0, 0, 0, 0.95);
top:0;
left:0
}

.real_modal.active {
display:flex
}

.real_modal_header {
display:flex;
align-items:center;
justify-content:space-between;
flex-shrink:0;
z-index:15000;
padding:15px 20px
}

.real_modal_header h3 {
color:white;
font-size:1.1rem;
font-weight:600;
margin:0
}

.real_modal_close {
display:flex;
align-items:center;
justify-content:center;
width:44px;
height:44px;
background:rgba(255, 255, 255, 0.1);
border:none;
border-radius:50%;
color:white;
font-size:1.2rem;
cursor:pointer;
transition:background 0.2s
}

.real_modal_close:hover {
background:rgba(255, 255, 255, 0.2)
}

.real_modal_body {
display:flex;
position:relative;
align-items:center;
justify-content:center;
flex:1;
z-index:15000;
min-height:0;
padding:0 60px
}

.real_modal_img_wrap {
display:flex;
position:relative;
align-items:center;
justify-content:center;
max-width:100%;
max-height:100%
}

.real_modal_img_wrap img {
max-width:100%;
max-height:calc(100vh - 250px);
border-radius:8px;
object-fit:contain
}

.real_modal_loader {
display:none;
position:absolute;
align-items:center;
justify-content:center
}

.real_modal_loader.active {
display:flex
}

.real_modal_loader .spinner {
width:40px;
height:40px;
border:3px solid rgba(255, 255, 255, 0.2);
border-top-color:white;
border-radius:50%;
animation:spin 0.8s linear infinite
}

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

.real_modal_nav {
display:flex;
position:absolute;
align-items:center;
justify-content:center;
z-index:15000;
width:50px;
height:50px;
background:rgba(255, 255, 255, 0.1);
border:none;
border-radius:50%;
color:white;
font-size:1.2rem;
cursor:pointer;
transition:all 0.2s
}

.real_modal_nav:hover {
background:var(--subColorA, #ED8611)
}

.real_modal_nav.prev { left:15px }

.real_modal_nav.next { right:15px }

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

.real_modal_footer {
display:flex;
align-items:center;
justify-content:center;
gap:20px;
flex-shrink:0;
z-index:15000;
padding:15px 20px
}

.real_modal_footer p {
color:rgba(255, 255, 255, 0.8);
font-size:0.9rem;
text-align:center;
margin:0
}

#real_modal_counter {
background:rgba(255, 255, 255, 0.15);
border-radius:20px;
color:white;
font-size:0.8rem;
white-space:nowrap;
padding:5px 12px
}

/* THUMBS */

.real_modal_thumbs {
display:flex;
justify-content:center;
gap:8px;
flex-shrink:0;
overflow-x:auto;
padding:10px 20px 20px 20px
}

.real_modal_thumbs::-webkit-scrollbar {
height:6px
}

.real_modal_thumbs::-webkit-scrollbar-track {
background:rgba(255, 255, 255, 0.1);
border-radius:3px
}

.real_modal_thumbs::-webkit-scrollbar-thumb {
background:rgba(255, 255, 255, 0.3);
border-radius:3px
}

.real_thumb {
width:60px;
height:45px;
border:2px solid transparent;
border-radius:6px;
opacity:0.5;
cursor:pointer;
overflow:hidden;
flex-shrink:0;
transition:all 0.2s
}

.real_thumb:hover {
opacity:0.8
}

.real_thumb.active {
border-color:var(--subColorA, #ED8611);
opacity:1
}

.real_thumb img {
width:100%;
height:100%;
object-fit:cover
}

/* RESPONSIVE */

@media(max-width:768px) {
	.real_grid {
	grid-template-columns:1fr
	}
	
	.real_card_img { height:200px }
	
	.real_modal_body { padding:0 50px }
	
	.real_modal_nav {
	width:40px;
	height:40px;
	font-size:1rem
	}
	
	.real_modal_nav.prev { left:5px }
	.real_modal_nav.next { right:5px }
	
	.real_thumb {
	width:50px;
	height:38px
	}
}

@media(max-width:480px) {
	.real_section { padding:30px 15px }
	
	.real_header { margin:0 0 30px 0 }
	
	.real_grid { gap:20px }
	
	.real_modal_thumbs { display:none }
	
	.real_modal_img_wrap img {
	max-height:calc(100vh - 180px)
	}
}

/* ====================================================================== */
/* ======== CABANOPEE =================================================== */
/* ====================================================================== */

.cabanopee_wrapper {
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:25px;
width:100%;
max-width:1400px;
margin:0 auto;
padding:10px
}

.cabanopee_card {
display:flex;
flex-direction:column;
border-radius:15px;
box-shadow:0 5px 15px rgba(0,0,0,0.15);
overflow:hidden;
backface-visibility:hidden;
transform:translate3d(0,0,0);
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

.cabanopee_card:hover { transform:translateY(-5px) }

.cabanopee_header {
position:relative;
height:280px
}

.cabanopee_img_wrap {
width:100%;
height:100%;
overflow:hidden;
margin:0 0 -1px 0
}

.cabanopee_img {
display:block;
width:100%;
height:100%;
object-fit:cover;
backface-visibility:hidden;
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.cabanopee_card:hover .cabanopee_img { transform:scale(1.05) }

.cabanopee_logo {
position:absolute;
z-index:1;
max-width:85%;
max-height:75%;
width:auto;
height:auto;
object-fit:contain;
filter:drop-shadow(0 2px 8px rgba(0,0,0,0.3));
top:50%;
left:50%;
transform:translate(-50%, -50%) rotate(0deg) scale(1);
transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)
}

.cabanopee_card:hover .cabanopee_logo { transform:translate(-50%, -50%) rotate(-5deg) scale(0.92) }

.cabanopee_btn {
position:absolute;
z-index:2;
background-color:var(--orange);
border-radius:50px;
font-weight:400;
color:#fff;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
white-space:nowrap;
bottom:-16px;
left:50%;
transform:translateX(-50%);
transition:background 0.3s;
padding:10px 22px
}

.cabanopee_btn:hover { background:var(--bordeaux) }

.cabanopee_btn:focus {
outline:3px solid #fff;
outline-offset:2px
}

.cabanopee_content {
display:flex;
flex-direction:column;
align-items:center;
flex-grow:1;
text-align:center;
color:#fff;
padding:35px 20px 25px
}

.cabanopee_card--white .cabanopee_content { background-color:var(--white) }

.cabanopee_card--darkGreen .cabanopee_content { background-color:var(--darkGreen) }

.cabanopee_card--lightGreen .cabanopee_content { background-color:var(--evenement) }

.cabanopee_title {
font-weight:700;
text-transform:uppercase;
line-height:1.2 !important;
margin:0 0 12px 0
}

.cabanopee_desc {
font-weight:400;
line-height:1.5 !important;
opacity:0.95;
margin:0
}

.cabanopee_card--white .cabanopee_content { color:var(--evenement2) }

@media(max-width:1024px) {
	.cabanopee_wrapper {
	display:flex;
	flex-wrap:wrap;
	justify-content:center
	}
	
	.cabanopee_card { width:calc(50% - 12.5px) }
}

@media(max-width:680px) {
	.cabanopee_wrapper {
	max-width:100%;
	padding:0
	}
	
	.cabanopee_card { width:100% }
	
	.cabanopee_header { height:180px }
	
	.cabanopee_content { padding:30px 20px 25px }
}

/* ====================================================================== */
/* ======== ICONES HEADER =============================================== */
/* ====================================================================== */

.caba_steps {
display:flex;
justify-content:center;
gap:clamp(40px, 8vw, 100px);
max-width:900px;
margin:0 auto;
padding:12px 20px 32px 20px
}

.caba_steps_item {
display:flex;
flex-direction:column;
align-items:center;
gap:6px;
opacity:0;
transform:translateY(30px);
animation:caba_fadeIn 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards
}

#icones_cab .wrap_content { padding:20px 10px }

.caba_steps_item:nth-child(1) { animation-delay:0.1s }

.caba_steps_item:nth-child(2) { animation-delay:0.25s }

.caba_steps_item:nth-child(3) { animation-delay:0.4s }

.caba_steps_item img {
width:clamp(120px, 20vw, 160px);
height:auto;
filter:drop-shadow(0 4px 8px rgba(0,0,0,0.2));
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), filter 0.3s ease
}

.caba_steps_item:hover img {
filter:drop-shadow(0 8px 16px rgba(0,0,0,0.3));
transform:scale(1.08) rotate(3deg)
}

.caba_steps_item span {
font-size:clamp(14px, 2vw, 18px);
font-weight:600;
color:var(--white);
text-transform:uppercase;
letter-spacing:1px;
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

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

@keyframes caba_fadeIn {
	to {
	opacity:1;
	transform:translateY(0)
	}
}

@media(max-width:768px) {
	.caba_steps {
	gap:14px;
	padding:6px
	}

	.caba_steps_item span {	font-size:clamp(12px, 1.8vw, 14px) }

	.caba_steps_item {
	opacity:1;
	transform:none;
	animation:none
	}

	.caba_steps_item img,
	.caba_steps_item span { transition:none	}

	.custom-arrow { display:none }	

	.titleSlide {
	font-size:clamp(24px, 8vw, 38px);
	line-height:0.9
	}

	.subTitleSlide {
	font-size:clamp(20px, 7vw, 34px);
	line-height:0.9
	}

	.linkSlide {
	border-radius:10px;
	font-size:12px;
	padding:8px 18px
	}

	.linkSlide i { font-size:18px }
}

@media(max-width:640px) {
	.caba_steps_item span {	font-size:clamp(10px, 1.6vw, 12px) }
}

.cta_download {
display:inline-flex;
align-items:center;
justify-content:center;
gap:12px;
background:var(--lightGreenB);
border-radius:50px;
box-shadow:0 2px 8px rgba(0,0,0,0.1);
text-decoration:none;
font-size:1.125rem;
font-weight:600;
color:#fff;
transition:transform 0.3s cubic-bezier(0.4,0,0.2,1), box-shadow 0.3s ease, background 0.3s ease;
padding:1rem 2.5rem
}

.cta_download:hover {
background:#3d6a4a;
box-shadow:0 4px 12px rgba(0,0,0,0.15);
transform:translateY(-3px)
}

.cta_download:active { transform:translateY(-1px) }

.cta_download i {
font-size:1.375rem;
transition:transform 0.3s ease
}

.cta_download:hover i { transform:translateY(2px) }

/* ====================================================================== */
/* ======== RECHERCHE =================================================== */
/* ====================================================================== */

.search_page {
display:flex;
flex-direction:column;
gap:clamp(20px, 4vw, 40px)
}

.search_bar {
width:100%;
max-width:700px;
margin:25px auto
}

.search_bar_wrap {
display:flex;
align-items:center;
gap:clamp(10px, 2vw, 15px);
background:#fff;
border:2px solid var(--cabanopee);
border-radius:50px;
box-shadow:0 4px 20px rgba(0,0,0,0.08);
padding:clamp(6px, 1.5vw, 10px) clamp(6px, 1.5vw, 10px) clamp(6px, 1.5vw, 10px) clamp(15px, 3vw, 25px)
}

.search_bar_icon {
flex-shrink:0;
font-size:clamp(16px, 2.5vw, 20px);
color:var(--cabanopee)
}

.search_bar_input {
flex:1;
min-width:0;
background:transparent;
border:none;
outline:none;
font-size:clamp(14px, 2vw, 16px);
color:#333
}

.search_bar_input::placeholder { color:#999 }

.search_bar_btn {
flex-shrink:0;
background:var(--cabanopee);
border:none;
border-radius:50px;
font-size:clamp(12px, 1.8vw, 14px);
font-weight:700;
text-transform:uppercase;
color:#fff;
cursor:pointer;
transition:background 0.3s, transform 0.2s;
padding:clamp(10px, 2vw, 14px) clamp(16px, 3vw, 30px)
}

.search_bar_btn:hover {
background:var(--lightGreenB);
transform:scale(1.02)
}

.search_summary {
font-size:clamp(14px, 2vw, 16px);
text-align:center;
color:#666
}

.search_summary strong { color:var(--cabanopee) }

.search_results {
display:flex;
flex-direction:column;
gap:clamp(30px, 5vw, 50px)
}

.search_section_title {
display:flex;
align-items:center;
gap:10px;
border-bottom:2px solid var(--cabanopee);
font-size:clamp(16px, 2.5vw, 20px);
font-weight:700;
color:var(--cabanopee);
padding-bottom:12px;
margin-bottom:clamp(15px, 3vw, 25px)
}

.search_section_title i { font-size:clamp(18px, 2.5vw, 22px) }

.search_count {
font-size:clamp(13px, 2vw, 15px);
font-weight:400;
color:#999
}

.search_grid {
display:flex;
flex-direction:column;
gap:12px
}

.search_grid--cards {
display:grid;
grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr));
gap:clamp(15px, 3vw, 25px)
}

.search_card {
background:#fff;
border-radius:12px;
box-shadow:0 2px 15px rgba(0,0,0,0.06);
overflow:hidden;
transition:transform 0.3s, box-shadow 0.3s
}

.search_card:hover {
box-shadow:0 8px 30px rgba(0,0,0,0.12);
transform:translateY(-4px)
}

.search_card_link {
display:flex;
align-items:center;
gap:clamp(12px, 2vw, 18px);
text-decoration:none;
color:inherit;
padding:clamp(12px, 2vw, 18px)
}

.search_card--news .search_card_link,
.search_card--ref .search_card_link,
.search_card--activite .search_card_link {
flex-direction:column;
align-items:stretch;
gap:0;
padding:0
}

.search_card_icon {
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
width:clamp(45px, 7vw, 55px);
height:clamp(45px, 7vw, 55px);
background-color:var(--lightGreenB);
border-radius:12px;
font-size:clamp(18px, 3vw, 22px);
color:#fff
}

.search_card_body { flex:1; min-width:0 }

.search_card--news .search_card_body,
.search_card--ref .search_card_body,
.search_card--activite .search_card_body { padding:clamp(12px, 2.5vw, 18px) }

.search_card_title {
font-size:clamp(14px, 2vw, 16px);
font-weight:700;
line-height:1.4;
color:#333;
margin:0 0 6px 0
}

.search_card_desc {
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
font-size:clamp(13px, 1.8vw, 14px);
line-height:1.6;
color:#666;
margin:0
}

.search_card_arrow {
flex-shrink:0;
font-size:clamp(14px, 2vw, 16px);
color:var(--cabanopee);
opacity:0;
transition:opacity 0.3s, transform 0.3s
}

.search_card:hover .search_card_arrow {
opacity:1;
transform:translateX(5px)
}

.search_card_img {
position:relative;
aspect-ratio:16/10;
overflow:hidden
}

.search_card_img img {
width:100%;
height:100%;
object-fit:cover;
transition:transform 0.4s
}

.search_card:hover .search_card_img img { transform:scale(1.06) }

.search_card_badge {
position:absolute;
display:inline-flex;
align-items:center;
gap:6px;
background:var(--cabanopee);
border-radius:20px;
font-size:clamp(10px, 1.5vw, 12px);
font-weight:600;
color:#fff;
bottom:10px;
left:10px;
padding:6px 12px
}

.search_card_overlay {
position:absolute;
display:flex;
align-items:center;
justify-content:center;
width:100%;
height:100%;
background:rgba(0,0,0,0.4);
font-size:clamp(20px, 3vw, 26px);
color:#fff;
opacity:0;
transition:opacity 0.3s;
top:0;
left:0
}

.search_card:hover .search_card_overlay { opacity:1 }

.search_card_date {
display:inline-flex;
align-items:center;
gap:6px;
font-size:clamp(11px, 1.5vw, 12px);
color:#999;
margin-bottom:8px
}

.search_empty,
.search_welcome {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:clamp(12px, 2vw, 18px);
min-height:clamp(150px, 25vw, 220px);
color:#999
}

.search_empty i,
.search_welcome i {
font-size:clamp(36px, 6vw, 52px);
opacity:0.3
}

.search_empty p,
.search_welcome p {
font-size:clamp(14px, 2vw, 17px);
text-align:center
}

.search_page mark {
background:linear-gradient(120deg, rgba(var(--cabanopeeRGB), 0.2) 0%, rgba(var(--cabanopeeRGB), 0.35) 100%);
border-radius:3px;
color:inherit;
padding:2px 5px
}

@media(max-width:600px) {
	.search_bar_btn span { display:none }
	
	.search_card--page .search_card_link {
	flex-wrap:wrap;
	gap:10px
	}
	
	.search_card--page .search_card_body { width:calc(100% - 60px) }
	
	.search_card--page .search_card_arrow { display:none }
}

/* ====================================================================== */
/* ======== POPUPS ====================================================== */
/* ====================================================================== */

.popup_overlay {
position:fixed;
display:flex;
z-index:99999;
align-items:center;
justify-content:center;
width:100%;
height:100%;
background:rgba(0,0,0,0.6);
backdrop-filter:blur(4px);
opacity:0;
top:0;
left:0;
transition:opacity 0.3s cubic-bezier(0.4,0,0.2,1);
padding:20px
}

.popup_overlay.popup_visible { opacity:1 }

.popup_overlay.popup_hidden {
opacity:0;
pointer-events:none
}

.popup_container {
position:relative;
display:flex;
flex-direction:column;
width:100%;
max-width:480px;
max-height:calc(100vh - 40px);
background:#fff;
border-radius:16px;
opacity:0;
transform:translateY(30px) scale(0.95);
transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1)
}

.popup_visible .popup_container {
opacity:1;
transform:translateY(0) scale(1)
}

.popup_close {
position:absolute;
display:flex;
z-index:10;
align-items:center;
justify-content:center;
width:36px;
height:36px;
background:#f5f5f5;
border:none;
border-radius:50%;
font-size:16px;
color:#666;
cursor:pointer;
top:12px;
right:12px;
transition:all 0.2s ease
}

.popup_close:hover {
background:#e0e0e0;
color:#333;
transform:rotate(90deg)
}

.popup_header {
display:flex;
flex-direction:column;
align-items:center;
text-align:center;
padding:32px 24px 16px
}

.popup_logo {
max-width:250px;
height:auto;
object-fit:contain;
margin:0 0 16px
}

.popup_icon {
display:flex;
align-items:center;
justify-content:center;
width:64px;
height:64px;
background:color-mix(in srgb, var(--cabanopee) 12%, transparent);
border-radius:50%;
font-size:28px;
color:var(--cabanopee);
margin:0 0 16px
}

.popup_title {
width:100%;
font-size:clamp(1.25rem, 4vw, 1.5rem);
font-weight:600;
color:#1a1a1a;
line-height:1.3;
margin:0
}

.popup_content {
flex:1;
overflow-y:auto;
font-size:15px;
color:#4a4a4a;
line-height:1.7;
padding:0 24px 16px
}

.popup_content p { margin:0 0 12px }

.popup_content p:last-child { margin:0 }

.popup_content a {
color:var(--cabanopee);
text-decoration:underline;
text-underline-offset:2px
}

.popup_content a:hover { text-decoration:none }

.popup_content ul,
.popup_content ol {
margin:0 0 12px;
padding:0 0 0 20px
}

.popup_content li { margin:0 0 6px }

.popup_footer {
display:flex;
justify-content:center;
border-top:1px solid #f0f0f0;
padding:20px 24px
}

.popup_btn {
display:inline-flex;
align-items:center;
gap:8px;
min-width:140px;
background:var(--cabanopee);
border:none;
border-radius:8px;
font-size:15px;
font-weight:500;
color:#fff;
cursor:pointer;
transition:all 0.2s ease;
padding:12px 24px
}

.popup_btn:hover {
filter:brightness(1.1);
transform:translateY(-1px)
}

.popup_btn:active { transform:translateY(0) }

.popup_btn i { font-size:14px }

@media(max-width:540px) {
	.popup_overlay { padding:12px }

	.popup_container {
	max-height:calc(100vh - 24px);
	border-radius:12px
	}

	.popup_header { padding:28px 20px 12px }

	.popup_logo {
	max-width:100px;
	margin:0 0 12px
	}

	.popup_icon {
	width:56px;
	height:56px;
	font-size:24px;
	margin:0 0 12px
	}

	.popup_content {
	font-size:14px;
	padding:0 20px 12px
	}

	.popup_footer { padding:16px 20px }

	.popup_btn {
	width:100%;
	justify-content:center
	}

	.popup_close {
	width:32px;
	height:32px;
	font-size:14px;
	top:10px;
	right:10px
	}
}