/* CHARTE JULIA & PATRICK
   Toutes les couleurs, polices et mesures réutilisables sont définies ci-dessous.
   Jimmy Script et Fields Display sont détectées si elles sont installées.
   Seules ces deux familles sont déclarées ; leurs fichiers web restent à fournir.
   Palette : deux bleus et blanc, avec des transparences dérivées pour les surfaces. */
@font-face{font-family:"Fields Display";src:local("Fields Display"),local("FieldsDisplay-Regular");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Jimmy Script";src:local("Jimmy Script"),local("JimmyScript-Regular");font-weight:400;font-style:normal;font-display:swap}
:root{
 --color-sky:#4ca0d8;
 --color-cobalt:#0747a1;
 --color-white:#ffffff;
 --color-paper:var(--color-white);
 --color-ink:var(--color-cobalt);
 --color-muted:var(--color-cobalt);
 --color-line:var(--color-sky);
 --color-soft-blue:color-mix(in srgb,var(--color-sky) 12%,var(--color-white));
 --color-shadow:color-mix(in srgb,var(--color-cobalt) 8%,transparent);
 --color-overlay:color-mix(in srgb,var(--color-cobalt) 90%,transparent);
 --font-display:"Fields Display";
 --font-script:"Jimmy Script";
 --font-body:var(--font-display);
 --space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4.5rem;--space-7:6rem;
 --radius-small:1rem;--radius-card:2rem;--radius-pill:100rem;--page-width:74rem;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.1}h2{font-size:clamp(2.3rem,4.7vw,4rem);letter-spacing:-.035em}h3{font-size:1.75rem;letter-spacing:-.025em}em{font-style:italic;font-weight:400}img{display:block;width:100%;height:100%;object-fit:cover}a:focus-visible,button:focus-visible{outline:3px solid var(--color-cobalt);outline-offset:5px}a:hover{text-decoration:underline;text-underline-offset:.3em}::selection{background:var(--color-cobalt);color:var(--color-white)}.section-container{width:min(var(--page-width),88%);margin-inline:auto}.eyebrow{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;line-height:1.6}.script{font-family:var(--font-script);font-size:2.7rem;font-weight:400;line-height:1.2}.button{min-height:3.2rem;padding:.9rem 1.65rem;display:inline-flex;justify-content:center;align-items:center;gap:.75rem;border-radius:var(--radius-pill);border:1px solid transparent;font-size:.875rem;line-height:1.4;transition:transform .2s,background-color .2s}.button:hover{transform:translateY(-2px);text-decoration:none}.button-paper{background:var(--color-paper);color:var(--color-cobalt)}.button-paper:hover{background:var(--color-paper)}.button-blue{background:var(--color-cobalt);color:var(--color-white)}.button-blue:hover{background:var(--color-cobalt)}.text-link{font-size:.875rem;display:inline-block;border-bottom:1px solid currentColor;padding-bottom:.25rem}.skip-link{position:absolute;top:-10rem;left:1rem;background:var(--color-paper);padding:.75rem;z-index:20}.skip-link:focus{top:1rem}
/* Navigation : menu accessible sur mobile, ligne complète sur ordinateur. */
.site-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.3rem 5.5%;min-height:6rem;z-index:5}.brand{display:flex;align-items:center;gap:.8rem;font-family:var(--font-display);font-size:1.4rem;white-space:nowrap}.brand:hover{text-decoration:none}.navigation{display:flex;align-items:center;gap:1.7rem;font-size:.875rem}.nav-outline{padding:.65rem 1.2rem;border:1px solid var(--color-cobalt);border-radius:var(--radius-pill)}.menu-button{display:none;align-items:center;gap:.6rem;border:1px solid var(--color-cobalt);background:transparent;color:var(--color-cobalt);padding:.7rem 1rem;border-radius:100px;font-size:.875rem;min-height:2.75rem}.menu-icon{width:14px;height:8px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
/* L’accueil transpose les grands aplats organiques du faire-part en espace web. */
.hero{position:relative;overflow:hidden;background:var(--color-sky);color:var(--color-white);min-height:43rem;padding:4rem 6% 3rem;isolation:isolate}.hero-shape{position:absolute;pointer-events:none;z-index:-1;background:var(--color-cobalt)}.hero-shape-one{width:41rem;height:48rem;right:-24rem;top:-12rem;border-radius:48% 35% 65% 30%;transform:rotate(-18deg)}.hero-shape-two{width:41rem;height:36rem;left:-28rem;bottom:-24rem;border-radius:38% 63% 25% 45%;transform:rotate(-27deg)}.hero-inner{max-width:74rem;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:6%;align-items:center}.hero-copy{padding:1rem 0 2rem}.hero-eyebrow{color:var(--color-white)}.hero-script{font-size:3.5rem;margin:1.6rem 0 .6rem}.hero h1{font-size:clamp(4.5rem,8.4vw,7.8rem);line-height:.95;letter-spacing:-.045em}.ampersand{font-size:.62em;display:inline-block;vertical-align:middle;margin-left:.05em}.hero-information{margin:1.8rem 0;max-width:29rem;font-size:1.2rem;line-height:1.6}.hero-information p:first-child{font-size:1.1rem}.hero-rule{display:block;width:3.8rem;height:1px;background:var(--color-white);margin:1rem 0}.hero-town{font-size:1rem}.hero-emblem{justify-self:center;text-align:center;padding-top:1rem}.hero-emblem>p{letter-spacing:.22em;font-size:.875rem;margin-top:1.7rem}.hero-bottom-note{max-width:74rem;margin:2rem auto 0;font-size:.75rem;letter-spacing:.08em}.hero .button:focus-visible{outline-color:var(--color-white)}.invitation{text-align:center;max-width:44rem;padding:6rem 0 5.5rem}.invitation h2{margin:1.5rem 0 1.8rem}.invitation>p{max-width:30rem;margin-inline:auto;color:var(--color-muted);line-height:1.9}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:3rem;margin-bottom:3rem}.section-heading h2{margin-top:1.3rem}.section-heading>p{max-width:22rem;color:var(--color-muted);line-height:1.8}.closing{position:relative;overflow:hidden;background:var(--color-cobalt);color:var(--color-white);text-align:center;padding:4rem 1.5rem 4.5rem;border-radius:45% 45% 0 0 / 10% 10% 0 0}.closing>.script{font-size:2.6rem}.closing h2{margin:1.3rem auto 2rem;max-width:38rem}.closing .text-link:focus-visible{outline-color:var(--color-white)}footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.6rem 6%;font-size:.75rem;color:var(--color-muted)}footer span:first-child{font-family:var(--font-display);font-size:1.2rem;color:var(--color-cobalt)}
/* Mobile-first behavior: navigation tactile et grilles fluides sans débordement. */
@media(max-width:1100px){.navigation{gap:1rem}.brand{font-size:1.2rem}.hero{min-height:40rem}}
@media(max-width:900px){.site-header{min-height:5rem;padding:1rem 6%;gap:1rem}.menu-button{display:flex}.navigation{display:none;position:absolute;top:calc(100% - .1rem);left:0;right:0;padding:1rem 6% 1.5rem;background:var(--color-paper);box-shadow:0 15px 25px var(--color-shadow);border-bottom:1px solid var(--color-line);flex-direction:column;align-items:stretch;gap:.3rem}.navigation.is-open{display:flex}.navigation a{padding:.8rem 0;font-size:1rem;min-height:2.75rem}.navigation .nav-outline{padding:.8rem 1rem;text-align:center;margin-top:.5rem}.hero{padding:3rem 6% 2.5rem;min-height:0}.hero h1{font-size:6rem}.hero-script{font-size:3rem}.hero-shape-one{right:-29rem}.hero-information{font-size:1.1rem}.section-heading{gap:2rem}.section-heading>p{max-width:18rem}.section-container{width:88%}}
@media(max-width:600px){html{scroll-padding-top:1.5rem}.hero{padding:2.5rem 7% 2.2rem}.hero-inner{grid-template-columns:1fr;gap:1rem}.hero-copy{text-align:center;padding:.8rem 0 0}.hero h1{font-size:min(18vw,6.4rem);line-height:.98}.hero-script{font-size:2.9rem;margin:1.3rem 0 .5rem}.hero-eyebrow{font-size:.75rem}.hero-information{margin:1.6rem auto;line-height:1.7}.hero-rule{margin:.8rem auto}.hero-information p:first-child{font-size:1rem}.hero-town{font-size:.875rem}.hero-emblem{display:flex;align-items:center;gap:1.2rem;padding-top:1.3rem}.hero-emblem>p{font-size:.75rem;letter-spacing:.14em;margin-top:0}.hero-bottom-note{text-align:center;margin-top:1.5rem;letter-spacing:.03em}.hero-shape-one{right:-34rem;top:-15rem;transform:rotate(-28deg)}.hero-shape-two{left:-32rem;bottom:-29rem}.invitation{padding:4rem 0 3.8rem}.invitation h2{font-size:2.8rem}.section-heading{display:block;margin-bottom:2rem}.section-heading h2{font-size:2.75rem}.section-heading>p{max-width:none;margin-top:1.4rem}.closing{padding:3rem 7% 3.5rem}.closing h2{font-size:2.8rem}.closing>.script{font-size:2.2rem}footer{flex-wrap:wrap;justify-content:center;text-align:center;gap:.5rem 1.5rem;padding:1.5rem 6%}footer span:last-child{width:100%}.brand{font-size:1.2rem}}
@media(max-width:360px){.brand{font-size:1.05rem;gap:.5rem}.menu-button{padding:.6rem .8rem}.hero h1{font-size:min(18vw,4.35rem)}.hero-script{font-size:2.6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* SECTIONS — même charte, composants réutilisables. */
.content-section{padding-block:5.5rem}.pending-label{display:inline-flex;align-items:center;max-width:100%;border:1px solid var(--color-line);border-radius:var(--radius-pill);padding:.25rem .7rem;font-size:.75rem;line-height:1.5;color:var(--color-muted)}.small-note{font-size:.875rem;color:var(--color-muted);line-height:1.6}.empty-note{color:var(--color-muted);padding:2rem;border:1px dashed var(--color-line);border-radius:var(--radius-card)}.programme-band{background:var(--color-soft-blue)}.programme-intro{max-width:22rem}.programme-intro>p{margin-bottom:1rem}.accommodation-band{background:var(--color-soft-blue)}.accommodation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.accommodation-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-card);padding:2rem;background:var(--color-paper)}.accommodation-top{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.75rem;color:var(--color-muted);margin-bottom:1.8rem}.accommodation-card h3{font-size:1.9rem;margin-bottom:.8rem}.accommodation-area{font-size:.875rem;color:var(--color-muted);margin-bottom:1.4rem}.accommodation-facts{margin:0 0 1.7rem;border-top:1px solid var(--color-line);padding-top:1rem;font-size:.875rem;line-height:1.6}.accommodation-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0}.accommodation-facts dt{color:var(--color-muted)}.accommodation-facts dd{margin:0;text-align:right}.accommodation-description{margin-bottom:1.5rem;font-size:1rem}.accommodation-card>.small-note,.accommodation-card>.button{margin-top:auto}.accommodation-card>.button{width:100%}.faq-list{max-width:56rem;margin-left:auto}.faq-item{border-top:1px solid var(--color-line)}.faq-item:last-child{border-bottom:1px solid var(--color-line)}.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;cursor:pointer;min-height:4.5rem;padding:1.4rem .25rem;font-size:1.125rem;line-height:1.6}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:focus-visible{outline:2px solid var(--color-cobalt);outline-offset:5px;border-radius:.4rem}.faq-icon{position:relative;width:1rem;height:1rem;flex-shrink:0}.faq-icon::before,.faq-icon::after{content:"";position:absolute;top:50%;left:0;background:var(--color-cobalt);width:1rem;height:1px}.faq-icon::after{transform:rotate(90deg);transition:transform .2s}.faq-item[open] .faq-icon::after{transform:rotate(0)}.faq-answer{padding:0 2.5rem 1.5rem .25rem;color:var(--color-muted);max-width:48rem}.faq-answer>.pending-label{margin-top:1rem}.gallery-band{background:var(--color-soft-blue)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;align-items:start}.gallery-item{min-width:0}.gallery-thumb{position:relative;display:block;overflow:hidden;width:100%;height:24rem;padding:0;border:0;border-radius:var(--radius-card);background:var(--color-cobalt);cursor:zoom-in}.gallery-thumb img{transition:transform .3s;object-position:center}.gallery-thumb:hover img{transform:scale(1.035)}.gallery-thumb:focus-visible{outline-offset:5px}.gallery-item:first-child .gallery-thumb img{object-fit:contain;background:var(--color-paper)}.enlarge-label{position:absolute;bottom:1rem;right:1rem;background:var(--color-paper);color:var(--color-cobalt);padding:.45rem .85rem;border-radius:var(--radius-pill);font-size:.875rem;min-height:2.5rem;display:flex;align-items:center}.gallery-item figcaption{padding:1rem .3rem 0;display:flex;flex-direction:column;gap:.3rem}.gallery-item figcaption strong{font-weight:400;font-family:var(--font-display);font-size:1.45rem}.photo-category,.photo-credit{font-size:.75rem;color:var(--color-muted)}.registry-section{text-align:center;max-width:49rem}.registry-section h2{margin:1.5rem 0 1.8rem}.registry-section>p:not(.small-note){color:var(--color-muted);max-width:33rem;margin:0 auto 2rem;line-height:1.9}.registry-section .small-note{margin-top:1rem}.button:disabled{background:var(--color-soft-blue);color:var(--color-cobalt);cursor:default;border-color:var(--color-sky);transform:none}
/* Galerie agrandie : navigation au clavier, boutons tactiles et geste de balayage. */
.photo-open{overflow:hidden}.lightbox{width:min(70rem,94vw);max-width:none;max-height:94dvh;padding:1rem 1.2rem;border:0;border-radius:1.5rem;background:var(--color-paper);color:var(--color-ink);overflow:auto}.lightbox::backdrop{background:var(--color-overlay)}.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 .2rem .8rem;font-size:.875rem}.lightbox-close,.lightbox-prev,.lightbox-next{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:2.75rem;padding:.7rem 1rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-cobalt);font-size:.875rem;line-height:1.4}.lightbox-close span{font-size:1.6rem;line-height:.8}.lightbox-media{height:65dvh;background:var(--color-soft-blue);border-radius:.75rem;overflow:hidden;touch-action:pan-y}.lightbox-media img{object-fit:contain;width:100%;height:100%}.lightbox-bottom{display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;padding-top:1rem;text-align:center}.lightbox-bottom>div{min-width:0;overflow-wrap:anywhere}.lightbox-bottom>div>p:first-child{font-family:var(--font-display);font-size:1.3rem}.lightbox-bottom>div>p:last-child{font-size:.75rem;color:var(--color-muted)}[hidden]{display:none!important}
@media(max-width:1380px){.navigation{gap:.85rem;font-size:.8125rem}.brand{font-size:1.2rem}.site-header{gap:1rem}}
@media(max-width:1400px){.menu-button{display:flex}.navigation{display:none;position:absolute;top:calc(100% - .1rem);left:0;right:0;padding:1rem 6% 1.5rem;background:var(--color-paper);box-shadow:0 15px 25px var(--color-shadow);border-bottom:1px solid var(--color-line);flex-direction:column;align-items:stretch;gap:.15rem;max-height:80dvh;overflow:auto}.navigation.is-open{display:flex}.navigation a{padding:.65rem 0;font-size:1rem;min-height:2.75rem}.navigation .nav-outline{padding:.8rem 1rem;text-align:center;margin-top:.5rem}.accommodation-card{padding:1.5rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.accommodation-grid{grid-template-columns:1fr}.accommodation-card{padding:2rem}.accommodation-card h3{max-width:30rem}.accommodation-facts{max-width:35rem}.accommodation-card>.button{width:auto;align-self:flex-start}.content-section{padding-block:4rem}}
@media(max-width:600px){.content-section{padding-block:3.5rem}.programme-intro{margin-top:1.2rem}.accommodation-card{padding:1.6rem;border-radius:1.4rem}.accommodation-card h3{font-size:1.8rem}.accommodation-top{margin-bottom:1.5rem}.accommodation-card>.button{width:100%}.faq-item summary{font-size:1rem;gap:1rem;padding:1.25rem .2rem}.faq-answer{padding-right:1.5rem}.gallery-grid{grid-template-columns:1fr;gap:2rem}.gallery-thumb{height:25rem;border-radius:1.4rem}.gallery-item figcaption{padding-top:.75rem}.lightbox{padding:.6rem .7rem;width:96vw;max-height:96dvh;border-radius:1rem}.lightbox-top{padding-bottom:.6rem}.lightbox-media{height:62dvh}.lightbox-bottom{grid-template-columns:1fr 1fr;gap:.7rem}.lightbox-bottom>div{grid-column:1/-1;grid-row:1}.lightbox-bottom>button{grid-row:2;width:100%}.lightbox-bottom>div>p:first-child{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.gallery-thumb img,.faq-icon::after{transition:none}}.faq-answer p{white-space:pre-line}
/* RSVP — conversation dans la charte du mariage, sans interface de chatbot générique. */
.rsvp-section{background:var(--color-soft-blue);padding-block:5rem;margin-top:1rem}.rsvp-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:7%;align-items:start}.rsvp-intro{padding-top:2rem}.rsvp-intro h2{font-size:clamp(2.7rem,4.7vw,4.4rem);margin:1.4rem 0 1.7rem}.rsvp-intro>p:not(.script){color:var(--color-muted);max-width:27rem}.rsvp-intro>.script{font-size:2.6rem;margin:1.5rem 0 2rem}.rsvp-intro>.small-note{margin-top:1rem;max-width:23rem}.rsvp-chat{min-width:0;border:1px solid var(--color-sky);border-radius:var(--radius-card);background:var(--color-paper);overflow:hidden}.rsvp-chat-header{display:flex;align-items:center;gap:.85rem;padding:1.2rem 1.35rem;border-bottom:1px solid var(--color-line)}.rsvp-avatar{display:grid;place-items:center;width:2.8rem;height:3.6rem;flex-shrink:0;border:1px solid var(--color-cobalt);border-radius:50% / 30%;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.12em;padding-right:.13em}.rsvp-chat-title{min-width:0}.rsvp-chat-title strong{display:block;font-family:var(--font-display);font-size:1.35rem;font-weight:400;line-height:1.3}.rsvp-chat-title>span{display:block;font-size:.75rem;color:var(--color-muted);margin-top:.3rem}.rsvp-restart{background:transparent;color:var(--color-muted);border:0;padding:.7rem .2rem;margin-left:auto;font-size:.75rem;min-height:2.75rem}.rsvp-restart:hover{text-decoration:underline;text-underline-offset:3px}.rsvp-restart:disabled{opacity:.5;cursor:default}.rsvp-messages{height:29rem;overflow-y:auto;overscroll-behavior:contain;padding:1.5rem 1.35rem;scrollbar-width:thin;scrollbar-color:var(--color-sky) transparent;display:flex;flex-direction:column;gap:.7rem}.rsvp-welcome{margin:auto;text-align:center;font-family:var(--font-script);font-size:2rem;color:var(--color-muted)}.rsvp-message-row{display:flex;flex-shrink:0;min-width:0;animation:rsvp-arrive .22s ease-out}.rsvp-message-row.is-guest{justify-content:flex-end}.rsvp-bubble{max-width:87%;padding:.8rem 1.05rem;border-radius:1.2rem 1.2rem 1.2rem .3rem;background:var(--color-soft-blue);color:var(--color-ink);font-size:1rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.is-guest>.rsvp-bubble{background:var(--color-cobalt);color:var(--color-white);border-radius:1.2rem 1.2rem .3rem 1.2rem}.rsvp-typing{display:flex;align-items:center;gap:.15rem;padding:.45rem 1rem;background:var(--color-soft-blue);border-radius:1.2rem 1.2rem 1.2rem .3rem;color:var(--color-cobalt);min-width:3.7rem;min-height:2.7rem;line-height:1}.rsvp-typing span{font-size:1.35rem;animation:rsvp-dot .9s ease-in-out infinite}.rsvp-typing span:nth-child(2){animation-delay:.12s}.rsvp-typing span:nth-child(3){animation-delay:.24s}.rsvp-composer{border-top:1px solid var(--color-line);padding:1.1rem 1.35rem;min-height:5.6rem}.rsvp-choices{display:flex;flex-wrap:wrap;gap:.6rem;max-height:16rem;overflow-y:auto;padding:.2rem .1rem}.rsvp-choice{min-height:2.95rem;padding:.8rem 1.1rem;font-size:.9375rem;color:var(--color-cobalt);background:var(--color-paper);border:1px solid var(--color-sky);border-radius:var(--radius-pill);text-align:center;line-height:1.45;flex-grow:1;overflow-wrap:anywhere}.rsvp-choice:hover{background:var(--color-soft-blue);border-color:var(--color-cobalt)}.rsvp-reply-form{display:flex;align-items:flex-end;gap:.6rem;margin:0}.rsvp-input{min-width:0;width:100%;flex:1;font:inherit;font-size:1rem;line-height:1.6;color:var(--color-ink);background:var(--color-white);border:1px solid var(--color-sky);border-radius:1.25rem;min-height:3rem;padding:.65rem 1rem;resize:vertical;max-height:9rem}.rsvp-input::placeholder{color:var(--color-cobalt)}.rsvp-input:focus-visible{outline:2px solid var(--color-cobalt);outline-offset:3px}.rsvp-send{min-height:3rem;border:0;border-radius:var(--radius-pill);padding:.7rem 1rem;background:var(--color-cobalt);color:var(--color-white);font-size:.875rem;line-height:1.6}.rsvp-send:hover{background:var(--color-cobalt)}.rsvp-skip{display:block;min-height:2.75rem;font-size:.875rem;padding:.5rem 0;margin-top:.3rem;background:transparent;border:0;color:var(--color-muted)}.rsvp-skip:hover{text-decoration:underline;text-underline-offset:3px}.rsvp-input-note{font-size:.75rem;color:var(--color-muted);margin-top:.6rem;line-height:1.6}.rsvp-error{font-size:.875rem;font-weight:700;color:var(--color-cobalt);padding-top:.7rem}.rsvp-wait{font-size:.875rem;color:var(--color-muted);display:block;padding:.8rem 0}.rsvp-chat-footer{padding:0 1.35rem 1.15rem}.rsvp-chat-footer>p{font-size:.75rem;color:var(--color-muted);line-height:1.6;margin-top:.45rem}.rsvp-back{font-size:.875rem;color:var(--color-cobalt);padding:.5rem 0;background:transparent;border:0;min-height:2.75rem;text-align:left}.rsvp-back:not(:disabled):hover{text-decoration:underline;text-underline-offset:3px}.rsvp-back:disabled{opacity:.45;cursor:default}.rsvp-summary{max-width:96%;white-space:normal}.rsvp-summary h3{font-size:1.5rem;margin-bottom:1.2rem}.rsvp-summary dl{margin:0}.rsvp-summary dl>div{border-top:1px solid var(--color-sky);padding:.7rem 0}.rsvp-summary dt{font-size:.75rem;color:var(--color-muted);margin-bottom:.3rem}.rsvp-summary dd{margin:0;white-space:pre-wrap;font-size:.9375rem}.rsvp-summary-note{font-size:.75rem;margin-top:.8rem;color:var(--color-muted);line-height:1.6}.rsvp-noscript{padding:1rem}.rsvp-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}.rsvp-composer button:disabled,.rsvp-input:disabled{opacity:.6;cursor:default}
@keyframes rsvp-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes rsvp-dot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}
@media(max-width:850px){.rsvp-layout{grid-template-columns:1fr;gap:2rem}.rsvp-intro{padding-top:0}.rsvp-intro>p:not(.script){max-width:35rem}.rsvp-intro>.script{margin-bottom:1.5rem}.rsvp-intro h2{font-size:3.4rem}.rsvp-chat{max-width:43rem;width:100%;margin-inline:auto}.rsvp-section{padding-block:4rem}}
@media(max-width:600px){.rsvp-section{padding-block:3.5rem}.rsvp-intro h2{font-size:3rem}.rsvp-chat{border-radius:1.5rem}.rsvp-chat-header{padding:1rem;gap:.6rem}.rsvp-avatar{width:2.4rem;height:3.1rem}.rsvp-chat-title strong{font-size:1.2rem}.rsvp-chat-title>span{font-size:.75rem}.rsvp-restart{font-size:.75rem;padding:.6rem .1rem}.rsvp-messages{height:25rem;height:clamp(20rem,52dvh,29rem);padding:1.15rem 1rem;gap:.65rem}.rsvp-bubble{max-width:91%;padding:.75rem .9rem}.rsvp-composer{padding:1rem;min-height:5rem}.rsvp-choice{min-height:3rem;padding:.8rem .85rem;font-size:.9375rem}.rsvp-reply-form{gap:.4rem}.rsvp-input{padding:.65rem .85rem}.rsvp-send{padding:.7rem .85rem}.rsvp-chat-footer{padding:0 1rem 1rem}.rsvp-summary{max-width:98%}}
@media(max-width:370px){.rsvp-chat-title>span{max-width:9rem}.rsvp-reply-form{flex-wrap:wrap}.rsvp-send{margin-left:auto}.rsvp-input{flex-basis:100%}.rsvp-restart{font-size:.75rem}.rsvp-avatar{display:none}}
@media(prefers-reduced-motion:reduce){.rsvp-message-row,.rsvp-typing span{animation:none!important}.rsvp-messages{scroll-behavior:auto}}
/* ACCUEIL AFFINÉ — même palette, le décompte devient le second point d’ancrage. */
.header-actions{display:flex;align-items:center;gap:.65rem;order:3}.brand{order:1}.navigation{order:2}.language-toggle{border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-white);color:var(--color-cobalt);font-size:.875rem;min-height:2.75rem;white-space:nowrap;padding:.55rem .8rem}.language-toggle:hover{background:var(--color-soft-blue)}
.hero-aside{min-width:0;width:100%;max-width:30rem;justify-self:center}.hero-emblem{display:flex;align-items:center;justify-content:center;gap:1.2rem;padding:0;margin-bottom:1.7rem}.hero-emblem>p{margin:0;font-size:.875rem;letter-spacing:.18em}.countdown-panel{position:relative;isolation:isolate;min-width:0;text-align:center;background:var(--color-cobalt);color:var(--color-white);padding:2.1rem 2rem 2.4rem;border-radius:45% 45% 2rem 2rem / 20% 20% 2rem 2rem}.countdown-title{font-size:2.5rem;margin-top:.7rem}.countdown-day{display:flex;flex-direction:column;align-items:center;gap:.1rem;margin:.8rem 0 1.65rem}.countdown-day strong{font-family:var(--font-display);font-size:clamp(5.5rem,10vw,9rem);font-weight:400;line-height:1.05;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.countdown-day>span{font-size:1.125rem}.countdown-clock{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;border-top:1px solid var(--color-sky);padding-top:1.25rem}.countdown-clock>div{display:flex;flex-direction:column;gap:.35rem;min-width:0}.countdown-clock strong{font-family:var(--font-display);font-size:2.4rem;font-weight:400;line-height:1.2;font-variant-numeric:tabular-nums}.countdown-clock span{font-size:.875rem}.countdown-arrived{margin-top:1rem;font-size:1rem}
/* Choix de langue accueillant, accessible au clavier et dans les deux langues. */
.language-open{overflow:hidden}.language-modal{width:min(29rem,calc(100vw - 2rem));max-width:none;max-height:calc(100dvh - 2rem);overflow:auto;padding:2rem 1.7rem;border:1px solid var(--color-sky);border-radius:42% 42% 1.7rem 1.7rem / 9% 9% 1.7rem 1.7rem;background:var(--color-white);color:var(--color-cobalt);text-align:center}.language-modal::backdrop{background:var(--color-overlay)}.language-monogram{width:2.7rem;height:3.7rem;font-size:1.85rem;margin:.3rem auto .8rem}.language-names{font-size:1.125rem;margin-bottom:1.4rem}.language-modal h2{font-size:2.8rem;letter-spacing:-.025em}.language-modal h2>.script{display:inline-block;font-size:3.2rem;margin-top:.35rem}.language-modal #language-description{font-size:1rem;line-height:1.7;margin-top:1.2rem}.language-options{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.8rem}.language-options button{display:flex;flex-direction:column;gap:.2rem;padding:1rem .7rem;min-height:5rem;border:1px solid var(--color-cobalt);border-radius:1.2rem;background:var(--color-white);color:var(--color-cobalt);text-align:center}.language-options strong{font-size:1.2rem;font-weight:400}.language-options span{font-size:.875rem}.language-options button:hover,.language-options button[aria-pressed="true"]{background:var(--color-cobalt);color:var(--color-white)}
@media(min-width:901px){.hero{padding:3.4rem 7% 2.6rem;min-height:0}.hero-inner{grid-template-columns:1.05fr 1fr;gap:9%;max-width:70rem}.hero-copy{padding:.3rem 0 0}.hero h1{font-size:clamp(5.3rem,8.4vw,8rem)}.hero-script{margin:1.3rem 0 .6rem}.hero-information{margin:1.4rem 0}.hero-bottom-note{max-width:70rem;margin-top:2.2rem;font-size:.875rem}.hero-shape-one{right:-28rem;top:-19rem}.invitation{padding-block:5rem}.navigation{gap:clamp(.65rem,1.1vw,1.2rem);font-size:.875rem}.site-header{gap:1rem;padding-inline:4.5%}.brand{font-size:1.25rem}}
@media(min-width:1440px){.hero{padding-block:4.3rem 3rem}.hero-inner{gap:12%}.countdown-panel{padding:2.7rem 2.4rem}.hero-aside{max-width:31rem}}
@media(max-width:900px){.hero-inner{grid-template-columns:1fr 1fr;gap:5%}.countdown-panel{padding:1.8rem 1.2rem}.countdown-title{font-size:2.2rem}.countdown-day strong{font-size:6rem}.countdown-clock strong{font-size:2rem}}
@media(max-width:600px){.hero-inner{grid-template-columns:1fr}.hero-aside{max-width:26rem;margin-top:.6rem}.hero-emblem{margin-bottom:1.4rem;padding-top:.7rem}.countdown-panel{padding:1.55rem 1.15rem 1.7rem;border-radius:2rem}.countdown-title{font-size:2rem;margin-top:0}.countdown-day{display:flex;flex-direction:row;justify-content:center;align-items:baseline;gap:.65rem;margin:.55rem 0 1rem}.countdown-day strong{font-size:5rem;line-height:1.1}.countdown-day span{font-size:1.125rem}.countdown-clock{padding-top:1rem;gap:.5rem}.countdown-clock strong{font-size:1.9rem}.countdown-clock span{font-size:.875rem}.hero-bottom-note{font-size:.875rem}.language-toggle{font-size:.8125rem;padding:.55rem .65rem}.header-actions{gap:.45rem}.site-header{padding-inline:5%;gap:.5rem}.brand{gap:.5rem;font-size:1.05rem}.menu-button{font-size:.8125rem;padding:.65rem .7rem}.language-modal{padding:1.7rem 1.2rem}.language-modal h2{font-size:2.5rem}.language-modal #language-description{font-size:.9375rem}.language-options{gap:.5rem}.language-options strong{font-size:1.125rem}}
@media(max-width:360px){.brand>span:last-child{font-size:.95rem}.menu-button{padding:.6rem .55rem}.language-toggle{padding:.5rem}.header-actions{gap:.3rem}.site-header{padding-inline:4%}}

/* Hébergements : une seule rangée défilante, cartes et charte existantes. */
.accommodation-note{max-width:58rem;margin:-.5rem 0 1.7rem}
.accommodation-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 2.4rem)/3);gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:.25rem;overscroll-behavior-inline:contain;padding:.25rem .25rem 1rem;scrollbar-width:thin;scrollbar-color:var(--color-cobalt) var(--color-soft-blue)}
.accommodation-card{scroll-snap-align:start;scroll-margin-inline:.25rem}
.accommodation-facts dt{flex:0 0 32%}
.accommodation-facts dd{min-width:0;overflow-wrap:anywhere}
.accommodation-facts{margin-bottom:1.4rem}
.accommodation-actions{display:flex;flex-direction:column;gap:.65rem;margin-top:auto}
.accommodation-actions>.button{width:100%}
.accommodation-contact-button{gap:.65rem;min-height:2.75rem;text-align:left;font-size:.875rem;white-space:normal}
.accommodation-contact-button>span:last-child{min-width:0;overflow-wrap:anywhere}
.contact-icon{flex:0 0 1.1rem;width:1.1rem;height:1.1rem}
.contact-icon svg{display:block;width:100%;height:100%}
.accommodation-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.6rem}
.accommodation-arrows{display:flex;gap:.65rem}
.carousel-arrow{display:grid;place-items:center;width:3rem;height:3rem;padding:0;border:1px solid var(--color-cobalt);border-radius:50%;background:var(--color-paper);color:var(--color-cobalt);font-size:1.5rem;cursor:pointer;transition:background .2s,color .2s}
.carousel-arrow:hover:enabled{background:var(--color-cobalt);color:var(--color-white)}
.carousel-arrow:disabled{opacity:.3;cursor:default}
@media(max-width:1100px){.accommodation-grid{grid-auto-columns:calc((100% - 1.2rem)/2)}}
@media(max-width:600px){.accommodation-grid{grid-auto-columns:90%;gap:.9rem}.accommodation-card{padding:1.5rem}.accommodation-card h3{font-size:1.7rem}.accommodation-facts{font-size:.8125rem}.accommodation-controls{margin-top:.4rem}}

