
#rs-wedding{
  --bg:#f5f1eb;
  --paper:#fbf9f6;
  --text:#2f312c;
  --muted:#77766f;
  --sage:#AFBBB9;
  --sage-dark:#667875;
  --line:#d9d2c8;
  --white:#fff;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
  --script:"Parisienne",cursive;

  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.7;
  overflow:hidden;
}

#rs-wedding *{
  box-sizing:border-box;
}

#rs-wedding a{
  color:inherit;
  text-decoration:none;
}

#rs-wedding img{
  display:block;
  width:100%;
}

#rs-wedding button,
#rs-wedding input,
#rs-wedding select{
  font:inherit;
}

.rs-container{
  width:min(1180px,calc(100% - 44px));
  margin:0 auto;
}

.rs-eyebrow{
  margin:0 0 14px;
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:11px;
  font-weight:600;
  color:var(--sage-dark);
}

#rs-wedding h1,
#rs-wedding h2,
#rs-wedding h3{
  font-family:var(--serif);
  font-weight:500;
  line-height:1.05;
  margin:0;
}

#rs-wedding h2{
  font-size:clamp(42px,6vw,76px);
}

.rs-lead{
  color:var(--muted);
  font-size:16px;
  max-width:680px;
}


/* NAVIGATION */

.rs-nav{
  position:absolute;
  top:0;
  left:0;
  right:0;
  z-index:20;
  padding:30px 0;
  color:#fff;
}

.rs-nav-inner{
  width:min(1240px,calc(100% - 80px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}

.rs-brand{
  font-family:var(--serif);
  font-size:25px;
  letter-spacing:.05em;
}

.rs-nav-links{
  display:flex;
  align-items:center;
  gap:27px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.rs-nav-links a{
  opacity:.9;
}

.rs-nav-links a:hover{
  opacity:.55;
}

.rs-nav-rsvp{
  border:1px solid rgba(255,255,255,.75);
  border-radius:999px;
  padding:11px 17px;
}

.rs-menu{
  display:none;
  background:none;
  border:0;
  color:#fff;
  text-transform:uppercase;
  font-size:11px;
  letter-spacing:.15em;
}


/* HERO */

.rs-hero{
  min-height:100svh;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#22241f;
  color:#fff;
}

.rs-hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}

.rs-hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(
      180deg,
      rgba(25,25,22,.31) 0%,
      rgba(25,25,22,.18) 35%,
      rgba(25,25,22,.45) 68%,
      rgba(25,25,22,.76) 100%
    );
}

.rs-hero-content{
  position:relative;
  z-index:2;
  width:min(1240px,calc(100% - 112px));
  margin:0 auto;
  padding:160px 0 72px;

  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:30px;
}

.rs-hero-kicker{
  font-size:clamp(15px,1.4vw,20px);
  text-transform:uppercase;
  letter-spacing:.34em;
  margin-bottom:24px;
  font-weight:500;

  opacity:0;
  transform:translateY(20px);
  animation:rsFade 1.1s ease .3s forwards;
}

.rs-hero h1{
  font-family:var(--script) !important;
  font-size:clamp(96px,13vw,185px);
  font-weight:400 !important;
  line-height:.74;
  letter-spacing:0;
  margin:0;

  opacity:0;
  transform:translateY(20px);
  animation:rsFade 1.1s ease .65s forwards;
}

.rs-amp{
  font-family:var(--script) !important;
  font-weight:400;
  font-size:.78em;
  margin:0 .035em;
}

.rs-hero-meta{
  text-align:right;
  padding-bottom:4px;
  font-size:13px;
  letter-spacing:.06em;

  opacity:0;
  transform:translateY(20px);
  animation:rsFade 1.1s ease .95s forwards;
}

.rs-hero-meta strong{
  display:block;
  font-family:var(--serif);
  font-size:27px;
  font-weight:500;
}

@keyframes rsFade{
  to{
    opacity:1;
    transform:none;
  }
}


/* TRAUSPRUCH */

.rs-intro{
  padding:125px 20px 120px;
  text-align:center !important;
}

.rs-intro-inner{
  width:min(1050px,100%);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center !important;
}

.rs-monogram{
  width:100%;
  margin:0 auto 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  color:var(--sage-dark);
}

.rs-monogram:before,
.rs-monogram:after{
  content:"";
  width:42px;
  height:1px;
  background:var(--line);
}

.rs-monogram span{
  font-family:var(--script);
  font-size:48px;
  line-height:1;
}

.rs-intro .rs-eyebrow{
  width:100%;
  margin:0 auto 27px;
  text-align:center !important;
}

.rs-intro h2{
  width:100%;
  max-width:1000px;
  margin:0 auto 42px !important;
  padding:0;
  text-align:center !important;
  font-size:clamp(43px,5.3vw,74px);
  line-height:1.18;
}

.rs-intro-date{
  position:relative;
  display:block;
  width:100%;
  max-width:500px;
  margin:0 auto !important;
  padding-top:30px;
  text-align:center !important;
  color:var(--muted);
  font-family:var(--serif);
  font-size:18px;
  letter-spacing:.04em;
}

.rs-intro-date:before{
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:170px;
  height:1px;
  background:var(--line);
}

/* COUNTDOWN */

.rs-countdown{
  padding:85px 0;
  background:var(--sage-dark);
  color:#fff;
}

.rs-countdown-grid{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  align-items:end;
  gap:60px;
}

.rs-countdown .rs-eyebrow{
  color:#e3e9df;
}

.rs-counter{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,.35);
  border-bottom:1px solid rgba(255,255,255,.35);
}

