*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #FAF8F5;--color-bg-alt: #F0EDE7;--color-text: #4A5043;--color-text-light: #8B9A7D;--color-accent: #C4785A;--color-accent-light: #8B9A7D;--color-border: #DDD9D2;--font-serif: "Playfair Display", Georgia, serif;--font-sans: "Raleway", -apple-system, BlinkMacSystemFont, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-weight:300;color:var(--color-text);background-color:var(--color-bg);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-text);text-decoration:none;transition:color .3s ease}a:hover{color:var(--color-accent)}img{max-width:100%;height:auto}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1rem 2rem;transition:background-color .3s ease,box-shadow .3s ease;background:transparent}.header:not(.header--scrolled) .header__date,.header:not(.header--scrolled) .header__link{color:var(--color-bg);text-shadow:0 1px 4px rgba(0,0,0,.4)}.header:not(.header--scrolled) .header__link:hover{color:var(--color-bg-alt)}.header:not(.header--scrolled) .header__burger span{background-color:var(--color-bg);box-shadow:0 1px 3px #0000004d}.header--scrolled{background-color:color-mix(in srgb,var(--color-bg) 95%,transparent);box-shadow:0 1px 0 var(--color-border)}.header__container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header__date{font-family:var(--font-serif);font-size:.95rem;letter-spacing:.15em;color:var(--color-text);transition:color .3s ease,text-shadow .3s ease}.header__nav{display:flex;gap:2rem}.header__link{font-size:.8rem;font-weight:400;letter-spacing:.05em;color:var(--color-text-light);transition:color .3s ease,text-shadow .3s ease}.header__link:hover{color:var(--color-accent)}.header__burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.header__burger span{width:22px;height:1.5px;background-color:var(--color-text);transition:all .3s ease}@media(max-width:768px){.header{padding:.75rem 1.25rem}.header__burger{display:flex}.header__nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background-color:var(--color-bg);border-bottom:1px solid var(--color-border);padding:1rem 0}.header__nav--open{display:flex}.header__link{padding:.75rem 2rem;font-size:.85rem}}.hero{position:relative;height:100vh;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding-bottom:8vh;background-image:url(/lago-maggiore.jpg);background-size:cover;background-position:center 35%;background-color:var(--color-bg-alt);overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#faf8f500 0% 55%,#faf8f566 70%,#faf8f5d9 85%,#faf8f5 95%);z-index:1}.hero__bottom{position:relative;z-index:2;animation:fadeInUp 1.2s ease .5s forwards;opacity:0}.hero__names{font-family:var(--font-serif);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:300;letter-spacing:.05em;color:var(--color-text);line-height:1.2;text-shadow:0 1px 8px rgba(250,248,245,.6)}.hero__ampersand{font-family:Cormorant Garamond,serif;font-style:normal;font-weight:400;color:var(--color-accent);display:inline-block;margin:0 .2em;font-size:.7em;vertical-align:middle}.hero__date{font-family:var(--font-serif);font-size:clamp(1rem,2vw,1.3rem);font-weight:300;letter-spacing:.3em;color:var(--color-text-light);margin-top:1.5rem;text-shadow:0 1px 6px rgba(250,248,245,.5)}.hero__location{font-size:.9rem;font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-light);margin-top:.75rem;text-shadow:0 1px 6px rgba(250,248,245,.5)}@media(max-width:768px){.hero{height:100vh;padding:2rem 1.5rem 6vh;background-position:60% 30%}}.il-programma{padding:6rem 2rem;background-color:var(--color-bg)}.il-programma__container{max-width:1000px;margin:0 auto}.il-programma__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;text-align:center;margin-bottom:4rem;color:var(--color-text)}.il-programma__grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.programma-card{text-align:center;padding:3rem 2rem;border:1px solid var(--color-border);border-radius:2px}.programma-card__time{font-family:var(--font-serif);font-style:italic;font-size:clamp(1.5rem,3vw,2rem);color:var(--color-accent);margin-bottom:1rem}.programma-card__title{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;margin-bottom:1.5rem}.programma-card__location{font-size:.95rem}.programma-card__venue{font-style:italic;color:var(--color-accent);margin:.5rem 0}.programma-card__address{font-size:.85rem;color:var(--color-text-light);margin-bottom:1.5rem}.programma-card__link{display:inline-block;padding:.6rem 1.8rem;border:1px solid var(--color-text);border-radius:50px;font-size:.8rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text);transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.programma-card__link:hover{background-color:var(--color-text);color:var(--color-bg)}.il-programma__note{display:flex;align-items:flex-start;gap:1rem;margin-top:3rem;padding:1.5rem 2rem;background-color:var(--color-bg-alt);border-left:3px solid var(--color-accent-light)}.il-programma__note-icon{flex-shrink:0;color:var(--color-accent-light);margin-top:.15rem}.il-programma__note-text{font-size:.9rem;line-height:1.6}.il-programma__note-text a{text-decoration:underline;text-underline-offset:2px}@media(max-width:768px){.il-programma{padding:4rem 1.5rem}.il-programma__grid{grid-template-columns:1fr}.programma-card{padding:2rem 1.5rem}.il-programma__note{padding:1rem 1.25rem}}.come-arrivare{padding:6rem 2rem;background-color:var(--color-bg-alt)}.come-arrivare__container{max-width:1000px;margin:0 auto}.come-arrivare__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;text-align:center;margin-bottom:4rem;color:var(--color-text)}.come-arrivare__block{margin-bottom:3.5rem}.come-arrivare__block-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:400;text-align:center;margin-bottom:1.5rem}.come-arrivare__block-intro{text-align:center;font-size:.95rem;max-width:600px;margin:0 auto .5rem}.come-arrivare__from-airport{text-align:center;font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:2rem 0 1.5rem}.come-arrivare__options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.option-card{display:flex;flex-direction:column;background:var(--color-bg);padding:2rem 1.5rem;border-radius:4px;box-shadow:0 2px 12px #0000000a}.option-card__title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;text-align:center;margin-bottom:1.25rem}.option-card__text{font-size:.88rem;line-height:1.6;margin-bottom:.5rem}.option-card__tips{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);font-size:.82rem;color:var(--color-text-light)}.option-card__tips p:before{content:"·  "}.option-card__link{display:inline-block;margin-top:auto;padding:.6rem 1.5rem;border:1px solid var(--color-text);border-radius:50px;font-size:.78rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;text-align:center;color:var(--color-text);transition:all .3s ease;box-shadow:0 2px 8px #0000000a;align-self:center}.option-card__link:hover{background-color:var(--color-text);color:var(--color-bg)}.come-arrivare__train-content{max-width:600px;margin:0 auto}.come-arrivare__train-step{display:flex;gap:1.25rem;align-items:flex-start;margin-bottom:1.5rem}.come-arrivare__train-label{flex-shrink:0;width:32px;height:32px;border-radius:50%;background-color:var(--color-accent);color:var(--color-bg);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;margin-top:.15rem}.come-arrivare__train-text{font-size:.95rem}.come-arrivare__train-detail{font-size:.85rem;color:var(--color-text-light);margin-top:.25rem}.come-arrivare__train-note{font-size:.85rem;color:var(--color-text-light);font-style:italic;margin:1rem 0 1.5rem;text-align:center}.come-arrivare__maps{margin-top:2rem;padding-top:3rem;border-top:1px solid var(--color-border)}.come-arrivare__maps-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;text-align:center;margin-bottom:2rem}.come-arrivare__maps-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.map-link{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem;border:1px solid var(--color-border);border-radius:4px;transition:all .3s ease}.map-link:hover{border-color:var(--color-accent);box-shadow:0 4px 16px #0000000f}.map-link__name{font-family:var(--font-serif);font-size:1rem;margin-bottom:.5rem}.map-link__address{font-size:.82rem;color:var(--color-text-light);margin-bottom:1rem}.map-link__cta{font-size:.78rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent)}@media(max-width:768px){.come-arrivare{padding:4rem 1.5rem}.come-arrivare__options-grid,.come-arrivare__maps-grid{grid-template-columns:1fr}}.dove-dormire{padding:6rem 2rem;background-color:var(--color-bg)}.dove-dormire__container{max-width:1000px;margin:0 auto}.dove-dormire__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;text-align:center;margin-bottom:2rem;color:var(--color-text)}.dove-dormire__intro{text-align:center;font-size:.95rem;max-width:650px;margin:0 auto 3.5rem;color:var(--color-text-light)}.dove-dormire__intro strong{color:var(--color-text);font-weight:400}.dove-dormire__hotels{margin-bottom:3rem}.dove-dormire__category-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;text-align:center;margin-bottom:.5rem}.dove-dormire__category-subtitle{text-align:center;font-size:.85rem;color:var(--color-text-light);font-style:italic;margin-bottom:1.5rem}.dove-dormire__hotels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dove-dormire__hotel{display:flex;flex-direction:column;padding:1.25rem;background-color:var(--color-bg-alt);border-radius:4px;font-size:.9rem}.dove-dormire__hotel em{font-style:normal;font-weight:400}.dove-dormire__star{font-size:.75rem;color:var(--color-accent);margin-top:.25rem}.dove-dormire__hotel-detail{font-size:.8rem;color:var(--color-text-light);margin-top:.35rem}.dove-dormire__category-note{text-align:center;font-size:.85rem;color:var(--color-text-light);font-style:italic;margin-top:1.25rem}.dove-dormire__categories{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-bottom:3rem;align-items:start}.dove-dormire__category{padding:2rem 1.5rem;background-color:var(--color-bg-alt);border-radius:4px}.dove-dormire__category .dove-dormire__category-title{margin-bottom:1.25rem}.dove-dormire__list{list-style:none;font-size:.9rem}.dove-dormire__list li{padding:.4rem 0;border-bottom:1px solid var(--color-border)}.dove-dormire__list li:last-child{border-bottom:none}.dove-dormire__list em{font-style:normal;font-weight:400}.dove-dormire__note{font-size:.8rem;color:var(--color-text-light)}.dove-dormire__inline-link{font-size:.82rem;color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.dove-dormire__text{font-size:.9rem;margin-bottom:1.25rem}.dove-dormire__category-link{display:inline-block;padding:.5rem 1.5rem;border:1px solid var(--color-text);border-radius:50px;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text);transition:all .3s ease;box-shadow:0 2px 8px #0000000a}.dove-dormire__category-link:hover{background-color:var(--color-text);color:var(--color-bg)}.dove-dormire__sites{padding-top:2rem;border-top:1px solid var(--color-border)}.dove-dormire__sites-title{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;text-align:center;margin-bottom:1.5rem}.dove-dormire__sites-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.dove-dormire__site-link{padding:.5rem 1.25rem;border:1px solid var(--color-border);border-radius:50px;font-size:.82rem;color:var(--color-text);transition:all .3s ease}.dove-dormire__site-link:hover{border-color:var(--color-accent);color:var(--color-accent)}@media(max-width:768px){.dove-dormire{padding:4rem 1.5rem}.dove-dormire__hotels-grid{grid-template-columns:repeat(2,1fr)}.dove-dormire__categories{grid-template-columns:1fr}}@media(max-width:480px){.dove-dormire__hotels-grid{grid-template-columns:1fr}}.rsvp{padding:6rem 2rem;background-color:var(--color-bg-alt)}.rsvp__container{max-width:800px;margin:0 auto;text-align:center}.rsvp__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;margin-bottom:1rem;color:var(--color-text)}.rsvp__subtitle{font-size:1rem;color:var(--color-text-light);margin-bottom:3rem}.rsvp__options{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.rsvp__option{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 2rem;background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;text-align:center}.rsvp__option--alt{background-color:var(--color-bg)}.rsvp__option-title{font-family:var(--font-serif);font-size:1.2rem;font-weight:400;margin-bottom:1rem}.rsvp__option-text{font-size:.9rem;color:var(--color-text-light);margin-bottom:1.5rem}.rsvp__form-link{display:inline-block;padding:.7rem 2rem;background-color:var(--color-accent);color:var(--color-bg);border-radius:50px;font-size:.85rem;font-weight:400;letter-spacing:.05em;transition:all .3s ease;box-shadow:0 2px 12px #c4a26540}.rsvp__form-link:hover{color:var(--color-bg);box-shadow:0 4px 16px #c4a26559;transform:translateY(-1px)}.rsvp__envelope-icon{margin-bottom:1rem}.rsvp__addresses{display:flex;flex-direction:column;gap:1.5rem}.rsvp__address{font-size:.9rem;line-height:1.6}.rsvp__address-name{font-weight:400;margin-bottom:.25rem}@media(max-width:768px){.rsvp{padding:4rem 1.5rem}.rsvp__options{grid-template-columns:1fr}}.lista-nozze{padding:6rem 2rem;background-color:var(--color-bg)}.lista-nozze__container{max-width:600px;margin:0 auto;text-align:center}.lista-nozze__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;margin-bottom:1.5rem;color:var(--color-text)}.lista-nozze__text{font-size:1rem;margin-bottom:1rem}.lista-nozze__text--muted{color:var(--color-text-light);font-style:italic}.lista-nozze__link{display:inline-block;margin-top:1rem;padding:.7rem 2rem;background-color:var(--color-accent);color:var(--color-bg);border-radius:50px;font-size:.85rem;font-weight:400;letter-spacing:.05em;transition:all .3s ease;box-shadow:0 2px 12px #c4a26540}.lista-nozze__link:hover{color:var(--color-bg);box-shadow:0 4px 16px #c4a26559;transform:translateY(-1px)}@media(max-width:768px){.lista-nozze{padding:4rem 1.5rem}}.lago-maggiore{padding:6rem 2rem;background-color:var(--color-bg-alt)}.lago-maggiore__container{max-width:900px;margin:0 auto}.lago-maggiore__label{display:block;text-align:center;font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.75rem}.lago-maggiore__title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:300;text-align:center;margin-bottom:2rem;color:var(--color-text)}.lago-maggiore__intro{text-align:center;font-size:.95rem;max-width:650px;margin:0 auto 3.5rem;color:var(--color-text-light);line-height:1.8}.lago-maggiore__intro p{margin-bottom:.75rem}.lago-maggiore__section{margin-bottom:2.5rem}.lago-maggiore__section:last-child{margin-bottom:0}.lago-maggiore__section-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:400;text-align:center;margin-bottom:2rem}.lago-maggiore__list{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.lago-maggiore__item{display:flex;flex-direction:column;padding:1.5rem;background-color:var(--color-bg);border-radius:4px}.lago-maggiore__item-name{font-family:var(--font-serif);font-size:1.05rem;font-weight:400;margin-bottom:.5rem}.lago-maggiore__item-description{font-size:.88rem;color:var(--color-text-light);line-height:1.6;margin-bottom:.75rem}.lago-maggiore__item-link{font-size:.82rem;color:var(--color-accent);text-decoration:underline;text-underline-offset:2px;align-self:flex-start}.lago-maggiore__restaurants-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.lago-maggiore__restaurant-zone{padding:1.5rem;background-color:var(--color-bg);border-radius:4px}.lago-maggiore__zone-name{font-family:var(--font-serif);font-size:1.1rem;font-weight:400;margin-bottom:1rem;color:var(--color-accent)}.lago-maggiore__restaurant-list{list-style:none}.lago-maggiore__restaurant-list li{padding:.4rem 0;border-bottom:1px solid var(--color-border)}.lago-maggiore__restaurant-list li:last-child{border-bottom:none}.lago-maggiore__restaurant-list a{font-size:.9rem;transition:color .3s ease}.lago-maggiore__restaurant-list a:hover{color:var(--color-accent)}@media(max-width:768px){.lago-maggiore{padding:4rem 1.5rem}.lago-maggiore__list,.lago-maggiore__restaurants-grid{grid-template-columns:1fr}}.footer{padding:3rem 2rem;text-align:center;background-color:var(--color-bg);border-top:1px solid var(--color-border)}.footer__container{max-width:600px;margin:0 auto}.footer__names{font-family:var(--font-serif);font-size:1.5rem;font-weight:300;letter-spacing:.05em}.footer__ampersand{font-style:italic;color:var(--color-accent);margin:0 .15em}.footer__divider{width:40px;height:1px;background-color:var(--color-accent);margin:1.25rem auto}.footer__date{font-size:.85rem;color:var(--color-text-light);letter-spacing:.1em}@media(max-width:768px){.footer{padding:3rem 1.5rem}}.app{display:flex;flex-direction:column;min-height:100vh}main{flex:1}
