@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=EB+Garamond:ital,wght@0,400;1,400&family=Cinzel:wght@300;400&display=swap');

:root {
  --ivory:   #f9f5ee;
  --cream:   #fdf9f4;
  --peach:   #f5e6d8;
  --gold:    #a8844a;
  --gold-lt: #c9a86c;
  --dark:    #1e160c;
  --sepia:   #5c4a35;
  --stone:   #9c8c7c;
  --stone-lt:#c8bdb2;
  --white:   #ffffff;
  --brown1:  #8c6840;
  --brown2:  #3d2a1a;
  --brown3:  #7a5535;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--cream);color:var(--dark);font-family:'EB Garamond',serif;font-weight:400;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:.7rem 2.5rem;display:flex;justify-content:space-between;align-items:center;transition:all .5s;}
nav.scrolled{background:rgba(253,249,244,.97);backdrop-filter:blur(16px);border-bottom:1px solid rgba(168,132,74,.15);}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1rem;font-weight:300;font-style:italic;letter-spacing:.28em;color:var(--dark);text-decoration:none;}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{font-family:'Cinzel',serif;font-size:.5rem;font-weight:300;letter-spacing:.25em;text-transform:uppercase;color:var(--sepia);text-decoration:none;transition:color .3s;padding-bottom:2px;border-bottom:1px solid transparent;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);border-bottom-color:var(--gold);}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.nav-hamburger span{display:block;width:22px;height:1px;background:var(--dark);transition:all .3s;}

/* HERO */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--white);padding-top:60px;}
.hero-text{text-align:center;padding:5rem 2rem 0;}
.hero-crest{width:72px;height:72px;object-fit:contain;margin-bottom:1.75rem;}
.hero-eyebrow{font-family:'Cinzel',serif;font-size:.46rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;}
.hero-names{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:300;font-style:italic;color:var(--dark);line-height:.95;}
.hero-amp{font-size:.48em;color:var(--gold);display:block;line-height:1.6;letter-spacing:.08em;}
.hero-rule{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lt),transparent);margin:1.75rem auto;}
.hero-date{font-family:'Cinzel',serif;font-size:.52rem;letter-spacing:.4em;color:var(--stone);}
.hero-location{font-family:'Cormorant Garamond',serif;font-size:.95rem;font-style:italic;color:var(--gold);margin-top:.35rem;}
.hero-villa{width:100%;height:auto;display:block;opacity:.93;margin-top:3.5rem;}

/* PAGE HERO (peach) */
.page-hero{padding:7rem 2rem 5rem;text-align:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#f5e6d8 0%,#eeddd0 40%,#e8cfc0 70%,#dfc4a8 100%);}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 60% 40%,rgba(212,178,140,.35) 0%,transparent 65%);}
.page-hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;}
.page-hero-crest{width:60px;height:60px;object-fit:contain;margin-bottom:2rem;opacity:.75;}
.page-hero-label{font-family:'Cinzel',serif;font-size:.48rem;letter-spacing:.5em;text-transform:uppercase;color:var(--brown1);margin-bottom:1.25rem;}
.page-hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.6rem,6vw,5rem);font-weight:300;font-style:italic;color:var(--brown2);line-height:1;margin-bottom:1.5rem;}
.page-hero-rule{width:70px;height:1px;background:linear-gradient(90deg,transparent,rgba(168,132,74,.6),transparent);margin:0 auto;}
.page-hero-sub{font-family:'Cormorant Garamond',serif;font-size:1rem;font-style:italic;color:var(--brown3);margin-top:1.25rem;}

