@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Open+Sans');/*font-family: 'Open Sans', sans-serif;*/
@import url('https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300');/*font-family: 'Open Sans Condensed', sans-serif;*/
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap');/*font-family: 'Poppins', sans-serif;*/
@import url('https://fonts.googleapis.com/css2?family=Yeseva+One&display=swap');/*font-family: 'Yeseva One', cursive;*/
@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap');/*  font-family: "Instrument Serif", serif;*/

/* HEADER */
/*#header { background:#fff; width: 100%; height: 200px; background-size:100%;}*/


/*HEADER VIDEO*/

header {
  position: relative;
  background-color: black;
  height: 94vh;
  min-height: 25rem;
  width: 100%;
  overflow: hidden;
}
@media (max-width: 992px) {
header {
  position: relative;
  background-color: black;
  height:40vh;
  min-height: 25rem;
  width: 100%;
  overflow: hidden;
}
}
header h3 { font-size:28px; font-family: 'Yeseva One', cursive; color:#fff}

@media (max-width: 992px) {
header h3 { font-size:18px; font-family: 'Yeseva One', cursive;}
}

header a { color:#fff}
header a:hover { color:#fff}
header video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: 0;
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}


header #carouselExampleControls  {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: 0;
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}


header .overlay {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: black;
  opacity: 0;
  z-index: 1;
}





@media (max-width: 1400px) {
header #carouselExampleControls  {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 200%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: 0;
  -ms-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}

header .overlay {
  position: absolute;
  top: 0;
  left: 0;
  height: 200%;
  width: 100%;
  background-color: black;
  opacity: 0;
  z-index: 1;
}

}



header .container {
  position: relative;
  z-index: 2;
}


/*HEADER VIDEO*/


#header.base {background:url("../charte/back-header-1920.webp") no-repeat; background-size: 100%; height: 400px; color:#fff}
#header.base a {color:#fff}
#header p { font-size:28px; font-family: 'Yeseva One', cursive; color:#fff; line-height:1.2em}
#header .logo {margin-top: 40px}
#header img {width: 20%}
@media (max-width:730px) {
#header.base {background:url("../charte/back-header-1024.webp") no-repeat; background-size: 100%; height: 400px; color:#fff}
#header p { font-size:18px; font-family: 'Yeseva One', cursive; color:#fff; line-height:1.2em}
    #header img {width: 40%}
}


/*MENU*/
.bg-light {
background-color: #000 !important;
}

.navbar-brand {
display: none!important
}
.navbar-brand.scrolled{
display: block!important
}


.navbar-nav { margin: 0 auto}

@media (max-width: 992px) {
.navbar-nav {margin: 20px 0px;}
.bg-light {background-color: #000 !important;}
}

.navbar-nav.active { display: block}
.navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show > .nav-link {
color: #fff;
background-color:  #000;
   border-bottom:2px solid #e22028
}


.navbar-light .navbar-nav .nav-link {
    color: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size:16px; border-bottom:2px solid #000
}


.navbar-light .navbar-nav .nav-link:hover {
    color: #fff;
    background-color:  #000;
    border-bottom:2px solid #e22028
}

.navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 1rem;
    padding-left: 1rem;
}


.navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}


/*Custom ouverture menu mobile*/
@media (max-width: 992px) {
.navbar-collapse {
        position: absolute;
        top: 54px;
        left: 0;
        padding-left: 15px;
        padding-right: 15px;
        padding-bottom: 15px;
        width: 100%;
    }
.navbar-collapse.collapsing {
        height: auto;
        -webkit-transition: left 0.3s ease;
        -o-transition: left 0.3s ease;
        -moz-transition: left 0.3s ease;
        transition: left 0.3s ease;
        left: -100%;
    }
.navbar-collapse.show {
        left: 0;
        -webkit-transition: left 0.3s ease-in;
        -o-transition: left 0.3s ease-in;
        -moz-transition: left 0.3s ease-in;
        transition: left 0.3s ease-in;
		background-color:#000;height: 900px;
		text-align: center;
    }
 }


/*MENU*/


