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

#headerSlider_wrapper::before {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:6px;
background-color:#126f34;
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
}

.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(180px, 20vw, 280px);
height:auto
}

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

.leaf_deco[data-size="large"] {
width:clamp(350px, 40vw, 450px);
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(-250px, -18vh, -175px);
background-size:contain;
opacity:0;
pointer-events:none;
z-index:12000
}

.leaf_deco,
.leaf_deco--separator {
will-change:transform;
backface-visibility:hidden;
transform:translate3d(0,0,0)
}

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

@keyframes leafFloat {
	0% {
	opacity:0;
	translate:0 30px;
	scale:0.95
	}
	100% {
	opacity:0.85;
	translate:0 0;
	scale:1
	}
}

.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(400px, 30vw, 50 0px);
height:auto
}

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

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

@media(max-width:1680px) {
	.leaf_deco--separator[data-size="large"] { width:clamp(400px, 35vw, 500px) }
	
	.leaf_deco--separator[data-size="medium"] { width:clamp(350px, 30vw, 450px) }
}

@media(max-width:1024px) {
	.leaf_deco--separator[data-size="large"] { width:clamp(300px, 25vw, 400px) }
	
	.leaf_deco--separator[data-size="medium"] { width:clamp(280px, 22vw, 350px) }
	
	.leaf_deco--separator[data-side="left"] { left:clamp(-150px, -12vw, -80px) }
	
	.leaf_deco--separator[data-side="right"] { right:clamp(-150px, -12vw, -80px) }
}

@media(max-width:750px) {
	.leaf_separator,
	.leaf_deco--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
}

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

#cacheFooter::before {
content:'';
position:absolute;
z-index:11000;
width:100%;
height:6px;
background-color:#341918;
bottom:-3px;
left:0
}

#wrap_separator_actualites::before {
content:'';
position:absolute;
z-index:11000;
width:100%;
height:6px;
background-color:#b2ae81;
top:-3px;
left:0
}

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

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

#carte_snack {
display:inline-block;
position:relative;
width:100%;
margin:25px 0 10px 0;
padding:0
}

.activite_page {
width:100%;
max-width:1400px;
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
}

.activites_home_card img,
.activite_media img {
image-rendering:auto;
-webkit-backface-visibility:hidden;
backface-visibility:hidden;
transform:translateZ(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
	}

	.custom-arrow { display:none }	

	.titleSlide {
	font-size:clamp(32px, 10vw, 48px);
	line-height:0.9
	}

	.subTitleSlide {
	font-size:clamp(18px, 5vw, 26px);
	line-height:1
	}

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

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

@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_video iframe {
width:100%;
height:100%;
border:none
}

.activite_extras {
display:flex;
flex-direction:column;
align-items:center;
gap:20px
}

.activite_video,
.activite_video_full {
width:100%;
aspect-ratio:16/9;
min-width:0;
border-radius:12px;
overflow:hidden
}

.activite_label,
.activite_label_solo {
width:100%
}

.activite_label img {
width:70%;
height:auto;
image-rendering:auto;
margin:0 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
	}

	.activite_label { margin:0 auto }
}

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

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

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

.formule_page {
width:100%;
max-width:1400px;
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:0 0 30px
	}
}

@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:20px
}

.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(--orange) }

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

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

.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:180px }
	
	.groupe_content { padding:30px 20px 25px }
}

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

.pack_wrapper {
display:flex;
flex-wrap:wrap;
justify-content:center;
gap:25px;
width:100%;
max-width:1400px;
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) }

#autresActivites [data-tr="autresActivites"] { margin-top:62px }

#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 }

.leaf_deco,
.leaf_deco--separator { will-change:transform }

#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
}

#separator_footer::before {
content:'';
position:absolute;
z-index:9990;
width:100%;
height:2px;
background-color:#341918;
bottom:-1px;
left: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 {
display:flex;
align-items:center;
justify-content:center;
flex-shrink:0;
width:20px;
height:20px;
border-radius:50%;
font-size:11px;
color:#fff;
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;
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:2.2 !important;
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 {
list-style:none;
margin:30px 0
}

.tarifs_infos::before,
.tarifs_infos::marker { display:none }

.tarifs_infos ul { list-style:none }

.tarifs_infos li::before,
.tarifs_infos li::marker {
content:none;
display:none
}

.tarifs_liste li::before {
content:'✓';
display:block;
position:absolute;
color:var(--darkGreen);
font-weight:700;
left: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: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 }
}

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

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

.horaires_container {
display:flex;
align-items:stretch;
gap:40px;
background:#fff;
border-radius:20px;
box-shadow:0 4px 30px rgba(0,0,0,0.08);
padding:40px
}

