@import url('https://fonts.googleapis.com/css2?family=Allura&family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500;6..96,600&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400;1,500&family=Montserrat:wght@300;400;500;600&display=swap');

:root{
  --verde-oliva:#687052;
  --verde-oscuro:#3f4632;
  --verde-suave:#899176;
  --crema:#f7f4ec;
  --crema-oscuro:#ebe6d8;
  --dorado:#b59b62;
  --dorado-claro:#d1bd8b;
  --blanco:#fff;
  --negro:#20231c;
  --gris:#666;
  --sombra:rgba(0,0,0,.12);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Montserrat',sans-serif;color:var(--negro);background:var(--crema);line-height:1.6;overflow-x:hidden;min-width:320px}
body.no-scroll{overflow:hidden}
img,video{max-width:100%;display:block}
img{height:auto}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}

/* INTRO */
#videoIntro{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:#111;z-index:99999;display:flex;align-items:center;justify-content:center;opacity:1;visibility:visible;transition:opacity 1.2s ease,visibility 1.2s ease;overflow:hidden}
/* Mantiene la proporción original del video en pantallas grandes. */
#introVideo{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
#videoIntro.oculto{opacity:0;visibility:hidden;pointer-events:none}
.start-experience{position:absolute;right:0;bottom:0;left:0;z-index:2;min-height:104px;border:0;background:rgba(246,241,233,.94);color:#4a4038;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:clamp(16px,1.5vw,22px);font-weight:500;letter-spacing:clamp(3px,.45vw,7px);text-align:center;transition:opacity .65s ease,visibility .65s ease}.start-experience:hover{background:#f7f3ed}.start-experience.is-open{opacity:0;visibility:hidden;pointer-events:none}
.music-toggle{position:fixed;left:26px;bottom:26px;z-index:1000;width:52px;height:52px;border:0;border-radius:50%;background:rgba(255,255,255,.95);color:var(--verde-oliva);box-shadow:0 6px 22px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;transition:transform .25s ease,background .25s ease}
.music-toggle:hover{transform:scale(1.06);background:#fff}.music-toggle span:first-child{font-size:20px}.music-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* SITE */
#site{width:100%;max-width:100%;overflow:hidden}
.section{position:relative;width:100%;padding:96px 6%;overflow:hidden}
.section-inner{width:100%;max-width:1180px;margin:0 auto}
.section h2{font-family:'Cormorant Garamond',serif;font-size:clamp(42px,5vw,68px);font-weight:500;line-height:1.05;color:var(--verde-oscuro);text-align:center;margin-bottom:24px}
.eyebrow{text-align:center;color:var(--dorado);font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;margin-bottom:12px}
.section-text{max-width:720px;margin:0 auto;text-align:center;color:var(--gris);font-size:14px;line-height:1.9}
.ornament{text-align:center;color:var(--dorado);font-size:20px;margin:8px 0 22px}

/* NAV */
.nav{position:absolute;top:0;left:0;width:100%;padding:24px clamp(20px,6vw,80px);display:flex;align-items:center;justify-content:space-between;z-index:10;color:var(--blanco);background:linear-gradient(to bottom,rgba(0,0,0,.45),transparent);min-height:76px}
.brand{font-family:'Cormorant Garamond',serif;font-size:31px;line-height:1;letter-spacing:2px;white-space:nowrap;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.brand span{color:#D4DE95;margin:0 3px}
.nav-links{display:flex;align-items:center;gap:28px;margin-left:auto}
.nav-links a{font-size:11px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;transition:opacity .25s ease}
.nav-links a:hover{opacity:.65}
.nav-confirm{border:1px solid rgba(255,255,255,.65);padding:10px 15px}
.mobile-menu{display:none;border:0;background:transparent;color:#fff;font-size:28px;line-height:1;padding:6px}

/* HERO */
.hero{position:relative;width:100%;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background-image:linear-gradient(rgba(0,0,0,.20),rgba(0,0,0,.42)),url('../images/banner-boda.jpeg');background-size:cover;background-position:center;background-repeat:no-repeat;padding:100px 20px 70px;overflow:hidden}
.hero-content{position:relative;z-index:2;width:min(100%,1000px);margin:0 auto;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.hero-verse{font-size:clamp(9px,1.1vw,13px);font-weight:500;letter-spacing:clamp(2px, .45vw, 5px);margin-bottom:20px}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(58px,9.5vw,124px);font-weight:500;letter-spacing:normal;line-height:.86;margin-bottom:25px;overflow-wrap:anywhere}
.hero h1 i{display:inline;font-family:inherit;font-size:inherit;font-style:normal;color:#D4DE95;font-weight:400;line-height:inherit;margin:0}
.hero-date{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,2.1vw,28px);letter-spacing:clamp(2px,.35vw,4px);margin-bottom:14px}
.hero-place{display:block;font-size:clamp(9px,1vw,12px);font-weight:normal;letter-spacing:clamp(1.5px,.3vw,3px);line-height:normal;text-transform:uppercase;max-width:600px;margin:0 auto}
.hero-hashtag{color:#D4DE95;font-size:13px;letter-spacing:2px;margin-top:24px}
.hero-confirm{display:inline-flex;align-items:center;justify-content:center;margin-top:28px;padding:13px 22px;border:1px solid rgba(255,255,255,.75);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;transition:background .25s,color .25s}.hero-confirm:hover{background:#fff;color:var(--verde-oscuro)}

/* PORTADA Y CONTADOR */
.hero-place{width:max-content;max-width:calc(100% - 20px);padding:9px 15px;border-radius:3px;background:rgba(212,222,149,.88);color:#35402c;font-weight:600;text-shadow:none}
.welcome .countdown-item span{font-family:'Allura',cursive;font-style:normal;font-variant-numeric:lining-nums;font-size:clamp(84px,10vw,160px);font-weight:400;letter-spacing:-.02em;line-height:.78}

/* WELCOME / COUNTDOWN */
.welcome{min-height:730px;padding:185px 6% 165px;background-image:linear-gradient(rgba(248,244,238,.80),rgba(248,244,238,.80)),url('../images/Manos.jpeg');background-size:cover;background-position:center;color:#302720}
.welcome .section-inner{position:relative;z-index:1;max-width:1320px}.welcome h2{font-family:'Cormorant Garamond',serif;font-size:clamp(42px,4.25vw,70px);font-style:italic;font-weight:400;line-height:1;color:#302720;margin-bottom:0}.welcome .eyebrow{color:#695b50;font-size:11px;font-weight:500;letter-spacing:5px;margin-bottom:18px}.welcome .ornament,.welcome .section-text{display:none}.welcome .countdown{width:100%;max-width:1240px;margin:90px auto 0;border:0}.welcome .countdown-item{position:relative;padding:0 22px;border:0}.welcome .countdown-item:not(:last-child)::after{content:'·';position:absolute;right:-10px;top:13px;color:#82776e;font-family:'Cormorant Garamond',serif;font-size:clamp(56px,6vw,90px);font-weight:400;line-height:1}.welcome .countdown-item span{font-family:'Allura',cursive;font-variant-numeric:lining-nums;font-size:clamp(84px,10vw,160px);font-weight:400;letter-spacing:-.02em;line-height:.78;color:#241e1a}.welcome .countdown-item small{margin-top:20px;font-size:10px;font-weight:500;letter-spacing:4px;color:#695b50}
.countdown{width:min(100%,820px);margin:48px auto 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--crema-oscuro);border-bottom:1px solid var(--crema-oscuro)}
.countdown-item{min-width:0;padding:22px 12px;text-align:center;border-right:1px solid var(--crema-oscuro)}
.countdown-item:last-child{border-right:0}
.countdown-item span{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(40px,5vw,58px);font-weight:500;line-height:1;color:var(--verde-oscuro)}
.countdown-item small{display:block;margin-top:8px;font-size:10px;letter-spacing:2px;color:var(--gris)}

/* LOCATION */
.location{background:#fff}
.location-grid{width:100%;max-width:1100px;margin:45px auto 0;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(35px,6vw,70px);align-items:center}
.location-image{width:100%;overflow:hidden;box-shadow:0 15px 40px var(--sombra)}
.location-image img{width:100%;height:clamp(330px,42vw,540px);object-fit:cover;object-position:center}
.location-info{min-width:0;padding:10px}
.location-city{font-size:11px;letter-spacing:3px;color:var(--dorado);font-weight:600;margin-bottom:10px}
.location-info h3{font-family:'Cormorant Garamond',serif;font-size:clamp(40px,4vw,58px);font-weight:500;line-height:1;color:var(--verde-oscuro);margin-bottom:18px}
.location-info p:not(.location-city){font-size:14px;color:var(--gris);margin-bottom:25px;max-width:430px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 25px;border:1px solid var(--verde-oliva);background:var(--verde-oliva);color:#fff;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;transition:background .25s,color .25s,border-color .25s}
.button:hover{background:transparent;color:var(--verde-oliva)}

/* LUGAR */
.location{background:#f8f5ee;padding-top:100px;padding-bottom:110px}.location .section-inner{max-width:680px}.location .eyebrow{color:#776f5b;font-size:10px;font-weight:500;letter-spacing:4px}.location h2{font-family:'Cormorant Garamond',serif;font-size:clamp(50px,7vw,78px);font-weight:500;color:#687052;margin-bottom:42px}.location-grid{max-width:100%;margin:0;display:grid;grid-template-columns:1fr;gap:0}.location-image{border-radius:20px;box-shadow:0 18px 34px rgba(67,58,44,.13)}.location-image img{height:clamp(360px,66vw,600px);border-radius:20px;object-position:center}.location-info{padding:42px 8px 0}.location-city{display:table;margin:0 0 36px;padding:9px 14px;border-radius:8px;background:#e8e5d7;color:#62674e;font-size:clamp(10px,1.6vw,13px);font-weight:600;letter-spacing:1.4px}.location-city::before{content:'●';margin-right:9px;color:#778060;font-size:14px}.location-info p:not(.location-city){max-width:100%;margin-bottom:34px;font-family:'Cormorant Garamond',serif;font-size:clamp(23px,3.2vw,33px);line-height:1.3;color:#35342e}.location-info .button{width:100%;min-height:67px;border-radius:999px;background:#727951;border-color:#727951;font-size:14px;font-weight:600;letter-spacing:1.2px}.location-info .button::after{content:'⌑';margin-left:16px;font-size:25px;font-weight:400;line-height:0}.location-info .button:hover{background:transparent;color:#727951}

/* RSVP / INFORMACIÓN DEL EVENTO */
.rsvp{background-color:#efe9df;background-image:linear-gradient(rgba(247,243,236,.89),rgba(247,243,236,.92)),url('../images/Manos.jpeg');background-size:cover;background-position:center;background-attachment:fixed;color:#2e2722;padding-top:86px;padding-bottom:110px}
.rsvp .section-inner{max-width:1060px}.love-verse-art{display:block;width:min(100%,980px);height:auto;margin:0 auto 28px}.event-date{max-width:940px;margin:0 auto;padding:42px 30px;text-align:center;background:rgba(255,253,249,.69);box-shadow:0 14px 38px rgba(75,55,38,.08);border:1px solid rgba(107,83,60,.16)}.rsvp .eyebrow{color:#716257;font-size:10px;font-weight:500;letter-spacing:4px}.event-date h2{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(34px,4.3vw,66px);font-weight:500;line-height:1;color:#241f1b;margin:12px 0}.event-date>p:last-child{font-family:'Cormorant Garamond',serif;font-size:16px;color:#796a5d}.event-place{max-width:940px;margin:20px auto 0;padding:58px clamp(26px,6vw,74px);text-align:center;background:rgba(255,253,249,.66);box-shadow:0 14px 38px rgba(75,55,38,.08);border:1px solid rgba(107,83,60,.16)}.place-number{font-family:'Cormorant Garamond',serif;font-size:15px;letter-spacing:3px;color:#746457}.event-place h3,.rsvp-confirmation h3{font-family:'Cormorant Garamond',serif;font-size:clamp(37px,4vw,58px);font-weight:500;line-height:1.1;color:#241f1b;margin:12px 0 46px}.place-details{max-width:800px;margin:0 auto;text-align:left}.place-details .eyebrow{margin-bottom:8px;text-align:left}.place-details h4{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,3.4vw,45px);font-weight:500;line-height:1;color:#241f1b;margin-bottom:12px}.place-details>p{font-family:'Cormorant Garamond',serif;font-size:15px;color:#67594f}.maps-link{display:inline-flex;gap:12px;margin-top:24px;font-size:11px;font-weight:500;letter-spacing:3px;color:#413830}.maps-link span{font-size:18px;line-height:.6}.rsvp-confirmation{max-width:940px;margin:20px auto 0;padding:62px clamp(26px,6vw,74px);background:rgba(255,253,249,.72);box-shadow:0 14px 38px rgba(75,55,38,.08);border:1px solid rgba(107,83,60,.16);text-align:center}.rsvp-confirmation h3{margin-bottom:0}.rsvp-form{width:min(100%,700px);margin:40px auto 0;display:grid;gap:18px;text-align:left}.form-group{display:flex;flex-direction:column;gap:7px;min-width:0}.form-group label{font-size:11px;letter-spacing:1.5px;text-transform:uppercase}.form-group input,.form-group textarea,.form-group select{width:100%;min-width:0;padding:14px 16px;border:1px solid rgba(65,56,48,.35);border-radius:0;background:rgba(255,255,255,.72);color:#2e2722;outline:none;font-size:13px}.form-group select option{color:#222;background:#fff}.form-group input::placeholder,.form-group textarea::placeholder{color:rgba(68,55,45,.58)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--dorado)}
.form-group textarea{min-height:120px;resize:vertical}
.button-submit{width:100%;border-color:#55483d;background:#55483d;margin-top:6px}.button-submit:hover{background:transparent;color:#55483d}

/* FECHA Y CONFIRMACIÓN */
.event-date{padding:42px 30px;background:transparent;box-shadow:none;border:0}
.event-date h2{font-family:'Allura','Cormorant Garamond',cursive;font-size:clamp(58px,7vw,108px);font-weight:400;line-height:.82;letter-spacing:0;color:#2d211d;margin:20px 0 18px}
.event-date::before{content:'';display:block;width:min(100%,460px);height:1px;margin:0 auto 26px;background:linear-gradient(90deg,transparent,rgba(104,82,58,.38),transparent)}
.event-date::after{content:'';display:block;width:min(100%,460px);height:1px;margin:26px auto 0;background:linear-gradient(90deg,transparent,rgba(104,82,58,.38),transparent)}
.rsvp-confirmation{max-width:760px;margin:34px auto 0;padding:75px 30px;background:rgba(248,251,249,.9);box-shadow:none;border:0;text-align:center}
.rsvp-confirmation .eyebrow{color:#bd9650;font-weight:600}
.rsvp-confirmation h3{font-family:'Cormorant Garamond',serif;font-size:clamp(38px,4vw,58px);color:#658c7e;margin:12px 0 10px}
.rsvp-heart{display:flex;align-items:center;justify-content:center;gap:15px;margin:17px auto 26px;color:#c69b50;font-size:16px}.rsvp-heart::before,.rsvp-heart::after{content:'';width:58px;height:1px;background:#d9c6a0}
.rsvp-confirmation>p:not(.eyebrow){max-width:500px;margin:0 auto 20px;font-size:14px;line-height:1.65;color:#67746f}
.rsvp-confirmation>strong{display:block;margin-bottom:32px;font-size:12px;letter-spacing:1.5px;color:#bc924c}
.rsvp-link{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:14px 28px;border-radius:13px;background:#e3ece8;color:#628b7e;font-size:13px;font-weight:600;transition:transform .2s ease,background .2s ease}.rsvp-link:hover{transform:translateY(-2px);background:#d6e4de}

/* PÁGINA DE CONFIRMACIÓN */
.confirmation-page{min-height:100vh;background:#f2eee6 url('../images/Manos.jpeg') center/cover fixed no-repeat}.confirmation-shell{min-height:100vh;padding:34px 20px 70px;background:linear-gradient(rgba(247,244,238,.91),rgba(247,244,238,.93))}.back-link{display:block;width:max-content;max-width:100%;margin:0 auto 24px;color:#60796f;font-size:10px;font-weight:600;letter-spacing:2px}.confirmation-card{width:min(100%,720px);margin:0 auto;padding:clamp(40px,7vw,78px);background:rgba(255,253,249,.88);box-shadow:0 18px 60px rgba(59,45,33,.14);text-align:center}.confirmation-card h1{font-family:'Cormorant Garamond',serif;font-size:clamp(43px,6vw,68px);font-weight:500;line-height:1;color:#658c7e;margin:14px 0}.confirmation-heart{display:flex;align-items:center;justify-content:center;gap:14px;color:#c69b50;font-size:15px;margin:23px 0}.confirmation-heart::before,.confirmation-heart::after{content:'';width:58px;height:1px;background:#d9c6a0}.confirmation-intro{max-width:460px;margin:0 auto;color:#65736d;font-size:14px;line-height:1.7}.email-rsvp-form{margin-top:36px}.email-rsvp-form .form-group label{color:#62564c}.email-rsvp-form .form-group input,.email-rsvp-form .form-group textarea,.email-rsvp-form .form-group select{background:rgba(255,255,255,.8)}.confirmation-note{margin-top:25px;color:#8a7d70;font-family:'Cormorant Garamond',serif;font-size:16px}.honeypot{display:none!important}

/* FORMULARIOS DE INVITADOS */
.confirmation-page{background-color:#edf3ef;background-image:linear-gradient(rgba(239,247,242,.88),rgba(239,247,242,.93)),url('../images/Manos.jpeg')}.confirmation-shell{background:radial-gradient(circle at 10% 5%,rgba(212,222,149,.3),transparent 30%),linear-gradient(rgba(247,250,248,.78),rgba(247,250,248,.85))}.confirmation-card{position:relative;overflow:hidden;border-radius:26px;background:rgba(255,255,255,.78);box-shadow:0 20px 60px rgba(57,85,71,.16)}.confirmation-card::before{content:'';position:absolute;inset:0 0 auto;height:8px;background:linear-gradient(90deg,#d4de95,#668c7e,#d4de95)}.confirmation-card h1{color:#527b6d}.email-rsvp-form .form-group input,.email-rsvp-form .form-group textarea,.email-rsvp-form .form-group select{border:1px solid #cddbd4;border-radius:10px;background:#fbfdfc}.email-rsvp-form .form-group input:focus,.email-rsvp-form .form-group textarea:focus,.email-rsvp-form .form-group select:focus{border-color:#668c7e;box-shadow:0 0 0 3px rgba(102,140,126,.13)}.email-rsvp-form .button-submit{border-radius:12px;background:#668c7e;border-color:#668c7e}.email-rsvp-form .button-submit:hover{color:#668c7e;background:transparent}.form-page .confirmation-intro{margin-bottom:8px}.form-page .confirmation-card h1{font-family:'Allura','Cormorant Garamond',cursive;font-size:clamp(55px,7vw,86px);font-weight:400}.success-message{max-width:520px;margin:0 auto;color:#567466;font-family:'Cormorant Garamond',serif;font-size:clamp(25px,3vw,34px);line-height:1.25}.success-message strong{color:#bf9652}.form-select-note{font-size:12px;color:#76867f;margin-top:10px}

/* STORY */
.story{min-height:850px;padding-top:clamp(320px,29vw,500px);background-color:#f5f0e6;background-image:url('../images/fondo-floral-sin-texto-v2.png');background-size:100% auto;background-position:top center;background-repeat:no-repeat}
.story .section-inner{max-width:1100px}.story .eyebrow{color:#766356;font-size:10px;font-weight:500;letter-spacing:4px}.story h2{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(43px,5vw,68px);font-weight:500;color:#251f1b;margin-bottom:12px}.story-grid{width:100%;max-width:1020px;margin:52px auto 0;display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(30px,5vw,64px);align-items:center}.story-image{width:100%;padding:10px;background:rgba(255,255,255,.48);box-shadow:0 16px 42px rgba(61,46,32,.15);overflow:hidden}.story-image img{width:100%;height:clamp(350px,43vw,560px);object-fit:cover;filter:saturate(.88) sepia(.08)}.story-content{min-width:0;padding:clamp(25px,4vw,52px);background:rgba(255,253,248,.68);border-top:1px solid rgba(99,77,57,.22);border-bottom:1px solid rgba(99,77,57,.22)}.story-content p{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,2vw,23px);font-weight:400;line-height:1.42;color:#4e4138;margin-bottom:22px}.story-signature{font-family:'Cormorant Garamond',serif!important;font-size:clamp(31px,3.5vw,44px)!important;font-style:italic;color:#4b2f2f!important;line-height:1!important;margin-top:34px!important}

/* GALLERY */
.gallery{background:#fff}
.gallery-grid{width:100%;max-width:1200px;margin:45px auto 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gallery-item{width:100%;aspect-ratio:1/1;overflow:hidden}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .3s ease}
.gallery-item:hover img{transform:scale(1.06);filter:brightness(.9)}

/* DETAILS */
.details{background:var(--crema)}
.details-grid{width:100%;max-width:1100px;margin:45px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.detail-card{min-width:0;text-align:center;padding:42px 25px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.06);transition:transform .25s ease}
.detail-card:hover{transform:translateY(-5px)}
.detail-icon{font-size:28px;color:var(--dorado);margin-bottom:18px}
.detail-card h3{font-family:'Cormorant Garamond',serif;font-size:31px;font-weight:500;color:var(--verde-oscuro);margin-bottom:12px}
.detail-card p{font-size:13px;color:var(--gris);line-height:1.8}

/* SEATING */
.seating{background:#fff}
.seating-search{width:min(100%,650px);margin:35px auto 0;display:flex;min-width:0}
.seating-search input{flex:1;min-width:0;padding:14px 17px;border:1px solid var(--crema-oscuro);outline:none;font-size:13px;background:#fff}
.seating-search input:focus{border-color:var(--verde-oliva)}
.seating-search .button{flex:0 0 auto}
.guest-result{min-height:32px;margin:22px auto 0;text-align:center;font-size:14px;color:var(--gris);overflow-wrap:anywhere}
.seating-plan{width:100%;max-width:1000px;margin:45px auto 0;display:block}
.seating-plan>h3{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:500;text-align:center;color:var(--verde-oscuro);margin-bottom:22px}
.tables-container{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.table{min-width:0;min-height:150px;padding:24px;background:var(--crema);border:1px solid var(--crema-oscuro);text-align:center;box-shadow:0 8px 25px rgba(0,0,0,.05)}
.table h3{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:500;color:var(--verde-oscuro);margin-bottom:12px}
.table ul{list-style:none;font-size:12px;color:var(--gris)}
.table li{margin-bottom:5px}

/* FAQ */
.faq{background:var(--crema)}
.faq-list{width:min(100%,850px);margin:40px auto 0}
.faq-item{border-bottom:1px solid var(--crema-oscuro);padding:0}
.faq-item summary{list-style:none;cursor:pointer;padding:22px 4px;font-family:'Cormorant Garamond',serif;font-size:clamp(21px,2.4vw,27px);color:var(--verde-oscuro);display:flex;align-items:center;justify-content:space-between;gap:20px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-family:Montserrat,sans-serif;font-size:20px;color:var(--dorado);flex:0 0 auto}
.faq-item[open] summary::after{content:'−'}
.faq-item>p{padding:0 4px 22px;font-size:13px;color:var(--gris);line-height:1.8}

/* ADMIN */
.admin{background:#efede5}
.admin-login{width:min(100%,600px);margin:35px auto 0;background:#fff;padding:32px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
#adminForm{display:grid;gap:18px}
.admin-panel{width:100%;margin:30px auto 0;background:#fff;padding:25px;display:none;overflow:hidden}
.admin-panel h3{font-family:'Cormorant Garamond',serif;font-size:32px;color:var(--verde-oscuro);margin-bottom:8px}
.admin-panel table{min-width:600px}

/* FINAL */
.final-message{background:var(--verde-oliva);color:#fff;text-align:center}
.final-message h2{color:#fff;max-width:800px;margin:0 auto 22px}
.final-message> .section-inner>p:not(.final-names):not(.final-hashtag):not(.eyebrow){max-width:650px;margin:0 auto;color:rgba(255,255,255,.82);font-size:14px}
.final-names{font-family:'Cormorant Garamond',serif;font-size:34px;margin-top:28px}
.final-hashtag{font-size:12px;letter-spacing:2px;color:var(--dorado-claro);margin-top:10px}
.final-invitation-video{display:block;width:min(100%,560px);margin:28px auto 30px;border:1px solid rgba(255,255,255,.36);box-shadow:0 14px 34px rgba(0,0,0,.2);background:#1e2418}
.success-invitation-video{display:block;width:100%;margin:28px auto;border:1px solid rgba(94,84,67,.2);box-shadow:0 12px 30px rgba(66,56,43,.12);background:#2c3223}

/* Texto ampliado de vestuario */
.dress-code-copy{font-size:13px;color:var(--gris);line-height:1.7}.dress-code-copy p{margin:0 0 14px}.dress-code-copy strong{color:var(--verde-oscuro)}.dress-code-copy em{font-style:normal;color:#756957}.dress-links a{color:var(--verde-oscuro);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* FOOTER */
.footer{padding:28px 6%;background:#303528;color:#fff;text-align:center}
.footer-inner{max-width:900px;margin:0 auto}
.footer-brand{font-family:'Cormorant Garamond',serif;font-size:38px;line-height:1;margin-bottom:10px}
.footer-brand span{color:var(--dorado-claro)}
.footer-inner p{font-size:11px;color:rgba(255,255,255,.75);margin-top:5px}

/* TOAST */
.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);z-index:100000;width:min(calc(100% - 30px),380px);padding:15px 20px;background:var(--verde-oscuro);color:#fff;font-size:13px;text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.2);opacity:0;visibility:hidden;transition:opacity .3s ease,transform .3s ease,visibility .3s ease}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}

/* TABLET */
@media (max-width:900px){
  .section{padding:82px 5%}
  .nav{padding:20px 5%}
  .nav-links{gap:16px}
  .nav-links a{font-size:10px;letter-spacing:1.2px}
  .location-grid,.story-grid{gap:35px}
  .tables-container{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .details-grid{gap:16px}
}

/* MOBILE */
@media (max-width:650px){
  .section{padding:68px 20px}
  .section-inner{max-width:100%}
  .eyebrow{font-size:9px;letter-spacing:2.5px;margin-bottom:10px}
  .section h2{font-size:clamp(38px,11vw,50px);line-height:1.05;margin-bottom:18px}
  .section-text{font-size:13px;line-height:1.8}

  .nav{padding:16px 18px;min-height:65px}
  .brand{font-size:27px}
  .nav-links{position:absolute;top:65px;left:0;width:100%;display:none;flex-direction:column;align-items:stretch;gap:0;padding:8px 18px 18px;background:rgba(63,70,50,.98);box-shadow:0 10px 25px rgba(0,0,0,.18)}
  .nav-links.open{display:flex}
  .nav-links a{width:100%;padding:13px 8px;font-size:11px;text-align:center}
  .nav-confirm{border:1px solid rgba(255,255,255,.4);margin-top:5px}
  .mobile-menu{display:block}

  .hero{min-height:100svh;padding:88px 18px 60px;background-position:center center}
  .hero-content{width:100%}
  .hero-verse{font-size:9px;letter-spacing:2px;margin-bottom:17px}
  .hero h1{font-size:clamp(48px,15vw,72px);line-height:.9;margin-bottom:20px}
  .hero-date{font-size:20px;letter-spacing:2px}
  .hero-place{font-size:8.5px;letter-spacing:1.5px;line-height:1.8;max-width:300px}
  .hero-hashtag{font-size:11px;margin-top:18px}
  .hero-confirm{width:min(100%,290px);margin-top:22px;padding:12px 15px;font-size:9px;letter-spacing:1.2px}

  .countdown{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:34px}
  .countdown-item{padding:18px 8px;border-right:0;border-bottom:1px solid var(--crema-oscuro)}
  .countdown-item:nth-child(odd){border-right:1px solid var(--crema-oscuro)}
  .countdown-item:nth-child(3),.countdown-item:nth-child(4){border-bottom:0}
  .countdown-item span{font-size:40px}
  .countdown-item small{font-size:8px;letter-spacing:1.5px}

  .location-grid,.story-grid{grid-template-columns:1fr;margin-top:32px;gap:28px}
  .location-image img{height:360px}
  .location-info{padding:0}
  .location-info h3{font-size:44px}
  .location-info p:not(.location-city){font-size:13px}
  .button{width:100%;min-height:46px;padding:12px 16px;font-size:10px}

  .rsvp-form{margin-top:30px;gap:16px}
  .form-group input,.form-group textarea,.form-group select{font-size:16px;padding:13px 14px}

  .story-image img{height:420px}
  .story-content{padding:0}
  .story-content p{font-size:14px;line-height:1.8}

  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:32px}
  .details-grid{grid-template-columns:1fr;margin-top:32px}
  .detail-card{padding:34px 22px}

  .seating-search{flex-direction:column;gap:10px;margin-top:28px}
  .seating-search input{width:100%;font-size:16px}
  .seating-search .button{width:100%}
  .tables-container{grid-template-columns:1fr;gap:14px}
  .seating-plan{margin-top:35px}

  .faq-list{margin-top:25px}
  .faq-item summary{font-size:22px;padding:18px 0}
  .faq-item>p{font-size:13px;padding-bottom:18px}

  .admin-login{padding:22px 18px}
  .admin-panel{padding:18px}
  .admin-panel>div{overflow-x:auto!important}

  .final-names{font-size:30px}
  .footer{padding:50px 20px}
  .footer-brand{font-size:44px}
}

/* LUGAR — DETALLES DE UBICACIÓN EN MÓVIL */
.location-info .hero-place{display:inline-flex;align-items:center;gap:8px;margin:0 0 35px;padding:9px 13px;border-radius:9px;background:#e1e6b0;color:#465039;font-family:'Montserrat',sans-serif;font-size:clamp(10px,1.25vw,13px);font-weight:600;letter-spacing:.7px;line-height:1.3;text-transform:uppercase}
.location-info .place-pin{flex:0 0 auto;width:17px;height:17px;fill:#657249;stroke:#657249;stroke-width:1.5}.location-info .place-pin circle{fill:#e1e6b0;stroke:none}
.location-info .button::after{content:none}.location-info .button-map-icon{width:25px;height:25px;margin-left:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.location-info p:not(.location-city):not(.hero-place){color:#4b573d}
@media (max-width:650px){
  .location-info .hero-place{max-width:100%;margin-bottom:31px;padding:8px 11px;font-size:10px;letter-spacing:.35px;line-height:1.32;text-align:left}
  .location-info .place-pin{width:15px;height:15px}
  .location-info p:not(.location-city):not(.hero-place){margin-bottom:34px;font-size:clamp(18px,5.5vw,22px);line-height:1.38;color:#4b573d}
  .location-info .button{font-size:15px}
  .location-info .button-map-icon{width:24px;height:24px;margin-left:11px}
}

@media (max-width:400px){
  .section{padding-left:16px;padding-right:16px}
  .hero{padding-left:14px;padding-right:14px}
  .hero h1{font-size:46px}
  .hero-date{font-size:18px}
  .countdown-item span{font-size:35px}
  .gallery-grid{grid-template-columns:1fr}
  .location-image img{height:320px}
  .story-image img{height:350px}
}

/* RINCÓN DE LOS INVITADOS */
.guest-corner{background:#f7faf8}.guest-corner h2{color:#658c7e;margin-bottom:40px}.guest-cards{max-width:940px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guest-card{min-height:115px;padding:24px;display:flex;align-items:center;gap:20px;background:#f1f6f3;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.guest-card:hover{transform:translateY(-7px);background:#fff;box-shadow:0 14px 30px rgba(68,96,83,.13)}.guest-icon{width:54px;height:54px;flex:0 0 54px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:#658c7e;font-family:'Cormorant Garamond',serif;font-size:28px;box-shadow:0 2px 7px rgba(68,96,83,.09)}.guest-card strong,.guest-card small{display:block}.guest-card strong{font-size:13px;letter-spacing:.4px;color:#40544b}.guest-card small{margin-top:5px;font-size:13px;color:#76857e}.guest-card:last-child{grid-column:1}

/* ÁLBUM DE INVITADOS */
.album-page{min-height:100vh;background:#f6f8f7}.album-header{position:sticky;top:0;z-index:10;padding:14px max(20px,5vw);display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,255,255,.95);border-bottom:1px solid #e4ebe7}.album-header h1{font-family:'Cormorant Garamond',serif;font-size:25px;line-height:1;color:#25372f}.album-header p{font-size:11px;color:#87a095;margin-top:3px}.album-main{max-width:980px;margin:0 auto;padding:60px 20px}.album-empty{max-width:580px;margin:0 auto;text-align:center}.album-empty-icon{width:82px;height:82px;margin:0 auto 24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8efec;color:#658c7e;font-size:38px}.album-empty h2{font-family:'Cormorant Garamond',serif;font-size:42px;font-weight:500;color:#25372f}.album-empty p{max-width:400px;margin:10px auto 28px;color:#73827c;font-size:14px}.upload-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 28px;border:0;border-radius:28px;background:#658c7e;color:#fff;font-weight:600;font-size:13px}.upload-button:hover{background:#557a6e}.album-folder-link{display:block;width:max-content;margin:18px auto 0;font-size:12px;font-weight:600;letter-spacing:.5px;color:#658c7e}.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:38px}.album-grid img{width:100%;aspect-ratio:1;object-fit:cover}.upload-status{margin-top:22px;color:#65766f;font-size:13px}.drive-setup{max-width:640px;margin:38px auto 0;padding:18px 22px;background:#fff6df;color:#75603d;font-size:13px;line-height:1.55}.drive-setup[hidden]{display:none}.album-back{font-size:11px;font-weight:600;letter-spacing:1.5px;color:#658c7e}.photo-input{display:none}

@media (max-width:650px){.guest-cards{grid-template-columns:1fr}.guest-card:last-child{grid-column:auto}.guest-card{min-height:104px}.album-main{padding-top:42px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* AJUSTE INFERIOR — SECCIÓN LUGAR */
.location-info{padding:42px 8px 0}.location-city{display:table;margin:0 0 42px;padding:9px 15px 9px 13px;border-radius:9px;background:#e7e5d9;color:#5b604b;font-family:'Montserrat',sans-serif;font-size:clamp(11px,1.55vw,14px);font-weight:600;letter-spacing:.6px;line-height:1.2}.location-city::before{content:'●';display:inline-block;margin-right:10px;color:#78805e;font-size:18px;line-height:0;vertical-align:-1px}.location-info p:not(.location-city){max-width:590px;margin:0 0 42px;font-family:'Montserrat',sans-serif;font-size:clamp(22px,3vw,31px);font-weight:400;line-height:1.42;color:#33342e}.location-info .button{width:100%;min-height:76px;border:0;border-radius:999px;background:#717a50;color:#fff;font-family:'Montserrat',sans-serif;font-size:clamp(14px,1.7vw,18px);font-weight:600;letter-spacing:.4px}.location-info .button::after{content:'♧';margin-left:15px;font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:400;line-height:0}.location-info .button:hover{background:#626b45;color:#fff}
@media (max-width:650px){.location-info{padding:39px 0 0}.location-city{margin-bottom:42px;font-size:11px;padding:9px 13px}.location-info p:not(.location-city){margin-bottom:44px;font-size:24px;line-height:1.43}.location-info .button{min-height:76px;font-size:17px}}

/* LUGAR — CORRECCIÓN RESPONSIVE MÓVIL */
@media (max-width:650px){
  .location{padding:30px 20px 30px}
  .location .section-inner{width:100%}
  .location h2{font-size:52px;margin-bottom:30px}
  .location-image,.location-image img{border-radius:16px}
  .location-image img{height:clamp(280px,78vw,400px)}
  .location-info{width:100%;padding:31px 0 0;overflow:visible}
  .location-city{display:inline-flex;align-items:center;max-width:100%;margin:0 0 34px;padding:9px 12px;white-space:normal;overflow-wrap:anywhere;font-size:clamp(10px,3.15vw,12px);letter-spacing:.35px;line-height:1.35}
  .location-city::before{flex:0 0 auto;margin-right:8px;font-size:14px}
  .location-info p:not(.location-city){max-width:100%;margin:0 0 34px;font-size:clamp(21px,6vw,25px);line-height:1.4;overflow-wrap:anywhere}
  .location-info .button{width:100%;min-height:70px;padding:12px 17px;font-size:15px;letter-spacing:.2px}
  .location-info .button::after{font-size:27px;margin-left:12px}
  .music-toggle{width:42px;height:42px;left:auto;right:14px;bottom:14px;opacity:.92}
  .music-toggle span:first-child{font-size:17px}
}

/* ACCESSIBILITY / MOBILE SAFETY */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media (max-width:650px){
  .start-experience{min-height:86px;font-size:15px;letter-spacing:3px}
  .welcome{min-height:0;padding:112px 20px 94px;background-position:center}
  .welcome h2{font-size:clamp(46px,13vw,68px)}
  .welcome .eyebrow{font-size:9px;letter-spacing:3px}
  .welcome .countdown{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 0;margin-top:65px}
  .welcome .countdown-item{padding:0 8px;border:0}
  .welcome .countdown-item:not(:last-child)::after{display:none}
  .welcome .countdown-item span{font-size:clamp(60px,19vw,90px)}
  .welcome .countdown-item small{margin-top:12px;font-size:8px;letter-spacing:2.5px}
  .story{min-height:0;padding:310px 20px 72px;background-size:auto 280px;background-position:top center}
  .story-grid{margin-top:35px;gap:28px}
  .story-content{padding:28px 23px}
  .rsvp{padding:68px 20px 74px;background-attachment:scroll;background-position:center}
  .love-verse-art{width:100%;margin-bottom:28px}
  .event-date,.event-place,.rsvp-confirmation{padding:34px 19px}
  .event-place,.rsvp-confirmation{margin-top:14px}
  .event-place h3,.rsvp-confirmation h3{margin-bottom:32px}
  .place-details{text-align:center}.place-details .eyebrow{text-align:center}
  .event-date{padding:30px 12px}.event-date h2{font-size:clamp(38px,12vw,54px)}
  .rsvp-confirmation{margin-top:25px;padding:58px 22px}.rsvp-confirmation>strong{font-size:10px;line-height:1.6}.rsvp-link{width:100%}
  .confirmation-shell{padding:22px 14px 45px}.confirmation-card{padding:42px 23px}.back-link{font-size:9px}.confirmation-page{background-attachment:scroll}
}

/* Prioridad final: icono de mapa en el botón de ubicación */
.location-info .button::after{content:none}

/* Tamaños finales para lectura cómoda en celular */
@media (max-width:650px){
  .location-info .hero-place{font-size:9px;letter-spacing:.2px;padding:7px 10px;line-height:1.25}
  .location-info p:not(.location-city):not(.hero-place){font-size:20px;line-height:1.36}
}
@media (max-width: 650px) {
  .location-info p:not(.hero-place):not(.location-city) {
    font-size: 18px;
    line-height: 1.35;
  }
}
@media (max-width: 650px) {
  .location-info .hero-place {
    font-size: 5px;
    padding: 6px 9px;
    letter-spacing: 0.15px;
  }
}

/* Tamaño definitivo: estas reglas superan el estilo genérico de los párrafos */
.location-info p.hero-place{
  font-size:clamp(20px,.8vw,20px);
  line-height:1.28;
  letter-spacing:.45px;
  padding:8px 11px;
}
.location-info p:not(.location-city):not(.hero-place){
  font-size:clamp(18px,1.4vw,22px);
  line-height:1.38;
}

/* PROGRAMA DEL EVENTO */
.event-program{position:relative;overflow:hidden;padding:104px 24px;background:#f2f0e8;color:#2c2923}.event-program::before{content:'';position:absolute;inset:0;opacity:.24;background-image:radial-gradient(rgba(102,110,75,.22) .6px,transparent .8px);background-size:5px 5px;pointer-events:none}.event-program .section-inner{position:relative;z-index:1;max-width:900px}.event-program .eyebrow{color:#78805e;font-size:10px;letter-spacing:4px}.event-program h2{margin-top:10px;font-family:'Allura',cursive;font-size:clamp(54px,6vw,82px);font-weight:400;line-height:.9;color:#687052}.program-intro{max-width:440px;margin:24px auto 64px;text-align:center;font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.4;color:#625d52}.program-timeline{position:relative;display:grid;gap:0;margin:0 auto;max-width:780px}.program-timeline::before{content:'';position:absolute;top:10px;bottom:10px;left:50%;border-left:1px solid rgba(105,112,82,.45)}.program-item{position:relative;display:grid;grid-template-columns:1fr 70px 1fr;align-items:center;min-height:147px}.program-item::after{content:'✦';position:absolute;z-index:1;left:calc(50% - 10px);top:calc(50% - 10px);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f2f0e8;color:#879166;font-size:11px}.program-content{grid-column:1;text-align:right;padding-right:28px}.program-icon{grid-column:3;justify-self:start;margin-left:28px;display:grid;place-items:center;width:65px;height:65px;border:1px solid rgba(105,112,82,.42);border-radius:50%;color:#687052;font-family:'Cormorant Garamond',serif;font-size:34px}.program-content time{display:block;margin-bottom:3px;color:#8a986b;font-family:'Cormorant Garamond',serif;font-size:clamp(31px,3.5vw,44px);font-weight:600;line-height:1}.program-content h3{margin:5px 0 4px;font-family:'Cormorant Garamond',serif;font-size:clamp(29px,3.4vw,42px);font-weight:500;line-height:.98;color:#28251f}.program-content p{font-family:'Cormorant Garamond',serif;font-size:16px;line-height:1.25;color:#605b51}.program-item-reverse .program-content{grid-column:3;text-align:left;padding:0 0 0 28px}.program-item-reverse .program-icon{grid-column:1;justify-self:end;margin:0 28px 0 0}
@media (max-width:650px){.event-program{padding:72px 20px}.event-program h2{font-size:63px}.program-intro{margin:20px auto 42px;font-size:16px}.program-timeline{gap:5px}.program-timeline::before{left:31px}.program-item,.program-item-reverse{grid-template-columns:62px 1fr;min-height:112px}.program-item::after{left:21px;top:52px}.program-icon,.program-item-reverse .program-icon{grid-column:1;justify-self:start;align-self:center;width:47px;height:47px;margin:0;font-size:26px}.program-content,.program-item-reverse .program-content{grid-column:2;text-align:left;padding:0 0 0 20px}.program-content time{font-size:30px}.program-content h3{font-size:30px}.program-content p{font-size:15px}}
@media (max-width:650px){
  .location-info p.hero-place{font-size:12px;padding:7px 10px;letter-spacing:.2px}
  .location-info p:not(.location-city):not(.hero-place){font-size:18px}
}

/* VERSÍCULO — ubicado después de la información para invitados */
.love-verse-section{padding:82px 24px;background-color:#efe9df;background-image:linear-gradient(rgba(247,243,236,.86),rgba(247,243,236,.88)),url('../images/Manos.jpeg');background-size:cover;background-position:center;background-attachment:fixed}
.love-verse-section .section-inner{max-width:1060px}.love-verse-section .love-verse-art{width:min(100%,980px);margin:0 auto}
@media (max-width:650px){.love-verse-section{padding:56px 20px;background-attachment:scroll}.love-verse-section .love-verse-art{width:100%;margin:0 auto}}

/* CONTADOR MÓVIL: días, horas y minutos arriba; segundos centrados abajo */
@media (max-width:650px){
  .welcome .countdown{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 0}
  .welcome .countdown-item{padding:0 3px}
  .welcome .countdown-item:nth-child(4){grid-column:2}
  .welcome .countdown-item span{font-size:clamp(42px,14vw,64px)}
  .welcome .countdown-item small{margin-top:10px;font-size:7px;letter-spacing:1.8px}
}

/* PROGRAMA — LÍNEA DE TIEMPO ESCALONADA */
.event-program{background:#f5f3ef;padding:112px 24px}.event-program::before{opacity:.16}.event-program h2{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(43px,5vw,64px);font-style:italic;line-height:1.05;color:#303027}.program-intro{font-family:'Montserrat',sans-serif;font-size:13px;letter-spacing:.2px;color:#6b695d}.program-timeline{max-width:900px;gap:8px}.program-timeline::before{top:52px;bottom:52px;border-color:rgba(107,122,89,.38)}.program-item{grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);min-height:158px}.program-item::after{left:calc(50% - 6px);top:calc(50% - 6px);width:12px;height:12px;background:#6b7a59;color:transparent;box-shadow:0 0 0 5px #f5f3ef}.program-content{justify-self:end;width:min(100%,330px);padding:27px 30px;text-align:right;border-right:2px solid #9aa688;background:rgba(255,255,255,.36)}.program-item-reverse .program-content{justify-self:start;padding:27px 30px;text-align:left;border-right:0;border-left:2px solid #9aa688}.program-icon,.program-item-reverse .program-icon{width:58px;height:58px;margin:0;border:0;border-radius:0;color:#6b7a59;background:transparent}.program-icon{justify-self:start;margin-left:24px}.program-item-reverse .program-icon{justify-self:end;margin-right:24px}.program-icon svg{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.program-content time{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(34px,3.8vw,48px);font-weight:500;color:#6b7a59}.program-content h3{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(27px,3vw,39px);font-weight:500;line-height:1.04;color:#28251f}.program-content p{font-family:'Montserrat',sans-serif;font-size:11px;line-height:1.55;letter-spacing:.1px;color:#666257}
@media (max-width:650px){.event-program{padding:72px 20px}.event-program h2{font-size:48px}.program-timeline{gap:12px}.program-timeline::before{left:28px;top:38px;bottom:38px}.program-item,.program-item-reverse{grid-template-columns:57px minmax(0,1fr);min-height:0}.program-item::after{left:23px;top:44px;width:10px;height:10px;box-shadow:0 0 0 4px #f5f3ef}.program-icon,.program-item-reverse .program-icon{grid-column:1;justify-self:start;align-self:start;width:45px;height:45px;margin:22px 0 0}.program-icon svg{width:35px;height:35px}.program-content,.program-item-reverse .program-content{grid-column:2;justify-self:stretch;width:auto;margin:0;padding:22px 0 22px 20px;text-align:left;border:0;border-left:2px solid #9aa688;background:transparent}.program-content time{font-size:31px}.program-content h3{font-size:27px}.program-content p{font-size:10px;line-height:1.5}}

/* PROGRAMA — PRESENTACIÓN MÓVIL ALINEADA */
@media (max-width:650px){
  .event-program{padding:64px 18px 70px}
  .event-program .section-inner{width:100%;max-width:100%}
  .event-program .eyebrow{font-size:9px;letter-spacing:3px}
  .event-program h2{font-size:48px}
  .program-intro{max-width:290px;margin:18px auto 36px;font-size:12px;line-height:1.55}
  .program-timeline{width:100%;max-width:100%;gap:0}
  .program-timeline::before{left:32px;top:48px;bottom:48px}
  .program-item,.program-item-reverse{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:start;min-height:0}
  .program-item::after{left:27px;top:49px;width:10px;height:10px;box-shadow:0 0 0 4px #f5f3ef}
  .program-icon,.program-item-reverse .program-icon{grid-column:1;grid-row:1;justify-self:start;align-self:start;display:grid;place-items:center;width:64px;height:64px;margin:19px 0 0;color:#6b7a59;background:#eef0e4;border:1px solid rgba(107,122,89,.25);border-radius:50%}
  .program-icon svg{width:43px;height:43px;stroke-width:1.15}
  .program-content,.program-item-reverse .program-content{grid-column:2;grid-row:1;min-width:0;margin:0;padding:20px 0 28px 24px;text-align:left;border:0;border-left:1px solid rgba(107,122,89,.52);background:transparent}
  .program-content time{font-size:30px;line-height:1.05}
  .program-content h3{margin:5px 0 6px;font-size:26px;line-height:1.08;overflow-wrap:anywhere}
  .program-content p{font-size:11px;line-height:1.45;overflow-wrap:anywhere}
}

/* PROGRAMA ILUSTRADO */
.event-program{background:#f5f3ef;padding:84px 24px}.event-program::before{display:none}.event-program .section-inner{max-width:760px}.event-program h2{margin-top:8px}.program-image{display:block;width:min(100%,620px);height:auto;margin:42px auto 0;object-fit:contain}
@media (max-width:650px){.event-program{padding:62px 18px}.program-image{width:100%;margin-top:30px}}

/* El programa se presenta únicamente como imagen */
.event-program{padding:0;background:#f5f3ef}.event-program .section-inner{max-width:none}.program-image.program-image-final{width:100%;max-width:none;margin:0 auto}
@media (max-width:650px){.event-program{padding:0}.program-image.program-image-final{width:100%;margin:0}}

/* Compactación final del pie de página, también para celular */
@media (max-width:650px){
  .footer{padding:24px 20px}
  .footer-brand{font-size:34px;margin-bottom:8px}
  .footer-inner p{font-size:10px;margin-top:4px}
  .final-invitation-video{width:100%;margin:24px auto 28px}
  .dress-code-copy{font-size:12px;line-height:1.65}
}

/* CARGA DE FOTOS A DRIVE */
.upload-hint{margin:16px auto 0!important;font-size:11px!important;line-height:1.5;color:#809087!important}.upload-button{cursor:pointer;transition:transform .2s ease,background .2s ease}.upload-button:hover{transform:translateY(-2px)}.upload-button.is-uploading{pointer-events:none;opacity:.66}.upload-status{min-height:21px;font-weight:500}.album-empty-icon{font-family:'Cormorant Garamond',serif}.drive-setup{border-left:3px solid #b8a878}

/* CONFIRMACIONES CERRADAS */
.confirmation-closed-page{background-color:#f5f1e9;background-image:linear-gradient(rgba(250,247,241,.84),rgba(250,247,241,.9)),url('../images/Manos.jpeg')}.confirmation-closed-page .confirmation-shell{display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 5% 3%,rgba(212,222,149,.28),transparent 31%),linear-gradient(rgba(249,247,240,.73),rgba(249,247,240,.82))}.closed-confirmation-card{max-width:690px;padding:clamp(42px,6.2vw,72px);border:1px solid rgba(107,122,89,.18);border-radius:30px}.closed-confirmation-card::before{height:6px;background:linear-gradient(90deg,#d4de95,#6b7a59,#d4de95)}.closed-label{display:inline-block;margin:13px 0 16px;padding:7px 13px;border:1px solid rgba(107,122,89,.3);border-radius:999px;color:#687052;font-size:9px;font-weight:600;letter-spacing:2px}.closed-ornament{color:#b99b63;font-size:21px;line-height:1}.closed-confirmation-card h1{max-width:500px;margin:14px auto 0;color:#4e684d;font-family:'Bodoni Moda','Cormorant Garamond',serif;font-size:clamp(43px,6vw,66px);font-style:italic;font-weight:500;line-height:1.05}.closed-message{max-width:530px;margin:0 auto;color:#5d5b52;font-family:'Cormorant Garamond',serif;font-size:clamp(19px,2.4vw,24px);line-height:1.4}.closed-message p{margin:0 0 16px}.closed-message .closed-hug{margin-top:23px;color:#5a7557;font-size:clamp(23px,2.7vw,29px);font-style:italic}.closed-signature{margin:28px 0 26px;color:#777064;font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.25}.closed-signature span{color:#556f54;font-size:25px;font-style:italic}.closed-return{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border:1px solid #6b7a59;border-radius:999px;color:#fff;background:#6b7a59;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;transition:background .2s ease,color .2s ease}.closed-return:hover{background:transparent;color:#6b7a59}
@media (max-width:650px){.confirmation-closed-page .confirmation-shell{padding:30px 14px 46px}.closed-confirmation-card{padding:42px 22px;border-radius:22px}.closed-label{font-size:8px;letter-spacing:1.4px}.closed-message{font-size:19px;line-height:1.38}.closed-message p{margin-bottom:17px}.closed-confirmation-card h1{font-size:43px}.closed-signature span{font-size:24px}}
