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

@font-face {
    font-family: 'museo_500';
    src: local('museo'), local('museo'),
        url('font/Museo-500.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'museo_900';
    src: local('museo'), local('museo'),
        url('font/Museo-900.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
a{
    cursor: pointer;
}
.fw_900{
    font-family: 'museo_900';
}
.green{
    color:#146c4f;
}
.white{
    color:#ffffff;
}
body{
    background:url('image/bg_blur.jpg');
    position: absolute;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center top;
}
header, section:not(#video_layer), footer {
    width: 40%;
    margin: 0 auto;
    position: relative;
    display: block;
    padding: 0;
    top: 0px;

}
.container {
    width: 100%;
    position: relative;
    margin: 0 auto;
    padding: 0;
    display: block;
}
#bg {
  position: absolute;
  width: 40%;
  left: 30%;
  top: 0;
  overflow: hidden;
}

#bg img {
    display: block;
    width: 154%;
    height: auto;
    object-fit: cover;
    object-position: center top;
    left: -27%;
    position: relative;
}

#header {
    display: block;
    height: 42vw;
    overflow: hidden;
}
#header_txt {
    position: relative;
    left: 50%;
    transform: translate(-50%, 10px);
    width: 70%;
}
#mini_carte_u {
    display: inline-block;
    position: relative;
    width: 5vw;
    top: -1vw;
    left: 2.5vw;
    animation: yo-yo 1.5s infinite alternate;
}
#circle {
    width: 90%;
    left: 5%;
    position: absolute;
    top:8%;
}
#titre {
    width: 100%;
    left: 2%;
    position: absolute;
    top: 0%;
}


#calendrier {
    display: block;
    height: 51vw;
    overflow: hidden; 
}
#branche1 {
    position: absolute;
    top: 35vw;
    width: 20vw;
    left: -4vw;
    animation: branche-sway 4.5s ease-in-out infinite;
    transform-origin: left center;
    pointer-events: none;
}

#branche2 {
    position: absolute;
    top: 28vw;
    width: 20vw;
    right: -24vw;
    transform: scale(-1);
    animation: branche-sway2 4s 
ease-in-out infinite;
    transform-origin: left center;
        z-index: 10;
        pointer-events: none;
}
@keyframes branche-sway{
  0%{
    transform: rotate(-3deg) translateY(0);
  }
  50%{
    transform: rotate(2deg) translateY(0.5vw);
  }
  100%{
    transform: rotate(-3deg) translateY(0);
  }
}
@keyframes branche-sway2{
  0%{
    transform: rotate(-3deg) translateY(0) scale(-1);
  }
  50%{
    transform: rotate(2deg) translateY(0.5vw) scale(-1);
  }
  100%{
    transform: rotate(-3deg) translateY(0) scale(-1);
  }
}
#neige {
    position: absolute;
    width: 70%;
    left: 15%;
    top: 5%;
}
#town {
    position: relative;
    top: -24vw;
    width: 70%;
    left: 18%;
}
/* === SLIDER (3 éléments, infini) === */
#slider{
  position: relative;
  width: 70%;
  margin: 0 auto;
  height: 34vw;            /* ajuste selon ton visuel */
  overflow: hidden;
}

#slider ul{
  list-style: none;
  position: absolute;
  inset: 0;
}

#slider li{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  /* pas de transition CSS ici, GSAP s'en occupe */
}


/* positions */
.pos-prev   { transform: translateX(-110%); opacity: .55; filter: blur(1px); }
.pos-current{ transform: translateX(0%);    opacity: 1;   filter: none;      z-index: 2; }
.pos-next   { transform: translateX(110%);  opacity: .55; filter: blur(1px); }

/* grosse valeur “jour” au centre */
#slider .day {
    position: absolute;
    top: 5%;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'museo_900', sans-serif;
    font-size: 14vw;
    line-height: 0.9;
    color: #fff9d6;
    text-shadow: 0 0 14px rgba(255, 255, 210, .9), 0 6px 18px rgba(0, 0, 0, .35);
    letter-spacing: .01em;
    pointer-events: none;
}


