
:root{
--navy:#12344d;
--sand:#e8dfd1;
--light:#f7f5f1;
--coral:#e4572e;
--content-max:clamp(600px, calc(1800px - 50vw), 1200px);
}
.content-wrapper{position:relative}
.side-panel{
position:absolute;top:0;bottom:0;width:calc((100% - var(--content-max)) / 2);
background:url('side-panel.jpg') center/cover fixed no-repeat;
z-index:1;
}
.side-left{left:0}
.side-right{right:0}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:url('side-panel.jpg') center/cover no-repeat;
  opacity:.35;
  z-index:-1;
}
@media(max-width:1200px){
.side-panel{display:none}
}
*{box-sizing:border-box}
body{margin:0;font-family:Montserrat,sans-serif;color:#233;background:var(--light)}
nav{
position:fixed;top:0;width:100%;display:flex;justify-content:space-between;
padding:18px 40px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);z-index:10;
opacity:0;pointer-events:none;transition:opacity .3s ease;
}
nav.visible{opacity:1;pointer-events:auto}
.logo{font-weight:600}
.menu a{margin-left:20px;text-decoration:none;color:var(--navy)}
.hero{
position:relative;
width:100%;
aspect-ratio:16/9;
background:url('hero-desktop.jpg') center/cover no-repeat;
}
.hero-actions{
position:absolute;top:90%;left:53%;transform:translateX(-50%);text-align:center;
}
#countdown{font-size:1.4rem;margin:0;color:var(--navy);font-weight:600}
.btn{
display:inline-block;background:white;color:var(--navy);padding:14px 28px;
border-radius:40px;text-decoration:none;font-weight:600;
}
.btn-navy{background:var(--navy);color:white}
.section{padding:90px 10%;max-width:var(--content-max);margin:auto;text-align:center;background:rgba(247,245,241,.55)}
@media(min-width:1201px){
.section{padding:45px 10%}
}
.section-icon{display:block;margin:0 auto 15px;color:var(--coral)}
.justify{text-align:center}
h2{
font-family:"Cormorant Garamond",serif;
font-size:3rem;color:var(--navy);text-align:center;
}
.map-embed{
margin-top:20px;border-radius:12px;overflow:hidden;
box-shadow:0 10px 25px rgba(0,0,0,.08);
}
.map-embed iframe{display:block}
.gallery{
display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:15px;
}
.photo{
height:250px;background:var(--sand);display:flex;align-items:center;justify-content:center;
border-radius:12px;
}
.rsvp-hidden{display:none}
.rsvp-form{max-width:480px;margin:0 auto;text-align:center}
.question-text{font-family:"Cormorant Garamond",serif;font-size:1.6rem;color:var(--navy)}
.rsvp-options{display:flex;gap:15px;justify-content:center;margin-bottom:10px}
.rsvp-choice{
padding:12px 30px;border-radius:40px;border:2px solid var(--navy);
background:white;color:var(--navy);font-weight:600;cursor:pointer;
font-family:Montserrat,sans-serif;transition:.2s;
}
.rsvp-choice:hover{background:var(--sand)}
.rsvp-choice.active{background:var(--navy);color:white}
#no-message{
font-family:"Cormorant Garamond",serif;font-size:1.3rem;color:var(--navy);margin-top:15px;
}
#rsvp-thanks{
font-family:"Cormorant Garamond",serif;font-size:1.6rem;color:var(--navy);
}
#acompanantes-aviso{
color:var(--coral);font-size:.85rem;margin-top:6px;
}
#rest-of-form{margin-top:30px;text-align:center}
.field{margin-bottom:18px}
.field label{display:block;margin-bottom:6px;font-weight:600;font-size:.9rem;color:var(--navy)}
.field input,.field textarea,.field select{
width:100%;padding:10px 12px;border:1px solid #ccc;border-radius:8px;
font-family:Montserrat,sans-serif;font-size:1rem;
}
#rest-of-form .btn{
border:none;width:100%;margin-top:10px;cursor:pointer;background:var(--navy);color:white;
}
.timeline{
max-width:600px;margin:0 auto;position:relative;
}
.timeline::before{
content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;
background:var(--navy);transform:translateX(-50%);
}
.timeline-item{
display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;
column-gap:20px;margin-bottom:40px;position:relative;
}
.timeline-item:last-child{margin-bottom:0}
.timeline-item .time{
grid-column:1;text-align:right;font-weight:600;color:var(--navy);
font-family:"Cormorant Garamond",serif;font-size:1.8rem;
}
.timeline-item .dot{
grid-column:2;justify-self:center;width:12px;height:12px;
background:var(--navy);border-radius:50%;position:relative;z-index:1;
}
.timeline-content{grid-column:3;text-align:left}
.timeline-content h3{margin:0;font-size:1.1rem;font-weight:600}
.cards{
display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;
}
.card{
background:white;padding:25px;border-radius:15px;
box-shadow:0 10px 25px rgba(0,0,0,.08);
}
details{
background:white;padding:15px;margin:10px 0;border-radius:10px;
}
footer{
background:var(--navy);color:white;text-align:center;padding:30px;
}
.footer-contact{margin:10px 0 0;font-size:.9rem;opacity:.85}
.footer-contact a{color:white;text-decoration:underline}
@media(max-width:768px){
nav{padding:15px}
.menu{display:none}
.section{padding:45px 8%}
.hero{
aspect-ratio:1020/1980;
background:url('hero-mobile.jpg') center/cover no-repeat;
}
.hero-actions{top:77%;left:48%}
#countdown{font-size:.9rem;margin:0;white-space:nowrap}
.hero-actions .btn{padding:8px 16px;font-size:.85rem}
}