.horaires_infos {
display:flex;
flex-direction:column;
flex-shrink:0;
width:280px;
gap:25px
}

.horaires_infos a {
background-color:var(--orange);
color:#fff
}

.horaires_infos a:hover {
background-color:var(--green) !important;
color:#fff
}

.horaires_text {
font-size:14px;
line-height:1.6;
color:#333
}

.horaires_text p { margin:0 0 15px 0 }

.horaires_subtitle {
font-size:18px;
font-weight:700;
color:#b35c00;
margin:0 0 10px 0
}

.horaires_subtitle_small {
font-size:14px;
font-weight:700;
color:#b35c00;
margin:20px 0 8px 0
}

.horaires_calendrier {
display:flex;
align-items:center;
flex:1;
gap:15px;
min-width:0
}

.horaires_nav {
display:flex;
flex-shrink:0;
align-items:center;
justify-content:center;
width:48px;
height:48px;
background:#fff;
border:2px solid #ff7f00;
border-radius:50%;
color:#ff7f00;
cursor:pointer;
transition:all 0.2s
}

.horaires_nav:hover:not(:disabled) {
background:#ff7f00;
color:#fff;
transform:scale(1.1)
}

.horaires_nav:disabled {
border-color:#ddd;
color:#ccc;
cursor:not-allowed
}

.horaires_nav svg {
width:24px;
height:24px
}

.horaires_slider {
flex:1;
overflow:hidden;
min-width:0
}

.horaires_track {
display:flex;
gap:30px;
transition:transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)
}

.horaires_mois {
flex-shrink:0;
width:calc(50% - 15px)
}

.horaires_mois_titre {
text-align:center;
font-size:20px;
font-weight:700;
color:#333;
margin:0 0 15px 0
}

.horaires_grille { width:100% }

.horaires_entete {
display:grid;
grid-template-columns:repeat(7, 1fr);
gap:4px;
margin:0 0 8px 0
}

.horaires_entete span {
text-align:center;
font-size:12px;
font-weight:700;
color:#8b6914
}

.horaires_jours {
display:grid;
grid-template-columns:repeat(7, 1fr);
gap:4px
}

.horaires_jour {
display:flex;
align-items:center;
justify-content:center;
aspect-ratio:1;
border-radius:6px;
font-size:13px;
font-weight:600;
transition:transform 0.15s
}

.horaires_jour:not(.horaires_jour_vide):hover {
transform:scale(1.1);
z-index:2
}

.horaires_jour_vide { background:transparent }

.horaires_legende {
display:flex;
flex-wrap:wrap;
align-items:center;
justify-content:center;
gap:20px 35px;
margin:30px 0 0 0;
padding:0
}

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

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

.horaires_legende_label {
font-size:13px;
color:#555
}

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

	.horaires_infos {
	width:100%;
	flex-direction:row;
	flex-wrap:wrap;
	align-items:center;
	gap:20px
	}

	.horaires_cta {
	width:auto;
	padding:14px 30px
	}

	.horaires_text { flex:1; min-width:250px }

	.horaires_mois { width:calc(50% - 15px) }
}

@media(max-width:768px) {
	.horaires_section { padding:20px 15px }

	.horaires_container { padding:20px }

	.horaires_infos { flex-direction:column }

	.horaires_cta { width:100% }

	.horaires_text { min-width:100% }

	.horaires_mois { width:100% }

	.horaires_nav {
	width:40px;
	height:40px
	}

	.horaires_nav svg {
	width:20px;
	height:20px
	}

	.horaires_mois_titre { font-size:18px }

	.horaires_jour { font-size:12px }

	.horaires_legende { gap:12px 20px }

	.horaires_legende_color {
	width:16px;
	height:16px
	}

	.horaires_legende_label { font-size:12px }
}

@media(max-width:480px) {
	.horaires_entete span { font-size:11px }

	.horaires_jour {
	font-size:11px;
	border-radius:4px
	}

	.horaires_legende { gap:10px 15px }
}

@media(prefers-reduced-motion: reduce) {
	.horaires_track { transition:none }

	.horaires_jour:hover { transform:none }

	.horaires_nav:hover { transform:none }

	.horaires_cta:hover { transform:none }
}

.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 !important;
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) }

/* ====================================================================== */
/* ======== CONTACT & RESA ============================================== */
/* ====================================================================== */

.contactResa_choice {
display:inline-block;
position:relative;
width:100%;
margin:0 0 50px 0;
padding:0
}

:root {
--contactResa_green:#4a7c3f;
--contactResa_greenDark:#3d6835;
--contactResa_orange:#e67e22;
--contactResa_orangeDark:#d35400;
--contactResa_brown:#8b4513;
--contactResa_cream:#faf8f5;
--contactResa_gray:#666
}