.rs-counter-item{
  padding:23px 7px 20px;
  text-align:center;
  border-right:1px solid rgba(255,255,255,.2);
}

.rs-counter-item:last-child{
  border-right:0;
}

.rs-counter-number{
  display:block;
  font-family:var(--serif);
  font-size:clamp(34px,4vw,58px);
  line-height:1;
}

.rs-counter-label{
  display:block;
  margin-top:9px;
  opacity:.72;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.17em;
}


/* ABLAUF */

.rs-day{
  padding:130px 0;
}

.rs-section-head{
  margin-bottom:75px;
}

.rs-timeline{
  max-width:870px;
  margin:0 auto;
  position:relative;
}

.rs-timeline:before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:122px;
  width:1px;
  background:var(--line);
}

.rs-timeline-row{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:65px;
  position:relative;
  padding-bottom:54px;
}

.rs-timeline-row:last-child{
  padding-bottom:0;
}

.rs-timeline-row:before{
  content:"";
  position:absolute;
  left:117px;
  top:12px;
  width:11px;
  height:11px;
  border-radius:50%;
  background:var(--bg);
  border:1px solid var(--sage-dark);
}

.rs-time{
  font-family:var(--serif);
  font-size:24px;
  text-align:right;
  line-height:1.2;
}

.rs-time-small{
  font-family:var(--sans);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding-top:5px;
}

.rs-timeline-content h3{
  font-size:29px;
  margin-bottom:6px;
}

.rs-timeline-content p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}


/* LOCATION */

.rs-location{
  padding:0 0 130px;
}

.rs-location-grid{
  display:grid;
  grid-template-columns:1.38fr .62fr;
  gap:14px;
  min-height:680px;
}

.rs-location-main{
  min-height:680px;
  position:relative;
  display:flex;
  align-items:flex-end;
  background:
    linear-gradient(180deg,rgba(20,23,18,.04),rgba(20,23,18,.7)),
    url("https://www.mbdesign-photography.de/wp-content/uploads/2026/09/Eventlocaiton-Hochzeit-am-See-Heiraten-Karslruhe-Location-Heidelberg.jpg")
    center/cover no-repeat;
}

.rs-location-side{
  min-height:680px;
  background:
    linear-gradient(180deg,rgba(20,23,18,.03),rgba(20,23,18,.18)),
    url("https://www.mbdesign-photography.de/wp-content/uploads/2026/09/Freie-Trauung-am-Strand-Sonnenuntergang-Hochzeit-Eventlocation-Hochzeitslocation-Heiraten-Eventzelt-Zelt.jpg")
    center/cover no-repeat;
}

