.navbar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 3rem;background:#faf8f3eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);transition:background .4s ease,border-color .4s ease,backdrop-filter .4s ease}.navbar--transparent{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}.navbar--transparent .navbar-logo{color:#fff}.navbar--transparent .navbar-logo-sep{opacity:.5}.navbar--transparent .navbar-links a{color:#ffffffbf}.navbar--transparent .navbar-links a:hover,.navbar--transparent .navbar-links a.active{color:#fff}.navbar--transparent .navbar-links a:after{background:#fff}.navbar--transparent .navbar-logout{color:#fff9}.navbar--transparent .navbar-logout:hover{color:#fff}.navbar--transparent .navbar-burger span{background:#fff}.navbar-logo{display:flex;align-items:center;gap:.15rem;font-family:var(--font-display);font-size:1.5rem;font-weight:300;letter-spacing:.05em;color:var(--dark)}.navbar-logo-sep{opacity:.35;font-weight:200;margin:0 .1rem}.navbar-links{display:flex;gap:2.5rem;list-style:none}.navbar-links a{font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--medium);position:relative;padding-bottom:2px;transition:color .2s}.navbar-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--dark);transition:width .3s ease}.navbar-links a:hover,.navbar-links a.active{color:var(--dark)}.navbar-links a.active:after,.navbar-links a:hover:after{width:100%}.navbar-logout{background:none;border:none;font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--light);cursor:pointer;padding:0;transition:color .2s}.navbar-logout:hover{color:var(--dark)}.navbar-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px}.navbar-burger span{display:block;width:22px;height:1px;background:var(--dark);transition:all .3s}@media (max-width: 640px){.navbar{padding:1rem 1.5rem}.navbar-burger{display:flex;min-height:unset}.navbar-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--border);flex-direction:column;padding:1.5rem;gap:0}.navbar-links li{border-bottom:1px solid var(--border)}.navbar-links li:last-child{border-bottom:none}.navbar-links a,.navbar-logout{display:block;padding:1rem 0;font-size:.75rem}.navbar--transparent .navbar-links.open{background:var(--cream)}.navbar--transparent .navbar-links.open a{color:var(--medium)}.navbar--transparent .navbar-links.open a:hover,.navbar--transparent .navbar-links.open a.active{color:var(--dark)}.navbar--transparent .navbar-links.open a:after{background:var(--dark)}.navbar--transparent .navbar-links.open .navbar-logout{color:var(--light)}.navbar-links.open{display:flex}}.home{min-height:100vh}.home-hero{position:relative;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.home-hero-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:contrast(1.05)}.home-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#1c1c1a8c,#1c1c1a1a 35%,#1c1c1a73)}.home-hero-text{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem}.home-label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:#ffffffb3;margin-bottom:2rem}.home-title{display:flex;flex-direction:column;align-items:center;font-family:var(--font-display);font-weight:300;font-size:clamp(5rem,12vw,11rem);line-height:.9;color:#fff;letter-spacing:-.02em;margin-bottom:3rem;text-shadow:0 2px 30px rgba(0,0,0,.3)}.home-script{font-family:var(--font-script);font-size:clamp(2.5rem,5vw,5.5rem);font-weight:500;font-style:normal;line-height:1.2;color:#ffffffd9;text-shadow:none}.home-names-block{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 2.5rem;border:1px solid rgba(255,255,255,.35);background:#1c1c1a40;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.home-names{font-family:var(--font-display);font-size:1.15rem;font-weight:400;letter-spacing:.4em;text-transform:uppercase;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.4)}.home-names-sep{width:40px;height:1px;background:#ffffff80}.home-date-text{font-family:var(--font-display);font-size:.9rem;font-weight:300;letter-spacing:.35em;color:#ffffffe6;text-shadow:0 1px 8px rgba(0,0,0,.4)}.home-hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:scroll-fade-in 1.5s ease 1s both}@keyframes scroll-fade-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.home-hero-scroll-label{font-family:var(--font-body);font-size:.6rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:#ffffffbf}.home-hero-scroll-mouse{width:26px;height:42px;border:1.5px solid rgba(255,255,255,.6);border-radius:13px;display:flex;justify-content:center;padding-top:7px}.home-hero-scroll-dot{display:block;width:4px;height:8px;background:#ffffffe6;border-radius:2px;animation:scroll-dot 2s ease-in-out infinite}@keyframes scroll-dot{0%{transform:translateY(0);opacity:1}60%{transform:translateY(12px);opacity:0}61%{transform:translateY(0);opacity:0}to{transform:translateY(0);opacity:1}}.home-location{padding:4rem 6rem;text-align:center}.home-divider{display:flex;align-items:center;gap:2rem;margin-bottom:1.5rem}.home-divider span{flex:1;height:1px;background:var(--border)}.home-location-label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--medium);white-space:nowrap}.home-welcome{display:flex;flex-direction:column;gap:1.25rem;max-width:580px;margin:0 auto 3rem;text-align:center}.home-welcome-text{font-family:var(--font-display);font-size:1rem;font-weight:300;color:var(--medium);line-height:1.9}.home-welcome-amorce{font-family:var(--font-display);font-size:1.3rem;font-weight:600;font-style:italic;color:var(--dark);line-height:1.7;margin-bottom:.5rem}.home-welcome-signature{font-family:var(--font-display);font-size:1.1rem;font-weight:300;letter-spacing:.15em;color:var(--dark);margin-top:.5rem}.home-location-text{font-family:var(--font-display);font-size:1.6rem;font-weight:300;font-style:italic;color:var(--dark)}.home-countdown{display:flex;justify-content:center;gap:0;padding:3rem 6rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 6rem}.home-countdown-unit{display:flex;flex-direction:column;align-items:center;padding:2rem 3rem;position:relative}.home-countdown-unit+.home-countdown-unit:before{content:":";position:absolute;left:0;top:50%;transform:translateY(-60%);font-family:var(--font-display);font-size:2rem;font-weight:300;color:var(--border)}.home-countdown-number{font-family:var(--font-display);font-size:clamp(3rem,5vw,5rem);font-weight:300;color:var(--dark);line-height:1;letter-spacing:.05em}.home-countdown-label{font-family:var(--font-body);font-size:.6rem;font-weight:400;letter-spacing:.25em;text-transform:uppercase;color:var(--light);margin-top:.5rem}.home-gallery{display:grid;grid-template-columns:1fr 1fr;height:400px;border-top:1px solid var(--border)}.home-gallery-img{overflow:hidden}.home-gallery-img img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s ease;filter:contrast(1.05) saturate(1.08);image-rendering:high-quality}.home-gallery-img:hover img{transform:scale(1.03)}.home-gallery-img+.home-gallery-img{border-left:2px solid var(--white)}.home-venue{display:grid;grid-template-columns:1fr 1fr;min-height:480px;border-top:1px solid var(--border)}.home-venue-text{padding:4rem 4rem 4rem 6rem;display:flex;flex-direction:column;gap:1.5rem;justify-content:center}.home-venue-title{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);font-weight:300;color:var(--dark);letter-spacing:-.01em}.home-venue-desc{font-family:var(--font-display);font-size:1.05rem;font-weight:300;font-style:italic;color:var(--medium);line-height:1.8}.home-venue-details{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.home-venue-detail{display:flex;flex-direction:column;gap:.15rem;font-family:var(--font-body);font-size:.8rem;color:var(--medium)}.home-venue-detail-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--light)}.home-venue-link{display:inline-block;font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--dark);border-bottom:1px solid var(--border);padding-bottom:2px;width:fit-content;transition:border-color .2s}.home-venue-link:hover{border-color:var(--dark)}.home-venue-map{background:var(--border);min-height:400px}.home-venue-map-placeholder{width:100%;height:100%;min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;background:linear-gradient(135deg,#ede8de,#e2dbd0)}.home-venue-map-address{font-family:var(--font-display);font-size:1.1rem;font-weight:300;font-style:italic;color:var(--medium);text-align:center;line-height:1.8}.home-venue-map-btn{display:inline-block;font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:var(--dark);padding:.9rem 2rem;border:1px solid var(--dark);transition:all .3s}.home-venue-map-btn:hover{background:transparent;color:var(--dark)}.home-cta{padding:4rem 6rem;text-align:center}.home-cta-text{font-family:var(--font-display);font-size:1.1rem;font-weight:300;color:var(--medium);margin-bottom:2rem}.home-btn{display:inline-block;font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.25em;text-transform:uppercase;color:var(--white);background:var(--dark);padding:1rem 2.5rem;border:1px solid var(--dark);transition:all .3s ease}.home-btn:hover{background:transparent;color:var(--dark)}@media (max-width: 900px){.home-location,.home-cta{padding:3rem 2rem}.home-venue{grid-template-columns:1fr}.home-venue-text{padding:3rem 2rem}.home-venue-map{min-height:300px}.home-countdown{margin:0 1rem;padding:2rem 1rem;gap:0}.home-countdown-unit{padding:1.5rem 1rem}}@media (max-width: 480px){.home-hero-text{padding:1rem}.home-title{font-size:clamp(3.5rem,18vw,5rem);margin-bottom:2rem}.home-script{font-size:clamp(2rem,10vw,3rem)}.home-names{font-size:.9rem;letter-spacing:.25em}.home-hero-scroll{bottom:1.5rem}.home-countdown{margin:0;padding:1.5rem .5rem}.home-countdown-number{font-size:2.2rem}.home-countdown-unit{padding:1rem .5rem}.home-location,.home-cta,.home-venue-text{padding:2.5rem 1.5rem}.home-venue-map-placeholder{min-height:220px;gap:1.5rem}.home-btn{width:100%;text-align:center}}.rsvp{min-height:100vh;max-width:640px;margin:0 auto;padding:120px 2rem 6rem}.rsvp-header{text-align:center;margin-bottom:4rem}.rsvp-label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--light);margin-bottom:1rem}.rsvp-title{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:300;color:var(--dark);margin-bottom:.75rem;letter-spacing:-.01em}.rsvp-subtitle{font-family:var(--font-display);font-size:1rem;font-weight:300;font-style:italic;color:var(--medium)}.rsvp-form{display:flex;flex-direction:column;gap:2.5rem}.rsvp-section{display:flex;flex-direction:column;gap:1rem;padding-bottom:2.5rem;border-bottom:1px solid var(--border)}.rsvp-section:last-of-type{border-bottom:none}.rsvp-section-title{font-family:var(--font-display);font-size:1.25rem;font-weight:400;color:var(--dark);letter-spacing:.01em}.rsvp-section-title span{color:var(--sage)}.rsvp-hint{font-family:var(--font-body);font-size:.75rem;color:var(--light);margin-top:-.5rem}.rsvp-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.rsvp-field{display:flex;flex-direction:column;gap:.4rem}.rsvp-field label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--medium)}.rsvp-field label .optional{text-transform:none;letter-spacing:0;font-style:italic;color:var(--light)}.rsvp-field input,.rsvp-field textarea{border:1px solid var(--border);background:var(--white);padding:.75rem 1rem;font-size:.9rem;color:var(--dark);outline:none;transition:border-color .2s;border-radius:0;resize:vertical}.rsvp-field input:focus,.rsvp-field textarea:focus{border-color:var(--dark)}.rsvp-toggle{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.rsvp-toggle-btn{padding:1rem;border:1px solid var(--border);background:var(--white);font-family:var(--font-body);font-size:.75rem;font-weight:400;letter-spacing:.1em;color:var(--medium);transition:all .25s}.rsvp-toggle-btn:hover{border-color:var(--dark);color:var(--dark)}.rsvp-toggle-btn.active{background:var(--dark);border-color:var(--dark);color:var(--white)}.rsvp-toggle-btn.active.decline{background:var(--medium);border-color:var(--medium)}.rsvp-party-size{display:flex;gap:.75rem;flex-wrap:wrap}.rsvp-size-btn{width:48px;height:48px;border:1px solid var(--border);background:var(--white);font-family:var(--font-display);font-size:1.25rem;font-weight:300;color:var(--medium);transition:all .2s}.rsvp-size-btn:hover{border-color:var(--dark);color:var(--dark)}.rsvp-size-btn.active{background:var(--dark);border-color:var(--dark);color:var(--white)}.rsvp-member{padding:1.25rem;background:var(--cream);border:1px solid var(--border)}.rsvp-member-label{font-family:var(--font-body);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--light);margin-bottom:.75rem}.rsvp-error{font-family:var(--font-body);font-size:.8rem;color:#c0392b;padding:.75rem 1rem;border:1px solid #f5c6cb;background:#fff5f5}.rsvp-submit{padding:1.1rem 3rem;background:var(--dark);color:var(--white);border:1px solid var(--dark);font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.25em;text-transform:uppercase;transition:all .3s;align-self:center;min-width:280px}.rsvp-submit:hover:not(:disabled){background:transparent;color:var(--dark)}.rsvp-submit:disabled{opacity:.5;cursor:not-allowed}.rsvp-loading{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.rsvp-loading-monogram{font-family:var(--font-display);font-size:2rem;font-weight:300;letter-spacing:.3em;color:var(--dark);animation:rsvp-pulse 2s ease-in-out infinite}@keyframes rsvp-pulse{0%,to{opacity:1}50%{opacity:.3}}.rsvp-loading-bar{width:120px;height:1px;background:var(--border);position:relative;overflow:hidden}.rsvp-loading-progress{position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--dark);animation:rsvp-slide 1.6s ease-in-out infinite}@keyframes rsvp-slide{0%{left:-100%}to{left:100%}}.rsvp-loading-text{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--light)}.rsvp-already{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem;max-width:520px;margin:0 auto}.rsvp-already-icon{font-size:1.75rem;color:var(--sage);margin-bottom:2rem}.rsvp-already-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--dark);margin-bottom:1rem;letter-spacing:-.01em}.rsvp-already-subtitle{font-family:var(--font-display);font-size:1.05rem;font-weight:300;font-style:italic;color:var(--medium);line-height:1.8;margin-bottom:2rem}.rsvp-already-recap{width:100%;border:1px solid var(--border);background:var(--white);margin-bottom:2rem}.rsvp-already-recap-row{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);font-family:var(--font-body);font-size:.85rem;color:var(--medium);gap:1rem}.rsvp-already-recap-row:last-child{border-bottom:none}.rsvp-already-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--light);flex-shrink:0}.rsvp-present{color:var(--sage);font-weight:500}.rsvp-absent{color:var(--light)}.rsvp-already-note{font-family:var(--font-body);font-size:.75rem;color:var(--light);margin-bottom:1rem}.rsvp-modify-btn{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--medium);background:transparent;border:1px solid var(--border);padding:.85rem 2rem;cursor:pointer;transition:all .25s}.rsvp-modify-btn:hover{border-color:var(--dark);color:var(--dark)}@media (max-width: 480px){.rsvp{padding-top:90px}.rsvp-row,.rsvp-toggle{grid-template-columns:1fr}.rsvp-toggle-btn{padding:1.1rem;min-height:52px}.rsvp-submit{width:100%;min-width:unset;padding:1.1rem}.rsvp-modify-btn{width:100%;text-align:center;padding:1rem}.rsvp-size-btn{width:52px;height:52px}}.info{min-height:100vh;max-width:860px;margin:0 auto;padding:120px 2rem 6rem}.info-header{text-align:center;margin-bottom:5rem}.info-label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--light);margin-bottom:1rem}.info-title{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:300;color:var(--dark);letter-spacing:-.01em}.info-section{margin-bottom:5rem}.info-section-header{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.info-section-number{font-family:var(--font-display);font-size:.85rem;font-weight:300;letter-spacing:.1em;color:var(--light)}.info-section-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:300;color:var(--dark)}.info-section-intro{font-family:var(--font-display);font-size:1rem;font-weight:300;font-style:italic;color:var(--medium);margin-bottom:2rem;line-height:1.8}.info-schedule{display:flex;flex-direction:column;gap:3rem}.info-day-title{font-family:var(--font-body);font-size:.65rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--sage);margin-bottom:1.25rem}.info-events{display:flex;flex-direction:column;gap:0}.info-event{display:grid;grid-template-columns:80px 1fr;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--border);align-items:start}.info-event:first-child{border-top:1px solid var(--border)}.info-event-time{font-family:var(--font-display);font-size:.95rem;font-weight:400;color:var(--medium);padding-top:.1rem}.info-event-label{font-family:var(--font-display);font-size:1.1rem;font-weight:400;color:var(--dark);margin-bottom:.2rem}.info-event-detail{font-family:var(--font-body);font-size:.75rem;color:var(--light);letter-spacing:.03em}.info-accommodations{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.info-acc-card{padding:1.75rem;border:1px solid var(--border);background:var(--white);display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s}.info-acc-card.featured{border-color:var(--sage);background:var(--sage-light)}.info-acc-card:hover{border-color:var(--dark)}.info-acc-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.info-acc-type{font-family:var(--font-body);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--light);margin-bottom:.35rem}.info-acc-name{font-family:var(--font-display);font-size:1.2rem;font-weight:400;color:var(--dark)}.info-acc-tag{font-family:var(--font-body);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--sage);border:1px solid var(--sage);padding:.2rem .6rem;white-space:nowrap;flex-shrink:0}.info-acc-desc{font-family:var(--font-body);font-size:.8rem;color:var(--medium);line-height:1.6}.info-acc-note{font-family:var(--font-display);font-size:.85rem;font-style:italic;color:var(--light)}.info-acc-contacts{display:flex;flex-direction:column;gap:.3rem;margin-top:.25rem;padding-top:.75rem;border-top:1px solid var(--border)}.info-acc-contact-row{font-family:var(--font-body);font-size:.78rem;color:var(--medium);line-height:1.5}.info-acc-contact-row a{color:var(--dark);border-bottom:1px solid var(--border);transition:border-color .2s}.info-acc-contact-row a:hover{border-color:var(--dark)}.info-bastide-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.info-bastide-card{padding:1.5rem;border:1px solid var(--border);background:var(--white);display:flex;flex-direction:column;gap:.75rem}.info-bastide-card--maries{border-color:var(--sage);background:#8b9e7e0f}.info-bastide-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.info-bastide-name{font-family:var(--font-display);font-size:1.2rem;font-weight:400;color:var(--dark);letter-spacing:.05em}.info-bastide-badge{font-family:var(--font-body);font-size:.55rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);border:1px solid var(--sage);padding:.2rem .6rem;white-space:nowrap}.info-bastide-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-family:var(--font-body);font-size:.75rem;color:var(--medium)}.info-bastide-beds{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0}.info-bastide-beds li{font-family:var(--font-body);font-size:.72rem;color:var(--dark);background:var(--cream);padding:.2rem .55rem;border:1px solid var(--border)}.info-bastide-stairs{font-family:var(--font-body);font-size:.72rem;color:var(--light);padding-top:.25rem;border-top:1px solid var(--border)}.info-bastide-note{font-family:var(--font-body);font-size:.75rem;font-style:italic;color:var(--medium)}.info-transport{display:flex;flex-direction:column;gap:0}.info-transport-item{display:flex;align-items:flex-start;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--border)}.info-transport-item:first-child{border-top:1px solid var(--border)}.info-transport-icon{font-size:1.25rem;width:2rem;text-align:center;flex-shrink:0;padding-top:.1rem}.info-transport-title{font-family:var(--font-display);font-size:1.1rem;font-weight:400;color:var(--dark);margin-bottom:.25rem}.info-transport-detail{font-family:var(--font-body);font-size:.8rem;color:var(--medium);line-height:1.6}.info-note{margin-bottom:3rem;padding:1.5rem 2rem;border-left:3px solid var(--sage);background:#8b9e7e0f}.info-note--warning{border-left-color:#c8a96e;background:#c8a96e12}.info-note-contact{font-family:var(--font-body);font-size:.8rem;color:var(--medium);margin-top:.75rem}.info-note-contact a{color:var(--dark);border-bottom:1px solid var(--border);transition:border-color .2s}.info-note-contact a:hover{border-color:var(--dark)}.info-note-text{font-family:var(--font-display);font-size:1rem;font-weight:300;font-style:italic;color:var(--medium);line-height:1.9}.info-contact{text-align:center;padding:4rem 2rem;border-top:1px solid var(--border)}.info-contact-text{font-family:var(--font-display);font-size:1.1rem;font-weight:300;font-style:italic;color:var(--medium);margin-bottom:.75rem}.info-contact-names{font-family:var(--font-display);font-size:1.25rem;font-weight:300;letter-spacing:.2em;color:var(--dark)}@media (max-width: 640px){.info{padding-top:90px}.info-header{margin-bottom:3rem}.info-section{margin-bottom:3.5rem}.info-accommodations{grid-template-columns:1fr}.info-event{grid-template-columns:60px 1fr;gap:1rem}.info-acc-card{padding:1.25rem}.info-bastide-grid{grid-template-columns:1fr}.info-transport-item{gap:1rem;padding:1.25rem 0}.info-contact{padding:2.5rem 1rem}}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cream);padding:2rem}.admin-login-card{width:100%;max-width:320px;background:var(--white);border:1px solid var(--border);padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.pin-dots{display:flex;gap:1rem;justify-content:center;margin:.5rem 0}.pin-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--border);background:transparent;transition:background .15s,border-color .15s,transform .15s}.pin-dot.filled{background:var(--dark);border-color:var(--dark);transform:scale(1.1)}.pin-dot.error{background:#c0392b;border-color:#c0392b;animation:pin-shake .35s ease}@keyframes pin-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;width:100%}.pin-key{aspect-ratio:1;border:1px solid var(--border);background:var(--cream);font-family:var(--font-display);font-size:1.4rem;font-weight:300;color:var(--dark);cursor:pointer;transition:background .15s,border-color .15s,transform .1s;min-height:unset;border-radius:0}.pin-key:active:not(:disabled){background:var(--dark);color:var(--white);transform:scale(.95)}.pin-key:hover:not(:disabled){border-color:var(--dark)}.pin-key:disabled{opacity:.3;cursor:default}.pin-key--empty{background:transparent;border-color:transparent;pointer-events:none}.pin-key--delete{font-size:1.1rem;font-family:var(--font-body)}.admin-login-logo{font-family:var(--font-display);font-size:1.75rem;font-weight:300;letter-spacing:.15em;color:var(--dark)}.admin-login-title{font-family:var(--font-display);font-size:1.5rem;font-weight:300;color:var(--dark);margin-top:-.5rem}.admin-error{font-family:var(--font-body);font-size:.8rem;color:#c0392b;text-align:center;min-height:1.2em}.admin-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--white)}.admin-tab{padding:1rem 2rem;font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--light);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .2s,border-color .2s;min-height:unset;padding-bottom:calc(1rem - 2px)}.admin-tab:hover{color:var(--dark)}.admin-tab.active{color:var(--dark);border-bottom-color:var(--dark)}.admin-guests{padding:2rem}.admin-guests-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.admin-guests-count{font-family:var(--font-body);font-size:.75rem;color:var(--light);letter-spacing:.1em}.admin-guest-form{background:var(--white);border:1px solid var(--border);padding:1.25rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.admin-guest-form-fields{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;gap:.75rem}.admin-guest-form input,.admin-guest-form select,.admin-guest-form textarea{border:1px solid var(--border);background:var(--cream);padding:.6rem .75rem;font-size:.85rem;color:var(--dark);outline:none;transition:border-color .2s}.admin-guest-form input:focus,.admin-guest-form select:focus,.admin-guest-form textarea:focus{border-color:var(--dark);background:var(--white)}.admin-guest-form-address{grid-column:1 / -1;font-family:var(--font-body);resize:vertical}.admin-guest-error{font-family:var(--font-body);font-size:.8rem;color:#c0392b}.admin-btn-primary{align-self:flex-start;padding:.6rem 1.5rem;background:var(--dark);color:var(--white);border:1px solid var(--dark);font-family:var(--font-body);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:all .2s;min-height:unset}.admin-btn-primary:hover{background:transparent;color:var(--dark)}.admin-inline-edit{display:flex;flex-direction:column;gap:.3rem}.admin-table td input,.admin-table td select,.admin-table td textarea{border:1px solid var(--border);background:var(--cream);padding:.35rem .5rem;font-size:.8rem;color:var(--dark);outline:none;width:100%;min-width:80px}.admin-table td input:focus,.admin-table td select:focus,.admin-table td textarea:focus{border-color:var(--dark)}.admin-inline-address{min-width:160px;font-family:var(--font-body);resize:vertical}.admin-td-address{max-width:220px;white-space:pre-line;font-size:.8rem;color:var(--medium)!important}.admin-row-actions{display:flex;gap:.35rem;justify-content:flex-end}.admin-action-btn{width:28px;height:28px;min-height:unset;border:1px solid var(--border);background:transparent;font-size:.75rem;color:var(--light);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0}.admin-action-btn:hover{border-color:var(--dark);color:var(--dark)}.admin-action-btn.save:hover{border-color:var(--sage);color:var(--sage)}.admin-action-btn.delete:hover{border-color:#c0392b;color:#c0392b}.admin-action-btn.invite:hover{border-color:#8090a8;color:#8090a8}.admin-action-btn.invite.sent{border-color:var(--sage);color:var(--sage)}.admin-action-btn.remind:hover{border-color:#b8860b;color:#b8860b}.admin-action-btn.remind.sent{border-color:var(--sage);color:var(--sage)}.admin-guests-header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-remind-result{font-family:var(--font-body);font-size:.75rem;color:var(--sage)}.admin-group-badge{display:inline-block;padding:.2rem .6rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border);white-space:nowrap}.group-maries{border-color:#c9a96e;color:#c9a96e;background:#fdf8f0}.group-proches{border-color:var(--sage);color:var(--sage);background:var(--sage-light)}.group-famille{border-color:#7a9e8e;color:#7a9e8e;background:#f0f5f3}.group-amis{border-color:var(--light);color:var(--light);background:#f8f8f8}.admin{min-height:100vh;background:var(--cream)}.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:1rem}.admin-topbar-title{font-family:var(--font-display);font-size:1.1rem;font-weight:300;letter-spacing:.1em;color:var(--dark)}.admin-topbar-actions{display:flex;gap:.75rem}.admin-btn-outline{padding:.5rem 1.25rem;border:1px solid var(--border);background:transparent;font-family:var(--font-body);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--medium);cursor:pointer;transition:all .2s}.admin-btn-outline:hover{border-color:var(--dark);color:var(--dark)}.admin-loading{padding:4rem;text-align:center;font-family:var(--font-display);font-style:italic;color:var(--light)}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border)}.admin-stat{padding:2rem;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:.4rem}.admin-stat:last-child{border-right:none}.admin-stat-number{font-family:var(--font-display);font-size:3rem;font-weight:300;color:var(--dark);line-height:1}.admin-stat-label{font-family:var(--font-body);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--light)}.admin-filters{display:flex;gap:.5rem;flex-wrap:wrap;padding:1rem 2rem;border-bottom:1px solid var(--border);background:var(--white)}.admin-filter-btn{padding:.4rem 1rem;border:1px solid var(--border);background:transparent;font-family:var(--font-body);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--medium);cursor:pointer;transition:all .2s}.admin-filter-btn.active{background:var(--dark);border-color:var(--dark);color:var(--white)}.admin-table-wrapper{overflow-x:auto;padding:2rem}.admin-table{width:100%;border-collapse:collapse;background:var(--white);font-family:var(--font-body);font-size:.8rem}.admin-table th{text-align:left;padding:.75rem 1rem;font-size:.6rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--light);border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:.9rem 1rem;border-bottom:1px solid var(--border);color:var(--medium);vertical-align:top}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--cream)}.admin-td-name{color:var(--dark)!important;font-weight:500;white-space:nowrap}.admin-td-members,.admin-td-message{max-width:200px;color:var(--light)!important;font-style:italic}.admin-badge{display:inline-block;padding:.2rem .6rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:400}.admin-badge.yes{background:var(--sage-light);color:var(--sage)}.admin-badge.no{background:#f5f5f5;color:var(--light)}.admin-empty{text-align:center;padding:3rem!important;color:var(--light)!important;font-style:italic}.admin-lodging-stats{grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:var(--white);margin-bottom:1.5rem}.admin-lodging-error{margin-bottom:1rem}.admin-lodging-pending{background:var(--sage-light);border:1px solid var(--sage);padding:1rem 1.25rem;margin-bottom:1.5rem}.admin-lodging-pending-title{font-family:var(--font-body);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--sage);margin-bottom:.6rem}.admin-lodging-pending-list{display:flex;flex-wrap:wrap;gap:.4rem}.admin-lodging-chip{font-family:var(--font-body);font-size:.75rem;color:var(--dark);background:var(--white);border:1px solid var(--border);padding:.25rem .6rem}.admin-lodging-chip em{color:var(--light);margin-left:.25rem}.admin-lodging-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.admin-lodging-card{background:var(--white);border:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s,box-shadow .2s}.admin-lodging-card:hover{box-shadow:0 4px 16px #1c1c1a0f}.admin-lodging-card.over{border-color:#c0392b}.admin-lodging-card-header{display:flex;align-items:baseline;justify-content:space-between}.admin-lodging-name{font-family:var(--font-display);font-size:1.4rem;font-weight:400;color:var(--dark);letter-spacing:.05em}.admin-lodging-count{font-family:var(--font-body);font-size:.75rem;color:var(--medium);letter-spacing:.1em}.admin-lodging-bar{height:4px;background:var(--cream);overflow:hidden}.admin-lodging-bar span{display:block;height:100%;background:var(--sage);transition:width .4s ease}.admin-lodging-card.over .admin-lodging-bar span{background:#c0392b}.admin-lodging-beds,.admin-lodging-empty,.admin-lodging-meta{font-family:var(--font-body);font-size:.7rem;color:var(--light)}.admin-lodging-warning{font-family:var(--font-body);font-size:.75rem;color:#c0392b}.admin-lodging-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;margin:0;padding:0}.admin-lodging-empty{font-style:italic}.admin-lodging-row{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border);animation:lodging-in .25s ease}@keyframes lodging-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.admin-lodging-who{flex:1;display:flex;flex-direction:column;min-width:0}.admin-lodging-guest{font-family:var(--font-body);font-size:.85rem;color:var(--dark)}.admin-lodging-places{width:3.5rem;border:1px solid var(--border);background:var(--cream);padding:.3rem .4rem;font-size:.8rem;color:var(--dark);outline:none;text-align:center}.admin-lodging-add{display:flex;gap:.4rem;align-items:center;margin-top:auto}.admin-lodging-add select{flex:1;min-width:0;border:1px solid var(--border);background:var(--cream);padding:.35rem .5rem;font-size:.8rem;color:var(--dark);outline:none}.admin-lodging-places:focus,.admin-lodging-add select:focus{border-color:var(--dark);background:var(--white)}.admin-lodging-add .admin-action-btn:disabled{opacity:.3;cursor:default}@media (max-width: 640px){.admin-tab{padding:.75rem 1rem;font-size:.6rem}.admin-guests{padding:1rem}.admin-guest-form-fields,.admin-stats{grid-template-columns:1fr 1fr}.admin-lodging-stats .admin-stat:nth-child(3){grid-column:1 / -1}.admin-stat{padding:1.25rem}.admin-stat:nth-child(2){border-right:none}.admin-stat:nth-child(3),.admin-stat:nth-child(4){border-top:1px solid var(--border)}.admin-stat-number{font-size:2.25rem}.admin-topbar{padding:1rem 1.25rem}.admin-topbar-title{font-size:.95rem}.admin-topbar-actions{flex-wrap:wrap}.admin-table-wrapper{padding:1rem}.admin-filters{padding:.75rem 1rem}.admin-filter-btn{padding:.5rem .75rem;min-height:36px}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cream);padding:2rem}.login-card{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.login-monogram{display:flex;align-items:center;gap:.15rem;font-family:var(--font-display);font-size:2.5rem;font-weight:300;letter-spacing:.05em;color:var(--dark);margin-bottom:.5rem}.login-monogram-sep{opacity:.25;font-weight:200;margin:0 .1rem}.login-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--dark);letter-spacing:-.01em}.login-subtitle{font-family:var(--font-display);font-size:1rem;font-weight:300;font-style:italic;color:var(--medium);line-height:1.7;max-width:320px}.login-form{width:100%;display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.login-field{display:flex;flex-direction:column;gap:.4rem;text-align:left}.login-field label{font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--medium)}.login-field input{border:1px solid var(--border);background:var(--white);padding:.9rem 1rem;font-size:.9rem;color:var(--dark);outline:none;transition:border-color .2s;width:100%}.login-field input:focus{border-color:var(--dark)}.login-error{font-family:var(--font-body);font-size:.8rem;color:#c0392b;text-align:left;padding:.75rem 1rem;border:1px solid #f5c6cb;background:#fff5f5}.login-btn{width:100%;padding:1rem;background:var(--dark);color:var(--white);border:1px solid var(--dark);font-family:var(--font-body);font-size:.65rem;font-weight:400;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:all .3s}.login-btn:hover:not(:disabled){background:transparent;color:var(--dark)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-help{font-family:var(--font-body);font-size:.75rem;color:var(--light);line-height:1.6;margin-top:.5rem}.login-help-link{color:var(--dark);border-bottom:1px solid var(--border);transition:border-color .2s}.login-help-link:hover{border-color:var(--dark)}:root{--cream: #FAF8F3;--white: #FFFFFF;--dark: #1C1C1A;--medium: #4A4844;--light: #9A9590;--border: #E8E2D8;--sage: #8B9E7E;--sage-light: #F0F4EE;--font-display: "Cormorant Garamond", Georgia, serif;--font-script: "Dancing Script", cursive;--font-body: "Montserrat", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background-color:var(--cream);color:var(--dark);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{cursor:pointer;font-family:var(--font-body);touch-action:manipulation;min-height:44px}input,textarea,select{font-family:var(--font-body);font-size:1rem;touch-action:manipulation}a{touch-action:manipulation}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
