@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--body)}button,input,select{font:inherit}a{color:inherit}h1,h2{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:-.04em}h1{font-size:clamp(3.3rem,6.3vw,6.5rem);margin:0 0 18px}h2{font-size:clamp(2.6rem,4.8vw,4.7rem);margin:0 0 30px}h2 em{font-weight:400;color:var(--accent)}.skip{position:absolute;left:12px;top:-120px;background:white;padding:10px;z-index:20}.skip:focus{top:10px}.demo-banner{background:var(--ink);color:#fff;display:flex;justify-content:space-between;gap:12px;padding:9px clamp(20px,5vw,80px);font-size:.82rem}.demo-banner a{font-weight:700}.demo-header{padding:16px clamp(20px,5vw,80px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--paper)}.demo-brand{display:flex;align-items:end;text-decoration:none;line-height:1}.demo-brand img{width:135px;height:auto}.demo-brand span{color:#65008e;font-size:.85rem;font-weight:700;margin-bottom:5px}.demo-header nav{display:flex;gap:25px}.demo-header nav a{text-decoration:none;font-weight:700;font-size:.9rem}.demo-header nav a:hover{color:var(--accent)}.demo-hero{min-height:620px;display:grid;grid-template-columns:1fr 1fr}.hero-image{position:relative;overflow:hidden;min-height:550px}.hero-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.hero-image-label{position:absolute;bottom:24px;left:25px;color:#fff;letter-spacing:.25em;font-weight:700;font-size:.78rem;text-shadow:0 1px 5px #000}.hero-content{padding:70px clamp(30px,7vw,115px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.overline,.section-caption{font-size:.78rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700;color:var(--accent)}.subtitle{font:italic 1.45rem var(--display);color:var(--accent);margin:0}.hero-divider{height:1px;width:75px;background:var(--accent);margin:28px 0}.date-long{font-weight:700;letter-spacing:.04em}.intro{max-width:490px;font-size:1.08rem}.primary-cta,.reply-form button{background:var(--ink);color:#fff;text-decoration:none;border:0;padding:15px 24px;font-weight:700;cursor:pointer;margin-top:17px}.primary-cta:hover,.reply-form button:hover{background:var(--accent);color:#fff}.countdown-block{text-align:center;padding:35px 20px;background:var(--wash)}.countdown-block>p{margin:0;font-family:var(--display);font-size:1.35rem}.countdown{display:flex;justify-content:center;gap:35px;margin-top:12px}.countdown span{display:flex;flex-direction:column}.countdown strong{font:400 2.8rem var(--display)}.countdown small{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.details,.practical,.reply{padding:95px clamp(25px,9vw,145px);scroll-margin-top:35px}.details{max-width:1150px;margin:auto}.schedule{padding:0;list-style:none;border-top:1px solid var(--line);margin:45px 0 0}.schedule li{display:flex;gap:50px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}.schedule time{color:var(--accent);font-weight:700;min-width:80px}.schedule span{font-family:var(--display);font-size:1.45rem}.practical{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:center;background:var(--wash)}.practical-text>p:not(.section-caption){font-size:1.07rem}.links{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.links a,.links button{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:13px 18px;text-decoration:none;font-size:.9rem;font-weight:700;cursor:pointer}.links a:hover,.links button:hover{background:var(--ink);color:#fff}.practical-art{min-height:300px;border:1px solid var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;transform:rotate(-3deg);background:var(--paper)}.practical-art span{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem}.practical-art strong{font:400 5rem var(--display);color:var(--accent)}.practical-art small{font-size:1rem}.reply{max-width:1050px;margin:auto}.reply>p:not(.section-caption){max-width:650px;color:var(--muted)}.reply-form{max-width:560px;display:grid;gap:20px;margin:28px 0}.reply-form>label{display:grid;gap:7px;font-weight:700}.reply-form input[type=text],.reply-form select{width:100%;padding:12px;border:1px solid var(--line);border-radius:0;background:#fff;color:#1e3033}.reply-form fieldset{border:1px solid var(--line);display:flex;gap:25px;flex-wrap:wrap;padding:15px 18px}.reply-form legend{font-weight:700}.reply-form fieldset label{white-space:nowrap}.reply-form input[type=radio]{accent-color:var(--accent)}.reply-form button{justify-self:start;margin:0}.reply-output:not(:empty){display:block;background:var(--wash);padding:16px;border-left:3px solid var(--accent)}.demo-note{font-size:.85rem!important;color:var(--muted)}footer{padding:35px clamp(20px,5vw,80px);background:var(--ink);color:#fff;display:flex;justify-content:space-between;gap:25px;font-size:.86rem}footer p{margin:0;color:#fff9}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.theme-mariage{--paper:#faf7f2;--wash:#eee6d9;--ink:#39383b;--accent:#a7795d;--line:#d3c6b9;--muted:#665f5a;--display:'Playfair Display',Georgia,serif;--body:'DM Sans',sans-serif}.theme-anniversaire{--paper:#fff8ed;--wash:#ffd9d1;--ink:#532945;--accent:#d05b72;--line:#e9bdb7;--muted:#634753;--display:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',sans-serif}.theme-anniversaire h1,.theme-anniversaire h2{font-weight:700;letter-spacing:-.065em}.theme-anniversaire .hero-content{background:#ffefac}.theme-anniversaire .hero-image img{filter:saturate(1.17)}.theme-anniversaire .practical-art{border-radius:150px 150px 25px 25px;transform:rotate(3deg)}.theme-naissance{--paper:#f9f6ee;--wash:#dfeae4;--ink:#3f5146;--accent:#94785d;--line:#c9d3c8;--muted:#5d7162;--display:'Playfair Display',Georgia,serif;--body:'DM Sans',sans-serif}.theme-naissance .demo-hero{grid-template-columns:1fr 1.08fr}.theme-naissance .hero-image{order:2}.theme-naissance .hero-content{order:1;text-align:center;align-items:center}.theme-naissance .hero-content .intro{max-width:450px}.theme-naissance .practical-art{border-radius:50% 50% 4px 4px;transform:none}.theme-entreprise{--paper:#f2f6f7;--wash:#dce7ea;--ink:#183c50;--accent:#0f7a82;--line:#c0d2d5;--muted:#50686e;--display:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',sans-serif}.theme-entreprise h1,.theme-entreprise h2{font-weight:600}.theme-entreprise .demo-hero{grid-template-columns:.9fr 1.1fr}.theme-entreprise .hero-image{order:2}.theme-entreprise .hero-content{order:1}.theme-entreprise .practical-art{transform:none;border:3px solid var(--ink)}.theme-animation{--paper:#151c30;--wash:#242a43;--ink:#10182a;--accent:#faac66;--line:#596177;--muted:#c4c9d5;--display:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',sans-serif;color:#f6f1e9}.theme-animation h1,.theme-animation h2{font-weight:700;letter-spacing:-.06em}.theme-animation .demo-header{background:#151c30}.theme-animation .demo-hero{grid-template-columns:1.15fr .85fr}.theme-animation .hero-content{background:linear-gradient(140deg,#151c30,#343456)}.theme-animation .hero-image{order:2}.theme-animation .hero-content{order:1}.theme-animation .practical-art{background:#171d32;color:#fff;transform:rotate(2deg)}.theme-animation .links a,.theme-animation .links button{color:#fff;border-color:#f5e9d3}.theme-animation .links a:hover,.theme-animation .links button:hover{background:#f5e9d3;color:#10182a}.theme-animation .reply-form input[type=text],.theme-animation .reply-form select{color:#10182a}.theme-animation .reply>p:not(.section-caption){color:#c4c9d5}
@media(max-width:800px){.demo-hero,.theme-naissance .demo-hero,.theme-entreprise .demo-hero,.theme-animation .demo-hero{grid-template-columns:1fr}.hero-image,.theme-naissance .hero-image,.theme-entreprise .hero-image,.theme-animation .hero-image{order:0;min-height:320px}.hero-content,.theme-naissance .hero-content,.theme-entreprise .hero-content,.theme-animation .hero-content{order:1;padding:55px 25px}.practical{grid-template-columns:1fr;gap:30px}.details,.practical,.reply{padding:70px 25px}.practical-art{min-height:220px}.demo-header nav{gap:12px}.demo-header nav a{font-size:.82rem}}@media(max-width:520px){.demo-banner{display:block}.demo-banner a{display:block}.demo-header{display:block}.demo-header nav{margin-top:10px;justify-content:space-between}.hero-image{min-height:260px}.countdown{gap:22px}.countdown strong{font-size:2.2rem}.schedule li{gap:15px}.schedule time{min-width:66px}footer{display:block}footer p{margin-top:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Event galleries, sticky navigation and RSVP choices */
.demo-header{position:sticky;top:0;z-index:30;box-shadow:0 3px 12px #0000000d}
.photo-gallery{padding:90px clamp(25px,9vw,145px);scroll-margin-top:90px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.gallery-photo{display:block;overflow:hidden;border:0;padding:0;background:var(--wash);cursor:zoom-in;border-radius:10px;aspect-ratio:4/3}
.gallery-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.gallery-photo:hover img{transform:scale(1.04)}
.photo-dialog{border:0;padding:0;max-width:min(92vw,1100px);max-height:90vh;background:#101010;border-radius:8px;overflow:visible}
.photo-dialog::backdrop{background:#071018d9}
.photo-dialog>img{display:block;max-width:88vw;max-height:84vh;object-fit:contain;border-radius:6px}
.dialog-close{position:absolute;right:-12px;top:-16px;border:0;border-radius:50%;width:42px;height:42px;font-size:1.8rem;background:white;color:#1c2730;cursor:pointer}
.reply-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.reply-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}
.reply-form fieldset legend{padding:0 5px}
.reply-form fieldset label{white-space:normal}
.reply-form select:disabled{opacity:.55}
.back-top{font-weight:700;color:#f6d6a7}
@media(max-width:800px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-gallery{padding:70px 25px}}
@media(max-width:520px){.demo-header{padding:12px 18px}.demo-header nav{gap:6px}.demo-header nav a{font-size:.75rem}.reply-form fieldset{grid-template-columns:1fr}}
.company-note{padding:70px clamp(25px,9vw,145px);background:#183c50;color:white}.company-note .section-caption{color:#68c1bd}.company-note h2 em{color:#68c1bd}.company-note p:not(.section-caption){max-width:720px;color:#e0eaed}.company-note a{display:inline-block;margin-top:10px;padding:13px 18px;background:#68c1bd;color:#12323e;text-decoration:none;font-weight:700}

/* Clear, visible RSVP consent and consistent menu colors for the animation demo. */
.reply-form .rsvp-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;line-height:1.5;cursor:pointer}
.reply-form .rsvp-consent input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;display:block;flex:0 0 20px;width:20px;height:20px;margin:3px 0 0;accent-color:var(--accent);cursor:pointer}
.reply-form .rsvp-consent span{display:block;flex:1}
.theme-animation .demo-header,.theme-animation .demo-header nav{background-color:#f2f6f7}
.theme-animation .demo-header nav a{color:#183c50}
.theme-animation .demo-header nav a:hover{color:#0f7a82}

.back-top-float{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:48px;padding:10px 15px;background:var(--ink);color:#fff;text-decoration:none;font-size:.88rem;font-weight:700;box-shadow:0 5px 18px #0004;border-radius:999px}
.back-top-float:hover{background:var(--accent);color:var(--paper)}
.back-top-float[hidden]{display:none}


/* Navigation accessible entre les photos agrandies. */
.photo-dialog{position:relative;display:none;align-items:center;justify-content:center;padding:28px 58px 44px;box-sizing:border-box}
.photo-dialog[open]{display:flex}
.photo-dialog>img{max-width:min(76vw,1000px);max-height:78vh}
.gallery-previous,.gallery-next{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:54px;border:0;border-radius:999px;background:#fff;color:#1c2730;font-size:2rem;line-height:1;cursor:pointer;box-shadow:0 3px 15px #0005}
.gallery-previous{left:8px}.gallery-next{right:8px}
.gallery-previous:hover,.gallery-next:hover,.dialog-close:hover{background:#e8cfaa}
.gallery-count{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);color:#fff;font:600 .9rem Arial,sans-serif}
@media(max-width:600px){.photo-dialog{padding:55px 20px 48px}.photo-dialog>img{max-width:88vw;max-height:70vh}.gallery-previous,.gallery-next{top:auto;bottom:6px;width:40px;height:40px;font-size:1.65rem}.gallery-previous{left:12px}.gallery-next{right:12px}}

/* Make enlarged gallery images reliably usable on touch screens. */
.gallery-photo{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.photo-view-open{overflow:hidden}
.photo-dialog.photo-dialog-fallback{position:fixed;inset:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:55px 20px 48px;border-radius:0;z-index:1000}
.photo-dialog.photo-dialog-fallback::before{content:"";position:fixed;inset:0;background:#071018d9;z-index:-1}
@media(max-width:600px){.photo-dialog[open]{position:fixed;inset:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:55px 18px 54px;border-radius:0}.photo-dialog[open]>img{max-width:100%;max-height:calc(100vh - 130px);max-height:calc(100dvh - 130px)}.photo-dialog.photo-dialog-fallback{padding-top:max(55px,env(safe-area-inset-top));padding-bottom:max(54px,env(safe-area-inset-bottom))}}
