/* -------------------- */
/* Styles généraux      */
/* -------------------- */

/* Box-sizing reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Optimized media elements */
img,
video,
audio,
... {
  max-width: 100%;
}

@font-face {
  font-family: "Belly Betty";
  src: url("Belly Betty.ttf");
}

@font-face {
  font-family: "Montserrat";
  src: url("Montserrat.ttf");
}

@font-face {
  font-family: "Gabriola";
  src: url("Gabriola.ttf");
}

* {
  font-family: "Gabriola";
  overscroll-behavior: none;
}

@media only screen and (max-width: 768px) {
  h1 {
    font-weight: 400;
    margin-top: 2vh;
    margin-bottom: 2vh;
    text-align: center;
    font-size: 2em;
    font-family: "Belly Betty";
  }
}

@media only screen and (min-width: 768px) {
  h1 {
    font-weight: 400;
    margin-top: 2vh;
    margin-bottom: 2vh;
    text-align: center;
    font-size: 4em;
    font-family: "Belly Betty";
  }
}

@media only screen and (max-width: 768px) {
  h3 {
    font-weight: 400;
    margin-top: 20px;
    font-size: 1.75em;
    font-family: "Belly Betty";
  }
}

@media only screen and (min-width: 768px) {
  h3 {
    font-weight: 400;
    font-size: 3em;
    font-family: "Belly Betty";
  }
}

@media only screen and (max-width: 768px) {
  h4 {
    font-weight: 400;
    font-size: 1.5em;
    font-family: "Belly Betty";
  }
}

@media only screen and (min-width: 768px) {
  h4 {
    font-weight: 400;
    font-size: 2em;
    font-family: "Belly Betty";
  }
}

html {
  margin: 0;
  width: 100%;
}

body {
  margin: 0;
  text-align: center;
  height: 100%;
  width: 100%;
}

main {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

img {
  border-radius: 8px;
}

p {
  font-size: 1.875em;
}

@media only screen and (max-width: 768px) {
  .paragraph {
    text-align: center;
    font-size: 1.25em;
    width: 90vw;
    margin-left: 5vw;
  }
}

@media only screen and (min-width: 768px) {
  .paragraph {
    text-align: center;
    font-size: 2.25em;
    width: 80%;
    margin-left: 10%;
  }
}

@media only screen and (max-width: 768px) {
  .home-image {
    width: 70vw;
    height: auto;
    object-fit: cover;
    object-position: 100% 100%;
    border-radius: 8px;
    margin-top: 1vh;
  }
}

@media only screen and (min-width: 768px) {
  .home-image {
    width: 30vw;
    height: auto;
    object-fit: cover;
    object-position: 100% 100%;
    border-radius: 8px;
    margin-top: 1vh;
  }
}

/* -------------------- */
/* Styles navbar        */
/* -------------------- */
@media only screen and (max-width: 768px) {
  .nav-mobile {
    margin: 0;
    padding: 0;
    text-align: center;
    position: sticky; /* Makes the navbar sticky */
    top: 0; /* Sticks to the top of the page */
    z-index: 1000; /* Ensures it stays above other content */
    background-color: white;
  }

  .nav-mobile #links {
    display: none;
  }

  .nav-mobile a {
    text-decoration: none;
    display: block;
    font-family: "Gabriola";
    color: #ff278f;
  }

  .nav-mobile a.icon {
    padding: 12px 16px;
    background: #ff278f;
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    color: white;
  }

  .nav-mobile a.title {
    font-family: "Belly Betty";
    font-size: 2em;
    padding: 0;
    margin: 0;
  }

  .nav {
    display: none;
  }
}

@media only screen and (min-width: 768px) {
  .nav {
    margin: 0;
    padding: 0;
    text-align: center;
    position: sticky; /* Makes the navbar sticky */
    top: 0; /* Sticks to the top of the page */
    z-index: 1000; /* Ensures it stays above other content */
    background-color: white;
  }

  .nav ul {
    margin: 0 auto; /* Center the navbar */
    padding: 0;
    list-style-type: none; /* Removes default list styling */
    display: flex; /* Makes the list items display in a row */
    justify-content: center; /* Centers the list items */
  }

  .nav li {
    position: relative; /* Needed for dropdown */
    display: inline-block;
    margin: 0; /* Ensure no extra margins */
  }

  .nav a {
    display: block; /* Ensures the links take up the full height of the list items */
    color: #ff278f;
    text-align: center;
    padding: 15px 20px; /* Adjust padding as needed */
    text-decoration: none; /* Removes underline from links */
    font-family: "Gabriola"; /* Use your preferred font */
    font-size: 2em; /* Adjust font size as needed */
    margin: 0;
    background-color: white;
  }

  .nav a:hover {
    background-color: #ff278f; /* Background color on hover */
    color: white; /* Text color on hover */
  }

  .nav-mobile {
    display: none;
  }
}