.rs-location-info{
  width:min(680px,calc(100% - 60px));
  margin:0 0 45px 45px;
  padding:35px 39px;
  color:#fff;
  background:rgba(35,39,31,.6);
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(12px);
}

.rs-location-info .rs-eyebrow{
  color:#fff;
}

.rs-location-info h2{
  margin-bottom:16px;
}

.rs-location-info p{
  margin:4px 0;
  color:rgba(255,255,255,.84);
}

.rs-location-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:25px;
}

.rs-btn{
  border:1px solid currentColor;
  border-radius:999px;
  padding:13px 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.13em;

  transition:.25s ease;
}

.rs-btn-light{
  color:#fff;
  border-color:rgba(255,255,255,.7);
}

.rs-btn-light:hover{
  background:#fff;
  border-color:#fff;
  color:var(--text);
}


/* INFOS */

.rs-details{
  padding:10px 0 130px;
}

.rs-details-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.rs-detail{
  padding:47px 40px 52px;
  border-right:1px solid var(--line);
}

.rs-detail:last-child{
  border-right:0;
}

.rs-detail-number{
  font-family:var(--serif);
  color:var(--sage);
  margin-bottom:45px;
}

.rs-detail h3{
  font-size:30px;
  margin-bottom:15px;
}

.rs-detail p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}


/* TRAUZEUGEN */

.rs-witnesses{
  padding:0 0 130px;
}

.rs-witness-card{
  padding:clamp(38px,6vw,74px);
  text-align:center;
  background:var(--paper);
  border:1px solid var(--line);
}

.rs-witness-card h2{
  max-width:800px;
  margin:0 auto 22px;
}

.rs-witness-card .rs-lead{
  margin:0 auto 42px;
}

.rs-witness-grid{
  max-width:760px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.rs-witness{
  border-top:1px solid var(--line);
  padding:28px 20px 5px;
}

.rs-witness h3{
  font-size:30px;
  margin-bottom:6px;
}

.rs-witness-role{
  margin-bottom:14px;
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.15em;
}

.rs-witness a{
  font-family:var(--serif);
  color:var(--sage-dark);
  font-size:22px;
  border-bottom:1px solid rgba(95,109,89,.3);
}


.rs-witness-card > .rs-eyebrow,
.rs-witness-card > h2,
.rs-witness-card > .rs-lead{
  width:100%;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

.rs-witness-card > h2{max-width:800px;}
.rs-witness-card > .rs-lead{max-width:680px;margin-bottom:42px !important;}

/* FAQ */

.rs-faq{
  padding:0 0 130px;
}

.rs-faq-inner{
  max-width:850px;
  margin:0 auto;
}

.rs-faq-head{
  text-align:center;
  margin-bottom:52px;
}

.rs-faq details{
  border-top:1px solid var(--line);
  padding:20px 0;
}

.rs-faq details:last-child{
  border-bottom:1px solid var(--line);
}

.rs-faq summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;

  font-family:var(--serif);
  font-size:24px;
}

.rs-faq summary::-webkit-details-marker{
  display:none;
}

.rs-faq summary:after{
  content:"+";
  font-family:var(--sans);
  font-size:20px;
  color:var(--sage-dark);
}

.rs-faq details[open] summary:after{
  content:"−";
}

.rs-faq details p{
  max-width:690px;
  margin:15px 0 2px;
  color:var(--muted);
  font-size:14px;
}


/* RSVP */

.rs-rsvp{
  padding:110px 0;
  background:#e9e3da;
}

.rs-rsvp-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px;
  align-items:start;
}

.rs-rsvp-copy{
  position:sticky;
  top:100px;
}

.rs-rsvp-copy h2{
  margin-bottom:22px;
}

.rs-deadline{
  display:inline-block;
  margin-top:22px;
  padding-top:15px;
  border-top:1px solid #bbb2a7;
  font-family:var(--serif);
  font-size:22px;
}

.rs-form-card{
  padding:clamp(30px,5vw,58px);
  background:var(--paper);
  box-shadow:0 24px 70px rgba(52,48,43,.1);
}

.rs-choice{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:30px;
}

.rs-choice input{
  display:none;
}