/* flèches */
#left, #right{ cursor: pointer; z-index: 3; }
#left:active, #right:active{ transform: scale(.96); }
#left {
    position: absolute;
    left: 3vw;
    width: 6vw;
    top: 1vw;
}
#right {
    position: absolute;
    right: 3vw;
    width: 6vw;
    top: 1vw;
}
#left.disabled, #right.disabled {
  opacity:.35;
  pointer-events:none;
  filter:grayscale(100%);
}
#guirlande {
    position: relative;
    width: 100%;
    top: -26vw;
}
#cta {
    /* display: inline-block; */
    position: absolute;
    width: 55%;
    top: 36.5vw;
    left: 50%;
    transform: translate(-50%, 0);
    cursor: pointer;
}


.rotate {
    opacity: 1 !important;
    -moz-transform: rotateY(0deg) !important;
    -o-transform: rotateY(0deg) !important;
    -webkit-transform: rotateY(0deg) !important;
    transform: rotateY(0deg) !important;
}
.rotate_next {
    opacity: 0 !important;
    -moz-transform: rotateY(90deg) !important;
    -o-transform: rotateY(90deg) !important;
    -webkit-transform: rotateY(90deg) !important;
    transform: rotateY(90deg) !important;
}
    

#carte_u {
    display: block;
    height: 29vw;
    
    
}
#txt_carte_u {
    display: inline-block;
    position: relative;
    width: 26.3vw;
    top: -3.4vw;
    left: 0.3vw;
}
img#boule {
    position: absolute;
    top: -16vw;
    right: -1vw;
    width: 20vw;
    pointer-events: none;
}
@keyframes yo-yo {
  0% {transform: rotate(0); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(0);  }
}
#app_apple {
    display: inline-block;
    position: relative;
    width: 7.6vw;
    top: -3vw;
    left: -13.1vw;
}
#app_google {
    display: inline-block;
    position: relative;
    width: 7.6vw;
    top: -5.6vw;
    left: 5vw;
}
#cta_super_u {
    position: absolute;
    right: 2.5vw;
    top: 15vw;
}
#ml, #ml2 {
    display: inline-block;
    position: relative;
    width: 100%;
    top: -8.2vw;
    left: 0%;
}
#ml2 {
    display: inline-block;
    position: relative;
    width: 41.2vw;
    top: 0vw;
    left: -0.4vw;
}
#map {
    display: block;
    height: 43.2vw;
    overflow: hidden;
}
#mag_title {
    position: relative;
    width: 21vw;
    left: 4vw;
}
#map_stage {
    transform: scale(.8);
    position: relative;
    top: -14vw;
}
#img_map {
    display: inline-block;
    position: relative;
    width: 41.2vw;
    top: 1vw;
    left: 0vw;
}
#magsins_hu {
    position: relative;
    display: block;
    width: 100%;
    height: 3.5vw;
    padding: 0vw 1.3vw;
    top: -16vw;
}
#magsins_su {
    position: relative;
    display: block;
    width: 100%;
    height: 3vw;
    padding: 0vw 1.3vw;
    top: -16vw;
}
.logo_u {
    padding: 0vw 1.3vw 0vw 0vw;
    width: 11.1vw;
    float: left;
}
.txt_map {
    font-family: 'museo_500';
    font-size: .7vw;
    -moz-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}

#mag_container {
    width: 39.5vw;
    height: 46vw;
    position: absolute;
    top: 0vw;
}
#mag_container span {
    position: absolute;
    background-image: url(image/pin_map.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 10px;
    height: 10px;
    -moz-transition: all 500ms ease;
    -o-transition: all 500ms ease;
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
}
.mag_hov{
    -moz-transform: scale(1.3);
    -o-transform: scale(1.3);
    transform: scale(1.3);
    -webkit-transform: scale(1.3);
    
}