/* CARDS GRID */
.cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(168,132,74,.12);}
.card{padding:3.5rem 3rem;text-decoration:none;color:inherit;display:block;transition:background .4s;cursor:pointer;position:relative;overflow:hidden;min-height:280px;}
.card-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity .4s;}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.4) 0%,rgba(0,0,0,.1) 40%,rgba(0,0,0,.6) 70%,rgba(0,0,0,.88) 100%);}
.card-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:space-between;}
.card-num{font-family:'Cinzel',serif;font-size:.48rem;letter-spacing:.4em;color:var(--gold-lt);margin-bottom:2rem;}
.card-num.dark{color:var(--gold);}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:300;font-style:italic;line-height:1.15;text-align:center;}
.card-title.light{color:var(--white);text-shadow:0 2px 16px rgba(0,0,0,.7);}
.card-title.dark{color:var(--dark);}
.card-body{margin-top:auto;}
.card-rule{width:40px;height:1px;margin-bottom:1rem;}
.card-rule.light{background:rgba(255,255,255,.5);}
.card-rule.dark{background:var(--gold);}
.card-desc{font-size:.88rem;line-height:1.9;white-space:pre-line;}
.card-desc.light{color:rgba(255,255,255,.9);text-shadow:0 1px 8px rgba(0,0,0,.7);}
.card-desc.dark{color:var(--stone);}
.card-cta{font-family:'Cinzel',serif;font-size:.46rem;letter-spacing:.3em;margin-top:1.5rem;}
.card-cta.light{color:rgba(255,255,255,.7);}
.card-cta.dark{color:var(--gold);}
.card-span2{grid-column:span 2;}
.card:hover .card-bg{opacity:.7!important;}

/* CONTENT BLOCKS */
.block{padding:3rem 2rem;border-bottom:1px solid rgba(168,132,74,.13);}
.block.last{border-bottom:none;}
.block.compact{padding:1rem 2rem;}
.block-inner{max-width:740px;margin:0 auto;}
.block-tag{font-family:'Cinzel',serif;font-size:.5rem;font-weight:300;letter-spacing:.45em;text-transform:uppercase;color:var(--gold);margin-bottom:.85rem;}
.block-title{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;font-style:italic;color:var(--dark);margin-bottom:1.75rem;line-height:1.2;}
.block-text{font-size:.96rem;color:var(--stone);line-height:2;letter-spacing:.02em;margin-bottom:.75rem;}
.rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold-lt),transparent);margin:2rem 0;}
.pill{display:inline-flex;align-items:center;gap:.55rem;background:rgba(168,132,74,.06);border:1px solid rgba(168,132,74,.22);padding:.45rem 1rem;font-family:'Cinzel',serif;font-size:.48rem;font-weight:300;letter-spacing:.12em;text-transform:uppercase;color:var(--sepia);margin-right:.6rem;margin-top:.75rem;}
.pill-dot{width:3px;height:3px;border-radius:50%;background:var(--gold);flex-shrink:0;}

/* TIMELINE */
.timeline{margin-top:2.5rem;}
.tl-item{display:grid;grid-template-columns:64px 1px 1fr;gap:0 2rem;padding-bottom:1.75rem;}
.tl-time{font-family:'Cormorant Garamond',serif;font-size:.95rem;font-style:italic;color:var(--gold);text-align:right;padding-top:.1rem;}
.tl-line{display:flex;flex-direction:column;align-items:center;}
.tl-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);flex-shrink:0;margin-top:.4rem;}
.tl-connector{width:1px;flex:1;background:rgba(168,132,74,.2);margin-top:5px;}
.tl-content h4{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:400;color:var(--dark);margin-bottom:.25rem;}
.tl-content p{font-size:.88rem;color:var(--stone);line-height:1.8;}

/* DARK BOX */
.dark-box{background:var(--dark);padding:2.75rem;margin:1.5rem 0;position:relative;}
.dark-box::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lt),transparent);}
.dark-box-rule{width:32px;height:1px;background:var(--gold);margin-bottom:1.25rem;}
.dark-box h3{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-style:italic;color:var(--white);margin-bottom:.7rem;}
.dark-box p{font-size:.9rem;color:var(--stone-lt);line-height:1.9;}
.quote-block{border-left:2px solid var(--gold);padding:1.75rem 2rem;background:rgba(168,132,74,.04);margin:.5rem 0;}
.quote-block p{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-style:italic;color:var(--sepia);line-height:1.9;}