.contactResa_cards {
display:grid;
grid-template-columns:repeat(3, 1fr);
grid-template-rows:1fr auto auto;
gap:0 30px;
max-width:1200px;
margin:0 auto
}

.contactResa_card {
display:grid;
grid-row:1 / -1;
grid-template-rows:subgrid;
align-items:start;
background:#fff;
border-radius:16px;
box-shadow:0 8px 30px rgba(0,0,0,0.08);
overflow:hidden;
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s
}

.contactResa_card:hover {
box-shadow:0 20px 50px rgba(0,0,0,0.12);
transform:translateY(-4px)
}

.contactResa_cardTop {
position:relative;
display:flex;
flex-direction:column;
align-items:center;
padding:65px 25px 20px
}

.contactResa_btn {
display:flex;
align-items:center;
justify-content:center;
align-self:end;
gap:10px;
width:calc(100% - 50px);
height:50px;
border-radius:10px;
font-size:0.9rem;
font-weight:600;
text-decoration:none;
text-transform:uppercase;
letter-spacing:0.5px;
color:#fff;
transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
margin:0 25px
}

.contactResa_btn svg {
width:18px;
height:18px
}

.contactResa_btnOnline { background-color:var(--contactResa_green) }

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

.contactResa_btnContact { background-color:var(--contactResa_orange) }

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

.contactResa_btnContact2 { background-color:var(--contactResa_brown) }

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

.contactResa_cardAfter {
display:flex;
align-items:center;
justify-content:center;
padding:12px 25px 30px
}

.contactResa_cardBadge {
position:absolute;
display:inline-flex;
align-items:center;
background:var(--contactResa_green);
border-radius:0 0 10px 10px;
font-size:0.75rem;
font-weight:600;
text-transform:uppercase;
letter-spacing:0.5px;
color:#fff;
top:0;
left:50%;
transform:translateX(-50%);
white-space:nowrap;
padding:6px 16px
}

.contactResa_badgeOrange { background:var(--contactResa_orange) }

.contactResa_badgeBrown { background:var(--contactResa_brown) }

.contactResa_cardIcon {
display:flex;
align-items:center;
justify-content:center;
width:70px;
height:70px;
background:var(--contactResa_cream);
border-radius:50%;
margin:0 0 18px
}

.contactResa_cardIcon svg {
width:34px;
height:34px
}

.contactResa_cardOnline .contactResa_cardIcon svg { color:var(--contactResa_green) }

.contactResa_cardContact .contactResa_cardIcon svg { color:var(--contactResa_orange) }

.contactResa_cardPro .contactResa_cardIcon svg { color:var(--contactResa_brown) }

.contactResa_card h3 {
text-align:center;
font-size:1.3rem;
font-weight:700;
color:#333;
margin:0 0 4px
}

.contactResa_cardSubtitle {
text-align:center;
font-size:0.9rem;
color:var(--contactResa_gray);
margin:0 0 20px
}

.contactResa_cardList {
list-style:none;
width:100%;
margin:0;
padding:0
}

.contactResa_cardList li {
position:relative;
font-size:0.9rem;
color:#555;
padding:7px 0 7px 20px
}

.contactResa_cardList li::before {
content:'';
position:absolute;
width:7px;
height:7px;
background:var(--contactResa_green);
border-radius:50%;
top:13px;
left:0
}

.contactResa_listOrange li::before { background:var(--contactResa_orange) }

.contactResa_cardPerks {
display:grid;
grid-template-columns:1fr 1fr;
gap:6px;
width:100%
}

.contactResa_perk {
display:flex;
align-items:center;
gap:8px;
font-size:0.85rem;
color:#555
}

.contactResa_perk svg {
flex-shrink:0;
width:16px;
height:16px;
color:var(--contactResa_brown)
}

.contactResa_phone {
display:flex;
align-items:center;
justify-content:center;
gap:10px;
width:100%;
background:var(--contactResa_cream);
border-radius:10px;
font-size:1.2rem;
font-weight:700;
color:var(--contactResa_greenDark);
padding:14px
}

.contactResa_phone svg {
width:22px;
height:22px;
color:var(--contactResa_orange)
}

.contactResa_cardNote {
text-align:center;
font-size:0.78rem;
font-style:italic;
color:#999
}

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

	.contactResa_card {
	grid-row:auto;
	grid-template-rows:1fr auto auto
	}

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

