:root{--cream:#fcf7ee;--cream-2:#f2eadc;--green:#777d3e;--olive:#bbb14b;--terracotta:#c54e34;--pink:#ed9aa1;--orange:#f58124;--ink:#343b27;--petrol:#3d492c;--line:#dad8c5}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.75 'DM Sans',sans-serif}body.lang-it .es,body.lang-it .en,body.lang-es .it,body.lang-es .en,body.lang-en .it,body.lang-en .es{display:none}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3,.script{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.08}h2{font-size:clamp(38px,4.5vw,65px);color:var(--green)}h3{font-size:30px}p+p{margin-top:20px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--terracotta);outline-offset:5px}section{padding:100px 6vw}.wrap{max-width:1160px;margin:auto}.label,.eyebrow{font-size:13px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--green)}.sec-head{margin-bottom:50px}.sec-head h2{margin-top:14px}.skip{position:fixed;top:-100px;z-index:100;background:var(--cream);padding:10px}.skip:focus{top:0}nav{position:sticky;top:0;z-index:30;min-height:86px;padding:16px 5vw;display:flex;align-items:center;gap:35px;background:var(--cream);border-bottom:1px solid var(--line)}.wordmark{font:italic 38px/1 'Cormorant Garamond',Georgia,serif;color:var(--terracotta);text-decoration:none;font-weight:600}.links{display:flex;gap:30px;margin:auto}.links a{font-size:14px;text-decoration:none}.links a:hover{color:var(--terracotta)}.lang-toggle{display:flex;gap:3px}.lang-toggle button{border:0;background:transparent;padding:8px;font-size:13px;color:var(--green)}.lang-toggle button.active{border-bottom:2px solid var(--terracotta);color:var(--terracotta)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:48% 52%;min-height:690px;margin:0 3vw 0 0}.hero-copy{padding:65px 5vw 45px 8vw;align-self:center}.hero-pre{font:italic 28px 'Cormorant Garamond',serif;color:var(--terracotta);margin-top:34px}h1{font-size:clamp(78px,8.4vw,130px);color:var(--green);letter-spacing:-.035em;line-height:.84;margin:24px 0 30px}h1 i{font-size:.66em;color:var(--olive);font-weight:400}.hero-note{font-size:17px;line-height:1.65}.hero-photo{position:relative;min-height:690px;max-height:860px;overflow:hidden;border-radius:48% 48% 0 0;margin-top:27px}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 41%;position:absolute}.photo-tag{position:absolute;bottom:26px;left:30px;font:italic 25px 'Cormorant Garamond',serif;color:white}.date-seal{position:absolute;right:22px;bottom:25px;background:var(--cream);width:112px;height:112px;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;color:var(--green);font:28px/1.05 'Cormorant Garamond',serif;outline:1px dashed var(--cream);outline-offset:6px}.date-seal span{font:9px/2.1 'DM Sans',sans-serif;letter-spacing:.08em}.button,.rsvp-btn{display:inline-flex;gap:35px;align-items:center;text-decoration:none;background:var(--terracotta);color:#fff;padding:14px 22px;font-size:14px;border:1px solid var(--terracotta)}.hero .button{margin-top:28px}.hero-place{font-size:11px;letter-spacing:.17em;margin-top:35px}.ribbon{margin-top:36px;padding:22px 8vw;display:flex;align-items:center;justify-content:space-between;background:repeating-linear-gradient(90deg,#fcb784 0 26px,#f89654 26px 52px);color:#65341d}.ribbon>span{font-size:12px;letter-spacing:.2em}.ribbon i{font:italic 31px 'Cormorant Garamond',serif}.intro{text-align:center;max-width:890px;margin:auto;padding-top:100px;padding-bottom:100px}.intro h2{margin:24px 0}.intro>p:last-child{max-width:610px;margin:auto}#storia{background:#efeede}#storia .sec-head{max-width:600px;margin-left:48%}.story{display:grid;grid-template-columns:42% 1fr;gap:6%;align-items:center}.photo{overflow:hidden}.story .photo{aspect-ratio:4/5;border-radius:200px 200px 0 0;margin-top:-140px}.photo img{width:100%;height:100%;object-fit:cover}.story .photo img{object-position:39% 50%}.story .text p{font-size:16px}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.tl-item{border-top:1px solid var(--green);padding-top:25px}.tl-dot{font:italic 40px 'Cormorant Garamond',serif;color:var(--terracotta);margin-bottom:20px}.when{display:block;font-size:14px;color:var(--green);margin-bottom:14px}.tl-item h3{margin-bottom:15px}.where{font-size:15px}.map-link{font-size:14px;display:inline-block;margin-top:20px;color:var(--terracotta)}.event-note{margin-top:36px;font-size:14px;color:var(--green)}.countdown{display:flex;gap:35px;justify-content:center;margin:45px auto 0}.countdown .box{text-align:center}.num{font:48px/1.2 'Cormorant Garamond',serif;color:var(--terracotta)}.cap{font-size:12px}.portraits{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:850px;margin:auto}#sposi{background:#efeede}#sposi .photo{max-height:420px}#sposi .sec-head{text-align:center}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.info-card{border-top:1px solid var(--line);padding:26px 0}.info-card h3{font-size:30px;color:var(--green);margin-bottom:20px}.info-card p{font-size:16px}.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}#viaggio{background:#efeede}.travel-grid h3{margin-bottom:20px}.travel-grid p{font-size:16px}.accommodation-box{max-width:750px}.discount-badge{font-size:14px}.cta-link{color:var(--terracotta);font-size:15px}.booking-links{display:flex;gap:15px;flex-wrap:wrap;margin:18px 0}.booking-links a{font-size:14px}.flight-form{margin-top:25px}.flight-form label{display:block;font-size:14px;margin-top:12px}.flight-form input,.flight-form select{width:100%;padding:11px;border:1px solid #a6ab82;background:var(--cream);color:var(--ink);border-radius:0}.flight-dates{display:grid;grid-template-columns:1fr 1fr;gap:15px}.flight-form button{margin-top:20px}.form-error{color:#a63222;font-size:14px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.g-item{border:0;padding:0;position:relative;overflow:hidden;background:var(--cream-2);aspect-ratio:3/4}.g-item img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.g-item:hover img{transform:scale(1.025)}.g-item:nth-child(3n+2){margin-top:45px}.g-item .zoom{position:absolute;bottom:12px;right:15px;background:var(--cream);width:30px;height:30px;border-radius:50%;font-size:20px;color:var(--green)}.gallery-sub{max-width:500px;margin-top:18px}.gallery-note{font-size:14px;margin-top:25px}.faq-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:70px}#faq{background:#efeede}details{border-top:1px solid #ced1b4;padding:20px 0}details:last-child{border-bottom:1px solid #ced1b4}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;font-weight:500;font-size:16px}summary:after{content:'+';font-size:24px;color:var(--terracotta)}details[open] summary:after{content:'−'}details p{margin-top:15px;font-size:15px}.rsvp-card{text-align:center;max-width:720px;margin:auto;border:1px solid var(--olive);outline:1px solid var(--olive);outline-offset:9px;padding:65px 40px}.rsvp-card h2{font-size:64px}.rsvp-card p{margin:25px auto;max-width:520px}.rsvp-note{font-size:14px}.rsvp-card>a:last-child{font-size:14px;display:block;margin-top:22px}footer{background:var(--green);color:var(--cream);padding:50px 6vw;text-align:center}footer .script{font-size:70px;font-style:italic}footer p{font-size:12px;letter-spacing:.16em;margin-top:20px}.lightbox{border:0;background:#20251f;color:white;width:min(1100px,95vw);max-width:95vw;padding:50px 20px 20px}.lightbox::backdrop{background:#161b16e8}.lightbox img{max-height:76vh;margin:auto;object-fit:contain}.lightbox button{border:1px solid #ffffff60;background:none;color:white;padding:6px 14px}.lightbox .close{position:absolute;right:14px;top:10px}.lightbox-controls{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.lightbox-index{font-size:14px}.invites{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}.invites img{width:100%;max-height:540px;object-fit:contain}.brand-banner{width:100%;max-height:150px;object-fit:cover}.muted{font-size:14px;color:var(--green)}
@media(min-width:1600px){.hero{max-width:1500px;margin:auto}.hero-copy{padding-left:60px}}
@media(max-width:1000px){nav{gap:20px}.links{gap:18px}.hero{min-height:620px}.hero-photo{min-height:620px}.hero-copy{padding-left:6vw}h1{font-size:90px}.hero-note{font-size:16px}.travel-grid{gap:40px}}
@media(max-width:760px){nav{min-height:72px;padding:12px 5vw;gap:14px}.wordmark{font-size:32px}.lang-toggle{margin-left:auto}.menu-toggle{display:block;border:0;background:none;color:var(--green);font-size:23px;padding:3px 6px}.links{display:none;position:absolute;top:72px;left:0;right:0;padding:22px;background:var(--cream);border-bottom:1px solid var(--line)}.links.open{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 25px}.hero{display:flex;flex-direction:column;margin:0;min-height:0}.hero-copy{text-align:center;padding:45px 24px 30px}.hero-pre{margin-top:22px;font-size:25px}h1{font-size:84px;line-height:.94;margin:18px 0 24px}h1 br{display:none}h1 i{display:block;line-height:.7;font-size:43px;margin:6px}.hero-note{font-size:16px}.hero .button{margin-top:24px}.hero-place{margin-top:25px}.hero-photo{min-height:560px;margin:5px 6vw 0;border-radius:48% 48% 0 0}.ribbon{margin-top:28px;padding:20px 5vw}.ribbon i{font-size:24px}.ribbon>span{font-size:10px}.intro,section{padding:65px 6vw}.intro h2{font-size:40px}.intro>p:last-child{font-size:16px}#storia .sec-head{margin-left:0;max-width:none}.story{grid-template-columns:1fr;gap:30px}.story .photo{margin-top:0;aspect-ratio:4/3;border-radius:120px 120px 0 0}.sec-head{margin-bottom:30px}.timeline{grid-template-columns:1fr;gap:26px}.tl-item{padding-left:58px;position:relative}.tl-dot{position:absolute;left:0;top:20px;font-size:34px}.countdown{gap:26px}.num{font-size:38px}.portraits{gap:22px}.portraits h3{font-size:25px}.portraits p{font-size:14px}#sposi .photo{aspect-ratio:3/4!important}.info-grid,.travel-grid,.faq-layout{grid-template-columns:1fr;gap:28px}.gallery{grid-template-columns:1fr 1fr;gap:12px}.g-item:nth-child(3n+2){margin-top:0}.g-item:nth-child(even){transform:translateY(24px)}.gallery{margin-bottom:24px}.rsvp-card{padding:40px 22px}.rsvp-card h2{font-size:48px}.rsvp-card p{font-size:16px}.invites{gap:14px}footer .script{font-size:57px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Requested photo framing */
.hero-photo>img{object-position:45% 50%}#storia .story .photo img{object-position:40% 50%}

/* Guest accommodation and schematic area guide */
.stay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.stay-card{padding:28px 24px;background:var(--cream-2);border-top:3px solid var(--green);display:flex;flex-direction:column}.stay-card:nth-child(2){border-color:var(--terracotta)}.stay-card:nth-child(3){border-color:var(--orange)}.stay-area{font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--green);margin-bottom:10px}.stay-card h3{font-size:1.55rem;margin-bottom:18px}.stay-card>p:not(.stay-area){font-size:1.05rem;line-height:1.6;margin-bottom:24px}.stay-link{margin-top:auto;font-size:1rem;color:var(--terracotta);font-weight:600}.stay-promo{margin-top:30px;border:1px solid var(--olive);padding:26px;display:flex;gap:22px;align-items:center;flex-wrap:wrap}.stay-promo>div{flex:1;min-width:230px}.stay-promo .label{font-size:14px;letter-spacing:.08em}.stay-promo strong{font-size:1.7rem;color:var(--terracotta);letter-spacing:.08em}.stay-promo p{margin-top:8px}.stay-promo button{font:inherit;font-size:1rem;background:var(--green);color:var(--cream);border:0;padding:12px 20px;cursor:pointer}.stay-promo #promo-status{flex-basis:100%;font-size:1rem;margin:0}.stay-promo #promo-status:empty{display:none}.stay-map-jump{margin-top:24px;text-align:center}.map-intro{max-width:780px;margin:0 auto 28px;font-size:1.1rem}.area-map{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px;background:#edf0e2;padding:25px 22px 0;border:1px solid #c8cfb7;position:relative}.area-zone{padding-bottom:18px}.zone-label{font-size:14px;letter-spacing:.07em;font-weight:600;color:var(--green);margin-bottom:18px}.location-pin{display:flex;align-items:center;gap:10px;text-decoration:none;background:var(--cream);padding:14px 10px;margin-bottom:12px;border:1px solid #d5d6c6;min-height:86px}.location-pin>b{background:var(--terracotta);color:white;width:29px;height:29px;flex-shrink:0;border-radius:50%;text-align:center;line-height:29px;font-size:16px}.location-pin>span:nth-child(2){flex:1}.location-pin strong{display:block;font-size:17px;line-height:1.2;color:var(--petrol)}.location-pin small{display:block;font-size:14px;line-height:1.4;margin-top:5px}.location-pin:hover{border-color:var(--terracotta)}.map-water{grid-column:1/-1;text-align:center;background:#d2e3df;color:var(--petrol);padding:22px;margin:0 -22px;font-size:14px;letter-spacing:.25em}.map-caption{font-size:15px;line-height:1.6;margin-top:16px}.map-amazinn{margin-top:22px;font-size:1rem}.stay-link:focus-visible,.location-pin:focus-visible,#copy-promo:focus-visible{outline:3px solid var(--terracotta);outline-offset:4px}@media(max-width:760px){.stay-grid,.area-map{grid-template-columns:1fr}.area-zone{padding-bottom:0}.stay-promo{padding:22px}.stay-promo>div{min-width:0;flex-basis:100%}.map-water{grid-column:1}.stay-card{padding:24px}.map-intro{font-size:1rem}}

#alloggio .stay-card h3{font-size:30px}#alloggio .stay-card>p:not(.stay-area){font-size:16px}#alloggio .stay-promo strong{font-size:26px}.stay-promo button{font-family:inherit}.location-pin{min-height:105px}
