*{
    margin: 0;
    padding:0;
    font-family: Arial, sans-serif;
}
html{
    height: 100%;
}
body{
    min-height: 100%;
    letter-spacing: 1px;
    line-height: 1.5;
}

 
/*FORMATAGE*/
.Pages {
  width: 100dvw;
  height: 100dvh;
  margin:0;
  padding:0;
}
h2{
   font-size: 30px;
    color: #2c1200;
    text-align: center;
}
.img {
  vertical-align: middle;
  max-width: 100%;
  display: inline-block;
}
.underline_link {
    color: #2c1200;
    transition: color 0.3s;
}
.underline_link:hover {
    color: #996543;
}

/* Message d'accueil */

#entry-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.modal-content {
  background: rgba(255, 255, 255, 0.9);
  padding: 2rem;
  border-radius: 16px;
  text-align: center;
  max-width: 600px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.2);
  animation: fadeIn 0.4s ease;
}

.modal-content h2 {
  margin-bottom: 0.8rem;
  font-size: 30px;
}

.modal-content h3{
  font-size: 25px;
  font-weight: 400;
}

.modal-content p {
 font-size: 20px;
}

.modal-content button {
  margin-top: 1rem;
  padding: 0.7rem 1.5rem;
  border: none;
  border-radius: 8px;
  background: #ff6a00;
  font-size: 20px;
  color: white;
  cursor: pointer;
  transition: 0.2s;
}

.modal-content button:hover {
  background: #e55d00;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media screen and (max-width: 768px) {

.modal-content {
  max-width: 400px;
}
}
/*HERO*/
nav {
    width:100vw;
    background-color: rgba(151, 67, 1, 0.39);
    position: absolute;
    top:0;
    height: 40px;
    z-index: 10;
    display:flex;
    align-items: center;
}

nav:hover{
    background-color: rgba(151, 67, 1, 0.76);
}
nav a{
    color: white;
    cursor: pointer;
    text-decoration: none;
    padding: 15px;
    font-family: 'Crimson Text', serif;
    font-size: 25px;
  }



#hero{  
  background-image: url("../img/WhatsApp Image 2026-07-16 at 16.57.jpeg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;    
  justify-content: center;
    flex-direction: column;
  align-items: center;
}
/* irfanshah33-party-8080105_1922.jpg */
#hero::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left:0;
  /* background: url("image.jpg") center / cover no-repeat; */
  filter: blur(2px);
  z-index: 0;
}
#hero::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left:0;
  background: rgba(0, 0, 0, 0.25); 
  z-index: 1;
}
h1{
    z-index:2;
    font-weight: 900;
    font-size: 60px;
    color: #E6E6E6;
    text-align: center;
    opacity: 0;
    transform: translateX(-80px);
     animation: slideLeft 0.95s ease forwards;
}
@keyframes slideLeft {
  from { 
      opacity: 0; 
      transform: translateX(-80px); 
    }
    to { 
    opacity: 1; 
    transform: translateX(0); 
  }
}
a .fa-chevron-down { 
   position: absolute;
    top: 83%;
    z-index: 2;
   color: #fff;
   font-size:3rem;
    padding: 15px;
   cursor: pointer; 
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(10px);
    }
    60% {
        transform: translateY(5px);
    }
}



/*TIMELINE*/

