* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* =========================================================
   PINK WEDDING HERO
========================================================= */

.pink-wedding-hero {
  position: relative;

  min-height: 720px;

  overflow: hidden;

  background:
    radial-gradient(
      circle at 5% 15%,
      rgba(255, 172, 187, 0.25),
      transparent 25%
    ),
    radial-gradient(
      circle at 90% 25%,
      rgba(255, 194, 204, 0.25),
      transparent 28%
    ),
    linear-gradient(110deg, #fff8f7 0%, #fdecef 48%, #fbe1e7 100%);

  color: #33272b;

  font-family: "Cormorant Garamond", Georgia, serif;
}

/* =========================================================
   SOFT BACKGROUND FLOWERS
========================================================= */

.pink-wedding-hero::before {
  content: "";

  position: absolute;

  width: 550px;
  height: 550px;

  left: -300px;
  bottom: -250px;

  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(240, 116, 139, 0.12),
    transparent 68%
  );

  pointer-events: none;
}

.pink-wedding-hero::after {
  content: "";

  position: absolute;

  width: 500px;
  height: 500px;

  right: -260px;
  top: -250px;

  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(255, 181, 195, 0.18),
    transparent 70%
  );

  pointer-events: none;
}

.pink-menu-btn span {
  display: none;
}

.pink-menu-btn {
  background-color: transparent;
  border: 0;
  cursor: default;
}

/* =========================================================
   HEADER
========================================================= */

.pink-hero-header {
  position: relative;

  z-index: 20;

  height: 88px;

  max-width: 1400px;

  margin: auto;

  padding: 0 42px;

  display: flex;

  align-items: center;

  justify-content: space-between;
}

/* =========================================================
   LOGO
========================================================= */

.pink-logo {
  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: 38px;

  font-weight: 500;

  letter-spacing: 1px;

  color: #292226;
}

.pink-logo span {
  color: #df6077;

  font-size: 27px;

  margin: 0 3px;
  animation: heartbeat 1.8s ease-in-out infinite;
  transform-origin: center;
}

.monogram {
  font-family: "Cormorant Garamond", serif;
  font-size: 34px;
  /* letter-spacing: 2px; */
  display: flex;
  gap: 4px;
}

.monogram span {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: var(--pink);

  animation: heartbeat 1.8s ease-in-out infinite;
  transform-origin: center;
}

.monogram span svg {
  display: block;
}

@keyframes heartbeat {
  0% {
    transform: scale(1);
  }

  10% {
    transform: scale(1.15);
  }

  20% {
    transform: scale(1);
  }

  30% {
    transform: scale(1.12);
  }

  40% {
    transform: scale(1);
  }

  100% {
    transform: scale(1);
  }
}

/* =========================================================
   NAVIGATION
========================================================= */

.pink-nav {
  display: flex;

  align-items: center;

  gap: 42px;
}

.pink-nav a {
  position: relative;

  text-decoration: none;

  font-family: "Montserrat", sans-serif;

  font-size: 10px;

  letter-spacing: 1.5px;

  color: #3e3337;

  transition: color 0.3s ease;
}

.pink-nav a::after {
  content: "";

  position: absolute;

  left: 0;
  right: 0;

  bottom: -9px;

  height: 1px;

  background: #df6077;

  transform: scaleX(0);

  transform-origin: center;

  transition: transform 0.3s ease;
}

.pink-nav a:hover,
.pink-nav a.active {
  color: #d84f68;
}

.pink-nav a:hover::after,
.pink-nav a.active::after {
  transform: scaleX(1);
}

/* =========================================================
   MENU
========================================================= */

/* =========================================================
   HERO INNER
========================================================= */

.pink-hero-inner {
  position: relative;

  z-index: 5;

  max-width: 1400px;

  min-height: 570px;

  margin: auto;

  padding: 10px 42px 45px;

  display: grid;

  grid-template-columns:
    0.92fr
    1.08fr;

  align-items: center;

  gap: 10px;
}

/* =========================================================
   LEFT CONTENT
========================================================= */

.pink-hero-content {
  position: relative;

  z-index: 10;

  text-align: center;

  padding: 15px 20px 30px;
}

/* =========================================================
   SMALL TITLE
========================================================= */

.pink-hero-small {
  font-family: "Montserrat", sans-serif;

  font-size: 11px;

  letter-spacing: 4px;

  color: #4d4145;

  margin-bottom: 12px;
}

/* =========================================================
   DIVIDER
========================================================= */

.pink-hero-divider {
  width: 115px;

  margin: auto;

  display: flex;

  align-items: center;

  gap: 10px;
}