/* -------------------- */
/* Styles frises        */
/* -------------------- */
@media only screen and (max-width: 768px) {
  .leftSidebar {
    overflow: hidden;
    position: absolute;
    opacity: 0.15;
    z-index: -1000;
  }

  .leftSidebar img {
    max-width: 50vw;
    height: auto;
  }

  .rightSidebar {
    position: absolute;
    width: 50vw;
    left: 50vw;
    opacity: 0.15;
    overflow: hidden;
    z-index: -1000;
  }

  .rightSidebar img {
    max-width: 50vw;
    height: auto;
  }

  .content {
    float: left;
    width: 100%;
  }
}

@media only screen and (min-width: 768px) {
  .leftSidebar {
    width: 225px;
    overflow: hidden;
    position: absolute;
    left: 0;
    text-align: left;
    z-index: -1000;
  }

  .rightSidebar {
    width: 225px;
    overflow: hidden;
    position: absolute;
    right: 0;
    float: right;
    text-align: right;
    z-index: -1000;
  }

  .content {
    margin-left: 12.5vw;
    margin-right: 12.5vw;
    width: 75vw;
    float: left;
  }
}

/* ----------------------- */
/* Styles compte à rebours */
/* ----------------------- */
@media only screen and (max-width: 768px) {
  #countdown {
    font-family: "Gabriola";
    font-size: 1em;
    color: #ff278f;
    text-align: center;
  }
}

@media only screen and (min-width: 768px) {
  #countdown {
    font-family: "Gabriola";
    font-size: 2.25em;
    color: #ff278f;
    text-align: center;
  }
}

/* -------------------- */
/* Styles GMaps         */
/* -------------------- */
@media only screen and (min-width: 768px) {
  .grid-container-venir {
    display: inline-grid;
    gap: 10px;
    grid-template-columns: auto auto auto;
    justify-content: space-evenly;
  }
}

@media only screen and (min-width: 768px) {
  .grid-container-dormir {
    display: inline-grid;
    gap: 10px;
    grid-template-columns: auto auto;
    justify-content: space-evenly;
  }
}

@media only screen and (max-width: 768px) {
  .addressWrapper {
    width: 90vw;
    margin-left: 5vw;
    height: auto;
  }

.addressWrapper p {
  margin: 0;
  padding: 0;
  font-size: 1.25em;
}
}

@media only screen and (min-width: 768px) {
  .addressWrapper {
    width: 25vw;
    height: auto;
  }

.addressWrapper p {
  margin: 0;
  padding: 0;
  font-size: 1.5em;
}
}

@media only screen and (max-width: 768px) {
  .GMaps {
    margin-top: 1vh;
    width: 90vw;
    margin-left: 5vw;
    height: 18em;
  }

  .GMaps iframe {
    border: 0;
    border-radius: 8px;
    width: 100%;
    height: 100%;
  }
}

@media only screen and (min-width: 768px) {
  .GMaps {
    margin-top: 3em;
    width: 25vw;
    height: 16em;
  }

  .GMaps iframe {
    border: 0;
    border-radius: 8px;
    width: 100%;
    height: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .GMyMaps {
    margin-top: 1vh;
    width: 90vw;
    margin-left: 5vw;
    height: 25em;
  }

  .GMyMaps iframe {
    border: 0;
    border-radius: 8px;
    width: 100%;
    height: 100%;
  }
}

@media only screen and (min-width: 768px) {
  .GMyMaps iframe {
    border: 0;
    width: 35vw;
    height: 30em;
    border-radius: 8px;
  }
}

@media only screen and (max-width: 768px) {
  #nousdeux {
    width: 100vw;
    height: auto;
    background-color: white;
  }
}

@media only screen and (min-width: 768px) {
  #nousdeux {
    width: 60vw;
    height: auto;
    background-color: white;
  }
}

