/* ─── RESET & VARIABLES ─── */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --gold:#C9973A;
  --gold-light:#E5C97A;
  --gold-pale:#F7EDD6;
  --cream:#FDF6EC;
  --cream-dark:#F0E2C6;
  --brown:#2A1A08;
  --brown-light:#6B4E28;
  --text:#3A2A14;
}
html{scroll-behavior:smooth;}
body{background:var(--cream);color:var(--text);font-family:'Raleway',sans-serif;overflow-x:hidden;}

/* ─── UTILITIES ─── */
section{padding:5rem 1.5rem;}
.container{max-width:680px;margin:0 auto;}
.container-wide{max-width:1100px;margin:0 auto;}

/* Единый стиль надписи-метки (заменяет section-label / story-eyebrow / meet-subtitle / countdown-label) */
.eyebrow{
  font-family:'Raleway',sans-serif;font-size:0.65rem;
  letter-spacing:0.4em;text-transform:uppercase;
  color:var(--gold);text-align:center;
  margin-bottom:0.75rem;display:block;
}
.section-title{
  font-family:'Great Vibes',cursive;font-style:normal;font-size:clamp(2.5rem,7vw,4.5rem);font-weight: 400;
  line-height:1.15;text-align:center;color:var(--brown);
}
.section-title em{color:var(--gold);font-style:normal;}
.divider{display:flex;align-items:center;gap:1rem;margin:2rem auto;max-width:400px;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:linear-gradient(to right,transparent,var(--gold),transparent);}
.divider-diamond{width:8px;height:8px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;}

/* ─── MUSIC PLAYER ─── */
#musicBtn{
  position:fixed;bottom:2rem;right:2rem;z-index:999;
  width:48px;height:48px;border-radius:50%;
  background:var(--brown);border:1px solid var(--gold);
  color:var(--gold);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background 0.3s,color 0.3s;
}
#musicBtn svg{width:20px;height:20px;}
#musicBtn:hover{background:var(--gold);color:var(--brown);}
#musicBtn.playing,#musicBtn.waiting{animation:pulse 2s ease-in-out infinite;}
#musicBtn.waiting{animation-duration:1s;}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(201,151,58,0.4);}
  50%{box-shadow:0 0 0 10px rgba(201,151,58,0);}
}

/* ─── HERO ─── */
#hero{
  height:100vh;min-height:600px;
  display:flex;flex-direction:column;
  background:var(--brown);overflow:hidden;position:relative;
}
.hero-img{
  position:absolute;inset:0;
  background:url('https://images.unsplash.com/photo-1519741497674-611481863552?w=1800&q=85&fit=crop') center/cover no-repeat;
  animation:heroZoom 8s ease forwards;
}
@keyframes heroZoom{from{transform:scale(1.08);}to{transform:scale(1);}}
.hero-content{
  position:relative;z-index:2;
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:2rem;
}
.hero-label{
  font-family:'Jost',sans-serif;font-size:0.65rem;letter-spacing:0.45em;
  text-transform:uppercase;color:rgba(255,255,255,0.8);
  margin-bottom:1.5rem;display:block;
}
.hero-names{
  font-family:'Great Vibes',cursive;font-size:clamp(3.5rem,12vw,7rem);
  color:var(--cream);line-height:1;text-align:center;
  display:flex;align-items:center;gap:0.5em;flex-wrap:wrap;justify-content:center;
}
.hero-and{
  font-family:'Cormorant Garant',serif;
  font-size:clamp(1.5rem,5vw,3rem);
  font-style:italic;color:var(--gold);margin:0 0.2em;
}
.hero-date{
  margin-top:2rem;font-family:'Jost',sans-serif;font-size:0.75rem;
  letter-spacing:0.3em;text-transform:uppercase;color:var(--gold-light);opacity:0.85;
}
.hero-scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  color:var(--gold);font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  animation:bounce 2s ease-in-out infinite;
}
.hero-scroll-arrow{width:1px;height:30px;background:linear-gradient(to bottom,var(--gold),transparent);}
@keyframes bounce{
  0%,100%{transform:translateX(-50%) translateY(0);}
  50%{transform:translateX(-50%) translateY(-6px);}
}

