:root{--cream:#f5f0e7;--paper:#fffdf8;--ink:#30352b;--green:#59634a;--sage:#a8ad94;--gold:#b78d42;--serif:"Cormorant Garamond",Georgia,serif;--sans:Montserrat,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.8}img{display:block;width:100%}a{color:inherit}.section{padding:110px max(6vw,24px)}.eyebrow{margin:0 0 12px;color:var(--gold);font-size:.72rem;font-weight:600;letter-spacing:.23em;text-transform:uppercase}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05}h2{margin:0 0 22px;font-size:clamp(2.5rem,5vw,4.4rem)}h3{font-size:2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:11px 23px;border:1px solid var(--green);background:var(--green);color:#fff;font:600 .7rem var(--sans);letter-spacing:.1em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:.25s}.button:hover{background:#404936;transform:translateY(-2px)}.hero{position:relative;min-height:100svh;background:url('assets/invitacion.png') 67% center/cover no-repeat;color:#fff}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,31,23,.64),rgba(27,31,23,.08) 75%),linear-gradient(0deg,rgba(20,25,17,.32),transparent 50%)}.nav{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:24px 5vw;border-bottom:1px solid rgba(255,255,255,.25)}.monogram{font:500 2rem var(--serif);letter-spacing:.08em;text-decoration:none}.monogram span{color:#d4b56e;font-style:italic}.menu{display:flex;gap:32px}.menu a{font-size:.68rem;letter-spacing:.13em;text-decoration:none;text-transform:uppercase}.menu-toggle{display:none;border:0;background:transparent;color:white;text-transform:uppercase}.hero-copy{position:absolute;z-index:2;top:50%;left:8vw;max-width:740px;transform:translateY(-44%)}.hero-copy h1{margin:0 0 12px;font-size:clamp(4rem,9vw,8.5rem);text-shadow:0 2px 20px rgba(0,0,0,.18)}.hero-copy h1 i{color:#ddc37f;font-weight:400}.hero-copy .date{margin-bottom:30px;letter-spacing:.34em}.button-light{border-color:#fff;background:rgba(255,255,255,.08);backdrop-filter:blur(4px)}.scroll{position:absolute;z-index:2;bottom:28px;left:50%;width:25px;height:42px;border:1px solid #fff;border-radius:20px}.scroll span{position:absolute;top:9px;left:10px;width:3px;height:8px;border-radius:2px;background:#fff;animation:scroll 1.6s infinite}@keyframes scroll{to{transform:translateY(13px);opacity:0}}.welcome{text-align:center;background:var(--cream)}.leaf{color:var(--sage);font:3rem var(--serif)}.lead{max-width:720px;margin:0 auto;font-family:var(--serif);font-size:1.35rem}.countdown{display:flex;justify-content:center;gap:clamp(22px,6vw,80px);margin-top:60px}.countdown div{min-width:60px}.countdown strong{display:block;font:500 clamp(2.5rem,5vw,4rem) var(--serif);color:var(--green)}.countdown span{font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}.story{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,.8fr);gap:8vw;align-items:center}.story-photo{position:relative}.story-photo:before{content:"";position:absolute;inset:25px -25px -25px 25px;border:1px solid var(--gold);z-index:-1}.story-photo img{aspect-ratio:4/3;object-fit:cover}.story-copy p:not(.eyebrow):not(.signature){max-width:530px}.signature{color:var(--gold);font:italic 2rem var(--serif)}.day{text-align:center;background:#59634a;color:white}.day h2{color:white}.big-date{font:italic 1.4rem var(--serif)}.timeline{display:grid;grid-template-columns:1fr 80px 1fr;max-width:900px;margin:55px auto 0;align-items:center}.event-card{padding:45px 20px;border:1px solid rgba(255,255,255,.35)}.event-card h3{margin:8px}.event-card p{margin:4px}.event-card .time{color:#e1c98e;font:1.35rem var(--serif)}.icon{font-size:2rem;color:#e1c98e}.text-link{display:inline-block;margin-top:18px;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase}.rings{color:#e1c98e;font:2rem var(--serif);letter-spacing:-.35em}.wide-photo{min-height:70vh;background:url('assets/foto-secundaria1.jpg') center 28%/cover no-repeat;background-attachment:fixed}.locations{text-align:center}.location-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1180px;margin:50px auto 0}.location-card{position:relative;padding:50px 30px;border:1px solid #d9d7ce}.location-card+.location-card{border-left:0}.location-card.featured{background:var(--cream)}.number{color:var(--gold);font:italic 1.2rem var(--serif)}.location-card h3{margin:20px 0 10px}.muted{min-height:58px;color:#777c70}.rsvp{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;background:#e9e7dd}.rsvp-copy{padding-top:20px}.rsvp-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:40px;background:var(--paper);box-shadow:0 14px 45px rgba(43,47,38,.08)}label{display:flex;flex-direction:column;gap:6px;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}label:nth-of-type(3),label:nth-of-type(4),.check,.whatsapp,.form-note{grid-column:1/-1}input,select,textarea{width:100%;border:0;border-bottom:1px solid #b7b9ad;background:transparent;padding:12px 4px;color:var(--ink);font:400 1rem var(--serif);resize:vertical}.check{flex-direction:row;align-items:center;text-transform:none;letter-spacing:0}.check input{width:auto}.whatsapp{background:#557b62;border-color:#557b62}.form-note{text-align:center;color:#777;font-size:.65rem}.gift{background:var(--cream);text-align:center}.gift-inner{max-width:720px;margin:auto;padding:55px;border:1px solid #cfc7b5}.gift-icon{color:var(--gold);font-size:2rem}.gallery{display:grid;grid-template-columns:.7fr 1.3fr;gap:14px;padding-bottom:14px}.gallery img{height:70vh;object-fit:cover}.gallery img:first-child{object-position:center 55%}footer{padding:65px 24px;background:#30352b;color:#f7f1e6;text-align:center}footer p{margin:5px}footer a{display:inline-block;margin-top:18px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(22px);transition:.75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:780px){.section{padding:75px 22px}.hero{background-image:url('assets/foto-secundaria2.jpg');background-position:57% center}.hero-copy{left:24px;right:24px}.hero-copy h1{font-size:clamp(3.8rem,17vw,6rem)}.menu-toggle{display:block}.menu{display:none;position:absolute;top:82px;left:16px;right:16px;flex-direction:column;gap:0;background:rgba(42,48,36,.97);padding:15px}.menu.open{display:flex}.menu a{padding:13px}.story,.rsvp{grid-template-columns:1fr}.story{gap:60px}.timeline{grid-template-columns:1fr;gap:18px}.rings{transform:rotate(90deg)}.wide-photo{min-height:55vh;background-attachment:scroll}.location-grid{grid-template-columns:1fr}.location-card+.location-card{border-left:1px solid #d9d7ce;border-top:0}.rsvp-form{grid-template-columns:1fr;padding:28px 20px}.rsvp-form label{grid-column:1}.countdown{gap:12px}.gallery{grid-template-columns:1fr}.gallery img{height:55vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll span{animation:none}}
.location-card.venue-card{padding:0}.venue-photo{width:100%;height:210px;object-fit:cover}.location-content{padding:31px 24px 40px}
.hero{background-image:url('assets/portada-jardin.jpg');background-position:center 48%}.hero-shade{background:linear-gradient(90deg,rgba(27,31,23,.70),rgba(27,31,23,.12) 72%),linear-gradient(0deg,rgba(20,25,17,.36),transparent 55%)}.gallery{grid-template-columns:.7fr 1fr 1.3fr}.gallery img:nth-child(2){object-position:center}
@media(max-width:780px){.hero{background-image:url('assets/portada-jardin.jpg');background-position:52% center}.gallery{grid-template-columns:1fr}}
.hero{background-image:url('assets/portada-tarimoro-novios.png');background-position:center center}.hero-shade{background:linear-gradient(90deg,rgba(27,31,23,.60),rgba(27,31,23,.05) 64%),linear-gradient(0deg,rgba(20,25,17,.28),transparent 55%)}
@media(max-width:780px){.hero{background-image:url('assets/portada-tarimoro-novios.png');background-position:62% center}.hero-copy{max-width:88%}.hero-shade{background:linear-gradient(90deg,rgba(27,31,23,.72),rgba(27,31,23,.12) 78%),linear-gradient(0deg,rgba(20,25,17,.35),transparent 55%)}}
.nav{position:fixed;background:rgba(38,44,33,.88);box-shadow:0 5px 24px rgba(0,0,0,.14);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.menu a{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);font-weight:600}.location-card.place-card{padding:0}.place-card .venue-photo{height:210px}.card-actions{display:flex;flex-direction:column;gap:10px}.card-actions .button{width:100%}
.postwedding{text-align:center;background:var(--cream)}.carousel{position:relative;max-width:1100px;height:min(68vw,680px);min-height:360px;margin:45px auto 0;overflow:hidden;background:#20251d}.carousel-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .7s}.carousel-slide.active{opacity:1}.carousel-slide img{width:100%;height:100%;object-fit:contain}.carousel-button{position:absolute;z-index:2;top:50%;width:48px;height:48px;border:1px solid #fff8;border-radius:50%;background:#20251dcc;color:white;font-size:2rem;cursor:pointer;transform:translateY(-50%)}.carousel-button.prev{left:18px}.carousel-button.next{right:18px}.admin-lock{display:block;width:38px;margin:24px auto 0;padding:7px;border:1px solid #ffffff44;border-radius:50%;text-decoration:none;filter:grayscale(1);opacity:.7}.admin-lock:hover{opacity:1;filter:none}button:disabled{cursor:wait;opacity:.7}
img{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}.gallery img,.story-photo img,.venue-photo,.carousel-slide img{pointer-events:none}.gallery,.story-photo,.location-card,.carousel{user-select:none;-webkit-user-select:none}
