:root {
    --bg-light: #F3EBFF;
    --bg-dark: #907AD6;
    --text-dark: #14080E;
    --accent: #67161D;
}

@font-face {
  font-family: 'Anaktoria';
  src: url('/assets/Anaktoria.woff2') format('woff2'),
       url('/assets/Anaktoria.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}


body {
    font-family: 'Anaktoria', sans-serif;
    font-size: 18px;
    color: var(--text-dark);
    font-variant-ligatures: none;
}


/* Base sizes */
h1, .h1 {
    font-family: 'Anaktoria', sans-serif;
    font-size: 48px;
}

h2, .h2 {
    font-family: 'Anaktoria', sans-serif;
    font-size: 36px;
}

h3, .h3 {
    font-family: 'Anaktoria', sans-serif;
    font-size: 28px;
    margin-bottom: 0px !important;
}

p, .p-large {
    font-size: 22px;
}

.bg-md-light {
    background-color: var(--bg-dark);
  }

/* Larger sizes for tablets and up */
@media (min-width: 767.98px) {
  h1, .h1 {
    font-size: 64px;
  }

  h2, .h2 {
    font-size: 48px;
  }

  h3, .h3 {
    font-size: 36px;
  }

  p, .p-large {
    font-size: 24px;
  }

  .bg-hero {
    height: 60vh !important;
  }

  .bg-md-light {
    background-color: var(--bg-light);
  }

}

/* Even larger on big desktops */
@media (min-width: 991.98px) {
    h1, .h1 {
        font-size: 72px;
    }
    
    h2, .h2 {
        font-size: 56px !important;
    }
    
    h3, .h3 {
        font-size: 42px;
    }
    
    p, .p-large {
        font-size: 28px;
    }
    
    .hero-heart {
      display: flex !important;
    }

    .hero-subtitle {
        display: flex;
        flex-direction: row !important;
    }
}

@media (min-width: 1399.98px) {
    .container-fluid {
        max-width: 90vw;
    }
}

  .four-o-four {
  padding-top: 80px;
  background-image: linear-gradient(
      rgba(0, 0, 0, 0),
      rgba(0, 0, 0, 0.7)
    ),
    url('/assets/404.gif'); 
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: white;
  
  height: 100vh;
  display: flex;
  align-items:end;
  justify-content: center;
  text-align: center;
  }
  @media (max-width: 767px) {
  .four-o-four {
    background-size: contain;    /* scale the GIF proportionally inside container */
  }
}
.bg-light {
    background-color: var(--bg-light) !important;
}
.bg-dark {
    background-color: var(--bg-dark) !important;
}
.text-light {
    color: var(--bg-light);
}
.text-dark {
    color: var(--text-dark);
}
.text-gold {
  position: relative;
  background: linear-gradient(
    45deg,
    #d4af37,
    #f9e79f,
    #d4af37,
    #f1c40f,
    #b8860b
  );
  background-size: 200% 200%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: gold-shine 6s infinite;
}

.bg-hero {
    padding-top: 80px;
  background-image: linear-gradient(
      rgba(0, 0, 0, 0),
      rgba(0, 0, 0, 0.7)
    ),
    url('../assets/IMG-20250715-WA0040.jpg'); 
  background-size: cover;
  background-position: center, center;
  background-repeat: no-repeat;
  color: white;
  
  height: 40vh;
  display: flex;
  align-items:end;
  justify-content: center;
  text-align: center;
}

/* Animation keyframes */
@keyframes gold-shine {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@keyframes gold-shine-reverse {
  0% {
    background-position: 100% 50%;
  }
  50% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 100% 50%;
  }
}

.hero-heart {
  display: none;
}

.hero-subtitle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.button-rsvp {
  display: flex;              
  justify-content: center;
  align-items: center;        /* centre vertically */
  /* border-radius: 8px; */
  transition: background-color 0.3s ease, color 0.3s ease, border 0.3s ease;
  padding: 10px 20px;
  cursor: pointer;
  background-color: var(--bg-dark);
  color: var(--bg-light);
  border-color: var(--bg-dark);
  border-width: 5px;
  border-style: solid;
  height: 10vh;
  font-size: 70px;
}

.button-rsvp:hover {
  /* border-color: var(--bg-dark); */
  position: relative;
  background-color: var(--bg-light);
  color: var(--bg-light);
  border: none
}

a {
  text-decoration: none;
  color: inherit;
}


.bg-nav {
  background-color: rgba(255, 255, 255, 0.15); /* or var(--bg-light) with opacity */
  backdrop-filter: blur(6px);
  padding: 4px 8px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

nav.sticky-top {
  position: fixed;
  top: 0;
  width: 100%;
}


.text-nav {
  font-size: 60px;
}

.nav-link {
  font-size: 32px;
  border-bottom: 2px solid transparent
}
.nav-rsvp {
  display: inline-block;
  border-bottom: 2px solid transparent
}

.nav-link:hover .nav-rsvp {
  background: linear-gradient(
    45deg,
    #d4af37,
    #f9e79f,
    #d4af37,
    #f1c40f,
    #b8860b
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    border-bottom: 2px solid #b8860b;
  }
  
  .nav-link:hover {
    background: linear-gradient(
      45deg,
      #d4af37,
      #f9e79f,
      #d4af37,
      #f1c40f,
      #b8860b
      );
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
    
    .bg-gold, .button-rsvp:hover {
      background: linear-gradient(
        45deg,
        #d4af37,
        #f9e79f,
        #d4af37,
        #f1c40f,
        #b8860b
        );
        background-size: 200% 200%;
        animation: gold-shine-reverse 15s infinite;
      }
      
      .bg-form {
        background-color: #7a0000;
      }
      
      .rsvp-hero {
        background-image: linear-gradient(
          rgba(0, 0, 0, 0),
          rgba(0, 0, 0, 0.5)
          ),
          url('../assets/rsvp-hero.jpg'); 
        background-size: cover;
        background-position: center;
          
        }

  .form-input {
    font-size: 30px;
    text-transform: uppercase;
  }

.hidden {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

input[type="checkbox"] {
  transform: scale(1.5);
  accent-color: #b8860b;
}

input[type="radio"] {
  appearance: none;
  width: 1.2em;
  height: 1.2em;
  border: 2px solid #b8860b;
  background-color: white;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  vertical-align: middle;
  position: relative; /* for ::after positioning */
  border-radius: 3px; /* make it square with slightly rounded corners */
}

input[type="radio"]:checked {
  background-color: #b8860b;
}

/* Add tick mark */
input[type="radio"]:checked::after {
  content: '✔';
  color: white;
  font-size: 1em;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

/* Focus styles */
input[type="radio"]:focus {
  outline: 2px solid #b8860b;
  outline-offset: 2px;
}

button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}


.faq-hero {
  background-image: linear-gradient(
    rgba(0, 0, 0, 0),
    rgba(0, 0, 0, 0.5)
    ),
    url('../assets/faq-hero.png'); 
  background-size: cover;
  background-position: center;
  }

.border-bottom.black {
  border-color: #14080E !important
}

.square-img {
  aspect-ratio: 1 / 1;
}
@media (max-width: 991.98px) { /* Bootstrap md & below */
  .md-square-img {
    aspect-ratio: 1 / 1;
  }
}