#mag1 {
    top: 40%;
    left: 27%;
}
#mag2 {
    top: 52.5%;
    left: 55.5%;
}
#mag3 {
    top: 50%;
    left: 55.5%;
}
#mag4 {
    top: 11.5%;
    left: 78%;
}
#mag5 {
    top: 37%;
    left: 50.5%;
}
#mag6 {
    top: 34.5%;
    left: 36.5%;
}
#mag7 {
    top: 23%;
    left: 60%;
}
#mag8 {
    top: 44%;
    left: 82%;
}
#mag9 {
    top: 41%;
    left: 86.5%;
}
#mag10 {
    top: 41.5%;
    left: 26%;
}
#mag11 {
    top: 41%;
    left: 27%;
}
#mag12 {
    top: 45.5%;
    left: 20%;
}
#mag13 {
    top: 39%;
    left: 30%;
}
#mag14 {
    top: 40.5%;
    left: 32%;
}
#mag15 {
    top: 41%;
    left: 28.5%;
}
#mag16 {
    top: 40%;
    left: 30%;
}
#mag17 {
    top: 39.5%;
    left: 21%;
}
#mag18 {
    top: 42%;
    left: 30%;
}
#mag19 {
    top: 40%;
    left: 35%;
}
#mag20 {
    top: 42%;
    left: 32%;
}
#mag21 {
    top: 44%;
    left: 49.5%;
}
#mag22 {
    top: 44%;
    left: 52%;
}
#mag23 {
    top: 39%;
    left: 57%;
}
#mag24 {
    top: 33%;
    left: 2%;
}
#mag25 {
    top: 50%;
    left: 10%;
}
#mag26 {
    top: 47%;
    left: 7%;
}
#mag27 {
    top: 35%;
    left: 5%;
}
#mag28 {
    top: 50%;
    left: 8%;
}
#mag29 {
    top: 37%;
    left: 10%;
}
#mag30 {
    top: 5%;
    left: 68%;
}
#mag31 {
    top: 12.5%;
    left: 75%;
}
#mag32 {
    top: 11%;
    left: 76%;
}
#mag33 {
    top: 11.5%;
    left: 80.5%;
}
#mag34 {
    top: 13%;
    left: 78%;
}
#mag35 {
    top: 12%;
    left: 77%;
}
#mag36 {
    top: 11.5%;
    left: 75%;
}
#mag37 {
    top: 39%;
    left: 66%;
}
#mag38 {
    top: 38%;
    left: 72%;
}
#mag39 {
    top: 15%;
    left: 70%;
}
#mag40 {
    top: 10%;
    left: 64%;
}
#mag41 {
    top: 47.5%;
    left: 68%;
}
#mag42 {
    top: 36%;
    left: 49%;
}
#mag43 {
    top: 27%;
    left: 57%;
}
#mag44 {
    top: 37%;
    left: 49.5%;
}
#mag45 {
    top: 32%;
    left: 40%;
}
#mag46 {
    top: 34.5%;
    left: 33%;
}
#mag47 {
    top: 33.5%;
    left: 34%;
}
#mag48 {
    top: 35%;
    left: 46.5%;
}
#mag49 {
    top: 38%;
    left: 48%;
}
#mag50 {
    top: 32%;
    left: 45%;
}
#mag51 {
    top: 47%;
    left: 78%;
}
#mag52 {
    top: 48%;
    left: 83%;
}
#mag53 {
    top: 48.5%;
    left: 78%;
}
#mag54 {
    top: 48%;
    left: 77%;
}
#mag55 {
    top: 49.5%;
    left: 75%;
}
#mag56 {
    top: 46%;
    left: 65%;
}
#mag57 {
    top: 48.5%;
    left: 62%;
}
#mag58 {
    top: 25%;
    left: 72%;
}
#mag59 {
    top: 51.5%;
    left: 70%;
}
#mag60 {
    top: 50%;
    left: 70%;
}
#mag61 {
    top: 47%;
    left: 71%;
}
#mag62 {
    top: 46%;
    left: 72%;
}
#mag63 {
    top: 47.5%;
    left: 72%;
}
#mag64 {
    top: 48.5%;
    left: 71%;
}
#mag65 {
    top: 43%;
    left: 66%;
}
#mag66 {
    top: 44%;
    left: 66%;
}
#mag67 {
    top: 43%;
    left: 68%;
}
#footer {
    display: block;
    height: 7vw;
    overflow: hidden;
    height: 14.2vw;
    top: -8%;
}
#guirlande2 {
    position: relative;
    width: 130%;
    top: 3vw;
    left: -15%;
}
#cta_footer {
    position: absolute;
    top: 5vw;
    left: 10%;
    width: 80%;
}