.rs-choice label{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  cursor:pointer;

  border:1px solid var(--line);
  padding:15px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.rs-choice input:checked + label{
  background:var(--sage-dark);
  border-color:var(--sage-dark);
  color:#fff;
}

.rs-field-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}

.rs-field{
  margin-bottom:20px;
}

.rs-field > label{
  display:block;
  margin-bottom:7px;
  color:#5f5f58;
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.rs-field input[type="text"],
.rs-field input[type="email"],
.rs-field select{
  width:100%;
  border:0;
  border-bottom:1px solid #bdb6ac;
  border-radius:0;
  outline:0;
  background:transparent;
  color:var(--text);
  padding:10px 1px 12px;
}

.rs-check{
  display:flex !important;
  align-items:center;
  gap:11px;
  cursor:pointer;
  text-transform:none !important;
  letter-spacing:0 !important;
  font-size:14px !important;
  font-weight:400 !important;
}

.rs-check input{
  width:18px;
  height:18px;
  accent-color:var(--sage-dark);
}

.rs-submit{
  width:100%;
  border:1px solid var(--sage-dark);
  border-radius:999px;
  background:var(--sage-dark);
  color:#fff;
  padding:16px 20px;
  cursor:pointer;

  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.13em;
}

.rs-submit:hover{
  background:transparent;
  color:var(--sage-dark);
}

.rs-form-note{
  margin:12px 0 0;
  text-align:center;
  color:var(--muted);
  font-size:10px;
}

.rs-success{
  display:none;
  text-align:center;
  padding:35px 10px;
}

.rs-success h3{
  font-size:40px;
  margin-bottom:12px;
}

.rs-success p{
  color:var(--muted);
}


/* FOOTER */

.rs-footer{
  padding:75px 20px 48px;
  text-align:center;
  background:#242820;
  color:#fff;
}

.rs-footer-name{
  font-family:var(--script);
  font-size:65px;
  line-height:1;
  margin-bottom:16px;
}

.rs-footer p{
  margin:0;
  opacity:.65;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.15em;
}


/* SCROLL ANIMATION */

.rs-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s ease,transform .7s ease;
}

.rs-reveal.rs-visible{
  opacity:1;
  transform:none;
}


/* MOBILE */

@media(max-width:850px){

  .rs-container{
    width:calc(100% - 28px);
  }

  .rs-nav{
    padding:20px 0;
  }

  .rs-nav-inner{
    width:calc(100% - 40px);
  }

  .rs-nav-links{
    display:none;
    position:absolute;
    top:70px;
    left:14px;
    right:14px;
    padding:22px;
    background:rgba(250,248,244,.98);
    color:var(--text);
    box-shadow:0 20px 50px rgba(0,0,0,.12);
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }

  .rs-nav-links.rs-open{
    display:flex;
  }

  .rs-nav-links a{
    padding:12px 0;
    border-bottom:1px solid var(--line);
  }

  .rs-nav-links a:last-child{
    border-bottom:0;
  }

  .rs-menu{
    display:block;
  }

  .rs-hero{
    min-height:92svh;
  }

  .rs-hero-content{
    width:calc(100% - 40px);
    padding:130px 0 45px;
    display:block;
  }

  .rs-hero h1{
    font-size:clamp(62px,20vw,95px);
  }

  .rs-hero-meta{
    margin-top:28px;
    text-align:left;
  }

  .rs-intro{
    padding:90px 0;
  }

  .rs-countdown{
    padding:70px 0;
  }

  .rs-countdown-grid{
    grid-template-columns:1fr;
    gap:35px;
  }

  .rs-day{
    padding:90px 0;
  }

  .rs-section-head{
    margin-bottom:55px;
  }

  .rs-timeline:before{
    left:70px;
  }

  .rs-timeline-row{
    grid-template-columns:52px 1fr;
    gap:45px;
    padding-bottom:44px;
  }

  .rs-timeline-row:before{
    left:65px;
  }

  .rs-time{
    font-size:19px;
  }

  .rs-time-small{
    font-size:8px;
  }

  .rs-timeline-content h3{
    font-size:25px;
  }

  .rs-location{
    padding-bottom:90px;
  }

  .rs-location-grid{
    grid-template-columns:1fr;
    min-height:auto;
  }

  .rs-location-main{
    min-height:620px;
  }

  .rs-location-side{
    min-height:350px;
  }

  .rs-location-info{
    width:calc(100% - 28px);
    margin:0 14px 14px;
    padding:28px 24px;
  }

  .rs-details{
    padding-bottom:90px;
  }

  .rs-details-grid{
    grid-template-columns:1fr;
  }

  .rs-detail{
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:35px 12px;
  }

  .rs-detail:last-child{
    border-bottom:0;
  }

  .rs-detail-number{
    margin-bottom:22px;
  }

  .rs-witnesses{
    padding-bottom:90px;
  }

  .rs-witness-grid{
    grid-template-columns:1fr;
  }

  .rs-faq{
    padding-bottom:90px;
  }

  .rs-rsvp{
    padding:80px 0;
  }

  .rs-rsvp-grid{
    grid-template-columns:1fr;
    gap:45px;
  }

  .rs-rsvp-copy{
    position:static;
  }

  .rs-field-row{
    grid-template-columns:1fr;
  }

  .rs-choice{
    grid-template-columns:1fr;
  }

  .rs-form-card{
    padding:30px 22px;
  }
}