/* -------------------- */
/* Styles carousel      */
/* -------------------- */
/* Slideshow container */
@media only screen and (max-width: 768px) {
  .slideshow-container {
    position: relative;
    margin: auto;
    height: 40vh;
  }
}

@media only screen and (min-width: 768px) {
  .slideshow-container {
    max-width: 80vw;
    position: relative;
    margin: auto;
  }
}

/* Hide the images by default */
.mySlides {
  display: none;
}

@media only screen and (max-width: 768px) {
  .carousel {
    max-height: 40vh;
    max-width: 90vw;
  }
}

@media only screen and (min-width: 768px) {
  .carousel {
    height: 50vh;
  }
}

/* Next & previous buttons */
@media only screen and (max-width: 768px) {
  .prev,
  .next {
    cursor: pointer;
    position: absolute;
    top: 90%;
    width: auto;
    margin-top: -22px;
    padding: 16px;
    color: white;
    background-color: lightgrey;
    font-weight: bold;
    font-size: 18px;
    transition: 0.6s ease;
    border-radius: 0 3px 3px 0;
    user-select: none;
  }

  /* Position the "prev button" to the left */
  .prev {
    left: 10vw;
    border-radius: 3px 3px 3px 3px;
  }

  /* Position the "next button" to the right */
  .next {
    right: 10vw;
    border-radius: 3px 3px 3px 3px;
  }
}

@media only screen and (min-width: 768px) {
  .prev,
  .next {
    cursor: pointer;
    position: absolute;
    top: 50%;
    width: auto;
    margin-top: -22px;
    padding: 16px;
    color: white;
    background-color: lightgrey;
    font-weight: bold;
    font-size: 18px;
    transition: 0.6s ease;
    border-radius: 0 3px 3px 0;
    user-select: none;
  }

  /* Position the "prev button" to the left */
  .prev {
    left: 10vw;
    border-radius: 3px 3px 3px 3px;
  }

  /* Position the "next button" to the right */
  .next {
    right: 10vw;
    border-radius: 3px 3px 3px 3px;
  }
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover,
.next:hover {
  background-color: rgba(0, 0, 0, 0.8);
}

/* The dots/bullets/indicators */
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active,
.dot:hover {
  background-color: #717171;
}

/* Fading animation */
.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  from {
    opacity: 0.4;
  }
  to {
    opacity: 1;
  }
}

@media only screen and (max-width: 768px) {
  #programme {
    width: 100vw;
    height: auto;
  }
}

@media only screen and (min-width: 768px) {
  #programme {
    width: 70vw;
    height: auto;
  }
}

/* -------------------- */
/* Styles formulaire    */
/* -------------------- */
@media only screen and (max-width: 768px) {
  .form-container {
    width: 90vw;
    margin-left: 5vw;
  }
}

@media only screen and (min-width: 768px) {
  .form-container {
    width: 40vw;
    margin-left: 17.5vw;
    margin-right: 17.5vw;
  }
}

.form-group {
  margin-bottom: 10px;
}

.form-group label {
  display: block;
  font-weight: bold;
  margin-bottom: 5px;
  margin-top: 5px;
  color: #333;
  text-align: left;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="number"],