#snow_fall {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0px;
    left: 0px;
    overflow: hidden;
}
.snowball-flakes{
    z-index: 1 !important;
}
/* ===== Preview / Countdown (remplace seulement le slider) ===== */
#countdown_preview{
  position: relative;
  width: 70%;          /* même largeur que #slider */
  height: 34vw;        /* même hauteur que #slider */
  margin: 0 auto;
}

#countdown_preview .countdown {
  position: absolute;
  top: 8%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6vw;

  width: 60%;       /* 👈 largeur du bloc : 60% du conteneur parent */
  margin: 0 auto;   /* pour bien le centrer */
}

.cd-item{ text-align: center; }

.cd-circle{
  width: 7.5vw; height: 7.5vw;
  border: .35vw solid rgba(255,255,210,.95);
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 18px rgba(255,255,210,.65), inset 0 0 8px rgba(255,255,210,.35);
  backdrop-filter: blur(1px);
}

.cd-number{
  font-family: 'museo_900', sans-serif;
  font-size: 4vw;
  color: #fff9d6;
  text-shadow: 0 0 14px rgba(255,255,210,.9), 0 6px 18px rgba(0,0,0,.35);
  line-height: 1;
  min-width: 4.8ch;
  letter-spacing: .02em;
}

.cd-label{
  margin-top: .6vw;
  font-family: 'museo_500', sans-serif;
  font-size: 1.4vw;
  color: #ffffff;
  text-shadow: 0 0 8px rgba(0,0,0,.35);
}
/* ===== Overlay vidéo calendrier de l'avent ===== */
#video_layer {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(8px);
  z-index: 9999;
  padding: 0; /* 👈 aucune marge autour */
}

/* Conteneur vidéo qui s'adapte à l'écran */
.video_modal {
    position: absolute;
    width: 100vw;
    height: 100vh;
    display: block;
    align-items: center;
    justify-content: center;
}
.video_wrapper {
    width: 40%;
    position: absolute;
    left: 30%;
}

#video_locked_timer {
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: #fff9d6;
    text-shadow: 0 0 10px rgba(0, 0, 0, .6);
    pointer-events: none;
}

.video_timer_label{
  font-family: 'museo_500', sans-serif;
  font-size: 1.4vw;
  margin-bottom: .5vw;
}

.video_timer_value{
  font-family: 'museo_900', sans-serif;
  font-size: 3vw;
  letter-spacing: .08em;
}

/* Masqué par défaut, activé en JS seulement pour J+1/J+2 */
#video_locked_timer.hidden{
  display: none;
}
/* La vidéo s'adapte parfaitement */
#offre_video {
    max-width: 100vw;
    max-height: 100vh;
    width: auto;
    height: auto;
    object-fit: contain;
    background: black;
    border-radius: 0.5vw;
    left: 50%;
    position: absolute;
    transform: translate(-50%, 0px);
}

/* Bouton fermer */
#video_close {
  position: absolute;
  top: 1.2vw;      /* positionné SUR la vidéo */
  right: 1.2vw;

  width: 2.8vw;
  height: 2.8vw;
  border-radius: 50%;

  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);

  color: white;
  border: none;
  font-size: 1.6vw;
  line-height: 1;
  cursor: pointer;
  z-index: 5;        /* 👈 pour être au-dessus de la vidéo */

  display: flex;
  align-items: center;
  justify-content: center;
}
#video_close:hover{
  background: rgba(255,255,255,0.12);
}