.page-wrapper {
  z-index: 0;
  position: relative;
}
.container {
  width: 90vw;
  max-width: 1360px;
  margin-left: auto;
  margin-right: auto;
}
/*progress_line*/
.paragraph-large {
  letter-spacing: -0.02em;
  font-size: 20px;
}
.padding-vertical-xlarge {
  padding-top: 120px;
  padding-bottom: 120px;
}
.margin-bottom-medium {
  margin-bottom: 32px;
}
.margin-bottom-xlarge {
  margin-bottom: 56px;
}
.timeline_circle {
  background-color: #ff6a00;
/*  background-color:    #fff;*/
  border-radius: 100%;
  width: 15px;
  min-width: 15px;
  max-width: 15px;
  height: 15px;
  min-height: 15px;
  max-height: 15px;
  position: sticky;
  top: 50vh;
/*  box-shadow: 0 0 0 8px #0a0a0a;*/
  box-shadow: 0 0 0 8px #ffedd5;
/*    couleur du contour du cercle*/
}
.timeline_progress {
  z-index: -2;
  background-color: #ffd2b2;
/*  background-color: #414141;*/
  width: 3px;
  height: 100%;
  position: absolute;
}
.timeline_progress-bar {
  z-index: -1;
/*  background: linear-gradient(to bottom, #ff6a00, #ff4da6);*/
  background: linear-gradient(to bottom, #ffbb8a, #ff6a00);
  width: 3px;
  height: 50vh;
  position: sticky;
    top:0;
    right:auto;
    bottom:50vh;
    left:auto;
}
.overlay-fade-top {
/*  background-image: linear-gradient(#0a0a0a, #0a0a0a00);*/
  background-image: linear-gradient(#ffedd5, #f9dafa00);  
  height: 80px;
  position: absolute;
    top:0%;
    right:0%;
    bottom:auto;
    left:0%;
}
.overlay-fade-bottom {
/*  background-image: linear-gradient(to top, #0a0a0a, #0a0a0a00);*/
  background-image: linear-gradient(to top, #ffedd5, #f9dafa00);
  height: 80px;
  position: absolute;
  top:auto;
  right:0%;
  bottom:0%;
  left:0%;
}

/*HEADING*/
.section-timeline-heading {
  background-color: #ffedd5;
}

#heading_text{
margin-bottom: 30px;
}


.btn-link {
  position: relative;
  transition: transform 0.2s;
}


#headingIcon{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.line-container  {
  display : flex;
  flex-direction: flex-start;
  align-items: center;
  gap: 8px;
}
.info-text{
  font-size: 28px;
  font-weight: 400;
  Line-height:1.5;
}
/* --- Icon Maps --- */
.icon-wrapper-maps {
  position: relative;
  /* width: 60px;
  height: 60px; */

  width: 60px;
  height: 60px;
  flex-shrink: 0;

  display: flex;
  justify-content: center;
  align-items: center; /* pas touche */
  animation: float 2s ease-in-out infinite;
}

.icon-wrapper-maps svg {
  fill:#EA4335;
  transition: filter 0.3s;
  display: block;
}

.btn-link:hover .icon-wrapper-maps svg {
  cursor: pointer;
  animation: bounce 0.6s infinite alternate cubic-bezier(0.45, 0.05, 0.55, 0.95);
}

/* ombre sous l'icon */
.icon-wrapper-maps::after {
  content: '';
  position: absolute;
  bottom: 15px;
bottom:5px;

  left: 50%;
  margin-left: -5px;
  width: 10px;
  height: 4px;
  background: rgba(0,0,0,0.1);
  border-radius: 50%;
  transform: scale(0);
  transition: transform 0.3s;
  animation: shadow-float 2s ease-in-out infinite;
}

.btn-link:hover .icon-wrapper-maps::after {
  animation: shadow-pulse 0.6s infinite alternate;
}

/* --- Icon Calendar --- */
.icon-wrapper-cal {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 60px;
  height: 60px;
  flex-shrink: 0;
}

.icon-wrapper-cal svg {
  fill: #ff6a00;
  display: block;
  /* animation: pulse-soft 2s ease-in-out infinite; */
  animation: alarm-clock 2s  infinite;
  /* point d'ancrage en bas pour que le réveil oscille sur sa base */
  transform-origin: bottom center;
}

.btn-link:hover .icon-wrapper-cal svg {
  /* animation: shake 0.6s ease-in-out infinite; */
  animation: pulse-soft 1s ease-in-out infinite;
}

/* Animations */
@keyframes bounce {
            from { transform: translateY(0); }
            to { transform: translateY(-8px); }
        }
@keyframes shadow-pulse {
            from { transform: scale(1); opacity: 1; }
            to { transform: scale(2.5); opacity: 0.2; }
        }
@keyframes shake {
            0%, 100% { transform: rotate(0deg); }
            25% { transform: rotate(-10deg); }
            75% { transform: rotate(10deg); }
        }
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes pulse-soft {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.06); opacity: 0.9; }
}
@keyframes shadow-float {
  0%, 100% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(0.6); opacity: 0.2; }
}
@keyframes alarm-clock {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(-8deg) translateY(-2px); }
  40% { transform: rotate(8deg) translateY(-2px); }
  60% { transform: rotate(-8deg) translateY(0); }
  80% { transform: rotate(8deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
 

#summary{
    display: flex;
}
#imgSolange{
    width: 200px;
    border-radius: 30%;
    position: absolute;
    left: 180px;
}
#imgSolange2{
    width: 200px;
    border-radius: 30%;
    position: absolute;
    right: 180px;
}

