﻿:root{
  --bg:#F7F5F2;
  --ink:#4E4E4E;
  --muted:#757575;
  --accent:#4E4E4E;
  --border:#e0e0e0;
  --display:'Pinyon Script',cursive;
  --body:'Libre Baskerville',serif;
}

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

body{
  font-family:var(--body);
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  font-size:16px;
}

/* Site Header */
.site-header{
  padding:20px 20px 0 20px;
  position:relative;
  text-align:center;
  min-height:80px;
  background-color:var(--bg);
  margin-left:auto;
  margin-right:auto;
  z-index:400;
}

@media (max-width: 767px){
  .site-header{
    display:none;
  }
}

.site-title{
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  font-size:42px;
  margin:0;
}

.site-title a{
  color:inherit;
  text-decoration:none;
}

.site-title a:hover{
  text-decoration:none;
  color:inherit;
}

/* Navigation */
.main-nav{
  display:flex;
  justify-content:safe center;
  margin:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding:20px 0 12px 0;
  text-align:center;
  background-color:var(--bg);
  position:sticky;
  top:0;
  z-index:400;
  margin-left:auto;
  margin-right:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.main-nav::-webkit-scrollbar{
  display:none;
}

.nav-item{
  margin:0 12px;
  padding:8px 0;
  position:relative;
  flex-shrink:0;
  white-space:nowrap;
}

.nav-item:hover .nav-underline,
.nav-item:focus .nav-underline{
  transform:scaleX(1);
}

.nav-item a{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  text-decoration:none;
}

.nav-item a:hover,
.nav-item a:focus{
  text-decoration:none;
  color:inherit;
}

.nav-underline{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  width:100%;
  height:3px;
  background-color:var(--accent);
  transform:scaleX(0);
  transition:transform 0.3s;
}

.nav-item.active .nav-underline{
  transform:scaleX(1);
}

/* Hero Section */
.hero{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  text-align:center;
  overflow:hidden;
  min-height:600px;
}

@media (max-width: 767px){
  .hero{
    min-height:100vw;
  }
}

/* Hero Video Section */
.hero-video-container{
  position:relative;
  width:100%;
  height:600px;
  overflow:hidden;
  background:#000;
}

@media (max-width: 767px){
  .hero-video-container{
    height:56.25vw;
  }
}

.hero-video-iframe{
  position:absolute;
  top:50%;
  left:50%;
  width:100vw;
  height:56.25vw;
  min-height:100vh;
  min-width:177.77vh;
  transform:translate(-50%, -50%);
  border:none;
  pointer-events:none;
}

@media (max-width: 767px){
  .hero-video-iframe{
    width:100%;
    height:100%;
    min-height:56.25vw;
    min-width:auto;
  }
}

.hero-image{
  object-fit:cover;
  object-position:center;
  position:absolute;
  width:100%;
  height:100%;
  z-index:100;
}

@media (max-width: 767px){
  .hero-image{
    height:undefined;
  }
}

.hero-overlay{
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  z-index:200;
}

.hero-content{
  z-index:300;
  padding:40px 80px;
  width:100%;
}

@media (max-width: 767px){
  .hero-content{
    padding:64px 20px;
  }
}

.hero-title{
  z-index:300;
  overflow-wrap:break-word;
  width:100%;
  margin:0;
  font-size:6vw;
  font-family:var(--display);
  color:#FFFFFF;
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  filter:drop-shadow(0px 6px 10px rgba(0,0,0,.2));
}

@media (min-width: 768px) and (max-width: 991px){
  .hero-title{
    font-size:8vw;
  }
}

@media (max-width: 767px){
  .hero-title{
    font-size:8vw;
  }
}

@media (max-width: 479px){
  .hero-title{
    font-size:7vw;
  }
}

/* Main Content */
main{
  position:relative;
  overflow:visible;
  padding-top:1px;
  margin-top:-1px;
}

.content-container{
  max-width:1020px;
  margin-left:auto;
  margin-right:auto;
  position:relative;
  z-index:150;
  padding-top:65px;
  padding-right:32px;
  padding-left:32px;
}

@media (max-width: 991px){
  .content-container{
    padding-right:5%;
    padding-left:5%;
    padding-top:8px;
  }
}

/* Couples Names Section */
.couples-names-section{
  text-align:center;
  padding-top:90px;
  padding-bottom:120px;
  width:100%;
}

@media (min-width: 768px) and (max-width: 991px){
  .couples-names-section{
    padding-top:80px;
    padding-bottom:80px;
  }
}

@media (max-width: 767px){
  .couples-names-section{
    padding-top:40px;
    padding-bottom:40px;
  }
}

.couples-names-section > *{
  padding-left:32px;
  padding-right:32px;
}

.couples-names{
  width:100%;
  text-align:center;
  position:relative;
  display:flex;
  max-width:100%;
  flex-direction:column;
  text-align:center;
  width:100%;
}

.name-row{
  display:flex;
  z-index:300;
  max-width:100%;
  flex-direction:row;
  justify-content:center;
}

.couple-name{
  margin:0;
  font-size:56px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
}

@media (min-width: 768px) and (max-width: 991px){
  .couple-name{
    font-size:56px;
  }
}

@media (max-width: 767px){
  .couple-name{
    font-size:12.5vw;
  }
}

.and-text{
  margin:32px 0;
  background-image:none;
  position:relative;
  width:unset;
  height:unset;
  z-index:300;
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:lowercase;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

@media (max-width: 767px){
  .and-text{
    margin:20px 0;
  }
}

/* Date and Location Section */
.date-location-section{
  width:100%;
  margin-top:40px;
  margin-bottom:40px;
  text-align:center;
}

.date-location-section > *{
  padding-left:32px;
  padding-right:32px;
}

.date-location-container{
  display:flex;
  align-items:center;
}

.date-location-container > div{
  width:50%;
  text-align:center;
}

@media (max-width: 767px){
  .date-location-container > div{
    width:100%;
  }
}

@media (max-width: 767px){
  .date-location-container{
    flex-direction:column;
  }
}

.location-col{
  margin-right:40px;
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

@media (max-width: 767px){
  .location-col{
    margin-right:0;
    margin-bottom:40px;
  }
}

.date-col{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

.section-heading{
  margin-bottom:12px;
  margin-top:0;
  font-size:40px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
}

@media (max-width: 767px){
  .section-heading{
    font-size:32px;
  }
}

.section-text{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

/* Countdown Timer */
.countdown-section{
  margin-top:40px;
  margin-bottom:80px;
  text-align:center;
}

.countdown-section > *{
  padding-left:32px;
  padding-right:32px;
}

.countdown-timer{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

.countdown-unit{
  margin-left:16px;
}

.countdown-unit:first-child{
  margin-left:0;
}

.countdown-full{
  display:inline;
}

.countdown-short{
  display:none;
}

@media (max-width: 767px){
  .countdown-full{
    display:none;
  }
  .countdown-short{
    display:inline;
  }
}

/* RSVP Button Section */
.rsvp-button-section{
  margin-top:80px;
  text-align:center;
}

.rsvp-button-section > *{
  padding-left:32px;
  padding-right:32px;
}

.rsvp-button{
  border-radius:4px;
  border:2px solid var(--accent);
  padding:16px;
  font-size:16px;
  font-weight:600;
  line-height:16px;
  margin:0;
  width:300px;
  text-align:center;
  background-color:transparent;
  font-family:var(--body);
  color:var(--accent);
  text-decoration:none;
  display:inline-block;
  transition:all 0.3s ease;
}

.rsvp-button:hover{
  background-color:var(--accent);
  color:#FFFFFF;
  text-decoration:none;
}

.rsvp-button:visited{
  color:var(--accent);
}

.rsvp-button:visited:hover{
  color:#FFFFFF;
}

.rsvp-button:focus{
  text-decoration:none;
}

@media (max-width: 767px){
  .rsvp-button{
    width:200px;
  }
}

@media (max-width: 479px){
  .rsvp-button{
    width:100%;
  }
}

/* Video Section */
.video-section{
  max-width:800px;
  margin:0 auto;
  margin-top:48px;
  padding-bottom:48px;
  text-align:center;
}

.video-section > *{
  padding-left:32px;
  padding-right:32px;
}

.video-container{
  position:relative;
  overflow:hidden;
  width:100%;
  padding-top:56.25%;
}

.video-iframe{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

.video-caption{
  margin-top:12px;
  text-align:center;
  margin-bottom:0;
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

/* Story Section */
.story-section{
  margin-top:80px;
  padding-bottom:120px;
  position:relative;
  text-align:center;
}

@media (max-width: 991px){
  .story-section{
    padding-bottom:40px;
  }
}

.story-section > *{
  padding-left:32px;
  padding-right:32px;
}

.story-container{
  overflow-wrap:anywhere;
  position:relative;
  display:flex;
  flex-direction:row;
  align-items:center;
}

@media (max-width: 767px){
  .story-container{
    flex-direction:column;
  }
}

.story-left,
.story-right{
  width:50%;
  padding:32px;
}

@media (max-width: 767px){
  .story-left,
  .story-right{
    width:100%;
    padding:0;
  }
}

.story-left p{
  white-space:pre-wrap;
}

@media (max-width: 767px){
  .story-left{
    border:none;
  }
}

.story-left > div{
  display:inline-flex;
  flex-direction:column;
}

.story-title{
  margin:0;
  font-size:40px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
}

.story-subtitle{
  margin-top:12px;
  margin-bottom:24px;
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
}

.story-divider{
  position:absolute;
  height:100%;
  left:50%;
  width:1px;
  background-color:var(--accent);
}

@media (max-width: 991px){
  .story-divider{
    display:none;
  }
}

.story-right p{
  white-space:pre-wrap;
}

.story-text{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  margin:0;
}

/* Footer */
.simple-footer{
  text-align:center;
  padding:40px 20px;
  margin-top:80px;
  font-family:var(--body);
  color:var(--muted);
  font-size:14px;
}

.simple-footer p{
  margin:0;
}

/* Forms (for RSVP page) */
input,select,textarea{
  font-family:var(--body);
  padding:12px 16px;
  border:1px solid var(--border);
  border-radius:4px;
  background:#fff;
  color:var(--ink);
  width:100%;
  font-size:16px;
}

label{
  display:block;
  margin-bottom:24px;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--muted);
}

label input,
label select,
label textarea{
  margin-top:8px;
}

button{
  font-family:var(--body);
  padding:14px 32px;
  background:var(--accent);
  color:#fff;
  border:none;
  border-radius:4px;
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:14px;
  font-weight:600;
  transition:opacity 0.2s;
}

button:hover{
  opacity:0.85;
}

button.secondary{
  background:#fff;
  color:var(--ink);
  border:1px solid var(--border);
}

button.active-attend{
  background:var(--accent);
  color:#fff;
  border:1px solid var(--accent);
}

.btnrow{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.card{
  background:#fff;
  padding:32px;
  margin-bottom:32px;
  border:1px solid var(--border);
  border-radius:8px;
}

h1,h2,h3{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:normal;
  line-height:1.3;
  margin-bottom:16px;
  text-transform:capitalize;
}

h1{font-size:40px}
h2{font-size:40px}
h3{font-size:40px}

p{
  margin-bottom:16px;
  color:var(--ink);
  line-height:1.6;
}

/* RSVP Result Cards */
.result-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px;
  border:1px solid var(--border);
  border-radius:8px;
  margin-bottom:16px;
  background:#fff;
}

.result-card .names{
  font-size:18px;
  font-weight:600;
}

.result-card button{
  padding:10px 24px;
  font-size:13px;
}

/* Tables */
table{
  width:100%;
  border-collapse:collapse;
  margin-top:16px;
}

th,td{
  padding:12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  font-size:14px;
}

th{
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.05em;
  font-size:12px;
  color:var(--muted);
}

.notice{
  padding:16px;
  border:1px solid #d3e5ff;
  background:#f0f7ff;
  border-radius:4px;
  margin:16px 0;
}

/* Page Title Mobile */
.page-title-mobile{
  margin-top:0;
  margin-bottom:10px;
  text-align:center;
  width:100%;
  display:none;
}

@media (max-width: 991px){
  .page-title-mobile{
    display:block;
  }
}

.page-title-mobile h1{
  font-size:48px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  margin:0;
}

@media (max-width: 767px){
  .page-title-mobile h1{
    font-size:40px;
  }
}

/* FAQ Section */
.faq-section{
  width:100%;
  margin-top:80px;
  text-align:center;
  overflow-wrap:anywhere;
}

@media (max-width: 991px){
  .faq-section{
    margin-top:60px;
  }
}

.faq-item{
  position:relative;
  margin-bottom:60px;
  display:flex;
  flex-direction:row;
  align-items:center;
}

@media (max-width: 991px){
  .faq-item{
    flex-direction:column;
  }
}

.faq-question{
  width:50%;
  padding:32px;
  text-align:center;
}

@media (max-width: 991px){
  .faq-question{
    width:100%;
    padding:0;
  }
}

.faq-question h2{
  margin-top:0;
  margin-bottom:24px;
  font-size:40px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
}

@media (max-width: 767px){
  .faq-question h2{
    font-size:32px;
  }
}

.faq-divider{
  position:absolute;
  height:100%;
  left:50%;
  width:1px;
  background-color:var(--accent);
}

@media (max-width: 991px){
  .faq-divider{
    display:none;
  }
}

.faq-answer{
  width:50%;
  padding:32px;
  text-align:left;
}

@media (max-width: 991px){
  .faq-answer{
    width:100%;
    padding:0;
    text-align:center;
  }
}

.faq-answer p{
  white-space:pre-wrap;
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  margin:0;
}

/* Registry Section */
.registry-section{
  width:100%;
  margin-top:80px;
  margin-bottom:120px;
  text-align:center;
  padding:0 32px;
}

@media (max-width: 991px){
  .registry-section{
    margin-top:60px;
    margin-bottom:80px;
  }
}

.registry-title{
  font-size:48px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  margin-bottom:24px;
}

@media (max-width: 767px){
  .registry-title{
    font-size:40px;
  }
}

.registry-message{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  max-width:600px;
  margin:0 auto 40px auto;
}

.registry-buttons{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}

.registry-button{
  border-radius:4px;
  border:none;
  padding:16px;
  font-size:16px;
  font-weight:600;
  line-height:16px;
  margin:0;
  width:300px;
  text-align:center;
  background-color:var(--accent);
  font-family:var(--body);
  color:#FFFFFF;
  text-decoration:none;
  display:inline-block;
}

.registry-button:hover{
  opacity:0.85;
  color:#FFFFFF;
  text-decoration:none;
}

.registry-button:visited{
  color:#FFFFFF;
}

@media (max-width: 767px){
  .registry-button{
    width:200px;
  }
}

@media (max-width: 479px){
  .registry-button{
    width:100%;
  }
}

/* Gallery Section */
.gallery-section{
  width:100%;
  margin-top:80px;
  margin-bottom:120px;
  text-align:center;
  padding:0 32px;
}

@media (max-width: 991px){
  .gallery-section{
    margin-top:60px;
    margin-bottom:80px;
  }
}

.gallery-title{
  font-size:48px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  margin-bottom:24px;
}

@media (max-width: 767px){
  .gallery-title{
    font-size:40px;
  }
}

.gallery-message{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  max-width:600px;
  margin:0 auto;
}

/* Things To Do Section */
.things-section{
  width:100%;
  margin-top:80px;
  margin-bottom:120px;
  text-align:center;
  padding:0 32px;
}

@media (max-width: 991px){
  .things-section{
    margin-top:60px;
    margin-bottom:80px;
  }
}

.things-title{
  font-size:48px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  margin-bottom:24px;
}

@media (max-width: 767px){
  .things-title{
    font-size:40px;
  }
}

.things-message{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  max-width:600px;
  margin:0 auto;
}

/* Schedule Section */
.schedule-section{
  width:100%;
  margin-top:80px;
  margin-bottom:120px;
  text-align:center;
  padding:0 32px;
}

@media (max-width: 991px){
  .schedule-section{
    margin-top:60px;
    margin-bottom:80px;
  }
}

.schedule-title{
  font-size:48px;
  font-family:var(--display);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.3;
  letter-spacing:normal;
  margin-bottom:24px;
}

@media (max-width: 767px){
  .schedule-title{
    font-size:40px;
  }
}

.schedule-message{
  font-family:var(--body);
  color:var(--ink);
  font-weight:400;
  text-transform:none;
  line-height:1.6;
  letter-spacing:normal;
  font-size:16px;
  max-width:600px;
  margin:0 auto;
}

.event-details{
  max-width:600px;
  margin:40px auto 0 auto;
  text-align:left;
  background:#fff;
  padding:32px;
  border-radius:8px;
  border:1px solid var(--border);
}

.event-details h3{
  font-family:var(--display);
  font-size:32px;
  margin:0 0 24px 0;
  text-align:center;
}

.event-time,
.event-location{
  font-family:var(--body);
  font-size:16px;
  line-height:1.8;
  margin:8px 0;
}

.event-actions{
  display:flex;
  gap:12px;
  margin-top:24px;
  flex-wrap:wrap;
}

.event-button{
  font-family:var(--body);
  padding:12px 24px;
  background:var(--accent);
  color:#fff;
  border:none;
  border-radius:4px;
  cursor:pointer;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:0.05em;
  display:inline-block;
}

.event-button:hover{
  opacity:0.85;
  color:#fff;
  text-decoration:none;
}

/* RSVP Card */
.rsvp-card{
  background:#fff;
  padding:40px;
  margin:80px auto 120px auto;
  border:1px solid var(--border);
  border-radius:8px;
  max-width:700px;
}

@media (max-width: 991px){
  .rsvp-card{
    margin:60px auto 80px auto;
    padding:32px;
  }
}

@media (max-width: 767px){
  .rsvp-card{
    padding:24px;
  }
}

.rsvp-card h1{
  display:none;
}

@media (max-width: 991px){
  .rsvp-card h1{
    display:block;
  }
}