:root{--color-primary:#D4C4A8;--color-secondary:#5C6B7A;--color-background:#FAF8F5;--color-text:#2C2C2C;--color-text-secondary:#6B6B6B;--color-accent:#C4A484;--color-dark:#1A1814;--color-white:#FFFFFF;--color-ochre:#D4A574;--color-sage:#7A8B6E;--color-terracotta:#C08B6B;--color-stone:#E8E2D9;--color-villa-cream:#F5F1E8;--font-heading:'Cormorant Garamond',Georgia,serif;--font-body:'Outfit',-apple-system,BlinkMacSystemFont,sans-serif;--space-xs:0.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:6rem;--space-xxl:8rem;--container-max:1200px;--container-padding:2rem;--transition-fast:0.2s ease;--transition-base:0.3s ease;--transition-slow:0.5s ease;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:50px;--shadow-sm:0 2px 8px rgba(0, 0, 0, 0.06);--shadow-md:0 4px 20px rgba(0, 0, 0, 0.08);--shadow-lg:0 8px 30px rgba(0, 0, 0, 0.1);--shadow-xl:0 12px 40px rgba(0, 0, 0, 0.12)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);font-size:1.125rem;line-height:1.7;color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--color-text);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent)}button{font-family:inherit;cursor:pointer;border:none;background:0 0}ul{list-style:none}.container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500;line-height:1.2}.section-title{font-size:clamp(2.5rem, 5vw, 3.5rem);text-align:center;margin-bottom:var(--space-sm);color:var(--color-text)}.section-subtitle{font-size:1.125rem;text-align:center;color:var(--color-text-secondary);max-width:600px;margin:0 auto var(--space-lg)}.section{padding:var(--space-xl) 0;contain:layout style}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.5rem 0;transition:background-color var(--transition-base),padding var(--transition-base)}.nav.scrolled{background-color:rgba(250,248,245,.98);padding:1rem 0;box-shadow:var(--shadow-sm)}.nav-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:var(--font-heading);font-size:1.5rem;font-weight:500;color:var(--color-white);letter-spacing:.05em;transition:color var(--transition-base)}.nav.scrolled .nav-logo{color:var(--color-text)}.nav-links{display:flex;gap:2.5rem}.nav-links a{font-size:.9rem;font-weight:400;letter-spacing:.02em;color:var(--color-white);transition:color var(--transition-base)}.nav.scrolled .nav-links a{color:var(--color-text)}.nav-links a:hover{color:var(--color-primary)}.nav-rsvp{font-size:.85rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.75rem 1.5rem;border-radius:50px;background-color:var(--color-white);color:var(--color-text);transition:all var(--transition-base)}.nav.scrolled .nav-rsvp{background-color:var(--color-text);color:var(--color-white)}.nav-rsvp:hover{transform:scale(1.02);box-shadow:0 4px 15px rgba(0,0,0,.1)}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:.5rem}.nav-toggle span{display:block;width:24px;height:2px;background-color:var(--color-white);transition:all var(--transition-base)}.nav.scrolled .nav-toggle span{background-color:var(--color-text)}.mobile-menu{position:fixed;top:0;left:0;right:0;bottom:0;background-color:var(--color-dark);z-index:999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all var(--transition-base)}.mobile-menu.active{opacity:1;visibility:visible}.mobile-menu-links{text-align:center}.mobile-menu-links li{margin-bottom:1.5rem}.mobile-menu-links a{font-family:var(--font-heading);font-size:2rem;color:var(--color-white);transition:color var(--transition-base)}.mobile-menu-links a:hover{color:var(--color-primary)}.mobile-rsvp{display:inline-block;margin-top:1rem;padding:1rem 2rem;background-color:var(--color-white);color:var(--color-text)!important;border-radius:50px;font-size:1rem!important;font-family:var(--font-body)!important;letter-spacing:.05em;text-transform:uppercase}.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-background{position:absolute;inset:0;z-index:0}.hero-image{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,24,20,.3) 0,rgba(26,24,20,.4) 50%,rgba(26,24,20,.6) 100%)}.hero-content{position:relative;z-index:1;text-align:center;color:var(--color-white);padding:0 var(--container-padding)}.hero-names{font-family:var(--font-heading);font-size:clamp(3rem, 10vw, 7rem);font-weight:400;letter-spacing:.02em;margin-bottom:1rem;opacity:0;transform:translateY(30px)}.hero-date{font-family:var(--font-heading);font-size:clamp(1.25rem, 3vw, 1.75rem);font-weight:400;letter-spacing:.1em;margin-bottom:.5rem;opacity:0;transform:translateY(20px)}.hero-location{font-size:1rem;font-weight:300;letter-spacing:.15em;text-transform:uppercase;opacity:0;transform:translateY(20px)}.countdown{display:flex;justify-content:center;gap:2rem;margin-top:3rem;opacity:0;transform:translateY(20px)}.countdown-item{text-align:center}.countdown-number{display:block;font-family:var(--font-heading);font-size:clamp(2rem, 5vw, 3.5rem);font-weight:400;line-height:1}.countdown-label{display:block;font-size:.75rem;font-weight:300;letter-spacing:.15em;text-transform:uppercase;margin-top:.5rem;opacity:.8}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:var(--color-white);opacity:.8;animation:bounce 2s infinite}@keyframes bounce{0%,100%,20%,50%,80%{transform:translateX(-50%) translateY(0)}40%{transform:translateX(-50%) translateY(-10px)}60%{transform:translateX(-50%) translateY(-5px)}}.about{background-color:var(--color-background)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:start}.about-text p{margin-bottom:1.5rem;color:var(--color-text-secondary)}.about-text p:first-child{font-size:1.25rem;color:var(--color-text)}.about-images{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:1rem}.about-image{position:relative;overflow:hidden;border-radius:var(--radius-sm)}.about-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.about-image:hover img{transform:scale(1.03)}.about-image-main{grid-column:span 2}.about-image-main img{height:400px}.about-image-secondary img,.about-image-travel img{height:200px}.image-caption{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);color:var(--color-white);font-size:.875rem;font-style:italic}.oakley-section{margin-top:var(--space-lg);text-align:center}.oakley-frame{display:inline-block;width:200px;height:200px;border-radius:50%;overflow:hidden;margin-bottom:1rem;position:relative;box-shadow:var(--shadow-md)}.oakley-strip{display:flex;height:100%;width:calc(200px * 3);will-change:transform}.oakley-strip img{width:200px;height:200px;flex-shrink:0;object-fit:cover;object-position:center center}.oakley-caption{font-family:var(--font-heading);font-style:italic;font-size:1.15rem;color:var(--color-text-secondary);max-width:400px;margin:0 auto;line-height:1.4}@media (max-width:768px){.oakley-frame{width:160px;height:160px}.oakley-strip{width:calc(160px * 3)}.oakley-strip img{width:160px;height:160px}.oakley-caption{font-size:1rem;max-width:300px;padding:0 1rem}}.schedule{background-color:var(--color-white)}.timeline{position:relative;max-width:900px;margin:0 auto;padding:var(--space-md) 0}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background-color:var(--color-primary);transform:translateX(-50%) scaleY(0);transform-origin:top;will-change:transform}.timeline-item{display:flex;align-items:flex-start;margin-bottom:var(--space-lg);position:relative}.timeline-left{flex-direction:row}.timeline-right{flex-direction:row-reverse}.timeline-marker{position:absolute;left:50%;transform:translateX(-50%);width:80px;height:80px;border-radius:50%;background-color:var(--color-background);border:2px solid var(--color-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.timeline-day{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary)}.timeline-date{font-family:var(--font-heading);font-size:1.75rem;font-weight:500;color:var(--color-text)}.timeline-card{width:calc(50% - 70px);padding:2rem;background-color:var(--color-background);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.timeline-left .timeline-card{margin-right:auto;text-align:right}.timeline-right .timeline-card{margin-left:auto;text-align:left}.timeline-card h3{font-size:1.5rem;margin-bottom:.5rem}.timeline-time{font-size:.9rem;font-weight:500;color:var(--color-accent);margin-bottom:1rem}.timeline-card p:last-of-type{color:var(--color-text-secondary);margin-bottom:1rem}.timeline-card-featured{background-color:var(--color-dark);color:var(--color-white)}.timeline-card-featured h3,.timeline-card-featured p:last-of-type{color:var(--color-white)}.timeline-card-featured .timeline-time{color:var(--color-primary)}.dress-code{display:inline-block;font-size:.8rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:.4rem 1rem;background-color:var(--color-primary);color:var(--color-dark);border-radius:50px}.timeline-card-featured .dress-code{background-color:var(--color-white)}.wear{background-color:var(--color-background)}.wear-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:var(--space-lg)}.wear-card{padding:2rem;background-color:var(--color-white);border-radius:var(--radius-md);text-align:center;transition:transform var(--transition-base),box-shadow var(--transition-base)}.wear-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.wear-day{font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.5rem}.wear-card h3{font-size:1.25rem;margin-bottom:.75rem}.wear-code{font-family:var(--font-heading);font-size:1.5rem;font-style:italic;color:var(--color-text);margin-bottom:1rem}.wear-card p:last-child{font-size:.95rem;color:var(--color-text-secondary)}.wear-card-featured{background-color:var(--color-dark);color:var(--color-white)}.wear-card-featured .wear-day{color:var(--color-primary)}.wear-card-featured .wear-code,.wear-card-featured h3,.wear-card-featured p:last-child{color:var(--color-white)}.packing-tips{max-width:700px;margin:0 auto;padding:2rem;background-color:var(--color-white);border-radius:var(--radius-md);border-left:4px solid var(--color-primary)}.packing-tips h3{font-size:1.25rem;margin-bottom:1rem}.packing-tips ul{list-style:disc;padding-left:1.5rem}.packing-tips li{margin-bottom:.75rem;color:var(--color-text-secondary)}.travel{background-color:var(--color-white)}.passport-notice{margin-bottom:var(--space-lg);padding:3rem;background:linear-gradient(135deg,var(--color-dark) 0,#2a2520 100%);border-radius:var(--radius-lg);position:relative;overflow:hidden}.passport-notice::before{content:'';position:absolute;top:0;right:0;width:300px;height:300px;background:radial-gradient(circle,rgba(212,196,168,.1) 0,transparent 70%);pointer-events:none}.passport-notice-content{position:relative;z-index:1}.passport-notice-label{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary);margin-bottom:1rem}.passport-notice-title{font-family:var(--font-heading);font-size:1.75rem;font-weight:500;color:var(--color-white);margin-bottom:1rem;line-height:1.3}.passport-notice-text{font-size:1rem;color:rgba(255,255,255,.7);max-width:600px;margin-bottom:1.5rem;line-height:1.6}.passport-notice-actions{display:flex;gap:1.5rem;flex-wrap:wrap}.passport-notice-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--color-white);padding:.75rem 1.25rem;background-color:rgba(255,255,255,.1);border-radius:var(--radius-md);transition:all var(--transition-base)}.passport-notice-link:hover{background-color:rgba(255,255,255,.2);color:var(--color-white)}.passport-notice-link svg{transition:transform var(--transition-base)}.passport-notice-link:hover svg{transform:translate(2px,-2px)}.travel-tabs{margin-bottom:var(--space-lg)}.tab-buttons{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid #e5e5e5;padding-bottom:0}.tab-button{font-size:.95rem;font-weight:500;padding:1rem 1.5rem;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all var(--transition-base)}.tab-button .tab-icon{display:none}.tab-button:hover{color:var(--color-text)}.tab-button.active{color:var(--color-text);border-bottom-color:var(--color-text)}.tab-content{display:none;animation:fadeIn .3s ease}.tab-content.active{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tab-content h3{font-size:1.5rem;margin-bottom:1rem}.tab-content h4{font-size:1.125rem;margin-top:2rem;margin-bottom:1rem}.tab-content p{color:var(--color-text-secondary);margin-bottom:1rem}.airport-table{margin-top:1.5rem;border-radius:var(--radius-md);overflow:hidden;border:1px solid #e5e5e5}.airport-row{display:grid;grid-template-columns:2fr 1fr 1.5fr 2fr;gap:1rem;padding:1rem 1.5rem;background-color:var(--color-background)}.airport-row:nth-child(odd){background-color:var(--color-white)}.airport-header{background-color:var(--color-dark)!important;color:var(--color-white);font-weight:500;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.airport-row span{font-size:.95rem}.travel-list{list-style:disc;padding-left:1.5rem}.travel-list li{margin-bottom:.75rem;color:var(--color-text-secondary)}.travel-list a{color:var(--color-accent);font-weight:500}.travel-note{font-size:.9rem;font-style:italic;color:var(--color-text-secondary);margin-top:1rem}.travel-link{display:inline-block;margin-top:1rem;font-weight:500;color:var(--color-accent);text-decoration:underline}.passport-table{width:100%;border-collapse:collapse;margin-top:1.5rem}.passport-table td,.passport-table th{padding:1rem;text-align:left;border-bottom:1px solid #e5e5e5}.passport-table th{font-weight:500;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;background-color:var(--color-background)}.passport-table td{font-size:.95rem;color:var(--color-text-secondary)}.passport-table a{color:var(--color-accent)}.flights-intro{margin-bottom:2rem}.flights-intro p{color:var(--color-text-secondary);margin-bottom:1rem}.flights-intro p:last-child{margin-bottom:0}.flight-search-container{margin-bottom:2rem}.skyscanner-widget-wrapper{background-color:var(--color-background);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid rgba(0,0,0,.05)}.skyscanner-widget-wrapper [data-skyscanner-widget]{font-family:var(--font-body)!important}.google-flights-option{text-align:center;padding:2rem;background-color:var(--color-background);border-radius:var(--radius-lg);border:1px solid rgba(0,0,0,.05)}.flights-buttons{display:flex;gap:1rem;justify-content:center}.google-flights-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;flex:1;max-width:320px;font-size:.95rem;font-weight:500;letter-spacing:.02em;padding:1rem 1.75rem;background-color:var(--color-white);color:var(--color-text);border:2px solid var(--color-text);border-radius:50px;transition:all var(--transition-base)}.google-flights-button:hover{background-color:var(--color-text);color:var(--color-white);transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.15)}.google-flights-icon{flex-shrink:0;transition:transform var(--transition-base)}.google-flights-button:hover .google-flights-icon{transform:rotate(-15deg) scale(1.1)}.travel-contact{text-align:center;padding:2rem;background-color:var(--color-background);border-radius:var(--radius-md)}.travel-contact p{margin-bottom:.5rem;color:var(--color-text-secondary)}.travel-contact a{font-family:var(--font-heading);font-size:1.5rem;color:var(--color-text)}.stay{position:relative;background-color:var(--color-background)}.stay-hero{position:relative;height:400px;overflow:hidden}.stay-hero img{width:100%;height:100%;object-fit:cover}.stay-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,var(--color-background) 100%)}.stay .container{position:relative;margin-top:-100px}.stay-content{max-width:700px;margin:0 auto;padding:3rem;background-color:var(--color-white);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);text-align:center}.stay-content h3{font-size:2rem;margin-bottom:.5rem}.stay-address{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:1.5rem}.stay-content p{color:var(--color-text-secondary);margin-bottom:1rem}.stay-link{display:inline-block;margin-top:1rem;font-weight:500;color:var(--color-accent);text-decoration:underline}.estate-map-container{max-width:900px;margin:3rem auto 0;text-align:center}.estate-map-title{font-size:1.6rem;margin-bottom:.5rem;color:var(--color-text)}.estate-map-subtitle{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:1.5rem}.estate-map-wrapper{position:relative;background:var(--color-villa-cream);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md);overflow:hidden}.estate-map{width:100%;height:auto;max-height:500px;display:block;border-radius:var(--radius-md)}.map-area{cursor:pointer;transition:filter .3s ease,opacity .3s ease}.map-area:hover{filter:url(#hoverGlow)}.map-area--active{filter:url(#activeGlow)}.map-area:hover circle,.map-area:hover ellipse,.map-area:hover path,.map-area:hover rect{opacity:1}.map-clickable{transition:fill .3s ease}.map-clickable:hover{fill:rgba(212,196,168,0.12)}@keyframes mapPulse{0%,100%{opacity:.6}50%{opacity:1}}.map-area--villa>path:first-of-type{animation:mapPulse 2s ease-in-out 3;animation-delay:1s}.estate-map-card{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:var(--color-white);border-radius:var(--radius-lg);border-top:3px solid var(--color-ochre);padding:1.25rem 1.5rem;box-shadow:var(--shadow-xl);min-width:260px;max-width:320px;text-align:left;opacity:0;visibility:hidden;transition:all .3s ease;z-index:10}.estate-map-card.active{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.estate-map-card-close{position:absolute;top:8px;right:12px;font-size:1.5rem;color:var(--color-text-secondary);background:0 0;border:none;cursor:pointer;line-height:1;padding:0;transition:color .2s ease}.estate-map-card-close:hover{color:var(--color-text)}.estate-map-card-icon{width:36px;height:36px;border-radius:50%;background:var(--color-villa-cream);display:flex;align-items:center;justify-content:center;margin-bottom:.75rem;color:var(--color-ochre)}.estate-map-card-icon svg{width:20px;height:20px}.estate-map-card-title{font-size:1.1rem;font-family:var(--font-heading);margin-bottom:.4rem;color:var(--color-text)}.estate-map-card-desc{font-size:.85rem;color:var(--color-text-secondary);line-height:1.5;margin:0}.estate-map-3d-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.6rem 1.2rem;background:var(--color-white);border:1px solid var(--color-primary);border-radius:25px;font-size:.9rem;font-weight:500;color:var(--color-text);transition:all .3s ease}.estate-map-3d-link:hover{background:var(--color-primary);color:var(--color-dark);transform:translateY(-2px);box-shadow:0 4px 12px rgba(212,196,168,.4)}.estate-map-3d-link svg{transition:transform .3s ease}.estate-map-3d-link:hover svg{transform:rotate(20deg)}@media (max-width:768px){.estate-map-container{margin:2rem auto 0}.estate-map-wrapper{padding:.5rem;overflow:visible;position:relative}.estate-map{min-width:auto;width:100%;height:auto;max-height:none;display:block}.map-area{cursor:pointer}.estate-map-card{position:fixed;bottom:0;left:0;right:0;top:auto;transform:translateY(100%);border-radius:var(--radius-lg) var(--radius-lg) 0 0;min-width:auto;max-width:none;padding:1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0));z-index:1001;box-shadow:0 -4px 20px rgba(0,0,0,.15);transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.estate-map-card.active{transform:translateY(0)}.estate-map-card-close{position:absolute;top:12px;right:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;background:var(--color-background);border-radius:50%}.estate-map-card-icon{width:44px;height:44px}.estate-map-card-icon svg{width:24px;height:24px}.estate-map-card-title{font-size:1.25rem;padding-right:50px}.estate-map-card-desc{font-size:.95rem;line-height:1.6}.estate-map-subtitle::after{content:""}.estate-map-3d-link{margin-top:1rem;width:100%;justify-content:center}}@media (max-width:480px){.estate-map-subtitle::after{content:" • Pinch to zoom";color:var(--color-accent);font-size:.85rem}}.things{background-color:var(--color-white)}.things-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.thing-card{background-color:var(--color-background);border-radius:var(--radius-md);overflow:hidden;transition:transform var(--transition-base),box-shadow var(--transition-base)}.thing-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl)}.thing-image{height:200px;overflow:hidden}.thing-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.thing-card:hover .thing-image img{transform:scale(1.05)}.thing-content{padding:1.5rem}.thing-type{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.5rem}.thing-content h3{font-size:1.25rem;margin-bottom:.75rem}.thing-content p{font-size:.95rem;color:var(--color-text-secondary);margin-bottom:1rem}.thing-content a{font-size:.9rem;font-weight:500;color:var(--color-accent)}.italy-list-cta{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,rgba(212,196,168,.1) 0,rgba(196,164,132,.1) 100%);border:1px solid rgba(212,196,168,.3);border-radius:var(--radius-lg);text-align:center}.italy-list-text{font-family:var(--font-heading);font-size:1.25rem;font-style:italic;color:var(--color-text);margin-bottom:1.25rem}.italy-list-button{display:inline-flex;align-items:center;gap:.6rem;padding:.875rem 1.75rem;background-color:var(--color-white);color:var(--color-text);font-size:.95rem;font-weight:500;border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.italy-list-button:hover{color:var(--color-text);transform:translateY(-2px);box-shadow:var(--shadow-md)}.google-maps-icon{flex-shrink:0}.gallery{background-color:var(--color-background)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-sm);cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.gallery-item:hover img{transform:scale(1.05)}.gallery-item-color{position:relative}.gallery-item-color .gallery-bw,.gallery-item-color .gallery-color,.gallery-item-color picture.gallery-bw,.gallery-item-color picture.gallery-color{position:absolute;inset:0;width:100%;height:100%;transition:opacity var(--transition-slow)}.gallery-item-color .gallery-bw img,.gallery-item-color .gallery-color img,.gallery-item-color picture.gallery-bw img,.gallery-item-color picture.gallery-color img{width:100%;height:100%;object-fit:cover}.gallery-item-color .gallery-bw,.gallery-item-color picture.gallery-bw{opacity:0}.gallery-item-color:hover .gallery-color,.gallery-item-color:hover picture.gallery-color{opacity:0}.gallery-item-color:hover .gallery-bw,.gallery-item-color:hover picture.gallery-bw{opacity:1}.gallery-item:first-child,.gallery-item:nth-child(6){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}.faq{background-color:var(--color-white)}.faq-list{max-width:800px;margin:0 auto}.faq-item{border-bottom:1px solid #e5e5e5}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0;font-family:var(--font-heading);font-size:1.25rem;font-weight:500;text-align:left;color:var(--color-text);transition:color var(--transition-base)}.faq-question:hover{color:var(--color-accent)}.faq-icon{flex-shrink:0;transition:transform var(--transition-base)}.faq-item.active .faq-icon{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--transition-base),padding var(--transition-base)}.faq-item.active .faq-answer{max-height:500px;padding-bottom:1.5rem}.faq-answer p{color:var(--color-text-secondary)}.faq-answer a{color:var(--color-accent)}.faq-inline-link{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.faq-inline-link:hover{color:var(--color-ochre)}.faq-weather-card{margin-top:1rem;padding:1rem 1.25rem;background:var(--color-villa-cream);border-radius:var(--radius-md);border-left:3px solid var(--color-ochre)}.faq-weather-card h5{font-size:.95rem;font-weight:500;margin-bottom:.75rem;color:var(--color-text)}.faq-weather-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:.75rem}.faq-weather-item{text-align:center}.faq-weather-label{display:block;font-size:.75rem;color:var(--color-text-secondary);margin-bottom:.25rem}.faq-weather-value{font-size:1.1rem;font-weight:500;color:var(--color-text)}.faq-weather-note{font-size:.8rem;color:var(--color-text-secondary);margin-bottom:.5rem}.faq-weather-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--color-accent)}.faq-weather-link svg{width:14px;height:14px}.faq-adapter-section{margin-top:1rem}.faq-adapter-diagram{display:flex;justify-content:center;gap:2rem;margin:1rem 0;padding:1rem;background:var(--color-villa-cream);border-radius:var(--radius-md)}.faq-adapter-type{text-align:center}.faq-adapter-type svg{width:60px;height:60px;color:var(--color-text-secondary)}.faq-adapter-label{display:block;font-size:.8rem;font-weight:500;margin-top:.5rem;color:var(--color-text)}.faq-adapter-products{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.faq-adapter-link{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;background:var(--color-terracotta);color:#000;font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.faq-adapter-link:hover{background:#a87659;color:#000;transform:translateY(-1px)}.faq-adapter-link svg{width:14px;height:14px}.faq-adapter-intro{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.75rem}@media (max-width:480px){.faq-weather-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.faq-adapter-diagram{gap:1.5rem}.faq-adapter-type svg{width:50px;height:50px}.faq-adapter-products{flex-direction:column}}.rsvp{background-color:var(--color-dark);color:var(--color-white);text-align:center;padding:var(--space-xxl) 0}.rsvp .section-title{color:var(--color-white)}.rsvp-content{max-width:600px;margin:0 auto}.rsvp-deadline{font-size:1.125rem;color:var(--color-primary);margin-bottom:2rem}.rsvp-button{display:inline-block;font-size:1rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:1.25rem 3rem;background-color:var(--color-white);color:var(--color-dark);border-radius:50px;transition:all var(--transition-base)}.rsvp-button:hover{transform:scale(1.02);box-shadow:0 10px 30px rgba(255,255,255,.2);color:var(--color-dark)}.honeymoon-fund{background-color:var(--color-background);text-align:center}.honeymoon-fund-content{max-width:600px;margin:0 auto}.honeymoon-fund-content p{color:var(--color-text-secondary);margin-bottom:1rem}.honeymoon-lead{font-family:var(--font-heading);font-size:1.5rem;font-style:italic;color:var(--color-text)!important}.venmo-button{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.5rem;font-size:.9rem;font-weight:500;letter-spacing:.05em;padding:1rem 2rem;background-color:#008cff;color:var(--color-white);border-radius:50px;transition:all var(--transition-base);box-shadow:0 4px 15px rgba(0,140,255,.3)}.venmo-button:hover{background-color:#0074d4;color:var(--color-white);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,140,255,.4)}.venmo-logo{flex-shrink:0;transition:transform var(--transition-base)}.venmo-button:hover .venmo-logo{transform:scale(1.1)}.footer{position:relative;background-color:var(--color-villa-cream);background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d4c4a8' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");padding:var(--space-lg) 0}.footer-content{display:flex;align-items:center;justify-content:center;gap:3rem;max-width:900px;margin:0 auto}.footer-quote-block{text-align:left;max-width:400px;margin:0;padding:0;border:none}.footer-quote-italian{font-family:var(--font-heading);font-style:italic;font-size:1.15rem;color:var(--color-text);line-height:1.4;margin:0 0 .5rem 0;letter-spacing:.01em}.footer-quote-english{font-family:var(--font-heading);font-style:italic;font-size:.9rem;color:var(--color-text-secondary);line-height:1.4;margin:0 0 .75rem 0;opacity:.8}.footer-quote-attribution{display:block;font-family:var(--font-body);font-style:normal;font-size:.7rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);opacity:.9}.footer-info{text-align:center}.footer-names{font-family:var(--font-heading);font-size:1.5rem;margin-bottom:.25rem}.footer-date{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:.5rem}.footer-email{display:inline-block;font-size:.85rem;color:var(--color-accent)}.footer-credit{font-size:.75rem;color:var(--color-text-secondary);margin-top:.5rem}@media (max-width:768px){.footer-content{flex-direction:column;gap:2rem;text-align:center}.footer-quote-block{text-align:center;max-width:320px;margin:0 auto}.footer-quote-italian{font-size:1.1rem}.footer-quote-english{font-size:.85rem}}.gallo-nero{position:absolute;bottom:12px;left:20px;width:88px;height:88px;opacity:0;cursor:pointer;transition:opacity .4s ease,transform .3s ease}.footer:hover .gallo-nero{opacity:.18}.gallo-nero:hover{opacity:.6!important;transform:scale(1.15)}.gallo-nero img{width:100%;height:100%;object-fit:contain}.about{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23d4c4a8' fill-opacity='0.04'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.section-divider{display:flex;justify-content:center;align-items:center;padding:var(--space-md) 0;opacity:.35}.section-divider svg{width:120px;height:auto;color:var(--color-sage)}.section-divider--olive svg{color:var(--color-sage)}.section-divider--grape svg{color:var(--color-terracotta)}.section-divider--arch svg{color:var(--color-ochre);width:80px}.cypress-tree{position:fixed;right:20px;bottom:0;width:40px;height:400px;color:#5b6b4f;opacity:.18;pointer-events:none;z-index:10;overflow:hidden;will-change:transform;transform:scaleY(0);transform-origin:bottom center}.cypress-tree svg{position:absolute;bottom:0;left:0;width:100%;height:400px}.rsvp-overlay{position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,var(--color-dark) 0,#2a2620 100%);opacity:0;visibility:hidden;overflow:hidden}.rsvp-overlay.active{visibility:visible}.rsvp-overlay-content{position:relative;width:100%;height:100%}.rsvp-passport{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:100px;color:var(--color-primary);opacity:0;will-change:transform,opacity}@media (min-width:768px){.rsvp-passport{width:100px;height:125px}}.rsvp-passport svg{width:100%;height:100%}.stamp-circle{transform-origin:center}.rsvp-cloud{position:absolute;top:50%;left:50%;color:rgba(255,255,255,.08);opacity:0;will-change:transform,opacity}.rsvp-cloud-1{width:80px;height:40px;transform:translate(calc(-50% - 80px),calc(-50% - 60px))}.rsvp-cloud-2{width:60px;height:30px;transform:translate(calc(-50% + 60px),calc(-50% - 80px))}@media (min-width:768px){.rsvp-cloud-1{width:100px;height:50px;transform:translate(calc(-50% - 120px),calc(-50% - 80px))}.rsvp-cloud-2{width:80px;height:40px;transform:translate(calc(-50% + 100px),calc(-50% - 100px))}}.rsvp-contrail{position:absolute;inset:0;width:100%;height:100%;color:rgba(255,255,255,.15);pointer-events:none}.rsvp-airplane{position:absolute;width:40px;height:40px;color:var(--color-primary);opacity:0;will-change:transform,opacity;transform-origin:center center}@media (min-width:768px){.rsvp-airplane{width:56px;height:56px}}.rsvp-airplane svg{width:100%;height:100%}.rsvp-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:60px;color:var(--color-primary);opacity:0;will-change:transform,opacity}@media (min-width:768px){.rsvp-rings{width:140px;height:84px}}.rsvp-rings svg{width:100%;height:100%}.rsvp-champagne{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:140px;height:80px;display:flex;justify-content:center;align-items:flex-end;opacity:0}@media (min-width:768px){.rsvp-champagne{width:180px;height:100px}}.champagne-left,.champagne-right{width:40px;height:80px;color:var(--color-primary);will-change:transform}@media (min-width:768px){.champagne-left,.champagne-right{width:50px;height:100px}}.champagne-left{transform-origin:bottom right}.champagne-right{transform-origin:bottom left}.rsvp-sparkles{position:absolute;inset:0;pointer-events:none}.rsvp-sparkle{position:absolute;width:6px;height:6px;background:radial-gradient(circle,var(--color-primary) 0,transparent 70%);border-radius:50%;opacity:0;will-change:transform,opacity}@keyframes sparkle-burst{0%{opacity:1;transform:translate(-50%,-50%) scale(0)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(.5)}}