:root{--paper:#f7f0e2;--green:#737b54;--dark:#536048;--olive:#8d916c;--gold:#b28a51;--ink:#59604c;--line:rgba(115,123,84,.25);--texture:url("assets/papel-acuarela.jpg")}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper) var(--texture);font:300 15px/1.65 "DM Sans",sans-serif}img{display:block;max-width:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.grain{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.025;background:var(--texture);mix-blend-mode:multiply}.eyebrow{margin:0 0 13px;color:var(--olive);font-size:9px;font-weight:500;letter-spacing:.23em;text-transform:uppercase}.section{min-height:100svh;padding:70px max(6vw,25px);background:var(--paper) var(--texture)}.reveal{opacity:0;transform:translateY(16px);transition:.75s}.reveal.visible{opacity:1;transform:none}
.site-header{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:25px 5vw;color:var(--dark)}.monogram{color:inherit;text-decoration:none;font:400 20px "Cormorant Garamond",serif;letter-spacing:.18em}.monogram span{color:var(--olive);font-style:italic}.site-header nav{display:flex;gap:27px}.site-header nav a{color:inherit;text-decoration:none;font-size:9px;letter-spacing:.17em;text-transform:uppercase}.menu-button{display:none;padding:7px;border:0;background:none}.menu-button span:not(.sr-only){display:block;width:23px;height:1px;margin:5px;background:var(--dark)}
.hero{min-height:100svh;display:grid;place-items:center;padding:90px 20px 50px;text-align:center;background:var(--paper) var(--texture);overflow:hidden}.hero-copy{width:min(1100px,95vw);display:flex;flex-direction:column;align-items:center}.hero-venue{width:min(820px,79vw);height:min(54vh,500px);margin:0 auto 18px;object-fit:contain;filter:saturate(.75);mix-blend-mode:multiply}.hero h1{margin:0;color:var(--green);font:400 clamp(68px,8vw,110px)/.78 "Allura",cursive}.hero h1 span{color:var(--green)}.hero-date{margin:20px 0 18px;color:var(--green);font:400 clamp(18px,2vw,25px) "Cormorant Garamond",serif}.hero-places{display:flex;align-items:stretch;justify-content:center;color:var(--green)}.hero-places p{width:250px;margin:0;font:400 17px/1.3 "Cormorant Garamond",serif}.hero-places p:first-child{text-align:right}.hero-places p:last-child{text-align:left}.hero-places p span{display:block;margin-bottom:4px;color:var(--olive);font:500 8px "DM Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase}.hero-places i{width:1px;margin:0 25px;background:var(--line)}
.event{display:flex;flex-direction:column;justify-content:center;gap:30px}.event-row{width:min(1100px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(65px,10vw,145px)}.event-image{height:min(37vh,340px)}.event-image img{width:100%;height:100%;object-fit:contain;filter:saturate(.82);mix-blend-mode:multiply}.event-image.church img{transform:scale(.94)}.event-image.venue img{transform:scale(1.03)}.event-copy header{display:flex;align-items:baseline;gap:17px;margin-bottom:12px}.event-copy header span{color:var(--gold);font:italic 14px "Cormorant Garamond",serif}.event-copy h2{margin:0;color:var(--green);font:italic 400 clamp(38px,4vw,55px)/1 "Cormorant Garamond",serif}.event-copy>p{margin:0 0 4px;color:var(--green);font:italic 400 16px "Cormorant Garamond",serif}.event-copy>a{color:var(--green);font:italic 400 16px/1.45 "Cormorant Garamond",serif;text-underline-offset:4px}.event-row:last-child .event-image{grid-column:2;grid-row:1}.event-row:last-child .event-copy{grid-column:1;grid-row:1;text-align:right}.event-row:last-child header{justify-content:flex-end}
.city-guide{min-height:100svh;display:grid;grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr);position:relative;background:var(--paper) var(--texture);border-block:1px solid var(--line)}.city-guide:before,.city-guide:after{content:"❧";position:absolute;z-index:2;color:rgba(102,112,85,.25);font:42px Georgia,serif}.city-guide:before{left:25px;top:18px;transform:rotate(-28deg)}.city-guide:after{right:25px;bottom:18px;transform:rotate(152deg)}.guide-menu{display:flex;flex-direction:column;justify-content:center;padding:clamp(50px,7vw,95px);color:var(--green);border-right:1px solid var(--line)}.guide-menu h2{margin:0 0 52px;color:var(--green);font:italic 400 clamp(52px,5.7vw,78px)/.82 "Cormorant Garamond",serif}.guide-menu nav{display:flex;flex-direction:column}.guide-menu button{position:relative;display:flex;gap:19px;padding:15px 0;border:0;border-bottom:1px solid var(--line);color:var(--green);background:none;opacity:.55;text-align:left;cursor:pointer;font:400 22px "Cormorant Garamond",serif}.guide-menu button:first-child{border-top:1px solid var(--line)}.guide-menu button span{font-size:10px;font-style:italic}.guide-menu button.active{padding-left:21px;opacity:1}.guide-menu button.active:before{content:"—";position:absolute;left:0;color:var(--gold)}.guide-carousel-wrap{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(50px,7vw,95px) 0 clamp(50px,7vw,95px) clamp(38px,6vw,80px);overflow:hidden}.guide-carousel-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px;padding-right:clamp(25px,5vw,65px)}.guide-carousel-heading h3{margin:0;color:var(--green);font:italic 400 clamp(38px,4vw,56px) "Cormorant Garamond",serif}.carousel-controls{display:flex;gap:14px}.carousel-controls button{padding:3px 5px;border:0;border-bottom:1px solid var(--line);color:var(--green);background:transparent;cursor:pointer;font:21px "Cormorant Garamond",serif}.guide-carousel{display:flex;gap:23px;padding:8px clamp(25px,5vw,65px) 17px 2px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}.guide-carousel::-webkit-scrollbar{display:none}.guide-card{flex:0 0 min(295px,72vw);min-height:345px;display:flex;flex-direction:column;padding:29px 25px;color:var(--green);background:rgba(250,246,235,.58) var(--texture);border:1px solid rgba(138,140,104,.28);box-shadow:3px 5px rgba(138,140,104,.05);clip-path:polygon(.5% 1%,99.4% 0,100% 98.8%,1% 100%);scroll-snap-align:start}.guide-card:nth-child(even){transform:rotate(.3deg)}.guide-card:nth-child(3n){transform:rotate(-.25deg)}.place-tags{display:flex;flex-wrap:wrap;gap:8px}.place-tag{padding-bottom:2px;color:#7c765f;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:.1em;text-transform:uppercase}.guide-card h4{margin:23px 0 10px;color:var(--green);font:italic 400 29px "Cormorant Garamond",serif}.guide-card>p{margin:0;font-size:11px;line-height:1.65}.guide-card address{margin-top:auto;padding-top:15px;border-top:1px solid var(--line);font:400 12px/1.5 "Cormorant Garamond",serif}.guide-card a{color:inherit}.carousel-hint{margin:4px 0;color:var(--olive);font:italic 11px "Cormorant Garamond",serif}
.transport{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:10vw}.transport h2,.rsvp h2,.wedding-list h2{margin:0 0 23px;color:var(--green);font:italic 400 clamp(55px,7vw,92px)/.9 "Cormorant Garamond",serif}.transport-copy>p:last-child{max-width:420px;font-size:13px}.transport-times{border-top:1px solid var(--line)}.transport-times article{display:grid;grid-template-columns:70px 1fr;gap:22px;padding:27px 0;border-bottom:1px solid var(--line)}.transport-times span,.list-coming{color:var(--olive);font-size:8px;letter-spacing:.2em;text-transform:uppercase}.transport-times h3{margin:0;color:var(--green);font:italic 400 28px "Cormorant Garamond",serif}.transport-times p{grid-column:2;margin:-16px 0 0;font-size:11px}
.rsvp,.wedding-list{display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}.rsvp-leaf{color:var(--olive);font:52px Georgia,serif;transform:rotate(-25deg)}.rsvp>div,.wedding-list>div{max-width:650px;z-index:1}.rsvp p,.wedding-list p:not(.eyebrow){max-width:510px;margin:0 auto 24px;font-size:13px}.button{display:inline-block;margin-top:15px;padding:11px 22px;color:var(--green);border:1px solid var(--green);text-decoration:none;font:400 14px "Cormorant Garamond",serif}.button.disabled{opacity:.5;pointer-events:none}.list-coming{display:inline-block;padding-top:14px;border-top:1px solid var(--line)}footer{display:flex;align-items:center;justify-content:space-between;padding:28px 5vw;color:var(--paper);background:var(--dark);font-size:9px;letter-spacing:.14em;text-transform:uppercase}footer a{color:inherit;text-decoration:none}
@media(max-width:760px){.site-header{padding:20px}.menu-button{display:block;z-index:2}.site-header nav{position:absolute;right:0;top:0;width:min(300px,82vw);height:100vh;padding:85px 30px;flex-direction:column;color:var(--paper);background:var(--dark);transform:translateX(100%);transition:.3s}.site-header nav.open{transform:none}.hero{padding-top:82px}.hero-venue{width:98vw;height:min(43vh,390px)}.hero h1{font-size:68px}.hero-places p{width:47%;font-size:15px}.hero-places i{margin:0 14px}.event{gap:48px}.event-row{grid-template-columns:1fr;gap:17px}.event-image{height:275px}.event-row:last-child .event-image{grid-column:1;grid-row:1}.event-row:last-child .event-copy{grid-column:1;grid-row:2}.city-guide{grid-template-columns:1fr;min-height:auto}.guide-menu{min-height:40svh;padding:42px 25px;border-right:0;border-bottom:1px solid var(--line)}.guide-menu h2{margin-bottom:25px;font-size:52px}.guide-menu nav{display:grid;grid-template-columns:repeat(3,1fr)}.guide-menu button{gap:5px;padding:11px 4px;font-size:15px}.guide-menu button.active{padding-left:12px}.guide-carousel-wrap{min-height:60svh;padding:37px 0 37px 21px}.guide-carousel-heading{margin-bottom:20px;padding-right:21px}.guide-carousel-heading h3{font-size:37px}.guide-card{min-height:310px}.transport{grid-template-columns:1fr;gap:42px}.transport h2,.rsvp h2,.wedding-list h2{font-size:55px}}
@media(max-width:480px){.hero-venue{height:auto;max-height:38vh;margin-bottom:23px}.hero h1{font-size:63px}.hero-places{display:grid;gap:10px}.hero-places p,.hero-places p:first-child,.hero-places p:last-child{width:auto;text-align:center}.hero-places i{width:35px;height:1px;margin:0 auto}.event-row:last-child .event-copy{text-align:right}.event-row:last-child header{justify-content:flex-end}footer{flex-direction:column;gap:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Elementos reales del save the date */
.hero,.event,.city-guide,.transport,.rsvp,.wedding-list{background-color:var(--paper);background-image:var(--texture);background-size:620px 620px}
.hero,.event,.transport,.rsvp,.wedding-list{border:22px solid transparent;border-image:url("assets/save-the-date.jpeg") 70 round}
.hero h1,.event-copy h2,.guide-menu h2,.guide-carousel-heading h3,.transport h2,.rsvp h2,.wedding-list h2{font-family:"Allura",cursive;font-style:normal;font-weight:400;color:var(--green)}
.event-copy h2{font-size:clamp(54px,5vw,73px);line-height:.8}
.guide-menu h2{font-size:clamp(68px,6.5vw,96px);line-height:.68}
.guide-carousel-heading h3{font-size:clamp(50px,5vw,72px);line-height:.8}
.transport h2,.rsvp h2,.wedding-list h2{font-size:clamp(75px,8vw,115px);line-height:.75}
.guide-card h4,.transport-times h3{font-family:"Allura",cursive;font-style:normal;font-size:35px;line-height:1}
.event-copy>p,.event-copy>a,.guide-card address,.hero-date,.hero-places p{font-family:"Cormorant Garamond",Georgia,serif;color:var(--green)}
.city-guide:before,.city-guide:after{color:var(--gold)}
@media(max-width:760px){.hero,.event,.transport,.rsvp,.wedding-list{border-width:12px}.guide-menu h2{font-size:65px}.event-copy h2{font-size:56px}.transport h2,.rsvp h2,.wedding-list h2{font-size:76px}}

/* Caligrafía fina, sin cenefas */
.hero,.event,.transport,.rsvp,.wedding-list{border:0;border-image:none}
.hero h1,.event-copy h2,.guide-menu h2,.guide-carousel-heading h3,.transport h2,.rsvp h2,.wedding-list h2,.guide-card h4,.transport-times h3{font-family:"Italianno",cursive;font-style:normal;font-weight:400}
.city-guide:before,.city-guide:after{display:none;content:none}

/* Guía legible: estructura editorial rústica */
.city-guide{grid-template-columns:minmax(270px,32%) minmax(0,68%);color:#3f4d3f;background-color:#f4ecdc}
.guide-menu{padding:clamp(45px,5vw,75px);background:rgba(238,227,206,.68);border-right:1px solid rgba(63,81,66,.32)}
.guide-menu .eyebrow{color:#6d765f;font-size:10px;font-weight:500}
.guide-menu h2{margin:0 0 48px;color:#3f5142;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(48px,5vw,69px);font-style:normal;line-height:.88;letter-spacing:-.025em}
.guide-menu button{padding:17px 3px;color:#3f5142;border-color:rgba(63,81,66,.3);font-family:"Cormorant Garamond",Georgia,serif;font-size:23px;font-weight:500;opacity:.58}
.guide-menu button span{font-size:11px}
.guide-menu button.active{padding-left:25px;color:#263d30;opacity:1}
.guide-carousel-wrap{padding-left:clamp(32px,4vw,60px);background:rgba(250,246,235,.35)}
.guide-carousel-heading{margin-bottom:27px}
.guide-carousel-heading .eyebrow{color:#68725c;font-size:10px}
.guide-carousel-heading h3{color:#344a39;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(39px,4vw,54px);font-style:normal;line-height:1}
.carousel-controls button{width:40px;height:38px;padding:0;border:1px solid rgba(52,74,57,.4);color:#344a39;background:rgba(250,246,235,.7);font-size:20px}
.guide-carousel{gap:18px;padding-top:4px}
.guide-card{flex:0 0 min(390px,72vw);min-height:390px;padding:31px 28px;color:#344a39;background:#faf5e9;border:1px solid rgba(63,81,66,.35);box-shadow:0 8px 22px rgba(76,67,48,.08);clip-path:none;transform:none!important}
.guide-card .place-tag{color:#5c684f;border-color:rgba(63,81,66,.32);font-size:9px;font-weight:500}
.guide-card h4{margin:25px 0 13px;color:#344a39;font-family:"Cormorant Garamond",Georgia,serif;font-size:31px;font-style:normal;font-weight:500;line-height:1.05}
.guide-card>p{color:#4e584b;font-size:13px;line-height:1.65}
.guide-card address{color:#445245;border-color:rgba(63,81,66,.28);font-family:"DM Sans",sans-serif;font-size:10px;line-height:1.55}
.carousel-hint{color:#5c684f;font-family:"DM Sans",sans-serif;font-size:9px;font-style:normal;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:720px){.city-guide{grid-template-columns:1fr}.guide-menu{min-height:auto;padding:38px 22px}.guide-menu h2{margin-bottom:25px;font-size:47px}.guide-menu nav{gap:5px}.guide-menu button{font-size:17px}.guide-carousel-wrap{padding-left:20px}.guide-card{flex-basis:min(340px,82vw);min-height:365px}.guide-carousel-heading h3{font-size:38px}}

/* Proporciones compactas de la guía */
.city-guide{min-height:650px;height:auto}
.guide-menu{padding-top:48px;padding-bottom:48px}
.guide-menu h2{margin-bottom:34px;font-size:clamp(42px,4vw,57px);line-height:.9}
.guide-menu button{padding-top:13px;padding-bottom:13px;font-size:20px}
.guide-carousel-wrap{padding-top:45px;padding-bottom:42px}
.guide-carousel-heading{margin-bottom:22px}
.guide-carousel-heading h3{font-size:clamp(35px,3.5vw,47px)}
.guide-card{flex-basis:min(330px,72vw);min-height:285px;padding:24px 22px}
.guide-card h4{margin:18px 0 9px;font-size:27px}
.guide-card>p{font-size:13px;line-height:1.5}
.guide-card address{padding-top:12px;font-size:13px;line-height:1.45;font-weight:400}
.guide-card address a{font-weight:500;text-underline-offset:3px}
.carousel-hint{margin-top:0}
@media(max-width:720px){.city-guide{min-height:auto}.guide-menu{padding-top:30px;padding-bottom:30px}.guide-menu h2{font-size:42px}.guide-carousel-wrap{min-height:auto;padding-top:30px;padding-bottom:30px}.guide-card{flex-basis:min(315px,82vw);min-height:280px}.guide-card address{font-size:12px}}

/* Controles del carrusel */
.carousel-controls{gap:10px}
.carousel-controls button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--green);border-radius:50%;color:var(--paper);background:var(--green);box-shadow:0 3px 10px rgba(63,81,66,.13);transition:transform .2s ease,background-color .2s ease,color .2s ease}
.carousel-controls button span{display:block;font:400 32px/1 "Cormorant Garamond",Georgia,serif;transform:translateY(-2px)}
.carousel-controls button:hover{color:var(--green);background:var(--paper);transform:translateY(-2px)}
.carousel-controls button:active{transform:translateY(0) scale(.95)}
.carousel-controls button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:720px){.carousel-controls button{width:40px;height:40px}.carousel-controls button span{font-size:29px}}

/* Tarjetas en verde oliva */
.guide-card{color:#fbf5e7;background:#6c795f;border-color:#5d6b53;box-shadow:0 7px 18px rgba(52,67,52,.14)}
.guide-card:nth-child(even){background:#788469}
.guide-card:nth-child(3n){background:#627158}
.guide-card .place-tag{color:#f4ecd9;border-color:rgba(251,245,231,.42)}
.guide-card h4,.guide-card>p,.guide-card address,.guide-card a{color:#fbf5e7}
.guide-card address{border-color:rgba(251,245,231,.35)}

/* Buses: ruta visual */
.transport{min-height:82svh;display:flex;flex-direction:column;justify-content:center;gap:45px;padding-top:65px;padding-bottom:65px;text-align:center}
.transport-copy{max-width:720px;margin:0 auto}
.transport-copy h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(60px,6vw,86px);font-style:normal;line-height:.9;margin-bottom:20px}
.transport-copy>p:last-child{max-width:620px;margin:0 auto;color:#465344;font-size:17px;line-height:1.55}
.bus-route{width:min(1100px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 180px 1fr;align-items:stretch;gap:25px}
.bus-stop{min-height:245px;padding:35px 34px;display:flex;flex-direction:column;justify-content:center;color:#fbf5e7;background:#6c795f;text-align:left}
.bus-stop:last-child{background:#788469}
.bus-stop>span{font-size:11px;font-weight:500;letter-spacing:.19em;text-transform:uppercase;color:#eee7d5}
.bus-stop h3{margin:14px 0 12px;color:#fff8e9;font-family:"Cormorant Garamond",Georgia,serif;font-size:34px;font-style:normal;font-weight:500;line-height:1}
.bus-stop p{margin:0;color:#f8f0df;font-size:15px;line-height:1.55}
.bus-line{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green)}
.bus-line i{width:1px;height:40px;background:var(--line)}
.bus-line svg{width:105px;margin:12px 0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){.transport{gap:32px}.transport-copy h2{font-size:64px}.transport-copy>p:last-child{font-size:15px}.bus-route{grid-template-columns:1fr;gap:0}.bus-stop{min-height:210px;padding:28px}.bus-line{height:100px}.bus-line i{height:14px}.bus-line svg{width:82px;margin:5px}.bus-stop h3{font-size:31px}}

/* La guía ocupa la pantalla sin agrandar las fichas */
.city-guide{height:100svh;min-height:620px;max-height:none}
.guide-menu,.guide-carousel-wrap{height:100%;justify-content:center}
@media(max-width:720px){.city-guide{height:auto;min-height:100svh}.guide-menu,.guide-carousel-wrap{height:auto}.guide-menu{min-height:38svh}.guide-carousel-wrap{min-height:62svh}}

/* Navegación legible y transición suave entre capítulos */
html{scroll-padding-top:76px}
.site-header{position:fixed;padding:17px 4vw;background:rgba(246,239,223,.91);border-bottom:1px solid rgba(102,112,85,.18);box-shadow:0 4px 18px rgba(66,70,53,.05);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.site-header .monogram{font-size:22px}
.site-header nav{gap:clamp(15px,2vw,30px)}
.site-header nav a{position:relative;font-size:10px;font-weight:500;letter-spacing:.13em;padding:7px 0}
.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:var(--green);transition:right .22s ease}
.site-header nav a:hover:after{right:0}
.event{padding-bottom:95px}
.city-guide{border-top:0;border-bottom:0;background-color:var(--paper)}
.guide-menu{background:transparent;border-top:0}
.guide-carousel-wrap{background:transparent}
.city-guide:before{display:block;content:"";position:absolute;z-index:1;left:0;right:0;top:0;height:75px;color:transparent;background:linear-gradient(to bottom,var(--paper),rgba(246,239,223,0));pointer-events:none}
@media(max-width:900px) and (min-width:761px){.site-header nav{gap:12px}.site-header nav a{font-size:9px;letter-spacing:.08em}}
@media(max-width:760px){html{scroll-padding-top:62px}.site-header{padding:13px 17px}.site-header nav{padding-top:78px;background:rgba(64,81,66,.98)}.site-header nav a{font-size:12px;letter-spacing:.15em}.event{padding-bottom:70px}.city-guide:before{height:45px}}

/* Altura fluida de la guía según la pantalla */
.city-guide{height:auto;min-height:calc(100svh - 65px)}
.guide-menu,.guide-carousel-wrap{height:auto;min-height:calc(100svh - 65px)}
@media(max-height:720px) and (min-width:721px){.guide-menu,.guide-carousel-wrap{padding-top:30px;padding-bottom:30px}.guide-menu h2{margin-bottom:24px;font-size:45px}.guide-menu button{padding-top:10px;padding-bottom:10px}.guide-carousel-heading{margin-bottom:16px}.guide-card{min-height:260px}.guide-carousel-wrap,.guide-menu{min-height:calc(100svh - 58px)}}
@media(max-width:720px){.city-guide,.guide-menu,.guide-carousel-wrap{height:auto;min-height:0}.guide-menu{padding-top:36px;padding-bottom:32px}.guide-carousel-wrap{padding-top:32px;padding-bottom:34px}}

/* Navegación principal más grande y activa */
.site-header{min-height:74px;padding-top:16px;padding-bottom:16px}
.site-header .monogram{font-size:27px}
.site-header nav a{font-size:12px;letter-spacing:.1em;padding:9px 2px;opacity:.67;transition:opacity .2s,color .2s}
.site-header nav a:hover,.site-header nav a.active{color:#314737;opacity:1}
.site-header nav a.active:after{right:0;height:2px}
@media(max-width:1050px){.menu-button{display:block;z-index:2}.site-header nav{position:absolute;right:0;top:0;width:min(330px,84vw);height:100vh;padding:92px 34px;flex-direction:column;gap:17px;color:var(--paper);background:rgba(64,81,66,.98);transform:translateX(100%);transition:.3s}.site-header nav.open{transform:none}.site-header nav a{font-size:14px;letter-spacing:.14em;padding:10px 0}.site-header nav a:hover,.site-header nav a.active{color:var(--paper)}.menu-button span:not(.sr-only){background:var(--dark)}}

/* Corrección de la franja diagonal y tipografía clásica de la guía */
.city-guide:before{display:none!important;content:none!important;transform:none!important;background:none!important}
.guide-menu .eyebrow,.guide-carousel-heading .eyebrow{font-family:"Cormorant Garamond",Georgia,serif;font-size:17px;font-style:italic;font-weight:400;letter-spacing:.03em;text-transform:none}
.guide-menu h2{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.03em}
.guide-carousel-heading h3{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.02em}
.guide-menu button{font-family:"Cormorant Garamond",Georgia,serif;font-size:24px;font-style:italic;font-weight:400}
.guide-card .place-tag{font-family:"Cormorant Garamond",Georgia,serif;font-size:13px;font-style:italic;font-weight:400;letter-spacing:.02em;text-transform:none}
.guide-card h4{font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;font-style:italic;font-weight:500}
.guide-card>p{font-family:"Cormorant Garamond",Georgia,serif;font-size:17px;line-height:1.45}
.guide-card address{font-family:"Cormorant Garamond",Georgia,serif;font-size:15px;line-height:1.4}
@media(max-width:720px){.guide-menu .eyebrow,.guide-carousel-heading .eyebrow{font-size:15px}.guide-menu button{font-size:19px}.guide-card>p{font-size:16px}.guide-card address{font-size:14px}}

/* La barra comparte el mismo papel que la web */
.site-header{background-color:var(--paper);background-image:var(--texture);background-size:620px 620px;border-bottom:1px solid rgba(102,112,85,.2);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}

/* Autobús de acuarela aprobado */
.bus-line img{width:170px;max-width:none;margin:8px -20px;mix-blend-mode:normal;filter:none;object-fit:contain;mask-image:none;-webkit-mask-image:none}
@media(max-width:760px){.bus-line img{width:145px;margin:3px 0}}

/* Fotografía desdibujada en el formulario */
.rsvp{grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr);gap:clamp(45px,8vw,120px);padding-left:max(4vw,24px);padding-right:max(8vw,30px);text-align:left}
.rsvp-photo{width:100%;height:min(70vh,680px);margin:0;position:relative;overflow:hidden;filter:saturate(.58) sepia(.08);mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 78%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 10%,#000 88%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 78%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 10%,#000 88%,transparent 100%);-webkit-mask-composite:source-in}
.rsvp-photo:after{content:"";position:absolute;inset:-10px;background:rgba(246,239,223,.06);pointer-events:none}
.rsvp-photo img{width:100%;height:100%;object-fit:cover;object-position:center 34%;filter:none}
.rsvp-logo{width:min(78%,330px);height:min(50vh,460px);margin-inline:auto;padding:34px 26px;box-sizing:border-box;border:1px solid var(--olive);border-radius:50%;overflow:hidden;filter:none;mask-image:none;-webkit-mask-image:none}
.rsvp-logo:after{display:none}
.rsvp-logo img{display:block;width:100%;height:100%;object-fit:contain}
.rsvp-copy{max-width:620px!important;margin:0!important;text-align:left}
.rsvp-copy p{margin-left:0;margin-right:0}
@media(max-width:760px){.rsvp{grid-template-columns:1fr;gap:20px;padding:65px 24px;text-align:center}.rsvp-photo{width:min(420px,100%);height:43vh;margin:0 auto}.rsvp-copy{margin:0 auto!important;text-align:center}.rsvp-copy p{margin-left:auto;margin-right:auto}}

/* Formulario de asistencia */
.rsvp{min-height:auto;padding-top:90px;padding-bottom:90px}
.wedding-form{width:100%;max-width:620px;margin-top:30px;text-align:left}
.open-form{margin-top:22px;padding:13px 28px;border:1px solid var(--green);color:var(--paper);background:var(--green);font:italic 500 19px "Cormorant Garamond",Georgia,serif;cursor:pointer;transition:.2s}
.open-form:hover{color:var(--green);background:transparent}
.form-modal{width:min(680px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:0;border:0;color:var(--dark);background:var(--paper);background-image:var(--texture);background-size:620px 620px;box-shadow:0 24px 80px rgba(35,50,39,.3)}
.form-modal::backdrop{background:rgba(32,47,36,.7);backdrop-filter:blur(3px)}
.form-modal-inner{position:relative;padding:clamp(28px,5vw,55px)}
.form-modal h2{margin:3px 0 0;color:var(--green);font:italic 400 clamp(42px,6vw,64px)/.95 "Cormorant Garamond",Georgia,serif}
.form-close{position:absolute;top:18px;right:20px;width:38px;height:38px;display:grid;place-items:center;padding:0 0 3px;border:1px solid rgba(63,81,66,.35);border-radius:50%;color:var(--green);background:rgba(246,239,223,.75);font:300 27px/1 Georgia,serif;text-align:center;cursor:pointer}
.form-close:hover{color:var(--paper);background:var(--green)}
body.modal-open{overflow:hidden}
.form-field{display:block;margin-bottom:22px}
.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form-field>span,.wedding-form legend{display:block;margin-bottom:7px;color:var(--green);font:italic 500 17px "Cormorant Garamond",Georgia,serif}
.wedding-form input[type="text"],.wedding-form textarea{width:100%;padding:11px 2px;border:0;border-bottom:1px solid rgba(63,81,66,.42);border-radius:0;color:#354437;background:transparent;font:400 15px "Cormorant Garamond",Georgia,serif;outline:none}
.wedding-form textarea{resize:vertical}
.wedding-form input[type="text"]:focus,.wedding-form textarea:focus{border-bottom-color:var(--green);box-shadow:0 1px var(--green)}
.wedding-form fieldset{margin:0 0 22px;padding:0;border:0}
.wedding-form fieldset label{display:inline-flex;align-items:center;justify-content:center;min-width:78px;margin:2px 8px 0 0;padding:8px 20px;border:1px solid rgba(78,98,77,.32);border-radius:2px;color:#596653;background:rgba(255,252,244,.38);font:italic 500 18px "Cormorant Garamond",Georgia,serif;cursor:pointer;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .2s}
.wedding-form fieldset label:hover{border-color:rgba(63,81,66,.7);color:var(--green);transform:translateY(-1px)}
.wedding-form fieldset label:has(input:checked){border-color:var(--green);color:var(--paper);background:var(--green);box-shadow:0 4px 12px rgba(49,71,55,.14)}
.wedding-form input[type="radio"]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wedding-form fieldset label:has(input:focus-visible){outline:2px solid #849070;outline-offset:3px}
.conditional[hidden]{display:none}
.bus-questions{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.bus-location{margin-top:4px!important;padding:15px 0 2px!important;border-top:1px solid var(--line)!important}
.bus-location-info{margin-top:16px;padding:12px 14px;border-left:2px solid rgba(115,123,84,.5);background:rgba(115,123,84,.07)}
.bus-location-info p{margin:0 0 5px;color:#536048;font:400 14px/1.4 "Cormorant Garamond",Georgia,serif}
.bus-location-info p:last-child{margin-bottom:0}
.bus-location-info strong{font-weight:500}
.form-submit{padding:12px 28px;border:1px solid var(--green);border-radius:2px;color:var(--paper);background:var(--green);box-shadow:0 5px 14px rgba(49,71,55,.13);font:500 17px "Cormorant Garamond",Georgia,serif;letter-spacing:.025em;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}
.form-submit:hover{background:#3b5441;box-shadow:0 7px 18px rgba(49,71,55,.18);transform:translateY(-1px)}
@media(max-width:760px){.wedding-form{text-align:left}.name-fields,.bus-questions{grid-template-columns:1fr;gap:0}.rsvp{padding-top:70px;padding-bottom:70px}.form-modal-inner{padding:55px 24px 28px}}

/* Formulario en tres pasos */
.form-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 32px;border-bottom:1px solid var(--line)}
.form-progress span{position:relative;padding:0 8px 12px;color:#9a9d89;text-align:center;font:italic 500 14px "Cormorant Garamond",Georgia,serif;transition:.25s}
.form-progress span:after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--green);transition:right .3s ease}
.form-progress span.active{color:var(--green);font-size:16px}
.form-progress span.active:after{right:0}
.form-step{display:none;min-height:355px;animation:form-step-in .35s ease}
.form-step.active{display:block}
.form-step h3{margin:0 0 25px;color:var(--green);font:italic 500 29px "Cormorant Garamond",Georgia,serif}
.step-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:28px}
.form-next,.form-back{min-width:125px;padding:11px 25px;border:1px solid var(--green);border-radius:2px;font:500 17px "Cormorant Garamond",Georgia,serif;letter-spacing:.025em;cursor:pointer;transition:transform .2s,box-shadow .2s,color .2s,background .2s}
.form-next{color:var(--paper);background:var(--green);box-shadow:0 5px 14px rgba(49,71,55,.13)}
.form-next:hover{background:#3b5441;box-shadow:0 7px 18px rgba(49,71,55,.18);transform:translateY(-1px)}
.form-back{min-width:auto;margin-right:auto;padding-inline:6px;border-color:transparent;border-bottom-color:rgba(63,81,66,.45);color:#66705f;background:transparent}
.form-back:hover{border-bottom-color:var(--green);color:var(--green)}
.form-next:focus-visible,.form-back:focus-visible,.form-submit:focus-visible{outline:2px solid #849070;outline-offset:3px}
@keyframes form-step-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@media(max-width:520px){.form-progress span{padding-inline:3px;font-size:12px}.form-progress span.active{font-size:13px}.form-step{min-height:390px}}

/* Monograma CP */
.site-header .logo-mark{width:62px;height:55px;display:block;position:relative;overflow:hidden}
.site-header .logo-mark img{position:absolute;width:50px;max-width:none;height:75px;left:6px;top:-10px;object-fit:cover;mix-blend-mode:multiply;filter:saturate(.9) contrast(1.12)}
@media(max-width:760px){.site-header .logo-mark{width:52px;height:48px}.site-header .logo-mark img{width:44px;height:66px;left:4px;top:-9px}}

.footer-logo{width:58px;height:58px;display:block;overflow:hidden}
.footer-logo svg{width:38px;height:58px;display:block;margin:auto;transform:scale(1.38)}

/* Sistema tipográfico común para todas las secciones */
.event-copy h2,.guide-menu h2,.guide-carousel-heading h3,.transport-copy h2,.rsvp h2,.wedding-list h2{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.025em;color:var(--green)}
.event-copy h2{font-size:clamp(43px,4.3vw,60px);line-height:.95}
.transport-copy h2,.rsvp h2,.wedding-list h2{font-size:clamp(58px,6vw,82px);line-height:.9}
.bus-stop h3,.guide-card h4,.transport-times h3{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500}

/* Adaptación móvil: imágenes contenidas y composiciones sin desbordamiento */
html,body{max-width:100%;overflow-x:hidden}
@media(max-width:760px){
  :root{--texture:url("assets/papel-acuarela-mobile.jpg")}
  .section{min-height:auto;padding:58px 22px}
  .hero{min-height:100svh;padding:82px 18px 38px}
  .hero-copy{width:100%}
  .hero-copy>picture{display:block;width:100%}
  .hero-venue{width:min(92vw,470px);height:min(31svh,270px);margin-bottom:28px}
  .hero h1{font-size:clamp(58px,20vw,76px)}
  .hero-date{margin:15px 0;font-size:18px}
  .hero-places{width:100%;max-width:420px}

  .event{gap:42px;padding-top:65px;padding-bottom:65px}
  .event-row{width:min(100%,430px);gap:8px;text-align:center}
  .event-row:last-child .event-image{grid-column:1;grid-row:1}
  .event-row:last-child .event-copy{grid-column:1;grid-row:2;text-align:center}
  .event-image{width:100%;height:clamp(165px,27svh,220px);margin:0 auto;overflow:hidden}
  .event-image picture{display:block;width:100%;height:100%}
  .event-image img{object-position:center}
  .event-image.church img{transform:scale(.84)}
  .event-image.venue img{transform:scale(.88)}
  .event-copy{padding:0 12px}
  .event-copy header,.event-row:last-child .event-copy header{justify-content:center;margin-bottom:8px}
  .event-copy h2{font-size:46px}
  .event-copy>p,.event-copy>a{font-size:17px}

  .guide-menu{display:block;padding:32px 18px 18px;border-bottom:0}
  .guide-menu .eyebrow{margin-bottom:5px;font-size:13px}
  .guide-menu h2{margin:0 0 20px;font-size:36px;line-height:1}
  .guide-menu h2 br{display:none}
  .guide-menu nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;border:0}
  .guide-menu button,.guide-menu button:first-child{min-height:52px;justify-content:center;align-items:center;gap:0;padding:8px 3px;border:1px solid rgba(63,81,66,.25);color:#536048;background:rgba(255,252,244,.3);font-size:21px;line-height:1;opacity:.68;text-align:center}
  .guide-menu button span{display:none}
  .guide-menu button.active{padding:8px 4px;border-color:var(--green);color:var(--paper);background:var(--green);opacity:1}
  .guide-menu button.active:before{display:none}
  .guide-carousel-wrap{padding:27px 0 34px 18px}
  .guide-carousel-heading{padding-right:18px}
  .guide-carousel-heading h3{font-size:34px}
  .guide-card{flex-basis:min(286px,78vw);min-height:260px;padding:22px 20px}

  .transport{min-height:auto;gap:28px;padding:62px 22px}
  .transport-copy h2{font-size:55px}
  .bus-stop{min-height:175px;padding:25px 23px}
  .bus-line{height:82px}
  .bus-line picture{display:block}
  .bus-line img{width:112px;margin:-8px 0}

  .rsvp{min-height:calc(100svh - 74px);align-content:center;padding:38px 22px;gap:8px}
  .rsvp-photo{width:min(78vw,330px);height:min(38svh,330px)}
  .rsvp-logo{width:min(40vw,175px);height:min(23svh,195px);padding:20px 15px}
  .rsvp h2{margin-bottom:14px;font-size:43px;line-height:.92}
  .rsvp-copy p{margin-bottom:14px;font-size:12px}
  .rsvp .open-form{margin-top:8px}
  .wedding-list{padding-top:70px;padding-bottom:70px}
  .wedding-list h2{font-size:55px}

  .form-modal{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow-y:auto}
  .form-modal-inner{padding:50px 20px 25px}
  .form-modal h2{font-size:40px}
  .form-step{min-height:0}
  .site-header nav{height:100dvh;overflow-y:auto}
}

@media(max-width:420px){
  .hero-venue{height:min(28svh,225px)}
  .hero-places p{font-size:14px}
  .event{gap:34px;padding-top:54px;padding-bottom:54px}
  .event-image{height:175px}
  .rsvp-photo{width:min(82vw,300px);height:285px}
  .rsvp-logo{width:min(40vw,160px);height:min(21svh,180px);padding:18px 14px}
  .guide-menu{padding-inline:14px}
  .guide-menu h2{font-size:32px}
  .guide-menu nav{gap:5px}
  .guide-menu button,.guide-menu button:first-child,.guide-menu button.active{min-height:50px;padding:7px 1px;font-size:19px}
  .form-progress span{font-size:11px}
  .form-progress span.active{font-size:12px}
  .step-actions{gap:10px}
  .form-next,.form-submit{min-width:0;padding:10px 18px;font-size:16px}
}

@media(max-width:760px) and (orientation:landscape){
  .hero-venue{height:31vh;max-width:430px}
  .event-image{height:45vh}
  .rsvp-photo{height:58vh;max-height:300px}
}

/* Cada capítulo ocupa una pantalla en móvil */
@media(max-width:760px) and (orientation:portrait){
  .hero,.event,.city-guide,.transport,.rsvp,.wedding-list{min-height:calc(100svh - 74px)}

  .event,.rsvp,.wedding-list{min-height:auto}

  .event{justify-content:center;gap:24px;padding:18px 18px 30px}
  .event-row{grid-template-columns:1fr;gap:14px}
  .event-image,.event-row:last-child .event-image{grid-column:1;grid-row:1;height:clamp(190px,32svh,260px)}
  .event-copy,.event-row:last-child .event-copy{grid-column:1;grid-row:2;padding:0 4px;text-align:center}
  .event-copy header,.event-row:last-child .event-copy header{justify-content:center;margin-bottom:5px;gap:8px}
  .event-copy h2{font-size:45px}
  .event-copy>p,.event-copy>a{font-size:16px;line-height:1.3}

  .city-guide{display:flex;flex-direction:column;justify-content:center}
  .guide-menu{flex:0 0 auto;padding-top:22px;padding-bottom:12px}
  .guide-menu h2{margin-bottom:13px;font-size:31px}
  .guide-menu button,.guide-menu button:first-child{min-height:46px}
  .guide-carousel-wrap{flex:0 0 auto;padding-top:14px;padding-bottom:20px}
  .guide-carousel-heading{margin-bottom:10px}
  .guide-carousel-heading h3{font-size:30px}
  .guide-card{min-height:220px;padding:18px}
  .guide-card h4{margin:12px 0 7px;font-size:25px}
  .guide-card>p{font-size:14px;line-height:1.3}
  .guide-card address{font-size:13px}

  .transport{justify-content:center;gap:18px;padding:34px 20px}
  .transport-copy h2{margin-bottom:10px;font-size:48px}
  .transport-copy>p:last-child{font-size:13px;line-height:1.35}
  .bus-stop{min-height:125px;padding:18px 20px}
  .bus-stop h3{margin:7px 0;font-size:27px}
  .bus-stop p{font-size:13px;line-height:1.35}
  .bus-line{height:52px;flex-direction:row}
  .bus-line i{width:28px;height:1px}
  .bus-line img{width:82px;margin:0 5px}

  .rsvp{padding-top:30px;padding-bottom:28px}
  .wedding-list{padding:30px 22px 42px}
  .wedding-list h2{margin-bottom:15px;font-size:51px}
}

@media(max-width:380px) and (orientation:portrait){
  .event{gap:16px;padding-block:20px}
  .event-image,.event-row:last-child .event-image{height:180px}
  .event-copy h2{font-size:40px}
  .event-copy>p,.event-copy>a{font-size:14px}
  .guide-card{min-height:205px}
  .transport{gap:12px;padding-block:25px}
  .bus-stop{min-height:112px;padding:14px 17px}
}
.guide-card .place-warning{align-self:flex-start;margin:12px 0 0;padding:5px 10px;color:#4e584b;background:#efe6d2;border:1px solid #e2d7bf;border-radius:3px;font-family:"Cormorant Garamond",Georgia,serif;font-size:15px;font-style:italic;font-weight:500;line-height:1.3}
.bus-person-title{margin:0 0 14px;padding-bottom:6px;color:var(--green);border-bottom:1px solid var(--line);font:italic 500 21px "Cormorant Garamond",Georgia,serif}
#companion-bus{margin-top:12px}
.carousel-controls button{border-color:#6c795f;background:#6c795f;color:#fbf5e7}
.carousel-controls button:hover{border-color:#6c795f;color:#6c795f;background:#fbf5e7}
.form-error{margin:0 0 14px;color:#9a4a3a;font:italic 500 16px "Cormorant Garamond",Georgia,serif}
.form-success{padding:30px 0 10px;text-align:center;color:var(--green)}
.form-success h3{margin:0 0 8px;font:italic 500 34px "Cormorant Garamond",Georgia,serif}
.form-success p{margin:0;font:400 18px "Cormorant Garamond",Georgia,serif}
.guide-card h4:first-child{margin-top:0}
.guide-card .hotel-deal{align-self:flex-start;margin:0 0 12px;padding:5px 10px;color:#4e584b;background:#efe6d2;border:1px solid #e2d7bf;border-radius:3px;font-family:"Cormorant Garamond",Georgia,serif;font-size:16px;font-weight:600;line-height:1.3}
.guide-card .hotel-details{display:grid;gap:9px;margin:0}
.guide-card .hotel-details dt{color:#e9dfc8;font-family:"Cormorant Garamond",Georgia,serif;font-size:14px;font-style:italic;letter-spacing:.02em}
.guide-card .hotel-details dd{margin:0;color:#fbf5e7;font-family:"Cormorant Garamond",Georgia,serif;font-size:17px;line-height:1.35}
@media(max-width:720px){.guide-card .hotel-details dd{font-size:16px}}
.guide-card .copy-code{margin-left:6px;padding:2px 10px;border:1px solid #efe6d2;border-radius:3px;color:#4e584b;background:#efe6d2;font:600 13px "Cormorant Garamond",Georgia,serif;vertical-align:1px;cursor:pointer;transition:background .2s,color .2s}
.guide-card .copy-code:hover{color:#efe6d2;background:transparent}
.event-copy>a{text-decoration:none}
.wedding-list .iban{display:inline-flex;align-items:center;gap:6px;margin:0 auto;font-size:inherit}
.iban-number{color:var(--green);font:400 16px "Cormorant Garamond",Georgia,serif;letter-spacing:.04em;white-space:nowrap}
.iban .copy-icon{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:50%;color:var(--olive);background:transparent;cursor:pointer;transition:color .2s,background .2s}
.iban .copy-icon:hover{color:var(--green);background:rgba(115,123,84,.1)}
.iban .copy-icon svg{width:16px;height:16px}