/* Programme du jour : chemin souple et illustré, avec pause facultative. */
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;list-style:none;padding:0;margin:0;isolation:isolate}
.timeline-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.1rem;min-width:0;text-align:center}
.timeline-item:nth-child(even){padding-top:8rem}
.timeline-item::before,.timeline-item::after{display:none}
.timeline-illustration{position:relative;display:block;flex:none;overflow:hidden;width:10rem;height:10rem;max-width:100%;background:var(--color-soft-blue);border-radius:47% 53% 50% 44%;z-index:1}
.timeline-illustration img{position:absolute;display:block;width:200%;height:200%;max-width:none;object-fit:contain;left:0;top:0}
.illustration-drinks img{left:-100%}.illustration-dinner img{top:-100%}.illustration-party img{left:-100%;top:-100%}
.timeline-detail{position:relative;z-index:1;min-width:0;max-width:100%}
.timeline-time{display:inline-block;padding:.35rem .9rem;margin-bottom:1rem;background:var(--color-paper);border:1px solid var(--color-sky);border-radius:var(--radius-pill);font-size:1.8rem;line-height:1.3;font-variant-numeric:tabular-nums}
.timeline-detail h3{font-size:clamp(1.7rem,2.4vw,2.2rem);margin-bottom:.7rem;overflow-wrap:break-word}
.timeline-detail>p{font-size:1rem;line-height:1.7;color:var(--color-muted)}
.timeline-detail .pending-label{margin-top:1rem}
.timeline-connector{position:absolute;left:50%;top:3.3rem;width:calc(100% + 1.5rem);height:11.4rem;color:var(--color-sky);z-index:-1;pointer-events:none}
.timeline-connector svg{display:block;width:100%;height:100%;overflow:visible}
.timeline-connector .path-mobile{display:none}
.timeline-item:nth-child(even) .timeline-connector{transform:scaleY(-1)}
.timeline-item:last-child .timeline-connector{display:none}
/* Adresses utiles : mêmes cartes pour la cérémonie et la réception. */
.access-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:stretch}
.address-card{display:flex;flex-direction:column;min-width:0;padding:2.5rem;background:var(--color-soft-blue);border:1px solid var(--color-line);border-radius:var(--radius-card)}
.address-card h3{font-size:2.2rem;margin:1.2rem 0 1rem;min-height:2.2em;overflow-wrap:break-word}
.address-card address{font-style:normal;margin-bottom:1.4rem;line-height:1.8;white-space:pre-line}
.route-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.route-actions>.button{flex:1;min-height:3rem;padding:.85rem 1rem;white-space:nowrap}
.address-parking{border-top:1px solid var(--color-line);margin-top:1.8rem;padding-top:1.5rem}
.address-parking h4{font-family:var(--font-display);font-size:1.4rem;line-height:1.4;font-weight:400;margin:0 0 .65rem}
.address-parking p{font-size:1rem;line-height:1.7}
.address-parking address{font-size:1rem;margin:.9rem 0 1.2rem}
.parking-routes>.button{background:transparent;color:var(--color-cobalt);border-color:var(--color-cobalt)}
.access-transport{margin-top:2rem;max-width:42rem}
.access-transport h3{font-size:1.65rem;margin-bottom:.65rem}
.access-transport p{font-size:1rem;color:var(--color-muted)}
@media(max-width:950px){
 .timeline{display:block;max-width:42rem;margin-inline:auto}
 .timeline-item,.timeline-item:nth-child(even){display:grid;grid-template-columns:8rem minmax(0,1fr);gap:2rem;align-items:center;text-align:left;padding:0 0 3rem;min-height:12rem}
 .timeline-item:last-child{padding-bottom:0}
 .timeline-illustration{width:8rem;height:8rem}
 .timeline-time{font-size:1.8rem;margin-bottom:.8rem}
 .timeline-connector,.timeline-item:nth-child(even) .timeline-connector{left:0;top:5rem;bottom:-5rem;width:8rem;height:auto;transform:none}
 .timeline-connector .path-desktop{display:none}.timeline-connector .path-mobile{display:block}
 .address-card{padding:2rem}.address-card h3{font-size:2rem}
}
@media(max-width:700px){.access-layout{grid-template-columns:1fr}.address-card h3{min-height:0}}
@media(max-width:600px){
 .timeline-item,.timeline-item:nth-child(even){grid-template-columns:5.5rem minmax(0,1fr);gap:1.1rem;padding-bottom:2.5rem;min-height:10rem}
 .timeline-illustration{width:5.5rem;height:5.5rem}
 .timeline-time{font-size:1.5rem;padding:.3rem .8rem}
 .timeline-detail h3{font-size:1.75rem}.timeline-detail>p{font-size:1rem}
 .timeline-connector,.timeline-item:nth-child(even) .timeline-connector{top:3.4rem;bottom:-3.4rem;width:5.5rem}
 .address-card{padding:1.65rem}.address-card h3{font-size:2rem}
 .route-actions{gap:.6rem}.route-actions>.button{font-size:1rem;padding:.85rem .7rem}
 .access-transport{margin-top:1.5rem}
}
@media(max-width:370px){.route-actions>.button{flex-basis:100%}}