/* ─── INVITATION ─── */
#invitation{background:var(--cream);text-align:center;position:relative;overflow:hidden;}
.invite-botanical{position:absolute;pointer-events:none;}
.invite-botanical.left{left:0;top:0;opacity:0.14;}
.invite-botanical.right{right:0;top:0;transform:scaleX(-1);opacity:0.14;}
.invite-text{
  font-family:'Raleway',sans-serif;font-size:1.1rem;
  line-height:2;color:var(--brown-light);font-weight:300;
}
.invite-text strong{font-weight:600;color:var(--brown);font-size:1.15rem;}
.couple-name{
  font-family:'Great Vibes',cursive;
  font-size:clamp(2.5rem,8vw,4.5rem);color:var(--brown);line-height:1;
}

/* ─── EVENTS (disabled, styles kept for reference) ─── */
#events{background:var(--cream-dark);}
.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:3rem;}
.event-card{
  background:var(--cream);border:1px solid var(--gold-light);
  padding:2.5rem 2rem;text-align:center;position:relative;overflow:hidden;
}
.event-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,transparent,var(--gold),transparent);}
.event-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--gold-light),transparent);}
.event-icon{font-size:1.8rem;margin-bottom:1rem;color:var(--gold);}
.event-name{font-family:'Cormorant Garant',serif;font-size:1.8rem;color:var(--brown);margin-bottom:1rem;}
.event-detail{font-family:'Raleway',sans-serif;font-size:0.8rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--brown-light);line-height:2;}
.event-detail span{display:block;}
.event-divider{width:40px;height:1px;background:var(--gold);margin:1rem auto;}
.event-map-btn{
  display:inline-block;margin-top:1.5rem;font-family:'Raleway',sans-serif;
  font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid var(--gold);
  text-decoration:none;padding-bottom:2px;transition:opacity 0.2s;cursor:pointer;
}
.event-map-btn:hover{opacity:0.7;}
.event-corner{position:absolute;width:20px;height:20px;border-color:var(--gold-light);border-style:solid;border-width:0;}
.event-corner.tl{top:12px;left:12px;border-top-width:1px;border-left-width:1px;}
.event-corner.tr{top:12px;right:12px;border-top-width:1px;border-right-width:1px;}
.event-corner.bl{bottom:12px;left:12px;border-bottom-width:1px;border-left-width:1px;}
.event-corner.br{bottom:12px;right:12px;border-bottom-width:1px;border-right-width:1px;}

/* ─── COUNTDOWN ─── */
#countdown{background:var(--brown);text-align:center;padding:5rem 1.5rem;position:relative;overflow:hidden;}
.cd-ornament{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1487530811176-3780de880c2d?w=1600&q=60&fit=crop') center/cover;opacity:0.05;pointer-events:none;}
.countdown-title{
  font-family:'Great Vibes',cursive;font-size:clamp(2.5rem,7vw,4.5rem);
  color:var(--cream);margin-bottom:3rem;position:relative;
}
.countdown-grid{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;position:relative;}
.countdown-unit{text-align:center;padding:0 2.5rem;}
.countdown-num{
  font-family:'Jost',serif;font-size:clamp(3rem,10vw,5.5rem); /*font-family:'Cormorant Garant'*/
  font-weight:300;color:var(--cream);line-height:1;display:block;
}
.countdown-word{
  font-family:'Raleway',sans-serif;font-size:0.6rem;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--gold);margin-top:0.5rem;display:block;
}
.countdown-sep{width:1px;background:rgba(201,151,58,0.2);align-self:stretch;margin:0 0.5rem;}
.cd-quote{
  font-family:'Raleway',sans-serif;
  font-size:0.95rem;color:rgba(253,246,236,0.45);
  max-width:440px;margin:3rem auto 0;line-height:2;position:relative;
}

/* ─── MEET ─── */
#meet{background:var(--cream);padding:6rem 2rem;}
.meet-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.meet-title{
  font-family:'Great Vibes',cursive;font-size:clamp(2.5rem,6vw,4.5rem);
  color:var(--brown);line-height:1.1;margin-bottom:1.5rem;
}
.meet-body{font-family:'Raleway',sans-serif;font-size:1.08rem;color:var(--brown-light);line-height:1.9;font-weight:300;}
.line-divider{width:50px;height:1px;background:var(--gold);margin:1.5rem 0;}
.meet-carousel{position:relative;}
.carousel-track{position:relative;overflow:hidden;aspect-ratio:6/7;}
.carousel-slide{position:absolute;inset:0;opacity:0;transition:opacity 0.8s ease;}
.carousel-slide.active{opacity:1;}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.carousel-btns{display:flex;gap:0.75rem;margin-top:1rem;}
.carousel-btn{
  width:42px;height:42px;border:1px solid var(--gold-light);
  background:var(--cream);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:1rem;transition:all 0.2s;flex-shrink:0;
}
.carousel-btn:hover{background:var(--gold);color:var(--cream);border-color:var(--gold);}
.carousel-dots{display:flex;gap:0.4rem;align-items:center;margin-left:auto;}
.carousel-dot{width:6px;height:6px;border-radius:50%;background:var(--gold-light);cursor:pointer;transition:background 0.2s;}
.carousel-dot.active{background:var(--gold);}