@media(max-width:850px){
  .rs-hero h1{
    font-size:clamp(78px,24vw,118px);
    line-height:.8;
  }
  .rs-intro{padding:85px 20px;}
  .rs-intro h2{
    font-size:clamp(37px,10.5vw,55px);
    line-height:1.16;
    margin-bottom:35px !important;
  }
  .rs-monogram span{font-size:43px;}
  .rs-intro-date{font-size:16px;}
}



/* =========================================================
   FINAL TYPOGRAPHY + ELEMENTOR MOBILE MENU OVERRIDES
   ========================================================= */

/* Moderne handschriftliche Signature-Schrift */
#rs-wedding .rs-hero h1{
  font-family:"Parisienne",cursive !important;
  font-size:clamp(115px,14vw,205px) !important;
  font-weight:400 !important;
  line-height:.68 !important;
  letter-spacing:.01em !important;
  margin:0 !important;
  padding:0 !important;
}

#rs-wedding .rs-hero h1 .rs-amp{
  font-family:"Parisienne",cursive !important;
  font-size:.72em !important;
  font-weight:400 !important;
  margin:0 .05em !important;
}

/* Falls Ramea & Saad im Footer ebenfalls handschriftlich erscheinen */
#rs-wedding .rs-footer-name{
  font-family:"Parisienne",cursive !important;
}

/* Elementor darf seine globale Linkfarbe nicht in das Wedding-Menü übernehmen */
#rs-wedding .rs-nav a,
#rs-wedding .rs-nav a:link,
#rs-wedding .rs-nav a:visited,
#rs-wedding .rs-nav a:hover,
#rs-wedding .rs-nav a:focus,
#rs-wedding .rs-nav a:active{
  color:inherit !important;
  text-decoration:none !important;
  box-shadow:none !important;
  outline-color:transparent;
}

/* Desktop */
@media(min-width:851px){
  #rs-wedding .rs-nav-links a,
  #rs-wedding .rs-nav-links a:link,
  #rs-wedding .rs-nav-links a:visited{
    color:#fff !important;
  }

  #rs-wedding .rs-nav-links a:hover,
  #rs-wedding .rs-nav-links a:focus,
  #rs-wedding .rs-nav-links a:active{
    color:#fff !important;
    opacity:.62 !important;
    background:transparent !important;
  }

  #rs-wedding .rs-nav-links .rs-nav-rsvp:hover,
  #rs-wedding .rs-nav-links .rs-nav-rsvp:focus{
    opacity:1 !important;
    background:rgba(255,255,255,.12) !important;
  }
}

