:root{--cream:#f6f0e7;--paper:#fbf8f2;--ink:#443b36;--wine:#794034;--terracotta:#bd6748;--olive:#7c8060;--lavender:#9b8ba7;--blue:#657994;--line:rgba(68,59,54,.16);--shadow:0 28px 70px rgba(73,51,39,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}
.nav{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,5vw,80px);position:absolute;inset:0 0 auto;z-index:5;color:#fff}.monogram{font-family:Italiana,serif;font-size:30px;color:inherit;text-decoration:none;letter-spacing:-6px}.monogram span{color:#d9b0a1}.nav-links{display:flex;gap:32px}.nav-links a{font-size:14px;color:inherit;text-decoration:none;position:relative}.nav-links a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .35s}.nav-links a:hover:after{right:0}
.hero{min-height:100svh;position:relative;overflow:hidden;display:grid;grid-template-columns:55% 45%;background:#66725f}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,36,29,.57) 0%,rgba(34,36,29,.3) 46%,rgba(34,36,29,.08) 70%),url("./assets/faire-part.jpg") center 68%/cover no-repeat;filter:saturate(.8);transform:scale(1.02)}.hero-wash{position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(45,42,35,.38));z-index:1}.hero-copy{position:relative;z-index:2;align-self:center;padding-left:clamp(28px,8vw,130px);color:#fff;margin-top:4vh}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:12px;font-weight:600;margin:0 0 15px}.hero h1{font-family:Italiana,serif;font-weight:400;font-size:clamp(64px,9vw,138px);line-height:.86;letter-spacing:-.05em;margin:0;max-width:750px}.hero h1 i{font-family:"League Script",cursive;font-weight:400;color:#ebc0ad;font-size:.85em}.hero-date{font-family:Italiana,serif;letter-spacing:.25em;font-size:18px;margin:35px 0}.text-link{display:inline-flex;align-items:center;gap:18px;color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.6);padding:0 0 8px;font-size:14px}.text-link span{font-size:20px}.hero-art{position:relative;z-index:2;align-self:center;justify-self:end;margin-right:clamp(24px,8vw,120px);color:#fff;text-align:center}.arch-photo{width:clamp(210px,25vw,380px);aspect-ratio:.72;border-radius:180px 180px 4px 4px;background:url("./assets/moodboard.png") 48% 8%/280% auto no-repeat;border:1px solid rgba(255,255,255,.5);box-shadow:0 25px 60px rgba(0,0,0,.25)}.seal{width:105px;height:105px;display:grid;place-items:center;position:absolute;left:-53px;bottom:45px;border-radius:50%;background:#b96549;color:#fff;font-family:Italiana,serif;font-size:30px;box-shadow:0 16px 40px rgba(0,0,0,.2)}.seal span{font-family:"League Script";position:absolute;font-size:26px;color:#f4cfbf}.hero-art>p{font-family:Italiana,serif;text-transform:uppercase;letter-spacing:.24em;font-size:12px}.scroll-note{position:absolute;right:20px;bottom:50px;z-index:3;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.2em;writing-mode:vertical-rl}.scroll-note:after{content:"";display:block;width:1px;height:48px;background:rgba(255,255,255,.6);margin:14px auto 0}
.intro{padding:130px clamp(24px,8vw,130px);text-align:center;background:var(--paper)}.script{font-family:"League Script",cursive;font-size:42px;color:var(--terracotta);margin:0 0 8px}.intro h2,.story-copy h2,.rsvp-heading h2{font-family:Italiana,serif;font-size:clamp(38px,5vw,68px);font-weight:400;line-height:1.1;margin:0}.details-grid{max-width:1200px;margin:90px auto 0;display:grid;grid-template-columns:repeat(3,1fr);text-align:left}.details-grid article{position:relative;padding:15px 9%;border-right:1px solid var(--line)}.details-grid article:last-child{border:0}.detail-number{font-family:Italiana,serif;color:var(--terracotta);font-size:18px}.detail-label{text-transform:uppercase;letter-spacing:.16em;font-size:11px;margin:30px 0 5px}.details-grid h3{font-family:Italiana,serif;font-size:25px;font-weight:400;margin:0 0 12px}.details-grid article>p:last-child{color:#786d66;font-size:14px}
.story-band{display:grid;grid-template-columns:58% 42%;min-height:710px;background:#7b7e5e;color:#fff}.mood-frame{margin:0;overflow:hidden}.mood-frame img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.76) contrast(.96)}.story-copy{padding:clamp(50px,8vw,120px);align-self:center}.story-copy h2{font-size:clamp(52px,6vw,86px)}.story-copy>p:not(.eyebrow){max-width:430px;color:rgba(255,255,255,.78);margin:30px 0}.palette{display:flex;gap:10px;margin-top:45px}.palette span{width:34px;height:34px;background:var(--c);border-radius:50%;border:2px solid rgba(255,255,255,.35)}
.rsvp-section{padding:130px clamp(24px,8vw,130px);display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:clamp(45px,8vw,120px);background:radial-gradient(circle at 0 100%,rgba(196,107,75,.14),transparent 28%),var(--cream)}.rsvp-heading{position:sticky;top:70px;align-self:start}.rsvp-heading>p:last-child{max-width:430px;color:#746963;margin-top:26px}.rsvp-card{background:var(--paper);padding:clamp(28px,5vw,64px);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:24px;border:1px solid rgba(255,255,255,.8)}.field{display:flex;flex-direction:column;gap:8px}.field label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.field input,.field select,.field textarea,.search-box{width:100%;border:0;border-bottom:1px solid #a99c93;background:transparent;padding:12px 2px;outline:none;border-radius:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--terracotta);box-shadow:0 1px 0 var(--terracotta)}.field small{font-size:12px;color:#887a72}.field .error,.error{color:#a33b31;min-height:18px}.span-2{grid-column:span 2}.member-responses{display:grid;gap:20px}.member-card{border-top:1px solid var(--line);padding-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}.member-card h3{font-family:Italiana,serif;font-weight:400;font-size:25px;margin:0;grid-column:span 2}.choice-row{display:flex;gap:10px;flex-wrap:wrap}.choice{position:relative}.choice input{position:absolute;opacity:0}.choice label{display:block;border:1px solid var(--line);padding:10px 15px;border-radius:100px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;transition:.2s}.choice input:checked+label{background:var(--wine);border-color:var(--wine);color:#fff}.meal-field,.allergy-field{display:none}.member-card.attending .meal-field,.member-card.attending .allergy-field{display:flex}.primary-button,.secondary-button,.ghost-button,.danger-button{border:0;padding:15px 22px;min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:18px;transition:transform .2s,box-shadow .2s,background .2s}.primary-button{background:var(--wine);color:#fff}.primary-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(121,64,52,.2)}.primary-button span{font-size:20px}.primary-button.compact,.secondary-button,.ghost-button,.danger-button{min-height:43px;padding:10px 16px;font-size:14px}.secondary-button{background:#ebe5da}.ghost-button{background:transparent}.danger-button{background:#f9e8e4;color:#9b3229}.form-note{text-align:center;color:#988b83;font-size:12px;margin:0}
footer{padding:60px clamp(24px,8vw,130px);background:#403d35;color:#fff;display:flex;align-items:flex-end;justify-content:space-between}.footer-mark{font-family:Italiana,serif;font-size:34px}footer p{font-size:13px;color:rgba(255,255,255,.65);margin:5px 0}.admin-link,.back-site{background:transparent;border:0;color:inherit;text-decoration:underline;text-underline-offset:4px;font-size:13px}
.reveal{opacity:1;transform:none}.animations-enabled .reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.animations-enabled .reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.15s}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.animations-enabled .reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}}
.toast-region{position:fixed;right:24px;bottom:24px;z-index:1000;display:grid;gap:10px}.toast{background:#3f3b35;color:#fff;padding:13px 18px;border-radius:3px;box-shadow:0 15px 40px rgba(0,0,0,.2);animation:toastin .3s ease}.toast.success{background:#657050}.toast.error{background:#8f4038}@keyframes toastin{from{opacity:0;transform:translateY(10px)}}
.admin-app{min-height:100vh;background:#eeeae2}.login-view{min-height:100vh;display:grid;place-items:center;padding:40px;background:linear-gradient(90deg,rgba(45,42,36,.62),rgba(45,42,36,.25)),url("./assets/faire-part.jpg") center/cover}.back-site{position:absolute;top:28px;left:32px;color:#fff}.login-card{width:min(100%,460px);background:var(--paper);padding:50px;box-shadow:var(--shadow)}.admin-emblem{font-family:Italiana,serif;width:58px;height:58px;border:1px solid var(--wine);display:grid;place-items:center;color:var(--wine);font-size:24px;letter-spacing:-7px;margin-bottom:25px}.admin-emblem span{color:var(--terracotta)}.admin-emblem.small{width:42px;height:42px;font-size:18px;flex:none;margin:0}.login-card h1,.admin-header h1{font-family:Italiana,serif;font-size:45px;font-weight:400;margin:0}.login-card>p:not(.eyebrow):not(.demo-credentials){color:#766b65;margin:8px 0 35px}.login-card .field{margin:20px 0}.login-card .primary-button{width:100%;margin-top:10px}.demo-credentials{text-align:center;color:#968a82;font-size:12px;margin:18px 0 0}
.dashboard-shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#3e3e35;color:#fff;padding:30px 18px;display:flex;flex-direction:column}.sidebar-brand{display:flex;gap:13px;align-items:center;padding:0 7px 30px;border-bottom:1px solid rgba(255,255,255,.13)}.sidebar-brand b{font-family:Italiana,serif;font-weight:400;font-size:18px}.sidebar-brand small{display:block;color:rgba(255,255,255,.55);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.admin-nav{display:grid;gap:6px;margin-top:28px}.admin-nav button,.sidebar-bottom button{width:100%;border:0;background:transparent;color:rgba(255,255,255,.7);padding:12px;text-align:left;border-radius:4px;font-size:13px}.admin-nav button span{display:inline-block;width:26px}.admin-nav button.active,.admin-nav button:hover{background:rgba(255,255,255,.1);color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding-top:15px}.admin-main{padding:36px clamp(22px,4vw,60px) 70px;min-width:0}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:36px}.admin-header h1{font-size:40px}.date-chip{border:1px solid #d5cdc1;border-radius:100px;padding:10px 18px;font-size:13px}.mobile-menu{display:none;background:transparent;border:0;font-size:24px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat-card{background:var(--paper);padding:24px;border:1px solid rgba(75,65,56,.08);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-20px;bottom:-35px;width:90px;height:90px;border-radius:50%;background:var(--accent,rgba(155,139,167,.15))}.stat-card p{font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:0;color:#776e68}.stat-card strong{font-family:Italiana,serif;font-weight:400;font-size:42px;line-height:1.1;display:block;margin-top:10px}.stat-card small{color:#978d86}.charts-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.panel{background:var(--paper);border:1px solid rgba(75,65,56,.08);padding:28px}.panel-head{display:flex;justify-content:space-between;align-items:start}.panel h2{font-family:Italiana,serif;font-size:27px;font-weight:400;margin:0}.panel-total{font-size:12px;color:#80756f}.bar-chart{display:grid;gap:20px;margin-top:30px}.bar-row{display:grid;grid-template-columns:105px 1fr 35px;align-items:center;gap:13px;font-size:13px}.bar-track{height:10px;background:#e7e1d7;border-radius:20px;overflow:hidden}.bar-fill{height:100%;width:0;background:var(--bar);border-radius:20px;transition:width .7s ease}.sides-card{text-align:center;padding-top:22px}.side-illustration{font-size:48px;color:var(--olive)}.sides-card strong{display:block;font-family:Italiana,serif;font-size:58px;font-weight:400;line-height:1}.sides-card span{text-transform:uppercase;letter-spacing:.13em;font-size:10px}.sides-card p{color:#7d736c;font-size:13px}.recent-panel{margin-top:18px}.response-list{margin-top:22px}.response-row{display:grid;grid-template-columns:1fr 110px 120px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line);font-size:13px}.response-row strong{font-weight:500}.status{display:inline-block;width:max-content;padding:4px 9px;border-radius:100px;font-size:11px}.status.yes{background:#e6eadc;color:#53613e}.status.no{background:#f3e2dd;color:#984538}.status.pending{background:#ece9e3;color:#807872}
.guest-toolbar{display:flex;gap:10px;justify-content:flex-end;margin-bottom:18px}.search-box{border:1px solid #d4ccc1;background:var(--paper);padding:8px 13px;display:flex;align-items:center;gap:8px;max-width:310px;margin-right:auto}.search-box input{border:0;background:transparent;outline:0;width:100%}.table-panel{padding:0}.table-summary{padding:23px 26px;display:flex;gap:15px;align-items:baseline}.table-summary span{font-size:12px;color:#8e837c}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:800px}th,td{text-align:left;padding:14px 25px;border-top:1px solid var(--line);font-size:13px}th{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#81766f}.guest-name strong{display:block}.guest-name small{color:#948880}.icon-button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:transparent}.empty-state{padding:45px;text-align:center;color:#8a7e77}
.modal{width:min(620px,calc(100% - 30px));border:0;padding:0;background:var(--paper);box-shadow:var(--shadow);color:var(--ink)}.modal::backdrop{background:rgba(40,37,32,.6);backdrop-filter:blur(4px)}.modal form{padding:32px}.modal-head{display:flex;justify-content:space-between;margin-bottom:25px}.modal-head h2{font-family:Italiana,serif;font-size:31px;font-weight:400;margin:0}.modal-head button{border:0;background:transparent;font-size:27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:32px}.modal-actions.end{justify-content:flex-end;gap:8px}.modal-actions>div{display:flex;gap:8px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-art{position:absolute;right:4vw;opacity:.45}.hero-copy{padding-right:20px}.details-grid{grid-template-columns:1fr;margin-top:60px}.details-grid article{border-right:0;border-bottom:1px solid var(--line);padding:30px 0}.story-band{grid-template-columns:1fr}.mood-frame{height:520px}.rsvp-section{grid-template-columns:1fr}.rsvp-heading{position:static}.dashboard-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:50;transform:translateX(-100%);transition:transform .25s;width:245px}.sidebar.open{transform:none}.mobile-menu{display:block}.admin-header{justify-content:flex-start;gap:18px}.date-chip{margin-left:auto}.stats-grid{grid-template-columns:1fr 1fr}.charts-grid{grid-template-columns:1fr}}
@media(max-width:600px){.nav{height:68px}.nav-links{gap:18px}.hero{min-height:760px}.hero:before{background-position:60% center}.hero-copy{padding-left:24px;align-self:end;margin-bottom:160px}.hero h1{font-size:64px;max-width:320px}.hero-art{right:-60px;top:130px}.arch-photo{width:210px}.seal{width:80px;height:80px;left:-30px}.intro,.rsvp-section{padding-top:90px;padding-bottom:90px}.script{font-size:34px}.intro h2,.rsvp-heading h2{font-size:38px}.story-band{min-height:0}.mood-frame{height:410px}.story-copy{padding:60px 25px}.rsvp-card{grid-template-columns:1fr;padding:27px 20px}.span-2,.member-card h3{grid-column:span 1}.member-card{grid-template-columns:1fr}.member-card .span-2{grid-column:span 1}footer{align-items:flex-start;gap:30px;flex-direction:column}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:18px}.stat-card strong{font-size:34px}.admin-main{padding:24px 14px}.admin-header h1{font-size:31px}.admin-header .eyebrow{display:none}.date-chip{padding:8px 12px}.guest-toolbar{flex-wrap:wrap}.search-box{max-width:none;width:100%;flex-basis:100%}.guest-toolbar .primary-button,.guest-toolbar .secondary-button{flex:1}.response-row{grid-template-columns:1fr auto}.response-row>:last-child{display:none}.login-card{padding:35px 25px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:span 1}.modal form{padding:24px 20px}.modal-actions{align-items:stretch;gap:10px}.modal-actions>div{margin-left:auto}.table-wrap{overflow:visible}table{min-width:0;table-layout:fixed}th,td{padding:14px 12px}th:nth-child(2),td:nth-child(2),th:nth-child(4),td:nth-child(4),th:nth-child(5),td:nth-child(5){display:none}th:first-child,td:first-child{width:55%}th:nth-child(3),td:nth-child(3){width:32%}th:last-child,td:last-child{width:13%;padding-left:2px;padding-right:8px}.guest-name small{display:block;white-space:normal}.status{white-space:nowrap}}

/* Mise à jour éditoriale : informations, communauté et lune de miel */
.detail-label{font-size:15px;margin:0 0 10px;color:var(--terracotta);font-weight:600}.details-grid h3{font-size:27px}.details-grid article>p:last-child{font-size:15px}.community-copy h2,.honeymoon-copy h2{font-family:Italiana,serif;font-size:clamp(38px,5vw,68px);font-weight:400;line-height:1.1;margin:0}.rsvp-feedback{padding:22px;text-align:center;border:1px solid var(--line);font-family:Italiana,serif;font-size:21px;line-height:1.4;background:#f1eee7}.rsvp-feedback.yes{background:#edf0e5;color:#566044}.rsvp-feedback.no{background:#f5e7e1;color:#814438}
.community-section{padding:0 clamp(24px,8vw,130px) 130px;background:var(--cream)}.community-card{max-width:1200px;margin:0 auto;background:#667050;color:#fff;padding:clamp(35px,6vw,76px);display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center;position:relative;overflow:hidden}.community-card:after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-170px;top:-170px}.community-copy{position:relative;z-index:1}.community-copy h2{font-size:clamp(38px,5vw,64px)}.community-copy>p:not(.eyebrow){max-width:650px;color:rgba(255,255,255,.78);margin:24px 0 30px}.outline-button{display:inline-flex;align-items:center;gap:22px;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.55);padding:13px 18px;font-size:14px;transition:.2s}.outline-button:hover{background:#fff;color:var(--olive)}.qr-wrap{background:#fff;color:var(--ink);padding:15px;text-align:center;position:relative;z-index:1;box-shadow:0 20px 45px rgba(31,34,25,.22)}.qr-wrap img{width:160px;height:160px}.qr-wrap span{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:9px;margin-top:8px}
.honeymoon-section{display:grid;grid-template-columns:.85fr 1.15fr;min-height:590px;background:var(--paper)}.honeymoon-art{background:linear-gradient(180deg,rgba(101,121,148,.22),rgba(189,103,72,.19)),url("./assets/faire-part.jpg") center bottom/cover;color:#fff;display:grid;place-items:center;align-content:center;text-align:center}.honeymoon-art span{font-size:80px;font-weight:200}.honeymoon-art p{text-transform:uppercase;letter-spacing:.18em;font-size:11px}.honeymoon-copy{align-self:center;padding:clamp(45px,9vw,135px)}.honeymoon-copy>p:not(.script){max-width:560px;color:#776c65;margin:26px 0}.honeymoon-copy small{display:block;color:#897e77;max-width:480px;margin-top:18px}
@media(max-width:900px){.community-card{grid-template-columns:1fr auto;gap:30px}.honeymoon-section{grid-template-columns:1fr}.honeymoon-art{min-height:420px}}
@media(max-width:600px){.community-section{padding:0 15px 80px}.community-card{grid-template-columns:1fr;padding:38px 24px}.community-copy h2{font-size:36px}.qr-wrap{justify-self:center}.qr-wrap img{width:180px;height:180px}.honeymoon-art{min-height:330px}.honeymoon-copy{padding:65px 24px}.honeymoon-copy h2{font-size:41px}}

/* Palette Riviera */
:root{--cream:#f8edd9;--paper:#fffaf0;--ink:#525641;--wine:#ad0033;--terracotta:#dc4e0a;--olive:#59603b;--lavender:#929487;--blue:#d6605e;--mustard:#e08e12;--pink:#d9385d;--line:rgba(82,86,65,.17);--shadow:0 28px 70px rgba(89,96,59,.15)}
.hero-art .arch-photo{border-radius:52px}.rsvp-card,.community-card,.stat-card,.panel,.search-box,.table-panel,.login-card{border-radius:34px}.community-card{background:var(--wine)}.primary-button,.secondary-button,.outline-button,.ghost-button,.danger-button,.date-chip,.choice label{border-radius:999px}.primary-button{background:var(--terracotta)}.choice input:checked+label{background:var(--wine);border-color:var(--wine)}.palette{flex-wrap:wrap}.palette span{width:52px;height:22px;border-radius:999px}.mood-frame img{border-radius:0 48px 48px 0}.qr-wrap{border-radius:26px}.honeymoon-section{margin:0 clamp(18px,4vw,60px);border-radius:48px;overflow:hidden}.honeymoon-copy .primary-button{background:var(--pink)}

/* Hébergements et carte */
.stays-section{padding:140px clamp(24px,6vw,90px);background:var(--cream)}.stays-heading{max-width:1280px;margin:0 auto 42px;display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:end}.stays-heading h2{font-family:Italiana,serif;font-size:clamp(45px,6vw,78px);font-weight:400;line-height:1.02;margin:0}.stays-intro p{color:#6d705e;max-width:520px;margin:0 0 24px}.pdf-link{display:inline-flex;align-items:center;gap:18px;color:var(--wine);font-weight:600;text-decoration:none;border-bottom:2px solid var(--wine);padding-bottom:6px}.stay-filters{max-width:1280px;margin:0 auto 24px;display:flex;gap:10px;flex-wrap:wrap}.stay-filters button{border:1px solid rgba(82,86,65,.24);background:transparent;border-radius:999px;padding:10px 17px;font-size:13px}.stay-filters button.active{background:var(--olive);border-color:var(--olive);color:#fff}.stays-layout{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:24px}.map-shell{position:relative;min-height:680px;background:#d9d6c9;border-radius:42px;overflow:hidden;border:8px solid var(--paper);box-shadow:var(--shadow)}#stays-map{height:100%;min-height:664px;z-index:1}.map-legend{position:absolute;z-index:500;left:22px;bottom:22px;background:rgba(255,250,240,.94);backdrop-filter:blur(8px);border-radius:999px;padding:10px 15px;display:flex;align-items:center;gap:8px;font-size:11px;box-shadow:0 8px 25px rgba(52,55,42,.15)}.legend-domain{width:14px;height:14px;background:var(--wine);border:3px solid #fff;outline:2px solid var(--wine);border-radius:50%;margin-right:2px}.legend-bed{width:21px;height:21px;display:grid;place-items:center;background:var(--mustard);border-radius:7px;color:#fff;margin-left:8px}.stays-list{max-height:680px;overflow:auto;display:grid;gap:12px;padding-right:6px;scrollbar-color:var(--mustard) transparent;scrollbar-width:thin}.stay-card{border:0;background:var(--paper);border-radius:28px;padding:20px;text-align:left;display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:start;transition:.25s;box-shadow:0 8px 22px rgba(89,96,59,.07)}.stay-card:hover,.stay-card.active{transform:translateY(-2px);box-shadow:0 18px 35px rgba(89,96,59,.14);background:#fff}.stay-index{width:48px;height:48px;display:grid;place-items:center;background:var(--mustard);color:#fff;border-radius:16px;font-weight:600}.stay-card[data-type="rental"] .stay-index{background:var(--pink)}.stay-card h3{font-family:Italiana,serif;font-size:20px;font-weight:400;line-height:1.15;margin:1px 0 5px}.stay-card p{font-size:12px;color:#747764;line-height:1.45;margin:0}.stay-meta{text-align:right}.stay-meta strong{display:block;color:var(--terracotta);font-size:12px}.stay-meta small{font-size:10px;color:#8c8e80}.map-note{max-width:1280px;margin:18px auto 0;color:#7f8171;font-size:12px}.bed-marker,.domain-marker{background:none;border:0}.bed-pin{width:36px;height:36px;display:grid;place-items:center;border-radius:13px 13px 13px 4px;background:var(--mustard);color:#fff;border:3px solid #fff;box-shadow:0 8px 18px rgba(82,86,65,.28);font-size:18px;transform:rotate(-5deg)}.bed-pin span{transform:rotate(5deg)}.domain-pin{width:48px;height:48px;border-radius:50%;background:var(--wine);border:7px solid #fff;box-shadow:0 0 0 5px rgba(173,0,51,.3),0 12px 25px rgba(82,86,65,.3);animation:domainPulse 2.4s ease-in-out infinite}.domain-label{display:block;position:absolute;left:52px;top:6px;width:max-content;background:var(--wine);color:#fff;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:600;box-shadow:0 8px 18px rgba(82,86,65,.2)}@keyframes domainPulse{50%{box-shadow:0 0 0 10px rgba(173,0,51,.12),0 12px 25px rgba(82,86,65,.3)}}.leaflet-popup-content-wrapper{border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 16px 40px rgba(50,52,40,.22)}.leaflet-popup-content{margin:17px 20px;min-width:210px}.map-popup h3{font-family:Italiana,serif;font-size:21px;font-weight:400;margin:0 0 6px}.map-popup p{font-size:12px;line-height:1.5;margin:0 0 8px}.map-popup a{color:var(--terracotta);font-size:12px;font-weight:600}.leaflet-popup-tip{background:var(--paper)}
@media(max-width:1000px){.stays-heading{grid-template-columns:1fr;gap:25px}.stays-layout{grid-template-columns:1fr}.map-shell{min-height:560px}#stays-map{min-height:544px}.stays-list{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}}
@media(max-width:650px){.mood-frame img{border-radius:0}.honeymoon-section{margin:0 14px;border-radius:34px}.stays-section{padding:90px 14px}.stays-heading{padding:0 10px}.stays-heading h2{font-size:43px}.map-shell{min-height:520px;border-radius:30px;border-width:5px}#stays-map{min-height:510px}.map-legend{left:12px;right:12px;bottom:12px;width:auto;justify-content:center;font-size:10px}.stays-list{grid-template-columns:1fr}.stay-card{border-radius:24px;padding:16px;grid-template-columns:44px 1fr}.stay-index{width:44px;height:44px}.stay-meta{grid-column:2;text-align:left;display:flex;gap:7px;align-items:center}.stay-meta strong,.stay-meta small{display:inline}.palette span{width:42px;height:20px}}

/* Direction artistique : dîner bohème, floral et chaleureux */
body{background:#f5e8cf}.nav{margin:18px clamp(16px,3vw,42px) 0;height:62px;padding:0 22px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(56,53,38,.22);backdrop-filter:blur(12px)}.hero:before{background:linear-gradient(90deg,rgba(55,48,31,.66) 0%,rgba(87,52,28,.34) 50%,rgba(44,45,29,.18) 75%),url("./assets/faire-part.jpg") center 68%/cover no-repeat;filter:saturate(.92) sepia(.08)}.hero-wash{background:linear-gradient(180deg,rgba(89,96,59,.03) 55%,rgba(66,31,27,.52))}.hero h1 i{color:#efad72}.hero-date{color:#f5d7a8}.arch-photo{filter:saturate(1.05) sepia(.08);border:3px solid rgba(243,215,169,.72)}.seal{background:var(--wine)}
.intro{background:#f8edd9;padding-bottom:150px}.details-grid{gap:18px}.details-grid article{border:0!important;background:var(--paper);border-radius:34px;padding:32px;box-shadow:0 14px 34px rgba(89,58,34,.07);overflow:hidden}.details-grid article:before{content:"";display:block;width:74px;height:10px;border-radius:999px;background:var(--mustard);margin-bottom:26px}.details-grid article:nth-child(2):before{background:var(--terracotta)}.details-grid article:nth-child(3):before{background:var(--wine)}
.story-band{margin:0 24px;min-height:760px;grid-template-columns:61% 39%;border-radius:52px;overflow:hidden;background:#4f5035;box-shadow:0 30px 80px rgba(64,48,30,.18)}.story-copy{position:relative;background:radial-gradient(circle at 75% 20%,rgba(224,142,18,.15),transparent 28%),#4f5035}.story-copy:after{content:"";position:absolute;inset:32px;border:1px solid rgba(243,215,169,.18);border-radius:36px;pointer-events:none}.story-copy .eyebrow{color:#f3d7a9}.story-copy>p:not(.eyebrow){color:rgba(255,250,240,.78)}.mood-frame{background:#271f1a;padding:14px;display:grid;grid-template-columns:1.5fr .75fr;grid-template-rows:1fr 1fr auto;gap:12px}.mood-frame .mood-main{grid-row:1/3;width:100%;height:100%;min-height:630px;object-fit:cover;object-position:28% center;border-radius:38px;filter:saturate(.96) sepia(.13) contrast(1.03)}.mood-detail{border-radius:30px;background-size:cover;background-position:center;min-height:0}.mood-detail-table{background-image:linear-gradient(rgba(89,45,23,.06),rgba(89,45,23,.08)),url("./assets/moodboard.png");background-size:290%;background-position:4% 91%}.mood-detail-evening{background-image:linear-gradient(rgba(43,28,18,.05),rgba(43,28,18,.22)),url("./assets/faire-part.jpg");background-size:210%;background-position:74% 74%}.mood-frame figcaption{grid-column:1/3;text-align:center;color:#f3d7a9;text-transform:uppercase;letter-spacing:.16em;font-size:10px;padding:8px}.palette span{border-color:rgba(255,255,255,.55);box-shadow:0 7px 18px rgba(28,24,18,.18)}
.rsvp-section{margin:24px;border-radius:52px;background:radial-gradient(circle at 5% 90%,rgba(224,142,18,.16),transparent 26%),#fff8e9}.rsvp-card{border:0}.community-section{background:#f5e8cf;padding-left:24px;padding-right:24px}.community-card{border-radius:52px;background:radial-gradient(circle at 80% 0,rgba(217,56,93,.22),transparent 35%),var(--wine)}.qr-wrap{transform:rotate(2deg)}.honeymoon-section{box-shadow:0 24px 70px rgba(65,51,34,.13)}.honeymoon-art{filter:saturate(.92) sepia(.09)}.honeymoon-copy{background:#fffaf0}.stays-section{background:#f5e8cf}.stay-card{box-shadow:0 12px 28px rgba(69,55,37,.08)}footer{margin:0 18px 18px;border-radius:46px;background:#353527}
@media(max-width:900px){.nav{margin-top:10px}.story-band{grid-template-columns:1fr;margin:14px;border-radius:40px}.mood-frame{height:auto}.mood-frame .mood-main{min-height:520px}.story-copy{padding:76px 34px}.rsvp-section{margin:14px;border-radius:40px}.community-section{padding-left:14px;padding-right:14px}.community-card{border-radius:40px}}
@media(max-width:600px){.nav{margin:8px 10px 0;height:56px;padding:0 15px}.nav-links{gap:14px}.intro{padding-bottom:100px}.details-grid{gap:12px}.details-grid article{padding:25px;border-radius:28px}.story-band{min-height:0}.mood-frame{padding:9px;grid-template-columns:1.25fr .75fr;gap:8px}.mood-frame .mood-main{min-height:410px;border-radius:28px}.mood-detail{border-radius:22px}.mood-frame figcaption{font-size:8px}.story-copy:after{inset:14px;border-radius:28px}.rsvp-section{margin:10px}.community-section{padding-left:10px;padding-right:10px}.community-card{border-radius:36px}footer{margin:0 10px 10px;border-radius:34px}}
.guest-countdown{position:absolute;z-index:4;top:102px;right:clamp(22px,5vw,80px);display:flex;align-items:center;gap:7px;padding:7px 13px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(49,47,35,.22);backdrop-filter:blur(10px);color:rgba(255,255,255,.86);font-size:11px;letter-spacing:.12em}.guest-countdown span{font-weight:600}.guest-countdown i{font-style:normal;color:#f3d7a9}.guest-countdown b{font-weight:500;min-width:22px}
@media(max-width:600px){.guest-countdown{top:78px;right:14px;padding:6px 10px;font-size:10px}}
.bar-row{grid-template-columns:minmax(190px,1.2fr) minmax(120px,2fr) 35px}.bar-row>span{line-height:1.25}.bar-row>span small{display:block;color:#8f847b;font-size:10px;margin-top:3px}
@media(max-width:600px){.bar-row{grid-template-columns:minmax(120px,1.25fr) minmax(80px,1fr) 25px;gap:8px}.bar-row>span{font-size:11px}.bar-row>span small{font-size:9px}}

/* Carte sans clé API : MapLibre + OpenFreeMap */
#stays-map{font-family:"DM Sans",sans-serif}.maplibregl-map{font:inherit}.maplibregl-ctrl-group{border-radius:16px!important;overflow:hidden;box-shadow:0 8px 24px rgba(52,55,42,.18)!important}.maplibregl-ctrl-group button{width:38px;height:38px}.maplibregl-popup-content{border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:0 16px 40px rgba(50,52,40,.22);padding:17px 20px}.maplibregl-popup-close-button{font-size:20px;padding:3px 8px;color:var(--ink)}.maplibregl-popup-tip{border-top-color:var(--paper)!important;border-bottom-color:var(--paper)!important}.maplibregl-ctrl-attrib{font-size:10px!important;background:rgba(255,250,240,.86)!important}.bed-marker,.domain-marker{appearance:none;padding:0;cursor:pointer;overflow:visible}.domain-marker{width:48px;height:48px;z-index:2}.bed-marker{width:36px;height:36px}.domain-marker:focus-visible,.bed-marker:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* Accueil épuré et identité visuelle fournie par les mariés */
#guest-app{position:relative;overflow:hidden}.nav{position:relative;inset:auto;z-index:20;margin:18px clamp(16px,3vw,42px) 0;color:var(--ink);border-color:rgba(82,86,65,.14);background:rgba(255,250,240,.84);box-shadow:0 10px 35px rgba(89,58,34,.06)}.monogram{width:46px;height:46px;display:grid;place-items:center;overflow:hidden}.monogram img{width:100%;height:100%;object-fit:contain;transform:scale(1.55)}.nav-links a{color:var(--ink)}
.intro{position:relative;padding-top:clamp(48px,7vw,95px)}.intro-brand{max-width:1200px;margin:0 auto clamp(35px,5vw,64px);display:flex;align-items:center;justify-content:space-between}.intro-brand>img{width:clamp(92px,10vw,140px);aspect-ratio:1;object-fit:contain;transform:scale(1.35);transform-origin:left center}.section-anchor{position:absolute;top:-85px}.guest-countdown{position:static;display:flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid rgba(82,86,65,.18);border-radius:999px;background:rgba(255,250,240,.82);backdrop-filter:blur(10px);color:var(--ink);font-size:11px;letter-spacing:.12em}.guest-countdown i{color:var(--terracotta)}
.honeymoon-art{margin:0;position:relative;overflow:hidden;background:#eed4c2}.honeymoon-art img{width:100%;height:100%;min-height:590px;object-fit:cover;object-position:center 53%;filter:saturate(.95) contrast(.98)}
.footer-mark{width:70px;height:70px;object-fit:contain;transform:scale(1.35);transform-origin:left center}.admin-emblem{overflow:hidden}.admin-emblem img{width:100%;height:100%;object-fit:contain;transform:scale(1.45)}
.site-flowers{position:absolute;z-index:2;left:-18px;bottom:-22px;width:clamp(185px,24vw,360px);max-width:none;pointer-events:none;user-select:none}.site-flowers+*{position:relative}footer{position:relative;z-index:3;padding-left:clamp(205px,27vw,405px)}
@media(max-width:900px){.honeymoon-art img{min-height:480px;max-height:640px}.intro-brand{padding:0 5px}}
@media(max-width:600px){.nav{margin:8px 10px 0}.monogram{width:40px;height:40px}.intro{padding-top:42px}.intro-brand{margin-bottom:34px}.intro-brand>img{width:82px}.guest-countdown{position:static;padding:6px 10px;font-size:10px}.honeymoon-art img{min-height:390px;max-height:480px}.site-flowers{left:-38px;bottom:-10px;width:210px;opacity:.92}footer{min-height:220px;padding-left:150px;padding-bottom:34px}.footer-mark{width:58px;height:58px}}

/* Nouveau moodboard inspiré du tableau Pinterest des mariés */
.mood-detail-table{background-image:linear-gradient(rgba(89,45,23,.06),rgba(89,45,23,.08)),url("./assets/moodboard-pinterest.png")}
.mood-detail-evening{background-image:linear-gradient(rgba(43,28,18,.05),rgba(43,28,18,.22)),url("./assets/moodboard-pinterest.png")}

/* Fond cartographique local : aucune clé, aucun quota, aucune tuile externe */
#stays-map{background:radial-gradient(circle at 22% 18%,rgba(255,250,240,.86),transparent 28%),radial-gradient(circle at 76% 72%,rgba(89,96,59,.13),transparent 34%),#e9eadf}.map-town-label{background:transparent;border:0}.map-town-label span{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:4px 9px;border-radius:999px;background:rgba(255,250,240,.88);color:#62664e;font-size:10px;font-weight:600;letter-spacing:.02em;box-shadow:0 5px 16px rgba(82,86,65,.09);white-space:nowrap}.leaflet-control-attribution{background:rgba(255,250,240,.88)!important;color:#777a67!important;font-size:9px!important;padding:3px 7px!important;border-radius:10px 0 0 0}.leaflet-control-zoom{border:0!important;border-radius:16px!important;overflow:hidden;box-shadow:0 8px 24px rgba(52,55,42,.18)!important}.leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important;color:var(--ink)!important}.map-legend:after{content:"Carte indicative";margin-left:8px;color:#8a8d7a;font-style:italic}

/* Accueil compact et accès organisateurs dans la navigation */
.admin-top-link{border:0;background:transparent;padding:0;color:inherit;font-size:14px;line-height:inherit;position:relative}.admin-top-link:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:currentColor;transition:right .35s}.admin-top-link:hover:after{right:0}.intro{padding-top:34px;padding-bottom:88px}.intro-brand{margin-bottom:12px;min-height:82px}.intro-brand>img{width:82px;transform:scale(1.15)}.intro>.script{font-size:38px;margin-bottom:4px}.intro h2{font-size:clamp(38px,4.3vw,60px)}.details-grid{margin-top:50px}.site-flowers{bottom:-28px}.stays-section{padding-bottom:clamp(150px,16vw,240px)}
@media(max-width:700px){.nav-links{gap:11px}.nav-links a,.admin-top-link{font-size:12px}.intro{padding-top:24px;padding-bottom:70px}.intro-brand{min-height:64px;margin-bottom:6px}.intro-brand>img{width:66px}.intro>.script{font-size:31px}.intro h2{font-size:34px;line-height:1.08}.details-grid{margin-top:34px}.site-flowers{bottom:-18px}.stays-section{padding-bottom:150px}}
@media(max-width:430px){.nav{padding-left:12px;padding-right:12px}.nav-links{gap:9px}.nav-links a,.admin-top-link{font-size:11px}.monogram{width:34px;height:34px}.nav-links a:first-child{display:none}}

.mood-frame{grid-template-rows:1fr 1fr}