.timeline-main_heading-wrapper {
  color: #0d0006;
  text-align: center;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/*ITEMS*/
.section-timeline {
  z-index: -3;
  background-color: #ffedd5;
  position: relative;
}

.timeline_component {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  position: relative;
}
.timeline_item {
  z-index: 2;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  grid-template-rows: auto;
  grid-template-columns: 1fr 180px 1fr;
  grid-auto-columns: 1fr;
  padding-top: 80px;
  padding-bottom: 80px;
  display: grid;
  position: relative;
}
.timeline_left {
  text-align: right;
  justify-content: flex-end;
  align-items: stretch;
}
.timeline_centre {
  justify-content: center;
  display: flex;
}
.timeline_date-text {
  color: #2c1200;
/*  color: #fff; */
  letter-spacing: -0.03em;
  font-size: 48px;
  font-weight: 500;
  line-height: 1.2;
  position: sticky;
  top: 50vh;
}
.timeline_text {
/*  color: #fff;*/
  color: #2c1200;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
}
/*LISTE VALISE*/
.timeline_text ul {
		list-style: none;
    padding-left: 90px;
    padding-right: 50px;
	}
.timeline_text li {
		margin: 12px 0;
		padding: 0 0 0 50px;
		word-wrap: break-word;
	}
.timeline_text label{
    font-weight: 200;
    font-size: 20px;
}	
.timeline_text 	input[type=checkbox] {
		display: none;
	}
.timeline_text 	input[type=checkbox] + label {
		cursor: pointer;
		display: inline-block;
		position: relative;
		padding: 3px 5px 5px 0;
		word-wrap: break-word;
		width: 100%;
	}
.timeline_text 	input[type=checkbox] + label:hover {
		text-decoration: underline;
	}
.timeline_text input[type=checkbox] + label:before {
		background-color: #cbcbcb;
		border-radius: 6px;
	box-shadow: 0.8px 0 black;
		color: white;
		content: "X";
		font-size: 1em;
		left: -45px;
		padding: 2px 8px 2px 8px;
		position: absolute;
		text-decoration: none;
    	transition: all ease 0.3s;
	}
.timeline_text input[type=checkbox]:checked + label {
		text-decoration: line-through;
	}
.timeline_text input[type=checkbox]:checked + label:before {
		background-color: #090;
		content: "✔";
        padding: 2px 6px 2px 6px;
		text-decoration: none;
	}



@media screen and (max-width: 768px) {
  h2 {
    font-size: 40px;
  }

  .paragraph-large {
    font-size: 18px;
  }

  .padding-vertical-xlarge {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .timeline_item {
    grid-template-columns: 64px 1fr;
    width: 100%;
  }

  .timeline_left {
    text-align: left;
    grid-area: 1 / 2 / 2 / 3;
  }

  .timeline_centre {
    justify-content: flex-start;
    grid-area: 1 / 1 / 3 / 2;
  }

  .timeline_right {
    grid-area: span 1 / span 1 / span 1 / span 1;
  }

  .timeline_date-text {
    margin-bottom: 24px;
    font-size: 36px;
  }

  .timeline_text {
    font-size: 20px;
  }

  .timeline_progress {
    left: 6px;
  }

  .margin-bottom-xlarge {
    margin-bottom: 48px;
  } 

}

 /* INFO RESA  */

#comment{
  background-color:#FFAC6A;
 min-height: 100vh;
  display: flex;
  align-items: center;
}

.comment-content p{
font-size: 20px;
text-align: justify;
padding: 10px;
line-height: 1.5;
}

.comment-content{
  line-height:150%;
  width: 50vw;
  color:#444;
  background:#f5f5f5;
  display:block;
  margin-left: 20px;
  padding:10px 15px 10px 15px; 
  font-size:0.9em;
  position:relative;
  border-radius: 3px;
  box-shadow: 1px 1px 3px rgba(0,0,0,.3);
}

.comment-content:before{
  content:'';
  position:absolute;
  top:28px;
  left:-28px;
  display:block;
  width:0;
  height:0;
  border:1em solid #e8e7e7;
  border-color:transparent #f5f5f5 transparent transparent; 
}

#comment h1{
  font-weight:700;
  text-align: left;
  margin-left:5px ;
  font-size: 25px;
  color: #0d0006;
  line-height: 1.8;

}
#imgcomment{
  margin-right: 50px;
}

 #imgcomment img{
  width:33vw;
}