.form-group textarea {
  width: calc(100% - 20px);
  padding: 10px;
  font-size: 1.5em;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.form-group input[type="radio"] {
  margin-right: 5px;
}

.form-group .inline-label {
  display: block;
  margin-bottom: 10px;
  color: #555;
}

.hidden {
  display: none;
}

textarea {
  width: 100%;
  padding: 10px;
  font-size: 1.5em;
  border: 1px solid #ccc;
  border-radius: 4px;
  resize: vertical;
}

label {
  font-size: 1.5em;
}

button[type="submit"] {
  display: block;
  width: 100%;
  padding: 10px;
  background-color: #4caf50;
  color: white;
  font-size: 1.5em;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  margin-bottom: 10px;
}

button[type="submit"]:hover {
  background-color: #45a049;
}

@media only screen and (max-width: 768px) {
  .confirmation {
    width: 90vw;
    height: 20vh;
    object-fit: cover;
    object-position: 100% 55%;
  }
}

@media only screen and (min-width: 768px) {
  .confirmation {
    width: 40vw;
    height: 50vh;
    object-fit: cover;
    object-position: 100% 55%;
  }
}

/* -------------------- */
/* Styles grille Creuse */
/* -------------------- */
@media only screen and (max-width: 768px) {
  .grid-image {
    margin-left: 7.5vw;
    width: 85vw;
  }

  .grid-image img {
    width: 100%;
  }

  .grid-text {
    margin-bottom: 10vw;
  }

  .text-title {
    font-weight: 400;
    font-size: 2em;
    font-family: "Belly Betty";
    margin: 0;
  }

  .text-text {
    text-align: center;
    font-size: 1.25em;
    width: 90%;
    margin-left: 5%;
  }
}

@media only screen and (min-width: 768px) {
  .grid-container {
    margin-top: 5vh;
    display: inline-grid;
    gap: 10px;
    grid-template-columns: auto auto auto auto;
    justify-content: space-evenly;
  }

  .grid-image {
    margin-left: 10px;
  }

  .grid-image img {
    width: 16vw;
  }

  .grid-text {
    margin-right: 10px;
    width: 20vw;
  }

  .text-title {
    font-weight: 400;
    font-size: 2em;
    font-family: "Belly Betty";
    margin: 0;
  }

  .text-text {
    text-align: center;
    font-size: 1.75em;
    width: 90%;
    margin-left: 5%;
  }
}

/* -------------------- */
/* Styles cagnotte      */
/* -------------------- */
@media only screen and (max-width: 768px) {
  #papayoux {
    width: 100vw;
    height: auto;
    object-fit: cover;
    object-position: 100% 100%;
  }

  .cagnotte {
              font-family:"Belly Betty";
              font-size: 1em;
              color: inherit;
              text-decoration: none;
              color: #ff278f;
  }
}

@media only screen and (min-width: 768px) {
  #papayoux {
    width: 60vw;
    height: 50vh;
    object-fit: cover;
    object-position: 100% 100%;
  }

  .cagnotte {
              font-family:"Belly Betty";
              font-size: 2em;
              color: inherit;
              text-decoration: none;
              color: #ff278f;
  }
}

/* -------------------- */
/* Styles mariés        */
/* -------------------- */
@media only screen and (max-width: 768px) {
.grid-container-bridegrooms {
  display: inline-grid;
  column-gap: 0.5vw;
  row-gap: 0.1vh;
  grid-template-columns: auto auto;
  justify-content: space-evenly;
  margin-top: 0;
  background-color: white;
  text-align: center;
}

.grid-container-bridegrooms div {
  background-color: white;
}

.grid-container-bridegrooms p {
  background-color: white;
  margin: 0;
}

.nous {
    height: 25vh;
    grid-column: 1 / 3;
    margin-bottom: 3vh;
    justify-self: center;
  }
}

@media only screen and (min-width: 768px) {
.grid-container-bridegrooms {
  display: inline-grid;
  column-gap: 0.5vw;
  row-gap: 0.1vh;
  grid-template-columns: auto auto;
  justify-content: space-evenly;
  margin-top: 0;
  background-color: white;
}

.grid-container-bridegrooms div {
  background-color: white;
}

.grid-container-bridegrooms p {
  background-color: white;
  margin: 0;
}

.nous {
    height: 45vh;
    grid-column: 1 / 3;
    margin-bottom: 5vh;
}
}

/* -------------------- */
/* Styles témoins       */
/* -------------------- */
@media only screen and (max-width: 768px) {
  .grid-container-witness {
    display: inline-grid;
    column-gap: 0.5vw;
    row-gap: 0.1vh;
    grid-template-columns: auto auto;
    justify-content: space-evenly;
    margin-top: 0;
    background-color: white;
    margin-bottom: 3vh;
  }

  .grid-container-witness div {
    background-color: white;
  }

  .grid-container-witness p {
    background-color: white;
    margin: 0;
  }

  .witness {
    height: 25vh;
    object-fit: contain;
  }

  #juliette {
    height: 22vh;
    margin-top: 3vh;
    background-color: white;
  }
}

@media only screen and (min-width: 768px) {
  .grid-container-witness {
    display: inline-grid;
    column-gap: 0.5vw;
    row-gap: 0.1vh;
    grid-template-columns: auto auto auto auto;
    justify-content: space-evenly;
    margin-top: 0;
    background-color: white;
    margin-bottom: 3vh;
  }

  .grid-container-witness div {
    background-color: white;
  }

  .grid-container-witness p {
    background-color: white;
    margin: 0;
  }

  .witness {
    height: 45vh;
    object-fit: contain;
  }

  #juliette {
    height: 42vh;
    margin-top: 3vh;
    background-color: white;
  }
}