/* Accueil allégé : date et décompte, monogramme conservé dans l’en-tête. */


.gallery-grid.single-photo{grid-template-columns:minmax(0,1fr);max-width:27rem;margin-inline:auto}

/* Pause facultative, menus plus longs et photo de la demande. */
.timeline.has-five-steps{grid-template-columns:repeat(5,minmax(0,1fr))}
.timeline.has-five-steps .timeline-illustration{width:min(9rem,100%);height:auto;aspect-ratio:1}
.timeline-illustration.illustration-break{display:grid;place-items:center;border:1px dashed var(--color-sky);padding:.65rem}
.illustration-break .script{font-size:2.1rem;line-height:1.2;text-align:center}
.timeline-time.is-flexible{font-size:1rem;max-width:100%;white-space:normal}
.optional-label{margin-top:.85rem}
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-item.is-landscape .gallery-thumb{height:auto;aspect-ratio:4/3}
.gallery-item.is-landscape .gallery-thumb img{object-fit:contain;background:var(--color-paper)}
.rsvp-section-link{display:block;width:fit-content;max-width:100%;margin-top:.8rem;border:1px solid var(--color-cobalt);border-radius:var(--radius-pill);padding:.55rem .85rem;font-size:.9375rem;line-height:1.5;background:var(--color-paper);color:var(--color-cobalt)}
.rsvp-section-link:hover{background:var(--color-cobalt);color:var(--color-white);text-decoration:none}
@media(max-width:1100px){
 .timeline.has-five-steps{display:block;max-width:42rem;margin-inline:auto}
 .timeline.has-five-steps .timeline-item{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:2rem;align-items:center;text-align:left;padding:0 0 3rem;min-height:12rem}
 .timeline.has-five-steps .timeline-illustration{width:8rem;height:8rem}
 .timeline.has-five-steps .timeline-connector{left:0;top:5rem;bottom:-5rem;width:8rem;height:auto;transform:none}
 .timeline.has-five-steps .timeline-connector .path-desktop{display:none}.timeline.has-five-steps .timeline-connector .path-mobile{display:block}
}
@media(max-width:600px){
 .timeline.has-five-steps .timeline-item{grid-template-columns:5.5rem minmax(0,1fr);gap:1.1rem;padding-bottom:2.5rem;min-height:10rem}
 .timeline.has-five-steps .timeline-illustration{width:5.5rem;height:5.5rem}
 .timeline.has-five-steps .timeline-connector{top:3.4rem;bottom:-3.4rem;width:5.5rem}
 .illustration-break .script{font-size:1.65rem}
 .gallery-grid{grid-template-columns:1fr}
}
.timeline.has-five-steps .timeline-item:last-child{padding-bottom:0}