/* ─── STORY ─── */
#story{background:var(--brown);padding:6rem 2rem;text-align:center;position:relative;overflow:hidden;}
#story::after{
  content:'';position:absolute;left:50%;top:5rem;bottom:5rem;
  width:1px;background:linear-gradient(to bottom,transparent,rgba(201,151,58,0.3),transparent);
  transform:translateX(-50%);
}
.story-heading{
  font-family:'Great Vibes',cursive;font-size:clamp(2.5rem,7vw,4.5rem);
  color:var(--cream);margin-bottom:0;
}
.story-grid{max-width:780px;margin:4rem auto 0;display:flex;flex-direction:column;gap:4rem;position:relative;z-index:1;}
.story-item{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;}
.story-text{text-align:right;}
.story-text h3{font-family:'Jost',sans-serif;font-size:1.4rem;color:rgba(253,246,236,0.88);margin-bottom:0.4rem;}
.story-text p{font-size:0.8rem;color:rgba(253,246,236,0.38);line-height:1.9;letter-spacing:0.04em;}
.story-text-r{text-align:left;}
.story-node-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;}
.story-node{
  width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(201,151,58,0.45);background:var(--brown);
  display:flex;align-items:center;justify-content:center;position:relative;z-index:2;
}
.story-node-inner{width:12px;height:12px;border-radius:50%;background:var(--gold);}
.story-node.active{border-color:var(--gold);}
.story-node.active .story-node-inner{background:var(--gold-light);width:14px;height:14px;}
.story-year{font-family:'Jost',sans-serif;font-size:0.7rem;letter-spacing:0.2em;color:var(--gold);text-align:center;}