@media(max-width:600px) {
	.contactResa_cards { max-width:100% }

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

/* ====================================================================== */
/* ======== PARTENAIRES ================================================= */
/* ====================================================================== */

.partenaire_categorie {
width:100%;
margin:0 0 40px 0
}

.partenaire_catTitle {
display:flex;
align-items:center;
gap:10px;
color:var(--bordeaux);
font-weight:700;
text-transform:uppercase;
letter-spacing:0.5px;
border-bottom:2px solid var(--bordeaux);
margin:0 0 20px 0;
padding:0 0 10px 0
}

.partenaire_catTitle i { opacity:0.7 }

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

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

.partenaire_card:hover {
transform:translateY(-5px);
box-shadow:0 12px 30px rgba(0,0,0,0.15)
}

.partenaire_logo_wrap {
display:flex;
align-items:center;
justify-content:center;
height:140px;
background:#f8f8f8;
border-bottom:1px solid #eee;
padding:20px
}

.partenaire_logo {
max-width:80%;
max-height:100%;
width:auto;
height:auto;
object-fit:contain;
transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)
}

.partenaire_card:hover .partenaire_logo { transform:scale(1.05) }

.partenaire_content {
display:flex;
flex-direction:column;
flex-grow:1;
padding:20px
}

.partenaire_nom {
font-weight:700;
color:var(--bordeaux);
line-height:1.3;
margin:0 0 10px 0
}

.partenaire_texte {
flex-grow:1;
color:#555;
line-height:1.6;
margin:0 0 15px 0
}

.partenaire_link {
display:inline-flex;
align-items:center;
gap:6px;
width:fit-content;
color:var(--mainColorA);
font-weight:600;
text-decoration:none;
transition:color 0.2s
}

.partenaire_link:hover { color:var(--bordeaux) }

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

@media(max-width:680px) {
	.partenaire_grid {
	grid-template-columns:1fr;
	gap:15px
	}
	
	.partenaire_logo_wrap { height:120px }
}

/* ====================================================================== */
/* ======== TABLEAUX TARIFAIRES ========================================= */
/* ====================================================================== */

:root {
--tarif-gap:4px;
--tarif-radius:10px;
--tarif-rose:#E91E63;
--tarif-rose-light:#F48FB1;
--tarif-rose-medium:#EC407A;
--tarif-orange:#FF9800;
--tarif-white:#FFFFFF;
--tarif-green1:#81C784;
--tarif-green2:#66BB6A;
--tarif-green3:#43A047;
--tarif-green4:#2E7D32;
--tarif-brown1:#8D6E63;
--tarif-brown1-light:#A1887F;
--tarif-blue-cable:#00838F;
--tarif-blue-cable-light:#4DB6AC;
--tarif-pink-tyro:#C2185B;
--tarif-pink-tyro-light:#E91E63;
--tarif-blue-paint:#5C6BC0;
--tarif-blue-paint-light:#7986CB;
--tarif-red-laser:#E53935;
--tarif-red-laser-light:#EF5350;
--tarif-teal:#00897B;
--tarif-teal-light:#4DB6AC;
--tarif-coral:#EF6C57;
--tarif-coral-light:#F4978E;
--tarif-blue-pack:#0277BD;
--tarif-blue-pack-light:#4FC3F7;
--tarif-purple:#7B1FA2;
--tarif-purple-light:#BA68C8;
--tarif-red-guerrier:#BF360C;
--tarif-red-guerrier-light:#E64A19;
--tarif-brown-ouragan:#6D4C41;
--tarif-brown-ouragan-light:#8D6E63;
--section-parcours:#2E7D32;
--section-sensation:#C2185B;
--section-fun:#5C6BC0;
--section-packs:#7B1FA2
}

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

.tarif_nav {
display:flex;
align-items:center;
justify-content:center;
gap:8px;
z-index:100;
background:rgba(248,247,245,0.95);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
padding:14px 10px
}

.tarif_nav_link {
display:flex;
align-items:center;
gap:6px;
background:var(--tarif-white);
border:2px solid transparent;
border-radius:50px;
text-decoration:none;
font-size:14px;
font-weight:800;
color:#555;
white-space:nowrap;
cursor:pointer;
transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
padding:10px 20px
}

.tarif_nav_link:hover,
.tarif_nav_link:focus-visible {
color:var(--tarif-white);
transform:translateY(-2px);
box-shadow:0 4px 12px rgba(0,0,0,0.15)
}

.tarif_nav_link[data-section="parcours"]:hover,
.tarif_nav_link[data-section="parcours"]:focus-visible { background:var(--section-parcours); border-color:var(--section-parcours) }

.tarif_nav_link[data-section="sensation"]:hover,
.tarif_nav_link[data-section="sensation"]:focus-visible { background:var(--section-sensation); border-color:var(--section-sensation) }

.tarif_nav_link[data-section="fun"]:hover,
.tarif_nav_link[data-section="fun"]:focus-visible { background:var(--section-fun); border-color:var(--section-fun) }