@media screen and (max-width: 1100px) {

#imgcomment img{
  display: none;
  width: 0px;
}

.comment-content{
  width: 80vw;
}

#comment{
  padding: 50px 0px;
}
}

/* RESERVATION */
.reservation_container{
display: flex;
justify-content: center;
min-height: 100vh;
flex-direction: column;
background-color: #ee5522;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2000 1500'%3E%3Cdefs%3E%3CradialGradient id='a' gradientUnits='objectBoundingBox'%3E%3Cstop offset='0' stop-color='%23FB3'/%3E%3Cstop offset='1' stop-color='%23ee5522'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='0' y1='750' x2='1550' y2='750'%3E%3Cstop offset='0' stop-color='%23f7882b'/%3E%3Cstop offset='1' stop-color='%23ee5522'/%3E%3C/linearGradient%3E%3Cpath id='s' fill='url(%23b)' d='M1549.2 51.6c-5.4 99.1-20.2 197.6-44.2 293.6c-24.1 96-57.4 189.4-99.3 278.6c-41.9 89.2-92.4 174.1-150.3 253.3c-58 79.2-123.4 152.6-195.1 219c-71.7 66.4-149.6 125.8-232.2 177.2c-82.7 51.4-170.1 94.7-260.7 129.1c-90.6 34.4-184.4 60-279.5 76.3C192.6 1495 96.1 1502 0 1500c96.1-2.1 191.8-13.3 285.4-33.6c93.6-20.2 185-49.5 272.5-87.2c87.6-37.7 171.3-83.8 249.6-137.3c78.4-53.5 151.5-114.5 217.9-181.7c66.5-67.2 126.4-140.7 178.6-218.9c52.3-78.3 96.9-161.4 133-247.9c36.1-86.5 63.8-176.2 82.6-267.6c18.8-91.4 28.6-184.4 29.6-277.4c0.3-27.6 23.2-48.7 50.8-48.4s49.5 21.8 49.2 49.5c0 0.7 0 1.3-0.1 2L1549.2 51.6z'/%3E%3Cg id='g'%3E%3Cuse href='%23s' transform='scale(0.12) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.2) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.25) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(0.3) rotate(-20)'/%3E%3Cuse href='%23s' transform='scale(0.4) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(0.5) rotate(20)'/%3E%3Cuse href='%23s' transform='scale(0.6) rotate(60)'/%3E%3Cuse href='%23s' transform='scale(0.7) rotate(10)'/%3E%3Cuse href='%23s' transform='scale(0.835) rotate(-40)'/%3E%3Cuse href='%23s' transform='scale(0.9) rotate(40)'/%3E%3Cuse href='%23s' transform='scale(1.05) rotate(25)'/%3E%3Cuse href='%23s' transform='scale(1.2) rotate(8)'/%3E%3Cuse href='%23s' transform='scale(1.333) rotate(-60)'/%3E%3Cuse href='%23s' transform='scale(1.45) rotate(-30)'/%3E%3Cuse href='%23s' transform='scale(1.6) rotate(10)'/%3E%3C/g%3E%3C/defs%3E%3Cg transform='rotate(0 0 0)'%3E%3Cg transform='rotate(0 0 0)'%3E%3Ccircle fill='url(%23a)' r='3000'/%3E%3Cg opacity='0.5'%3E%3Ccircle fill='url(%23a)' r='2000'/%3E%3Ccircle fill='url(%23a)' r='1800'/%3E%3Ccircle fill='url(%23a)' r='1700'/%3E%3Ccircle fill='url(%23a)' r='1651'/%3E%3Ccircle fill='url(%23a)' r='1450'/%3E%3Ccircle fill='url(%23a)' r='1250'/%3E%3Ccircle fill='url(%23a)' r='1175'/%3E%3Ccircle fill='url(%23a)' r='900'/%3E%3Ccircle fill='url(%23a)' r='750'/%3E%3Ccircle fill='url(%23a)' r='500'/%3E%3Ccircle fill='url(%23a)' r='380'/%3E%3Ccircle fill='url(%23a)' r='250'/%3E%3C/g%3E%3Cg transform='rotate(0 0 0)'%3E%3Cuse href='%23g' transform='rotate(10)'/%3E%3Cuse href='%23g' transform='rotate(120)'/%3E%3Cuse href='%23g' transform='rotate(240)'/%3E%3C/g%3E%3Ccircle fill-opacity='0.1' fill='url(%23a)' r='3000'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
background-attachment: fixed;
background-size: cover;
}