.pink-hero-divider span {
  flex: 1;

  height: 1px;

  background: linear-gradient(90deg, transparent, #e39ba7);
}

.pink-hero-divider span:last-child {
  background: linear-gradient(90deg, #e39ba7, transparent);
}

.pink-hero-divider i {
  font-style: normal;

  font-size: 14px;

  color: #df6077;
}

/* =========================================================
   NAMES
========================================================= */

.pink-hero-content h1 {
  margin: 14px 0 10px;

  display: flex;

  flex-direction: column;

  align-items: center;

  line-height: 0.82;
}

.pink-hero-content h1 span {
  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: clamp(75px, 7vw, 110px);

  font-weight: 500;

  color: #342b2e;
}

.pink-hero-content h1 em {
  /* margin: -2px 0; */
  margin-top: 15px;

  font-family: "Allura", cursive;

  font-size: clamp(45px, 4vw, 62px);

  font-weight: 400;

  color: #dc6579;
}

/* =========================================================
   MARRIED DIVIDER
========================================================= */

.pink-married-divider {
  width: 160px;

  margin: 15px auto 12px;

  display: flex;

  align-items: center;

  gap: 9px;
}

.pink-married-divider span {
  flex: 1;

  height: 1px;

  background: #e5a7b0;
}

.pink-married-divider i {
  font-style: normal;

  color: #df6077;

  font-size: 13px;
}

/* =========================================================
   GETTING MARRIED
========================================================= */

.pink-getting-married {
  margin: 0;

  font-family: "Montserrat", sans-serif;

  font-size: 10px;

  letter-spacing: 3px;

  color: #3d3337;
}

/* =========================================================
   INVITE BUTTON
========================================================= */

.pink-invite-btn {
  margin-top: 24px;

  padding: 12px 25px;

  min-width: 190px;

  border-radius: 999px;

  border: 1px solid #df6077;

  background: #df6077;

  color: #fff;

  font-family: "Montserrat", sans-serif;

  font-size: 10px;

  letter-spacing: 2px;

  cursor: pointer;

  display: flex;
  justify-content: center;
  align-items: center;
  align-self: center;
  justify-self: center;
  box-shadow: 0 10px 25px rgba(216, 79, 104, 0.22);
  /* transition:
    background 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease; */
}

.pink-invite-btn span {
  font-size: 17px;

  margin-left: 8px;
}

/* .pink-invite-btn:hover {
  background: #df6077;

  color: white;

  transform: translateY(-2px);

  box-shadow: 0 10px 25px rgba(216, 79, 104, 0.22);
} */

/* =========================================================
   HERO DETAILS
========================================================= */

.pink-hero-details {
  max-width: 520px;

  margin: 30px auto 0;

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 10px;
}

.pink-detail {
  min-height: 80px;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  padding: 5px;
}

.pink-detail + .pink-detail {
  border-left: 1px solid rgba(214, 93, 113, 0.22);
}

.pink-detail-icon {
  width: 25px;
  height: 25px;

  margin-bottom: 7px;

  color: #dc6478;
}

.pink-detail-icon svg {
  width: 100%;
  height: 100%;
}

.pink-detail strong {
  font-family: "Montserrat", sans-serif;

  font-size: 8px;

  letter-spacing: 1px;

  color: #43383c;
}

.pink-detail > span {
  margin-top: 4px;

  font-family: "Montserrat", sans-serif;

  font-size: 7px;

  letter-spacing: 1px;

  color: #6e6266;
}

/* =========================================================
   RIGHT IMAGE
========================================================= */

.pink-hero-image {
  position: relative;

  height: 570px;

  display: flex;

  align-items: center;

  justify-content: center;
}

/* large elegant circle */

.pink-image-circle {
  position: absolute;

  width: 520px;
  height: 520px;

  border-radius: 50%;

  border: 1px solid rgba(215, 91, 113, 0.25);
}

.pink-image-circle::before {
  content: "";

  position: absolute;

  inset: 12px;

  border-radius: 50%;

  border: 1px solid rgba(215, 91, 113, 0.12);
}

/* soft glow */

.pink-image-glow {
  position: absolute;

  width: 570px;
  height: 570px;

  border-radius: 50%;

  background: radial-gradient(
    circle,
    rgba(244, 128, 149, 0.17),
    transparent 65%
  );
}

/* image */

.pink-hero-image img {
  position: relative;

  z-index: 3;

  width: 500px;

  height: 560px;

  object-fit: cover;

  object-position: center;

  border-radius: 47% 47% 10% 10% / 42% 42% 8% 8%;

  filter: saturate(0.95) contrast(0.98);

  box-shadow: 0 25px 70px rgba(100, 40, 55, 0.15);
}

/* =========================================================
   FLOWERS
========================================================= */

.pink-flower {
  position: absolute;

  z-index: 5;

  color: #e47b8d;

  font-size: 38px;

  opacity: 0.8;

  filter: drop-shadow(0 5px 8px rgba(150, 60, 80, 0.12));
}

.pink-flower-one {
  right: 4%;

  bottom: 10%;

  transform: rotate(20deg);
}

.pink-flower-two {
  right: 1%;

  top: 20%;

  font-size: 27px;

  transform: rotate(-15deg);
}

.pink-flower-three {
  left: 4%;

  bottom: 17%;

  font-size: 25px;

  transform: rotate(-25deg);
}

/* =========================================================
   BOTTOM DECORATION
========================================================= */

.pink-hero-bottom-decoration {
  position: absolute;

  z-index: 10;

  bottom: 14px;

  left: 50%;

  transform: translateX(-50%);

  width: 180px;

  display: flex;

  align-items: center;

  gap: 12px;
}

.pink-hero-bottom-decoration span {
  flex: 1;

  height: 1px;

  background: linear-gradient(90deg, transparent, #e1a0aa);
}

.pink-hero-bottom-decoration span:last-child {
  background: linear-gradient(90deg, #e1a0aa, transparent);
}

.pink-hero-bottom-decoration i {
  color: #df6077;

  font-style: normal;

  font-size: 12px;
}

.side-menu {
  position: fixed;

  top: 0;
  right: 0;

  width: min(390px, 88vw);
  height: 100vh;

  background:
    radial-gradient(
      circle at 100% 0%,
      rgba(217, 120, 128, 0.13),
      transparent 30%
    ),
    linear-gradient(180deg, #fffaf7, #f9e9e5);

  z-index: 1000;

  transform: translateX(100%);

  transition: transform 0.45s cubic-bezier(0.77, 0, 0.18, 1);

  box-shadow: -15px 0 45px rgba(60, 40, 40, 0.12);

  overflow: auto;
}

.side-menu.active {
  transform: translateX(0);
}

.mf-es {
  height: 100px;
  width: 100%;
}

/* HEADER */

.side-menu-header {
  display: flex;

  align-items: center;
  justify-content: space-between;

  padding: 28px 28px 20px;

  border-bottom: 1px solid rgba(210, 180, 160, 0.3);
}

.side-monogram {
  font-family: "Cormorant Garamond", serif;

  font-size: 32px;

  letter-spacing: 2px;

  color: #272223;
}

.side-monogram span {
  color: var(--pink);
}

.close-menu {
  width: 44px;
  height: 44px;

  border-radius: 50%;

  border: 1px solid var(--border);

  background: rgba(255, 255, 255, 0.65);

  color: var(--pink);

  font-size: 30px;

  line-height: 1;

  cursor: pointer;

  transition: 0.25s;
}

.close-menu:hover {
  background: var(--pink);
  color: white;
}

/* CONTENT */

.side-menu-content {
  padding: 40px 30px;
}

.menu-label {
  font-size: 9px;

  letter-spacing: 3px;

  color: var(--pink);

  margin-bottom: 28px;
}

/* LINKS */

.side-menu nav {
  display: flex;

  flex-direction: column;

  gap: 5px;
}

.menu-link {
  display: flex;

  align-items: center;

  gap: 20px;

  padding: 16px 5px;

  color: var(--text);

  text-decoration: none;

  font-family: "Cormorant Garamond", serif;

  font-size: 23px;

  border-bottom: 1px solid rgba(220, 200, 190, 0.3);

  transition: 0.25s;
}

.menu-link span {
  font-family: "Montserrat", sans-serif;

  font-size: 9px;

  letter-spacing: 1px;

  color: var(--pink);

  width: 20px;
}

.menu-link:hover {
  color: var(--pink);

  padding-left: 12px;
}

/* DIVIDER */

.menu-divider {
  text-align: center;

  color: var(--gold);

  margin: 45px 0 35px;

  letter-spacing: 8px;

  font-size: 13px;
}

/* FOOTER */

.menu-footer {
  text-align: center;

  padding: 25px;

  border-radius: 18px;

  background: rgba(255, 255, 255, 0.55);

  border: 1px solid rgba(220, 200, 190, 0.4);
}

.menu-footer p {
  font-family: "Allura", cursive;

  font-size: 30px;

  line-height: 1.1;

  color: #403739;
}

.menu-footer span {
  display: block;

  margin-top: 15px;

  color: var(--pink);

  font-family: "Cormorant Garamond", serif;

  font-size: 18px;

  letter-spacing: 1px;
}

/* OVERLAY */

.menu-overlay {
  position: fixed;

  inset: 0;

  background: rgba(35, 25, 28, 0.38);

  backdrop-filter: blur(3px);

  z-index: 999;

  opacity: 0;

  visibility: hidden;

  transition: 0.35s;
}

.menu-overlay.active {
  opacity: 1;

  visibility: visible;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {
  .pink-nav {
    gap: 22px;
  }

  .pink-hero-inner {
    grid-template-columns:
      1fr
      1fr;
  }

  .pink-hero-content h1 span {
    font-size: 75px;
  }

  .pink-image-circle {
    width: 420px;
    height: 420px;
  }

  .pink-hero-image img {
    width: 410px;
    height: 500px;
  }
}

@media (max-width: 760px) {
  .pink-wedding-hero {
    min-height: auto;
  }

  .pink-hero-header {
    height: 70px;

    padding: 0 20px;
  }

  .pink-nav {
    display: none;
  }

  .pink-menu-btn {
    display: flex;
    width: 48px;
    height: 48px;

    border: 1px solid rgba(214, 91, 112, 0.35);

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.55);

    backdrop-filter: blur(12px);

    display: flex;

    align-items: center;

    justify-content: center;

    flex-direction: column;

    gap: 5px;

    cursor: pointer;
  }

  .pink-menu-btn span {
    width: 21px;

    height: 1.5px;

    background: #d9566f;

    border-radius: 5px;

    transition: 0.3s;
    display: block;
  }

  .pink-menu-btn:hover span:nth-child(1) {
    transform: translateX(3px);
  }

  .pink-menu-btn:hover span:nth-child(3) {
    transform: translateX(-3px);
  }

  .pink-logo {
    font-size: 32px;
  }

  .pink-menu-btn {
    width: 44px;
    height: 44px;
  }

  .pink-hero-inner {
    display: flex;

    flex-direction: column;

    padding: 5px 20px 45px;

    gap: 0;
  }

  /*
       Image goes ABOVE content on mobile,
       just like a premium wedding invitation.
    */

  .pink-hero-image {
    order: 1;

    width: 100%;

    height: 420px;
  }

  .pink-hero-content {
    order: 2;

    width: 100%;

    padding: 10px 0 30px;
  }

  .pink-image-circle {
    width: 360px;
    height: 360px;
  }

  .pink-image-circle::before {
    inset: 9px;
  }

  .pink-image-glow {
    width: 400px;
    height: 400px;
  }

  .pink-hero-image img {
    width: 340px;

    height: 410px;

    border-radius: 47% 47% 8% 8% / 38% 38% 6% 6%;
  }

  .pink-flower-one {
    right: 2%;

    bottom: 8%;
  }

  .pink-flower-three {
    left: 1%;

    bottom: 15%;
  }

  .pink-hero-content h1 span {
    font-size: 70px;
  }

  .pink-hero-content h1 em {
    font-size: 48px;
  }

  .pink-hero-details {
    max-width: 450px;

    margin-top: 25px;
  }
}

@media (max-width: 480px) {
  .pink-hero-image {
    height: 370px;
  }

  .pink-image-circle {
    width: 315px;
    height: 315px;
  }

  .pink-image-glow {
    width: 350px;
    height: 350px;
  }

  .pink-hero-image img {
    width: 300px;

    height: 360px;
  }

  .pink-hero-content h1 span {
    font-size: 62px;
  }

  .pink-hero-content h1 em {
    font-size: 43px;
  }

  .pink-hero-small {
    font-size: 9px;

    letter-spacing: 3px;
  }

  .pink-getting-married {
    font-size: 8px;

    letter-spacing: 2px;
  }

  .pink-hero-details {
    gap: 0;
  }

  .pink-detail strong {
    font-size: 7px;
  }

  .pink-detail > span {
    font-size: 6px;
  }
}

/* =========================================================
   WEDDING COUNTDOWN
========================================================= */

.wedding-countdown {
  position: relative;

  width: 100%;

  padding: 55px 30px 70px;

  overflow: hidden;

  background: linear-gradient(180deg, #fff9f9 0%, #fff1f4 100%);

  text-align: center;

  color: #351f26;
}

/* =========================================================
   HEADING
========================================================= */

.countdown-heading {
  display: flex;

  align-items: center;

  justify-content: center;

  gap: 20px;
}

.countdown-heading h2 {
  margin: 0;

  font-family: "Allura", cursive;

  font-size: clamp(38px, 4vw, 55px);

  font-weight: 400;

  color: #c92f51;

  line-height: 1;
}

.heading-flourish {
  font-family: "Cormorant Garamond", serif;

  font-size: 34px;

  color: #d96a7e;

  transform: rotate(-10deg);
}

.heading-flourish.right {
  transform: scaleX(-1) rotate(-10deg);
}

/* =========================================================
   HEART DIVIDER
========================================================= */

.countdown-divider {
  width: 130px;

  margin: 12px auto 30px;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 10px;
}

.countdown-divider span {
  flex: 1;

  height: 1px;

  background: #e7a2af;
}

.countdown-divider i {
  font-style: normal;

  color: #df4d6a;

  font-size: 13px;
}

/* =========================================================
   COUNTDOWN WRAPPER
========================================================= */

.countdown-wrapper {
  position: relative;

  max-width: 1000px;

  min-height: 190px;

  margin: auto;

  display: flex;

  align-items: center;

  justify-content: center;
}

/* =========================================================
   COUNTDOWN ITEMS
========================================================= */

.countdown-items {
  position: relative;

  z-index: 5;

  display: flex;

  align-items: center;

  justify-content: center;
}

/* =========================================================
   CIRCLES
========================================================= */

.countdown-circle {
  width: 125px;

  height: 125px;

  border-radius: 50%;

  border: 1px solid #efaab8;

  background: rgba(255, 250, 251, 0.65);

  box-shadow: 0 4px 18px rgba(212, 80, 105, 0.06);

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  position: relative;

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.countdown-circle::before {
  content: "";

  position: absolute;

  inset: 5px;

  border-radius: 50%;

  border: 1px solid rgba(235, 155, 171, 0.25);
}

.countdown-circle:hover {
  transform: translateY(-4px);

  box-shadow: 0 12px 30px rgba(212, 80, 105, 0.12);
}

.countdown-circle span {
  position: relative;

  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: 43px;

  line-height: 1;

  color: #c92f51;

  font-weight: 500;
}

.countdown-circle small {
  position: relative;

  margin-top: 8px;

  font-family: "Montserrat", sans-serif;

  font-size: 8px;

  letter-spacing: 1.5px;

  color: #34282c;
}

/* =========================================================
   CONNECTORS
========================================================= */

.countdown-connector {
  width: 75px;

  display: flex;

  align-items: center;

  justify-content: center;
}

.countdown-connector span {
  flex: 1;

  height: 1px;

  background: #efa5b3;
}

.countdown-connector i {
  flex-shrink: 0;

  margin: 0 8px;

  font-style: normal;

  font-size: 12px;

  color: #df4d6a;
}

/* =========================================================
   FLORAL DECORATIONS
========================================================= */

.countdown-floral {
  position: absolute;

  width: 150px;

  height: 180px;

  z-index: 2;

  pointer-events: none;
}

.countdown-floral-left {
  left: -10px;

  top: 5px;

  transform: rotate(-8deg);
}

.countdown-floral-right {
  right: -10px;

  top: 5px;

  transform: scaleX(-1) rotate(-8deg);
}

/* stems */

.countdown-floral::before {
  content: "";

  position: absolute;

  width: 4px;

  height: 155px;

  left: 58px;

  top: 20px;

  border-left: 2px solid rgba(104, 132, 87, 0.45);

  border-radius: 50%;

  transform: rotate(-20deg);
}

/* flowers */

.countdown-floral .flower {
  position: absolute;

  color: #e87991;

  text-shadow: 0 2px 5px rgba(210, 75, 100, 0.12);
}

.countdown-floral .flower-1 {
  left: 25px;

  top: 5px;

  font-size: 42px;
}

.countdown-floral .flower-2 {
  left: 72px;

  top: 58px;

  font-size: 31px;
}

.countdown-floral .flower-3 {
  left: 18px;

  top: 112px;

  font-size: 28px;
}

/* leaves */

.countdown-floral .leaf {
  position: absolute;

  color: rgba(105, 137, 91, 0.7);

  font-size: 32px;
}

.countdown-floral .leaf-1 {
  left: 53px;

  top: 45px;

  transform: rotate(-35deg);
}

.countdown-floral .leaf-2 {
  left: 48px;

  top: 92px;

  transform: rotate(25deg);
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {
  .countdown-floral {
    opacity: 0.65;

    transform: scale(0.8);
  }

  .countdown-floral-right {
    transform: scaleX(-1) scale(0.8) rotate(-8deg);
  }

  .countdown-circle {
    width: 110px;

    height: 110px;
  }

  .countdown-circle span {
    font-size: 38px;
  }

  .countdown-connector {
    width: 45px;
  }
}

@media (max-width: 650px) {
  .wedding-countdown {
    padding: 45px 15px 55px;
  }

  .countdown-heading {
    gap: 8px;
  }

  .countdown-heading h2 {
    font-size: 24px;
  }

  .heading-flourish {
    font-size: 24px;
  }

  .countdown-wrapper {
    min-height: auto;
  }

  .countdown-items {
    width: 100%;
  }

  .countdown-circle {
    width: 75px;

    height: 75px;
  }

  .countdown-circle::before {
    inset: 3px;
  }

  .countdown-circle span {
    font-size: 27px;
  }

  .countdown-circle small {
    font-size: 5.5px;

    letter-spacing: 1px;

    margin-top: 4px;
  }

  .countdown-connector {
    width: 20px;
  }

  .countdown-connector i {
    margin: 0 3px;

    font-size: 8px;
  }

  .countdown-floral {
    opacity: 0.35;

    transform: scale(0.55);
  }

  .countdown-floral-right {
    transform: scaleX(-1) scale(0.55) rotate(-8deg);
  }
}

@media (max-width: 430px) {
  .countdown-circle {
    width: 68px;

    height: 68px;
  }

  .countdown-circle span {
    font-size: 24px;
  }

  .countdown-circle small {
    font-size: 5px;
  }

  .countdown-connector {
    width: 12px;
  }

  .countdown-connector span {
    display: none;
  }

  .countdown-connector i {
    font-size: 7px;
  }
}

/* =========================================================
   OUR LOVE STORY
========================================================= */

.love-story {
  position: relative;

  width: 100%;

  min-height: 650px;

  padding: 70px 30px 110px;

  overflow: hidden;

  background:
    radial-gradient(
      ellipse at 15% 5%,
      rgba(247, 175, 190, 0.2),
      transparent 35%
    ),
    radial-gradient(
      ellipse at 85% 90%,
      rgba(247, 175, 190, 0.18),
      transparent 35%
    ),
    linear-gradient(180deg, #fffafb 0%, #fff4f6 100%);

  color: #3b252c;
}

/* =========================================================
   SOFT WATERCOLOUR CORNERS
========================================================= */

.love-story::before {
  content: "";

  position: absolute;

  width: 500px;
  height: 300px;

  left: -180px;
  top: -100px;

  background: radial-gradient(
    ellipse,
    rgba(245, 151, 172, 0.18),
    transparent 70%
  );

  filter: blur(15px);

  pointer-events: none;
}

.love-story::after {
  content: "";

  position: absolute;

  width: 500px;
  height: 300px;

  right: -180px;
  bottom: -100px;

  background: radial-gradient(
    ellipse,
    rgba(245, 151, 172, 0.18),
    transparent 70%
  );

  filter: blur(15px);

  pointer-events: none;
}

/* =========================================================
   HEADING
========================================================= */

.love-story-heading {
  position: relative;

  z-index: 10;

  text-align: center;

  margin-bottom: 55px;
}

.love-heading-decoration {
  position: absolute;

  left: 50%;

  top: -5px;

  width: 400px;

  transform: translateX(-50%);

  display: flex;

  justify-content: space-between;

  color: #df6079;

  font-size: 25px;
}

.love-story-heading h2 {
  margin: 0;

  font-family: "Allura", cursive;

  font-size: clamp(48px, 5vw, 68px);

  font-weight: 400;

  line-height: 1;

  color: #c92e50;
}

.love-heading-heart {
  width: 150px;

  margin: 15px auto 10px;

  display: flex;

  align-items: center;

  gap: 10px;
}

.love-heading-heart span {
  flex: 1;

  height: 1px;

  background: #eca2b0;
}

.love-heading-heart i {
  font-style: normal;

  font-size: 18px;

  color: #df4e6b;
}

.love-story-heading p {
  margin: 0;

  font-family: "Montserrat", sans-serif;

  font-size: 13px;

  letter-spacing: 0.5px;

  color: #6f5a60;
}

/* =========================================================
   PAPER PLANE
========================================================= */

.love-paper-plane {
  position: absolute;

  z-index: 4;

  right: 8%;

  top: 80px;

  width: 170px;

  height: 100px;

  pointer-events: none;
}

.plane {
  position: absolute;

  right: 0;

  top: 0;

  color: #df5570;

  font-size: 30px;

  transform: rotate(-20deg);
}

.plane-line {
  position: absolute;

  width: 120px;

  height: 70px;

  right: 30px;

  top: 20px;

  border-top: 1px dashed #ed91a5;

  border-radius: 50%;

  transform: rotate(-12deg);
}

/* =========================================================
   TIMELINE
========================================================= */

.love-timeline {
  position: relative;

  z-index: 5;

  max-width: 1250px;

  height: 330px;

  margin: auto;

  display: grid;

  grid-template-columns: repeat(5, 1fr);

  align-items: start;
}

/* =========================================================
   PATH
========================================================= */

.love-path {
  position: absolute;

  left: 0;

  right: 0;

  top: 115px;

  height: 180px;

  z-index: 0;

  pointer-events: none;
}

.love-path svg {
  width: 100%;

  height: 100%;
}

/* =========================================================
   TIMELINE ITEM
========================================================= */

.love-item {
  position: relative;

  z-index: 3;

  display: flex;

  flex-direction: column;

  align-items: center;

  text-align: center;
}

/* =========================================================
   PHOTO
========================================================= */

.love-photo {
  position: relative;

  width: 175px;

  height: 185px;

  padding: 8px;

  background: #fff;

  border: 1px solid rgba(225, 111, 135, 0.25);

  box-shadow: 0 8px 20px rgba(130, 50, 70, 0.1);

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.love-item:nth-child(odd) .love-photo {
  transform: rotate(-4deg);
}

.love-item:nth-child(even) .love-photo {
  transform: rotate(3deg);
}

.love-item:hover .love-photo {
  transform: rotate(0deg) translateY(-8px);

  box-shadow: 0 18px 35px rgba(130, 50, 70, 0.16);
}

.love-photo img {
  width: 100%;

  height: 100%;

  display: block;

  object-fit: cover;
}

/* =========================================================
   TAPE
========================================================= */

.love-tape {
  position: absolute;

  z-index: 5;

  top: -13px;

  left: 50%;

  width: 68px;

  height: 22px;

  transform: translateX(-50%) rotate(-4deg);

  background: rgba(247, 144, 162, 0.52);

  box-shadow: 0 2px 5px rgba(100, 50, 60, 0.06);
}

.love-item:nth-child(even) .love-tape {
  transform: translateX(-50%) rotate(5deg);
}

/* =========================================================
   HEARTS ON PATH
========================================================= */

.love-heart {
  position: absolute;

  z-index: 8;

  color: #df4d6b;

  font-size: 24px;

  background: #fff5f7;

  line-height: 1;
}

.love-heart-1 {
  right: -20px;

  top: 140px;
}

.love-heart-2 {
  right: -22px;

  top: 120px;
}

.love-heart-3 {
  right: -22px;

  top: 140px;
}

.love-heart-4 {
  right: -22px;

  top: 120px;
}

.love-heart-5 {
  display: none;
}

/* =========================================================
   TEXT
========================================================= */

.love-item h3 {
  margin: 25px 0 6px;

  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: 25px;

  line-height: 0.95;

  font-style: italic;

  font-weight: 600;

  color: #bd2f50;
}

.love-item time {
  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: 18px;

  color: #392b30;
}

/* =========================================================
   FLOATING HEARTS
========================================================= */

.floating-heart {
  position: absolute;

  color: #ef8da1;

  opacity: 0.6;

  z-index: 2;
}

.floating-heart-1 {
  left: 7%;

  top: 300px;

  font-size: 45px;

  transform: rotate(-20deg);
}

.floating-heart-2 {
  left: 4%;

  top: 390px;

  font-size: 25px;
}

.floating-heart-3 {
  right: 12%;

  top: 265px;

  font-size: 18px;
}

/* =========================================================
   FLOWERS
========================================================= */

.love-flower {
  position: absolute;

  bottom: -5px;

  width: 230px;

  height: 190px;

  z-index: 3;

  pointer-events: none;
}

.love-flower-left {
  left: -15px;
}

.love-flower-right {
  right: -15px;

  transform: scaleX(-1);
}

.love-flower span {
  position: absolute;

  color: #ed7790;

  text-shadow: 0 3px 8px rgba(150, 50, 70, 0.1);
}

.love-flower span:nth-child(1) {
  left: 20px;

  bottom: 20px;

  font-size: 80px;
}

.love-flower span:nth-child(2) {
  left: 95px;

  bottom: 65px;

  font-size: 52px;
}

.love-flower span:nth-child(3) {
  left: 155px;

  bottom: 25px;

  font-size: 60px;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {
  .love-timeline {
    max-width: 900px;
  }

  .love-photo {
    width: 145px;

    height: 155px;
  }

  .love-item h3 {
    font-size: 21px;
  }

  .love-item time {
    font-size: 16px;
  }

  .love-heart {
    font-size: 18px;
  }
}

@media (max-width: 760px) {
  .love-story {
    padding: 55px 20px 100px;
  }

  .love-paper-plane {
    opacity: 0.5;

    right: 0;

    top: 80px;

    transform: scale(0.7);
  }

  .love-heading-decoration {
    width: 300px;
  }

  .love-timeline {
    height: auto;

    display: flex;

    flex-direction: column;

    gap: 55px;

    padding: 20px 0;
    /* overflow: auto; */
  }

  /*
       Hide desktop SVG path on mobile.
       Mobile uses a simple vertical dotted journey.
    */

  .love-path {
    left: 50%;

    top: 0;

    width: 1px;

    height: 100%;

    transform: translateX(-50%);
    display: none;
  }

  /* .love-path svg {
    display: none;
  } */

  /* .love-path::after {
    content: "";

    position: absolute;

    top: 0;

    bottom: 0;

    left: 0;

    border-left: 2px dashed #ed91a5;
  } */

  .love-item {
    width: 100%;
  }

  .love-photo {
    width: 280px;

    height: 290px;
  }

  .love-heart {
    position: relative;

    right: auto;

    top: auto;

    margin: 10px 0 -8px;

    padding: 4px 8px;

    background: #fff4f6;
  }

  .love-item h3 {
    margin-top: 15px;

    font-size: 25px;
  }

  .love-flower {
    opacity: 0.6;

    transform: scale(0.7);
  }

  .love-flower-right {
    transform: scaleX(-1) scale(0.7);
  }
}

@media (max-width: 480px) {
  .love-story {
    padding: 50px 15px 90px;
  }

  .love-story-heading h2 {
    font-size: 24px;
  }

  .love-story-heading p {
    font-size: 11px;
  }

  .love-heading-decoration {
    width: 240px;

    font-size: 20px;
  }

  .love-paper-plane {
    opacity: 0.25;

    transform: scale(0.55);
  }

  /* .love-photo {
    width: 165px;

    height: 175px;
  } */

  .love-item h3 {
    font-size: 23px;
  }

  .love-item time {
    font-size: 16px;
  }

  .love-flower {
    transform: scale(0.5);

    transform-origin: bottom left;
  }

  .love-flower-right {
    transform: scaleX(-1) scale(0.5);

    transform-origin: bottom right;
  }
}

/* =========================================================
   WEDDING CELEBRATIONS
========================================================= */

.wedding-celebrations {
  position: relative;

  width: 100%;

  padding: 75px 30px 65px;

  overflow: hidden;

  background: linear-gradient(180deg, #fff3f5 0%, #ffeef2 100%);

  color: #4a202b;
}

/* =========================================================
   SOFT BACKGROUND
========================================================= */

.wedding-celebrations::before {
  content: "";

  position: absolute;

  width: 500px;

  height: 500px;

  left: -250px;

  bottom: -250px;

  background: radial-gradient(
    circle,
    rgba(236, 106, 132, 0.16),
    transparent 70%
  );

  pointer-events: none;
}

.wedding-celebrations::after {
  content: "";

  position: absolute;

  width: 450px;

  height: 450px;

  right: -220px;

  top: -220px;

  background: radial-gradient(
    circle,
    rgba(247, 150, 169, 0.14),
    transparent 70%
  );

  pointer-events: none;
}

/* =========================================================
   HEADER
========================================================= */

.celebrations-header {
  position: relative;

  z-index: 2;

  text-align: center;

  margin-bottom: 45px;
}

.celebrations-header h2 {
  margin: 0;

  font-family: "Allura", "Great Vibes", cursive;

  font-size: clamp(45px, 5vw, 65px);

  font-weight: 400;

  color: #bd3150;

  line-height: 1;
}

.celebrations-header p {
  margin: 12px 0 0;

  font-family: "Montserrat", sans-serif;

  font-size: 12px;

  letter-spacing: 0.5px;

  color: #805e67;
}

.celebration-flourish {
  position: absolute;

  left: calc(50% - 230px);

  top: 8px;

  font-size: 26px;

  color: #e17a8f;

  transform: rotate(-12deg);
}

.celebration-flourish.right {
  left: auto;

  right: calc(50% - 230px);

  transform: scaleX(-1) rotate(-12deg);
}

/* =========================================================
   SLIDER
========================================================= */

.celebrations-slider {
  position: relative;

  z-index: 5;

  max-width: 1180px;

  margin: auto;

  display: flex;

  align-items: center;

  gap: 18px;
}

.celebration-cards {
  width: 100%;

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  gap: 22px;
}

/* =========================================================
   CARD
========================================================= */

.celebration-card {
  position: relative;

  height: 500px;

  overflow: hidden;

  border-radius: 20px;

  border: 1px solid rgba(216, 88, 113, 0.35);

  background: #351c22;

  box-shadow: 0 12px 30px rgba(129, 45, 65, 0.15);

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.celebration-card:hover {
  transform: translateY(-7px);

  box-shadow: 0 20px 40px rgba(129, 45, 65, 0.22);
}

.celebration-card img {
  position: absolute;

  inset: 0;

  width: 100%;

  height: 100%;

  object-fit: cover;

  transition: transform 0.6s ease;
}

.celebration-card:hover img {
  transform: scale(1.06);
}

/* =========================================================
   IMAGE OVERLAY
========================================================= */

.celebration-overlay {
  position: absolute;

  inset: 0;

  background: linear-gradient(
    180deg,
    rgba(30, 10, 16, 0.05) 15%,
    rgba(35, 10, 18, 0.25) 38%,
    rgba(40, 10, 18, 0.88) 100%
  );
}

/* =========================================================
   CARD CONTENT
========================================================= */

.celebration-content {
  position: absolute;

  inset: 0;

  z-index: 3;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: flex-end;

  text-align: center;

  padding: 25px 18px 24px;
}

/* =========================================================
   ICON
========================================================= */

.event-icon {
  position: absolute;

  top: 22px;

  left: 50%;

  transform: translateX(-50%);

  width: 58px;

  height: 58px;

  border-radius: 50%;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 26px;

  background: rgba(255, 244, 247, 0.94);

  border: 2px solid rgba(218, 79, 107, 0.65);

  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);
}

/* =========================================================
   TITLE
========================================================= */

.celebration-content h3 {
  margin: 0 0 15px;

  font-family: "Allura", "Great Vibes", cursive;

  font-size: 36px;

  line-height: 1;

  font-weight: 400;

  color: #fff;

  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

/* =========================================================
   EVENT DETAILS
========================================================= */

.event-details {
  display: flex;

  flex-direction: column;

  gap: 7px;

  margin-bottom: 17px;
}

.event-details span {
  font-family: "Cormorant Garamond", Georgia, serif;

  font-size: 15px;

  color: #fff;

  letter-spacing: 0.2px;
}

/* =========================================================
   DRESS CODE
========================================================= */

.dress-code {
  padding: 7px 18px;

  border-radius: 30px;

  background: rgba(255, 224, 232, 0.15);

  border: 1px solid rgba(255, 210, 221, 0.5);

  font-family: "Montserrat", sans-serif;

  font-size: 9px;

  letter-spacing: 0.4px;

  color: #fff;
}

/* =========================================================
   ACTIVE CARD
========================================================= */

.celebration-card.active {
  border: 2px solid rgba(234, 103, 129, 0.65);

  box-shadow: 0 15px 38px rgba(197, 54, 82, 0.2);
}

/* =========================================================
   ARROWS
========================================================= */

.celebration-arrow {
  flex-shrink: 0;

  width: 44px;

  height: 44px;

  border: none;

  border-radius: 50%;

  background: #df5571;

  color: #fff;

  font-size: 20px;

  cursor: pointer;

  display: flex;

  align-items: center;

  justify-content: center;

  box-shadow: 0 5px 15px rgba(190, 50, 80, 0.2);

  transition:
    transform 0.25s ease,
    background 0.25s ease;
}

.celebration-arrow:hover {
  transform: scale(1.08);

  background: #c93e5c;
}

/* =========================================================
   PAGINATION
========================================================= */

.celebration-pagination {
  position: relative;

  z-index: 5;

  margin-top: 25px;

  display: flex;

  align-items: center;

  justify-content: center;

  gap: 7px;
}

.pagination-dot {
  width: 7px;

  height: 7px;

  border-radius: 50%;

  background: #e7a1af;

  transition: all 0.3s ease;
}

.pagination-dot.active {
  width: 9px;

  height: 9px;

  background: #df4e6b;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {
  .celebrations-slider {
    gap: 10px;
  }

  .celebration-cards {
    gap: 12px;
  }

  .celebration-card {
    height: 400px;
  }

  .celebration-content h3 {
    font-size: 30px;
  }

  .event-details span {
    font-size: 13px;
  }

  .celebration-arrow {
    width: 38px;

    height: 38px;

    font-size: 17px;
  }
}

@media (max-width: 700px) {
  .wedding-celebrations {
    padding: 60px 18px 50px;
  }

  .celebrations-slider {
    height: fit-content;
  }

  .celebration-cards {
    display: flex;
    gap: 20px;
    flex-direction: column;
  }

  .celebration-card {
    min-width: 100%;

    height: 400px;

    /* display: none; */
  }

  .celebration-card.active {
    display: block;
  }

  .celebration-arrow {
    position: absolute;

    z-index: 10;

    top: 50%;

    transform: translateY(-50%);
  }

  .celebration-arrow:hover {
    transform: translateY(-50%) scale(1.08);
  }

  .celebration-prev {
    left: 8px;
  }

  .celebration-next {
    right: 8px;
  }

  .celebration-flourish {
    left: calc(50% - 170px);
  }

  .celebration-flourish.right {
    right: calc(50% - 170px);
  }
}

@media (max-width: 450px) {
  .wedding-celebrations {
    padding: 50px 12px 45px;
  }

  .celebrations-header {
    margin-bottom: 35px;
  }

  .celebrations-header h2 {
    font-size: 24px;
  }

  .celebrations-header p {
    font-size: 10px;
  }

  .celebration-card {
    height: 400px;

    border-radius: 17px;
  }

  .celebration-content h3 {
    font-size: 34px;
  }

  .event-icon {
    width: 54px;

    height: 54px;

    font-size: 23px;
  }

  .celebration-prev {
    left: 4px;
  }

  .celebration-next {
    right: 4px;
  }
}

/* =========================================
   WEDDING VENUE
========================================= */

.wedding-venue {
  --pink-dark: #743d4d;
  --pink-deep: #5d3040;
  --pink: #a85d70;
  --pink-light: #d99aaa;
  --rose-gold: #b97970;
  --cream: #fff8f4;
  --cream-dark: #f5e5df;
  --text: #57363f;

  position: relative;
  overflow: hidden;

  padding: 100px 30px 95px;

  background:
    radial-gradient(
      circle at 10% 20%,
      rgba(211, 142, 157, 0.13),
      transparent 28%
    ),
    radial-gradient(
      circle at 90% 70%,
      rgba(185, 121, 112, 0.12),
      transparent 30%
    ),
    var(--cream);

  color: var(--text);
}

/* Subtle paper texture */
.wedding-venue::before {
  content: "";
  position: absolute;
  inset: 0;

  opacity: 0.18;
  pointer-events: none;

  background-image: radial-gradient(
    rgba(120, 70, 70, 0.15) 0.7px,
    transparent 0.7px
  );

  background-size: 7px 7px;
}

/* Container */
.venue-container {
  position: relative;
  /* z-index: 2; */

  max-width: 1200px;
  margin: 0 auto;
}

/* =========================================
   HEADING
========================================= */

.venue-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;

  margin-bottom: 12px;
}

.venue-title-wrap {
  text-align: center;
}

.venue-small-title {
  display: block;

  margin-bottom: 8px;

  font-family: Georgia, serif;
  font-size: 11px;
  letter-spacing: 4px;
  color: var(--pink);
}

.venue-title-wrap h2 {
  margin: 0;

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(27px, 4vw, 42px);
  font-weight: 400;
  letter-spacing: 4px;

  color: var(--pink-dark);
}

.venue-line {
  width: 90px;
  height: 1px;

  background: linear-gradient(90deg, transparent, var(--rose-gold));
}

.venue-line:last-child {
  background: linear-gradient(90deg, var(--rose-gold), transparent);
}

/* Heart */
.venue-heart {
  width: 36px;
  height: 36px;

  margin: 0 auto 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--rose-gold);

  font-size: 25px;

  position: relative;
}

.venue-heart::before,
.venue-heart::after {
  content: "";

  position: absolute;
  top: 50%;

  width: 38px;
  height: 1px;

  background: var(--rose-gold);
}

.venue-heart::before {
  right: 100%;
  margin-right: 12px;
}

.venue-heart::after {
  left: 100%;
  margin-left: 12px;
}

/* =========================================
   MAIN CARD
========================================= */

.venue-card {
  position: relative;

  display: grid;
  grid-template-columns: 1fr 1.15fr;

  min-height: 360px;

  border: 1px solid rgba(168, 93, 112, 0.35);

  border-radius: 18px;

  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.8),
    rgba(251, 232, 226, 0.75)
  );

  box-shadow:
    0 20px 60px rgba(116, 61, 77, 0.1),
    inset 0 0 0 1px rgba(255, 255, 255, 0.6);

  overflow: hidden;
}

/* Inner border */
.venue-card::before {
  content: "";

  position: absolute;
  inset: 10px;

  border: 1px solid rgba(185, 121, 112, 0.2);

  border-radius: 11px;

  pointer-events: none;
  z-index: 3;
}

/* =========================================
   VENUE INFO
========================================= */

.venue-info {
  display: flex;
  align-items: center;

  padding: 55px 45px;

  gap: 35px;

  position: relative;
}

/* Building */
.venue-icon-wrap {
  flex-shrink: 0;

  width: 125px;
  height: 170px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--rose-gold);

  opacity: 0.9;
}

.venue-building-icon {
  width: 120px;
  height: 150px;

  filter: drop-shadow(0 5px 5px rgba(116, 61, 77, 0.08));
}

/* Info */
.venue-details {
  position: relative;
  z-index: 2;
}

.venue-label {
  display: block;

  margin-bottom: 9px;

  font-size: 10px;
  letter-spacing: 3px;

  color: var(--pink);
}

.venue-details h3 {
  margin: 0 0 14px;

  font-family: Georgia, serif;
  font-weight: 400;

  font-size: clamp(23px, 3vw, 31px);
  letter-spacing: 1px;

  color: var(--pink-dark);
}

.venue-address {
  margin: 0;

  font-family: Georgia, serif;

  font-size: 14px;
  line-height: 1.7;

  color: #76525b;
}

/* =========================================
   VENUE META
========================================= */

.venue-meta {
  display: flex;
  align-items: center;

  gap: 18px;

  margin: 22px 0;

  font-family: Georgia, serif;

  font-size: 9px;
  letter-spacing: 1.5px;

  color: #987079;
}

.venue-meta span:not(.meta-divider) {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.venue-meta strong {
  font-size: 13px;
  font-weight: 400;

  color: var(--pink-dark);
}

.meta-divider {
  width: 1px;
  height: 32px;

  background: rgba(168, 93, 112, 0.3);
}

/* =========================================
   BUTTON
========================================= */

.directions-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  gap: 15px;

  padding: 11px 20px;

  border: 1px solid var(--pink);
  border-radius: 30px;

  background: transparent;

  color: var(--pink-dark);

  font-family: Georgia, serif;
  font-size: 10px;
  letter-spacing: 1.5px;

  cursor: pointer;

  transition:
    background 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.directions-btn span {
  font-size: 17px;

  transition: transform 0.3s ease;
}

.directions-btn:hover {
  background: var(--pink-dark);
  color: white;

  transform: translateY(-2px);

  box-shadow: 0 10px 25px rgba(116, 61, 77, 0.2);
}

.directions-btn:hover span {
  transform: translateX(5px);
}

/* =========================================
   MAP
========================================= */

.venue-map-wrapper {
  padding: 18px;

  position: relative;
}

.venue-map {
  position: relative;

  width: 100%;
  height: 100%;

  min-height: 320px;

  overflow: hidden;

  border-radius: 14px;

  background: linear-gradient(135deg, #ead7d1, #f4e6e1);

  border: 1px solid rgba(168, 93, 112, 0.25);
}

/* Map roads */
.map-road {
  position: absolute;

  height: 2px;

  background: rgba(168, 93, 112, 0.25);

  transform-origin: left center;
}

.road-1 {
  width: 120%;
  top: 35%;
  left: -5%;
  transform: rotate(18deg);
}

.road-2 {
  width: 110%;
  top: 62%;
  left: -5%;
  transform: rotate(-22deg);
}

.road-3 {
  width: 100%;
  top: 48%;
  left: 15%;
  transform: rotate(65deg);
}

.road-4 {
  width: 90%;
  top: 10%;
  left: 30%;
  transform: rotate(112deg);
}

/* Thicker roads */
.road-1::after,
.road-2::after {
  content: "";

  position: absolute;
  left: 0;
  top: -4px;

  width: 100%;
  height: 10px;

  background: rgba(255, 255, 255, 0.35);
}

/* Map labels */
.map-label {
  position: absolute;

  font-family: Arial, sans-serif;

  font-size: 9px;
  letter-spacing: 1.5px;

  color: rgba(116, 61, 77, 0.55);

  transform: rotate(-20deg);
}

.label-1 {
  top: 30%;
  right: 12%;
}

.label-2 {
  bottom: 22%;
  left: 17%;
}

.label-3 {
  top: 52%;
  left: 48%;

  transform: rotate(65deg);
}

/* Map location */
.map-location {
  position: absolute;

  left: 58%;
  top: 43%;

  width: 52px;
  height: 52px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: var(--pink-dark);

  z-index: 4;
}

.map-location svg {
  position: relative;
  z-index: 3;

  width: 45px;
  height: 45px;

  filter: drop-shadow(0 5px 8px rgba(116, 61, 77, 0.25));
}

/* Pulse */
.location-pulse {
  position: absolute;

  width: 60px;
  height: 60px;

  border-radius: 50%;

  background: rgba(168, 93, 112, 0.18);

  animation: locationPulse 2s infinite;
}

@keyframes locationPulse {
  0% {
    transform: scale(0.65);
    opacity: 0.8;
  }

  70% {
    transform: scale(1.4);
    opacity: 0;
  }

  100% {
    transform: scale(1.4);
    opacity: 0;
  }
}

/* =========================================
   QUOTE
========================================= */

.venue-quote {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 20px;

  margin-top: 45px;
}

.venue-quote p {
  margin: 0;

  font-family: Georgia, serif;

  font-size: 16px;
  font-style: italic;

  color: var(--pink-dark);

  text-align: center;
}

.venue-quote p span {
  color: var(--pink);
}

.quote-line {
  width: 60px;
  height: 1px;

  background: linear-gradient(90deg, transparent, var(--rose-gold));
}

.quote-line:last-child {
  background: linear-gradient(90deg, var(--rose-gold), transparent);
}

/* =========================================
   DECORATIONS
========================================= */

.venue-decoration {
  position: absolute;

  color: var(--pink-light);

  opacity: 0.35;

  pointer-events: none;

  animation: floatDecoration 5s ease-in-out infinite;
}

.venue-decoration-1 {
  top: 15%;
  left: 5%;

  font-size: 25px;
}

.venue-decoration-2 {
  top: 70%;
  right: 6%;

  font-size: 45px;

  animation-delay: 1.5s;
}

.venue-decoration-3 {
  bottom: 12%;
  left: 13%;

  font-size: 16px;

  animation-delay: 3s;
}

@keyframes floatDecoration {
  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-12px) rotate(8deg);
  }
}

/* =========================================
   SCROLL REVEAL
========================================= */

.reveal {
  opacity: 0;

  transform: translateY(35px);

  transition:
    opacity 0.9s ease,
    transform 0.9s ease;
}

.reveal.active {
  opacity: 1;

  transform: translateY(0);
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 900px) {
  .wedding-venue {
    padding: 75px 20px;
  }

  .venue-card {
    grid-template-columns: 1fr;
  }

  .venue-info {
    padding: 50px 40px;
  }

  .venue-map-wrapper {
    padding: 0 18px 18px;
  }

  .venue-map {
    min-height: 300px;
  }
}

@media (max-width: 600px) {
  .wedding-venue {
    padding: 60px 15px;
  }

  .venue-heading {
    gap: 12px;
  }

  .venue-line {
    width: 35px;
  }

  .venue-small-title {
    font-size: 8px;
    letter-spacing: 2px;
  }

  .venue-title-wrap h2 {
    font-size: 25px;
    letter-spacing: 2px;
  }

  .venue-heart {
    margin-bottom: 25px;
  }

  .venue-info {
    flex-direction: column;

    text-align: center;

    padding: 40px 25px;

    gap: 15px;
  }

  .venue-icon-wrap {
    width: 100px;
    height: 110px;
  }

  .venue-building-icon {
    width: 90px;
    height: 110px;
  }

  .venue-address {
    font-size: 13px;
  }

  .venue-meta {
    justify-content: center;
  }

  .venue-map-wrapper {
    padding: 0 12px 12px;
  }

  .venue-map {
    min-height: 260px;
  }

  .venue-quote {
    gap: 10px;
  }

  .quote-line {
    width: 30px;
  }

  .venue-quote p {
    font-size: 13px;
  }

  .venue-decoration-1 {
    left: 2%;
  }

  .venue-decoration-2 {
    right: 2%;
  }
}

/* =========================================
   WEDDING GALLERY
========================================= */

.wedding-gallery {
  --gallery-pink-dark: #743d4d;
  --gallery-pink: #a85d70;
  --gallery-pink-light: #d99aaa;
  --gallery-rose: #b97970;
  --gallery-cream: #fff8f4;

  position: relative;

  padding: 75px 30px 80px;

  background:
    radial-gradient(
      circle at 10% 20%,
      rgba(217, 154, 170, 0.15),
      transparent 25%
    ),
    radial-gradient(
      circle at 90% 80%,
      rgba(185, 121, 112, 0.12),
      transparent 28%
    ),
    var(--gallery-cream);

  overflow: hidden;
}

/* Subtle paper texture */

.wedding-gallery::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  opacity: 0.16;

  background-image: radial-gradient(
    rgba(116, 61, 77, 0.18) 0.7px,
    transparent 0.7px
  );

  background-size: 7px 7px;
}

/* =========================================
   CONTAINER
========================================= */

.gallery-container {
  position: relative;
  z-index: 2;

  max-width: 1200px;
  margin: 0 auto;

  display: flex;
  flex-direction: column;
  align-items: center;
}

/* =========================================
   HEADING
========================================= */

.gallery-heading {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;

  gap: 24px;

  margin-bottom: 8px;
}

.gallery-title {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gallery-title h2 {
  margin: 0;

  font-family: Georgia, "Times New Roman", serif;

  font-size: clamp(28px, 4vw, 40px);

  font-weight: 400;

  letter-spacing: 6px;

  color: var(--gallery-pink-dark);
}

.gallery-heart {
  margin-top: 3px;

  color: var(--gallery-rose);

  font-size: 12px;

  line-height: 1;
}

/* Heading Lines */

.gallery-line {
  width: 95px;
  height: 1px;

  background: linear-gradient(90deg, transparent, var(--gallery-rose));
}

.gallery-line:last-child {
  background: linear-gradient(90deg, var(--gallery-rose), transparent);
}

/* =========================================
   GALLERY GRID
========================================= */

.gallery-grid {
  width: 100%;

  display: grid;

  grid-template-columns: repeat(5, 1fr);

  gap: 10px;

  margin-top: 5px;
}

/* =========================================
   GALLERY ITEM
========================================= */

.gallery-item {
  position: relative;

  height: 185px;

  overflow: hidden;

  border-radius: 13px;

  border: 1.5px solid var(--gallery-rose);

  background: #eadbd7;

  cursor: pointer;

  box-shadow: 0 5px 18px rgba(116, 61, 77, 0.1);

  transition:
    transform 0.4s ease,
    box-shadow 0.4s ease;
}

.gallery-item:hover {
  transform: translateY(-6px);

  box-shadow: 0 15px 35px rgba(116, 61, 77, 0.22);
}

/* Image */

.gallery-item img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  transition:
    transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1),
    filter 0.5s ease;
}

.gallery-item:hover img {
  transform: scale(1.08);

  filter: brightness(0.72) saturate(1.08);
}

/* =========================================
   IMAGE OVERLAY
========================================= */

.gallery-overlay {
  position: absolute;

  inset: 0;

  display: flex;
  align-items: flex-end;
  justify-content: center;

  padding: 20px;

  background: linear-gradient(to top, rgba(73, 34, 45, 0.65), transparent 60%);

  opacity: 0;

  transition: opacity 0.4s ease;
}

.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

.gallery-overlay span {
  font-family: Georgia, serif;

  font-size: 13px;

  letter-spacing: 1.5px;

  color: white;

  transform: translateY(10px);

  transition: transform 0.4s ease;
}

.gallery-item:hover .gallery-overlay span {
  transform: translateY(0);
}

/* =========================================
   BUTTON
========================================= */

.gallery-button {
  display: flex;
  align-items: center;
  justify-content: center;

  gap: 7px;

  margin-top: 15px;

  padding: 10px 20px;

  border: 1px solid var(--gallery-pink);

  border-radius: 30px;

  background: linear-gradient(
    135deg,
    var(--gallery-pink-dark),
    var(--gallery-pink)
  );

  color: #fff;

  font-family: Georgia, serif;

  font-size: 10px;

  letter-spacing: 1.4px;

  cursor: pointer;

  box-shadow: 0 5px 15px rgba(116, 61, 77, 0.18);

  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease,
    background 0.3s ease;
}

.gallery-button:hover {
  transform: translateY(-3px);

  box-shadow: 0 10px 25px rgba(116, 61, 77, 0.25);

  background: linear-gradient(
    135deg,
    var(--gallery-pink),
    var(--gallery-pink-dark)
  );
}

.photo-count {
  opacity: 0.8;
}

.gallery-button-icon {
  width: 16px;
  height: 16px;

  margin-left: 4px;

  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-button-icon svg {
  width: 16px;
  height: 16px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.5;
}

/* =========================================
   MODAL
========================================= */

.gallery-modal {
  position: fixed;

  inset: 0;

  z-index: 9999;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 40px;

  background: rgba(45, 20, 28, 0.94);

  backdrop-filter: blur(10px);

  opacity: 0;

  visibility: hidden;

  pointer-events: none;

  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

.gallery-modal.active {
  opacity: 1;

  visibility: visible;

  pointer-events: auto;
}

/* Modal content */

.gallery-modal-content {
  position: relative;

  max-width: 900px;
  max-height: 85vh;

  display: flex;
  flex-direction: column;
  align-items: center;

  transform: scale(0.92);

  transition: transform 0.4s ease;
}

.gallery-modal.active .gallery-modal-content {
  transform: scale(1);
}

.gallery-modal-content img {
  display: block;

  max-width: 90vw;
  max-height: 78vh;

  object-fit: contain;

  border-radius: 8px;

  box-shadow: 0 25px 80px rgba(0, 0, 0, 0.45);
}

/* =========================================
   MODAL CONTROLS
========================================= */

.gallery-close,
.gallery-prev,
.gallery-next {
  position: absolute;

  border: none;

  background: transparent;

  color: white;

  cursor: pointer;

  transition:
    color 0.25s ease,
    transform 0.25s ease;
}

.gallery-close:hover,
.gallery-prev:hover,
.gallery-next:hover {
  color: var(--gallery-pink-light);

  transform: scale(1.12);
}

/* Close */

.gallery-close {
  top: 25px;
  right: 30px;

  font-size: 40px;

  font-weight: 200;

  line-height: 1;

  z-index: 5;
}

/* Previous */

.gallery-prev,
.gallery-next {
  top: 50%;

  width: 55px;
  height: 55px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-top: -27px;

  border-radius: 50%;

  background: rgba(255, 255, 255, 0.08);

  border: 1px solid rgba(255, 255, 255, 0.25);

  font-size: 22px;
}

.gallery-prev {
  left: 30px;
}

.gallery-next {
  right: 30px;
}

/* Counter */

.gallery-counter {
  margin-top: 15px;

  font-family: Georgia, serif;

  font-size: 12px;

  letter-spacing: 2px;

  color: rgba(255, 255, 255, 0.8);
}

/* =========================================
   DECORATIVE FLOATING ELEMENTS
========================================= */

.wedding-gallery::after {
  content: "♡";

  position: absolute;

  right: 5%;
  bottom: 18%;

  font-size: 80px;

  font-family: Georgia, serif;

  color: var(--gallery-pink-light);

  opacity: 0.12;

  transform: rotate(-12deg);

  animation: galleryFloat 6s ease-in-out infinite;

  pointer-events: none;
}

@keyframes galleryFloat {
  0%,
  100% {
    transform: translateY(0) rotate(-12deg);
  }

  50% {
    transform: translateY(-15px) rotate(-5deg);
  }
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 900px) {
  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .gallery-item {
    height: 180px;
  }

  .gallery-item-4,
  .gallery-item-5 {
    display: none;
  }

  .gallery-prev {
    left: 15px;
  }

  .gallery-next {
    right: 15px;
  }
}

@media (max-width: 600px) {
  .wedding-gallery {
    padding: 60px 15px 65px;
  }

  .gallery-heading {
    gap: 12px;
  }

  .gallery-line {
    width: 35px;
  }

  .gallery-title h2 {
    font-size: 25px;

    letter-spacing: 4px;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);

    gap: 8px;
  }

  .gallery-item {
    height: 145px;

    border-radius: 10px;
  }

  .gallery-item-5 {
    display: block;

    grid-column: span 2;

    height: 170px;
  }

  .gallery-overlay {
    opacity: 1;

    padding: 12px;

    background: linear-gradient(to top, rgba(73, 34, 45, 0.5), transparent 65%);
  }

  .gallery-overlay span {
    font-size: 10px;

    transform: translateY(0);
  }

  .gallery-modal {
    padding: 20px;
  }

  .gallery-modal-content img {
    max-width: 92vw;
    max-height: 72vh;
  }

  .gallery-close {
    top: 15px;
    right: 18px;

    font-size: 34px;
  }

  .gallery-prev,
  .gallery-next {
    width: 42px;
    height: 42px;

    margin-top: -21px;

    font-size: 17px;
  }

  .gallery-prev {
    left: 10px;
  }

  .gallery-next {
    right: 10px;
  }
}

/* =========================================
   WEDDING FOOTER
========================================= */

.wedding-footer {
  --footer-dark: #8f304d;
  --footer-pink: #c95d7a;
  --footer-light: #f7a8bb;
  --footer-soft: #f9c8d4;
  --footer-pale: #fff0f4;
  --footer-cream: #fff8f6;

  position: relative;

  min-height: 500px;

  padding: 115px 25px 35px;

  overflow: hidden;

  background: linear-gradient(180deg, #fff8f6 0%, #fff0f4 45%, #fbd8e2 100%);

  color: var(--footer-dark);

  isolation: isolate;
}

/* =========================================
   SUBTLE TEXTURE
========================================= */

.wedding-footer::before {
  content: "";

  position: absolute;

  inset: 0;

  pointer-events: none;

  opacity: 0.14;

  background-image: radial-gradient(
    rgba(143, 48, 77, 0.18) 0.7px,
    transparent 0.7px
  );

  background-size: 8px 8px;

  z-index: 0;
}

/* =========================================
   WAVES
========================================= */

.footer-wave {
  position: absolute;

  left: -5%;

  width: 110%;

  border-radius: 50% 50% 0 0;

  pointer-events: none;

  z-index: -1;
}

/* Back wave */

.wave-back {
  bottom: -220px;

  height: 390px;

  background: rgba(249, 200, 212, 0.55);

  transform: rotate(-2deg);
}

/* Middle wave */

.wave-middle {
  bottom: -260px;

  height: 350px;

  background: rgba(244, 167, 187, 0.38);

  transform: rotate(2deg);
}

/* Front wave */

.wave-front {
  bottom: -310px;

  height: 350px;

  background: rgba(238, 135, 163, 0.25);

  transform: rotate(-1deg);
}

/* =========================================
   FOOTER CONTENT
========================================= */

.footer-content {
  position: relative;

  z-index: 5;

  max-width: 900px;

  margin: 0 auto;

  text-align: center;

  display: flex;

  flex-direction: column;

  align-items: center;
}

/* =========================================
   TOP DECORATION
========================================= */

.footer-decoration {
  display: flex;

  align-items: center;

  justify-content: center;

  gap: 13px;

  margin-bottom: 13px;
}

.footer-line {
  width: 65px;

  height: 1px;

  background: linear-gradient(90deg, transparent, var(--footer-pink));
}

.footer-line:last-child {
  background: linear-gradient(90deg, var(--footer-pink), transparent);
}

.footer-heart {
  color: var(--footer-pink);

  font-size: 13px;

  animation: footerHeartbeat 2.2s ease-in-out infinite;
}

@keyframes footerHeartbeat {
  0%,
  100% {
    transform: scale(1);
  }

  15% {
    transform: scale(1.18);
  }

  30% {
    transform: scale(1);
  }

  45% {
    transform: scale(1.12);
  }

  60% {
    transform: scale(1);
  }
}

/* =========================================
   MAIN TITLE
========================================= */

.footer-title {
  margin: 0;

  font-family: "Brush Script MT", "Segoe Script", cursive;

  font-size: clamp(34px, 5vw, 58px);

  line-height: 1.12;

  font-weight: 400;

  color: var(--footer-dark);

  text-shadow: 0 2px 10px rgba(143, 48, 77, 0.08);
}

/* =========================================
   SUBTITLE
========================================= */

.footer-subtitle {
  margin: 14px 0 0;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 15px;

  letter-spacing: 0.3px;

  color: #9c5869;
}

/* =========================================
   COUPLE
========================================= */

.footer-couple {
  display: flex;

  align-items: center;

  gap: 12px;

  margin-top: 30px;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 17px;

  letter-spacing: 3px;

  color: var(--footer-dark);
}

.footer-ampersand {
  font-family: "Brush Script MT", "Segoe Script", cursive;

  font-size: 27px;

  color: var(--footer-pink);
}

/* =========================================
   DATE
========================================= */

.footer-date {
  margin-top: 9px;

  font-family: Georgia, serif;

  font-size: 10px;

  letter-spacing: 3px;

  color: #a96a79;

  text-transform: uppercase;
}

/* =========================================
   BOTTOM FOOTER
========================================= */

.footer-bottom {
  display: flex;

  align-items: center;

  gap: 12px;

  margin-top: 45px;

  padding-top: 17px;

  border-top: 1px solid rgba(143, 48, 77, 0.16);

  min-width: 260px;

  justify-content: center;

  font-family: Arial, sans-serif;

  font-size: 8px;

  letter-spacing: 3px;

  color: rgba(143, 48, 77, 0.65);
}

.footer-bottom-heart {
  color: var(--footer-pink);

  font-size: 10px;
}

/* =========================================
   FLOWERS
========================================= */

.footer-flowers {
  position: absolute;

  bottom: -30px;

  width: 250px;

  height: 240px;

  z-index: 3;

  pointer-events: none;
}

/* Left */

.footer-flowers-left {
  left: -20px;

  transform: rotate(-5deg);
}

/* Right */

.footer-flowers-right {
  right: -20px;

  transform: scaleX(-1) rotate(-5deg);
}

/* =========================================
   FLOWER
========================================= */

.flower {
  position: absolute;

  width: 65px;

  height: 65px;

  border-radius: 50%;
}

.flower-large {
  left: 25px;

  bottom: 42px;

  transform: rotate(10deg);
}

.flower-small {
  left: 95px;

  bottom: 15px;

  width: 48px;

  height: 48px;

  transform: rotate(-15deg);
}

/* Petals */

.petal {
  position: absolute;

  left: 50%;

  top: 50%;

  width: 28px;

  height: 42px;

  border-radius: 50% 50% 45% 45%;

  background: linear-gradient(145deg, #f7a5b8, #df6f8d);

  transform-origin: 50% 100%;

  opacity: 0.92;

  box-shadow: inset -3px -3px 7px rgba(143, 48, 77, 0.08);
}

.p1 {
  transform: translate(-50%, -100%) rotate(0deg);
}

.p2 {
  transform: translate(-50%, -100%) rotate(72deg);
}

.p3 {
  transform: translate(-50%, -100%) rotate(144deg);
}

.p4 {
  transform: translate(-50%, -100%) rotate(216deg);
}

.p5 {
  transform: translate(-50%, -100%) rotate(288deg);
}

/* Flower center */

.flower-center {
  position: absolute;

  left: 50%;
  top: 50%;

  width: 16px;
  height: 16px;

  border-radius: 50%;

  transform: translate(-50%, -50%);

  background: radial-gradient(circle, #f8d68b 0%, #e6aa55 55%, #c88354 100%);

  box-shadow: 0 2px 5px rgba(143, 48, 77, 0.15);

  z-index: 3;
}

/* =========================================
   LEAVES
========================================= */

.flower-leaf {
  position: absolute;

  width: 22px;
  height: 44px;

  border-radius: 100% 0 100% 0;

  background: linear-gradient(135deg, #91a889, #c2c9a7);

  opacity: 0.7;

  transform-origin: bottom center;
}

.leaf-1 {
  left: 105px;

  bottom: 80px;

  transform: rotate(48deg);
}

.leaf-2 {
  left: 140px;

  bottom: 65px;

  transform: rotate(95deg) scale(0.85);
}

.leaf-3 {
  left: 68px;

  bottom: 25px;

  transform: rotate(-40deg) scale(0.8);
}

/* Leaf stem */

.footer-flowers::after {
  content: "";

  position: absolute;

  left: 82px;

  bottom: 10px;

  width: 3px;

  height: 155px;

  border-radius: 50%;

  background: linear-gradient(to top, #7e9279, #aab49b);

  transform: rotate(30deg);

  transform-origin: bottom center;

  opacity: 0.55;
}

/* =========================================
   FLOATING PETALS / HEARTS
========================================= */

.footer-petal {
  position: absolute;

  z-index: 2;

  color: var(--footer-pink);

  opacity: 0.3;

  font-family: Georgia, serif;

  pointer-events: none;

  animation: footerPetalFloat 5s ease-in-out infinite;
}

.petal-1 {
  top: 22%;

  left: 17%;

  font-size: 18px;

  animation-delay: 0s;
}

.petal-2 {
  top: 35%;

  left: 8%;

  font-size: 10px;

  animation-delay: 1s;
}

.petal-3 {
  top: 28%;

  right: 18%;

  font-size: 21px;

  animation-delay: 2s;
}

.petal-4 {
  top: 50%;

  right: 9%;

  font-size: 11px;

  animation-delay: 3s;
}

.petal-5 {
  top: 18%;

  right: 35%;

  font-size: 13px;

  animation-delay: 1.5s;
}

@keyframes footerPetalFloat {
  0%,
  100% {
    transform: translateY(0) rotate(0deg);
  }

  50% {
    transform: translateY(-18px) rotate(15deg);
  }
}

/* =========================================
   SCROLL REVEAL
========================================= */

.reveal-footer {
  opacity: 0;

  transform: translateY(25px);

  transition:
    opacity 1s ease,
    transform 1s ease;
}

.reveal-footer.visible {
  opacity: 1;

  transform: translateY(0);
}

/* Stagger */

.footer-title.visible {
  transition-delay: 0.15s;
}

.footer-subtitle.visible {
  transition-delay: 0.3s;
}

.footer-couple.visible {
  transition-delay: 0.45s;
}

.footer-date.visible {
  transition-delay: 0.55s;
}

.footer-bottom.visible {
  transition-delay: 0.7s;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 700px) {
  .wedding-footer {
    min-height: 480px;

    padding: 90px 20px 30px;
  }

  .footer-title {
    font-size: 38px;
  }

  .footer-subtitle {
    font-size: 13px;
  }

  .footer-couple {
    font-size: 15px;

    letter-spacing: 2px;
  }

  .footer-flowers {
    width: 170px;

    height: 170px;

    bottom: -20px;
  }

  .footer-flowers-left {
    left: -45px;
  }

  .footer-flowers-right {
    right: -45px;
  }

  .flower-large {
    transform: scale(0.75) rotate(10deg);
  }

  .flower-small {
    transform: scale(0.65) rotate(-15deg);
  }

  .flower-leaf {
    transform: scale(0.75) rotate(48deg);
  }

  .footer-bottom {
    margin-top: 35px;

    min-width: auto;

    font-size: 7px;

    letter-spacing: 2px;
  }

  .footer-petal {
    opacity: 0.2;
  }

  .petal-1,
  .petal-2 {
    left: 5%;
  }

  .petal-3,
  .petal-4 {
    right: 5%;
  }
}

/* =========================================
   VERY SMALL SCREENS
========================================= */

@media (max-width: 420px) {
  .wedding-footer {
    padding-top: 80px;
  }

  .footer-title {
    font-size: 32px;
  }

  .footer-line {
    width: 40px;
  }

  .footer-date {
    font-size: 8px;

    letter-spacing: 2px;
  }

  .footer-flowers {
    opacity: 0.85;

    transform: scale(0.8);
  }

  .footer-flowers-left {
    left: -60px;
  }

  .footer-flowers-right {
    right: -60px;
  }
}