.tarif_nav_link[data-section="packs"]:hover,
.tarif_nav_link[data-section="packs"]:focus-visible { background:var(--section-packs); border-color:var(--section-packs) }

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

.tarif_nav_link[data-section="parcours"] .tarif_nav_dot { background:var(--section-parcours) }
.tarif_nav_link[data-section="sensation"] .tarif_nav_dot { background:var(--section-sensation) }
.tarif_nav_link[data-section="fun"] .tarif_nav_dot { background:var(--section-fun) }
.tarif_nav_link[data-section="packs"] .tarif_nav_dot { background:var(--section-packs) }

.tarif_nav_link:hover .tarif_nav_dot,
.tarif_nav_link:focus-visible .tarif_nav_dot { background:var(--tarif-white) }

.tarif_section {
scroll-margin-top:80px;
padding:50px 0 0
}

.tarif_section_title {
font-size:clamp(26px, 4vw, 40px);
font-weight:900;
text-transform:uppercase;
letter-spacing:0.5px;
line-height:1.2;
margin:0 0 30px
}

.tarif_section--parcours .tarif_section_title { color:var(--section-parcours) }
.tarif_section--sensation .tarif_section_title { color:var(--section-sensation) }
.tarif_section--fun .tarif_section_title { color:var(--section-fun) }
.tarif_section--packs .tarif_section_title { color:var(--section-packs) }

.tarif_section_tables {
display:flex;
flex-direction:column;
gap:30px
}

.tarif_grid {
display:grid;
gap:var(--tarif-gap);
width:100%
}

.tarif_grid--5col { grid-template-columns:170px repeat(4, 1fr) }
.tarif_grid--4col { grid-template-columns:170px repeat(3, 1fr) }
.tarif_grid--3col { grid-template-columns:170px repeat(2, 1fr) }
.tarif_grid--5col-sub { grid-template-columns:170px 1fr 0.5fr 0.5fr 1fr }
.tarif_grid--5col-pack { grid-template-columns:170px 1fr 0.5fr 0.5fr 1fr }
.tarif_grid--5col-ouragan { grid-template-columns:170px 1fr 1fr 0.5fr 0.5fr }

.tarif_cell {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
color:var(--tarif-white);
font-weight:700;
line-height:1.3;
padding:16px 10px
}

.tarif_cell--header {
background:var(--tarif-rose);
font-size:clamp(26px, 3vw, 38px);
font-weight:900;
line-height:1;
padding:22px 14px
}

.tarif_cell--header span {
display:block;
font-size:clamp(30px, 3.5vw, 46px);
font-weight:900
}

.tarif_cell--col {
font-weight:900;
font-size:clamp(13px, 1.4vw, 18px);
text-transform:uppercase;
line-height:1.2;
padding:18px 8px
}

.tarif_cell--col-title {
font-size:clamp(15px, 1.6vw, 20px);
font-weight:900
}

.tarif_cell--col-age {
font-size:clamp(11px, 1.1vw, 14px);
font-weight:700;
margin:3px 0 0
}

.tarif_cell--col-desc {
font-size:clamp(10px, 0.95vw, 13px);
font-weight:600;
opacity:0.9;
line-height:1.25;
margin:5px 0 0
}

.tarif_cell--row {
background:var(--tarif-rose-light);
font-size:clamp(11px, 1.2vw, 14px);
font-weight:800;
text-transform:uppercase;
line-height:1.3
}

.tarif_cell--row small {
display:block;
font-size:clamp(9px, 0.9vw, 12px);
font-weight:700;
text-transform:none
}

.tarif_cell--price {
font-size:clamp(22px, 3vw, 38px);
font-weight:900
}

.tarif_cell--price-sub {
font-size:clamp(10px, 0.9vw, 12px);
font-weight:600;
opacity:0.85;
margin:2px 0 0
}

.tarif_cell--duree-label {
background:var(--tarif-orange);
font-size:clamp(11px, 1.2vw, 14px);
font-weight:800;
text-transform:uppercase
}

.tarif_cell--duree {
background:var(--tarif-orange);
font-size:clamp(15px, 1.8vw, 22px);
font-weight:800;
text-transform:uppercase
}

.tarif_cell--info {
font-size:clamp(9px, 0.85vw, 11px);
font-weight:700;
text-transform:uppercase;
letter-spacing:0.3px;
padding:8px 6px
}

.tarif_span2 { grid-column:span 2 }
.tarif_span3 { grid-column:span 3 }
.tarif_span4 { grid-column:span 4 }