/* Mobile */
@media(max-width:850px){
  #rs-wedding .rs-hero h1{
    font-size:clamp(88px,27vw,135px) !important;
    line-height:.72 !important;
  }

  #rs-wedding .rs-nav-links a,
  #rs-wedding .rs-nav-links a:link,
  #rs-wedding .rs-nav-links a:visited{
    color:var(--text) !important;
    background:transparent !important;
  }

  #rs-wedding .rs-nav-links a:hover,
  #rs-wedding .rs-nav-links a:focus,
  #rs-wedding .rs-nav-links a:active{
    color:var(--sage-dark) !important;
    background:transparent !important;
    opacity:1 !important;
  }

  #rs-wedding .rs-nav-links .rs-nav-rsvp,
  #rs-wedding .rs-nav-links .rs-nav-rsvp:link,
  #rs-wedding .rs-nav-links .rs-nav-rsvp:visited{
    color:var(--sage-dark) !important;
    border-color:var(--sage-dark) !important;
  }

  #rs-wedding .rs-nav-links .rs-nav-rsvp:hover,
  #rs-wedding .rs-nav-links .rs-nav-rsvp:focus,
  #rs-wedding .rs-nav-links .rs-nav-rsvp:active{
    color:#fff !important;
    background:var(--sage-dark) !important;
    border-color:var(--sage-dark) !important;
  }
}


/* FINAL: Sticky Navigation, Mobile-Menü und Mint-Countdown */
#rs-wedding .rs-nav{
 position:fixed!important;top:0;left:0;right:0;z-index:9999;
 transition:background .28s ease,color .28s ease,padding .28s ease,box-shadow .28s ease;
}
#rs-wedding .rs-nav.rs-scrolled{
 background:rgba(255,255,255,.97)!important;color:var(--text)!important;
 padding:17px 0!important;box-shadow:0 1px 0 rgba(47,49,44,.08),0 8px 30px rgba(47,49,44,.05);
 backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
#rs-wedding .rs-nav.rs-scrolled .rs-brand{color:var(--text)!important}
#rs-wedding .rs-nav.rs-scrolled .rs-nav-links a{color:var(--text)!important}
#rs-wedding .rs-nav.rs-scrolled .rs-nav-rsvp{border-color:var(--sage-dark)!important;color:var(--sage-dark)!important}

#rs-wedding .rs-countdown{background:#AFBBB9!important;color:#20332e!important}
#rs-wedding .rs-countdown .rs-eyebrow{color:#35564e!important}
#rs-wedding .rs-counter{border-color:rgba(47,55,53,.28)!important}
#rs-wedding .rs-counter-item{border-right-color:rgba(47,55,53,.20)!important}
#rs-wedding .rs-counter-label{color:#667875!important;opacity:.85!important}

#rs-wedding button.rs-menu,
#rs-wedding button.rs-menu:hover,
#rs-wedding button.rs-menu:focus,
#rs-wedding button.rs-menu:active{
 color:#fff!important;background:transparent!important;border:0!important;
 box-shadow:none!important;outline:none!important;text-decoration:none!important;
}
#rs-wedding .rs-nav.rs-scrolled button.rs-menu,
#rs-wedding .rs-nav.rs-scrolled button.rs-menu:hover,
#rs-wedding .rs-nav.rs-scrolled button.rs-menu:focus,
#rs-wedding .rs-nav.rs-scrolled button.rs-menu:active{
 color:var(--text)!important;background:transparent!important;
}

