{"id":2,"date":"2026-05-02T08:06:42","date_gmt":"2026-05-02T08:06:42","guid":{"rendered":"http:\/\/cateandmaxime.com\/?page_id=2"},"modified":"2026-07-05T16:31:40","modified_gmt":"2026-07-05T16:31:40","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/cateandmaxime.com\/","title":{"rendered":""},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Great+Vibes&amp;family=Montserrat:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n\n<style>\nhtml,body{width:100%;max-width:100%;overflow-x:hidden;margin:0!important;padding:0!important;font-family:Montserrat,sans-serif;color:#23342d;scroll-behavior:smooth}\nhtml{margin-top:0!important}\nbody{--wp--style--root--padding-top:0!important;--wp--style--root--padding-bottom:0!important}\nbody.admin-bar{margin-top:0!important;padding-top:0!important}\nbody.language-locked{overflow:hidden!important;height:100vh!important}\n#wpadminbar{position:fixed!important}\nbody .entry-content,body .wp-site-blocks,body .wp-block-post-content,body .wp-block-group,body .wp-block-columns,body .wp-block-column,body .is-layout-constrained,body .is-layout-flow,.wp-block-html,.site,.site-main,.site-content,.content-area,main{max-width:none!important;width:100%!important;margin:0!important;padding:0!important;padding-block-start:0!important;padding-block-end:0!important}\n.site-header,header.wp-block-template-part,.wp-site-blocks>header{display:none!important}\n:root{--rose:#f3c6c8;--rose-dark:#d9898e;--ivory:#fffaf4;--sage:#b8c8b2;--sage-light:#eef5ee;--green:#23342d;--text:#87918b;--blue:#8faec2;--black:#111827}\nsection,.hero,.story-wrap,.when{width:100vw!important;max-width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important}\nsection{padding:90px 20px;box-sizing:border-box}\n\n\/* HERO *\/\n.hero{margin-top:0!important;padding-top:0!important;min-height:100vh;background:linear-gradient(rgba(35,52,45,.36),rgba(35,52,45,.36)),url(\"https:\/\/images.unsplash.com\/photo-1523438885200-e635ba2c371e?auto=format&fit=crop&w=2200&q=80\") center\/cover no-repeat;color:white;position:relative}\n.nav{position:absolute;top:28px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:34px;z-index:10}\n.nav a{position:relative;color:white;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:2px;padding-bottom:8px;line-height:1}\n.nav a::after{content:\"\";position:absolute;left:0;bottom:0;width:0;height:2px;background:white;transition:width .35s ease}\n.nav a:hover::after{width:100%}\n.logo{\n  width:95px;\n  height:95px;\n  border:0 !important;\n  border-radius:0 !important;\n  background:transparent !important;\n  box-shadow:none !important;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  overflow:visible;\n}\n\n.logo img{\n  width:95px;\n  height:95px;\n  object-fit:contain;\n  display:block;\n  padding:0 !important;\n  box-sizing:border-box;\n}\n\n.menu-flags{display:flex;align-items:center;justify-content:center;gap:10px;transform:translateY(-5px)}\n.menu-flags button{width:28px!important;height:28px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important;padding:0!important;margin:0!important;cursor:pointer;font-size:23px;line-height:1!important;appearance:none;-webkit-appearance:none;transition:transform .25s ease,filter .25s ease}\n.menu-flags button:hover{transform:scale(1.18);filter:drop-shadow(0 5px 8px rgba(0,0,0,.25))}\n.menu-flags button:focus,.menu-flags button:active,.menu-flags button:focus-visible{outline:none!important;box-shadow:none!important;background:transparent!important}\n.hero-content{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 20px;box-sizing:border-box}\n.script{font-family:\"Great Vibes\",cursive;font-size:82px;font-weight:400;margin:0 0 24px;opacity:0;animation:smoothDown 1.2s ease forwards;animation-delay:.3s}\n.subtitle{font-size:15px;font-weight:700;letter-spacing:1.5px;margin-bottom:55px;opacity:0;animation:smoothUp 1.2s ease forwards;animation-delay:.7s}\n.countdown{display:flex;gap:42px;opacity:0;animation:smoothUp 1.2s ease forwards;animation-delay:1.1s}\n.countdown div{text-align:center}\n.countdown strong{display:block;font-family:Georgia,serif;font-size:58px;font-style:italic;font-weight:400}\n.countdown span{font-size:10px;font-weight:700;letter-spacing:1px}\n@keyframes smoothDown{from{opacity:0;transform:translateY(-45px)}to{opacity:1;transform:translateY(0)}}\n@keyframes smoothUp{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}\n\n\/* STORY *\/\n#story{background:var(--ivory);min-height:100vh;padding:65px 0 80px;box-sizing:border-box;text-align:center}\n.story-heading{text-align:center;margin-bottom:62px}\n.story-title-img{width:78px;height:auto;display:block;margin:0 auto 10px}\n.story-heading h2{margin:0;color:#0b2145;font-size:26px;letter-spacing:6px;font-weight:400;line-height:1.2}\n.story-heading h2 .dot{margin:0 5px;letter-spacing:0}\n.story-wrap{display:grid;grid-template-columns:minmax(260px,1fr) 480px minmax(260px,1fr);align-items:center;gap:0;background:transparent;padding:0 70px;box-sizing:border-box}\n.person{min-height:455px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:45px 60px;box-sizing:border-box;text-align:center}\n.person.bride{background:var(--rose)}\n.person.groom{background:var(--sage-light)}\n.timeline{background:white;min-height:720px;padding:55px 65px;box-sizing:border-box;box-shadow:0 0 22px rgba(35,52,45,.10);display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;z-index:3}\n.person-photo{width:230px;height:230px;border-radius:50%;position:relative;overflow:hidden;display:block;margin:0 auto}\n.person-photo::after{content:\"\";position:absolute;inset:10px;border:2px solid rgba(255,255,255,.88);border-radius:50%;pointer-events:none;z-index:2}\n.person-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;border:0;box-shadow:none;transition:transform .45s ease}\n.person-photo:hover img{transform:scale(1.06)}\n.person h2{font-family:\"Great Vibes\",cursive;font-size:38px;font-weight:400;margin:28px 0 12px;color:var(--green)}\n.person p{max-width:390px;margin:0 auto;color:var(--text);font-size:13px;line-height:1.7}\n.person.bride p{color:#fffaf4}\n.social-icons{margin-top:22px;display:flex;justify-content:center;gap:20px}\n.social-icons a{color:var(--rose-dark);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:.3s ease}\n.person.bride .social-icons a{color:white}\n.person.bride .social-icons a:hover{color:var(--green);transform:translateY(-3px)}\n.person.groom .social-icons a{color:var(--rose-dark)}\n.person.groom .social-icons a:hover{color:var(--rose-dark);transform:translateY(-3px)}\n.social-icons svg{width:21px;height:21px;fill:currentColor}\n.timeline-item h3{font-family:\"Great Vibes\",cursive;font-size:30px;line-height:1.15;font-weight:400;margin:0 0 6px;color:var(--black)}\n.timeline-item .date{font-family:Georgia,serif;font-style:italic;font-size:15px;margin-bottom:12px}\n.timeline-item:nth-child(1) .date{color:var(--green)}\n.timeline-item:nth-child(3) .date{color:var(--rose-dark)}\n.timeline-item:nth-child(5) .date{color:var(--green)}\n.timeline-item:nth-child(7) .date{color:var(--rose-dark)}\n.timeline-item p{color:var(--black);font-size:12.5px;line-height:1.65;margin:0 auto;max-width:360px}\n.line{height:38px;width:1px;background:#dbe7d8;margin:20px auto}\n.story-title-img,.timeline,.timeline-item,.line{opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s ease}\n.timeline{transform:translateY(55px)}\n.timeline-item,.line{transform:translateY(24px);transition:.8s ease}\n#story.story-visible .story-title-img,#story.story-visible .timeline,#story.story-visible .timeline-item,#story.story-visible .line{opacity:1;transform:translateY(0)}\n#story.story-visible .timeline-item:nth-child(1){transition-delay:.35s}\n#story.story-visible .line:nth-child(2){transition-delay:.55s}\n#story.story-visible .timeline-item:nth-child(3){transition-delay:.75s}\n#story.story-visible .line:nth-child(4){transition-delay:.95s}\n#story.story-visible .timeline-item:nth-child(5){transition-delay:1.15s}\n#story.story-visible .line:nth-child(6){transition-delay:1.35s}\n#story.story-visible .timeline-item:nth-child(7){transition-delay:1.55s}\n\n\/* WHEN & WHERE *\/\n.when{text-align:center;background:white;position:relative;overflow:hidden;padding:115px 20px 110px}\n.when::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:52%;background:#eef5f8;z-index:0}\n.when>*{position:relative;z-index:1}\n.when-title-img{width:78px;height:auto;display:block;margin:0 auto 10px;opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s ease}\n.section-title{font-size:30px;letter-spacing:9px;font-weight:400;margin:0 0 8px;color:#0b2145}\n.section-title .dot{margin:0 5px;letter-spacing:0}\n.section-subtitle{font-family:Georgia,serif;font-style:italic;color:var(--rose-dark);margin-bottom:60px}\n.events{display:grid!important;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1320px;margin:auto}\n.event{background:white;padding:50px 28px 44px;box-shadow:0 0 18px rgba(0,0,0,.08);min-height:380px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(45px);transition:opacity .9s ease,transform .9s ease,box-shadow .3s ease}\n.event:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(35,52,45,.12)}\n.when.when-visible .when-title-img,.when.when-visible .event{opacity:1;transform:translateY(0)}\n.event .icon{display:flex!important;align-items:center;justify-content:center;color:var(--rose-dark);margin-bottom:22px;line-height:1}\n.event .icon svg{width:46px;height:46px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}\n.event:nth-child(odd) .icon{color:var(--rose-dark)}\n.event:nth-child(even) .icon{color:var(--green)}\n.event h3{display:block!important;font-size:14px;letter-spacing:1.6px;font-weight:500;color:#0b2145;margin:0 0 22px}\n.lang-content{display:none!important}\n.lang-content.active{display:block!important}\n.event p{visibility:visible!important;opacity:1!important;color:var(--text)!important;font-size:13px!important;line-height:1.8!important;margin:0!important;max-width:250px}\n.event a{display:inline-block!important;visibility:visible!important;opacity:1!important;margin-top:18px;color:var(--green)!important;font-family:Georgia,serif;font-style:italic;font-size:13px;text-decoration:none;position:relative;padding-bottom:8px;outline:none!important;box-shadow:none!important}\n.event a::after{content:\"\";position:absolute;left:0;bottom:0;width:100%;height:1px;background:linear-gradient(to right,var(--rose-dark) 50%,var(--green) 50%);background-size:200% 100%;background-position:right bottom;transition:background-position .35s ease}\n.event a:hover{color:var(--rose-dark)!important}\n.event a:hover::after{background-position:left bottom}\n\n\/* POPUP LANGUE *\/\n.language-popup{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;margin:0!important;padding:0!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;background:rgba(184,200,178,.68)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2147483647!important;overflow:hidden!important;transition:opacity .3s ease}\n.language-box{position:relative;width:min(760px,88vw)!important;max-width:760px!important;background:rgba(255,250,244,.90);text-align:center;padding:72px 50px 44px;box-shadow:0 30px 110px rgba(35,52,45,.25);animation:popupFade .7s ease;border:1px solid rgba(255,255,255,.7);box-sizing:border-box}\n.language-box:before{\n  content:\"\";\n  position:absolute;\n  top:-42px;\n  left:50%;\n  transform:translateX(-50%);\n  width:82px;\n  height:82px;\n  border-radius:50%;\n  border:2px solid white;\n  background:\n    url(\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/Logo-CM.png\")\n    center\/contain no-repeat,\n    var(--sage);\n  box-shadow:0 10px 30px rgba(0,0,0,.12);\n}\n\n.language-title{position:relative;height:68px;overflow:hidden;margin-bottom:8px}\n.language-title span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:\"Great Vibes\",cursive;font-size:56px;font-weight:400;color:var(--green);opacity:0;transform:translateX(-35px);animation:languageSlide 9s infinite}\n.language-title span:nth-child(2){animation-delay:3s}\n.language-title span:nth-child(3){animation-delay:6s}\n.language-subtitle{position:relative;height:34px;overflow:hidden;margin:0 0 34px}\n.language-subtitle span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text);font-size:15px;line-height:1.6;opacity:0;transform:translateX(-25px);animation:subtitleSlide 9s infinite}\n.language-subtitle span:nth-child(2){animation-delay:3s}\n.language-subtitle span:nth-child(3){animation-delay:6s}\n@keyframes languageSlide{0%{opacity:0;transform:translateX(-35px)}10%,30%{opacity:1;transform:translateX(0)}42%,100%{opacity:0;transform:translateX(35px)}}\n@keyframes subtitleSlide{0%{opacity:0;transform:translateX(-25px)}10%,30%{opacity:1;transform:translateX(0)}42%,100%{opacity:0;transform:translateX(25px)}}\n.language-buttons{display:flex;justify-content:center;align-items:center;gap:26px;margin-bottom:28px}\n.language-buttons button{width:78px;height:56px;display:flex;align-items:center;justify-content:center;background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important;padding:0!important;cursor:pointer;font-size:56px;line-height:1;appearance:none;-webkit-appearance:none;transition:transform .28s ease,filter .28s ease}\n.language-buttons button:hover{transform:translateY(-4px) scale(1.12);filter:drop-shadow(0 12px 18px rgba(35,52,45,.22))}\n.language-buttons button:focus,.language-buttons button:active,.language-buttons button:focus-visible{outline:none!important;box-shadow:none!important;background:transparent!important}\n.language-note{margin-top:0;font-family:Georgia,serif;font-style:italic;color:var(--rose-dark);font-size:15px}\n@keyframes popupFade{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}\n\n\/* GIFT FUND *\/\n.gift-section{background:var(--ivory);text-align:center;padding:110px 20px;overflow:visible}\n#cagnotte.gift-section{opacity:1!important;visibility:visible!important;transform:none!important}\n.gift-title-img{width:78px;display:block;margin:0 auto 10px;opacity:1!important;visibility:visible!important;transform:none!important}\n.gift-section .section-title,.gift-section .section-subtitle,.gift-controls,.gift-actions{opacity:1!important;visibility:visible!important;transform:none!important}\n.gift-controls{max-width:1100px;margin:0 auto 48px;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}\n.gift-filter{padding:12px 22px;border-radius:999px;border:1px solid rgba(35,52,45,.18);background:white;color:var(--green);font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:1.2px;cursor:pointer;box-shadow:0 10px 26px rgba(35,52,45,.06);transition:background .3s ease,color .3s ease,transform .3s ease,box-shadow .3s ease}\n.gift-filter::before{display:none!important}\n.gift-filter:hover{background:rgba(35,52,45,.06);transform:translateY(-2px)}\n.gift-filter.active{background:var(--green);color:white;box-shadow:0 14px 30px rgba(35,52,45,.15)}\n#giftSort{padding:12px 20px;border-radius:999px;border:1px solid rgba(35,52,45,.18);background:white;color:var(--green);font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer;box-shadow:0 10px 26px rgba(35,52,45,.06);outline:none;transition:background .3s ease,transform .3s ease}\n#giftSort:hover{background:rgba(35,52,45,.06);transform:translateY(-2px)}\n.gift-grid{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;opacity:1!important;visibility:visible!important;transform:none!important;transition:opacity .25s ease}\n.gift-grid.is-changing{opacity:.35!important}\n.gift-card{background:white;text-align:left;box-shadow:0 16px 42px rgba(35,52,45,.10);overflow:hidden;display:flex;flex-direction:column;min-height:500px;opacity:1!important;visibility:visible!important;transform:none!important;transition:box-shadow .35s ease,transform .35s ease}\n.gift-card:hover{transform:translateY(-8px)!important;box-shadow:0 26px 60px rgba(35,52,45,.16)}\n.gift-image{height:260px;background:white;overflow:hidden;flex-shrink:0}\n.gift-image img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;padding:18px;box-sizing:border-box;transition:transform .55s ease}\n.gift-card:hover .gift-image img{transform:scale(1.03)}\n.gift-body{padding:24px 28px 26px;display:flex;flex-direction:column;flex:1}\n.gift-tag{display:inline-block;color:var(--rose-dark);font-family:Georgia,serif;font-style:italic;font-size:13px;margin-bottom:10px}\n.gift-body h3{margin:0 0 10px;color:#0b2145;font-size:17px;letter-spacing:1px;font-weight:600}\n.gift-body p{margin:0 0 18px;color:var(--text);font-size:13px;line-height:1.7}\n.gift-bottom{margin-top:auto;display:flex!important;align-items:center;justify-content:space-between;gap:16px;width:100%;flex-wrap:nowrap!important}\n.gift-price{color:var(--green);font-size:24px;font-family:Georgia,serif;font-style:italic;line-height:1;margin:0;white-space:nowrap;flex:0 0 auto}\n.gift-button{position:relative;display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto!important;white-space:nowrap;width:auto!important;min-width:112px;max-width:150px;height:38px;padding:0 16px;border-radius:999px;background:var(--rose-dark);color:white!important;text-decoration:none;font-size:10px;font-weight:700;letter-spacing:1px;line-height:1;box-shadow:0 8px 18px rgba(217,137,142,.25);transition:background .3s ease,transform .3s ease,box-shadow .3s ease}\n.gift-button:hover{background:var(--green);transform:translateY(-2px);box-shadow:0 12px 24px rgba(35,52,45,.20)}\n.gift-button::before{display:none!important}\n.gift-actions{margin-top:44px;display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}\n.gift-load-more{display:none;align-items:center;justify-content:center;min-height:44px;padding:12px 24px;border:0;border-radius:999px;background:white;color:var(--green);font-family:Montserrat,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.2px;cursor:pointer;box-shadow:0 12px 28px rgba(35,52,45,.12);transition:transform .35s ease,background .35s ease,color .35s ease,box-shadow .35s ease}\n.gift-load-more.is-visible{display:inline-flex}\n.gift-load-more:hover{background:var(--green);color:white;transform:translateY(-3px);box-shadow:0 16px 34px rgba(35,52,45,.18)}\n.gift-actions #giftMainCta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 24px;border-radius:999px;background:var(--green);color:white!important;text-decoration:none;font-size:11px;font-weight:700;letter-spacing:1.2px;box-shadow:0 12px 28px rgba(35,52,45,.18);transition:transform .35s ease,background .35s ease,box-shadow .35s ease}\n.gift-actions #giftMainCta:hover{background:var(--rose-dark);transform:translateY(-3px);box-shadow:0 16px 34px rgba(217,137,142,.26)}\n\n\/* CONTACT \/ QUESTIONS *\/\n.contact-section{background:#eef5f8;text-align:center;padding:115px 20px 110px;overflow:hidden;position:relative}\n.contact-section::before{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,.55),rgba(238,245,248,.2));pointer-events:none}\n.contact-section>*{position:relative;z-index:1}\n.contact-title-img{width:78px;display:block;margin:0 auto 10px;opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s ease}\n.contact-section .section-title,.contact-section .section-subtitle{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}\n.contact-wrap{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:260px minmax(320px,520px) 260px;align-items:center;justify-content:center;gap:54px}\n.contact-card{background:white;padding:48px 50px 44px;box-shadow:0 18px 55px rgba(35,52,45,.10);text-align:left;opacity:0;transform:translateY(42px);transition:opacity 1s ease,transform 1s ease}\n.contact-card h3{margin:0 0 10px;color:#0b2145;font-size:22px;letter-spacing:3px;font-weight:400}\n.contact-card p{margin:0 0 28px;color:var(--text);font-size:13px;line-height:1.8}\n.contact-form{display:flex;flex-direction:column;gap:18px}\n.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid rgba(35,52,45,.18);background:transparent;padding:10px 0;font-family:Georgia,serif;font-style:italic;font-size:14px;color:var(--green);outline:none;box-sizing:border-box}\n.contact-form textarea{min-height:105px;resize:vertical}\n.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--rose-dark);opacity:.85}\n.contact-submit{width:max-content;min-width:132px;height:42px;margin-top:12px;padding:0 24px;border:0;border-radius:0;background:var(--rose-dark);color:white;font-family:Montserrat,sans-serif;font-size:11px;font-weight:700;letter-spacing:1.2px;cursor:pointer;box-shadow:0 10px 22px rgba(217,137,142,.20);transition:background .3s ease,transform .3s ease,box-shadow .3s ease}\n.contact-submit:hover{background:var(--green);transform:translateY(-3px);box-shadow:0 14px 30px rgba(35,52,45,.18)}\n.contact-note{margin-top:18px!important;color:var(--rose-dark)!important;font-family:Georgia,serif;font-style:italic;font-size:13px!important}\n.contact-polaroid{width:230px;background:white;padding:14px 14px 44px;box-shadow:0 14px 38px rgba(35,52,45,.12);opacity:0;transition:opacity 1s ease,transform 1s ease}\n.contact-polaroid img{width:100%;height:230px;object-fit:cover;display:block;filter:saturate(.9)}\n.contact-polaroid span{display:block;margin-top:14px;font-family:\"Great Vibes\",cursive;color:#68739a;font-size:30px;text-align:left}\n.contact-polaroid.left{transform:translateX(-50px) rotate(-9deg)}\n.contact-polaroid.right{transform:translateX(50px) rotate(10deg)}\n.contact-section.contact-visible .contact-title-img,.contact-section.contact-visible .section-title,.contact-section.contact-visible .section-subtitle,.contact-section.contact-visible .contact-card,.contact-section.contact-visible .contact-polaroid{opacity:1}\n.contact-section.contact-visible .contact-title-img,.contact-section.contact-visible .section-title,.contact-section.contact-visible .section-subtitle{transform:translateY(0)}\n.contact-section.contact-visible .section-title{transition-delay:.12s}\n.contact-section.contact-visible .section-subtitle{transition-delay:.22s}\n.contact-section.contact-visible .contact-card{transform:translateY(0);transition-delay:.34s}\n.contact-section.contact-visible .contact-polaroid.left{transform:translateX(0) rotate(-7deg);transition-delay:.46s}\n.contact-section.contact-visible .contact-polaroid.right{transform:translateX(0) rotate(8deg);transition-delay:.58s}\n\n\/* RESPONSIVE *\/\n@media(max-width:1100px){.events{grid-template-columns:repeat(2,1fr);max-width:850px}}\n@media(max-width:1000px){.gift-grid{grid-template-columns:repeat(2,1fr)}.contact-wrap{grid-template-columns:1fr;max-width:560px;gap:34px}.contact-polaroid{display:none}}\n@media(max-width:900px){.nav{gap:18px;flex-wrap:wrap;top:18px;padding:0 18px;box-sizing:border-box}.nav a{font-size:10px}.logo{order:-1;width:60px;height:60px;font-size:34px}.script{font-size:56px}.countdown{gap:22px;flex-wrap:wrap;justify-content:center}.countdown strong{font-size:42px}#story{min-height:auto;padding:70px 0}.story-heading{margin-bottom:45px}.story-wrap{grid-template-columns:1fr;padding:0 24px;gap:28px}.person{height:auto;min-height:430px}.timeline{height:auto;min-height:620px;order:-1}}\n@media(max-width:620px){.gift-section{padding:80px 16px}.gift-grid{grid-template-columns:1fr}.gift-card{min-height:470px}.gift-image{height:260px}.gift-controls{flex-direction:column}.gift-filter,#giftSort{width:100%;max-width:320px}.gift-body{padding:22px 24px 24px}.gift-bottom{gap:12px}.gift-price{font-size:23px}.gift-button{min-width:104px;height:36px;padding:0 14px;font-size:10px}.gift-load-more,.gift-actions #giftMainCta{min-height:42px;padding:11px 22px;font-size:10px}}\n@media(max-width:520px){section{padding:60px 16px}.hero{min-height:100vh}.hero-content{height:100vh}.nav a{display:none}.menu-flags{display:none}.script{font-size:44px}.subtitle{font-size:12px}.countdown strong{font-size:34px}.story-heading h2{font-size:20px;letter-spacing:4px}.story-title-img,.when-title-img,.gift-title-img,.contact-title-img{width:65px;margin-bottom:10px}.story-wrap{padding:0 16px}.person{padding:50px 25px}.person-photo{width:200px;height:200px}.timeline{padding:45px 28px}.section-title{font-size:23px;letter-spacing:5px}.events{grid-template-columns:1fr}.event{padding:48px 28px 42px;min-height:330px}.contact-section{padding:80px 16px}.contact-card{padding:38px 26px 34px}.contact-card h3{font-size:18px;letter-spacing:2px}.language-box{width:88vw!important;padding:62px 24px 36px}.language-title{height:58px}.language-title span{font-size:48px}.language-subtitle{height:32px;margin-bottom:28px}.language-subtitle span{font-size:14px}.language-buttons{gap:14px}.language-buttons button{width:66px;height:50px;font-size:50px}}\n\n.gift-category-select{\n  display:none;\n}\n\n\/* MENU FLOTTANT *\/\n.quick-menu{\n  position:fixed;\n  right:22px;\n  bottom:22px;\n  width:58px;\n  height:58px;\n  z-index:999999;\n  display:none;\n}\n\n.quick-menu button{\n  position:absolute;\n  right:0;\n  bottom:0;\n  width:58px;\n  height:58px;\n  border:0;\n  border-radius:50%;\n  background:var(--green);\n  cursor:pointer;\n  box-shadow:0 16px 38px rgba(35,52,45,.28);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n\n.quick-menu button span,\n.quick-menu button span::before,\n.quick-menu button span::after{\n  content:\"\";\n  display:block;\n  width:22px;\n  height:2px;\n  background:white;\n  border-radius:10px;\n  transition:.3s ease;\n}\n\n.quick-menu button span{\n  position:relative;\n}\n\n.quick-menu button span::before{\n  position:absolute;\n  top:-7px;\n  left:0;\n}\n\n.quick-menu button span::after{\n  position:absolute;\n  top:7px;\n  left:0;\n}\n\n.quick-menu.open button span{\n  background:transparent;\n}\n\n.quick-menu.open button span::before{\n  top:0;\n  transform:rotate(45deg);\n}\n\n.quick-menu.open button span::after{\n  top:0;\n  transform:rotate(-45deg);\n}\n\n.quick-menu a{\n  position:absolute;\n  right:6px;\n  bottom:6px;\n  min-width:74px;\n  height:38px;\n  padding:0 14px;\n  border-radius:999px;\n  background:white;\n  color:var(--green);\n  text-decoration:none;\n  font-size:10px;\n  font-weight:700;\n  letter-spacing:.8px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  box-shadow:0 12px 26px rgba(35,52,45,.16);\n  opacity:0;\n  pointer-events:none;\n  transform:translate(0,0) scale(.72);\n  transition:transform .34s ease, opacity .24s ease, background .25s ease, color .25s ease;\n}\n\n.quick-menu a:hover{\n  background:var(--rose-dark);\n  color:white;\n}\n\n.quick-menu.open a{\n  opacity:1;\n  pointer-events:auto;\n}\n\n.quick-menu.open a:nth-child(1){transform:translate(-12px,-76px) scale(1)}\n.quick-menu.open a:nth-child(2){transform:translate(-64px,-64px) scale(1)}\n.quick-menu.open a:nth-child(3){transform:translate(-104px,-30px) scale(1)}\n.quick-menu.open a:nth-child(4){transform:translate(-116px,18px) scale(1)}\n.quick-menu.open a:nth-child(5){transform:translate(-82px,58px) scale(1)}\n\n@media(max-width:620px){\n  .gift-section{\n    padding:80px 10px;\n  }\n\n  .gift-controls{\n    gap:10px;\n    margin-bottom:34px;\n  }\n\n  .gift-filter{\n    display:none;\n  }\n\n  .gift-category-select,\n  #giftSort{\n    display:block;\n    width:100%;\n    max-width:340px;\n    height:44px;\n    padding:0 18px;\n    border-radius:999px;\n    border:1px solid rgba(35,52,45,.18);\n    background:white;\n    color:var(--green);\n    font-family:Montserrat,sans-serif;\n    font-size:12px;\n    font-weight:700;\n    letter-spacing:.8px;\n    outline:none;\n    box-shadow:0 10px 26px rgba(35,52,45,.06);\n  }\n\n  .gift-grid{\n    grid-template-columns:repeat(2,minmax(0,1fr));\n    gap:14px;\n  }\n\n  .gift-card{\n    min-height:360px;\n  }\n\n  .gift-image{\n    height:155px;\n  }\n\n  .gift-image img{\n    padding:12px;\n  }\n\n  .gift-body{\n    padding:16px 14px 18px;\n  }\n\n  .gift-tag{\n    font-size:11px;\n    margin-bottom:7px;\n  }\n\n  .gift-body h3{\n    font-size:13px;\n    letter-spacing:.4px;\n    line-height:1.25;\n  }\n\n  .gift-body p{\n    font-size:11px;\n    line-height:1.5;\n    margin-bottom:14px;\n  }\n\n  .gift-bottom{\n    flex-direction:column;\n    align-items:flex-start;\n    gap:10px;\n  }\n\n  .gift-price{\n    font-size:19px;\n  }\n\n  .gift-button{\n    width:100% !important;\n    max-width:none;\n    min-width:0;\n    height:34px;\n    font-size:9px;\n    padding:0 10px;\n  }\n\n  .gift-actions{\n    margin-top:34px;\n    gap:12px;\n  }\n\n  .gift-load-more,\n  .gift-actions #giftMainCta{\n    width:100%;\n    max-width:300px;\n  }\n\n  .quick-menu{\n    display:block;\n  }\n}\n\/* FIX MENU FLOTTANT MOBILE *\/\n@media(max-width:620px){\n  .quick-menu{\n    right:18px;\n    bottom:18px;\n    width:58px;\n    height:58px;\n    display:block;\n    z-index:999999;\n  }\n\n  .quick-menu a{\n    right:4px;\n    bottom:4px;\n    min-width:88px;\n    height:36px;\n    padding:0 14px;\n    font-size:10px;\n    white-space:nowrap;\n    transform:translate(0,0) scale(.75);\n  }\n\n  .quick-menu.open a:nth-child(1){\n    transform:translate(-12px,-72px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(2){\n    transform:translate(-72px,-112px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(3){\n    transform:translate(-128px,-82px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(4){\n    transform:translate(-142px,-30px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(5){\n    transform:translate(-106px,18px) scale(1);\n  }\n}\n\/* FIX BOUTONS PRODUITS MOBILE *\/\n@media(max-width:620px){\n  .gift-bottom{\n    flex-direction:column;\n    align-items:center !important;\n    justify-content:flex-end;\n    gap:10px;\n    width:100%;\n  }\n\n  .gift-price{\n    width:100%;\n    text-align:left;\n  }\n\n  .gift-button{\n    width:100% !important;\n    max-width:100% !important;\n    min-width:0 !important;\n    align-self:center;\n    text-align:center;\n  }\n}\n\/* MENU FLOTTANT MOBILE - CORRECTION POSITIONS *\/\n@media(max-width:620px){\n  .quick-menu{\n    position:fixed;\n    right:18px;\n    bottom:18px;\n    width:58px;\n    height:58px;\n    display:block;\n    z-index:999999;\n  }\n\n  .quick-menu button{\n    position:absolute;\n    right:0;\n    bottom:0;\n    width:58px;\n    height:58px;\n    border-radius:50%;\n    border:0;\n    background:var(--green);\n    box-shadow:0 16px 36px rgba(35,52,45,.25);\n    cursor:pointer;\n    z-index:6;\n  }\n\n  .quick-menu button span,\n  .quick-menu button span::before,\n  .quick-menu button span::after{\n    content:\"\";\n    position:absolute;\n    left:50%;\n    top:50%;\n    width:24px;\n    height:2px;\n    background:white;\n    border-radius:99px;\n    transform:translate(-50%,-50%);\n    transition:transform .3s ease, opacity .3s ease;\n  }\n\n  .quick-menu button span::before{\n    transform:translate(-50%,-8px);\n  }\n\n  .quick-menu button span::after{\n    transform:translate(-50%,6px);\n  }\n\n  .quick-menu.open button span{\n    background:transparent;\n  }\n\n  .quick-menu.open button span::before{\n    transform:translate(-50%,-50%) rotate(45deg);\n  }\n\n  .quick-menu.open button span::after{\n    transform:translate(-50%,-50%) rotate(-45deg);\n  }\n\n  .quick-menu a{\n    position:absolute;\n    right:4px;\n    bottom:4px;\n    min-width:104px;\n    height:38px;\n    padding:0 18px;\n    border-radius:999px;\n    background:white;\n    color:var(--green);\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    text-decoration:none;\n    font-size:10px;\n    font-weight:700;\n    letter-spacing:.8px;\n    white-space:nowrap;\n    box-shadow:0 12px 28px rgba(35,52,45,.16);\n    opacity:0;\n    pointer-events:none;\n    transform:translate(0,0) scale(.78);\n    transition:opacity .28s ease, transform .28s ease;\n  }\n\n  .quick-menu.open a{\n    opacity:1;\n    pointer-events:auto;\n  }\n\n  .quick-menu.open a:nth-child(1){\n    transform:translate(-86px,-238px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(2){\n    transform:translate(-124px,-188px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(3){\n    transform:translate(-138px,-132px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(4){\n    transform:translate(-122px,-76px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(5){\n    transform:translate(-74px,-28px) scale(1);\n  }\n}\n\n\n\/* SELECT CATEGORIES MOBILE - STYLE PROPRE *\/\n.gift-category-select{\n  display:none;\n}\n\n@media(max-width:620px){\n  .gift-controls{\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n    gap:14px;\n    max-width:340px;\n    margin:0 auto 34px;\n  }\n\n  .gift-filter{\n    display:none !important;\n  }\n\n  .gift-category-select,\n  #giftSort{\n    width:100%;\n    max-width:320px;\n    height:46px;\n    padding:0 44px 0 18px;\n    border-radius:999px;\n    border:1px solid rgba(35,52,45,.18);\n    background:\n      linear-gradient(45deg, transparent 50%, var(--green) 50%),\n      linear-gradient(135deg, var(--green) 50%, transparent 50%),\n      white;\n    background-position:\n      calc(100% - 23px) 19px,\n      calc(100% - 17px) 19px,\n      0 0;\n    background-size:\n      6px 6px,\n      6px 6px,\n      100% 100%;\n    background-repeat:no-repeat;\n    color:var(--green);\n    font-family:Montserrat,sans-serif;\n    font-size:12px;\n    font-weight:700;\n    letter-spacing:1px;\n    text-align:center;\n    text-align-last:center;\n    cursor:pointer;\n    outline:none;\n    box-shadow:0 12px 28px rgba(35,52,45,.08);\n    appearance:none;\n    -webkit-appearance:none;\n  }\n\n  .gift-category-select:focus,\n  #giftSort:focus{\n    border-color:rgba(35,52,45,.38);\n    box-shadow:0 0 0 4px rgba(184,200,178,.25);\n  }\n\n  .gift-category-select option,\n  #giftSort option{\n    color:var(--green);\n    background:white;\n    font-weight:600;\n  }\n}\n\/* MENU FLOTTANT MOBILE - CORRECTION POSITIONS *\/\n@media(max-width:620px){\n  .quick-menu{\n    position:fixed;\n    right:18px;\n    bottom:18px;\n    width:58px;\n    height:58px;\n    display:block;\n    z-index:999999;\n  }\n\n  .quick-menu button{\n    position:absolute;\n    right:0;\n    bottom:0;\n    width:58px;\n    height:58px;\n    border-radius:50%;\n    border:0;\n    background:var(--green);\n    box-shadow:0 16px 36px rgba(35,52,45,.25);\n    cursor:pointer;\n    z-index:6;\n  }\n\n  .quick-menu button span,\n  .quick-menu button span::before,\n  .quick-menu button span::after{\n    content:\"\";\n    position:absolute;\n    left:50%;\n    top:50%;\n    width:24px;\n    height:2px;\n    background:white;\n    border-radius:99px;\n    transform:translate(-50%,-50%);\n    transition:transform .3s ease, opacity .3s ease;\n  }\n\n  .quick-menu button span::before{\n    transform:translate(-50%,-8px);\n  }\n\n  .quick-menu button span::after{\n    transform:translate(-50%,6px);\n  }\n\n  .quick-menu.open button span{\n    background:transparent;\n  }\n\n  .quick-menu.open button span::before{\n    transform:translate(-50%,-50%) rotate(45deg);\n  }\n\n  .quick-menu.open button span::after{\n    transform:translate(-50%,-50%) rotate(-45deg);\n  }\n\n  .quick-menu a{\n    position:absolute;\n    right:4px;\n    bottom:4px;\n    min-width:104px;\n    height:38px;\n    padding:0 18px;\n    border-radius:999px;\n    background:white;\n    color:var(--green);\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    text-decoration:none;\n    font-size:10px;\n    font-weight:700;\n    letter-spacing:.8px;\n    white-space:nowrap;\n    box-shadow:0 12px 28px rgba(35,52,45,.16);\n    opacity:0;\n    pointer-events:none;\n    transform:translate(0,0) scale(.78);\n    transition:opacity .28s ease, transform .28s ease;\n  }\n\n  .quick-menu.open a{\n    opacity:1;\n    pointer-events:auto;\n  }\n\n  .quick-menu.open a:nth-child(1){\n    transform:translate(-86px,-238px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(2){\n    transform:translate(-124px,-188px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(3){\n    transform:translate(-138px,-132px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(4){\n    transform:translate(-122px,-76px) scale(1);\n  }\n\n  .quick-menu.open a:nth-child(5){\n    transform:translate(-74px,-28px) scale(1);\n  }\n}\n\n\n\/* SELECT CATEGORIES MOBILE - STYLE PROPRE *\/\n.gift-category-select{\n  display:none;\n}\n\n@media(max-width:620px){\n  .gift-controls{\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n    gap:14px;\n    max-width:340px;\n    margin:0 auto 34px;\n  }\n\n  .gift-filter{\n    display:none !important;\n  }\n\n  .gift-category-select,\n  #giftSort{\n    width:100%;\n    max-width:320px;\n    height:46px;\n    padding:0 44px 0 18px;\n    border-radius:999px;\n    border:1px solid rgba(35,52,45,.18);\n    background:\n      linear-gradient(45deg, transparent 50%, var(--green) 50%),\n      linear-gradient(135deg, var(--green) 50%, transparent 50%),\n      white;\n    background-position:\n      calc(100% - 23px) 19px,\n      calc(100% - 17px) 19px,\n      0 0;\n    background-size:\n      6px 6px,\n      6px 6px,\n      100% 100%;\n    background-repeat:no-repeat;\n    color:var(--green);\n    font-family:Montserrat,sans-serif;\n    font-size:12px;\n    font-weight:700;\n    letter-spacing:1px;\n    text-align:center;\n    text-align-last:center;\n    cursor:pointer;\n    outline:none;\n    box-shadow:0 12px 28px rgba(35,52,45,.08);\n    appearance:none;\n    -webkit-appearance:none;\n  }\n\n  .gift-category-select:focus,\n  #giftSort:focus{\n    border-color:rgba(35,52,45,.38);\n    box-shadow:0 0 0 4px rgba(184,200,178,.25);\n  }\n\n  .gift-category-select option,\n  #giftSort option{\n    color:var(--green);\n    background:white;\n    font-weight:600;\n  }\n}\n.gift-category-select{\n  display:none;\n}\n\n@media(max-width:620px){\n  .gift-category-select{\n    display:block !important;\n  }\n}\n\/* DROPDOWN CATEGORIES MOBILE *\/\n.gift-category-dropdown{\n  display:none;\n}\n\n@media(max-width:620px){\n  .gift-category-select{\n    display:none !important;\n  }\n\n  .gift-category-dropdown{\n    position:relative;\n    width:100%;\n    max-width:320px;\n    display:block;\n  }\n\n  .gift-category-toggle{\n    width:100%;\n    height:46px;\n    padding:0 48px 0 22px;\n    border-radius:999px;\n    border:1px solid rgba(35,52,45,.18);\n    background:white;\n    color:var(--green);\n    font-family:Montserrat,sans-serif;\n    font-size:12px;\n    font-weight:700;\n    letter-spacing:1px;\n    text-align:center;\n    cursor:pointer;\n    box-shadow:0 12px 28px rgba(35,52,45,.08);\n    position:relative;\n  }\n\n  .gift-category-toggle::after{\n    content:\"\";\n    position:absolute;\n    right:22px;\n    top:50%;\n    width:8px;\n    height:8px;\n    border-right:2px solid var(--green);\n    border-bottom:2px solid var(--green);\n    transform:translateY(-65%) rotate(45deg);\n    transition:transform .25s ease;\n  }\n\n  .gift-category-dropdown.open .gift-category-toggle::after{\n    transform:translateY(-35%) rotate(225deg);\n  }\n\n  .gift-category-menu{\n    position:absolute;\n    top:calc(100% + 10px);\n    left:50%;\n    width:min(300px, 92vw);\n    max-height:270px;\n    overflow:auto;\n    padding:8px;\n    margin:0;\n    list-style:none;\n    border-radius:18px;\n    background:white;\n    box-shadow:0 20px 48px rgba(35,52,45,.18);\n    border:1px solid rgba(35,52,45,.10);\n    opacity:0;\n    pointer-events:none;\n    transform:translateX(-50%) translateY(-8px) scale(.98);\n    transition:opacity .25s ease, transform .25s ease;\n    z-index:50;\n  }\n\n  .gift-category-dropdown.open .gift-category-menu{\n    opacity:1;\n    pointer-events:auto;\n    transform:translateX(-50%) translateY(0) scale(1);\n  }\n\n  .gift-category-menu li{\n    margin:0;\n  }\n\n  .gift-category-menu button{\n    width:100%;\n    min-height:38px;\n    border:0;\n    border-radius:12px;\n    background:transparent;\n    color:var(--green);\n    font-family:Montserrat,sans-serif;\n    font-size:12px;\n    font-weight:700;\n    letter-spacing:.7px;\n    text-align:center;\n    cursor:pointer;\n    transition:background .2s ease, color .2s ease;\n  }\n\n  .gift-category-menu button:hover,\n  .gift-category-menu button.active{\n    background:rgba(217,137,142,.18);\n    color:#0b2145;\n  }\n}\n\/* MENU FLOTTANT MOBILE - VERSION VERTICALE ROSE *\/\n@media(max-width:620px){\n  .quick-menu{\n    position:fixed;\n    right:18px;\n    bottom:18px;\n    width:60px;\n    height:60px;\n    display:block;\n    z-index:999999;\n  }\n\n  .quick-menu button{\n    position:absolute;\n    right:0;\n    bottom:0;\n    width:60px;\n    height:60px;\n    border:0;\n    border-radius:50%;\n    background:var(--green);\n    cursor:pointer;\n    z-index:10;\n    box-shadow:0 16px 36px rgba(35,52,45,.28);\n  }\n\n  .quick-menu button span,\n  .quick-menu button span::before,\n  .quick-menu button span::after{\n    content:\"\";\n    position:absolute;\n    left:50%;\n    top:50%;\n    width:24px;\n    height:2px;\n    background:white;\n    border-radius:999px;\n    transform:translate(-50%,-50%);\n    transition:transform .3s ease, opacity .3s ease, background .3s ease;\n  }\n\n  .quick-menu button span::before{\n    transform:translate(-50%,-8px);\n  }\n\n  .quick-menu button span::after{\n    transform:translate(-50%,6px);\n  }\n\n  .quick-menu.open button{\n    background:var(--rose-dark);\n  }\n\n  .quick-menu.open button span{\n    background:transparent;\n  }\n\n  .quick-menu.open button span::before{\n    transform:translate(-50%,-50%) rotate(45deg);\n  }\n\n  .quick-menu.open button span::after{\n    transform:translate(-50%,-50%) rotate(-45deg);\n  }\n\n  .quick-menu a{\n    position:absolute;\n    right:0;\n    bottom:8px;\n    min-width:118px;\n    height:38px;\n    padding:0 18px;\n    border-radius:999px;\n    color:white;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    text-decoration:none;\n    font-size:10px;\n    font-weight:800;\n    letter-spacing:.9px;\n    white-space:nowrap;\n    opacity:0;\n    pointer-events:none;\n    transform:translateY(0) scale(.86);\n    box-shadow:0 14px 30px rgba(217,137,142,.24);\n    transition:\n      opacity .28s ease,\n      transform .34s cubic-bezier(.2,.8,.2,1),\n      box-shadow .28s ease;\n  }\n\n  .quick-menu a:nth-child(1){\n    background:linear-gradient(135deg,#f1b4b9,#df8d94);\n  }\n\n  .quick-menu a:nth-child(2){\n    background:linear-gradient(135deg,#eea9af,#d9828a);\n  }\n\n  .quick-menu a:nth-child(3){\n    background:linear-gradient(135deg,#e99ea5,#cf7780);\n  }\n\n  .quick-menu a:nth-child(4){\n    background:linear-gradient(135deg,#e4939b,#c96f78);\n  }\n\n  .quick-menu a:nth-child(5){\n    background:linear-gradient(135deg,#dc8991,#bd636d);\n  }\n\n  .quick-menu.open a{\n    opacity:1;\n    pointer-events:auto;\n  }\n\n  .quick-menu.open a:nth-child(1){\n    transform:translateY(-268px) scale(1);\n    transition-delay:.02s;\n  }\n\n  .quick-menu.open a:nth-child(2){\n    transform:translateY(-216px) scale(1);\n    transition-delay:.05s;\n  }\n\n  .quick-menu.open a:nth-child(3){\n    transform:translateY(-164px) scale(1);\n    transition-delay:.08s;\n  }\n\n  .quick-menu.open a:nth-child(4){\n    transform:translateY(-112px) scale(1);\n    transition-delay:.11s;\n  }\n\n  .quick-menu.open a:nth-child(5){\n    transform:translateY(-60px) scale(1);\n    transition-delay:.14s;\n  }\n\n  .quick-menu a:hover{\n    box-shadow:0 18px 38px rgba(217,137,142,.34);\n  }\n}\n@media(max-width:620px){\n  .quick-menu.open button{\n    background:var(--sage);\n  }\n\n  .quick-menu a{\n    color:white;\n    box-shadow:0 14px 30px rgba(35,52,45,.22);\n  }\n\n  .quick-menu a:nth-child(1){\n    background:linear-gradient(135deg,#c9d8c4,#9fb597);\n  }\n\n  .quick-menu a:nth-child(2){\n    background:linear-gradient(135deg,#bdcfb7,#91aa89);\n  }\n\n  .quick-menu a:nth-child(3){\n    background:linear-gradient(135deg,#aec3a8,#829d7b);\n  }\n\n  .quick-menu a:nth-child(4){\n    background:linear-gradient(135deg,#9fb79a,#748f70);\n  }\n\n  .quick-menu a:nth-child(5){\n    background:linear-gradient(135deg,#91aa8c,#668363);\n  }\n\n  .quick-menu a:hover{\n    box-shadow:0 18px 38px rgba(35,52,45,.30);\n  }\n}\n@media(max-width:620px){\n  .quick-menu button,\n  .quick-menu button:focus,\n  .quick-menu button:active,\n  .quick-menu button:focus-visible,\n  .quick-menu.open button{\n    border:0 !important;\n    outline:none !important;\n    box-shadow:0 16px 36px rgba(35,52,45,.28) !important;\n  }\n}\n@media(max-width:620px){\n  .quick-language-flags{\n    position:absolute;\n    right:0;\n    bottom:8px;\n    display:flex;\n    flex-direction:row-reverse;\n    align-items:center;\n    justify-content:flex-start;\n    gap:10px;\n    opacity:0;\n    pointer-events:none;\n    transform:translateY(0) scale(.86);\n    transition:\n      opacity .28s ease,\n      transform .34s cubic-bezier(.2,.8,.2,1);\n    z-index:8;\n  }\n\n  .quick-menu.open .quick-language-flags{\n    opacity:1;\n    pointer-events:auto;\n    transform:translateY(-320px) scale(1);\n    transition-delay:.18s;\n  }\n\n  .quick-language-flags button{\n    position:static !important;\n    width:42px !important;\n    min-width:42px !important;\n    height:42px !important;\n    min-height:42px !important;\n    border:0 !important;\n    border-radius:50% !important;\n    background:white !important;\n    display:flex !important;\n    align-items:center !important;\n    justify-content:center !important;\n    padding:0 !important;\n    margin:0 !important;\n    font-size:25px !important;\n    line-height:1 !important;\n    box-shadow:0 12px 24px rgba(35,52,45,.18) !important;\n    cursor:pointer;\n    transform:none !important;\n  }\n\n  .quick-language-flags button:hover{\n    transform:translateY(-2px) scale(1.05) !important;\n  }\n\n  .quick-language-flags button.is-hidden{\n    display:none !important;\n  }\n}\n\nfooter,\n.site-footer,\n.wp-site-blocks > footer,\nfooter.wp-block-template-part,\n.wp-block-template-part:has(footer),\n.wp-block-template-part[class*=\"footer\"],\n.wp-block-group:has(.wp-block-site-title):has(.wp-block-navigation){\n  display:none !important;\n  visibility:hidden !important;\n  height:0 !important;\n  min-height:0 !important;\n  max-height:0 !important;\n  overflow:hidden !important;\n  margin:0 !important;\n  padding:0 !important;\n}\nbody .wp-site-blocks{\n  min-height:0 !important;\n}\n\nbody .wp-site-blocks > *{\n  margin-block-start:0 !important;\n  margin-block-end:0 !important;\n}\nhtml,\nbody{\n  min-height:0 !important;\n  height:auto !important;\n  background:#eef5f8 !important;\n}\n\nbody .wp-site-blocks,\nbody .entry-content,\nbody .wp-block-post-content,\nbody main,\nbody .site,\nbody .site-main,\nbody .site-content,\nbody .content-area{\n  min-height:0 !important;\n  height:auto !important;\n  padding-bottom:0 !important;\n  margin-bottom:0 !important;\n}\n\nbody .wp-site-blocks > *:last-child,\nbody .entry-content > *:last-child,\nbody .wp-block-post-content > *:last-child,\nbody main > *:last-child{\n  margin-bottom:0 !important;\n  padding-bottom:0 !important;\n}\n\n#contact.contact-section{\n  margin-bottom:0 !important;\n  padding-bottom:70px !important;\n}\n\nfooter,\n.site-footer,\n.wp-site-blocks > footer,\nfooter.wp-block-template-part,\n.wp-block-template-part:has(footer),\n.wp-block-template-part[class*=\"footer\"]{\n  display:none !important;\n  height:0 !important;\n  min-height:0 !important;\n  max-height:0 !important;\n  margin:0 !important;\n  padding:0 !important;\n  overflow:hidden !important;\n}\n@media(max-width:620px){\n  .hero{\n    min-height:100svh !important;\n    height:100svh !important;\n    max-height:100svh !important;\n    background-attachment:scroll !important;\n    background-size:cover !important;\n    background-position:center center !important;\n    overflow:hidden !important;\n  }\n\n  .hero-content{\n    min-height:100svh !important;\n    height:100svh !important;\n    max-height:100svh !important;\n  }\n}\n@media(max-width:620px){\n  .hero{\n    position:relative !important;\n    height:100svh !important;\n    min-height:100svh !important;\n    max-height:100svh !important;\n    background:none !important;\n    overflow:hidden !important;\n    isolation:isolate;\n  }\n\n  .hero::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    width:100%;\n    height:100%;\n    background:\n      linear-gradient(rgba(35,52,45,.36),rgba(35,52,45,.36)),\n      url(\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/photo-1523438885200-e635ba2c371e-scaled.jpg\")\n      center center \/ cover no-repeat;\n    transform:none !important;\n    transition:none !important;\n    animation:none !important;\n    z-index:-1;\n  }\n\n  .hero-content{\n    height:100svh !important;\n    min-height:100svh !important;\n    max-height:100svh !important;\n    position:relative;\n    z-index:1;\n  }\n}\n@media(max-width:620px){\n  .hero{\n    height:var(--mobile-hero-height) !important;\n    min-height:var(--mobile-hero-height) !important;\n    max-height:var(--mobile-hero-height) !important;\n    background:none !important;\n    overflow:hidden !important;\n    position:relative !important;\n    isolation:isolate;\n  }\n\n  .hero::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    width:100%;\n    height:100%;\n    background:\n      linear-gradient(rgba(35,52,45,.36),rgba(35,52,45,.36)),\n      url(\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/photo-1523438885200-e635ba2c371e-scaled.jpg\")\n      center center \/ cover no-repeat;\n    z-index:-1;\n    transform:none !important;\n    transition:none !important;\n    animation:none !important;\n  }\n\n  .hero-content{\n    height:var(--mobile-hero-height) !important;\n    min-height:var(--mobile-hero-height) !important;\n    max-height:var(--mobile-hero-height) !important;\n    position:relative;\n    z-index:1;\n  }\n}\n\/* FUTURE FRANCE CELEBRATION CARD *\/\n.event.future-event{\n  position:relative;\n  overflow:hidden;\n  background:\n    linear-gradient(180deg, rgba(255,250,244,.96), rgba(238,245,238,.92));\n  border:1px solid rgba(184,200,178,.45);\n  box-shadow:0 16px 40px rgba(35,52,45,.08);\n}\n\n.event.future-event::before{\n  content:\"\";\n  position:absolute;\n  inset:14px;\n  border:1px dashed rgba(35,52,45,.18);\n  pointer-events:none;\n}\n\n.future-badge{\n  position:absolute;\n  top:22px;\n  left:50%;\n  transform:translateX(-50%);\n  min-height:28px;\n  padding:7px 14px 6px;\n  border-radius:999px;\n  background:rgba(217,137,142,.16);\n  color:var(--rose-dark);\n  font-family:Montserrat,sans-serif;\n  font-size:9px;\n  font-weight:800;\n  letter-spacing:1.3px;\n  line-height:1;\n  text-transform:uppercase;\n  white-space:nowrap;\n}\n\n.event.future-event .icon{\n  margin-top:30px;\n  color:var(--sage) !important;\n}\n\n.event.future-event h3{\n  color:var(--green);\n}\n\n.event.future-event p{\n  max-width:270px;\n}\n\n.future-note{\n  display:block;\n  margin-top:15px;\n  color:var(--rose-dark);\n  font-family:Georgia,serif;\n  font-size:13px;\n  font-style:italic;\n  line-height:1.6;\n}\n\n.future-disabled-link{\n  display:inline-flex !important;\n  align-items:center;\n  justify-content:center;\n  min-height:34px;\n  margin-top:18px !important;\n  padding:0 18px;\n  border-radius:999px;\n  background:rgba(35,52,45,.08);\n  color:rgba(35,52,45,.62) !important;\n  font-family:Montserrat,sans-serif !important;\n  font-style:normal !important;\n  font-size:10px !important;\n  font-weight:800;\n  letter-spacing:1px;\n  text-decoration:none;\n  cursor:default;\n  pointer-events:none;\n}\n\n.future-disabled-link::after{\n  display:none !important;\n}\n\n.event.future-event:hover{\n  transform:translateY(0);\n  box-shadow:0 16px 40px rgba(35,52,45,.08);\n}\n.future-badge{\n  display:none !important;\n}\n.events .event:nth-child(2) .icon{\n  color:var(--rose-dark) !important;\n}\n.events .event:nth-child(2) .icon svg{\n  width:54px !important;\n  height:54px !important;\n}\n.events .event{\n  position:relative;\n  overflow:hidden;\n}\n\n.events .event::before{\n  content:\"\";\n  position:absolute;\n  inset:14px;\n  border:1px dashed rgba(35,52,45,.18);\n  pointer-events:none;\n  z-index:0;\n}\n\n.events .event > *{\n  position:relative;\n  z-index:1;\n}\n.gift-card-fund .gift-price{\n  display:none !important;\n}\n\n.gift-card-fund .gift-bottom{\n  display:block !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100%;\n  display:grid;\n  grid-template-columns:repeat(2, minmax(0, 1fr));\n  gap:10px;\n}\n\n.gift-card-fund .gift-fund-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:46px;\n  padding:0 10px;\n  border-radius:999px;\n  flex-direction:column;\n  gap:2px;\n  letter-spacing:.4px;\n  line-height:1.1;\n}\n\n.gift-card-fund .gift-fund-button span{\n  display:block;\n  font-size:8px;\n  font-weight:700;\n  opacity:.92;\n}\n\n.gift-card-fund .gift-fund-button strong{\n  display:block;\n  font-size:12px;\n  font-weight:800;\n}\n\n.gift-card-fund .gift-fund-button.is-lydia{\n  background:#0b1f3a;\n  box-shadow:0 10px 22px rgba(11,31,58,.22);\n}\n\n.gift-card-fund .gift-fund-button.is-paypal{\n  background:#003087;\n  box-shadow:0 10px 22px rgba(0,48,135,.22);\n}\n\n.gift-card-fund .gift-fund-button.is-zelle{\n  background:#6d1ed4;\n  box-shadow:0 10px 22px rgba(109,30,212,.22);\n}\n\n.gift-card-fund .gift-fund-button:hover{\n  transform:translateY(-2px);\n  filter:brightness(1.06);\n}\n\n@media(max-width:620px){\n  .gift-card-fund .gift-buttons-wrap{\n    grid-template-columns:1fr;\n  }\n\n  .gift-card-fund .gift-fund-button{\n    height:44px;\n  }\n}\n.gift-card-fund .gift-price{\n  display:none !important;\n}\n\n.gift-card-fund .gift-bottom{\n  display:block !important;\n  width:100% !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100% !important;\n  display:grid !important;\n  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;\n  gap:10px !important;\n}\n\n.gift-card-fund .gift-fund-button{\n  width:100% !important;\n  min-width:0 !important;\n  max-width:none !important;\n  height:46px !important;\n  padding:0 8px !important;\n  border-radius:999px !important;\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:2px !important;\n  box-sizing:border-box !important;\n  white-space:normal !important;\n  text-align:center !important;\n  line-height:1.05 !important;\n  letter-spacing:0 !important;\n  flex:unset !important;\n  overflow:hidden !important;\n}\n\n.gift-card-fund .gift-fund-button span{\n  display:block !important;\n  max-width:100% !important;\n  font-size:8px !important;\n  font-weight:800 !important;\n  line-height:1.05 !important;\n  opacity:.95 !important;\n  white-space:normal !important;\n}\n\n.gift-card-fund .gift-fund-button strong{\n  display:block !important;\n  max-width:100% !important;\n  font-size:13px !important;\n  font-weight:900 !important;\n  line-height:1.05 !important;\n  white-space:nowrap !important;\n}\n\n.gift-card-fund .gift-fund-button.is-lydia{\n  background:#0184ff !important;\n  color:white !important;\n  box-shadow:0 10px 22px rgba(1,132,255,.24) !important;\n}\n\n.gift-card-fund .gift-fund-button.is-paypal{\n  background:#003087 !important;\n  color:white !important;\n  box-shadow:0 10px 22px rgba(0,48,135,.26) !important;\n}\n\n.gift-card-fund .gift-fund-button.is-zelle{\n  background:#6d1ed4 !important;\n  color:white !important;\n  box-shadow:0 10px 22px rgba(109,30,212,.24) !important;\n}\n\n.gift-card-fund .gift-fund-button:hover{\n  transform:translateY(-2px) !important;\n  filter:brightness(1.06);\n}\n\n@media(max-width:620px){\n  .gift-card-fund .gift-buttons-wrap{\n    grid-template-columns:1fr !important;\n  }\n\n  .gift-card-fund .gift-fund-button{\n    height:44px !important;\n  }\n}\n\/* BOUTONS PRODUITS STANDARD *\/\n.gift-card:not(.gift-card-fund) .gift-bottom{\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:stretch !important;\n  justify-content:flex-end !important;\n  gap:16px !important;\n  width:100% !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-price{\n  width:100% !important;\n  text-align:left !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:42px !important;\n  padding:0 18px !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  align-self:stretch !important;\n  background:var(--rose-dark) !important;\n  color:white !important;\n  border-radius:999px !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  letter-spacing:1px !important;\n  text-align:center !important;\n  box-sizing:border-box !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-button:hover{\n  background:var(--green) !important;\n}\n\n\n\/* BOUTONS CAGNOTTE - INDEPENDANTS DES BOUTONS PRODUITS *\/\n.gift-card-fund .gift-price{\n  display:none !important;\n}\n\n.gift-card-fund .gift-bottom{\n  display:block !important;\n  width:100% !important;\n  margin-top:auto !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100% !important;\n  display:grid !important;\n  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;\n  gap:10px !important;\n}\n\n.gift-fund-pay-button{\n  width:100% !important;\n  min-width:0 !important;\n  max-width:none !important;\n  height:48px !important;\n  padding:0 10px !important;\n  border-radius:999px !important;\n  border:0 !important;\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:3px !important;\n  box-sizing:border-box !important;\n  text-decoration:none !important;\n  color:white !important;\n  white-space:normal !important;\n  text-align:center !important;\n  line-height:1.05 !important;\n  letter-spacing:0 !important;\n  box-shadow:none !important;\n  transform:none !important;\n}\n\n.gift-fund-pay-button span{\n  display:block !important;\n  width:100% !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:8px !important;\n  font-weight:800 !important;\n  line-height:1.05 !important;\n  opacity:.95 !important;\n  white-space:normal !important;\n  color:white !important;\n}\n\n.gift-fund-pay-button strong{\n  display:block !important;\n  width:100% !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:13px !important;\n  font-weight:900 !important;\n  line-height:1.05 !important;\n  color:white !important;\n  white-space:nowrap !important;\n}\n\n.gift-fund-pay-button.is-lydia{\n  background:#00b6ff !important;\n  box-shadow:0 10px 22px rgba(0,182,255,.24) !important;\n}\n\n.gift-fund-pay-button.is-paypal{\n  background:#003087 !important;\n  box-shadow:0 10px 22px rgba(0,48,135,.26) !important;\n}\n\n.gift-fund-pay-button.is-zelle{\n  background:#6d1ed4 !important;\n  box-shadow:0 10px 22px rgba(109,30,212,.24) !important;\n}\n\n.gift-fund-pay-button:hover{\n  filter:brightness(1.06);\n  transform:translateY(-2px) !important;\n}\n\n.gift-fund-pay-button::before,\n.gift-fund-pay-button::after{\n  display:none !important;\n}\n\n@media(max-width:620px){\n  .gift-card-fund .gift-buttons-wrap{\n    grid-template-columns:1fr !important;\n  }\n\n  .gift-fund-pay-button{\n    height:46px !important;\n  }\n}\n\/* BOUTONS PRODUITS STANDARD - LARGEUR COMPLETE *\/\n.gift-card:not(.gift-card-fund) .gift-bottom{\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:stretch !important;\n  justify-content:flex-end !important;\n  gap:16px !important;\n  width:100% !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-price{\n  width:100% !important;\n  text-align:left !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:42px !important;\n  padding:0 18px !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  align-self:stretch !important;\n  background:var(--rose-dark) !important;\n  color:white !important;\n  border-radius:999px !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  letter-spacing:1px !important;\n  text-align:center !important;\n  box-sizing:border-box !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-button:hover{\n  background:var(--green) !important;\n}\n\n\n\/* BOUTONS CAGNOTTE - LOGOS + COULEURS MARQUES *\/\n.gift-card-fund .gift-price{\n  display:none !important;\n}\n\n.gift-card-fund .gift-bottom{\n  display:flex !important;\n  flex-direction:column !important;\n  align-items:stretch !important;\n  justify-content:flex-end !important;\n  gap:12px !important;\n  width:100% !important;\n  margin-top:auto !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100% !important;\n  display:flex !important;\n  flex-direction:column !important;\n  gap:10px !important;\n}\n\n.gift-fund-pay-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:42px !important;\n  padding:0 16px !important;\n  border-radius:999px !important;\n  border:0 !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:10px !important;\n  box-sizing:border-box !important;\n  text-decoration:none !important;\n  color:white !important;\n  white-space:nowrap !important;\n  text-align:center !important;\n  line-height:1 !important;\n  letter-spacing:.7px !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  box-shadow:0 8px 18px rgba(35,52,45,.14) !important;\n  transition:background .3s ease, transform .3s ease, box-shadow .3s ease, filter .3s ease !important;\n}\n\n.gift-fund-pay-button img{\n  display:block !important;\n  width:auto !important;\n  height:18px !important;\n  max-width:72px !important;\n  object-fit:contain !important;\n}\n\n.gift-fund-pay-button span{\n  display:block !important;\n  color:white !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  line-height:1 !important;\n  white-space:nowrap !important;\n}\n\n.gift-fund-pay-button strong{\n  display:none !important;\n}\n\n.gift-fund-pay-button.is-lydia{\n  background:#00b7ff !important;\n  box-shadow:0 8px 18px rgba(0,183,255,.24) !important;\n}\n\n.gift-fund-pay-button.is-paypal{\n  background:#003087 !important;\n  box-shadow:0 8px 18px rgba(0,48,135,.24) !important;\n}\n\n.gift-fund-pay-button.is-zelle{\n  background:#6d1ed4 !important;\n  box-shadow:0 8px 18px rgba(109,30,212,.26) !important;\n}\n\n.gift-fund-pay-button.is-lydia:hover{\n  background:#008ed1 !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 12px 24px rgba(0,142,209,.28) !important;\n}\n\n.gift-fund-pay-button.is-paypal:hover{\n  background:#001f5f !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 12px 24px rgba(0,31,95,.30) !important;\n}\n\n.gift-fund-pay-button.is-zelle:hover{\n  background:#5616ad !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 12px 24px rgba(86,22,173,.30) !important;\n}\n\n.gift-fund-pay-button::before,\n.gift-fund-pay-button::after{\n  display:none !important;\n}\n.gift-fund-pay-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:42px !important;\n  padding:0 18px !important;\n  border-radius:999px !important;\n  border:0 !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:10px !important;\n  box-sizing:border-box !important;\n  text-decoration:none !important;\n  color:white !important;\n  white-space:nowrap !important;\n  text-align:center !important;\n  line-height:1 !important;\n  letter-spacing:.7px !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  box-shadow:0 8px 18px rgba(35,52,45,.14) !important;\n  transition:background .3s ease, transform .3s ease, box-shadow .3s ease, filter .3s ease !important;\n}\n\n.gift-fund-pay-button img{\n  display:block !important;\n  width:auto !important;\n  height:18px !important;\n  max-width:64px !important;\n  object-fit:contain !important;\n  flex:0 0 auto !important;\n}\n\n.gift-fund-pay-button span{\n  display:block !important;\n  color:white !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  line-height:1 !important;\n  white-space:nowrap !important;\n  text-align:left !important;\n  flex:0 0 auto !important;\n}\n.gift-card-fund .gift-bottom{\n  display:block !important;\n  width:100% !important;\n  margin-top:auto !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100% !important;\n  display:grid !important;\n  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;\n  gap:10px !important;\n}\n\n.gift-fund-pay-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:42px !important;\n  padding:0 10px !important;\n  border-radius:999px !important;\n  border:0 !important;\n  display:flex !important;\n  flex-direction:row !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:6px !important;\n  box-sizing:border-box !important;\n  text-decoration:none !important;\n  color:white !important;\n  white-space:nowrap !important;\n  overflow:hidden !important;\n  text-align:center !important;\n  line-height:1 !important;\n  letter-spacing:0 !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:9px !important;\n  font-weight:800 !important;\n  box-shadow:0 8px 18px rgba(35,52,45,.14) !important;\n  transition:background .3s ease, transform .3s ease, box-shadow .3s ease, filter .3s ease !important;\n}\n\n.gift-fund-pay-button img{\n  display:block !important;\n  width:auto !important;\n  height:14px !important;\n  max-width:42px !important;\n  object-fit:contain !important;\n  flex:0 0 auto !important;\n}\n\n.gift-fund-pay-button span{\n  display:block !important;\n  color:white !important;\n  font-size:8px !important;\n  font-weight:800 !important;\n  line-height:1 !important;\n  white-space:nowrap !important;\n  overflow:hidden !important;\n  text-overflow:ellipsis !important;\n  flex:0 1 auto !important;\n}\n\n.gift-fund-pay-button strong{\n  display:none !important;\n}\n\/* CAGNOTTE - BOUTONS PAIEMENT PROPRES *\/\n.gift-card-fund .gift-bottom{\n  display:block !important;\n  width:100% !important;\n  margin-top:auto !important;\n}\n\n.gift-card-fund .gift-buttons-wrap{\n  width:100% !important;\n  display:grid !important;\n  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;\n  gap:12px !important;\n}\n\n.gift-fund-pay-button{\n  width:100% !important;\n  max-width:none !important;\n  min-width:0 !important;\n  height:48px !important;\n  padding:0 14px !important;\n  border-radius:999px !important;\n  border:0 !important;\n  display:flex !important;\n  flex-direction:row !important;\n  align-items:center !important;\n  justify-content:center !important;\n  gap:9px !important;\n  box-sizing:border-box !important;\n  text-decoration:none !important;\n  color:white !important;\n  white-space:nowrap !important;\n  overflow:hidden !important;\n  text-align:center !important;\n  line-height:1 !important;\n  letter-spacing:0 !important;\n  font-family:Montserrat,sans-serif !important;\n  font-size:10px !important;\n  font-weight:900 !important;\n  box-shadow:0 10px 22px rgba(35,52,45,.16) !important;\n  transition:background .3s ease, transform .3s ease, box-shadow .3s ease, filter .3s ease !important;\n}\n\n.gift-fund-pay-button img{\n  display:block !important;\n  width:auto !important;\n  height:20px !important;\n  max-width:58px !important;\n  object-fit:contain !important;\n  flex:0 0 auto !important;\n}\n\n.gift-fund-pay-button span{\n  display:block !important;\n  color:white !important;\n  font-size:9px !important;\n  font-weight:900 !important;\n  line-height:1.05 !important;\n  white-space:normal !important;\n  text-align:left !important;\n  flex:0 1 auto !important;\n}\n\n.gift-fund-pay-button strong{\n  display:none !important;\n}\n\n.gift-fund-pay-button.is-lydia{\n  background:#00b7ff !important;\n  box-shadow:0 10px 22px rgba(0,183,255,.26) !important;\n}\n\n.gift-fund-pay-button.is-paypal{\n  background:#003087 !important;\n  box-shadow:0 10px 22px rgba(0,48,135,.28) !important;\n}\n\n.gift-fund-pay-button.is-zelle{\n  background:#6d1ed4 !important;\n  box-shadow:0 10px 22px rgba(109,30,212,.28) !important;\n}\n\n.gift-fund-pay-button.is-lydia:hover{\n  background:#008ed1 !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 14px 28px rgba(0,142,209,.32) !important;\n}\n\n.gift-fund-pay-button.is-paypal:hover{\n  background:#001f5f !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 14px 28px rgba(0,31,95,.34) !important;\n}\n\n.gift-fund-pay-button.is-zelle:hover{\n  background:#5616ad !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 14px 28px rgba(86,22,173,.34) !important;\n}\n\n.gift-fund-pay-button::before,\n.gift-fund-pay-button::after{\n  display:none !important;\n}\n\n\/* MOBILE : LOGO UNIQUEMENT, 2 BOUTONS SUR LA MEME LIGNE *\/\n@media(max-width:620px){\n  .gift-card-fund .gift-buttons-wrap{\n    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;\n    gap:10px !important;\n  }\n\n  .gift-fund-pay-button{\n    height:44px !important;\n    padding:0 10px !important;\n    gap:0 !important;\n  }\n\n  .gift-fund-pay-button span{\n    display:none !important;\n  }\n\n  .gift-fund-pay-button img{\n    height:24px !important;\n    max-width:74px !important;\n  }\n\n  .gift-fund-pay-button.is-zelle img{\n    height:26px !important;\n    max-width:78px !important;\n  }\n\n  .gift-fund-pay-button.is-paypal img{\n    height:24px !important;\n    max-width:78px !important;\n  }\n\n  .gift-fund-pay-button.is-lydia img{\n    height:24px !important;\n    max-width:76px !important;\n  }\n}\n.gift-fund-pay-button.is-paypal{\n  background:#0070ba !important;\n  box-shadow:0 10px 22px rgba(0,112,186,.28) !important;\n}\n\n.gift-fund-pay-button.is-paypal:hover{\n  background:#005ea6 !important;\n  box-shadow:0 14px 28px rgba(0,94,166,.34) !important;\n}\n.gift-image-link{\n  display:block;\n  width:100%;\n  height:100%;\n  text-decoration:none;\n}\n\n.gift-title-link{\n  color:inherit !important;\n  text-decoration:none !important;\n  transition:color .25s ease;\n}\n\n.gift-title-link:hover{\n  color:var(--rose-dark) !important;\n}\n\n\/* VENMO BUTTON *\/\n.gift-fund-pay-button.is-venmo{\n  background:#008cff !important;\n  box-shadow:0 10px 22px rgba(0,140,255,.26) !important;\n}\n\n.gift-fund-pay-button.is-venmo:hover{\n  background:#0074d6 !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 14px 28px rgba(0,116,214,.34) !important;\n}\n\n\n\/* MOBILE PAYMENT BUTTON ANIMATION: LOGO <-> BRAND NAME *\/\n@media(max-width:620px){\n  .gift-fund-pay-button{\n    position:relative !important;\n    overflow:hidden !important;\n  }\n\n  .gift-fund-pay-button img{\n    position:absolute !important;\n    left:50% !important;\n    top:50% !important;\n    height:24px !important;\n    max-width:78px !important;\n    transform:translate(-50%,-50%) scale(1) !important;\n    opacity:1 !important;\n    transition:opacity .45s ease, transform .45s ease !important;\n  }\n\n  .gift-fund-pay-button strong{\n    position:absolute !important;\n    left:50% !important;\n    top:50% !important;\n    display:block !important;\n    color:white !important;\n    font-family:Montserrat,sans-serif !important;\n    font-size:13px !important;\n    font-weight:900 !important;\n    line-height:1 !important;\n    transform:translate(-50%,-50%) scale(.92) !important;\n    opacity:0 !important;\n    transition:opacity .45s ease, transform .45s ease !important;\n    white-space:nowrap !important;\n  }\n\n  .gift-fund-pay-button span{\n    display:none !important;\n  }\n\n  .gift-fund-pay-button.show-name img{\n    opacity:0 !important;\n    transform:translate(-50%,-50%) scale(.88) !important;\n  }\n\n  .gift-fund-pay-button.show-name strong{\n    opacity:1 !important;\n    transform:translate(-50%,-50%) scale(1) !important;\n  }\n\n  .gift-fund-pay-button.is-zelle strong{\n    font-size:14px !important;\n  }\n\n  .gift-fund-pay-button.is-paypal strong{\n    font-size:13px !important;\n  }\n\n  .gift-fund-pay-button.is-lydia strong,\n  .gift-fund-pay-button.is-venmo strong{\n    font-size:14px !important;\n  }\n}\n.gift-fund-pay-button.is-venmo{\n  background:#3195cb !important;\n  box-shadow:0 10px 22px rgba(49,149,203,.28) !important;\n}\n\n.gift-fund-pay-button.is-venmo:hover{\n  background:#257fb0 !important;\n  transform:translateY(-2px) !important;\n  box-shadow:0 14px 28px rgba(37,127,176,.34) !important;\n}\n\/* DESKTOP: LOGO FIXE + TEXTE ANIME A DROITE *\/\n@media(min-width:621px){\n  .gift-fund-pay-button{\n    display:flex !important;\n    flex-direction:row !important;\n    align-items:center !important;\n    justify-content:center !important;\n    gap:10px !important;\n    position:relative !important;\n  }\n\n  .gift-fund-pay-button .fund-logo{\n    position:static !important;\n    flex:0 0 auto !important;\n    height:20px !important;\n    max-width:58px !important;\n    transform:none !important;\n    opacity:1 !important;\n  }\n\n  .gift-fund-pay-button .fund-copy{\n    position:relative !important;\n    display:block !important;\n    width:92px !important;\n    height:18px !important;\n    flex:0 0 92px !important;\n    overflow:hidden !important;\n  }\n\n  .gift-fund-pay-button .fund-benefit,\n  .gift-fund-pay-button .fund-brand{\n    position:absolute !important;\n    inset:0 !important;\n    display:flex !important;\n    align-items:center !important;\n    justify-content:center !important;\n    color:white !important;\n    font-family:Montserrat,sans-serif !important;\n    font-size:9px !important;\n    font-weight:900 !important;\n    line-height:1.05 !important;\n    text-align:center !important;\n    white-space:normal !important;\n    transition:opacity 1s ease, transform 1s ease !important;\n  }\n\n  .gift-fund-pay-button .fund-benefit{\n    opacity:1 !important;\n    transform:translateY(0) scale(1) !important;\n  }\n\n  .gift-fund-pay-button .fund-brand{\n    opacity:0 !important;\n    transform:translateY(8px) scale(.96) !important;\n  }\n\n  .gift-fund-pay-button.show-name .fund-benefit{\n    opacity:0 !important;\n    transform:translateY(-8px) scale(.96) !important;\n  }\n\n  .gift-fund-pay-button.show-name .fund-brand{\n    opacity:1 !important;\n    transform:translateY(0) scale(1) !important;\n  }\n}\n\/* DESKTOP: ALTERNANCE TEXTE BOUTONS CAGNOTTE *\/\n@media(min-width:621px){\n  .gift-fund-pay-button{\n    position:relative !important;\n    display:flex !important;\n    flex-direction:row !important;\n    align-items:center !important;\n    justify-content:center !important;\n    gap:10px !important;\n  }\n\n  .gift-fund-pay-button img{\n    position:static !important;\n    flex:0 0 auto !important;\n    height:20px !important;\n    max-width:58px !important;\n    transform:none !important;\n    opacity:1 !important;\n  }\n\n  .gift-fund-pay-button span,\n  .gift-fund-pay-button strong{\n    position:static !important;\n    display:block !important;\n    color:white !important;\n    font-family:Montserrat,sans-serif !important;\n    font-size:9px !important;\n    font-weight:900 !important;\n    line-height:1.05 !important;\n    white-space:normal !important;\n    text-align:left !important;\n    transition:opacity 1s ease, transform 1s ease !important;\n  }\n\n  .gift-fund-pay-button span{\n    opacity:1 !important;\n    transform:translateY(0) scale(1) !important;\n  }\n\n  .gift-fund-pay-button strong{\n    position:absolute !important;\n    left:calc(50% + 16px) !important;\n    top:50% !important;\n    transform:translateY(8px) scale(.96) !important;\n    opacity:0 !important;\n    pointer-events:none !important;\n  }\n\n  .gift-fund-pay-button.show-name span{\n    opacity:0 !important;\n    transform:translateY(-8px) scale(.96) !important;\n  }\n\n  .gift-fund-pay-button.show-name strong{\n    opacity:1 !important;\n    transform:translateY(-50%) scale(1) !important;\n  }\n}\n\/* DESKTOP - NOM DE MARQUE CENTRE ET PLUS LISIBLE *\/\n@media(min-width:621px){\n  .gift-fund-pay-button{\n    position:relative !important;\n  }\n\n  .gift-fund-pay-button strong{\n    position:absolute !important;\n    left:50% !important;\n    top:50% !important;\n    width:100% !important;\n    text-align:center !important;\n    display:flex !important;\n    align-items:center !important;\n    justify-content:center !important;\n    color:white !important;\n    font-size:12px !important;\n    font-weight:900 !important;\n    line-height:1 !important;\n    opacity:0 !important;\n    transform:translate(-50%, calc(-50% + 8px)) scale(.96) !important;\n    pointer-events:none !important;\n    transition:opacity 1s ease, transform 1s ease !important;\n  }\n\n  .gift-fund-pay-button.show-name strong{\n    opacity:1 !important;\n    transform:translate(-50%, -50%) scale(1) !important;\n  }\n\n  .gift-fund-pay-button.show-name span{\n    opacity:0 !important;\n    transform:translateY(-8px) scale(.96) !important;\n  }\n\n  .gift-fund-pay-button.show-name img{\n    opacity:0 !important;\n    transform:scale(.92) !important;\n  }\n}\n.gift-fund-pay-button{\n  height:38px !important;\n  min-height:38px !important;\n  max-height:38px !important;\n}\n\n@media(max-width:620px){\n  .gift-fund-pay-button{\n    height:38px !important;\n    min-height:38px !important;\n    max-height:38px !important;\n  }\n}\n\/* ALIGNEMENT PRIX + BOUTON AMAZON *\/\n.gift-card:not(.gift-card-fund) .gift-bottom{\n  display:grid !important;\n  grid-template-columns:auto minmax(130px, 1fr) !important;\n  align-items:center !important;\n  gap:12px !important;\n  width:100% !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-price{\n  width:auto !important;\n  min-width:max-content !important;\n  text-align:left !important;\n  font-size:22px !important;\n  line-height:1 !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-buttons-wrap{\n  width:100% !important;\n  min-width:0 !important;\n}\n\n.gift-card:not(.gift-card-fund) .gift-button{\n  width:100% !important;\n  height:38px !important;\n  min-height:38px !important;\n  max-height:38px !important;\n  min-width:0 !important;\n  max-width:none !important;\n  padding:0 14px !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  box-sizing:border-box !important;\n  white-space:nowrap !important;\n}\n\n@media(max-width:620px){\n  .gift-card:not(.gift-card-fund) .gift-bottom{\n    grid-template-columns:1fr !important;\n    align-items:stretch !important;\n    gap:10px !important;\n  }\n\n  .gift-card:not(.gift-card-fund) .gift-price{\n    width:100% !important;\n    min-width:0 !important;\n  }\n\n  .gift-card:not(.gift-card-fund) .gift-button{\n    width:100% !important;\n  }\n}\n\/* PRODUIT DEJA ACHETE \/ OFFERT *\/\n.gift-card{\n  position:relative;\n}\n\n.gift-card.is-purchased{\n  filter:grayscale(.9);\n  opacity:.58;\n}\n\n.gift-card.is-purchased:hover{\n  transform:none !important;\n  box-shadow:0 16px 42px rgba(35,52,45,.10) !important;\n}\n\n.gift-purchased-badge{\n  position:absolute;\n  top:18px;\n  right:18px;\n  z-index:5;\n  padding:8px 13px;\n  border-radius:999px;\n  background:var(--green);\n  color:white;\n  font-family:Montserrat,sans-serif;\n  font-size:10px;\n  font-weight:800;\n  letter-spacing:.9px;\n  line-height:1;\n  text-transform:uppercase;\n  box-shadow:0 10px 22px rgba(35,52,45,.18);\n}\n\n.gift-button-disabled{\n  width:100% !important;\n  height:38px !important;\n  min-height:38px !important;\n  max-height:38px !important;\n  display:flex !important;\n  align-items:center !important;\n  justify-content:center !important;\n  border-radius:999px !important;\n  background:rgba(35,52,45,.22) !important;\n  color:white !important;\n  text-decoration:none !important;\n  font-size:10px !important;\n  font-weight:800 !important;\n  letter-spacing:1px !important;\n  pointer-events:none !important;\n  cursor:default !important;\n  box-shadow:none !important;\n}\n\n.gift-card.is-purchased .gift-image img{\n  transform:none !important;\n}\n\n.gift-card.is-purchased .gift-title-link,\n.gift-card.is-purchased .gift-image-link{\n  pointer-events:none !important;\n}\n\n<\/style>\n\n\n\n<div class=\"language-popup\" id=\"languagePopup\">\n  <div class=\"language-box\">\n    <div class=\"language-title\">\n      <span>Bienvenue<\/span>\n      <span>Hello<\/span>\n      <span>\u6b61\u8fce<\/span>\n    <\/div>\n\n    <div class=\"language-subtitle\">\n      <span>Choisissez votre langue<\/span>\n      <span>Choose your language<\/span>\n      <span>\u8acb\u9078\u64c7\u60a8\u7684\u8a9e\u8a00<\/span>\n    <\/div>\n\n    <div class=\"language-buttons\">\n      <button onclick=\"setLanguage('fr')\" aria-label=\"Fran\u00e7ais\">\ud83c\uddeb\ud83c\uddf7<\/button>\n      <button onclick=\"setLanguage('en')\" aria-label=\"English\">\ud83c\uddfa\ud83c\uddf8<\/button>\n      <button onclick=\"setLanguage('zh')\" aria-label=\"\u7e41\u9ad4\u4e2d\u6587\">\ud83c\uddf9\ud83c\uddfc<\/button>\n    <\/div>\n\n    <div class=\"language-note\">Cate &amp; Maxime<\/div>\n  <\/div>\n<\/div>\n\n<header class=\"hero\" id=\"home\">\n  <nav class=\"nav\">\n    <a href=\"#home\" data-fr=\"ACCUEIL\" data-en=\"HOME\" data-zh=\"\u9996\u9801\">HOME<\/a>\n    <a href=\"#story\" data-fr=\"HISTOIRE\" data-en=\"STORY\" data-zh=\"\u6545\u4e8b\">STORY<\/a>\n    <a href=\"#where\" data-fr=\"QUAND ET O\u00d9\" data-en=\"WHEN AND WHERE\" data-zh=\"\u6642\u9593\u8207\u5730\u9ede\">WHEN AND WHERE<\/a>\n\n    <div class=\"logo\">\n  <img decoding=\"async\" src=\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/Logo-CM.png\" alt=\"Cate &amp; Maxime\">\n<\/div>\n\n\n    <a href=\"#cagnotte\" data-fr=\"CAGNOTTE\" data-en=\"GIFT FUND\" data-zh=\"\u79ae\u91d1\">GIFT FUND<\/a>\n    <a href=\"#contact\" data-fr=\"QUESTIONS\" data-en=\"QUESTIONS\" data-zh=\"\u554f\u984c\">QUESTIONS<\/a>\n\n    <div class=\"menu-flags\">\n      <button onclick=\"setLanguage('fr')\" aria-label=\"Fran\u00e7ais\">\ud83c\uddeb\ud83c\uddf7<\/button>\n      <button onclick=\"setLanguage('en')\" aria-label=\"English\">\ud83c\uddfa\ud83c\uddf8<\/button>\n      <button onclick=\"setLanguage('zh')\" aria-label=\"\u7e41\u9ad4\u4e2d\u6587\">\ud83c\uddf9\ud83c\uddfc<\/button>\n    <\/div>\n  <\/nav>\n\n  <div class=\"hero-content\">\n    <h1 class=\"script\">Cate &amp; Maxime<\/h1>\n    <div class=\"subtitle\" data-fr=\"NOUS NOUS MARIONS LE 24 JUILLET 2026\" data-en=\"WE ARE GETTING MARRIED JULY 24, 2026\" data-zh=\"\u6211\u5011\u5c07\u65bc 2026 \u5e74 7 \u6708 24 \u65e5\u7d50\u5a5a\">\n      WE ARE GETTING MARRIED JULY 24, 2026\n    <\/div>\n\n    <div class=\"countdown\">\n      <div><strong id=\"months\">00<\/strong><span data-fr=\"MOIS\" data-en=\"MONTHS\" data-zh=\"\u6708\">MONTHS<\/span><\/div>\n      <div><strong id=\"days\">00<\/strong><span data-fr=\"JOURS\" data-en=\"DAYS\" data-zh=\"\u5929\">DAYS<\/span><\/div>\n      <div><strong id=\"hours\">00<\/strong><span data-fr=\"HEURES\" data-en=\"HOURS\" data-zh=\"\u5c0f\u6642\">HOURS<\/span><\/div>\n      <div><strong id=\"minutes\">00<\/strong><span data-fr=\"MINUTES\" data-en=\"MINUTES\" data-zh=\"\u5206\u9418\">MINUTES<\/span><\/div>\n      <div><strong id=\"seconds\">00<\/strong><span data-fr=\"SECONDES\" data-en=\"SECONDS\" data-zh=\"\u79d2\">SECONDS<\/span><\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section id=\"story\">\n  <div class=\"story-heading\">\n    <img decoding=\"async\" class=\"story-title-img\" src=\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/section-title-img-7.png\" alt=\"\">\n    <h2>\n      <span data-fr=\"MARI\u00c9E\" data-en=\"BRIDE\" data-zh=\"\u65b0\u5a18\">BRIDE<\/span>\n      <span class=\"dot\">\u00b7<\/span>\n      <span>&amp;<\/span>\n      <span class=\"dot\">\u00b7<\/span>\n      <span data-fr=\"MARI\u00c9\" data-en=\"GROOM\" data-zh=\"\u65b0\u90ce\">GROOM<\/span>\n    <\/h2>\n  <\/div>\n\n  <div class=\"story-wrap\">\n    <div class=\"person bride\">\n      <span class=\"person-photo\">\n        <img decoding=\"async\" src=\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/Cate-picture.png\" alt=\"Cate\">\n      <\/span>\n      <h2>Cate<\/h2>\n      <p data-fr=\"J\u2019ai suivi mon c\u0153ur jusqu\u2019en France, sans savoir que ce choix allait changer ma vie. C\u2019est l\u00e0 que j\u2019ai rencontr\u00e9 Maxime, et tr\u00e8s vite, nous avons compris que notre histoire \u00e9tait sp\u00e9ciale.\" data-en=\"I followed my heart all the way to France, without knowing that choice would change my life. That is where I met Maxime, and very quickly, we understood that our story was something special.\" data-zh=\"\u6211\u8ddf\u96a8\u81ea\u5df1\u7684\u5fc3\u4f86\u5230\u6cd5\u570b\uff0c\u537b\u4e0d\u77e5\u9053\u9019\u500b\u9078\u64c7\u6703\u6539\u8b8a\u6211\u7684\u4eba\u751f\u3002\u5c31\u662f\u5728\u90a3\u88e1\uff0c\u6211\u9047\u898b\u4e86 Maxime\uff0c\u800c\u6211\u5011\u5f88\u5feb\u5c31\u660e\u767d\uff0c\u9019\u6bb5\u6545\u4e8b\u5f88\u7279\u5225\u3002\">\n        I followed my heart all the way to France, without knowing that choice would change my life. That is where I met Maxime, and very quickly, we understood that our story was something special.\n      <\/p>\n\n      <div class=\"social-icons\">\n        <a href=\"https:\/\/www.instagram.com\/catemcgloin\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Instagram Cate\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4c0 3.2-2.6 5.8-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8C2 4.6 4.6 2 7.8 2zm-.2 2C5.6 4 4 5.6 4 7.6v8.8c0 2 1.6 3.6 3.6 3.6h8.8c2 0 3.6-1.6 3.6-3.6V7.6c0-2-1.6-3.6-3.6-3.6H7.6zm9.65 1.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM12 7a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z\"><\/path><\/svg>\n        <\/a>\n        <a href=\"https:\/\/www.facebook.com\/cate.mcgloin\" target=\"_blank\" rel=\"noopener\" aria-label=\"Facebook Cate\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M14 8.5V6.75c0-.5.4-.75.9-.75H17V2.2C16.6 2.15 15.3 2 13.9 2 11 2 9 3.8 9 7.1v1.4H6v4h3V22h4v-9.5h3.3l.5-4H13z\"><\/path><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"timeline\">\n      <div class=\"timeline-item\">\n        <h3 data-fr=\"Notre premi\u00e8re rencontre\" data-en=\"Our first meeting\" data-zh=\"\u6211\u5011\u7b2c\u4e00\u6b21\u76f8\u9047\">Notre premi\u00e8re rencontre<\/h3>\n        <div class=\"date\" data-fr=\"16 septembre 2023\" data-en=\"September 16, 2023\" data-zh=\"2023 \u5e74 9 \u6708 16 \u65e5\">16 septembre 2023<\/div>\n        <p data-fr=\"Notre premi\u00e8re rencontre a \u00e9t\u00e9 simple, inattendue, et pourtant impossible \u00e0 oublier. C\u2019est le moment o\u00f9 tout a commenc\u00e9 pour nous.\" data-en=\"Our first meeting was simple, unexpected, and yet impossible to forget. It was the moment everything began for us.\" data-zh=\"\u6211\u5011\u7b2c\u4e00\u6b21\u76f8\u9047\u5f88\u7c21\u55ae\u3001\u5f88\u610f\u5916\uff0c\u537b\u8b93\u4eba\u96e3\u4ee5\u5fd8\u8a18\u3002\u90a3\u662f\u6211\u5011\u4e00\u5207\u958b\u59cb\u7684\u6642\u523b\u3002\">\n          Our first meeting was simple, unexpected, and yet impossible to forget. It was the moment everything began for us.\n        <\/p>\n      <\/div>\n\n      <div class=\"line\"><\/div>\n\n      <div class=\"timeline-item\">\n        <h3 data-fr=\"Le d\u00e9but de notre histoire\" data-en=\"The beginning of our story\" data-zh=\"\u6211\u5011\u6545\u4e8b\u7684\u958b\u59cb\">Le d\u00e9but de notre histoire<\/h3>\n        <div class=\"date\" data-fr=\"5 octobre 2023\" data-en=\"October 5, 2023\" data-zh=\"2023 \u5e74 10 \u6708 5 \u65e5\">5 octobre 2023<\/div>\n        <p data-fr=\"Petit \u00e0 petit, nous avons appris \u00e0 nous conna\u00eetre, \u00e0 nous choisir, et \u00e0 construire cette belle histoire qui est devenue la n\u00f4tre.\" data-en=\"Little by little, we learned to know each other, to choose each other, and to build this beautiful story that became ours.\" data-zh=\"\u4e00\u9ede\u4e00\u9ede\u5730\uff0c\u6211\u5011\u5b78\u6703\u4e86\u89e3\u5f7c\u6b64\u3001\u9078\u64c7\u5f7c\u6b64\uff0c\u4e5f\u4e00\u8d77\u5efa\u7acb\u4e86\u9019\u6bb5\u5c6c\u65bc\u6211\u5011\u7684\u7f8e\u9e97\u6545\u4e8b\u3002\">\n          Little by little, we learned to know each other, to choose each other, and to build this beautiful story that became ours.\n        <\/p>\n      <\/div>\n\n      <div class=\"line\"><\/div>\n\n      <div class=\"timeline-item\">\n        <h3 data-fr=\"Il a demand\u00e9, elle a dit oui\" data-en=\"He asked &amp; she said yes\" data-zh=\"\u4ed6\u6c42\u5a5a\u4e86\uff0c\u5979\u8aaa\u9858\u610f\">Il a demand\u00e9, elle a dit oui<\/h3>\n        <div class=\"date\" data-fr=\"21 d\u00e9cembre 2025\" data-en=\"December 21, 2025\" data-zh=\"2025 \u5e74 12 \u6708 21 \u65e5\">21 d\u00e9cembre 2025<\/div>\n        <p data-fr=\"Ce jour-l\u00e0, nous avons v\u00e9cu l\u2019un des moments les plus \u00e9mouvants de notre vie. Une promesse, beaucoup d\u2019amour, et le d\u00e9but d\u2019un nouveau chapitre.\" data-en=\"That day, we lived one of the most emotional moments of our lives. A promise, so much love, and the beginning of a new chapter.\" data-zh=\"\u90a3\u4e00\u5929\uff0c\u6211\u5011\u7d93\u6b77\u4e86\u4eba\u751f\u4e2d\u6700\u611f\u52d5\u7684\u6642\u523b\u4e4b\u4e00\u3002\u4e00\u500b\u627f\u8afe\u3001\u6eff\u6eff\u7684\u611b\uff0c\u4ee5\u53ca\u65b0\u7bc7\u7ae0\u7684\u958b\u59cb\u3002\">\n          That day, we lived one of the most emotional moments of our lives. A promise, so much love, and the beginning of a new chapter.\n        <\/p>\n      <\/div>\n\n      <div class=\"line\"><\/div>\n\n      <div class=\"timeline-item\">\n        <h3 data-fr=\"Le jour du mariage !\" data-en=\"The wedding day!\" data-zh=\"\u5a5a\u79ae\u4e4b\u65e5\uff01\">Le jour du mariage !<\/h3>\n        <div class=\"date\" data-fr=\"24 juillet 2026\" data-en=\"July 24, 2026\" data-zh=\"2026 \u5e74 7 \u6708 24 \u65e5\">24 juillet 2026<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"person groom\">\n      <span class=\"person-photo\">\n        <img decoding=\"async\" src=\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/d2b6a987-32c6-43f7-bfb9-ac92ae6ba1cb.jpg\" alt=\"Maxime\">\n      <\/span>\n      <h2>Maxime<\/h2>\n      <p data-fr=\"Apr\u00e8s la fin de mes \u00e9tudes, je suis pr\u00eat \u00e0 rejoindre Cate en Californie. Nous avons h\u00e2te de construire notre avenir ensemble, entre la France et les \u00c9tats-Unis, et de commencer ce nouveau chapitre \u00e0 deux.\" data-en=\"After finishing my studies, I am ready to join Cate in California. We cannot wait to build our future together, between France and the United States, and begin this new chapter as one.\" data-zh=\"\u5b8c\u6210\u5b78\u696d\u5f8c\uff0c\u6211\u6e96\u5099\u524d\u5f80\u52a0\u5dde\u8207 Cate \u76f8\u805a\u3002\u6211\u5011\u8feb\u4e0d\u53ca\u5f85\u60f3\u4e00\u8d77\u5efa\u7acb\u672a\u4f86\uff0c\u5728\u6cd5\u570b\u8207\u7f8e\u570b\u4e4b\u9593\uff0c\u958b\u59cb\u5c6c\u65bc\u6211\u5011\u5169\u500b\u4eba\u7684\u65b0\u7bc7\u7ae0\u3002\">\n        After finishing my studies, I am ready to join Cate in California. We cannot wait to build our future together, between France and the United States, and begin this new chapter as one.\n      <\/p>\n\n      <div class=\"social-icons\">\n        <a href=\"https:\/\/www.instagram.com\/maximehabault\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Instagram Maxime\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4c0 3.2-2.6 5.8-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8C2 4.6 4.6 2 7.8 2zm-.2 2C5.6 4 4 5.6 4 7.6v8.8c0 2 1.6 3.6 3.6 3.6h8.8c2 0 3.6-1.6 3.6-3.6V7.6c0-2-1.6-3.6-3.6-3.6H7.6zm9.65 1.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM12 7a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z\"><\/path><\/svg>\n        <\/a>\n        <a href=\"https:\/\/www.facebook.com\/maxime.habault.7\" target=\"_blank\" rel=\"noopener\" aria-label=\"Facebook Maxime\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M14 8.5V6.75c0-.5.4-.75.9-.75H17V2.2C16.6 2.15 15.3 2 13.9 2 11 2 9 3.8 9 7.1v1.4H6v4h3V22h4v-9.5h3.3l.5-4H13z\"><\/path><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n<section class=\"when\" id=\"where\">\n  <img decoding=\"async\" class=\"when-title-img\" src=\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/section-title-img-6.png\" alt=\"\">\n\n  <h2 class=\"section-title\">\n    <span data-fr=\"QUAND\" data-en=\"WHEN\" data-zh=\"\u6642\u9593\">WHEN<\/span>\n    <span class=\"dot\">\u00b7<\/span>\n    <span>&amp;<\/span>\n    <span class=\"dot\">\u00b7<\/span>\n    <span data-fr=\"O\u00d9\" data-en=\"WHERE\" data-zh=\"\u5730\u9ede\">WHERE<\/span>\n  <\/h2>\n\n  <div class=\"section-subtitle\" data-fr=\"Mariage\" data-en=\"Wedding\" data-zh=\"\u5a5a\u79ae\">Wedding<\/div>\n\n  <div class=\"events\">\n    <div class=\"event\">\n      <div class=\"icon\">\n        <svg viewBox=\"0 0 24 24\">\n          <path d=\"M7 3h7l4 4v14H7z\"><\/path>\n          <path d=\"M14 3v5h5\"><\/path>\n          <path d=\"M9 13h6\"><\/path>\n          <path d=\"M9 17h4\"><\/path>\n          <path d=\"M10 10c.8-1.2 2.2-1.2 3 0 .8-1.2 2.2-1.2 3 0\"><\/path>\n        <\/svg>\n      <\/div>\n      <h3 data-fr=\"LICENCE DE MARIAGE\" data-en=\"MARRIAGE LICENSE\" data-zh=\"\u7d50\u5a5a\u767b\u8a18\">MARRIAGE LICENSE<\/h3>\n      <p class=\"lang-content lang-fr\">Jeudi 23 juillet 2026<br>15h00<br>San Francisco City Hall<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <p class=\"lang-content lang-en\">Thursday, July 23, 2026<br>3:00 PM<br>San Francisco City Hall<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <p class=\"lang-content lang-zh\">2026 \u5e74 7 \u6708 23 \u65e5\uff0c\u661f\u671f\u56db<br>\u4e0b\u5348 3:00<br>\u820a\u91d1\u5c71\u5e02\u653f\u5ef3<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <a href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=San+Francisco+City+Hall+1+Dr+Carlton+B+Goodlett+Pl+San+Francisco+CA+94102\" target=\"_blank\" rel=\"noopener\" data-fr=\"Voir la carte\" data-en=\"View map\" data-zh=\"\u67e5\u770b\u5730\u5716\">View map<\/a>\n    <\/div>\n\n    <div class=\"event\">\n      <div class=\"icon\">\n        <svg viewBox=\"0 0 24 24\">\n          <circle cx=\"9\" cy=\"14\" r=\"4\"><\/circle>\n          <circle cx=\"15\" cy=\"14\" r=\"4\"><\/circle>\n          <path d=\"M12 7l1.5 2 2.5.3-1.8 1.7.5 2.5L12 12.2 9.3 13.5l.5-2.5L8 9.3 10.5 9z\"><\/path>\n        <\/svg>\n      <\/div>\n      <h3 data-fr=\"LA C\u00c9R\u00c9MONIE\" data-en=\"THE CEREMONY\" data-zh=\"\u5a5a\u79ae\u5100\u5f0f\">THE CEREMONY<\/h3>\n      <p class=\"lang-content lang-fr\">Vendredi 24 juillet 2026<br>14h00 \u2013 15h30<br>San Francisco City Hall<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <p class=\"lang-content lang-en\">Friday, July 24, 2026<br>2:00 PM \u2013 3:30 PM<br>San Francisco City Hall<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <p class=\"lang-content lang-zh\">2026 \u5e74 7 \u6708 24 \u65e5\uff0c\u661f\u671f\u4e94<br>\u4e0b\u5348 2:00 \u2013 \u4e0b\u5348 3:30<br>\u820a\u91d1\u5c71\u5e02\u653f\u5ef3<br>1 Dr Carlton B Goodlett Pl,<br>San Francisco, CA 94102<\/p>\n      <a href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=San+Francisco+City+Hall+1+Dr+Carlton+B+Goodlett+Pl+San+Francisco+CA+94102\" target=\"_blank\" rel=\"noopener\" data-fr=\"Voir la carte\" data-en=\"View map\" data-zh=\"\u67e5\u770b\u5730\u5716\">View map<\/a>\n    <\/div>\n\n    <div class=\"event\">\n      <div class=\"icon\">\n        <svg viewBox=\"0 0 24 24\">\n          <path d=\"M7 3v8\"><\/path>\n          <path d=\"M5 3v4\"><\/path>\n          <path d=\"M9 3v4\"><\/path>\n          <path d=\"M5 11h4\"><\/path>\n          <path d=\"M7 11v10\"><\/path>\n          <path d=\"M17 3c-1.8 2-2.5 4.5-2.2 7.5H18\"><\/path>\n          <path d=\"M18 3v18\"><\/path>\n        <\/svg>\n      <\/div>\n      <h3 data-fr=\"LE RESTAURANT\" data-en=\"THE RESTAURANT\" data-zh=\"\u9910\u5ef3\">THE RESTAURANT<\/h3>\n      <p class=\"lang-content lang-fr\">Vendredi 24 juillet 2026<br>18h00 \u2013 22h00<br>Stable Caf\u00e9<br>2128 Folsom St,<br>San Francisco, CA 94110<\/p>\n\n<p class=\"lang-content lang-en\">Friday, July 24, 2026<br>6:00 PM \u2013 10:00 PM<br>Stable Caf\u00e9<br>2128 Folsom St,<br>San Francisco, CA 94110<\/p>\n\n<p class=\"lang-content lang-zh\">2026 \u5e74 7 \u6708 24 \u65e5\uff0c\u661f\u671f\u4e94<br>\u4e0b\u5348 6:00 \u2013 \u665a\u4e0a 10:00<br>Stable Caf\u00e9<br>2128 Folsom St,<br>San Francisco, CA 94110<\/p>\n      <a href=\"https:\/\/www.google.com\/maps\/search\/?api=1&amp;query=Stable+Cafe+2128+Folsom+St+San+Francisco+CA+94110\" target=\"_blank\" rel=\"noopener\" data-fr=\"Voir la carte\" data-en=\"View map\" data-zh=\"\u67e5\u770b\u5730\u5716\">View map<\/a>\n    <\/div>\n\n    <div class=\"event future-event\">\n      <span class=\"future-badge\" data-fr=\"\u00c0 venir\" data-en=\"Coming later\" data-zh=\"\u5373\u5c07\u516c\u5e03\">\n        Coming later\n      <\/span>\n\n      <div class=\"icon\">\n        <svg viewBox=\"0 0 24 24\">\n          <path d=\"M12 21s-6.5-4.2-8.5-8.2C1.8 9.4 3.7 5.5 7.4 5.5c2 0 3.4 1.1 4.6 2.6 1.2-1.5 2.6-2.6 4.6-2.6 3.7 0 5.6 3.9 3.9 7.3C18.5 16.8 12 21 12 21z\"><\/path>\n          <path d=\"M8 4c1.4-1 2.8-1.5 4-1.5S14.6 3 16 4\"><\/path>\n        <\/svg>\n      <\/div>\n\n      <h3 data-fr=\"C\u00c9L\u00c9BRATION EN FRANCE\" data-en=\"FRANCE CELEBRATION\" data-zh=\"\u6cd5\u570b\u6176\u795d\">\n        FRANCE CELEBRATION\n      <\/h3>\n\n      <p class=\"lang-content lang-fr\">\n        Nous r\u00eavons de c\u00e9l\u00e9brer aussi notre mariage en France avec nos proches.<br>\n        Rien n\u2019est encore organis\u00e9 pour le moment.\n        <span class=\"future-note\">Ce chapitre viendra dans les prochaines ann\u00e9es.<\/span>\n      <\/p>\n\n      <p class=\"lang-content lang-en\">\n        We dream of celebrating our wedding in France as well with our loved ones.<br>\n        Nothing is organized yet.\n        <span class=\"future-note\">This chapter will come in the next few years.<\/span>\n      <\/p>\n\n      <p class=\"lang-content lang-zh\">\n        \u6211\u5011\u4e5f\u5e0c\u671b\u672a\u4f86\u80fd\u5728\u6cd5\u570b\u8207\u89aa\u53cb\u4e00\u8d77\u6176\u795d\u5a5a\u79ae\u3002<br>\n        \u76ee\u524d\u9084\u6c92\u6709\u4efb\u4f55\u5b89\u6392\u3002\n        <span class=\"future-note\">\u9019\u500b\u7bc7\u7ae0\u6703\u5728\u672a\u4f86\u5e7e\u5e74\u5230\u4f86\u3002<\/span>\n      <\/p>\n\n      <span class=\"future-disabled-link\" data-fr=\"D\u00e9tails \u00e0 venir\" data-en=\"Details coming later\" data-zh=\"\u8a73\u60c5\u7a0d\u5f8c\u516c\u5e03\">\n        Details coming later\n      <\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section id=\"cagnotte\" class=\"gift-section\">\n  <img decoding=\"async\" class=\"gift-title-img\" src=\"http:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/section-title-img-1.png\" alt=\"\">\n\n  <h2 class=\"section-title\">\n    <span data-fr=\"LISTE\" data-en=\"GIFT\" data-zh=\"\u79ae\u7269\">GIFT<\/span>\n    <span class=\"dot\">\u00b7<\/span>\n    <span>&amp;<\/span>\n    <span class=\"dot\">\u00b7<\/span>\n    <span data-fr=\"CAGNOTTE\" data-en=\"FUND\" data-zh=\"\u79ae\u91d1\">FUND<\/span>\n  <\/h2>\n\n  <div class=\"section-subtitle\" data-fr=\"Aidez-nous \u00e0 construire notre futur chez nous\" data-en=\"Help us build our future home\" data-zh=\"\u5e6b\u52a9\u6211\u5011\u5efa\u7acb\u672a\u4f86\u7684\u5bb6\">\n    Help us build our future home\n  <\/div>\n\n <div class=\"gift-controls\">\n  <button class=\"gift-filter active\" type=\"button\" data-category=\"all\">All<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"funds\">Funds<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"kitchen\">Kitchen<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"tableware\">Tableware<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"home\">Home<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"organization\">Storage<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"outdoor\">Outdoor<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"textile\">Textile<\/button>\n  <button class=\"gift-filter\" type=\"button\" data-category=\"tech\">Tech<\/button>\n\n  <div class=\"gift-category-dropdown\" id=\"giftCategoryDropdown\">\n  <button class=\"gift-category-toggle\" id=\"giftCategoryToggle\" type=\"button\">\n    All\n  <\/button>\n\n  <ul class=\"gift-category-menu\" id=\"giftCategoryMenu\">\n    <li><button type=\"button\" class=\"active\" data-category=\"all\">All<\/button><\/li>\n    <li><button type=\"button\" data-category=\"funds\">Funds<\/button><\/li>\n    <li><button type=\"button\" data-category=\"kitchen\">Kitchen<\/button><\/li>\n    <li><button type=\"button\" data-category=\"tableware\">Tableware<\/button><\/li>\n    <li><button type=\"button\" data-category=\"home\">Home<\/button><\/li>\n    <li><button type=\"button\" data-category=\"organization\">Storage<\/button><\/li>\n    <li><button type=\"button\" data-category=\"outdoor\">Outdoor<\/button><\/li>\n    <li><button type=\"button\" data-category=\"textile\">Textile<\/button><\/li>\n    <li><button type=\"button\" data-category=\"tech\">Tech<\/button><\/li>\n  <\/ul>\n<\/div>\n\n\n  <select id=\"giftSort\">\n    <option value=\"featured\">Featured<\/option>\n    <option value=\"price-asc\">Price \u2191<\/option>\n    <option value=\"price-desc\">Price \u2193<\/option>\n  <\/select>\n<\/div>\n\n\n  <div class=\"gift-grid\" id=\"giftGrid\"><\/div>\n\n  <div class=\"gift-actions\">\n    <button class=\"gift-load-more\" id=\"giftLoadMore\" type=\"button\">Voir plus produits<\/button>\n\n    <a id=\"giftMainCta\" href=\"https:\/\/www.amazon.com\/wedding\/guest-view\/2BXCF706S6IM4\" target=\"_blank\" rel=\"noopener\">\n      Voir toute notre liste sur Amazon\n    <\/a>\n  <\/div>\n<\/section>\n\n<div class=\"quick-menu\" id=\"quickMenu\">\n  <a href=\"#home\" data-fr=\"Accueil\" data-en=\"Home\" data-zh=\"\u9996\u9801\">Home<\/a>\n  <a href=\"#story\" data-fr=\"Histoire\" data-en=\"Story\" data-zh=\"\u6545\u4e8b\">Story<\/a>\n  <a href=\"#where\" data-fr=\"Lieu\" data-en=\"Where\" data-zh=\"\u5730\u9ede\">Where<\/a>\n  <a href=\"#cagnotte\" data-fr=\"Cagnotte\" data-en=\"Gifts\" data-zh=\"\u79ae\u7269\">Gifts<\/a>\n  <a href=\"#contact\" data-fr=\"Questions\" data-en=\"Questions\" data-zh=\"\u554f\u984c\">Questions<\/a>\n\n<div class=\"quick-language-flags\" id=\"quickLanguageFlags\">\n  <button type=\"button\" data-lang=\"fr\" aria-label=\"Fran\u00e7ais\">\ud83c\uddeb\ud83c\uddf7<\/button>\n  <button type=\"button\" data-lang=\"en\" aria-label=\"English\">\ud83c\uddfa\ud83c\uddf8<\/button>\n  <button type=\"button\" data-lang=\"zh\" aria-label=\"\u7e41\u9ad4\u4e2d\u6587\">\ud83c\uddf9\ud83c\uddfc<\/button>\n<\/div>\n\n\n  <button id=\"quickMenuToggle\" type=\"button\" aria-label=\"Open menu\">\n    <span><\/span>\n  <\/button>\n<\/div>\n\n\n<section id=\"contact\" class=\"contact-section\">\n  <img decoding=\"async\" class=\"contact-title-img\" src=\"http:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/section-title-img-1.png\" alt=\"\">\n\n  <h2 class=\"section-title\">\n    <span data-fr=\"UNE\" data-en=\"ANY\" data-zh=\"\u6709\">ANY<\/span>\n    <span class=\"dot\">\u00b7<\/span>\n    <span data-fr=\"QUESTION\" data-en=\"QUESTIONS\" data-zh=\"\u554f\u984c\u55ce\">QUESTIONS<\/span>\n  <\/h2>\n\n  <div class=\"section-subtitle\" data-fr=\"Nous serons heureux de vous r\u00e9pondre\" data-en=\"We\u2019ll be happy to answer you\" data-zh=\"\u6211\u5011\u5f88\u6a02\u610f\u56de\u8986\u60a8\">\n    We\u2019ll be happy to answer you\n  <\/div>\n\n  <div class=\"contact-wrap\">\n    <div class=\"contact-polaroid left\">\n      <img decoding=\"async\" src=\"http:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/Cate-picture.png\" alt=\"Cate\">\n      <span>Cate&#8230;<\/span>\n    <\/div>\n\n    <div class=\"contact-card\">\n      <h3 data-fr=\"\u00c9CRIVEZ-NOUS\" data-en=\"WRITE TO US\" data-zh=\"\u5beb\u4fe1\u7d66\u6211\u5011\">WRITE TO US<\/h3>\n\n      <p data-fr=\"Si vous avez une question sur le mariage, les horaires, les lieux ou la cagnotte, envoyez-nous un petit message.\" data-en=\"If you have a question about the wedding, schedule, locations, or gift fund, send us a little message.\" data-zh=\"\u5982\u679c\u60a8\u5c0d\u5a5a\u79ae\u3001\u6642\u9593\u3001\u5730\u9ede\u6216\u79ae\u91d1\u6709\u4efb\u4f55\u554f\u984c\uff0c\u8acb\u7d66\u6211\u5011\u7559\u8a00\u3002\">\n        If you have a question about the wedding, schedule, locations, or gift fund, send us a little message.\n      <\/p>\n\n      <form class=\"contact-form\" id=\"contactForm\">\n        <input id=\"contactName\" type=\"text\" required=\"\">\n        <input id=\"contactEmail\" type=\"email\" required=\"\">\n        <textarea id=\"contactMessage\" required=\"\"><\/textarea>\n        <button class=\"contact-submit\" id=\"contactSubmit\" type=\"submit\"><\/button>\n      <\/form>\n\n      <p class=\"contact-note\" data-fr=\"Votre message ouvrira votre application e-mail.\" data-en=\"Your message will open your email app.\" data-zh=\"\u60a8\u7684\u8a0a\u606f\u6703\u958b\u555f\u96fb\u5b50\u90f5\u4ef6\u61c9\u7528\u7a0b\u5f0f\u3002\">\n        Your message will open your email app.\n      <\/p>\n    <\/div>\n\n    <div class=\"contact-polaroid right\">\n      <img decoding=\"async\" src=\"http:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/d2b6a987-32c6-43f7-bfb9-ac92ae6ba1cb.jpg\" alt=\"Maxime\">\n      <span>Maxime&#8230;<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n<script>\nconst weddingDate = new Date(\"2026-07-24T00:00:00\").getTime();\n\nlet currentLanguage = \"en\";\nlet currentCategory = \"all\";\nlet visibleGiftCount = 9;\nlet gifts = [];\n\nconst giftStep = 9;\nconst amazonRegistryLink = \"https:\/\/www.amazon.com\/wedding\/guest-view\/2BXCF706S6IM4\";\n\n\/* Remplace cette URL par ton URL Google Apps Script JSON *\/\nconst googleSheetProductsUrl = \"https:\/\/script.google.com\/macros\/s\/AKfycbxI4-GO-mJ5U2oDlmoIbLEkbWLgD1w1ZTn36NEKPyQu6YISB1y58JpysrGK0gBbr00f\/exec\";\n\nconst weddingFundLinks = {\n  lydiaFr:\"https:\/\/pay.lydia.me\/l?t=maximeh2982\",\n  paypalFr:\"https:\/\/paypal.me\/maximehabault\",\n  paypalInternational:\"TON_LIEN_PAYPAL_USA_TAIWAN\",\n  zelle:\"+19252553610\",\n  venmo:\"https:\/\/venmo.com\/CateMcGloin\"\n};\n\nconst giftTexts = {\n  fr:{\n    categories:{all:\"Tout\",funds:\"Fonds\",kitchen:\"Cuisine\",tableware:\"Vaisselle\",home:\"Maison\",organization:\"Rangement\",outdoor:\"Ext\u00e9rieur\",textile:\"Textile\",tech:\"Tech\"},\n    sort:{featured:\"S\u00e9lection\",\"price-asc\":\"Prix \u2191\",\"price-desc\":\"Prix \u2193\"},\n    participate:\"Voir sur Amazon\",\n    contribute:\"Participer\",\n    mainCta:\"Voir toute notre liste sur Amazon\",\n    unavailable:\"Prix indisponible\",\n    loadMore:\"Voir plus produits\",\n    purchased:\"D\u00e9j\u00e0 offert\"\n  },\n  en:{\n    categories:{all:\"All\",funds:\"Funds\",kitchen:\"Kitchen\",tableware:\"Tableware\",home:\"Home\",organization:\"Storage\",outdoor:\"Outdoor\",textile:\"Textile\",tech:\"Tech\"},\n    sort:{featured:\"Featured\",\"price-asc\":\"Price \u2191\",\"price-desc\":\"Price \u2193\"},\n    participate:\"View on Amazon\",\n    contribute:\"Contribute\",\n    mainCta:\"View our full Amazon registry\",\n    unavailable:\"Price unavailable\",\n    loadMore:\"View more products\",\n    purchased:\"Already gifted\"\n  },\n  zh:{\n    categories:{all:\"\u5168\u90e8\",funds:\"\u79ae\u91d1\",kitchen:\"\u5eda\u623f\",tableware:\"\u9910\u5177\",home:\"\u5bb6\u5c45\",organization:\"\u6536\u7d0d\",outdoor:\"\u6236\u5916\",textile:\"\u7e54\u54c1\",tech:\"\u79d1\u6280\"},\n    sort:{featured:\"\u7cbe\u9078\",\"price-asc\":\"\u50f9\u683c \u2191\",\"price-desc\":\"\u50f9\u683c \u2193\"},\n    participate:\"\u5728 Amazon \u67e5\u770b\",\n    contribute:\"\u53c3\u8207\",\n    mainCta:\"\u67e5\u770b\u5b8c\u6574 Amazon \u79ae\u7269\u6e05\u55ae\",\n    unavailable:\"\u50f9\u683c\u66ab\u4e0d\u53ef\u7528\",\n    loadMore:\"\u67e5\u770b\u66f4\u591a\u5546\u54c1\",\n    purchased:\"\u5df2\u9001\u51fa\"\n  }\n};\n\nconst fundPaymentOptions = {\n  fr:[\n    {label:\"Contribuer sans frais\", name:\"Lydia\", url:weddingFundLinks.lydiaFr, brand:\"lydia\", type:\"link\"},\n    {label:\"Paiement simple\", name:\"PayPal\", url:weddingFundLinks.paypalFr, brand:\"paypal\", type:\"link\"}\n  ],\n  en:[\n    {label:\"Free & instant\", name:\"Zelle\", url:weddingFundLinks.zelle, brand:\"zelle\", type:\"copy\"},\n    {label:\"Fast and simple\", name:\"Venmo\", url:weddingFundLinks.venmo, brand:\"venmo\", type:\"link\"}\n  ],\n  zh:[\n    {label:\"Pay with card\", name:\"PayPal\", url:weddingFundLinks.paypalInternational, brand:\"paypal\", type:\"link\"}\n  ]\n};\n\nconst contactTexts = {\n  fr:{name:\"Votre nom\",email:\"Votre e-mail\",message:\"Votre message\",submit:\"Envoyer\",subject:\"Question mariage - Cate & Maxime\"},\n  en:{name:\"Your name\",email:\"Your email\",message:\"Your message\",submit:\"Send\",subject:\"Wedding question - Cate & Maxime\"},\n  zh:{name:\"\u60a8\u7684\u59d3\u540d\",email:\"\u60a8\u7684\u96fb\u5b50\u90f5\u4ef6\",message:\"\u60a8\u7684\u8a0a\u606f\",submit:\"\u9001\u51fa\",subject:\"\u5a5a\u79ae\u554f\u984c - Cate & Maxime\"}\n};\n\nconst currencyByLanguage = {\n  fr:{locale:\"fr-FR\",currency:\"EUR\",rate:0.92},\n  en:{locale:\"en-US\",currency:\"USD\",rate:1},\n  zh:{locale:\"zh-TW\",currency:\"TWD\",rate:32.5}\n};\n\nconst defaultWeddingFund = {\n  title:\"Wedding Fund\",\n  titleFr:\"Cagnotte de mariage\",\n  titleZh:\"\u5a5a\u79ae\u57fa\u91d1\",\n  desc:\"Free & instant with Zelle, or fast and simple with Venmo.\",\n  descFr:\"Contribuez sans frais avec Lydia, ou utilisez PayPal pour un paiement simple par carte.\",\n  descZh:\"\u53ef\u4f7f\u7528 PayPal \u900f\u904e\u4fe1\u7528\u5361\u6216\u570b\u969b\u4ed8\u6b3e\u53c3\u8207\u6211\u5011\u7684\u5a5a\u79ae\u57fa\u91d1\u3002\",\n  category:\"funds\",\n  priceAmount:0,\n  image:\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/celebration-fund.jpg\",\n  isFund:true,\n  purchased:false,\n  active:true,\n  link:weddingFundLinks.paypalFr,\n  sortOrder:0\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", function(){\n  setupLanguagePopup();\n  setupObservers();\n  setupGiftControls();\n  setupQuickMenu();\n  setupContactForm();\n  setupMobileHeroHeight();\n\n  updateCountdown();\n  setInterval(updateCountdown,1000);\n\n  loadGiftsFromSheet();\n});\n\nfunction setupLanguagePopup(){\n  const popup = document.getElementById(\"languagePopup\");\n\n  if(popup && popup.parentElement !== document.body){\n    document.body.appendChild(popup);\n  }\n\n  const savedLang = localStorage.getItem(\"weddingLanguage\") || \"en\";\n  applyLanguage(savedLang);\n\n  if(localStorage.getItem(\"weddingLanguage\")){\n    hideLanguagePopup();\n  }else{\n    document.body.classList.add(\"language-locked\");\n    if(popup){\n      popup.style.display = \"flex\";\n      popup.style.opacity = \"1\";\n      popup.style.pointerEvents = \"auto\";\n    }\n  }\n}\n\nfunction setupObservers(){\n  observeSection(\"story\",\"story-visible\",0.25);\n  observeSection(\"where\",\"when-visible\",0.25);\n  observeSection(\"contact\",\"contact-visible\",0.2);\n\n  const giftSection = document.getElementById(\"cagnotte\");\n\n  if(giftSection){\n    giftSection.classList.add(\"gift-visible\");\n    giftSection.style.opacity = \"1\";\n    giftSection.style.visibility = \"visible\";\n    giftSection.style.transform = \"none\";\n  }\n}\n\nfunction setupGiftControls(){\n  const giftCategorySelect = document.getElementById(\"giftCategorySelect\");\n  const giftCategoryDropdown = document.getElementById(\"giftCategoryDropdown\");\n  const giftCategoryToggle = document.getElementById(\"giftCategoryToggle\");\n  const giftCategoryMenu = document.getElementById(\"giftCategoryMenu\");\n\n  if(giftCategorySelect){\n    giftCategorySelect.value = currentCategory;\n  }\n\n  document.querySelectorAll(\".gift-filter\").forEach(function(btn){\n    btn.addEventListener(\"click\", function(){\n      currentCategory = btn.dataset.category;\n      visibleGiftCount = giftStep;\n      syncGiftCategoryControls();\n      renderGiftsSmooth();\n    });\n  });\n\n  if(giftCategorySelect){\n    giftCategorySelect.addEventListener(\"change\", function(){\n      currentCategory = giftCategorySelect.value;\n      visibleGiftCount = giftStep;\n      syncGiftCategoryControls();\n      renderGiftsSmooth();\n    });\n  }\n\n  if(giftCategoryDropdown && giftCategoryToggle && giftCategoryMenu){\n    giftCategoryToggle.addEventListener(\"click\", function(){\n      giftCategoryDropdown.classList.toggle(\"open\");\n    });\n\n    giftCategoryMenu.querySelectorAll(\"button\").forEach(function(btn){\n      btn.addEventListener(\"click\", function(){\n        currentCategory = btn.dataset.category;\n        visibleGiftCount = giftStep;\n        giftCategoryDropdown.classList.remove(\"open\");\n        syncGiftCategoryControls();\n        renderGiftsSmooth();\n      });\n    });\n\n    document.addEventListener(\"click\", function(e){\n      if(!giftCategoryDropdown.contains(e.target)){\n        giftCategoryDropdown.classList.remove(\"open\");\n      }\n    });\n  }\n\n  const giftSort = document.getElementById(\"giftSort\");\n\n  if(giftSort){\n    giftSort.addEventListener(\"change\", function(){\n      visibleGiftCount = giftStep;\n      renderGiftsSmooth();\n    });\n  }\n\n  const giftLoadMore = document.getElementById(\"giftLoadMore\");\n\n  if(giftLoadMore){\n    giftLoadMore.addEventListener(\"click\", function(){\n      visibleGiftCount += giftStep;\n      renderGiftsSmooth();\n    });\n  }\n\n  setInterval(function(){\n    document.querySelectorAll(\".gift-fund-pay-button\").forEach(function(btn){\n      btn.classList.toggle(\"show-name\");\n    });\n  }, 4000);\n}\n\nfunction setupQuickMenu(){\n  const quickMenu = document.getElementById(\"quickMenu\");\n  const quickMenuToggle = document.getElementById(\"quickMenuToggle\");\n\n  if(quickMenu && quickMenuToggle){\n    quickMenuToggle.addEventListener(\"click\", function(){\n      quickMenu.classList.toggle(\"open\");\n    });\n\n    quickMenu.querySelectorAll(\"a\").forEach(function(link){\n      link.addEventListener(\"click\", function(){\n        quickMenu.classList.remove(\"open\");\n      });\n    });\n  }\n\n  document.querySelectorAll(\"#quickLanguageFlags button\").forEach(function(btn){\n    btn.addEventListener(\"click\", function(){\n      setLanguage(btn.dataset.lang);\n\n      const menu = document.getElementById(\"quickMenu\");\n      if(menu){\n        menu.classList.remove(\"open\");\n      }\n    });\n  });\n\n  updateQuickLanguageFlags();\n}\n\nfunction setupContactForm(){\n  const contactForm = document.getElementById(\"contactForm\");\n\n  if(!contactForm){\n    return;\n  }\n\n  contactForm.addEventListener(\"submit\", function(e){\n    e.preventDefault();\n\n    const texts = contactTexts[currentLanguage] || contactTexts.en;\n    const name = document.getElementById(\"contactName\").value;\n    const email = document.getElementById(\"contactEmail\").value;\n    const message = document.getElementById(\"contactMessage\").value;\n\n    const recipients = \"habaultmaxime0@gmail.com,catemcgloin@gmail.com\";\n    const subject = encodeURIComponent(texts.subject);\n    const body = encodeURIComponent(\n      message + \"\\n\\n\" +\n      \"Nom \/ Name : \" + name + \"\\n\" +\n      \"E-mail : \" + email\n    );\n\n    const gmailUrl =\n      \"https:\/\/mail.google.com\/mail\/?view=cm&fs=1\" +\n      \"&to=\" + encodeURIComponent(recipients) +\n      \"&su=\" + subject +\n      \"&body=\" + body;\n\n    window.open(gmailUrl, \"_blank\");\n  });\n}\n\nasync function loadGiftsFromSheet(){\n  gifts = [defaultWeddingFund];\n\n  if(!googleSheetProductsUrl){\n    renderGifts();\n    return;\n  }\n\n  try{\n    const response = await fetch(googleSheetProductsUrl + \"?t=\" + Date.now(), {\n      method: \"GET\",\n      cache: \"no-store\"\n    });\n\n    if(!response.ok){\n      throw new Error(\"HTTP error \" + response.status);\n    }\n\n    const rows = await response.json();\n\n    if(!Array.isArray(rows)){\n      throw new Error(\"La r\u00e9ponse Google Sheet n'est pas une liste de produits\");\n    }\n\n    const sheetGifts = rows\n      .map(normalizeSheetGift)\n      .filter(function(gift){\n        return gift.active !== false;\n      });\n\n    gifts = [defaultWeddingFund].concat(sheetGifts);\n    renderGifts();\n  }catch(error){\n    console.error(\"Google Sheet products could not be loaded:\", error);\n    renderGifts();\n  }\n}\n\n\nfunction normalizeSheetGift(row){\n  return {\n    title:cleanText(row.title),\n    titleFr:cleanText(row.titleFr),\n    titleZh:cleanText(row.titleZh),\n    desc:cleanText(row.desc),\n    descFr:cleanText(row.descFr),\n    descZh:cleanText(row.descZh),\n    category:cleanText(row.category) || \"home\",\n    priceAmount:toNumber(row.priceAmount),\n    image:cleanText(row.image),\n    link:cleanText(row.link) || amazonRegistryLink,\n    isFund:toBoolean(row.isFund),\n    purchased:toBoolean(row.purchased),\n    active:row.active === undefined ? true : toBoolean(row.active),\n    sortOrder:toNumber(row.sortOrder)\n  };\n}\n\nfunction cleanText(value){\n  return value === undefined || value === null ? \"\" : String(value).trim();\n}\n\nfunction toNumber(value){\n  const number = Number(String(value || \"\").replace(\",\", \".\"));\n  return Number.isFinite(number) ? number : 0;\n}\n\nfunction toBoolean(value){\n  const text = String(value || \"\").trim().toLowerCase();\n  return text === \"true\" || text === \"yes\" || text === \"oui\" || text === \"1\" || text === \"x\";\n}\n\nfunction observeSection(id, visibleClass, threshold){\n  const section = document.getElementById(id);\n\n  if(!section){\n    return;\n  }\n\n  if(!(\"IntersectionObserver\" in window)){\n    section.classList.add(visibleClass);\n    return;\n  }\n\n  const observer = new IntersectionObserver(function(entries){\n    entries.forEach(function(entry){\n      if(entry.isIntersecting){\n        section.classList.add(visibleClass);\n      }\n    });\n  }, {threshold:threshold});\n\n  observer.observe(section);\n}\n\nfunction applyLanguage(lang){\n  currentLanguage = lang;\n\n  document.querySelectorAll(\"[data-fr][data-en][data-zh]\").forEach(function(el){\n    const value = el.getAttribute(\"data-\" + lang);\n    if(value !== null){\n      el.innerHTML = value;\n    }\n  });\n\n  document.querySelectorAll(\".lang-content\").forEach(function(el){\n    el.classList.remove(\"active\");\n  });\n\n  document.querySelectorAll(\".lang-\" + lang).forEach(function(el){\n    el.classList.add(\"active\");\n  });\n\n  updateGiftLanguage();\n  updateContactLanguage();\n  updateQuickLanguageFlags();\n  renderGifts();\n}\n\nfunction updateGiftLanguage(){\n  const texts = giftTexts[currentLanguage] || giftTexts.en;\n\n  document.querySelectorAll(\".gift-filter\").forEach(function(btn){\n    const category = btn.dataset.category;\n    if(texts.categories[category]){\n      btn.textContent = texts.categories[category];\n    }\n  });\n\n  const categorySelect = document.getElementById(\"giftCategorySelect\");\n\n  if(categorySelect){\n    Array.from(categorySelect.options).forEach(function(option){\n      if(texts.categories[option.value]){\n        option.textContent = texts.categories[option.value];\n      }\n    });\n  }\n\n  const categoryMenu = document.getElementById(\"giftCategoryMenu\");\n\n  if(categoryMenu){\n    categoryMenu.querySelectorAll(\"button\").forEach(function(btn){\n      const category = btn.dataset.category;\n      if(texts.categories[category]){\n        btn.textContent = texts.categories[category];\n      }\n    });\n  }\n\n  const sort = document.getElementById(\"giftSort\");\n\n  if(sort){\n    Array.from(sort.options).forEach(function(option){\n      option.textContent = texts.sort[option.value];\n    });\n  }\n\n  const mainCta = document.getElementById(\"giftMainCta\");\n\n  if(mainCta){\n    mainCta.textContent = texts.mainCta;\n  }\n\n  const loadMore = document.getElementById(\"giftLoadMore\");\n\n  if(loadMore){\n    loadMore.textContent = texts.loadMore;\n  }\n\n  syncGiftCategoryControls();\n}\n\nfunction syncGiftCategoryControls(){\n  const texts = giftTexts[currentLanguage] || giftTexts.en;\n  const categorySelect = document.getElementById(\"giftCategorySelect\");\n  const categoryToggle = document.getElementById(\"giftCategoryToggle\");\n  const categoryMenu = document.getElementById(\"giftCategoryMenu\");\n\n  document.querySelectorAll(\".gift-filter\").forEach(function(btn){\n    btn.classList.toggle(\"active\", btn.dataset.category === currentCategory);\n  });\n\n  if(categorySelect){\n    categorySelect.value = currentCategory;\n  }\n\n  if(categoryMenu){\n    categoryMenu.querySelectorAll(\"button\").forEach(function(btn){\n      btn.classList.toggle(\"active\", btn.dataset.category === currentCategory);\n    });\n  }\n\n  if(categoryToggle && texts.categories[currentCategory]){\n    categoryToggle.textContent = texts.categories[currentCategory];\n  }\n}\n\nfunction updateContactLanguage(){\n  const texts = contactTexts[currentLanguage] || contactTexts.en;\n\n  const name = document.getElementById(\"contactName\");\n  const email = document.getElementById(\"contactEmail\");\n  const message = document.getElementById(\"contactMessage\");\n  const submit = document.getElementById(\"contactSubmit\");\n\n  if(name){name.placeholder = texts.name}\n  if(email){email.placeholder = texts.email}\n  if(message){message.placeholder = texts.message}\n  if(submit){submit.textContent = texts.submit}\n}\n\nfunction updateQuickLanguageFlags(){\n  const quickFlags = document.getElementById(\"quickLanguageFlags\");\n\n  if(!quickFlags){\n    return;\n  }\n\n  quickFlags.querySelectorAll(\"button\").forEach(function(btn){\n    btn.classList.toggle(\"is-hidden\", btn.dataset.lang === currentLanguage);\n  });\n}\n\nfunction hideLanguagePopup(){\n  const popup = document.getElementById(\"languagePopup\");\n\n  if(popup){\n    popup.style.opacity = \"0\";\n    popup.style.pointerEvents = \"none\";\n\n    setTimeout(function(){\n      popup.style.display = \"none\";\n    }, 300);\n  }\n\n  document.body.classList.remove(\"language-locked\");\n}\n\nfunction setLanguage(lang){\n  localStorage.setItem(\"weddingLanguage\", lang);\n  visibleGiftCount = giftStep;\n  applyLanguage(lang);\n  hideLanguagePopup();\n}\n\nfunction updateCountdown(){\n  const now = new Date().getTime();\n  const diff = weddingDate - now;\n\n  const monthsEl = document.getElementById(\"months\");\n  const daysEl = document.getElementById(\"days\");\n  const hoursEl = document.getElementById(\"hours\");\n  const minutesEl = document.getElementById(\"minutes\");\n  const secondsEl = document.getElementById(\"seconds\");\n\n  if(!monthsEl || !daysEl || !hoursEl || !minutesEl || !secondsEl){\n    return;\n  }\n\n  if(diff <= 0){\n    monthsEl.textContent = \"00\";\n    daysEl.textContent = \"00\";\n    hoursEl.textContent = \"00\";\n    minutesEl.textContent = \"00\";\n    secondsEl.textContent = \"00\";\n    return;\n  }\n\n  const seconds = Math.floor(diff \/ 1000);\n  const months = Math.floor(seconds \/ (30 * 24 * 60 * 60));\n  const days = Math.floor((seconds % (30 * 24 * 60 * 60)) \/ (24 * 60 * 60));\n  const hours = Math.floor((seconds % (24 * 60 * 60)) \/ (60 * 60));\n  const minutes = Math.floor((seconds % (60 * 60)) \/ 60);\n  const secs = seconds % 60;\n\n  monthsEl.textContent = String(months).padStart(2,\"0\");\n  daysEl.textContent = String(days).padStart(2,\"0\");\n  hoursEl.textContent = String(hours).padStart(2,\"0\");\n  minutesEl.textContent = String(minutes).padStart(2,\"0\");\n  secondsEl.textContent = String(secs).padStart(2,\"0\");\n}\n\nfunction renderGiftsSmooth(){\n  const grid = document.getElementById(\"giftGrid\");\n\n  if(!grid){\n    return;\n  }\n\n  grid.classList.add(\"is-changing\");\n\n  setTimeout(function(){\n    renderGifts();\n    grid.classList.remove(\"is-changing\");\n  }, 260);\n}\n\nfunction formatGiftPrice(gift){\n  const texts = giftTexts[currentLanguage] || giftTexts.en;\n\n  if(gift.isFund){\n    return \"\";\n  }\n\n  if(!gift.priceAmount || gift.priceAmount <= 0){\n    return texts.unavailable;\n  }\n\n  const currency = currencyByLanguage[currentLanguage] || currencyByLanguage.en;\n  const convertedPrice = gift.priceAmount * currency.rate;\n\n  return new Intl.NumberFormat(currency.locale, {\n    style:\"currency\",\n    currency:currency.currency,\n    maximumFractionDigits:0\n  }).format(convertedPrice);\n}\n\nfunction getGiftText(gift, field){\n  if(currentLanguage === \"fr\"){\n    return gift[field + \"Fr\"] || gift[field];\n  }\n\n  if(currentLanguage === \"zh\"){\n    return gift[field + \"Zh\"] || gift[field];\n  }\n\n  return gift[field];\n}\n\nfunction copyGiftInfo(value, message){\n  navigator.clipboard.writeText(value).then(function(){\n    alert(message + \": \" + value);\n  }).catch(function(){\n    alert(value);\n  });\n}\n\nfunction getFundButtons(){\n  const options = fundPaymentOptions[currentLanguage] || fundPaymentOptions.en;\n\n  const logos = {\n    lydia:\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/lydia-logo.webp\",\n    paypal:\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/Paypal_2014_logo.png\",\n    zelle:\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/zelle-logo-1-scaled.png\",\n    venmo:\"https:\/\/cateandmaxime.com\/wp-content\/uploads\/2026\/05\/venmo_logo_icon_169267.webp\"\n  };\n\n  return options.map(function(option){\n    const content = `\n      <img decoding=\"async\" src=\"${logos[option.brand]}\" alt=\"${option.name}\">\n      <span>${option.label}<\/span>\n      <strong>${option.name}<\/strong>\n    `;\n\n    if(option.type === \"copy\"){\n      return `\n        <button class=\"gift-fund-pay-button is-${option.brand}\" type=\"button\" onclick=\"copyGiftInfo('${option.url}', 'Zelle number copied')\">\n          ${content}\n        <\/button>\n      `;\n    }\n\n    return `\n      <a class=\"gift-fund-pay-button is-${option.brand}\" href=\"${option.url}\" target=\"_blank\" rel=\"noopener\">\n        ${content}\n      <\/a>\n    `;\n  }).join(\"\");\n}\n\nfunction renderGifts(){\n  const grid = document.getElementById(\"giftGrid\");\n  const sort = document.getElementById(\"giftSort\");\n  const texts = giftTexts[currentLanguage] || giftTexts.en;\n\n  if(!grid || !sort){\n    return;\n  }\n\n  let items = gifts.filter(function(g){\n    return currentCategory === \"all\" || g.category === currentCategory;\n  });\n\n  if(sort.value === \"price-asc\"){\n    items.sort(function(a,b){\n      return Number(a.priceAmount || 0) - Number(b.priceAmount || 0);\n    });\n  }\n\n  if(sort.value === \"price-desc\"){\n    items.sort(function(a,b){\n      return Number(b.priceAmount || 0) - Number(a.priceAmount || 0);\n    });\n  }\n\n  items.sort(function(a,b){\n    return Number(a.sortOrder || 0) - Number(b.sortOrder || 0);\n  });\n\n  const totalItems = items.length;\n  const visibleItems = currentCategory === \"all\" ? items.slice(0, visibleGiftCount) : items;\n\n  grid.innerHTML = visibleItems.map(function(g){\n    const buttonLabel = g.category === \"funds\" ? texts.contribute : texts.participate;\n    const price = formatGiftPrice(g);\n    const title = getGiftText(g, \"title\");\n    const desc = getGiftText(g, \"desc\");\n    const buttonHtml = g.isFund ? getFundButtons() : `<a class=\"gift-button\" href=\"${g.link}\" target=\"_blank\" rel=\"noopener\">${buttonLabel}<\/a>`;\n\n    return `\n      <div class=\"gift-card ${g.isFund ? \"gift-card-fund\" : \"\"} ${g.purchased ? \"is-purchased\" : \"\"}\">\n        ${g.purchased && !g.isFund ? `<div class=\"gift-purchased-badge\">${texts.purchased}<\/div>` : \"\"}\n\n        <div class=\"gift-image\">\n          ${\n            g.isFund || g.purchased\n              ? `<img decoding=\"async\" src=\"${g.image}\" alt=\"${title}\">`\n              : `<a class=\"gift-image-link\" href=\"${g.link}\" target=\"_blank\" rel=\"noopener\">\n                   <img decoding=\"async\" src=\"${g.image}\" alt=\"${title}\">\n                 <\/a>`\n          }\n        <\/div>\n\n        <div class=\"gift-body\">\n          <span class=\"gift-tag\">${texts.categories[g.category]}<\/span>\n\n          ${\n            g.isFund || g.purchased\n              ? `<h3>${title}<\/h3>`\n              : `<h3><a class=\"gift-title-link\" href=\"${g.link}\" target=\"_blank\" rel=\"noopener\">${title}<\/a><\/h3>`\n          }\n\n          <p>${desc}<\/p>\n\n          <div class=\"gift-bottom\">\n            ${price ? `<div class=\"gift-price\">${price}<\/div>` : \"\"}\n            <div class=\"gift-buttons-wrap\">\n              ${\n                g.purchased && !g.isFund\n                  ? `<span class=\"gift-button gift-button-disabled\">${texts.purchased}<\/span>`\n                  : buttonHtml\n              }\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    `;\n  }).join(\"\");\n\n  const loadMore = document.getElementById(\"giftLoadMore\");\n\n  if(loadMore){\n    loadMore.textContent = texts.loadMore;\n    loadMore.classList.toggle(\"is-visible\", currentCategory === \"all\" && visibleGiftCount < totalItems);\n  }\n\n  const giftSection = document.getElementById(\"cagnotte\");\n\n  if(giftSection){\n    giftSection.classList.add(\"gift-visible\");\n  }\n}\n\nfunction setupMobileHeroHeight(){\n  setMobileHeroHeight();\n\n  window.addEventListener(\"resize\", function(){\n    setMobileHeroHeight();\n  });\n}\n\nfunction setMobileHeroHeight(){\n  const hero = document.querySelector(\".hero\");\n\n  if(!hero){\n    return;\n  }\n\n  if(window.innerWidth <= 620){\n    const height = window.innerHeight;\n    document.documentElement.style.setProperty(\"--mobile-hero-height\", height + \"px\");\n  }else{\n    document.documentElement.style.removeProperty(\"--mobile-hero-height\");\n  }\n}\n<\/script>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bienvenue Hello \u6b61\u8fce Choisissez votre langue Choose your language \u8acb\u9078\u64c7\u60a8\u7684\u8a9e\u8a00 \ud83c\uddeb\ud83c\uddf7 \ud83c\uddfa\ud83c\uddf8 \ud83c\uddf9\ud83c\uddfc Cate &amp; Maxime HOME STORY WHEN AND WHERE GIFT FUND QUESTIONS \ud83c\uddeb\ud83c\uddf7 \ud83c\uddfa\ud83c\uddf8 \ud83c\uddf9\ud83c\uddfc Cate &amp; Maxime WE ARE GETTING MARRIED JULY 24, 2026 00MONTHS 00DAYS 00HOURS 00MINUTES 00SECONDS BRIDE \u00b7 &amp; \u00b7 GROOM Cate I followed my heart all the way [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":135,"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":216,"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/pages\/2\/revisions\/216"}],"wp:attachment":[{"href":"https:\/\/cateandmaxime.com\/index.php\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}