.tarif_rtl { border-radius:var(--tarif-radius) 0 0 0 }
.tarif_rtr { border-radius:0 var(--tarif-radius) 0 0 }
.tarif_rbl { border-radius:0 0 0 var(--tarif-radius) }
.tarif_rbr { border-radius:0 0 var(--tarif-radius) 0 }
.tarif_rtlr { border-radius:var(--tarif-radius) var(--tarif-radius) 0 0 }

.tarif_cards { display:none }

.tarif_card {
border-radius:var(--tarif-radius);
overflow:hidden
}

.tarif_card_header {
font-weight:900;
font-size:clamp(16px, 4.5vw, 20px);
text-transform:uppercase;
text-align:center;
color:var(--tarif-white);
line-height:1.2;
padding:16px 14px
}

.tarif_card_sub {
display:block;
font-size:clamp(12px, 3.5vw, 14px);
font-weight:700;
text-transform:none;
margin:3px 0 0
}

.tarif_card_desc {
display:block;
font-size:clamp(10px, 3vw, 12px);
font-weight:600;
opacity:0.9;
line-height:1.25;
margin:5px 0 0
}

.tarif_card_body {
display:grid;
grid-template-columns:1fr 1fr;
gap:var(--tarif-gap)
}

.tarif_card_item {
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
color:var(--tarif-white);
gap:2px;
padding:14px 8px
}

.tarif_card_label {
font-size:11px;
font-weight:700;
text-transform:uppercase;
opacity:0.8
}

.tarif_card_value {
font-size:clamp(24px, 7vw, 32px);
font-weight:900
}

.tarif_card_value_sub {
font-size:10px;
font-weight:600;
opacity:0.85;
text-align:center;
margin:2px 0 0
}

.tarif_card_full {
grid-column:1 / -1;
text-align:center;
color:var(--tarif-white);
padding:12px 8px
}

.tarif_card_footer {
text-align:center;
font-weight:800;
font-size:14px;
text-transform:uppercase;
color:var(--tarif-white);
background:var(--tarif-orange);
padding:10px
}

.tarif_card_info {
grid-column:1 / -1;
text-align:center;
font-size:10px;
font-weight:700;
text-transform:uppercase;
letter-spacing:0.3px;
color:var(--tarif-white);
padding:6px
}

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

@media(max-width:900px) {
	.tarif_grid { display:none }

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

	.tarif_section { padding:40px 0 0 }
	.tarif_section_title { margin:0 0 20px }
}

@media(max-width:600px) {
	.tarif_nav {
	flex-wrap:wrap;
	gap:6px;
	padding:10px 8px
	}

	.tarif_nav_link {
	font-size:12px;
	padding:8px 14px
	}

	.tarif_page { padding:0 12px 40px }
	.tarif_section { padding:30px 0 0 }
}

@media(prefers-reduced-motion:reduce) {
	.tarif_nav_link { transition:none }
}

.tarif_nav_link:focus-visible {
outline:3px solid #333;
outline-offset:2px
}

.tarif_skip {
position:absolute;
background:#333;
color:#fff;
font-weight:700;
text-decoration:none;
border-radius:0 0 8px 8px;
z-index:1000;
transform:translateY(-100%);
transition:transform 0.2s;
left:50%;
padding:10px 20px;
margin-left:-80px
}

.tarif_skip:focus {
transform:translateY(0)
}

.tarif_cell.tarif_cell--info { background-color:red !important }

/* ====================================================================== */
/* ======== PLAN INTERACTIF ============================================= */
/* ====================================================================== */

.map_section {
width:100%;
max-width:1434px;
margin:0 auto;
padding:0 20px 50px
}

.map_wrap {
position:relative;
width:100%;
border-radius:10px;
overflow:hidden
}

.map_wrap img.map_img {
display:block;
width:100%;
height:auto
}

.map_overlay {
position:absolute;
width:100%;
height:100%;
background:rgba(0,0,0,0);
pointer-events:none;
z-index:1;
top:0;
left:0;
transition:background .3s ease
}

.map_wrap.map_has_active .map_overlay {
background:rgba(0,0,0,0);
pointer-events:none
}

.map_hotspot {
position:absolute;
width:3.6%;
aspect-ratio:1;
background:none;
border:none;
border-radius:50%;
cursor:pointer;
transform:translate(-50%,-50%);
z-index:2;
padding:0;
-webkit-tap-highlight-color:transparent
}

.map_hotspot::before {
content:'';
position:absolute;
width:100%;
height:100%;
background:rgba(255,165,0,.2);
border:2px solid rgba(245,166,35,.7);
border-radius:50%;
z-index:-1;
animation:map_halo 2s ease-in-out infinite alternate;
top:0;
left:0;
pointer-events:none
}