@media(max-width:850px){
 #rs-wedding .rs-nav{padding:21px 0!important}
 #rs-wedding .rs-nav.rs-scrolled{padding:15px 0!important}
 #rs-wedding .rs-nav-inner{width:calc(100% - 36px)!important}
 #rs-wedding .rs-menu{
  appearance:none!important;-webkit-appearance:none!important;padding:8px 0!important;margin:0!important;
  min-width:auto!important;min-height:auto!important;line-height:1!important;font-family:var(--sans)!important;
  font-size:11px!important;font-weight:500!important;letter-spacing:.14em!important;text-transform:uppercase!important;
 }
 #rs-wedding .rs-nav-links{
  position:absolute!important;top:calc(100% + 8px)!important;left:18px!important;right:18px!important;
  width:auto!important;margin:0!important;padding:10px 22px 14px!important;
  background:rgba(255,255,255,.98)!important;color:var(--text)!important;
  border:1px solid rgba(47,49,44,.08)!important;border-radius:3px!important;
  box-shadow:0 18px 45px rgba(47,49,44,.12)!important;
 }
 #rs-wedding .rs-nav-links a,
 #rs-wedding .rs-nav-links a:link,
 #rs-wedding .rs-nav-links a:visited{
  display:block!important;width:100%!important;padding:15px 0!important;margin:0!important;
  color:var(--text)!important;background:transparent!important;border:0!important;
  border-bottom:1px solid rgba(47,49,44,.09)!important;border-radius:0!important;
  font-size:11px!important;line-height:1.35!important;letter-spacing:.11em!important;text-align:left!important;
 }
 #rs-wedding .rs-nav-links a:hover,
 #rs-wedding .rs-nav-links a:focus,
 #rs-wedding .rs-nav-links a:active{color:var(--sage-dark)!important;background:transparent!important}
 #rs-wedding .rs-nav-links .rs-nav-rsvp{
  margin-top:12px!important;padding:13px 16px!important;text-align:center!important;color:#fff!important;
  background:var(--sage-dark)!important;border:1px solid var(--sage-dark)!important;border-radius:999px!important;
 }
 #rs-wedding .rs-nav-links .rs-nav-rsvp:hover,
 #rs-wedding .rs-nav-links .rs-nav-rsvp:focus,
 #rs-wedding .rs-nav-links .rs-nav-rsvp:active{color:#fff!important;background:var(--sage-dark)!important}
}


/* FINAL: Wunschfarbe, Familienzeile, einzelne Geschenkkarte */
#rs-wedding .rs-family-line{
 margin-top:24px;font-family:var(--sans);font-size:clamp(13px,1.15vw,17px);
 font-weight:300;letter-spacing:.12em;line-height:1.4;color:rgba(255,255,255,.88);
}
#rs-wedding .rs-details-grid{
 grid-template-columns:1fr!important;max-width:780px;margin-left:auto;margin-right:auto;
}
#rs-wedding .rs-detail{border-right:0!important;text-align:center}
#rs-wedding .rs-detail-number{margin-bottom:24px}
@media(max-width:850px){
 #rs-wedding .rs-family-line{margin-top:18px;font-size:12px;letter-spacing:.09em}
}


html{scroll-behavior:smooth}body{margin:0}section[id]{scroll-margin-top:95px}
#rs-wedding .rs-hero h1{font-size:clamp(65px,10vw,150px)!important;line-height:1.15!important}
.rs-hero-video{background:url('family.jpg') center 38%/cover}
.rs-field input:focus-visible,.rs-field select:focus-visible{outline:2px solid var(--sage-dark);outline-offset:4px}
.rs-choice input{display:block;position:absolute;opacity:0;width:1px;height:1px}.rs-choice input:focus-visible+label{outline:2px solid var(--sage-dark);outline-offset:4px}
.rs-honey{position:absolute;left:-10000px}.rs-error{color:#943c32;font-size:14px}.rs-submit:disabled{opacity:.6;cursor:wait}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rs-reveal,.rs-hero h1,.rs-hero-kicker,.rs-hero-meta{opacity:1;transform:none;animation:none;transition:none}.rs-hero-video{display:none}.rs-hero{background:url('family.jpg') center/cover}}

/* Mobile RSVP: match link pseudo-class specificity so padding is preserved. */
@media(max-width:850px){
 #rs-wedding .rs-nav-links a.rs-nav-rsvp,
 #rs-wedding .rs-nav-links a.rs-nav-rsvp:link,
 #rs-wedding .rs-nav-links a.rs-nav-rsvp:visited,
 #rs-wedding .rs-nav-links a.rs-nav-rsvp:hover,
 #rs-wedding .rs-nav-links a.rs-nav-rsvp:focus,
 #rs-wedding .rs-nav-links a.rs-nav-rsvp:active{
  box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;
  width:100%!important;min-height:48px!important;padding:15px 24px!important;margin:12px 0 4px!important;
  text-align:center!important;line-height:1.5!important;background:var(--sage-dark)!important;color:#fff!important;
  border:1px solid var(--sage-dark)!important;border-radius:6px!important;
 }
}
.rs-time-break{display:none}
@media(max-width:850px){
 #rs-wedding .rs-time-after{font-size:9px;letter-spacing:.025em;line-height:1.6;overflow-wrap:normal;word-break:normal}
 #rs-wedding .rs-time-after .rs-time-break{display:inline}
}