/* Contenus lisibles même dans un aperçu de fichier qui n’exécute pas les scripts. */
.countdown-static{display:none}
.is-static .countdown-static{display:block;font-size:2.8rem;margin:.7rem 0}
.is-static .countdown-day,.is-static .countdown-clock,.is-static .countdown-arrived{display:none}
.is-static .language-toggle,.is-static .accommodation-arrows,.is-static .rsvp-restart,.is-static .rsvp-back{display:none}
.is-static .rsvp-messages{height:auto;min-height:10rem}
.is-static .rsvp-composer{display:none}

.hero-copy{min-width:0}
@media(min-width:601px) and (max-width:900px){
 .hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .hero h1{font-size:clamp(3.5rem,8vw,6rem)}
}
@media(max-width:600px){
 .hero-inner{gap:1.5rem}
 .hero-bottom-note{margin-top:1.5rem}
}

/* Un seul menu repliable sur téléphone, utilisable aussi sans scripts. */
.site-menu{order:2;min-width:0}
.site-menu>.menu-button{list-style:none;user-select:none;cursor:pointer}
.site-menu>.menu-button::-webkit-details-marker{display:none}
.site-menu[open]>.navigation{display:flex}
.site-header>#language-toggle{order:3;flex-shrink:0}
.is-static .site-menu>.menu-button{display:flex}
.timeline-illustration.illustration-break{border:0;padding:0}
.illustration-break img{width:100%;height:100%;left:0;top:0;object-fit:contain}
@media(max-width:1400px){
 .site-menu{order:3}
 .site-header>#language-toggle{order:2;margin-left:auto}
 .site-menu[open]>.navigation{flex-direction:column;align-items:stretch;gap:.15rem}
}