a, a:hover {color:#000; text-decoration: none}


#section1 { background: url("../../../assets/theme3/charte/back1.webp") no-repeat; background-size: cover; background-position: top;}
#section1 h1 {color:#fff; line-height: 1.1em}
#section1 h2 {color:#fff; line-height: 1.1em}
#section1 h3 {color:#fff; line-height: 1.1em}
#section1 h4 {color:#fff; line-height: 1.1em}
#section1 h5 {color:#fff; line-height: 1.1em}
#section1 p {color:#fff;}
#section1 p.special {color:#fff; font-size: 1.3em;line-height: 1.2em}

#section2 { background: url("../../../assets/theme3/charte/back2.webp") no-repeat; background-size: cover; background-position: top;   height: 94vh;}
#section2 h1 {color:#fff; line-height: 1.1em}
#section2 h2 {color:#fff; line-height: 1.1em}
#section2 h3 {color:#fff; line-height: 1.1em}
#section2 h4 {color:#fff; line-height: 1.1em}
#section2 h5 {color:#fff; line-height: 1.1em}
#section2 p {color:#fff;}
#section2 p.special {color:#fff; font-size: 1.3em;line-height: 1.2em}

#section3 {background: #000}
#section3 h1 {color:#fff; line-height: 1.1em}
#section3 h2 {color:#fff; line-height: 1.1em}
#section3 h3 {color:#fff; line-height: 1.1em}
#section3 h4 {color:#fff; line-height: 1.1em}
#section3 h5 {color:#fff !important; line-height: 1.4em}
#section3 p {color:#fff;}

#section4 { background: url("../../../assets/theme3/charte/back3.webp") no-repeat; background-size: cover; background-position: top;}
#section4 h1 {color:#fff; line-height: 1.1em}
#section4 h2 {color:#fff; line-height: 1.1em}
#section4 h3 {color:#fff; line-height: 1.1em}
#section4 h4 {color:#fff; line-height: 1.1em}
#section4 h5 {color:#fff; line-height: 1.1em}
#section4 p {color:#fff;}
#section4 p.special {color:#fff; font-size: 1.3em;line-height: 1.2em}

#section5 {background: #000}
#section5 h1 {color:#fff; line-height: 1.4em}
#section5 h2 {color:#fff; line-height: 1.4em}
#section5 p {color:#fff;}


#section-parallax img {padding-top:200px;}
#section-parallax h2 { color:#000; text-align: center }

@media (max-width: 992px) {
    #section-parallax h2 {padding-top:50px}
    #section-parallax img {padding-top:70px;}
}

.parallax {
    /* The image used */
    background-image: url("../../../assets/theme3/charte/img-parallax.webp");
    /* Set a specific height */
    height:600px;
    /* Create the parallax scrolling effect */
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}
@media only screen and (max-device-width: 1366px) {
    .parallax {
        background-attachment: scroll;
        height:300px;
    }
}
/*boutons custom bootstrap*/
.btn-custom {
	color: #fff;
    background-color: #333;
    border-color: #333;
}
.btn-custom:hover, .btn-custom:focus, .btn-custom:active, .btn-custom.active, .open>.dropdown-toggle.btn-custom {
    color: #fff;
    background-color: #333;
    border-color: #333; /*set the color you want here*/
}
/*fin boutons custom bootstrap*/


/*boutons custom bootstrap*/
.button {
  flex: 1 1 auto;
  margin: 0px;
  padding: 20px;
  border: 2px solid #fff;
  text-align: center;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  transition: 0.3s; color:#fff; background:rgb(255,255,255,0);  border-radius: 30px;
}
.button:after {
  position: absolute;
  transition: 0.3s;
  content: "";
  width: 0;
  left: 50%;
  bottom: 0;
  height: 3px;
  background: #000;
}
.button:hover:nth-of-type(1) {
  border-radius: 30px; margin-bottom: 20px;
}
.button:hover:nth-of-type(1):after {
  width: 0%;
}
.button:hover {
  cursor: pointer;
}
.button:hover:after {
  width: 100%;
  left: 0;
}

/*Fin Boutons*/




/*boutons custom bootstrap*/
.button2 {
    flex: 1 1 auto;
    margin: 0px;
    padding: 20px;
    border: 2px solid red;
    text-align: center;
    text-transform: uppercase;
    position: relative;
    overflow: hidden;
    transition: 0.3s; color:#fff; background:red;  border-radius: 30px;
}
.button2:after {
    position: absolute;
    transition: 0.3s;
    content: "";
    width: 0;
    left: 50%;
    bottom: 0;
    height: 3px;
    background: #000;
}
.button2:hover:nth-of-type(1) {
    border-radius: 30px; margin-bottom: 20px;
}
.button2:hover:nth-of-type(1):after {
    width: 0%;
}
.button2:hover {
    cursor: pointer;
}
.button2:hover:after {
    width: 100%;
    left: 0;
}

/*Fin Boutons*/


/*FOOTER*/


footer {
background: #000;
padding: 20px;
min-height: 100px;
}
footer h2 {color: #fff; font-size:18px}
footer p {color: #fff; font-size:14px}
footer p a {color: #fff; }
footer p a:hover {color:#fff; text-decoration: none}
footer p a:visited {color:#fff; text-decoration: none}
footer hr {border-color:#fff; margin: 0rem 0 !important;}
footer ul.list-unstyled li a {color: #fff}
footer .rubrique { color: #fff}
footer .fab {color:#fff}
/*FOOTER*/



.encart { background-color: #9e9e9e;border: 1px solid #eee; padding:20px; border-radius: 10px}



/*FIN INTEGRATION*/





.carousel-wrap{
    margin: 0 auto;
}

/* ---- Barre au-dessus du slider : titre + flèche ---- */
.carousel-topbar{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.75rem;
}

.carousel-title{
    font-weight: 700;
    font-size: clamp(1.4rem, 2.2vw, 2.1rem);
    margin: 0;
    background: linear-gradient(90deg, #fff, var(--accent-2));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    transition: opacity .25s ease;
}

.carousel-title.fading{ opacity: 0; }



.carousel-arrow-btn {
    flex: 0 0 auto;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,1);
    background: rgba(255,255,255,0);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
    box-shadow: 0 8px 24px rgba(0,0,0,.35);
    position: absolute;
    margin-top: 50%;
    z-index: 99999;
    left: 80%;
}






@media (max-width: 767.98px){
.carousel-arrow-btn{
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,1);
    background: rgba(255,255,255,0);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
    box-shadow: 0 8px 24px rgba(0,0,0,.35);
}
}

.carousel-arrow-btn:hover{
    background: linear-gradient(135deg, var(--accent), var(--accent-2));
    transform: scale(1.08);
    box-shadow: 0 10px 30px rgba(226,32,40,.8);
}

.carousel-arrow-btn:active{ transform: scale(.96); }

.carousel-arrow-btn svg{
    width: 22px;
    height: 22px;
    transition: transform .2s ease;
}

.carousel-arrow-btn:hover svg{ transform: translateX(2px); }

/* ---- Slider "peek" : 3 vignettes visibles, une seule avance à chaque nav ---- */
.peek-viewport{
    overflow: hidden;
    border-radius: 24px;
}

.peek-track{
    display: flex;
    flex-wrap: nowrap;
    transition: transform .5s cubic-bezier(.65,.05,.36,1);
    will-change: transform;
}

.peek-item{
    flex: 0 0 auto;
    box-sizing: border-box;
    padding: 6px 10px;
}

.visual-card{
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    background: var(--panel);
    border: 1px solid rgba(255,255,255,.08);

    isolation: isolate;
    transform: scale(.82);
    opacity: .55;
    transition: transform .5s cubic-bezier(.65,.05,.36,1), opacity .5s ease, box-shadow .5s ease;
}

/* la vignette centrale : taille normale, bien visible */
.peek-item.is-center .visual-card{
    transform: scale(1);
    opacity: 1;
    box-shadow: 0 20px 45px rgba(0,0,0,.45);
}

/* la 1ère et la 3ème vignette affichées : légèrement plus petites */
.peek-item.is-side .visual-card{
    transform: scale(.88);
    opacity: .75;
}

.visual-card img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.visual-card::after{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.75) 100%);
    z-index: 1;
}

.visual-caption{
    position: absolute;
    left: 0; right: 0; bottom: 0;
    z-index: 2;
    padding: 1rem 1.1rem;
    font-weight: 600;
    font-size: .95rem;
}

.visual-caption span{
    display: block;
    font-weight: 400;
    font-size: .8rem;
    color: var(--muted);
    margin-top: .15rem;
}

@media (max-width: 767.98px){
    .peek-item{ padding: 4px 5px; }
    .carousel-arrow-btn{ width: 48px; height: 48px; }
}


/*AVIS GOOGLE*/

#section6 {
    margin:0;
    min-height:100vh;
    background:
            radial-gradient(ellipse 900px 500px at 50% -10%, #6c1a24 0%, transparent 60%),
            linear-gradient(180deg, #000 0%, #1c0d10 55%, #000 100%);
    color:#fff;
    font-family:'Work Sans', -apple-system, 'Segoe UI', sans-serif;
    display:flex;
    align-items:center;
    padding:56px 16px;
}

.wrap{ max-width:720px; margin:0 auto; width:100%; }

.eyebrow{
    font-size:12.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:#d69915;
    font-weight:600;
    text-align:center;
    margin-bottom:10px;
}

h1{
    font-family:'Abril Fatface', Georgia, serif;
    font-weight:400;
    font-size:clamp(30px, 5.5vw, 46px);
    text-align:center;
    margin-bottom:16px;
    text-shadow:0 2px 22px rgba(200,29,63,.35);
}

.rating-badge{
    display:flex;
    width:fit-content;
    margin:0 auto 40px;
    align-items:center;
    gap:10px;
    padding:9px 18px 9px 14px;
    border-radius:999px;
    background:rgba(0,0,0,.28);
    border:1px solid rgba(205,164,94,.35);
}
.rating-badge .stars{ color:#d69915; font-size:15px; letter-spacing:1px; }
.rating-badge .score{ font-weight:700; font-variant-numeric:tabular-nums; }
.rating-badge .count{ font-size:13.5px; color:var(--ivoire-sourdine); }
.rating-badge img{ width:15px; height:15px; }

/* --- carousel shell --- */
#avisCarousel{
    border-radius:18px;
    background:
            linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)),
            linear-gradient(160deg, var(--rideau-2) 0%, var(--rideau) 100%);
    border:1px solid rgba(205,164,94,.28);
    box-shadow:0 30px 60px -25px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
    padding:44px 60px;
}

#avisCarousel .carousel-control-prev,
#avisCarousel .carousel-control-next{
    position:static;
    width:42px; height:42px;
    border-radius:50%;
    border:1px solid rgba(205,164,94,.4);
    background:rgba(0,0,0,.25);
    opacity:1;
    transition:background .15s ease, border-color .15s ease;
}

.quote-mark{
    font-family:'Abril Fatface', serif;
    font-size:60px;
    line-height:1;
    color:var(--or);
    opacity:.55;
    display:block;
    margin-bottom:2px;
}

.carousel-item{ min-height:230px; }

.review-text{
    font-size:19px;
    line-height:1.62;
    color:var(--ivoire);
    margin-bottom:24px;
    max-width:58ch;
}

.reviewer{ display:flex; align-items:center; gap:14px; }

.avatar{
    width:46px; height:46px;
    border-radius:50%;
    background:linear-gradient(140deg, var(--or-clair), var(--or) 60%, #8a6a34);
    color:var(--noir);
    display:flex; align-items:center; justify-content:center;
    font-family:'Abril Fatface', serif;
    font-size:18px;
    flex:none;
}

.who .name{ font-weight:600; font-size:15.5px; }
.who .meta{
    font-size:13px;
    color:var(--ivoire-sourdine);
    display:flex; align-items:center; gap:7px; margin-top:2px;
    flex-wrap:wrap;
}
.who .stars-mini{ color:var(--or-clair); letter-spacing:1px; font-size:13px; }

/* --- controls: reposition bootstrap's default arrows below the card --- */
.carousel-control-prev,
.carousel-control-next{
    position:static;
    width:42px; height:42px;
    border-radius:50%;
    border:1px solid rgba(205,164,94,.4);
    background:rgba(0,0,0,.25);
    opacity:1;
    transition:background .15s ease, border-color .15s ease;
}
.carousel-control-prev:hover,
.carousel-control-next:hover{ background:rgba(200,29,63,.28); border-color:var(--or-clair); }
.carousel-control-prev-icon,
.carousel-control-next-icon{ width:16px; height:16px; }

.carousel-controls-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    margin-top:26px;
}

.carousel-indicators{
    position:static;
    margin:0;
    gap:11px;
}
.carousel-indicators [data-bs-target]{
    width:11px; height:11px;
    border-radius:50%;
    border:1px solid rgba(205,164,94,.5);
    background-color:rgba(244,232,219,.18);
    opacity:1;
    transition:box-shadow .2s ease, background-color .2s ease;
}
.carousel-indicators .active{
    background-color:var(--or-clair);
    box-shadow:0 0 10px 2px rgba(236,201,138,.75);
}

.cta-row{ text-align:center; margin-top:30px; }
.cta{
    display:inline-flex; align-items:center; gap:8px;
    font-size:14px; color:var(--ivoire-sourdine); text-decoration:none;
    border-bottom:1px solid transparent; padding-bottom:2px;
    transition:color .15s ease, border-color .15s ease;
}
.cta:hover{ color:var(--or-clair); border-color:var(--or-clair); }

.disclaimer{
    text-align:center; font-size:11.5px;
    color:rgba(205,178,163,.55);
    margin-top:14px;
}

@media (max-width:576px){
    #avisCarousel{ padding:34px 22px; }
    .review-text{ font-size:17px; }
}


.carousel-indicators [data-bs-target] {
    width: 10px !important;
    height: 10px !important;
}





#section7 {
    margin:0;
    min-height:100vh;
    background:
            radial-gradient(ellipse 900px 500px at 50% -10%, #6c1a24 0%, transparent 60%),
            linear-gradient(180deg, #000 0%, #1c0d10 55%, #000 100%);
    color:#fff;
    font-family:'Work Sans', -apple-system, 'Segoe UI', sans-serif;
    display:flex;
    align-items:center;
    padding:56px 16px;
}

.wrap{ max-width:1100px; margin:0 auto; }

.eyebrow{
    font-size:12.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:#fff;
    font-weight:600;
    text-align:center;
    margin-bottom:10px;
}

h1{
    font-family:'Abril Fatface', Georgia, serif;
    font-weight:400;
    font-size:clamp(30px, 5.5vw, 46px);
    text-align:center;
    margin-bottom:14px;
    text-shadow:0 2px 22px rgba(200,29,63,.35);
}

.lede{
    text-align:center;
    color:var(--ivoire-sourdine);
    max-width:56ch;
    margin:0 auto 48px;
    font-size:16px;
    line-height:1.6;
}

/* --- cards --- */
.formula-card{
    background:
            linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)),
            linear-gradient(160deg, var(--rideau-2) 0%, var(--rideau) 100%);
    border:1px solid rgba(205,164,94,.28);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 24px 48px -22px rgba(0,0,0,.5);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.formula-card:hover{
    transform:translateY(-4px);
    border-color:rgba(236,201,138,.55);
    box-shadow:0 30px 56px -20px rgba(0,0,0,.6);
}

.card-visual{
    height:auto;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    border-bottom:1px solid rgba(205,164,94,.28);
}
.card-visual svg{ width:64px; height:64px; }

.visual-a{ background:radial-gradient(circle at 50% 30%, rgba(236,201,138,.28), transparent 65%), linear-gradient(160deg,#2a0d13,#4a1420); }
.visual-b{ background:radial-gradient(circle at 50% 30%, rgba(200,29,63,.32), transparent 65%), linear-gradient(160deg,#3a0f16,#5c1826); }
.visual-c{ background:radial-gradient(circle at 50% 30%, rgba(236,201,138,.36), transparent 65%), linear-gradient(160deg,#4a1118,#6b1a24); }

.badge-formule{
    position:absolute;
    top:12px; left:12px;
    font-size:10.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--noir);
    background:var(--or-clair);
    padding:4px 10px;
    border-radius:999px;
    font-weight:700;
}

.card-body{
    padding:26px 24px 28px;
    display:flex;
    flex-direction:column;
    height:100%;
}

.card-title{
    font-family:'Abril Fatface', Georgia, serif;
    font-weight:400;
    font-size:21px;
    color:var(--ivoire);
    margin-bottom:10px;
    line-height:1.2;
}

.card-text{
    font-size:14.5px;
    line-height:1.55;
    color:var(--ivoire-sourdine);
    margin-bottom:20px;

}

.price-row{
    display:flex;
    align-items:baseline;
    gap:6px;
    margin-bottom:18px;
    padding-top:16px;
    border-top:1px dashed rgba(205,164,94,.3);
}
.price-from{
    font-size:11.5px;
    color:var(--ivoire-sourdine);
    text-transform:uppercase;
    letter-spacing:.06em;
}
.price{
    font-family:'Abril Fatface', Georgia, serif;
    font-size:30px;
    color:var(--or-clair);
    font-variant-numeric:tabular-nums;
}
.price-unit{
    font-size:13px;
    color:var(--ivoire-sourdine);
}

.btn-offrir{
    background:linear-gradient(135deg, var(--rouge-vif), #a3172f);
    border:1px solid rgba(236,201,138,.4);
    color:var(--ivoire);
    font-weight:600;
    font-size:14px;
    padding:11px 18px;
    border-radius:10px;
    transition:filter .15s ease, transform .15s ease;
}
.btn-offrir:hover{ filter:brightness(1.12); color:var(--ivoire); }
.btn-offrir:active{ transform:scale(.98); }

.note{
    text-align:center;
    font-size:12px;
    color:rgba(205,178,163,.5);
    margin-top:36px;
}


.formula-carousel {
    padding: 0 3rem; /* laisse la place aux flèches sur les côtés */
}

/* C'est ce conteneur, et non plus .formula-carousel, qui sert de repère
   de positionnement pour les flèches : elles se centrent donc uniquement
   sur la hauteur des slides, sans tenir compte des dots en dessous. */
.formula-carousel-viewport {
    position: relative;
}

.formula-carousel .carousel-indicators {
    position: static;
    margin-top: 2rem;
    margin-bottom: 0;
}

.formula-carousel .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #d0d0d0;
    border: none;
    opacity: 1;
}

.formula-carousel .carousel-indicators .active {
    background-color: #b8863b; /* à adapter à votre couleur d'accent */
}

.formula-carousel .carousel-control-prev,
.formula-carousel .carousel-control-next {
    width: 3rem;
    opacity: 1;
}

.formula-carousel .carousel-control-prev-icon,
.formula-carousel .carousel-control-next-icon {
    width: 2rem;
    height: 2rem;
    background-color: #b8863b; /* à adapter à votre couleur d'accent */
    border-radius: 50%;
    padding: 0.4rem;
    background-size: 60%;
}

.formula-carousel-viewport {
    position: relative;
}

.formula-carousel .carousel-control-prev,
.formula-carousel .carousel-control-next {
    position: absolute;
    top: 250px;
    bottom: 0;
    width: 3rem;
    opacity: 1;
}


.formula-carousel {
    padding: 0 78px; /* largeur de la flèche (48px) + 30px de marge */
}

.formula-carousel-viewport {
    position: relative;
}

.formula-carousel .carousel-control-prev,
.formula-carousel .carousel-control-next {
    position: absolute;
    top: 250px;
    bottom: 250px;
    width: 3rem;
    opacity: 1;
}

.formula-carousel .carousel-control-prev {
    left: -78px; /* 30px de marge + 48px de largeur de flèche */
}

.formula-carousel .carousel-control-next {
    right: -78px;
}

.formula-carousel .carousel-control-prev-icon,
.formula-carousel .carousel-control-next-icon {
    width: 2rem;
    height: 2rem;
    background-color: #b8863b;
    border-radius: 50%;
    padding: 0.4rem;
    background-size: 60%;
}





@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Work+Sans:wght@400;500;600&display=swap');

.agenda-row{
    --agenda-noir: #17080b;
    --agenda-rideau: #2a0d13;
    --agenda-rideau-2: #4a1420;
    --agenda-or: #cda45e;
    --agenda-or-clair: #ecc98a;
    --agenda-ivoire: #f4e8db;
    --agenda-ivoire-sourdine: #cbb6a8;
    --agenda-rouge-vif: #c81d3f;

    font-family: 'Work Sans', -apple-system, 'Segoe UI', sans-serif;
    color: var(--agenda-ivoire);
    align-items: stretch;
}

.agenda-widget,
.agenda-details{
    height: 100%;
    box-sizing: border-box;
    background:
            linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)),
            linear-gradient(160deg, var(--agenda-rideau-2) 0%, var(--agenda-rideau) 100%);
    border: 1px solid rgba(205,164,94,.28);
    border-radius: 18px;
    box-shadow: 0 24px 48px -22px rgba(0,0,0,.55);
}

.agenda-widget{
    width: 100%;
    padding: 28px 26px 26px;
}

.agenda-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.agenda-month-title{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 22px;
    text-align: center;
    margin: 0;
    letter-spacing: .02em;
    text-transform: capitalize;
}

.agenda-nav-btn{
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(205,164,94,.4);
    background: rgba(0,0,0,.25);
    color: var(--agenda-ivoire);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.agenda-nav-btn svg{ width: 18px; height: 18px; }
.agenda-nav-btn:hover{
    background: rgba(200,29,63,.28);
    border-color: var(--agenda-or-clair);
}
.agenda-nav-btn:active{ transform: scale(.94); }

.agenda-weekdays{
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-size: 11.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--agenda-ivoire-sourdine);
    margin-bottom: 8px;
}

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

.agenda-day{
    position: relative;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--agenda-ivoire);
    border-radius: 10px;
    background: rgba(255,255,255,.02);
    border: 1px solid transparent;
}

.agenda-day.is-empty{ background: none; }

.agenda-day.has-event{
    cursor: pointer;
    background: rgba(205,164,94,.14);
    border-color: rgba(205,164,94,.4);
    font-weight: 600;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.agenda-day.has-event:hover{
    background: rgba(200,29,63,.3);
    border-color: var(--agenda-or-clair);
    transform: translateY(-1px);
}
.agenda-day.has-event::after{
    content: "";
    position: absolute;
    bottom: 6px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--agenda-or-clair);
}

.agenda-day.is-today{
    border-color: var(--agenda-or-clair);
    box-shadow: 0 0 0 1px var(--agenda-or-clair) inset;
}

.agenda-day.is-selected{
    background: var(--agenda-rouge-vif);
    border-color: var(--agenda-or-clair);
}
.agenda-day.is-selected::after{ background: var(--agenda-ivoire); }

.agenda-legend{
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: 18px;
    font-size: 12px;
    color: var(--agenda-ivoire-sourdine);
}
.legend-item{ display: flex; align-items: center; gap: 6px; }
.dot{ width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-event{ background: var(--agenda-or-clair); }
.dot-today{ background: transparent; border: 1px solid var(--agenda-or-clair); }

.agenda-details{
    padding: 26px 24px;
    display: flex;
    align-items: center;
}

.agenda-details-placeholder{
    margin: 0;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--agenda-ivoire-sourdine);
    text-align: center;
    width: 100%;
}

.agenda-details-card{
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    animation: agendaFadeIn .2s ease;
}

.agenda-details-title{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 21px;
    line-height: 1.3;
    color: var(--agenda-ivoire);
    margin: 0;
}

.agenda-details-date{
    font-size: 11.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--agenda-or-clair);
}

.agenda-details-row{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 13.5px;
    padding: 8px 0;
    border-top: 1px dashed rgba(205,164,94,.28);
}
.agenda-details-row .label{
    color: var(--agenda-ivoire-sourdine);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .06em;
}
.agenda-details-row .value{
    color: var(--agenda-ivoire);
    font-weight: 600;
    text-align: right;
}

.agenda-details-image{
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 12px;
    border: 1px solid rgba(205,164,94,.28);
    display: block;
}

.agenda-details-cta{
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--agenda-rouge-vif), #a3172f);
    border: 1px solid rgba(236,201,138,.4);
    color: var(--agenda-ivoire);
    font-weight: 600;
    font-size: 13.5px;
    padding: 10px 18px;
    border-radius: 10px;
    text-decoration: none;
    transition: filter .15s ease;
}
.agenda-details-cta:hover{ filter: brightness(1.12); color: var(--agenda-ivoire); }

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

@media (max-width: 420px){
    .agenda-widget{ padding: 20px 14px; }
    .agenda-day{ font-size: 12px; }
}


.agenda-details-cta{
    cursor: pointer;
    font-family: inherit;
}

.agenda-details-secondary-link{
    font-size: 12px;
    color: var(--agenda-ivoire-sourdine);
    text-decoration: underline;
    align-self: flex-start;
}
.agenda-details-secondary-link:hover{ color: var(--agenda-or-clair); }

/* ---- Panneau de réservation (formules) ---- */
.agenda-booking{
    box-sizing: border-box;
    background:
            linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)),
            linear-gradient(160deg, var(--agenda-rideau-2) 0%, var(--agenda-rideau) 100%);
    border: 1px solid rgba(205,164,94,.28);
    border-radius: 18px;
    box-shadow: 0 24px 48px -22px rgba(0,0,0,.55);
    padding: 26px 26px 28px;
    animation: agendaFadeIn .25s ease;
}
.agenda-booking[hidden]{ display: none; }

.agenda-booking-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 20px;
}
.agenda-booking-title{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 20px;
    margin: 0;
}
.agenda-booking-close{
    background: none;
    border: none;
    color: var(--agenda-ivoire);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    padding: 0 6px;
}
.agenda-booking-close:hover{ color: var(--agenda-or-clair); }

.agenda-booking-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 16px;
}

.formula-option{
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(205,164,94,.28);
    border-radius: 14px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: border-color .15s ease;
}
.formula-option:hover{ border-color: var(--agenda-or-clair); }
.formula-option.is-soldout{ opacity: .5; }

.formula-option-head{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}
.formula-option-head h4{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 16px;
    margin: 0;
    line-height: 1.25;
}
.formula-option-price{
    font-family: 'Abril Fatface', Georgia, serif;
    font-size: 20px;
    color: var(--agenda-or-clair);
    white-space: nowrap;
}

.formula-option-desc{
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--agenda-ivoire-sourdine);
    margin: 0;
}
.formula-option-note{
    font-size: 11.5px;
    font-style: italic;
    color: var(--agenda-or);
    margin: 0;
}

.formula-option-avail{
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    margin-top: 2px;
}
.badge-avail, .badge-soldout{
    padding: 3px 9px;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
}
.badge-avail{ background: rgba(205,164,94,.18); color: var(--agenda-or-clair); }
.badge-soldout{ background: rgba(200,29,63,.25); color: #ff9fae; }
.tickets-left{ color: var(--agenda-ivoire-sourdine); }

.btn-choisir{
    margin-top: 6px;
    background: linear-gradient(135deg, var(--agenda-rouge-vif), #a3172f);
    border: 1px solid rgba(236,201,138,.4);
    color: var(--agenda-ivoire);
    font-weight: 600;
    font-size: 13px;
    padding: 9px 14px;
    border-radius: 9px;
    cursor: pointer;
    transition: filter .15s ease;
}
.btn-choisir:hover{ filter: brightness(1.12); }

.formula-qty{
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-top: 1px dashed rgba(205,164,94,.28);
    padding-top: 10px;
}
.formula-qty[hidden]{ display: none; }
.formula-qty label{
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--agenda-ivoire-sourdine);
}
.qty-stepper{ display: flex; align-items: center; gap: 8px; }
.qty-btn{
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid rgba(205,164,94,.4);
    background: rgba(0,0,0,.25);
    color: var(--agenda-ivoire);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}
.qty-btn:hover{ border-color: var(--agenda-or-clair); }
.qty-input{
    width: 56px;
    text-align: center;
    background: rgba(0,0,0,.3);
    border: 1px solid rgba(205,164,94,.4);
    border-radius: 8px;
    color: var(--agenda-ivoire);
    padding: 6px 4px;
    font-size: 14px;
}
.btn-valider{
    background: var(--agenda-or-clair);
    color: #2a0d13;
    font-weight: 700;
    font-size: 13px;
    padding: 9px 14px;
    border-radius: 9px;
    border: none;
    cursor: pointer;
}
.btn-valider:hover{ filter: brightness(1.05); }

.agenda-booking-confirm{ margin-top: 18px; }
.booking-success{
    background: rgba(205,164,94,.14);
    border: 1px solid rgba(205,164,94,.4);
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 13.5px;
    color: var(--agenda-ivoire);
}

.formula-option-avail{
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    margin-top: auto; /* pousse la disponibilité + le bouton en bas de la carte */
    padding-top: 10px;
}



.qty-total{
    margin-left: auto;
    font-size: 13px;
    font-weight: 700;
    color: var(--agenda-or-clair);
    white-space: nowrap;
}






.addon-card{
    background:
            linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12)),
            linear-gradient(160deg, var(--rideau-2) 0%, var(--rideau) 100%);
    border: 1px solid rgba(205,164,94,.28);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 48px -22px rgba(0,0,0,.5);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.addon-card:hover{
    transform: translateY(-4px);
    border-color: rgba(236,201,138,.55);
    box-shadow: 0 30px 56px -20px rgba(0,0,0,.6);
}

.addon-card-visual{
    height: 220px;
    overflow: hidden;
}
.addon-card-visual img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (min-width: 768px){
    .addon-card-visual{
        height: 100%;
        border-right: 1px solid rgba(205,164,94,.28);
    }
}

.addon-card-body{
    height: 100%;
    padding: 24px 22px 26px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.addon-card-body{
    padding: 24px 22px 26px;
    display: flex;
    flex-direction: column;
}

.addon-card-title{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 20px;
    color: var(--ivoire);
    margin-bottom: 8px;
    line-height: 1.2;
}

.addon-card-desc{
    font-size: 14px;
    line-height: 1.5;
    color: var(--ivoire-sourdine);
    margin-bottom: 18px;
}

.addon-price-row{
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 18px;
    padding-top: 14px;
    border-top: 1px dashed rgba(205,164,94,.3);
}

.addon-card-footer{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.addon-qty-stepper{
    display: flex;
    align-items: center;
    gap: 8px;
}
.addon-qty-btn{
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid rgba(205,164,94,.4);
    background: rgba(0,0,0,.25);
    color: var(--ivoire);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}
.addon-qty-btn:hover{ border-color: var(--or-clair); }
.addon-qty-input{
    width: 52px;
    text-align: center;
    background: rgba(0,0,0,.3);
    border: 1px solid rgba(205,164,94,.4);
    border-radius: 8px;
    color: var(--ivoire);
    padding: 6px 4px;
    font-size: 14px;
}

.addon-card-title{
    font-family: 'Abril Fatface', Georgia, serif;
    font-weight: 400;
    font-size: 20px;
    color: #fff;
    margin-bottom: 8px;
    line-height: 1.2;
}

.addon-card-desc{
    font-size: 14px;
    line-height: 1.5;
    color: #fff;
    margin-bottom: 18px;
}

.addon-price-row .price-from,
.addon-price-row .price-unit{
    color: #fff;
}

.addon-qty-input{
    width: 52px;
    text-align: center;
    background: rgba(0,0,0,.3);
    border: 1px solid rgba(205,164,94,.4);
    border-radius: 8px;
    color: #fff;
    padding: 6px 4px;
    font-size: 14px;
}

.voucher-field{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.voucher-input{
    flex: 1 1 200px;
    background: rgba(0,0,0,.3);
    border: 1px solid rgba(205,164,94,.4);
    border-radius: 8px;
    color: #fff;
    padding: 10px 12px;
    font-size: 14px;
}
.voucher-input::placeholder{ color: rgba(255,255,255,.5); }

.voucher-message{
    margin-top: 10px;
    font-size: 13px;
    min-height: 18px;
}
.voucher-message.is-success{ color: var(--or-clair); }
.voucher-message.is-error{ color: #ff9fae; }

.btn-remove-row{
    background: none;
    border: none;
    color: #ff9fae;
    cursor: pointer;
    padding: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    transition: background .15s ease, color .15s ease;
}
.btn-remove-row:hover{
    color: #fff;
    background: rgba(200,29,63,.3);
}







@media only screen and (max-width: 767px) {
    #no-more-tables table,
    #no-more-tables thead,
    #no-more-tables tbody,
    #no-more-tables th,
    #no-more-tables td,
    #no-more-tables tr {
        display: block;
    }

    /* on masque l'en-tête classique, remplacé par les labels devant chaque valeur */
    #no-more-tables thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    #no-more-tables tr {
        border: 1px solid rgba(255,255,255,.35) !important;
        border-radius: 10px;
        overflow: hidden;
        margin-bottom: 18px;
    }

    #no-more-tables td {
        border: none;
        border-bottom: 1px solid rgba(255,255,255,.15);
        position: relative;
        padding: 10px 12px 10px 46%;
        white-space: normal;
        text-align: left;
        width: 100% !important;
    }
    #no-more-tables td:last-child{
        border-bottom: none;
    }

    #no-more-tables td:before {
        position: absolute;
        top: 10px;
        left: 12px;
        width: 40%;
        padding-right: 10px;
        white-space: nowrap;
        text-align: left;
        font-weight: 700;
        content: attr(data-title);
        color: #fff;
        opacity: .75;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    /* La cellule "Produit" a déjà sa propre mise en page (image + texte) :
       pas besoin du label ni du décalage à gauche pour elle */
    #no-more-tables td[data-title="Produit"] {
        padding-left: 12px;
    }
    #no-more-tables td[data-title="Produit"]:before {
        content: none;
    }
    #no-more-tables td[data-title="Produit"] img {
        max-width: 160px;
        display: block;
        margin: 0 auto 10px;
    }
}

@media only screen and (max-width: 767px) {
    #no-more-tables table,
    #no-more-tables thead,
    #no-more-tables tbody,
    #no-more-tables tfoot,
    #no-more-tables th,
    #no-more-tables td,
    #no-more-tables tr {
        display: block;
    }

    #no-more-tables td[data-title="Action"] {
        padding-left: 12px;
        text-align: center;
    }
    #no-more-tables td[data-title="Action"]:before {
        content: none;
    }
}


.giftcard-message{
    margin-top: 10px;
    font-size: 13px;
    min-height: 18px;
}
.giftcard-message.is-success{ color: #2e7d32; font-weight: 600; }
.giftcard-message.is-error{ color: #c81d3f; font-weight: 600; }