/* WEEKEND SECTION */
.weekend-section{padding:7rem 2rem;background:var(--cream);}
.weekend-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:5rem;}
.weekend-text{flex:1;min-width:0;}
.weekend-img{flex-shrink:0;}
.weekend-tag{font-family:'Cinzel',serif;font-size:.5rem;font-weight:300;letter-spacing:.45em;text-transform:uppercase;color:var(--gold);margin-bottom:.85rem;}
.weekend-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:300;font-style:italic;color:var(--dark);line-height:1.1;margin-bottom:1.5rem;}
.weekend-desc{font-size:.96rem;color:var(--stone);line-height:2;}
.weekend-sub{font-family:'Cormorant Garamond',serif;font-size:.96rem;font-style:italic;color:var(--stone);}

/* RSVP */
.rsvp-section{padding:7rem 2rem;background:var(--cream);}
.rsvp-inner{max-width:960px;margin:0 auto;}
.rsvp-header{text-align:center;margin-bottom:4rem;}
.form-wrap{max-width:580px;margin:0 auto;display:flex;flex-direction:column;gap:2rem;}
.form-label{display:block;font-family:'Cinzel',serif;font-size:.48rem;font-weight:300;letter-spacing:.32em;text-transform:uppercase;color:var(--sepia);margin-bottom:.6rem;}
.form-input{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(168,132,74,.28);padding:.75rem 0;font-family:'EB Garamond',serif;font-size:1rem;color:var(--dark);outline:none;}
.form-input:focus{border-bottom-color:var(--gold);}
.form-radio,.form-check{display:flex;align-items:center;gap:.85rem;margin-bottom:.6rem;font-size:.96rem;color:var(--dark);cursor:pointer;}
.form-radio input,.form-check input{accent-color:var(--gold);}
.btn-submit{background:var(--dark);color:var(--white);border:none;padding:1.1rem;font-family:'Cinzel',serif;font-size:.52rem;font-weight:300;letter-spacing:.4em;text-transform:uppercase;cursor:pointer;width:100%;transition:background .3s;}
.btn-submit:hover{background:var(--sepia);}
.form-note{font-size:.82rem;color:var(--stone);text-align:center;line-height:1.8;}
.hidden{display:none!important;}
.success-box{text-align:center;padding:3.5rem;background:var(--white);border:1px solid rgba(168,132,74,.22);max-width:460px;margin:0 auto;}
.success-box h3{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-style:italic;color:var(--dark);margin-bottom:.7rem;}
.success-box p{font-size:.95rem;color:var(--stone);line-height:1.9;}

/* FOOTER */
footer{background:var(--dark);padding:5rem 2rem;text-align:center;}
.footer-names{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:300;font-style:italic;color:var(--white);margin-bottom:.4rem;}
.footer-date{font-family:'Cinzel',serif;font-size:.48rem;letter-spacing:.42em;color:var(--stone-lt);margin-bottom:2.5rem;}
.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:2.5rem;list-style:none;margin:2.5rem 0;}
.footer-links a{font-family:'Cinzel',serif;font-size:.46rem;letter-spacing:.3em;text-transform:uppercase;color:var(--stone-lt);text-decoration:none;transition:color .3s;}
.footer-links a:hover{color:var(--gold-lt);}
.footer-copy{font-family:'Cormorant Garamond',serif;font-size:.9rem;font-style:italic;color:var(--stone);}

/* SCROLL INDICATOR */
.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);text-align:center;}
.scroll-indicator span{font-family:'Cinzel',serif;font-size:.44rem;letter-spacing:.4em;color:var(--stone-lt);display:block;margin-bottom:.5rem;}
.scroll-line{width:1px;height:28px;background:linear-gradient(180deg,var(--gold),transparent);margin:0 auto;}

/* PAGES */
.page{display:none;}
.page.active{display:block;}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.fade{animation:fadeUp .8s ease both;}

@media(max-width:768px){
  nav{padding:1rem 1.5rem;}
  .nav-links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--dark);flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;z-index:99;}
  .nav-links.open{display:flex;}
  .nav-links a{color:var(--white);font-size:.72rem;}
  .nav-hamburger{display:flex;z-index:100;}
  .cards-grid{grid-template-columns:1fr;}
  .card-span2{grid-column:span 1;}
  .weekend-inner{flex-direction:column;gap:2rem;}
  .tl-item{grid-template-columns:58px 1px 1fr;}
}