/* Les fichiers fournis restent intacts : leurs traits sont affichés dans la palette. */
.brand-logo{position:relative;display:block;flex:none;width:3.2rem;height:3.2rem}
.brand-logo>img{display:block;width:100%;height:100%;filter:invert(1);mix-blend-mode:multiply}
.timeline,.timeline.has-five-steps{margin-top:11rem}
.programme-start{position:absolute;top:-10rem;left:calc(50% - 3.25rem);width:6.5rem;height:8.435rem;pointer-events:none}
.programme-start>img{display:block;width:200%;height:100%;max-width:none;filter:invert(1);mix-blend-mode:multiply;clip-path:inset(0 50% 0 0)}
.programme-start-thread{position:absolute;top:2.6rem;left:calc(100% + .75rem);width:3.25rem;height:8rem;color:var(--color-sky);z-index:-1}
.programme-start-thread svg{display:block;width:100%;height:100%;overflow:visible}
.timeline.has-five-steps .illustration-finale{width:7rem;height:auto;aspect-ratio:800 / 1038;background:transparent;overflow:visible}
.illustration-finale>img{position:absolute;width:200%;height:100%;left:-100%;top:0;object-fit:fill;filter:invert(1);mix-blend-mode:multiply;clip-path:inset(0 0 0 50%)}
.programme-disco{position:absolute;right:-2rem;top:-4.5rem;width:5rem;height:5rem;overflow:hidden}
.programme-disco img{position:absolute;left:-100%;top:-100%;width:200%;height:200%;max-width:none;object-fit:contain}
@supports (mask-mode:luminance){
 .brand-logo::before,.programme-start::before,.illustration-finale::before{content:"";position:absolute;inset:0;background:var(--color-cobalt);mask-mode:luminance;mask-repeat:no-repeat}
 .brand-logo::before{mask-image:url("assets/logo-original.jpg");mask-size:contain;mask-position:center}
 .programme-start::before{mask-image:url("assets/animaux-original.jpg");mask-size:200% 100%;mask-position:left}
 .illustration-finale::before{mask-image:url("assets/animaux-original.jpg");mask-size:200% 100%;mask-position:right}
 .brand-logo>img,.programme-start>img,.illustration-finale>img{visibility:hidden}
}
.timeline-detail>p{white-space:pre-line}
.timeline-item:nth-last-child(2) .timeline-connector{width:calc(100% - 3rem)}
@media(max-width:1100px){
 .programme-start{left:.75rem}
 .timeline.has-five-steps .timeline-item:nth-last-child(2) .timeline-connector{width:8rem;bottom:2rem}
}
@media(max-width:600px){
 .brand-logo{width:2.7rem;height:2.7rem}
 .timeline,.timeline.has-five-steps{margin-top:10rem}
 .programme-start{width:5.5rem;height:7.137rem;top:-9rem;left:0}
 .programme-start-thread{top:2.2rem;width:2.75rem;height:7.3rem}
 .timeline.has-five-steps .illustration-finale{width:5.5rem;height:auto}
 .programme-disco{width:3.8rem;height:3.8rem;right:-1rem;top:-3.8rem}
 .timeline.has-five-steps .timeline-item:nth-last-child(2) .timeline-connector{width:5.5rem;bottom:2rem}
}
@media(max-width:360px){.brand{font-size:.9rem}.brand-logo{width:2.3rem;height:2.3rem}}