.map_hotspot::after {
content:'';
position:absolute;
width:100%;
height:100%;
border-radius:50%;
box-shadow:0 0 0 0 rgba(245,166,35,.5);
z-index:-1;
animation:map_pulse 2.5s ease-out infinite;
top:0;
left:0;
pointer-events:none
}

@keyframes map_halo {
0% { transform:scale(1); border-color:rgba(245,166,35,.7); background:rgba(255,165,0,.15) }
100% { transform:scale(1.5); border-color:rgba(245,166,35,.3); background:rgba(255,165,0,0) }
}

@keyframes map_pulse {
0% { box-shadow:0 0 0 0 rgba(245,166,35,.5) }
70% { box-shadow:0 0 0 18px rgba(245,166,35,0) }
100% { box-shadow:0 0 0 0 rgba(245,166,35,0) }
}

.map_hotspot:hover::before,
.map_hotspot.map_hover::before {
animation:none;
background:rgba(255,165,0,.25);
border-color:rgba(245,166,35,.8);
transform:scale(1.1)
}

.map_hotspot.map_active {
z-index:10
}

.map_hotspot.map_active::before {
animation:none;
background:rgba(255,165,0,.3);
border-color:rgba(245,166,35,.9);
transform:scale(1.1)
}

.map_wrap.map_has_active .map_hotspot:not(.map_active)::before,
.map_wrap.map_has_active .map_hotspot:not(.map_active)::after {
animation:none;
opacity:0
}

.map_tooltip {
position:absolute;
display:none;
width:280px;
background:rgba(25,25,25,.96);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
border:1px solid rgba(255,165,0,.35);
border-radius:12px;
box-shadow:0 12px 40px rgba(0,0,0,.6);
overflow:hidden;
z-index:20;
transform:translateX(-50%);
left:50%;
bottom:100%
}

.map_tooltip::after {
content:'';
position:absolute;
width:0;
height:0;
border-left:9px solid transparent;
border-right:9px solid transparent;
border-top:9px solid rgba(25,25,25,.96);
left:50%;
top:100%;
transform:translateX(-50%)
}

.map_tooltip.map_tooltip_bottom {
bottom:auto;
top:100%
}

.map_tooltip.map_tooltip_bottom::after {
top:auto;
bottom:100%;
border-top:none;
border-bottom:9px solid rgba(25,25,25,.96)
}

.map_tooltip.map_tooltip_left { transform:translateX(-80%) }

.map_tooltip.map_tooltip_left::after { left:80% }

.map_tooltip.map_tooltip_right { transform:translateX(-20%) }

.map_tooltip.map_tooltip_right::after { left:20% }

.map_hotspot.map_hover > .map_tooltip,
.map_hotspot.map_active > .map_tooltip { display:block }

.map_tooltip_photo {
width:100%;
height:140px;
overflow:hidden
}

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

.map_tooltip_body {
font-size:13px;
color:#fff;
line-height:1.4;
padding:14px 16px 16px
}

.map_tooltip_title {
display:flex;
align-items:center;
gap:8px;
border-bottom:1px solid rgba(255,165,0,.2);
font-size:15px;
font-weight:700;
color:#f5a623;
margin:0 0 10px 0;
padding:0 0 9px 0
}

.map_tooltip_title i {
font-size:12px;
color:#e67e22
}

.map_tooltip_desc {
font-size:12.5px;
color:#bbb;
line-height:1.6;
margin:0
}

.map_tooltip_cta {
display:block;
margin:14px 0 0 0
}

.map_tooltip_link {
display:inline-flex;
align-items:center;
gap:6px;
background:#e67e22;
border-radius:6px;
text-decoration:none;
font-size:12px;
font-weight:600;
color:#fff;
transition:background .2s ease;
padding:7px 16px
}

