 :root{
  --cream:#fbf8f1;
  --paper:#f6f0e5;
  --gold:#a98545;
  --gold-dark:#79602f;
  --ink:#443e35;
  --sage:#829184;
  --line:rgba(130,112,72,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);font-family:'Montserrat',sans-serif;font-size:14px;
  background:
   radial-gradient(circle at 15% 10%,rgba(255,255,255,.9),transparent 25%),
   radial-gradient(circle at 90% 20%,rgba(220,231,219,.48),transparent 20%),
   radial-gradient(circle at 10% 75%,rgba(242,220,212,.4),transparent 23%),
   var(--cream);
}
.main-content{display:none;overflow:hidden}
.section-pad{padding:105px 0}
.eyebrow{letter-spacing:3px;font-size:10px;color:var(--gold-dark);font-weight:600;margin-bottom:15px}
.script-title{font-family:'Great Vibes',cursive;font-size:clamp(48px,7vw,82px);font-weight:400;line-height:.95;color:var(--gold-dark)}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(40px,5vw,62px);font-weight:500}
.ampersand{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--gold);margin:12px auto}
.ampersand.large{font-size:52px}

/* Opening */
.opening-screen{
 min-height:100vh;position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
 background:
  linear-gradient(rgba(38,28,21,.52),rgba(38,28,21,.62)),
  url('../assets/images/opening-weddinga.jpg') center center/cover no-repeat;
 overflow:hidden;
}
.opening-screen:before,.opening-screen:after{
 content:"";position:absolute;width:48vw;height:48vw;border:1px solid rgba(255,236,194,.24);border-radius:50%;
}
.opening-screen:before{top:-20vw;left:-18vw}.opening-screen:after{bottom:-28vw;right:-20vw}
.opening-glow{position:absolute;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,rgba(214,174,104,.24),transparent 68%);filter:blur(10px)}
.opening-content{position:relative;z-index:2;padding:25px}
.opening-content h1{font-family:'Great Vibes',cursive;font-size:clamp(55px,8vw,105px);color:#fff4df;margin:0;text-shadow:0 4px 24px rgba(0,0,0,.28)}
.opening-content h1 span{font-family:'Cormorant Garamond',serif;font-size:.55em;color:#e6c987}
.opening-date{letter-spacing:3px;font-size:20px;margin:20px 0 30px;color:#fff8ec;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.envelope-wrap{height:190px;display:flex;justify-content:center;align-items:center}
.envelope{width:260px;height:155px;position:relative;filter:drop-shadow(0 18px 18px rgba(77,62,31,.17));transform-style:preserve-3d}
.envelope-body{position:absolute;inset:0;background:linear-gradient(135deg,#dfcfaa,#bfa367);clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);z-index:3}
.flap{position:absolute;top:0;left:0;width:100%;height:100%;background:#c9b17b;clip-path:polygon(0 0,100% 0,50% 58%);z-index:5;transform-origin:top;transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
.letter{position:absolute;width:83%;height:130px;background:#fffaf0;left:8.5%;top:10px;z-index:2;border:1px solid rgba(169,133,69,.2);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform 1.5s cubic-bezier(.22,.61,.36,1)}
.letter-flower{color:var(--sage);font-size:24px}.letter-names{font-family:'Great Vibes',cursive;font-size:46px;color:var(--gold-dark)}
.seal{position:absolute;z-index:7;left:50%;top:54px;transform:translateX(-50%);width:38px;height:38px;border-radius:50%;background:var(--gold-dark);color:white;display:grid;place-items:center;transition:opacity .4s}
.opening-screen.opened .flap{transform:rotateX(180deg);z-index:1}.opening-screen.opened .letter{transform:translateY(-85px)}.opening-screen.opened .seal{opacity:0}
.btn-open,.submit-btn,.map-btn{
 border:1px solid var(--gold);background:rgba(255,248,235,.08);color:#000000;padding:14px 28px;letter-spacing:2px;font-size:10px;transition:.35s ease;backdrop-filter:blur(6px);
}
.btn-open:hover,.submit-btn:hover,.map-btn:hover{background:var(--gold-dark);color:white}
.btn-open small{margin-left:8px}

/* video opening — 9:16, mobile-first, tepat sebelum section-pad pertama */
.video-opening{
  width:100%;
  margin:0;
  padding:0;
  background:#17110d;
  display:flex;
  justify-content:center;
  align-items:center;
  overflow:hidden;
}
.video-opening-frame{
  position:relative;
  width:min(100%,430px);
  aspect-ratio:9 / 16;
  max-height:100svh;
  overflow:hidden;
  background:#000;
}
.opening-video{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:9 / 16;
  object-fit:cover;
  object-position:center center;
  margin:0;
  padding:0;
  border:0;
}

.scroll-down-btn{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:5;
  width:58px;
  min-height:62px;
  padding:7px 5px 5px;
  border:1px solid rgba(255,244,223,.72);
  border-radius:30px;
  background:rgba(30,18,13,.38);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  color:#fff4df;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 6px 22px rgba(0,0,0,.24);
  animation:scrollFloat 1.6s ease-in-out infinite;
}
.scroll-down-btn:hover{background:rgba(30,18,13,.58);}
.scroll-down-text{font-size:7px;letter-spacing:1.5px;line-height:1;margin-bottom:1px;}
.scroll-down-icon{font-size:27px;line-height:22px;font-family:Arial,sans-serif;font-weight:300;}
@keyframes scrollFloat{0%,100%{transform:translate(-50%,0);opacity:.9}50%{transform:translate(-50%,7px);opacity:1}}

/* hero */
.hero{min-height:88vh;display:flex;align-items:center;position:relative;background:
 linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.5)),
 url('../assets/images/reference-invitation.jpg') center/cover no-repeat;background-blend-mode:screen;}
.hero:after{content:"";position:absolute;inset:0;background:rgba(255,252,247,.68);backdrop-filter:blur(1px)}
.hero .container{position:relative;z-index:1}
.date-line{letter-spacing:5px;font-size:11px;margin-top:25px}
.hero-flower{position:absolute;color:rgba(108,130,112,.45);font-size:120px;z-index:1}.flower-tl{top:20px;left:5vw}.flower-br{bottom:10px;right:5vw}

/* couple */
.intro-card{max-width:900px;margin:auto;text-align:center;padding:55px 30px;border:1px solid var(--line);background:rgba(255,255,255,.35);box-shadow:0 20px 60px rgba(81,65,34,.06)}
.lead-text{max-width:670px;margin:0 auto 35px;line-height:1.9}
.couple-image-wrap{width:min(520px,92%);margin:auto;padding:10px;border:1px solid var(--line);border-radius:48% 52% 45% 55% / 42% 42% 58% 58%;overflow:hidden}
.couple-image{width:100%;display:block;border-radius:inherit;filter:sepia(.08) saturate(.9)}
.person p{line-height:1.8}

/* countdown */
.countdown-section{padding:100px 0;background-image:linear-gradient(rgba(70,0,12,.34),rgba(70,0,12,.42)),url('../assets/images/countdown-footer-bg.png');background-position:center 43%;background-size:cover;background-repeat:no-repeat;color:white;position:relative;overflow:hidden}
.countdown-section:before{content:"❀";position:absolute;left:5%;top:-20px;font-size:220px;color:rgba(255,255,255,.08)}
.countdown-section .eyebrow{color:#f3e8c9}.countdown-section .section-title{color:#fff}
.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:18px;max-width:720px;margin:40px auto 0}
.countdown-grid div{border:1px solid rgba(255,255,255,.25);padding:22px 8px;background:rgba(255,255,255,.07);backdrop-filter:blur(4px)}
.countdown-grid strong{display:block;font-family:'Cormorant Garamond',serif;font-size:52px;font-weight:500}.countdown-grid span{font-size:10px;text-transform:uppercase;letter-spacing:2px}
.countdown-message{margin-top:20px;color:#f8eedb}

/* event */
.events{background:linear-gradient(180deg,var(--cream),#f1eadc)}
.event-card{height:100%;text-align:center;padding:55px 30px;border:1px solid var(--line);background:rgba(255,255,255,.5);transition:transform .35s,box-shadow .35s}
.event-card:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(90,70,34,.1)}
.event-card .script-title{font-size:55px}.event-icon{color:var(--gold);font-size:25px}.event-date{font-size:11px;letter-spacing:1.5px;margin-top:18px;font-weight:600}.event-time{font-size:15px;margin-top:8px}
.divider{height:1px;width:80px;background:var(--gold);margin:22px auto}.event-note{color:#777;font-size:12px}

/* location */
.location{background:radial-gradient(circle at 80% 20%,rgba(203,220,205,.45),transparent 25%),var(--cream)}
.location-card{max-width:760px;margin:auto;padding:65px 30px;border:1px solid var(--line);background:rgba(255,255,255,.48)}
.location-pin{font-size:40px;color:var(--gold);margin:15px}.address{font-size:15px;line-height:1.8;margin-bottom:28px}
.map-btn{text-decoration:none;display:inline-block}

/* notice */
.notice{padding:80px 0;background:#f3eee4}
.notice-inner{max-width:850px;margin:auto;text-align:center}.notice-mark{font-size:42px;color:var(--gold)}
.notice p{line-height:1.9;max-width:760px;margin:12px auto;color:#59534a}.notice small{font-size:10px;letter-spacing:1px;color:#7a7164}

/* rsvp */
.rsvp{background:radial-gradient(circle at 50% 20%,rgba(214,174,104,.18),transparent 38%),#f3eadf}
.rsvp-card{max-width:820px;margin:auto;text-align:center;padding:55px 35px;background:rgba(255,255,255,.58);border:1px solid var(--line)}
.form-control,.form-select{border-radius:0;border:1px solid rgba(121,96,47,.25);padding:14px;background:rgba(255,255,255,.72);font-size:13px}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 .2rem rgba(169,133,69,.12);border-color:var(--gold)}
.submit-btn{margin-top:8px}.rsvp-result{margin:20px 0 0;color:var(--gold-dark)}

/* footer */
footer{padding:85px 20px 30px;text-align:center;background-image:linear-gradient(rgba(55,0,10,.42),rgba(55,0,10,.52)),url('../assets/images/memo5.png');background-position:center 58%;background-size:cover;background-repeat:no-repeat;color:#eee}
footer .script-title{color:#e6cf95;font-size:65px}.footer-ornament{color:#cdb374;font-size:22px;margin-bottom:20px}footer .eyebrow{color:#d8c28e}footer p:not(.eyebrow){max-width:600px;margin:10px auto;line-height:1.8;font-size:12px;color:#ded7ca}.footer-copy{margin-top:40px;font-size:10px;color:#b9af9c}
.music-btn,.wa-float{position:fixed;right:22px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;z-index:100;border:1px solid rgba(169,133,69,.35)}
.music-btn{top:22px;background:rgba(255,255,255,.78);color:var(--gold-dark);font-size:20px}
.wa-float{bottom:22px;background:#7f8e80;color:white;text-decoration:none;font-size:23px;box-shadow:0 8px 25px rgba(0,0,0,.15)}
.reveal{opacity:0;transform:translateY(28px)}

@media(max-width:575px){
 .section-pad{padding:75px 0}.intro-card{padding:42px 18px}.script-title{font-size:52px}.opening-content h1{font-size:65px}
 .video-opening{width:100vw;max-width:100vw}
 .video-opening-frame{width:100vw;max-width:100vw;aspect-ratio:9 / 16;max-height:100svh}
 .opening-video{width:100%;height:100%;object-fit:cover;object-position:center center}
 .scroll-down-btn{bottom:16px;width:56px;min-height:60px}
 .countdown-grid{gap:8px}.countdown-grid div{padding:16px 4px}.countdown-grid strong{font-size:38px}
 .event-card{padding:42px 20px}.rsvp-card{padding:45px 18px}.hero{min-height:100vh}
}

@media(min-width:576px){
 .video-opening{padding:18px 0;background:linear-gradient(180deg,#17110d,#0f0b08)}
 .video-opening-frame{border-radius:0;box-shadow:0 18px 50px rgba(0,0,0,.28)}
}



/* Ornamen bunga merah yang terus berjatuhan di atas video.
   Animasi bunga tetap berjalan, sedangkan video hanya diputar satu kali. */
.falling-flowers{
  position:absolute;
  inset:0;
  z-index:3;
  overflow:hidden;
  pointer-events:none;
}

.falling-flower{
  position:absolute;
  top:-12%;
  left:0;
  width:clamp(24px, 8vw, 58px);
  height:auto;
  display:block;
  opacity:.88;
  filter:drop-shadow(0 5px 9px rgba(35,0,0,.20));
  will-change:transform, opacity;
}

@media (min-width:576px){
  .falling-flower{
    width:clamp(28px, 5vw, 62px);
  }
}

@media (prefers-reduced-motion: reduce){
  .falling-flower{
    animation:none !important;
  }
}


/* HERO MAROON — override */
.hero,
.hero-section,
#hero,
.hero-maroon {
  background-color: #5a0b16 !important;
  background-image: linear-gradient(135deg, #3b050d 0%, #5a0b16 45%, #7a1524 100%) !important;
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.hero::before,
.hero-section::before,
#hero::before,
.hero-maroon::before {
  background: radial-gradient(circle at 50% 35%, rgba(255,255,255,.08), transparent 48%) !important;
  pointer-events: none;
}


/* ===== ADDED WEDDING SECTIONS — existing structure untouched ===== */
.section-intro{max-width:650px;margin:-4px auto 0;color:#756d61;line-height:1.9;font-size:13px}
.love-journey{background:linear-gradient(180deg,#fbf8f1,#f3eadf)}
.journey-timeline{position:relative;max-width:850px;margin:35px auto 0}
.journey-timeline:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:linear-gradient(var(--gold),rgba(169,133,69,.12));transform:translateX(-50%)}
.journey-item{position:relative;width:50%;padding:0 45px 45px}
.journey-item:nth-child(odd){text-align:right}
.journey-item:nth-child(even){margin-left:50%;text-align:left}
.journey-dot{position:absolute;top:12px;width:34px;height:34px;border:1px solid var(--gold);border-radius:50%;background:var(--cream);color:var(--gold-dark);display:grid;place-items:center;font-size:15px;z-index:2}
.journey-item:nth-child(odd) .journey-dot{right:-17px}
.journey-item:nth-child(even) .journey-dot{left:-17px}
.journey-card{padding:28px 30px;border:1px solid var(--line);background:rgba(255,255,255,.58);box-shadow:0 15px 45px rgba(81,65,34,.05)}
.journey-card .script-title{font-size:43px;margin:8px 0 10px}
.journey-card p{font-size:12px;line-height:1.85;color:#756d61;margin:0}
.journey-year{font-size:9px;letter-spacing:2.5px;color:var(--gold-dark);font-weight:600}
.memories{background:#514a3d;color:#f5eee2}
.memories .section-title{color:#e6cf95}.memories .eyebrow{color:#d8c28e}.memories .section-intro{color:#d8d0c4}
.memory-grid{display:grid;grid-template-columns:1.15fr .85fr 1fr;grid-auto-rows:260px;gap:14px}
.memory-card{position:relative;overflow:hidden;min-height:0;background:#211c17}
.memory-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease,filter .8s ease}
.memory-card:hover img{transform:scale(1.06);filter:brightness(.85)}
.memory-tall{grid-row:span 2}.memory-wide{grid-column:span 2}
.memory-caption{position:absolute;inset:auto 0 0;padding:35px 20px 18px;background:linear-gradient(transparent,rgba(0,0,0,.72));display:flex;flex-direction:column;gap:3px}
.memory-caption span{font-size:8px;letter-spacing:2px;color:#e4cf99}.memory-caption strong{font-family:'Cormorant Garamond',serif;font-size:25px;font-weight:500}
.our-gallery{background:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:12px}
.gallery-item{overflow:hidden;border:1px solid var(--line);background:#eee4d6}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-large{grid-row:span 2}.gallery-wide{grid-column:span 2}
.wedding-gift{background:linear-gradient(135deg,#e8efe8,#faf6ee)}
.gift-card{max-width:950px;margin:auto;text-align:center;padding:60px 30px;border:1px solid var(--line);background:rgba(255,255,255,.55)}
.gift-icon{width:58px;height:58px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;color:var(--gold-dark);font-size:22px}
.bank-card{height:100%;padding:35px 25px;border:1px solid var(--line);background:rgba(70, 16, 16, 0.62)}
.bank-symbol{font-size:24px;color:var(--gold);margin-bottom:12px}.bank-label{font-size:8px;letter-spacing:2px;color:var(--gold-dark);font-weight:600}
.bank-card h3{font-family:'Cormorant Garamond',serif;font-size:32px;margin:10px 0}
.account-name{font-size:11px;color:#777}.account-number{font-family:'Cormorant Garamond',serif;font-size:25px;letter-spacing:2px;color:white;margin:15px 0 20px}
.copy-account{border:1px solid var(--gold);background:transparent;color:var(--gold-dark);padding:10px 16px;font-size:9px;letter-spacing:1.5px;transition:.3s}
.copy-account:hover{background:var(--gold-dark);color:#fff}
.copy-gift-result{min-height:18px;margin:20px 0 0;color:var(--gold-dark);font-size:11px}
.doa-restu{background:radial-gradient(circle at 50% 20%,rgba(214,174,104,.18),transparent 38%),#f3eadf}
.doa-card{max-width:820px;margin:auto;text-align:center;padding:75px 35px;border:1px solid var(--line);background:rgba(255,255,255,.5)}
.doa-ornament{font-size:45px;color:var(--gold);margin-bottom:15px}
.doa-quote{max-width:650px;margin:28px auto;font-family:'Cormorant Garamond',serif;font-size:24px;line-height:1.75;color:#62594d;font-style:italic}
.doa-line{width:80px;height:1px;background:var(--gold);margin:28px auto}
.doa-closing{font-size:11px;line-height:1.9;color:#777}.doa-closing span{font-family:'Great Vibes',cursive;font-size:38px;color:var(--gold-dark)}

@media(max-width:767px){
 .journey-timeline:before{left:17px}
 .journey-item,.journey-item:nth-child(even){width:100%;margin-left:0;padding:0 0 30px 50px;text-align:left}
 .journey-item:nth-child(odd) .journey-dot,.journey-item:nth-child(even) .journey-dot{left:0;right:auto}
 .journey-card{padding:24px 20px}.journey-card .script-title{font-size:38px}
 .memory-grid{grid-template-columns:1fr 1fr;grid-auto-rows:190px;gap:9px}
 .memory-tall{grid-row:span 2}.memory-wide{grid-column:span 2}
 .gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:8px}
 .gallery-large{grid-row:span 2}.gallery-wide{grid-column:span 2}
 .gift-card,.doa-card{padding:50px 18px}.doa-quote{font-size:20px}
}
@media(max-width:420px){
 .memory-grid{grid-template-columns:1fr;grid-auto-rows:260px}
 .memory-tall,.memory-wide{grid-row:auto;grid-column:auto}
 .gallery-grid{grid-template-columns:1fr;grid-auto-rows:280px}
 .gallery-large,.gallery-wide{grid-row:auto;grid-column:auto}
}


/* ===== LOVE JOURNEY BACKGROUND + MAROON BUTTONS ===== */
.love-journey,
#love-journey {
  position: relative;
  overflow: hidden;
  background-image:
    linear-gradient(rgba(72, 0, 15, .30), rgba(72, 0, 15, .42)),
    url("../assets/images/love-journey-bg.png") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.love-journey > *,
#love-journey > * {
  position: relative;
  z-index: 1;
}

/* Semua tombol website menjadi merah marun */
button,
.btn,
a.btn,
.btn-primary,
.btn-secondary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-gold,
.btn-theme,
.button,
.btn-custom,
button[type="button"],
button[type="submit"] {
  background-color: #7b1025 !important;
  border-color: #7b1025 !important;
  color: #ffffff !important;
}

button:hover,
.btn:hover,
a.btn:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-gold:hover,
.btn-theme:hover,
.button:hover,
.btn-custom:hover,
button[type="button"]:hover,
button[type="submit"]:hover {
  background-color: #5d0b1b !important;
  border-color: #5d0b1b !important;
  color: #ffffff !important;
}


/* ===== LOVE JOURNEY — DARK FLORAL BACKGROUND / HIGH CONTRAST ===== */
.love-journey {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-image:
    linear-gradient(180deg, rgba(8, 2, 4, .42), rgba(8, 1, 3, .58)),
    url("../assets/images/love-journey-bg.png") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.love-journey::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 35%, rgba(255,255,255,.08), transparent 48%);
  pointer-events: none;
  z-index: 0;
}
.love-journey > .container {
  position: relative;
  z-index: 1;
}
.love-journey .eyebrow {
  color: #f2d9a1 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.9);
}
.love-journey .section-title {
  color: #fff8ef !important;
  text-shadow: 0 3px 18px rgba(0,0,0,.95);
}
.love-journey .section-intro {
  color: #fff4e8 !important;
  font-size: 14px;
  text-shadow: 0 2px 10px rgba(0,0,0,.95);
}
.love-journey .journey-timeline:before {
  background: linear-gradient(var(--gold), rgba(255,218,160,.28), var(--gold)) !important;
  box-shadow: 0 0 12px rgba(214,174,104,.28);
}
.love-journey .journey-dot {
  background: #19070b !important;
  color: #f4d69b !important;
  border-color: #d6ae68 !important;
  box-shadow: 0 0 0 5px rgba(10,2,4,.55), 0 6px 18px rgba(0,0,0,.55);
}
.love-journey .journey-card {
  background: rgba(10, 3, 5, .68) !important;
  border-color: rgba(239, 205, 145, .45) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.38);
  backdrop-filter: blur(7px);
}
.love-journey .journey-year {
  color: #f0d395 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.9);
}
.love-journey .journey-card .script-title {
  color: #fff8ef !important;
  text-shadow: 0 3px 14px rgba(0,0,0,.95);
}
.love-journey .journey-card p {
  color: #f7eee4 !important;
  font-size: 13px;
  text-shadow: 0 2px 8px rgba(0,0,0,.9);
}

/* ===== MEMORIES — DARK MAROON + FOUR SLIDERS ===== */
.memories {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(125, 20, 40, .38), transparent 42%),
    linear-gradient(180deg, #16050a 0%, #24070f 48%, #100205 100%) !important;
  color: #fff5eb !important;
}
.memories .section-title {
  color: #fff4e7 !important;
  text-shadow: 0 3px 16px rgba(0,0,0,.85);
}
.memories .eyebrow {
  color: #e6c785 !important;
}
.memories .section-intro {
  color: #eadbd1 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.75);
}
.memory-card.memory-slider {
  background: #100205;
  border: 1px solid rgba(230, 199, 133, .25);
  box-shadow: 0 18px 45px rgba(0,0,0,.35);
}
.memory-slides {
  position: absolute;
  inset: 0;
}
.memory-slide {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .8s ease, transform 1.2s ease, filter .8s ease;
}
.memory-slide.is-active {
  opacity: 1;
  transform: scale(1);
}
.memory-card.memory-slider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.04) 35%, rgba(0,0,0,.78) 100%);
  pointer-events: none;
}
.memory-caption { z-index: 3; }
.memory-prev,
.memory-next {
  position: absolute !important;
  top: 50%;
  transform: translateY(-50%);
  width: 38px;
  height: 38px;
  padding: 0 !important;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.55) !important;
  background: rgba(25, 3, 8, .62) !important;
  color: #fff !important;
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
  z-index: 4;
  opacity: 0;
  transition: opacity .3s ease, background .3s ease;
}
.memory-prev { left: 14px; }
.memory-next { right: 14px; }
.memory-card:hover .memory-prev,
.memory-card:hover .memory-next,
.memory-card:focus-within .memory-prev,
.memory-card:focus-within .memory-next { opacity: 1; }
.memory-prev:hover,
.memory-next:hover { background: rgba(123, 16, 37, .9) !important; }
.memory-dots {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 4;
}
.memory-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,.42);
  box-shadow: 0 1px 5px rgba(0,0,0,.55);
  cursor: pointer;
}
.memory-dot.active {
  width: 18px;
  border-radius: 10px;
  background: #e4c27f;
}
@media (max-width: 767px) {
  .memory-prev, .memory-next { opacity: 1; width: 34px; height: 34px; }
}


/* ===== EVENTS — BRIGHT RED WEDDING THEME ===== */
.events-section,
#events,
.events {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(125, 20, 40, .38), transparent 42%), linear-gradient(180deg, #16050a 0%, #24070f 48%, #100205 100%) !important;
}
.events-section::before,
#events::before,
.events::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.08), transparent 38%, rgba(50,0,10,.18));
  pointer-events: none;
}
.events-section > *,
#events > *,
.events > * {
  position: relative;
  z-index: 1;
}
.events-section .section-title,
#events .section-title,
.events .section-title {
  color: #fff !important;
  text-shadow: 0 3px 14px rgba(80,0,10,.55);
}
.events-section .eyebrow,
#events .eyebrow,
.events .eyebrow {
  color: #ffe7b0 !important;
}
.events-section .section-intro,
#events .section-intro,
.events .section-intro {
  color: #fff7f5 !important;
}
.events-section .event-card,
#events .event-card,
.events .event-card {
  background: rgba(75, 0, 15, .26) !important;
  border-color: rgba(255,255,255,.32) !important;
  box-shadow: 0 18px 45px rgba(75,0,10,.28);
  color: #fff !important;
}
.events-section .event-card h3,
.events-section .event-card p,
#events .event-card h3,
#events .event-card p,
.events .event-card h3,
.events .event-card p {
  color: #fff !important;
}

/* ===== WEDDING GIFT — RED ===== */
.wedding-gift,
#weddingGift,
#wedding-gift,
.weddingGift {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 0%, rgba(125, 20, 40, .38), transparent 42%), linear-gradient(180deg, #16050a 0%, #24070f 48%, #100205 100%) !important;
}
.wedding-gift .section-title,
#weddingGift .section-title,
#wedding-gift .section-title,
.weddingGift .section-title {
  color: #fff !important;
}
.wedding-gift .eyebrow,
#weddingGift .eyebrow,
#wedding-gift .eyebrow,
.weddingGift .eyebrow {
  color: #f7d596 !important;
}
.wedding-gift .section-intro,
#weddingGift .section-intro,
#wedding-gift .section-intro,
.weddingGift .section-intro {
  color: #fff0ed !important;
}
.wedding-gift .gift-card,
#weddingGift .gift-card,
#wedding-gift .gift-card,
.weddingGift .gift-card {
  background: rgba(60, 0, 12, .30) !important;
  border-color: rgba(255,255,255,.28) !important;
  color: #fff !important;
  box-shadow: 0 18px 45px rgba(50,0,8,.30);
}

#event, .event-section, .events-section {
  background-color: #d21b39 !important;
}
#event .card, .event-section .card, .events-section .card {
  background-color: rgba(100, 0, 18, .28) !important;
  color: #fff !important;
}
#event h1, #event h2, #event h3, #event p,
.event-section h1, .event-section h2, .event-section h3, .event-section p {
  color: #fff !important;
}
#wedding-gift-section, .wedding-gift-section {
  background: linear-gradient(180deg, #8b071d, #c20f32) !important;
  color: #fff !important;
}

/* Countdown 60-day activation state */
.countdown-before-60 .countdown-message,
.countdown-before-60 .countdown-timer,
.countdown-before-60 .countdown-title {
  opacity: .82;
}
.countdown-active-60 .countdown-message,
.countdown-active-60 .countdown-timer,
.countdown-active-60 .countdown-title {
  opacity: 1;
}


/* ===== COUNTDOWN — H-60 ACTIVATION ===== */
.countdown-section.countdown-hidden-before-60 {
  display: none !important;
}
.countdown-section .countdown-message {
  color: #fff !important;
  font-weight: 600;
  text-shadow: 0 2px 8px rgba(0,0,0,.55);
}


/* ===== MEMORIES SLIDER — CLEAN AUTO SLIDE ===== */
.memory-prev,
.memory-next,
.memory-dots {
  display: none !important;
}
.memory-card.memory-slider {
  cursor: default;
}

/* ===== MUSIC BUTTON — BOTTOM ===== */
.music-btn {
  top: auto !important;
  bottom: 24px !important;
  right: 22px !important;
}
@media (max-width: 767px) {
  .music-btn {
    bottom: 20px !important;
    right: 18px !important;
  }
}