.language-monogram.brand-logo{width:8rem;height:8rem}
.rsvp-avatar.brand-logo>img{filter:none;mix-blend-mode:screen}
.rsvp-avatar.brand-logo::before{background:var(--color-white)}

.brand-logo.is-monogram>img{filter:none;mix-blend-mode:normal}
.countdown-logo{position:relative;display:block;width:7.5rem;height:7.5rem;margin:0 auto 1rem}
.countdown-logo>img{display:block;width:100%;height:100%;mix-blend-mode:screen}
@supports (mask-mode:luminance){
 .countdown-logo::before{content:"";position:absolute;inset:0;background:var(--color-white);mask-image:url("assets/logo-original.jpg");mask-mode:luminance;mask-size:contain;mask-repeat:no-repeat;mask-position:center}
 .countdown-logo>img{visibility:hidden}
}
@media(max-width:600px){.countdown-logo{width:6.5rem;height:6.5rem;margin-bottom:.7rem}}

/* Monogramme fourni : affichage du fichier original, sans lettres recréées. */
.brand-logo.is-monogram{overflow:hidden}
.brand-logo.is-monogram::before{display:none}
.brand-logo.is-monogram>img{visibility:visible;position:absolute;left:-75%;top:50%;width:250%;height:auto;max-width:none;transform:translateY(-50%);filter:none;mix-blend-mode:normal}

