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

 /* THEME COLORS */
 :root {
   --ice-blue: #9fc1cf;
   --sky-blue: #6eaed1;
   --soft-blue: #4ba4d9;
   --ocean-blue: #1694cf;
   --deep-blue: #0a628f;

   --soft-white: #f7f8f6;

   --dark: #13394d;
   --text: #4c6472;

   --shadow: 0 12px 35px rgba(10, 98, 143, 0.12);
   --radius: 24px;
 }

 /* Curosr*/
 html,
 body {
   cursor: url(/assets/cursor/cursor_default.png), default !important;
 }

 button,
 a,
 img,
 .details-card,
 .faq-card,
 .hashtag,
 .featured-card,
 .entourage-card,
 .sponsor-item,
 .party-column {
   cursor: url(/assets/cursor/cursor_hover.png), pointer !important;
 }

 /* BASE */
 html {
   scroll-behavior: smooth;
 }

 body {
   font-family: "Inter", sans-serif;
   background: var(--soft-white);
   color: var(--text);
   line-height: 1.7;
   overflow-x: hidden;
 }

 body.hidden {
   display: none;
 }

 h1,
 h2,
 h3 {
   font-family: "Playfair Display", serif;
   color: var(--dark);
 }

 img {
   width: 100%;
   display: block;
 }

 /* IMAGE FALLBACK */
 .image-frame {
   position: relative;
   overflow: hidden;
   background:
     linear-gradient(135deg,
       rgba(159, 193, 207, 0.35),
       rgba(110, 174, 209, 0.18));
 }

 .image-frame::before {
   content: "Photo";
   position: absolute;
   inset: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   color: rgba(10, 98, 143, 0.4);
   font-size: 1rem;
   font-weight: 600;
   letter-spacing: 2px;
   text-transform: uppercase;
 }

 .image-frame img {
   position: relative;
   z-index: 2;
 }


 /* CONTAINER AND SECTIONS */
 .container {
   width: 90%;
   max-width: 1150px;
   margin: auto;
 }

 .section {
   padding: 100px 0;
 }

 .section-title {
   text-align: center;
   margin-bottom: 30px;
 }

 .section-title p {
   color: var(--ocean-blue);
   text-transform: uppercase;
   letter-spacing: 3px;
   font-size: 0.85rem;
   font-weight: 600;
   margin-bottom: 10px;
 }

 .section-title h2 {
   font-size: 3rem;
   color: var(--deep-blue);
 }

 #home {
   scroll-margin-top: 80px;
 }

 .no-margin-scroll {
   scroll-margin-top: 0px !important;
 }

 /* Animation Base CSS */
 .reveal {
   opacity: 0;
   transform: translateY(40px);
   transition: none;
 }

 .details-card,
 .faq-card,
 .entourage-card,
 .featured-card,
 .sponsor-item,
 .party-column,
 .spotify-card {
   transition: transform 0.3s ease, box-shadow 0.3s ease;
 }

 .details-card:hover,
 .faq-card:hover,
 .entourage-card:hover,
 .featured-card:hover,
 .sponsor-item:hover,
 .party-column:hover,
 .spotify-card:hover {
   transform: translateY(-6px) !important;
 }

 /* NAVBAR */
 .navbar {
   position: sticky;
   top: 0;
   z-index: 999;
   display: flex;
   justify-content: space-between;
   height: 78px;
   align-items: center;
   padding: 18px 6%;
   background: rgba(247, 248, 246, 0.9);
   backdrop-filter: blur(10px);
   border-bottom: 1px solid rgba(22, 148, 207, 0.08);
   transition: 0.3s ease;
 }

 .logo {
   text-decoration: none;
   color: var(--deep-blue);
   font-size: 1.5rem;
   font-family: "Playfair Display", serif;
   font-weight: 700;
 }

 .nav-links {
   display: flex;
   gap: 28px;
   list-style: none;
 }

 .nav-links a {
   position: relative;
   text-decoration: none;
   color: var(--dark);
   transition: 0.3s ease;
 }

 .nav-links a::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: -5px;
   width: 0;
   height: 2px;
   background: var(--ocean-blue);
   transition: 0.3s ease;
 }

 .nav-links a:hover::after,
 .nav-links a.active::after {
   width: 100%;
 }

 .nav-links a.active {
   color: var(--ocean-blue);
 }

 .menu-toggle {
   display: none;
   background: none;
   border: none;
   font-size: 2rem;
   color: var(--deep-blue);
   cursor: pointer;
 }

 /* HOME SECTION */
 .hero {
   position: relative;
   min-height: calc(100vh - 78px);
   display: flex;
   justify-content: center;
   align-items: center;
   text-align: center;
   padding: 20px;
   background:
     linear-gradient(rgba(10, 98, 143, 0.45),
       rgba(10, 98, 143, 0.45)),
     url("/images/main_hero.jpg");
   background-size: cover;
   background-position: center;
 }

 .hero-content {
   position: relative;
   z-index: 2;
   max-width: 850px;
   color: white;
 }

 .hero-subtitle {
   text-transform: uppercase;
   letter-spacing: 4px;
   margin-bottom: 15px;
   font-size: 0.85rem;
   opacity: 0.9;
 }

 .hero h2 {
   color: white;
   font-size: 1.2rem;
   margin-bottom: 15px;
 }

 .hero h1 {
   color: white;
   font-size: 5.2rem;
   line-height: 1.1;
   margin-bottom: 20px;
 }

 .hero-date {
   font-size: 1.2rem;
   margin-bottom: 35px;
 }

 .hero-info-strip {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 15px;
   margin-bottom: 35px;
 }

 .hero-info-strip div {
   padding: 12px 18px;
   border-radius: 50px;
   background: rgba(255, 255, 255, 0.12);
   border: 1px solid rgba(255, 255, 255, 0.18);
   backdrop-filter: blur(12px);
   font-size: 0.9rem;
   letter-spacing: 1px;
   font-weight: 600;
 }

 .countdown {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 18px;
   margin-bottom: 35px;
 }

 .countdown.hidden,
 .countdown-finished.hidden {
   display: none;
 }

 .countdown-finished {
   display: inline-flex;
   align-items: center;
   gap: 18px;
   margin-top: 20px;
   margin-bottom: 50px;
   padding: 14px 22px;
   border-radius: 999px;
   background: rgba(255, 255, 255, 0.12);
   border: 1px solid rgba(255, 255, 255, 0.18);
   backdrop-filter: blur(14px);
   box-shadow:
     0 8px 30px rgba(0, 0, 0, 0.12),
     inset 0 1px 0 rgba(255, 255, 255, 0.12);
 }

 .finished-ring {
   width: 52px;
   height: 52px;

   display: flex;
   align-items: center;
   justify-content: center;

   border-radius: 50%;

   background:
     linear-gradient(135deg,
       var(--soft-blue),
       var(--deep-blue));

   font-size: 1.2rem;

   box-shadow:
     0 8px 20px rgba(10, 98, 143, 0.28);
 }

 .finished-divider {
   width: 1px;
   height: 40px;
   background: rgba(255, 255, 255, 0.18);
 }

 .finished-text {
   text-align: left;
 }

 .finished-text span {
   display: block;

   margin-bottom: 2px;

   color: rgba(255, 255, 255, 0.75);

   font-size: 0.72rem;
   font-weight: 600;

   letter-spacing: 3px;
   text-transform: uppercase;
 }

 .finished-text h2 {
   margin: 0;

   color: white;

   font-size: 2rem;
   line-height: 1.1;
 }

 @media (max-width: 575.98px) {

   .countdown-finished {
     padding: 12px 18px;
     gap: 14px;
   }

   .finished-ring {
     width: 46px;
     height: 46px;
   }

   .finished-text h2 {
     font-size: 1.35rem;
   }
 }

 .time-box {
   min-width: 100px;
   padding: 20px;
   border-radius: 20px;
   background: rgba(255, 255, 255, 0.12);
   border: 1px solid rgba(255, 255, 255, 0.2);
   backdrop-filter: blur(12px);
 }

 .time-box span {
   display: block;
   font-size: 2rem;
   font-weight: 700;
 }

 .time-box small {
   text-transform: uppercase;
   letter-spacing: 1px;
   font-size: 0.75rem;
 }

 .btn {
   display: inline-block;
   padding: 14px 32px;
   border-radius: 50px;
   background:
     linear-gradient(135deg,
       var(--soft-blue),
       var(--deep-blue));
   color: white;
   text-decoration: none;
   font-weight: 600;
   transition: 0.35s ease;
 }

 .btn:hover {
   transform: translateY(-4px);
   box-shadow: 0 10px 25px rgba(10, 98, 143, 0.25);
 }

 @media (max-width: 1070px) {
   .menu-toggle {
     display: block;
     margin-left: auto;
   }

   .nav-links {
     position: absolute;
     top: 80px;
     right: 5%;
     width: 220px;
     flex-direction: column;
     padding: 25px;
     border-radius: 20px;
     background: rgba(247, 248, 246, 0.98);
     box-shadow: var(--shadow);
     opacity: 0;
     pointer-events: none;
   }

   .nav-links.active {
     opacity: 1;
     pointer-events: auto;
   }
 }

 @media (max-width: 767.98px) {
   .hero h1 {
     font-size: 3.3rem;
   }
 }

 @media (max-width: 575.98px) {

   .countdown .time-box:nth-last-child(1) {
     display: none;
   }

   .hero h1 {
     font-size: 2.5rem;
   }

   .hero h2 {
     font-size: 1rem;
   }

   .hero p {
     font-size: 0.8rem;
   }

   .time-box {
     min-width: 75px;
     padding: 14px;
   }

   .time-box span {
     font-size: 1.5rem;
   }
 }

 /* STORY SECTION */
 .story-wrapper {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 70px;
   align-items: center;
 }

 .story-image {
   aspect-ratio: 11 / 8;
   border-radius: var(--radius);
   box-shadow: var(--shadow);
 }

 .story-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: var(--radius);
   transition: 0.5s ease;
 }

 .story-image:hover img {
   transform: scale(1.05) !important;
 }

 .story-text h3 {
   font-size: 2rem;
   margin-bottom: 20px;
   color: var(--deep-blue);
 }

 .story-text p {
   margin-bottom: 20px;
 }

 @media (max-width: 991.98px) {
   .story-wrapper {
     grid-template-columns: 1fr;
   }
 }

 /* DETAILS SECTION */
 .details-section {
   background:
     linear-gradient(to bottom,
       #edf6fa,
       #f7f8f6);
 }

 .details-intro {
   max-width: 760px;
   margin: 0 auto 60px;
   text-align: center;
   font-size: 1.05rem;
   color: var(--text);
 }

 .details-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 35px;
 }

 .details-card {
   display: flex;
   flex-direction: column;
   border-radius: 32px;
   overflow: hidden;
   background: rgba(255, 255, 255, 0.85);
   border: 1px solid rgba(22, 148, 207, 0.08);
   box-shadow: var(--shadow);
   transition: 0.3s ease;
 }

 .details-image {
   position: relative;
   aspect-ratio: 16 / 10;
   overflow: hidden;
 }

 .details-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: 0.5s ease;
 }

 .details-card:hover .details-image img {
   transform: scale(1.05) !important;
 }

 .details-qr {
   position: absolute;
   top: 18px;
   right: 18px;
   padding: 10px;
   border-radius: 18px;
   background: rgba(255, 255, 255, 0.92);
   backdrop-filter: blur(10px);
   box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
   z-index: 5;
 }

 .details-qr img {
   width: 72px;
   height: 72px;
   object-fit: contain;
 }

 .details-content {
   padding: 35px;
 }

 .details-label {
   display: inline-block;
   margin-bottom: 16px;
   color: var(--ocean-blue);
   text-transform: uppercase;
   letter-spacing: 3px;
   font-size: 0.75rem;
   font-weight: 700;
 }

 .details-content h3 {
   margin-bottom: 25px;
   font-size: 2rem;
   color: var(--deep-blue);
 }

 .details-meta {
   display: flex;
   flex-direction: column;
   gap: 18px;
   margin-bottom: 30px;
 }

 .details-item strong {
   display: block;
   margin-bottom: 4px;
   color: var(--deep-blue);
   text-transform: uppercase;
   letter-spacing: 1px;
   font-size: 0.85rem;
 }

 .details-item span {
   color: var(--text);
 }

 @media (max-width: 991.98px) {
   .details-grid {
     grid-template-columns: 1fr;
   }
 }

 @media (max-width: 767.98px) {
   .details-content {
     padding: 28px;
   }

   .details-content h3 {
     font-size: 1.7rem;
   }

   .details-qr {
     top: 14px;
     right: 14px;
     padding: 8px;
   }

   .details-qr img {
     width: 60px;
     height: 60px;
   }
 }

 @media (max-width: 575.98px) {
   .details-image {
     aspect-ratio: 4 / 3;
   }

   .details-content h3 {
     font-size: 1.5rem;
   }
 }

 /* LOCATION SECTION */
 .location-section {
   background:
     linear-gradient(to bottom,
       #f7f8f6,
       #eef7fb);
   padding-bottom: 100px;
 }

 .map-toggle {
   display: flex;
   justify-content: center;
   gap: 12px;
   margin-bottom: 25px;
 }

 .map-btn {
   padding: 10px 22px;
   border-radius: 50px;
   border: 1px solid rgba(22, 148, 207, 0.25);
   background: white;
   color: var(--deep-blue);
   font-weight: 600;
   cursor: pointer;
   transition: 0.3s ease;
 }

 .map-btn:hover {
   transform: translateY(-2px) !important;
 }

 .map-btn.active {
   background: linear-gradient(135deg, var(--soft-blue), var(--deep-blue));
   color: white;
   border-color: transparent;
 }

 .map-wrapper {
   display: none;
   position: relative;
   border-radius: 24px;
   overflow: hidden;
   box-shadow: var(--shadow);
   opacity: 0;
   transform: translateY(10px) !important;
   transition: 0.35s ease;
   pointer-events: none;
 }

 .map-wrapper.active-map {
   display: block;
   opacity: 1;
   transform: translateY(0) !important;
   pointer-events: auto;
 }

 .map-wrapper iframe {
   width: 100%;
   height: 500px;
   border: 0;
   transition: 0.4s ease;
 }

 .qr-overlay {
   position: absolute;
   top: 20px;
   right: 20px;
   padding: 10px;
   border-radius: 18px;
   background: rgba(255, 255, 255, 0.95);
 }

 .qr-overlay img {
   width: 100px;
   transition: 0.4s ease;
 }

 @media (max-width: 575.98px) {
   .map-wrapper iframe {
     height: 350px;
   }

   .qr-overlay img {
     width: 50px;
   }
 }

 /* SCHEDULE SECTION */
 .timeline {
   max-width: 800px;
   margin: auto;
 }

 .timeline-item {
   display: flex;
   gap: 30px;
   padding: 35px 0;
   border-bottom: 1px solid rgba(22, 148, 207, 0.1);
 }

 .timeline-time {
   min-width: 120px;
   color: var(--ocean-blue);
   font-weight: 700;
   font-size: 1.1rem;
 }

 /* RSVP SECTION */
 .rsvp-section {
   background: linear-gradient(to bottom, #edf6fa, #f7f8f6);
 }

 .rsvp-note {
   max-width: 760px;
   margin: 0 auto 30px;
   text-align: center;
 }

 .rsvp-note h3 {
   font-size: 2.4rem;
   margin-bottom: 20px;
 }

 .rsvp-deadline {
   margin-top: 20px;
   color: var(--ocean-blue);
   font-weight: 700;
 }

 .rsvp-box {
   height: 650px;
   padding: 20px 10px;
   overflow: hidden;
   border-radius: 24px;
   border: 1px solid rgba(22, 148, 207, 0.08);
   box-shadow: var(--shadow);
 }

 .rsvp-box iframe {
   border: 0;
 }

 /* FAQ + REMINDER SECTION */
 .faq-section {
   background: #eef7fb;
 }

 .faq-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 25px;
   margin-bottom: 80px;
 }

 .faq-card {
   padding: 35px;
   border-radius: var(--radius);
   background: rgba(255, 255, 255, 0.85);
   box-shadow: var(--shadow);
 }

 .faq-card h3 {
   margin-bottom: 15px;
   color: var(--deep-blue);
 }

 .reminder-box {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 45px;
   align-items: center;
 }

 .reminder-image {
   aspect-ratio: 11 / 8;
   border-radius: 28px;
   overflow: hidden;
 }

 .reminder-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: 0.5s ease;
 }

 .reminder-image:hover img {
   transform: scale(1.05);
 }

 .reminder-label {
   display: inline-block;
   margin-bottom: 18px;
   text-transform: uppercase;
   letter-spacing: 3px;
   color: var(--ocean-blue);
   font-size: 0.8rem;
   font-weight: 700;
 }

 .reminder-content h3 {
   font-size: 3rem;
   margin-bottom: 20px;
 }

 @media (max-width: 991.98px) {
   .faq-grid {
     grid-template-columns: repeat(2, 1fr);
   }

   .reminder-box {
     grid-template-columns: 1fr;
   }
 }

 @media (max-width: 767.98px) {

   .section-title h2,
   .gallery-social-content h3,
   .reminder-content h3,
   .rsvp-note h3 {
     font-size: 2.2rem;
   }
 }

 /* GALLERY SECTION */
 .gallery-section {
   background: #eef7fb;
 }

 .gallery {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 20px;
 }

 .img-box {
   min-height: 340px;
   overflow: hidden;
   border-radius: 24px;
   box-shadow: var(--shadow);
 }

 .img-box img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: 0.5s ease;
 }

 .img-box:hover img {
   transform: scale(1.05) !important;
 }

 @media (max-width: 991.98px) {
   .gallery {
     grid-template-columns: repeat(2, 1fr);
   }
 }

 /* SOCIAL GALLERY */
 .gallery-social {
   margin-top: 90px;
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 50px;
   align-items: center;
 }

 .gallery-social-image {
   aspect-ratio: 11 / 8;
   border-radius: 28px;
   overflow: hidden;
   box-shadow: var(--shadow);
 }

 .gallery-social-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: 0.5s ease;
 }

 .gallery-social-image:hover img {
   transform: scale(1.05) !important;
 }

 .gallery-tag {
   display: inline-block;
   margin-bottom: 18px;
   text-transform: uppercase;
   letter-spacing: 3px;
   color: var(--ocean-blue);
   font-size: 0.8rem;
   font-weight: 700;
 }

 .gallery-social-content h3 {
   font-size: 3rem;
   margin-bottom: 20px;
   color: var(--deep-blue);
 }

 .gallery-social-content p {
   margin-bottom: 18px;
 }

 .hashtag {
   display: inline-block;
   margin: 25px 0 35px;
   padding: 16px 24px;
   border-radius: 50px;
   background: rgba(22, 148, 207, 0.08);
   color: var(--deep-blue);
   font-weight: 700;
   font-size: 1rem;
   letter-spacing: 1px;
   transition: 0.3s ease;
 }

 .hashtag:hover {
   transform: translateY(-4px) !important;
   background: var(--deep-blue);
   color: white;
 }

 .social-icons {
   display: flex;
   gap: 16px;
 }

 .social-icons a {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 58px;
   height: 58px;
   padding: 10px;
   border-radius: 50%;
   background: white;
   color: var(--deep-blue);
   text-decoration: none;
   font-weight: 700;
   box-shadow: var(--shadow);
   transition: 0.3s ease;
 }

 .social-icons a:hover {
   transform: translateY(-4px) !important;
   background: var(--deep-blue);
   color: white;
 }

 @media (max-width: 991.98px) {
   .gallery-social {
     grid-template-columns: 1fr;
   }
 }

 /* SPOTIFY SECTION */
 .spotify-section {
   background: linear-gradient(to bottom, #eef7fb, #f7f8f6);
 }

 .spotify-intro {
   max-width: 720px;
   margin: 0 auto 50px;
   text-align: center;
   font-size: 1.05rem;
   color: var(--text);
   line-height: 1.8;
 }

 .spotify-card {
   display: grid;
   grid-template-columns: 1fr 1.3fr;
   gap: 40px;
   align-items: stretch;
   padding: 40px;
   border-radius: 28px;
   background: rgba(255, 255, 255, 0.85);
   border: 1px solid rgba(22, 148, 207, 0.12);
   box-shadow: var(--shadow);
   backdrop-filter: blur(10px);
   transition: transform 0.3s ease, box-shadow 0.3s ease;
 }

 .spotify-card:hover {
   transform: translateY(-6px) !important;
   box-shadow: 0 18px 45px rgba(10, 98, 143, 0.18);
 }

 .spotify-info h3,
 .spotify-info h3 span {
   font-size: 2rem;
   color: var(--deep-blue);
   margin-bottom: 8px;
 }

 .spotify-info span {
   display: inline-block;
   margin-bottom: 18px;
   color: var(--ocean-blue);
   font-weight: 700;
   letter-spacing: 2px;
   text-transform: uppercase;
   font-size: 0.8rem;
 }

 .spotify-info p {
   margin-bottom: 25px;
   color: var(--text);
   line-height: 1.8;
 }

 .spotify-btn {
   display: inline-block;
   padding: 12px 26px;
   border-radius: 50px;
   background: linear-gradient(135deg, var(--soft-blue), var(--deep-blue));
   color: white;
   text-decoration: none;
   font-weight: 600;
   letter-spacing: 0.5px;
   transition: all 0.3s ease;
 }

 .spotify-btn:hover {
   transform: translateY(-3px) !important;
   box-shadow: 0 12px 30px rgba(10, 98, 143, 0.25);
 }

 .spotify-embed {
   display: flex;
   align-items: stretch;
   width: 100%;
 }

 .spotify-embed iframe {
   width: 100%;
   min-height: 100%;
   height: 360px;
   border: none;
   border-radius: 18px;
   box-shadow: var(--shadow);
   transition: box-shadow 0.3s ease;
 }

 .spotify-embed iframe:hover {
   box-shadow: 0 18px 40px rgba(10, 98, 143, 0.25);
 }

 @media (max-width: 991.98px) {
   .spotify-card {
     grid-template-columns: 1fr;
     padding: 30px;
     gap: 25px;
   }

   .spotify-info h3 {
     font-size: 1.7rem;
   }
 }

 @media (max-width: 767.98px) {
   .spotify-card {
     padding: 25px;
   }

   .spotify-intro {
     font-size: 1rem;
   }
 }

 @media (max-width: 575.98px) {
   .spotify-card {
     padding: 20px;
   }

   .spotify-info h3 {
     font-size: 1.5rem;
   }
 }

 /* ENTOURAGE SECTION */
 .entourage-section {
   background: linear-gradient(to bottom, #edf6fa, #f7f8f6);
 }

 .entourage-group:not(:last-child) {
   margin-bottom: 90px;
 }

 .group-heading {
   position: relative;
   margin-bottom: 40px;
   text-align: center;
 }

 .group-heading span {
   display: inline-block;
   padding: 10px 22px;
   border-radius: 50px;
   background: rgba(22, 148, 207, 0.08);
   color: var(--deep-blue);
   font-size: 0.82rem;
   font-weight: 700;
   letter-spacing: 3px;
   text-transform: uppercase;
 }

 .couple-grid,
 .officiating-grid,
 .family-grid,
 .ceremony-grid {
   display: grid;
   gap: 25px;
 }

 .couple-grid {
   grid-template-columns: repeat(2, 1fr);
   max-width: 820px;
   margin: auto;
 }

 .featured-card {
   padding: 60px 40px;
   border-radius: 32px;
   text-align: center;
   background: rgba(255, 255, 255, 0.85);
   box-shadow: var(--shadow);
 }

 .featured-card small {
   display: block;
   margin-bottom: 18px;
   color: var(--ocean-blue);
   text-transform: uppercase;
   letter-spacing: 3px;
   font-size: 0.78rem;
   font-weight: 700;
 }

 .featured-card h3 {
   font-size: 2.5rem;
   color: var(--deep-blue);
 }

 .officiating-grid {
   max-width: 440px;
   grid-template-columns: 1fr;
   margin: auto;
 }

 .family-grid {
   max-width: 1000px;
   grid-template-columns: repeat(2, 1fr);
   margin: auto;
 }

 .entourage-card {
   display: flex;
   flex-direction: column;
   justify-content: center;
   min-height: 220px;
   padding: 40px 30px;
   border-radius: var(--radius);
   text-align: center;
   background: rgba(255, 255, 255, 0.85);
   border: 1px solid rgba(22, 148, 207, 0.08);
   box-shadow: var(--shadow);
 }

 .entourage-card small {
   margin-bottom: 18px;
   color: var(--ocean-blue);
   text-transform: uppercase;
   letter-spacing: 2px;
   font-size: 0.78rem;
   font-weight: 700;
 }

 .entourage-card h3 {
   color: var(--deep-blue);
 }

 .sponsors-list {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
 }

 .sponsor-item {
   padding: 24px 28px;
   border-radius: 22px;
   background: rgba(255, 255, 255, 0.82);
   box-shadow: var(--shadow);
   text-align: center;
   color: var(--deep-blue);
 }

 .party-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 35px;
 }

 .party-column {
   padding: 40px;
   border-radius: 30px;
   background: rgba(255, 255, 255, 0.85);
   box-shadow: var(--shadow);
 }

 .party-highlight {
   text-align: center;
   padding-bottom: 28px;
   margin-bottom: 28px;
   border-bottom: 1px solid rgba(22, 148, 207, 0.12);
 }

 .party-highlight small {
   color: var(--ocean-blue);
   text-transform: uppercase;
   letter-spacing: 3px;
   font-size: 0.78rem;
   font-weight: 700;
 }

 .party-highlight h3 {
   font-size: 2rem;
   color: var(--deep-blue);
 }

 .party-list {
   display: flex;
   flex-direction: column;
   gap: 16px;
 }

 .party-item {
   padding: 16px 20px;
   border-radius: 18px;
   background: rgba(22, 148, 207, 0.06);
   text-align: center;
 }

 .ceremony-grid {
   grid-template-columns: repeat(3, 1fr);
 }

 @media (max-width: 991.98px) {

   .ceremony-grid,
   .gallery,
   .faq-grid,
   .entourage-grid {
     grid-template-columns: repeat(2, 1fr);
   }
 }

 @media (max-width: 767.98px) {

   .gallery,
   .family-grid,
   .ceremony-grid,
   .entourage-grid {
     grid-template-columns: 1fr;
   }
 }

 @media (max-width: 575.98px) {

   .faq-grid,
   .couple-grid,
   .party-grid,
   .sponsors-list {
     grid-template-columns: 1fr;
   }
 }

 /* FLOATING RSVP */
 .floating-rsvp {
   position: fixed;
   right: 20px;
   bottom: 20px;
   z-index: 9999;
   padding: 14px 24px;
   border-radius: 50px;
   background: linear-gradient(135deg, var(--soft-blue), var(--deep-blue));
   color: white;
   text-decoration: none;
   font-weight: 700;
   box-shadow: 0 10px 30px rgba(10, 98, 143, 0.25);
 }

 /* FOOTER */
 .footer-hero {
   position: relative;
   height: 85vh;
   display: flex;
   justify-content: center;
   align-items: center;
   text-align: center;
   background:
     linear-gradient(rgba(10, 98, 143, 0.55), rgba(10, 98, 143, 0.55)),
     url("/images/footer_hero.jpg");
   background-size: cover;
   background-position: center;
 }

 .footer-signature {
   color: white;
   font-family: "Great Vibes", cursive;
   font-size: 5rem;
 }

 .footer-names {
   color: white;
   font-size: 3.5rem;
 }

 .footer-date {
   margin-top: 20px;
   color: rgba(255, 255, 255, 0.9);
   letter-spacing: 4px;
 }

 @media (max-width: 575.98px) {

   .footer-names {
     font-size: 1.5rem;
   }
 }