.map_tooltip_link:hover { background:#d35400 }

.map_tooltip_link i { font-size:10px }

.map_legend {
position:absolute;
display:flex;
align-items:center;
gap:10px;
background:rgba(0,0,0,.7);
backdrop-filter:blur(4px);
border-radius:24px;
font-size:12px;
color:#fff;
right:14px;
bottom:14px;
padding:8px 18px
}

.map_legend_dot {
display:block;
width:12px;
height:12px;
background:#e67e22;
border-radius:50%;
box-shadow:0 0 0 0 rgba(245,166,35,.5);
animation:map_pulse 2.5s ease-out infinite
}

.map_legend_mobile {
display:none;
align-items:center;
justify-content:center;
gap:10px;
background:rgba(0,0,0,.08);
border-radius:10px;
font-size:12px;
color:#666;
margin:10px 0 0 0;
padding:8px 16px
}

.map_mobile_overlay {
display:none;
position:fixed;
width:100%;
height:100%;
background:rgba(0,0,0,.6);
z-index:9998;
top:0;
left:0
}

.map_mobile_overlay.map_mobile_visible { display:block }

.map_mobile_modal {
display:none;
position:fixed;
width:85vw;
max-width:320px;
max-height:80vh;
background:rgba(25,25,25,.96);
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
border:1px solid rgba(255,165,0,.35);
border-radius:14px;
box-shadow:0 16px 48px rgba(0,0,0,.7);
overflow:hidden;
overflow-y:auto;
z-index:9999;
transform:translate(-50%,-50%);
top:50%;
left:50%
}

.map_mobile_modal.map_mobile_visible { display:block }

.map_mobile_close {
position:absolute;
display:flex;
align-items:center;
justify-content:center;
width:32px;
height:32px;
background:rgba(0,0,0,.5);
border:none;
border-radius:50%;
font-size:16px;
color:#fff;
cursor:pointer;
z-index:1;
top:8px;
right:8px;
transition:background .2s ease;
padding:0
}

.map_mobile_close:hover { background:rgba(0,0,0,.7) }

@media(max-width:768px) {
	.map_section { padding:0 10px }

	.map_hotspot { width:5.5% }

	.map_hotspot.map_hover > .map_tooltip { display:none }

	.map_legend { display:none }

	.map_legend_mobile { display:flex }
}

@media(max-width:480px) {
	.map_hotspot { width:7% }
}

.mascotte {
position:fixed;
z-index:11000;
height:45vh;
width:auto;
transform:translateX(-100%);
will-change:transform;
backface-visibility:hidden;
pointer-events:none;
opacity:0;
transition:transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.4s ease;
bottom:-8vh;
left:0
}

.mascotte.mascotte--visible {
transform:translateX(-20%) rotate(15deg);
transform-origin:bottom center;
opacity:1
}

.mascotte.mascotte--hidden {
transform:translateX(-100%);
opacity:0
}

@media(max-width:768px) {
	.mascotte { 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;
pointer-events:none;
top:0;
left:0;
transition:opacity 0.3s cubic-bezier(0.4,0,0.2,1);
padding:20px
}

.popup_overlay.popup_visible {
opacity:1;
pointer-events:auto
}

.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
	}
}

/* ====================================================================== */
/* ======== MON PROFIL ================================================== */
/* ====================================================================== */

.profil_wrap {
max-width:780px;
margin:0 auto;
padding:20px 0 40px
}

.profil_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 25px 0;
padding:22px 25px
}

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

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

.profil_header p {
font-size:0.85rem;
color:#888;
margin:0
}

.profil_section {
background:#fff;
border-radius:12px;
box-shadow:0 2px 12px rgba(0,0,0,0.07);
margin:0 0 20px 0;
padding:22px 25px
}

.profil_section h3 {
display:flex;
align-items:center;
gap:10px;
font-size:0.95rem;
font-weight:700;
color:#302625;
border-bottom:2px solid #f0f0f0;
margin:0 0 18px 0;
padding:0 0 12px 0
}

.profil_section h3 i { color:#ED8611 }

.profil_hint {
font-size:0.82rem;
color:#999;
margin:0 0 15px 0
}

.profil_row {
display:flex;
gap:14px;
flex-wrap:wrap;
margin:0 0 14px 0
}

.profil_row:last-child { margin:0 }

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

.profil_field.small { flex:0 0 110px }

.profil_field.large { flex:2 }

.profil_field label {
font-size:0.8rem;
font-weight:600;
color:#555
}

.profil_field label span { color:#ED8611 }

.profil_field input,
.profil_field select {
height:42px;
background:#fafafa;
border:1.5px solid #e0e0e0;
border-radius:8px;
font-size:0.88rem;
color:#302625;
transition:border-color .2s;
padding:0 12px
}

.profil_field input:focus,
.profil_field select:focus {
border-color:#ED8611;
outline:none;
background:#fff
}

.profil_actions {
display:flex;
gap:14px;
flex-wrap:wrap;
margin:5px 0 0 0
}

.profil_btn {
display:flex;
align-items:center;
gap:9px;
height:46px;
background:linear-gradient(135deg, #ED8611, #c96e00);
border:none;
border-radius:50px;
font-size:0.9rem;
font-weight:700;
color:#fff;
cursor:pointer;
transition:opacity .2s, transform .15s;
padding:0 26px
}

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

.profil_btn:disabled {
opacity:.6;
cursor:not-allowed;
transform:none
}

.profil_btn--danger {
background:linear-gradient(135deg, #e53935, #b71c1c)
}

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

	.profil_field.small,
	.profil_field.large { flex:1 }

	.profil_actions { flex-direction:column }

	.profil_btn { justify-content:center }
}