@font-face{font-family:'Brittany Signature';src:url('fonts/BrittanySignature.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
#rs-wedding{--script:'Brittany Signature','Parisienne',cursive}
#rs-wedding .rs-hero h1,#rs-wedding .rs-hero h1 .rs-amp{font-family:var(--script)!important;font-weight:400!important;line-height:1.45!important}
#rs-wedding .rs-hero h1{font-size:clamp(64px,9vw,138px)!important}
#rs-wedding .rs-hero-kicker{animation:rsHeaderReveal 1.2s cubic-bezier(.2,.65,.3,1) .2s both}
#rs-wedding .rs-hero h1{animation:rsHeaderReveal 1.8s cubic-bezier(.2,.65,.3,1) .55s both}
#rs-wedding .rs-family-line{animation:rsHeaderReveal 1.4s cubic-bezier(.2,.65,.3,1) 1.1s both}
html.invitation-locked #rs-wedding .rs-hero-kicker,html.invitation-locked #rs-wedding .rs-hero h1,html.invitation-locked #rs-wedding .rs-family-line{animation-play-state:paused}
@keyframes rsHeaderReveal{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@media(max-width:850px){#rs-wedding .rs-hero h1{font-size:clamp(49px,13vw,95px)!important;line-height:1.65!important}}
@media(prefers-reduced-motion:reduce){#rs-wedding .rs-hero-kicker,#rs-wedding .rs-hero h1,#rs-wedding .rs-family-line{animation:none!important;opacity:1!important;transform:none!important}}

/* Run the three header entrances only when the invitation reveals the page. */
#rs-wedding .rs-hero-kicker,#rs-wedding .rs-hero h1,#rs-wedding .rs-family-line{animation:none;opacity:0;transform:translateY(25px)}
html.header-revealed #rs-wedding .rs-hero-kicker{animation:rsHeaderReveal 1s cubic-bezier(.2,.65,.3,1) .1s both}
html.header-revealed #rs-wedding .rs-hero h1{animation:rsHeaderReveal 1.3s cubic-bezier(.2,.65,.3,1) 1.1s both}
html.header-revealed #rs-wedding .rs-family-line{animation:rsHeaderReveal 1s cubic-bezier(.2,.65,.3,1) 2.35s both}
@media(prefers-reduced-motion:reduce){#rs-wedding .rs-hero-kicker,#rs-wedding .rs-hero h1,#rs-wedding .rs-family-line{opacity:1;transform:none;animation:none!important}}

.rs-music-toggle{position:fixed;right:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:50;padding:12px 18px;border:1px solid #66787566;border-radius:30px;background:#fbf9f6ed;color:#455752;font:12px 'Manrope',Arial,sans-serif;box-shadow:0 4px 18px #2f312c15;cursor:pointer}
.rs-music-toggle:focus-visible{outline:2px solid #667875;outline-offset:3px}

/* Fine line illustrations along the wedding-day timeline. */
#rs-wedding .rs-timeline-row:before{display:none}
.rs-timeline-icon{position:absolute;left:101px;top:-4px;width:43px;height:43px;display:grid;place-items:center;background:var(--bg);color:var(--sage-dark)}
.rs-timeline-icon svg{display:block;width:36px;height:36px}
@media(max-width:850px){.rs-timeline-icon{left:49px;top:-5px;width:43px;height:43px}.rs-timeline-icon svg{width:32px;height:32px}}

/* Keep time labels clear of the icon's paper background. */
@media(max-width:850px){
 #rs-wedding .rs-timeline-row{grid-template-columns:64px 1fr;gap:52px}
 #rs-wedding .rs-timeline:before{left:90px}
 #rs-wedding .rs-timeline-icon{left:69px}
 #rs-wedding .rs-time{min-width:0}
}