/* Empêcher le scroll quand la vidéo est ouverte */
body.no-scroll{
  overflow: hidden;
}
@media (max-width: 1200px) {
header, section:not(#video_layer), footer {
    width: 60%;
}

#bg {
    width: 60%;
    left: 20%;
    height: auto;
}
#mini_carte_u {
    width: 6vw;
    top: -1vw;
    left: 4.5vw;
}
#header{
    height: 67vw;
}
#calendrier{
    height: 63vw;
}
#left {
    position: absolute;
    left: 6vw;
    width: 9vw;
    top: 1vw;
}
#right {
    position: absolute;
    right: 7vw;
    width: 9vw;
    top: 1vw;
}
#cta {
    top: 47.5vw;
}
#branche1 {
    position: absolute;
    top: 40vw;
    width: 24vw;
    left: -4vw;
    animation: branche-sway 4.5s 
ease-in-out infinite;
    transform-origin: left center;
}
    #branche2 {
        position: absolute;
        top: 38vw;
        width: 23vw;
        right: -24vw;
        transform: scale(-1);
        animation: branche-sway2 4s 
ease-in-out infinite;
        transform-origin: left center;
        z-index: 10;
    }
#carte_u{
    height: 49vw;
}
#txt_carte_u {
    display: inline-block;
    position: relative;
    width: 62%;
    top: 5.6vw;
    left: 0.3vw;
}
#app_apple {
    display: inline-block;
    position: relative;
    width: 18%;
    top: 15%;
    left: -51%;
}
    #app_google {
        display: inline-block;
        position: relative;
        width: 18%;
        top: 15%;
        left: -50%;
    }
img#boule {
    position: absolute;
    top: -32%;
    right: -1%;
    width: 48%;
}
#cta_super_u {
    position: absolute;
    right: 5.5vw;
    top: 29vw;
}
#map{
    margin-top: 6vw !important;
    height: 59vw
}

#mag_title {
    position: relative;
    width: 46%;
    left: 8vw;
}
    #map_stage {
        transform: scale(1);
        position: relative;
        top: -14vw;
        margin: 0 auto;
        left: 16%;
    }
    #magsins_hu {
    top: -10vw;
}
#magsins_su {
    top: -10vw;
}
.txt_map {
    font-size: .8vw;
}
#ml, #ml2 {
    display: inline-block;
    position: relative;
    width: 90%;
    top: -4.2vw;
    left: 5%;
}
#ml2 {
        display: inline-block;
        position: relative;
        width: 90%;
        top: 16vw;
        left: 5%;}
#footer{
    height: 27vw;
    top: -4vw !important;
}
#cta_footer {
    position: absolute;
    top: 0vw;
    left: 10%;
    width: 80%;
}
.video_wrapper {
    width: 60%;
    position: absolute;
    left: 20%;
}
}

@media (max-width: 800px) {
header, section:not(#video_layer), footer {
    width: 100%;
}
#bg {
    width: 100%;
    left: 0%;
    height: auto;
}
#mini_carte_u {
        width: 11vw;
        top: -1vw;
        left: 5.5vw;
    }
#header{
    height: 108vw;
}
#calendrier{
    height: 110vw;
}
#left {
        position: absolute;
        left: 13vw;
        width: 15vw;
        top: 0vw;
    }
#right {
        position: absolute;
        right: 13vw;
        width: 15vw;
        top: 1vw;
    }
    #slider ul {
    list-style: none;
    position: absolute;
    inset: 0;
    margin-top: 3%;
}
    #slider .day {
    position: absolute;
    top: 0%;
    left: 50%;
    transform: translateX(-50%);
    font-family: 'museo_900', sans-serif;
    font-size: 20vw;
    line-height: 0.9;
    color: #fff9d6;
    text-shadow: 0 0 14px rgba(255, 255, 210, .9), 0 6px 18px rgba(0, 0, 0, .35);
    letter-spacing: .01em;
    pointer-events: none;
}
#town {
    position: relative;
    top: -16vw;
    width: 70%;
    left: 18%;
}
#cta {
        top: 72.5vw;
    }