#titreResa {
    font-size: 40px;
    margin: 15px 0px 15px 0px;
}
form{
    border-radius: 1%;
    align-self:center;
    background-color: #fff;
    width:50vw;
    padding: 0px 40px 0px 40px;
    margin: 40px 0px 40px 0px;
}

.TextResa{
    font-weight:bold;
    padding-bottom: 20px;
}
.form-group{
    padding: 15px;
}
.prenom-item{
    display: flex;
    align-items: center;
}
.prenom-item button{
    border: none;
    background: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 9px 5px 0px 6px;
    user-select: none;
    color: black;
    font-size: 14px;
    cursor: pointer;
    transition: background 0.2s ease;
}
.prenom-item button:hover{
    transform: scale(1.2);
    font-weight: 400;
}
.btn-add {
    background: transparent;
    margin-top: 8px;
    border: 1px solid #ccc;
    color: #333;
    padding: 8px 14px;
    font-size: 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.btn-add:hover {
    background-color: #ebeae9;
    color:black;
    
}
.btn-add:active {
    transform: scale(0.97);
}
input, textarea{
    width:100%;
    padding:8px;
    margin-top:5px;
    border:1px solid #ccc;
    border-radius:5px;
}
input{
    margin-top: 10px;
}
.prenom-item input{
    width: 60%;
}
textarea{
    height: 80px;
}
.choicesDiv{
   display: flex;
   flex-wrap: wrap;
}

.checkbox{
    position: relative;
    display: block;
    padding-left:28px;
    cursor:pointer;
    margin-right: 40px;
    margin-top: 15px;
}

.checkbox input{
    position: absolute;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height:0;
    width:0;
    opacity: 0;
    margin: 0;
    cursor:pointer;
}
.check{
    position: absolute;
    height :20px;
    width:20px;
    border:2px solid #e7e7e7;
    border-radius:50%;
    top:0;
    left:0;
    transition: .2s ease-in-out;
}
.checkbox:hover input ~ .check{
    border-color:transparent;
    background-color: #ededed;
}
.checkbox input:checked ~ .check{
    border-color:transparent;
    background-color: #ff836b;
}
.check::after{
    content:"";
    position: absolute;
    width: 5px;
    height: 12px;
    border: solid #fff;
    border-width: 0 3px 3px 0;
    left: 6px;
    top: 1px;
    transform: rotate(45deg);
}
#buttondiv{
    text-align: center;
    margin: 0;
    padding-bottom: 25px;
}
#buttondiv button{
    margin-top:0px;
    background:#ffdec8;
    color:#ff6a00;
    border:none;
    padding:10px 20px;
    font-size:18px;
    border-radius:5px;
    cursor:pointer;
}
#buttondiv button:hover{
    background:#ff6a00;
    color:white;
}

@media screen and (max-width: 768px) {

    form {
       width: 75vw;
    }
}

/* AU DE LA PAGE  */
.ToTop {
    height: 50px;
    width: 50px;
    background: #fdd8c07d;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    right: 40px;
    bottom: 40px;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.ToTop.show {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.ToTop:hover{
    background: #ffb347;
}

@media screen and (max-width: 768px) {
  .ToTop {
display: none;
  }
}
#ToTopMobile{
  display : none;
}

@media screen and (max-width: 768px) {
  #hero_text{
    font-size: 40px;
  }

  a .fa-chevron-down{
    font-size: 2,1rem;
  }

  #heading_text{
  font-size : 25px;
  }

  #titreResa{
    font-size : 30px;
  }

  .checkbox{
    padding-left:28px;
    margin-right: 15px;
}

 .form-group{
    padding: 15px 5px 15px 5px;
}

#comment{
  scroll-margin-top: 0px;
}
#ToTopMobile{
  display: inline-flex;

    align-items: center;
    text-decoration: none;
    color: #ff836b; /* Ta couleur orangée */
    font-weight: bold;
    transition: transform 0.3s ease, color 0.3s ease;
    padding: 10px;
}

#ToTopMobile:hover {
    transform: translateY(-5px);
    color: #e6765d;
}

#ToTopMobile::after {
    content: '↑';
    margin-left: 8px;
    transition: transform 0.3s ease;
}
#ToTopMobile:hover::after {
    transform: scale(1.2);
}
html{ 
  scroll-behavior: smooth; 
}
}