/* Recoloration du fichier JP fourni, bleu clair sur la page. */
.brand-logo.is-monogram>img{position:static;width:100%;height:100%;transform:none;object-fit:contain}

/* Le JP du RSVP et les avatars du chat et du chien, issus des images fournies. */
.rsvp-avatar.brand-logo.is-monogram{background:var(--color-sky);border-radius:50%;padding:.25rem}
.rsvp-avatar.brand-logo.is-monogram>img{filter:none;mix-blend-mode:normal}
.rsvp-message-row.is-couple{gap:.55rem;align-items:flex-end}
.is-couple>.rsvp-bubble{max-width:calc(100% - 3.05rem);min-width:0}
.rsvp-speaker{position:relative;display:block;flex:none;width:2.5rem;height:3.25rem;overflow:hidden}
.rsvp-speaker>img{position:absolute;left:0;top:0;width:200%;height:100%;max-width:none;filter:none;mix-blend-mode:screen}
.rsvp-speaker.speaker-dog>img{left:-100%}
@supports (mask-mode:luminance){
 .rsvp-speaker::before{content:"";position:absolute;inset:0;background:var(--color-white);mask-image:url("assets/animaux-original.jpg");mask-mode:luminance;mask-size:200% 100%;mask-position:left;mask-repeat:no-repeat}
 .rsvp-speaker.speaker-dog::before{mask-position:right}
 .rsvp-speaker>img{visibility:hidden}
}
@media(max-width:600px){
 .rsvp-speaker{width:2rem;height:2.6rem}
 .rsvp-message-row.is-couple{gap:.4rem}
 .is-couple>.rsvp-bubble{max-width:calc(100% - 2.4rem)}
}