#guirlande {
    position: relative;
    width: 100%;
    top: -19vw;
}
#branche1 {
        position: absolute;
        top: 56vw;
        width: 41vw;
        left: -4vw;
        animation: branche-sway 4.5s 
ease-in-out infinite;
        transform-origin: left center;
    }
#branche2 {
    position: absolute;
    top: 70vw;
    width: 43vw;
    right: -47vw;
    transform: scale(-1);
    animation: branche-sway2 4s 
ease-in-out infinite;
    transform-origin: left center;
    z-index: 10;
}
#carte_u{
    height: 79vw;
}
#txt_carte_u {
    display: inline-block;
    position: relative;
    width: 62%;
    top: 5.6vw;
    left: 0.3vw;
}
    #app_apple {
        display: inline-block;
        position: relative;
        width: 18%;
        top: 10%;
        left: -32%;
    }
    #app_google {
        display: inline-block;
        position: relative;
        width: 18%;
        top: 1%;
        left: 12%;
    }
img#boule {
    position: absolute;
    top: -35%;
    right: 2%;
    width: 43%;
}
#cta_super_u {
    position: absolute;
    right: 5.5%;
    top: 50%;
    width: 37%;
}
#map{
    height: 111vw;
}
#mag_title {
    position: relative;
    width: 51%;
    left: 8vw;
}
#map_stage {
    transform: scale(2);
    position: relative;
    top: -10vw;
    margin: 0 auto;
    left: 58%;
}
#mag_container span {
    width: 5px;
    height: 5px;
}
    #magsins_hu {
    top: 6vw;
}
#magsins_su {
    top: 10vw;
}
.logo_u {
    padding: 0vw 1.3vw 0vw 0vw;
    width: 15%;
    float: left;
}
.txt_map {
    font-size: 1.6vw;
}
#ml, #ml2 {
    display: block;
    position: absolute;
    width: 100%;
    top: 90.8vw;
    left: 0%;
}
#ml2 {
        display: block;
        position: absolute;
        width: 100%;
        top: 76.8vw;
        left: 0%;
    }
#footer{
    height: 40vw;
    top:-4vw;
}
.video_timer_label {
    font-size: 4.4vw;
}
.video_timer_value {
    font-family: 'museo_900', sans-serif;
    font-size: 7vw;
    letter-spacing: .08em;
}
  
#video_locked_timer {
    position: absolute;
    top: 75%;
}
.video_wrapper {
    width: 100%;
    position: absolute;
    left: 0%;
}
#video_close {
    position: absolute;
    top: 4.2vw;
    right: 4.2vw;
    width: 4.8vw;
    height: 4.8vw;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    color: white;
    border: none;
    font-size: 9.6vw;
    line-height: 1;
    cursor: pointer;
    z-index: 5;
    display: flex
;
    align-items: center;
    justify-content: center;
}
.cd-circle {
    width: 14.5vw;
    height: 14.5vw;
    border: .35vw solid rgba(255, 255, 210, .95);
    border-radius: 999px;
    display: flex
;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 18px rgba(255, 255, 210, .65), inset 0 0 8px rgba(255, 255, 210, .35);
    backdrop-filter: blur(1px);
}
.cd-label {
    margin-top: .6vw;
    font-family: 'museo_500', sans-serif;
    font-size: 4.4vw;
    color: #ffffff;
    text-shadow: 0 0 8px rgba(0, 0, 0, .35);
}
.cd-number {
    font-family: 'museo_900', sans-serif;
    font-size: 7vw;
    color: #fff9d6;
    text-shadow: 0 0 14px rgba(255, 255, 210, .9), 0 6px 18px rgba(0, 0, 0, .35);
    line-height: 1;
    min-width: 4.8ch;
    letter-spacing: .02em;
}
}