/* ─── RSVP ─── */
#rsvp{background:var(--cream);text-align:center;}
.rsvp-text{font-family:'Raleway',sans-serif;font-size:0.78rem;color:var(--brown-light);line-height:1.9;margin:1.5rem 0 2.5rem;}
.rsvp-form-wrap{max-width:520px;margin:2.5rem auto 0;text-align:left;}
.rsvp-choices{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:0;}
.rsvp-choice{position:relative;}
.rsvp-choice input[type="radio"]{position:absolute;opacity:0;width:0;height:0;}
.rsvp-choice label{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.5rem;padding:1.5rem 1rem;
  border:1px solid var(--gold-light);background:#fff;cursor:pointer;
  font-family:'Raleway',sans-serif;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--brown-light);transition:all 0.25s;text-align:center;line-height:1.5;
}
.rsvp-choice label .choice-icon{font-size:1.4rem;color:var(--gold-light);transition:color 0.25s;display:block;}
.rsvp-choice input:checked+label,
.rsvp-choice label:hover{border-color:var(--gold);background:var(--gold-pale);color:var(--brown);}
.rsvp-choice input:checked+label .choice-icon,
.rsvp-choice label:hover .choice-icon{color:var(--gold);}
.rsvp-fields{overflow:hidden;max-height:0;opacity:0;transition:max-height 0.45s ease,opacity 0.35s ease,margin 0.35s ease;margin-top:0;}
.rsvp-fields.open{max-height:280px;opacity:1;margin-top:1.25rem;}
.rsvp-field{margin-bottom:1rem;}
.rsvp-field label{
  display:block;font-family:'Raleway',sans-serif;font-size:0.6rem;
  letter-spacing:0.3em;text-transform:uppercase;color:var(--brown-light);margin-bottom:0.5rem;
}
.rsvp-field input{
  width:100%;border:none;border-bottom:1px solid var(--gold-light);
  background:transparent;padding:0.6rem 0;
  font-family:'Raleway',sans-serif;font-size:0.95rem;
  color:var(--brown);outline:none;transition:border-color 0.2s;
}
.rsvp-field input:focus{border-color:var(--gold);}
.rsvp-field input::placeholder{color:var(--brown-light);opacity:0.5;}
.rsvp-submit{
  display:flex;align-items:center;justify-content:center;
  width:100%;margin-top:0.5rem;
  background:var(--gold);color:var(--cream);
  font-family:'Raleway',sans-serif;font-size:0.75rem;letter-spacing:0.25em;text-transform:uppercase;
  padding:1rem 2rem;border:none;cursor:pointer;transition:background 0.3s;
}
.rsvp-submit:hover:not(:disabled){background:#8B6914;}
.rsvp-submit:disabled{opacity:0.5;cursor:not-allowed;}
.rsvp-status{
  font-family:'Cormorant Garant',serif;font-style:italic;font-size:1.1rem;
  color:var(--brown-light);margin-top:1.5rem;min-height:1.5rem;text-align:center;
}
.rsvp-status.error{color:#c0392b;}
.rsvp-done{display:none;padding:2rem;border:1px solid var(--gold-light);background:var(--gold-pale);margin-top:1.5rem;}
.rsvp-done.show{display:block;}
.rsvp-done-icon{font-size:2rem;margin-bottom:0.75rem;}
.rsvp-done-title{font-family:'Great Vibes',cursive;font-size:2rem;color:var(--brown);}
.rsvp-done-text{font-family:'Raleway',sans-serif;font-size:0.82rem;color:var(--brown-light);margin-top:0.5rem;line-height:1.8;}

/* ─── INFO ─── */
#info{background:var(--cream-dark);}
.info-subtitle{
  font-family:'Raleway',sans-serif;font-size:0.78rem;
  color:var(--brown-light);text-align:center;max-width:500px;margin:1rem auto 3rem;line-height:1.9;
}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--cream-dark);margin-top:2rem;}
.info-card{background:var(--cream-dark);padding:2.5rem 2rem;text-align:center;transition:background 0.25s;}
.info-card:hover{background:var(--cream);}
.info-tile-icon{
  width:54px;height:54px;margin:0 auto 1.25rem;
  border:1px solid rgba(201,151,58,0.35);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);transition:border-color 0.25s,background 0.25s;
}
.info-card:hover .info-tile-icon{border-color:var(--gold);background:rgba(201,151,58,0.08);}
.info-tile-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;}
.info-card-title{font-family:'Jost',sans-serif;font-size:1.15rem;color:var(--brown);margin-bottom:0.5rem;}
.info-card-text{font-family:'Raleway',sans-serif;font-size:0.78rem;color:var(--brown-light);line-height:1.8;}
.info-card-text a{color:var(--gold);text-decoration:none;}
.info-card-text a:hover{text-decoration:underline;}

/* ─── FOOTER ─── */
footer{background:var(--brown);text-align:center;padding:4rem 1.5rem;}
.footer-names{font-family:'Great Vibes',cursive;font-size:clamp(2.5rem,7vw,4.5rem);color:var(--cream);}
.footer-amp{font-family:'Cormorant Garant',serif;font-style:italic;color:var(--gold);}
.footer-quote{font-family:'Raleway',sans-serif;font-size:0.9rem;color:var(--gold-light);opacity:0.7;margin-top:1rem;}
.footer-copy{margin-top:2rem;font-family:'Raleway',sans-serif;font-size:0.6rem;letter-spacing:0.2em;color:rgba(253,246,236,0.25);text-transform:uppercase;}

/* ─── REVEAL ─── */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.8s ease,transform 0.8s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.1s;}
.reveal-delay-2{transition-delay:0.2s;}
.reveal-delay-3{transition-delay:0.3s;}
.reveal-delay-4{transition-delay:0.4s;}
.reveal-delay-5{transition-delay:0.5s;}

/* ─── RESPONSIVE ─── */
@media(max-width:720px){.meet-grid{grid-template-columns:1fr;gap:2.5rem;}}
@media(max-width:600px){
  .story-item{grid-template-columns:44px 1fr;}
  .story-text{text-align:left!important;grid-column:3;grid-row:1;}
  .story-node-wrap{grid-column:2;grid-row:1;}
  .story-text-r{text-align:left!important;}
}
@media(max-width:480px){
  .countdown-sep{display:none;}
  .countdown-unit{padding:0 0.7rem;}
  .hero-names{font-size:clamp(2.8rem,15vw,5rem);}
}