/* L’ambiance de l’accueil se trouve uniquement dans le fond du chat. */
.rsvp-messages{background-color:var(--color-sky);background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20600%20480%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M520%200H600V180C565%20137%20575%2070%20520%200Z%22%20fill%3D%22%230747a1%22%2F%3E%3Cpath%20d%3D%22M0%20405C20%20445%2054%20443%2078%20480H0Z%22%20fill%3D%22%230747a1%22%2F%3E%3C%2Fsvg%3E");background-size:100% 100%;background-position:center;background-repeat:no-repeat}
.is-couple>.rsvp-bubble,.rsvp-typing{background:var(--color-white)}

/* Renforcer les contours des avatars uniquement, sans changer les illustrations. */
.rsvp-speaker{filter:drop-shadow(.3px 0 0 var(--color-white)) drop-shadow(-.3px 0 0 var(--color-white)) drop-shadow(0 .3px 0 var(--color-white)) drop-shadow(0 -.3px 0 var(--color-white))}

@media(max-width:600px){.language-monogram.brand-logo{width:7rem;height:7rem}}

/* Logo circulaire complet dans la pop-in du choix de langue. */
#language-dialog .language-monogram.brand-logo{width:11rem;height:11rem;margin:.3rem auto 1.2rem}
@media(max-width:600px){#language-dialog .language-monogram.brand-logo{width:9.5rem;height:9.5rem}}

.accommodation-photo{position:relative;aspect-ratio:3 / 2;width:100%;overflow:hidden;border-radius:1rem;margin-bottom:1.4rem;background:var(--color-soft-blue)}
.accommodation-photo img{display:block;width:100%;height:100%;object-fit:cover}
.stay-alternatives{margin-top:1.4rem;max-width:50rem;line-height:1.8}
.stay-alternatives a{text-decoration:underline;text-underline-offset:.2em}
@media(max-width:600px){.accommodation-photo{margin-bottom:1.1rem}}

/* Les lieux se reconnaissent au premier regard, sur mobile comme sur ordinateur. */
.address-photo{display:block;width:auto;max-width:100%;height:auto;max-height:22rem;object-fit:contain;align-self:center;border-radius:0;margin:0 auto 1.25rem}
@media(max-width:600px){.address-photo{max-height:18rem}}
.address-photo[hidden]{display:none}

.photo-credit{font-size:.75rem;text-align:center;line-height:1.5;margin:0 auto;padding:0 1.5rem 1.5rem;color:var(--color-muted)}

/* Lisibilité, clavier et tailles de texte agrandies, dans la palette existante. */
summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--color-cobalt);outline-offset:4px}
.menu-button,.language-toggle,.rsvp-restart,.rsvp-back,.rsvp-skip{min-height:2.75rem}
.rsvp-reply-form{flex-wrap:wrap}
.rsvp-input{flex-basis:12rem}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}.button:hover{transform:none}}
