@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--navy:#102f48;--ink:#142b3c;--blue:#225c7a;--blue2:#e5f0f5;--cream:#f7f5ef;--paper:#fff;--muted:#6b7c87;--line:#dce4e7;--green:#2d9074;--amber:#c78335;--rose:#b96569;--shadow:0 16px 42px rgba(15,45,65,.1)}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 'DM Sans',Arial,sans-serif}a{color:inherit}.site-header{height:82px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid #ecf0f0;position:relative;z-index:5}.brand{display:flex;gap:12px;align-items:center;color:var(--navy);text-decoration:none;font-weight:700;line-height:1.12;letter-spacing:.01em}.brand small{font-size:11px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:#718693}.brand-mark{width:42px;height:42px;border-radius:50%;background:var(--navy);color:white;display:grid;place-items:center;font:700 24px 'Playfair Display',serif}.main-nav{display:flex;gap:34px;align-items:center}.main-nav a{text-decoration:none;color:#526773;font-size:14px;font-weight:600;padding:9px 0;border-bottom:2px solid transparent}.main-nav a.active,.main-nav a:hover{color:var(--navy);border-color:#d89a54}.menu-toggle{display:none}.hero{min-height:520px;background:linear-gradient(105deg,rgba(12,43,65,.97) 0%,rgba(19,61,85,.91) 51%,rgba(19,61,85,.66) 100%),url('../images/cousinade-illustration.png') center 43%/cover;position:relative;color:white;padding:76px max(8vw,28px);overflow:hidden}.hero-copy{max-width:690px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:700;color:#cba577;margin:0 0 17px}.eyebrow-dark{color:#9a6e3d}.hero h1,.page-hero h1{font:600 clamp(46px,6vw,76px)/1.02 'Playfair Display',Georgia,serif;letter-spacing:-.03em;margin:0}.hero h1 em,.page-hero h1 em{color:#e4b879;font-weight:600}.hero-intro{font-size:18px;color:#e2e9ec;max-width:450px;margin:24px 0 30px}.hero-actions{display:flex;align-items:center;gap:24px}.button{border:0;border-radius:4px;padding:14px 20px;text-decoration:none;font:700 14px 'DM Sans',sans-serif;display:inline-flex;align-items:center;justify-content:center;gap:24px;cursor:pointer;transition:transform .15s,background .15s}.button:hover{transform:translateY(-2px)}.button-light{background:#f4ead8;color:var(--navy)}.button-dark{background:var(--navy);color:white;margin-top:24px}.button-dark:hover{background:#1b4b68}.text-link{color:#f4dfbe;text-decoration:none;font-weight:600;font-size:14px}.city-line{margin-top:43px;font-size:11px;letter-spacing:.07em;color:#d4e0e4;max-width:750px}.hero-stamp{position:absolute;right:12%;top:32%;height:146px;width:146px;border:1px solid rgba(244,223,190,.7);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#f5ddb9;transform:rotate(8deg)}.hero-stamp span{font:600 52px/.9 'Playfair Display',serif}.hero-stamp small{text-align:center;text-transform:uppercase;letter-spacing:.15em;font-size:10px;line-height:1.4;margin-top:8px}.intro-section,.steps-section,.travel-section{max-width:1180px;margin:auto;padding:88px 28px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:42px;margin-bottom:34px}.section-heading h2,.steps-section h2,.poll-top h2{font:600 clamp(30px,4vw,43px)/1.1 'Playfair Display',serif;margin:0;color:var(--navy)}.section-heading>p{max-width:420px;color:var(--muted);margin:0 0 4px}.photo-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.photo-grid figure{margin:0;position:relative;overflow:hidden;background:#edf1f1;box-shadow:var(--shadow)}.photo-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}.photo-grid figure:hover img{transform:scale(1.025)}.photo-main{height:410px}.photo-chart{height:410px}.photo-chart img{object-fit:cover;object-position:center}.photo-grid figcaption{position:absolute;bottom:0;left:0;right:0;padding:42px 22px 18px;background:linear-gradient(transparent,rgba(7,29,43,.83));color:white;display:flex;flex-direction:column}.photo-grid figcaption span{font:600 23px 'Playfair Display',serif}.photo-grid figcaption small{font-size:12px;color:#d6e0e2}.steps-section{padding-top:24px;padding-bottom:100px}.steps-section h2{margin-bottom:32px}.step-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.step-card{padding:30px;background:var(--cream);border:1px solid #ece9e0;text-decoration:none;transition:.2s}.step-card:hover{background:#f1eee5;transform:translateY(-3px)}.step-number{color:#b1824f;font-size:12px;letter-spacing:.14em;font-weight:700}.step-card h3{font:600 25px 'Playfair Display',serif;margin:12px 0 7px;color:var(--navy)}.step-card p{color:var(--muted);margin:0 0 20px}.step-arrow{font-size:13px;color:#98683a;font-weight:700}.site-footer{min-height:75px;background:#102f48;color:#c4d2d8;padding:22px max(5vw,24px);display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.03em}.page-main{min-height:70vh}.page-hero{padding:65px max(7vw,28px) 47px;color:white;background:linear-gradient(110deg,#102f48,#225b78);position:relative;overflow:hidden}.page-hero:after{content:'';position:absolute;width:330px;height:330px;border:1px solid rgba(255,255,255,.15);border-radius:50%;right:8%;top:-130px;box-shadow:0 0 0 34px rgba(255,255,255,.025),0 0 0 68px rgba(255,255,255,.025)}.page-hero h1{font-size:clamp(42px,6vw,63px)}.page-hero>p:not(.eyebrow){max-width:630px;color:#d4e1e6;margin:19px 0 0}.date-legend,.trip-summary{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px;font-size:12px;color:#e1eaed}.date-legend span{display:inline-flex;align-items:center;gap:8px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.green{background:var(--green)}.amber{background:var(--amber)}.rose{background:var(--rose)}.poll-wrap,.place-section{max-width:1080px;margin:auto;padding:57px 28px 45px}.poll-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.poll-top h2{font-size:35px}.vote-count{background:var(--blue2);color:var(--blue);font-size:12px;font-weight:700;border-radius:30px;padding:8px 13px}.notice{padding:13px 16px;border-radius:5px;margin:0 0 18px;font-size:14px}.notice.success{background:#e6f3ee;color:#20664f}.notice.error{background:#f9e9e8;color:#93484b}.name-field{display:flex;align-items:center;gap:14px;color:var(--ink);font-weight:700;font-size:13px;margin-bottom:19px}.name-field input{border:1px solid var(--line);border-radius:4px;padding:11px 13px;font:inherit;width:min(300px,100%);font-weight:400}.date-list{border-top:1px solid var(--line)}.date-row{display:grid;grid-template-columns:195px 1fr;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}.date-label{display:grid;grid-template-columns:47px 1fr;column-gap:9px;align-items:center}.date-month{grid-row:span 2;color:#9b6d3d;font-size:10px;font-weight:700;letter-spacing:.1em}.date-label strong{font-size:14px}.date-label small{font-size:11px;color:var(--muted)}.status-options{display:flex;gap:9px;flex-wrap:wrap}.choice-pill{cursor:pointer}.choice-pill input{position:absolute;opacity:0}.choice-pill span{display:block;border:1px solid var(--line);border-radius:24px;padding:7px 12px;color:#687984;font-size:12px;font-weight:600;transition:.15s}.choice-pill.checked.yes span,.choice-pill.yes input:checked+span{border-color:#83baa9;background:#e8f4ef;color:#27765f}.choice-pill.checked.maybe span,.choice-pill.maybe input:checked+span{border-color:#dfbb8f;background:#faf1e5;color:#a36d2d}.choice-pill.checked.no span,.choice-pill.no input:checked+span{border-color:#d8a1a3;background:#f8ebea;color:#a45056}.results-box{margin-top:45px;padding:28px;background:#f7f7f3;border:1px solid #ebede8}.results-box h3{font:600 25px 'Playfair Display',serif;color:var(--navy);margin:0}.results-box>p{color:var(--muted);font-size:13px;margin:5px 0 20px}.result-list{display:grid;grid-template-columns:1fr 1fr;column-gap:35px}.result-line{display:grid;grid-template-columns:125px 1fr 65px;gap:9px;align-items:center;padding:9px 0;border-top:1px solid #e3e6e1;font-size:11px}.result-line>b{text-align:right;color:#526772;font-size:10px}.mini-bars{display:flex;height:7px;border-radius:8px;background:#e6e8e3;overflow:hidden}.mini-bars i{display:block;height:100%}.mini-bars i.green{background:#41977c}.mini-bars i.amber{background:#d5a158}.mini-bars i.rose{background:#c87d80}.page-hero-place{background:linear-gradient(110deg,#173e54,#416d73)}.trip-summary span{border:1px solid rgba(255,255,255,.25);padding:6px 11px;border-radius:25px}.place-vote-form{margin-top:27px}.place-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.place-card{min-height:316px;padding:22px;background:#f7f5ef;border:1px solid #eae7de;display:flex;flex-direction:column}.place-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.place-icon{width:39px;height:39px;border-radius:50%;background:var(--blue2);color:var(--blue);display:grid;place-items:center;font-size:22px}.place-dijon .place-icon{background:#f4e8db;color:#9e6840}.place-chour .place-icon{background:#e7eee6;color:#56846a}.place-tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9a6e3d;font-weight:700}.place-card h3{font:600 24px/1.1 'Playfair Display',serif;color:var(--navy);margin:0 0 5px}.place-subtitle{font-size:12px!important;color:#617582!important;margin:0 0 13px!important}.place-card p{font-size:13px;color:var(--muted);margin:0 0 15px}.place-more{font-size:11px;color:#966638;font-weight:700;text-decoration:none;margin:0 0 12px}.place-more:hover{text-decoration:underline}.rank-label{margin-top:auto;display:grid;gap:6px;color:#586b77;font-size:11px;font-weight:700}.rank-label select{width:100%;border:1px solid #d9e0df;border-radius:4px;background:white;padding:10px;font:13px 'DM Sans',sans-serif;color:var(--ink)}.poll-note,.source-note{font-size:11px;color:var(--muted);margin:12px 0 0}.place-results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.place-result{display:flex;align-items:center;gap:12px;padding:14px;background:white;border:1px solid #e4e8e5}.rank-number{color:#bf8a50;font:600 20px 'Playfair Display',serif}.place-result div{display:grid;flex:1}.place-result strong{font-size:13px}.place-result small{font-size:10px;color:var(--muted)}.place-result>b{font-size:12px;color:#406d5b}.travel-section{padding-top:35px}.travel-table-wrap{overflow-x:auto;border:1px solid var(--line)}.travel-table{border-collapse:collapse;width:100%;min-width:760px;text-align:left}.travel-table th,.travel-table td{padding:12px 14px;border-bottom:1px solid #e6ebeb}.travel-table thead{background:#f1f4f3;color:#47606d;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.travel-table tbody th{font-size:13px;color:var(--ink);white-space:nowrap}.travel-table td{text-align:center}.route-time{font-weight:700;text-decoration:none;color:#275f78;display:inline-flex;flex-direction:column;line-height:1.25}.route-time:hover{color:#aa7440}.route-time small{font-size:9px;color:#829198;font-weight:500;margin-top:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.site-header{height:72px;padding:0 20px}.menu-toggle{display:block;border:0;background:transparent;color:var(--navy);font-size:23px}.main-nav{display:none;position:absolute;top:71px;left:0;right:0;background:white;padding:12px 22px 19px;box-shadow:0 15px 20px #112e4816;align-items:stretch;gap:8px;flex-direction:column}.main-nav.open{display:flex}.main-nav a{padding:9px}.hero{padding:65px 26px 48px;min-height:485px}.hero-stamp{right:9%;top:auto;bottom:44px;width:102px;height:102px}.hero-stamp span{font-size:37px}.hero-stamp small{font-size:8px}.hero-copy{max-width:520px}.hero-intro{font-size:16px;max-width:330px}.city-line{max-width:310px;line-height:1.8}.intro-section,.steps-section,.travel-section{padding:63px 21px}.section-heading{display:block}.section-heading>p{margin-top:17px}.photo-grid{grid-template-columns:1fr}.photo-main,.photo-chart{height:auto;aspect-ratio:1.3}.photo-chart{aspect-ratio:1.7}.photo-chart img{object-fit:contain}.step-grid{grid-template-columns:1fr}.site-footer{align-items:flex-start;gap:6px;flex-direction:column}.page-hero{padding:50px 24px 37px}.page-hero:after{right:-220px}.page-hero>p:not(.eyebrow){font-size:14px}.poll-wrap,.place-section{padding:42px 20px 32px}.poll-top h2{font-size:29px}.date-row{grid-template-columns:1fr;gap:11px;padding:14px 0}.date-label{grid-template-columns:47px 1fr}.status-options{gap:6px}.choice-pill span{padding:7px 9px;font-size:11px}.result-list{grid-template-columns:1fr}.results-box{padding:21px 16px}.result-line{grid-template-columns:118px 1fr 58px}.place-grid{grid-template-columns:1fr}.place-card{min-height:auto;padding:20px}.place-result{padding:11px}.place-results{grid-template-columns:1fr}.trip-summary{gap:8px}.trip-summary span{font-size:10px}.travel-section{padding-top:30px}.travel-section .section-heading h2{font-size:34px}}

/* Playful family reunion landing page */
.party-hero{min-height:690px;position:relative;isolation:isolate;overflow:hidden;background:#143b55;color:#fff;display:flex;align-items:center;padding:72px max(8vw,28px)}.party-art,.party-shade{position:absolute;inset:0;width:100%;height:100%}.party-art{z-index:-2;object-fit:cover;object-position:center 53%}.party-shade{z-index:-1;background:linear-gradient(90deg,rgba(9,35,55,.94) 0%,rgba(9,35,55,.83) 33%,rgba(9,35,55,.30) 67%,rgba(9,35,55,.08) 100%),linear-gradient(0deg,rgba(8,30,46,.63),transparent 30%)}.party-copy{max-width:660px;position:relative;z-index:1;padding:10px 0 25px}.party-kicker{display:inline-flex;align-items:center;gap:10px;background:#fff1d9;color:#70451f;border-radius:30px;padding:8px 14px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.party-kicker i{font-style:normal;color:#e48358;font-size:15px}.party-hero h1{font:700 clamp(51px,7vw,88px)/.98 'Playfair Display',Georgia,serif;letter-spacing:-.045em;margin:25px 0 18px;color:#fff}.party-hero h1 em{color:#ffcf72;font-style:italic}.party-copy>p{max-width:465px;color:#f1f3ed;font-size:18px;line-height:1.55;margin:0 0 27px}.party-actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap}.button-party{background:#ffd16f;color:#17384e;box-shadow:0 9px 24px #071d2a42}.button-party:hover{background:#ffdc8e}.party-link{color:white;text-decoration:none;font-weight:700;font-size:13px;border-bottom:1px solid #ffffff8c;padding:7px 0}.party-link span{color:#ffcf72}.party-stats{display:flex;gap:22px;flex-wrap:wrap;margin-top:39px;color:#e0e9e8;font-size:11px;letter-spacing:.02em}.party-stats span{border-left:2px solid #ffcf72;padding-left:10px}.party-stats b{font:700 21px 'Playfair Display',serif;color:#ffcf72;margin-right:4px}.party-sticker{position:absolute;right:7.5%;top:8%;z-index:1;width:145px;height:145px;border-radius:50%;background:#ffcf72;color:#263a3b;display:grid;place-items:center;text-align:center;transform:rotate(9deg);box-shadow:0 12px 28px #172c3845;border:4px solid #fff1d9}.party-sticker span{font:700 14px/1.1 'Playfair Display',serif;text-transform:uppercase}.party-sticker strong{font-size:22px;color:#c94f43}.party-sticker i{position:absolute;font-style:normal;color:#c94f43;font-size:24px;top:5px;right:12px}.party-caption{position:absolute;bottom:22px;left:max(8vw,28px);right:max(8vw,28px);display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.party-caption span:first-child{background:#102f48c7;padding:8px 12px;border-radius:20px}.party-caption b{font-size:17px;color:#ffcf72;padding-left:5px}.party-plan{max-width:1180px;margin:auto;padding:76px 28px 75px}.party-plan-heading{display:flex;justify-content:space-between;align-items:end;gap:38px;margin-bottom:30px}.party-plan-heading h2{font:700 clamp(33px,4vw,47px)/1.06 'Playfair Display',serif;color:#173c55;margin:0}.party-plan-heading>p{max-width:445px;color:#667883;margin:0 0 3px}.party-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.party-card{position:relative;min-height:280px;padding:26px 29px 25px;text-decoration:none;overflow:hidden;border-radius:8px;transition:transform .18s,box-shadow .18s}.party-card:hover{transform:translateY(-4px);box-shadow:0 15px 32px #17384e22}.party-card-date{background:#fff0ca;color:#16374e}.party-card-place{background:#f6dcd2;color:#4e3540}.party-card-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#ffffffa8;color:#bd6940;font-size:23px;margin-bottom:13px}.party-card-step{font-size:10px;font-weight:800;letter-spacing:.14em;color:#9a673b}.party-card h3{font:700 29px/1.04 'Playfair Display',serif;margin:8px 0 8px;position:relative;z-index:1}.party-card p{font-size:13px;color:#65747b;max-width:370px;margin:0 0 16px;position:relative;z-index:1}.party-card-go{font-size:12px;font-weight:800;color:#81562f}.party-card-go b{font-size:17px;margin-left:8px}.party-card-doodle{position:absolute;right:18px;bottom:-32px;font-size:150px;line-height:1;color:#eabf6640;transform:rotate(-15deg)}.party-card-place .party-card-doodle{color:#d9837138;right:8px}.party-route{margin-top:27px;text-align:center;color:#637680;font-size:11px;line-height:2.2}.party-route i{font-style:normal;color:#d18455;padding:0 4px}.party-route>span{color:#d18455;padding:0 9px;font-size:14px}
@media(max-width:760px){.party-hero{min-height:760px;align-items:flex-end;padding:36px 22px 72px}.party-art{object-position:54% center}.party-shade{background:linear-gradient(0deg,rgba(7,30,46,.96) 0%,rgba(7,30,46,.78) 43%,rgba(7,30,46,.13) 100%),linear-gradient(90deg,rgba(7,30,46,.18),transparent)}.party-copy{padding:0;max-width:100%}.party-kicker{font-size:9px}.party-hero h1{font-size:clamp(47px,13vw,68px);margin:18px 0 12px}.party-copy>p{font-size:15px;max-width:340px}.party-actions{gap:15px}.button-party{font-size:12px;padding:13px 14px;gap:12px}.party-link{font-size:12px}.party-stats{gap:11px;margin-top:24px}.party-stats span{font-size:9px;padding-left:7px}.party-stats b{font-size:18px}.party-sticker{width:100px;height:100px;right:18px;top:17px;border-width:3px}.party-sticker span{font-size:10px}.party-sticker strong{font-size:17px}.party-sticker i{font-size:17px;top:1px;right:7px}.party-caption{left:22px;right:22px;bottom:14px;font-size:8px}.party-caption span:first-child{padding:6px 9px}.party-plan{padding:55px 20px 58px}.party-plan-heading{display:block}.party-plan-heading>p{margin-top:14px;font-size:14px}.party-cards{grid-template-columns:1fr;gap:13px}.party-card{min-height:245px;padding:22px}.party-card h3{font-size:27px}.party-route{font-size:10px;margin-top:19px}}

/* Cousinade en mode grand show : habillage des sondages */
:root{--party-coral:#f06462;--party-pink:#e74c83;--party-sun:#ffc857;--party-aqua:#5bc8c2;--party-plum:#6b3b78;--party-paper:#fffaf4}
.page-main{background:linear-gradient(180deg,#fffaf5 0%,#fff 46%,#fff8ed 100%)}
.page-hero{padding:72px max(8vw,28px) 53px;border-radius:0 0 34px 34px;box-shadow:0 16px 36px #2f34421c}
.page-hero:after{width:390px;height:390px;right:8%;top:-165px;border-color:#ffffff30;box-shadow:0 0 0 28px #ffffff09,0 0 0 61px #ffffff08,0 0 0 96px #ffffff06}
.page-hero-date{background:radial-gradient(circle at 82% 22%,#ffcf68 0 8%,transparent 8.3%),radial-gradient(circle at 76% 79%,#ec55834a 0 17%,transparent 17.3%),linear-gradient(115deg,#51275f 0%,#a43d71 48%,#ef6b66 100%)}
.page-hero-place{background:radial-gradient(circle at 88% 15%,#ffcb624d 0 12%,transparent 12.3%),radial-gradient(circle at 72% 90%,#62d2bd55 0 21%,transparent 21.3%),linear-gradient(115deg,#123d67 0%,#176e85 55%,#41a99a 100%)}
.page-hero .eyebrow{color:#ffe29b;font-size:12px;letter-spacing:.2em}
.page-hero h1{max-width:740px;text-shadow:0 4px 20px #15203830}
.page-hero h1 em{color:#ffd66d}
.page-hero>p:not(.eyebrow){font-size:16px;color:#fff6ee;max-width:600px}
.date-legend,.trip-summary{gap:10px;margin-top:27px}
.date-legend span,.trip-summary span{padding:9px 13px;border:1px solid #ffffff47;border-radius:28px;background:#ffffff16;backdrop-filter:blur(5px);font-size:12px;font-weight:700;color:#fff}
.date-legend .dot{width:10px;height:10px;box-shadow:0 0 0 3px #ffffff26}
.hero-fun-badge{position:absolute;right:max(9vw,42px);top:38%;z-index:1;width:150px;height:150px;border:5px solid #fff9e8;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--party-sun);color:#4e3151;box-shadow:0 14px 28px #23163f40;transform:rotate(8deg);animation:badge-bob 3.4s ease-in-out infinite}
.hero-fun-badge:before{content:"";position:absolute;inset:-13px;border:2px dashed #fff2c5;border-radius:50%}
.hero-fun-badge span{text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.14em}
.hero-fun-badge strong{font:700 19px/1.02 'Playfair Display',Georgia,serif;margin-top:5px}
.hero-fun-badge i{position:absolute;top:7px;right:10px;color:#e45361;font-style:normal;font-size:22px}
@keyframes badge-bob{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -7px;rotate:2deg}}
.poll-wrap,.place-section{max-width:1140px;padding-top:52px}
.poll-top{align-items:center;margin-bottom:27px}
.poll-top .eyebrow-dark{color:#c24f65}
.poll-top h2{font-size:clamp(28px,3.4vw,39px);line-height:1.08;max-width:700px}
.vote-count{background:#fff0cf;color:#8e5a1d;border:1px solid #f5d895;padding:10px 16px;box-shadow:0 4px 12px #8d531211}
.name-field{display:inline-flex;gap:11px;padding:9px 13px;background:white;border:1px solid #f1e1d5;border-radius:14px;box-shadow:0 7px 22px #5730180b}
.name-field input{border:1px solid #ebd9cf;border-radius:9px;min-height:42px;background:#fffdfa}
.name-field input:focus,.rank-label select:focus{outline:3px solid #ffca644d;border-color:#df9955}
.vote-progress{max-width:510px;margin:0 0 24px;padding:13px 16px 14px;background:#fff;border:1px solid #f1e5dc;border-radius:14px;box-shadow:0 8px 22px #5730180a}
.progress-copy{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:8px;font-size:11px;color:#77838a}
.progress-copy span{text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#a35c51}
.progress-copy strong{color:#395265}
.progress-track{height:9px;border-radius:10px;background:#f2ece8;overflow:hidden}
.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#52c5ad,#f6c64b,#ee6f6a);transition:width .3s ease}
.date-list{counter-reset:date-row;border:0;display:grid;gap:9px}
.date-row{counter-increment:date-row;position:relative;grid-template-columns:230px 1fr;gap:16px;padding:13px 18px;background:#fff;border:1px solid #f0e5dc;border-radius:15px;box-shadow:0 5px 16px #4f30220a;transition:transform .18s,box-shadow .18s,border-color .18s}
.date-row:before{content:counter(date-row,decimal-leading-zero);position:absolute;right:15px;top:11px;font-size:10px;font-weight:900;letter-spacing:.1em;color:#d7c0b2}
.date-row:hover{transform:translateY(-2px);border-color:#f0c1a9;box-shadow:0 10px 24px #57301812}
.date-label{grid-template-columns:47px 1fr;padding-right:23px}
.date-month{color:#c24e66;font-size:10px;font-weight:900;letter-spacing:.13em}
.date-label strong{font-size:15px;color:#193d56}
.date-label small{color:#8a969b}
.status-options{gap:7px}
.choice-pill span{padding:8px 13px;border-radius:11px;background:#fff;font-size:11px}
.choice-pill.yes span{border-color:#b7e6d5;background:#edfaf4;color:#28775f}
.choice-pill.maybe span{border-color:#f2db9b;background:#fff8df;color:#966913}
.choice-pill.no span{border-color:#f0c2c5;background:#fff0f0;color:#a44751}
.choice-pill.checked.yes span,.choice-pill.yes input:checked+span{background:#38a77e;border-color:#38a77e;color:white;box-shadow:0 4px 10px #38a77e38}
.choice-pill.checked.maybe span,.choice-pill.maybe input:checked+span{background:#efb836;border-color:#efb836;color:#573c0b;box-shadow:0 4px 10px #efb83638}
.choice-pill.checked.no span,.choice-pill.no input:checked+span{background:#dc6870;border-color:#dc6870;color:white;box-shadow:0 4px 10px #dc687038}
.choice-pill:focus-within span{outline:3px solid #183f5b33;outline-offset:2px}
.button-dark{background:linear-gradient(110deg,#e95d72,#bd467c);border-radius:13px;padding:15px 21px;box-shadow:0 9px 20px #c0477133}
.button-dark:hover{background:linear-gradient(110deg,#d94c64,#a9376e)}
.notice{border-radius:13px}
.notice.success{background:#eaf8eb;border:1px solid #cae8cc}
.notice.error{background:#fff0f0;border:1px solid #f2c9cc}
.results-box{position:relative;margin-top:40px;padding:29px;background:linear-gradient(145deg,#fff4d7,#fffaf4 62%,#f5f5ff);border:1px solid #f2dfb7;border-radius:20px;box-shadow:0 12px 30px #65431a10;overflow:hidden}
.results-box:after{content:"✦";position:absolute;right:20px;top:2px;color:#eead44;font-size:67px;opacity:.5;transform:rotate(13deg)}
.results-box h3{font-size:27px}
.result-line{grid-template-columns:140px 1fr 70px;gap:11px;padding:10px 0;font-size:12px}
.mini-bars{height:9px;border-radius:20px;background:#eee6dc}
.mini-bars i{transition:width .35s ease}
.place-vote-form{margin-top:25px}
.place-grid{gap:17px;align-items:stretch}
.place-card{position:relative;isolation:isolate;min-height:345px;padding:23px;border:1px solid transparent;border-radius:19px;box-shadow:0 9px 24px #263c4810;overflow:hidden;transition:transform .2s,box-shadow .2s}
.place-card:after{content:"✦";position:absolute;z-index:-1;right:13px;top:23px;font-size:82px;line-height:1;color:#ffffff75;transform:rotate(15deg)}
.place-card:hover{transform:translateY(-5px) rotate(-.4deg);box-shadow:0 18px 34px #263c4826}
.place-cheran{background:linear-gradient(145deg,#e5fbf4,#f7fffb 67%,#d8f3f1);border-color:#bfe9da}
.place-dijon{background:linear-gradient(145deg,#fff0d0,#fffaf0 67%,#f8dfb7);border-color:#f2d8a4}
.place-chour{background:linear-gradient(145deg,#e3f5ff,#f8fcff 67%,#d6ecf4);border-color:#c3e1ee}
.place-icon{width:53px;height:53px;border-radius:17px;background:#ffffffbd;color:#17586e;box-shadow:0 5px 12px #29404a13;font-size:27px}
.place-dijon .place-icon{background:#fff9e9;color:#a8612d}
.place-chour .place-icon{background:#f4fdff;color:#337e96}
.place-tag{position:relative;z-index:1;padding:7px 9px;border-radius:20px;background:#ffffffa8;color:#7f543d;font-size:9px;letter-spacing:.1em}
.place-card h3{font-size:26px;margin:4px 0 5px;position:relative;z-index:1}
.place-subtitle{position:relative;z-index:1}
.place-card p:not(.place-subtitle){position:relative;z-index:1;line-height:1.55}
.place-more{position:relative;z-index:1;color:#995b36}
.rank-label{position:relative;z-index:1;padding-top:13px;border-top:1px solid #36526120;font-size:12px;color:#365261}
.rank-label select{border:1px solid #ffffff;background:#ffffffd9;border-radius:11px;min-height:43px;padding:10px 12px;box-shadow:0 4px 12px #30464b0c}
.place-results{gap:14px}
.place-result{min-height:88px;border-radius:14px;background:#fff;border:1px solid #efe3d8;box-shadow:0 5px 14px #273b4808}
.place-result:nth-child(1){background:linear-gradient(110deg,#fff0cb,#fffaf0);border-color:#f1d38d}
.rank-number{font-size:26px;color:#d38d34}
.place-result>b{color:#c44c69}
.poll-note{background:#fff;border:1px dashed #e6c6a5;border-radius:12px;padding:11px 13px;line-height:1.5}
.travel-table-wrap{border:1px solid #e7ded6;border-radius:15px;box-shadow:0 7px 22px #28251d0c}
.travel-table thead{background:linear-gradient(90deg,#56345f,#267e88);color:#fff}
.travel-table thead th{padding-top:15px;padding-bottom:15px}
.travel-table tbody tr:nth-child(even){background:#fffaf4}
.travel-table tbody tr:hover{background:#fff1d1}
.route-time{color:#226b7c}
.source-note{line-height:1.6}
@media(max-width:760px){
 .page-hero{padding:48px 23px 34px;border-radius:0 0 24px 24px}
 .page-hero-date,.page-hero-place{background-position:center}
 .page-hero h1{font-size:clamp(42px,11vw,60px)}
 .page-hero>p:not(.eyebrow){font-size:14px;max-width:92%}
 .hero-fun-badge{position:relative;right:auto;top:auto;width:112px;height:112px;margin:23px 0 3px 8px;animation:none}
 .hero-fun-badge strong{font-size:15px}.hero-fun-badge span{font-size:8px}
 .date-legend{gap:7px}.date-legend span{padding:7px 9px;font-size:10px}
 .trip-summary span{padding:7px 10px;font-size:10px}
 .poll-top{align-items:flex-start;gap:12px}.poll-top h2{font-size:28px}.vote-count{white-space:nowrap;padding:8px 10px}
 .name-field{display:flex;width:100%;justify-content:space-between;flex-wrap:wrap}.name-field input{flex:1;min-width:155px}
 .progress-copy{font-size:10px}
 .date-row{grid-template-columns:1fr;gap:12px;padding:15px 13px 13px;border-radius:13px}
 .date-row:before{right:12px;top:13px}.date-label{padding-right:28px}
 .status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
 .choice-pill span{text-align:center;padding:9px 4px;font-size:10px}
 .button-dark{width:100%;justify-content:space-between}
 .results-box{padding:22px 15px}.results-box:after{right:9px;font-size:47px}
 .result-line{grid-template-columns:105px 1fr 52px;gap:6px;font-size:10px}
 .place-grid{grid-template-columns:1fr}.place-card{min-height:300px;padding:20px;border-radius:17px}
 .place-card:hover{transform:translateY(-2px)}
 .place-results{grid-template-columns:1fr}
 .section-heading h2{font-size:33px}
}
@media(prefers-reduced-motion:reduce){.hero-fun-badge{animation:none}.date-row,.place-card,.button{transition:none}}

/* Tableau récapitulatif prénom × date, inspiré du tableau partagé */
.availability-summary{background:linear-gradient(145deg,#fff9ef,#fff 68%);border:1px solid #ead8c0;border-radius:18px;padding:25px;box-shadow:0 12px 30px #54320f12}
.availability-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.availability-heading .eyebrow{margin-bottom:7px}
.availability-heading h3{font:700 clamp(24px,3vw,32px)/1.12 'Playfair Display',Georgia,serif;color:#173c55;margin:0}
.availability-total{padding:9px 13px;background:#ffedc8;border:1px solid #eed398;border-radius:24px;color:#78501e;font-size:12px;font-weight:800}
.availability-legend{display:flex;gap:8px 15px;flex-wrap:wrap;margin:14px 0 19px;color:#705d4d;font-size:12px}
.availability-legend span{display:inline-flex;align-items:center;gap:5px}
.availability-legend b{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:6px;font-size:15px}
.legend-yes{background:#dff0dd;color:#276c45}.legend-maybe{background:#f8edcf;color:#8a651c}.legend-no{background:#f4dcdc;color:#a3444d}.legend-unset{background:#fff;color:#9b938d}
.availability-table-wrap{max-width:100%;max-height:65vh;overflow:auto;border:1px solid #dfcdb7;border-radius:10px;background:#fff;overscroll-behavior:contain;scrollbar-color:#cb9f71 #f8eee2}
.availability-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;text-align:center;font-size:13px;color:#20394a}
.availability-table th,.availability-table td{height:44px;padding:8px 12px;border-right:1px solid #dfcdb7;border-bottom:1px solid #dfcdb7;white-space:nowrap}
.availability-table thead th{position:sticky;top:0;z-index:2;background:#f2e4cf;color:#493b2c;font-size:11px;font-weight:800;min-width:100px;white-space:normal;line-height:1.25}
.availability-table thead .name-heading{left:0;z-index:4;min-width:112px}
.availability-table tbody .person-name{position:sticky;left:0;z-index:1;background:#f8efdf;text-align:left;font-weight:800;min-width:112px}
.availability-table tbody tr:hover .person-name{background:#ffedc8}
.availability-cell{font-size:19px;font-weight:800}
.availability-cell.yes{background:#e1efdc;color:#245c38}
.availability-cell.maybe{background:#f8edcf;color:#85651f}
.availability-cell.no{background:#f4dddd;color:#a33d48}
.availability-cell.unset{background:#fff;color:#aaa19a;font-weight:500}
.availability-table tr:last-child th,.availability-table tr:last-child td{border-bottom:0}
.availability-table tr th:last-child,.availability-table tr td:last-child{border-right:0}
.availability-scroll-hint{display:none;margin:10px 0 0;color:#8a7767;font-size:11px}
.availability-empty{display:grid;justify-items:center;text-align:center;gap:7px;padding:28px 16px;background:#fff;border:1px dashed #e6cda7;border-radius:13px;color:#536b77}
.availability-empty>span{font-size:32px}.availability-empty strong{font:700 19px 'Playfair Display',Georgia,serif;color:#173c55}.availability-empty p{margin:0;font-size:13px;color:#77838a}
@media(max-width:760px){.availability-summary{padding:19px 13px}.availability-heading{align-items:flex-start}.availability-total{font-size:10px;padding:7px 10px}.availability-legend{font-size:10px;gap:7px 10px}.availability-table thead th{min-width:90px;padding:8px 7px;font-size:10px}.availability-table thead .name-heading,.availability-table tbody .person-name{min-width:88px}.availability-table th,.availability-table td{height:41px;padding:6px 8px}.availability-scroll-hint{display:block}}

/* Tableau festif des bulletins de vote des lieux */
.ballot-details{margin-top:25px;padding-top:22px;border-top:2px dashed #e6cda7}
.ballot-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:15px}
.ballot-heading .eyebrow{margin-bottom:5px;color:#bc526b}
.ballot-heading h4{margin:0;color:#173c55;font:700 clamp(20px,2.7vw,28px)/1.12 'Playfair Display',Georgia,serif}
.ballot-heading h4 span{display:inline-block;animation:balloon-bob 2.8s ease-in-out infinite}
@keyframes balloon-bob{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-5px) rotate(5deg)}}
.ballot-count{padding:8px 12px;background:#e4f5ed;border:1px solid #c2e7d6;border-radius:24px;color:#31765b;font-size:11px;font-weight:800}
.ballot-table-wrap{max-width:100%;overflow:auto;border:1px solid #ead8c0;border-radius:12px;background:#fff;box-shadow:0 5px 16px #3d29100b}
.ballot-table{width:100%;min-width:580px;border-collapse:separate;border-spacing:0;text-align:left;color:#2c4352;font-size:13px}
.ballot-table th,.ballot-table td{padding:11px 13px;border-bottom:1px solid #eee2d4}
.ballot-table thead th{background:linear-gradient(90deg,#f9e7c8,#f7dfe1);color:#59443d;font-size:11px;font-weight:900;letter-spacing:.02em}
.ballot-table tbody th{min-width:115px;background:#fff9ef;color:#173c55;font-weight:800}
.ballot-table tbody tr:nth-child(even) th{background:#fff3e0}
.ballot-table tbody tr:hover th,.ballot-table tbody tr:hover td{filter:saturate(1.08);background-color:#fff8dc}
.ballot-table tbody tr:last-child th,.ballot-table tbody tr:last-child td{border-bottom:0}
.ballot-choice{width:27%;font-weight:700}
.ballot-choice span{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:9px;line-height:1.25}
.ballot-choice.rank-1 span{background:#fff0c8;color:#875b18}
.ballot-choice.rank-2 span{background:#e6f5ed;color:#28725b}
.ballot-choice.rank-3 span{background:#fce5e3;color:#9a4c52}
.ballot-hint{margin:9px 0 0;color:#8c7864;font-size:10px}
.ballot-empty{display:grid;justify-items:center;gap:5px;padding:21px 13px;text-align:center;background:linear-gradient(110deg,#fff2d7,#fff0f1,#eaf8f1);border:1px dashed #e7c9a8;border-radius:13px;color:#173c55}
.ballot-empty>span{font-size:28px}.ballot-empty strong{font:700 17px 'Playfair Display',Georgia,serif}.ballot-empty p{margin:0;font-size:12px;color:#75848a}
@media(max-width:760px){.ballot-details{margin-top:21px;padding-top:18px}.ballot-heading{align-items:flex-start}.ballot-count{font-size:10px;padding:7px 9px}.ballot-table{min-width:550px}.ballot-table th,.ballot-table td{padding:9px 10px}.ballot-hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ballot-heading h4 span{animation:none}}

/* Boîte à idées pour proposer un lieu familial */
.suggestion-section{max-width:1140px;margin:0 auto;padding:22px 28px 63px}
.suggestion-panel{position:relative;overflow:hidden;padding:29px;background:linear-gradient(125deg,#fff0ce 0%,#fff6e9 42%,#f4e8ff 100%);border:1px solid #eedab5;border-radius:22px;box-shadow:0 14px 34px #51401d12}
.suggestion-panel:after{content:"✦";position:absolute;right:24px;top:10px;color:#f0b64c;font-size:72px;opacity:.5;pointer-events:none}
.suggestion-head{position:relative;display:flex;align-items:flex-start;gap:16px;max-width:790px;margin-bottom:18px;z-index:1}
.suggestion-confetti{flex:0 0 55px;height:55px;display:grid;place-items:center;background:#fff;border:1px solid #f0d99c;border-radius:17px;font-size:28px;box-shadow:0 7px 15px #7b57131a;transform:rotate(-7deg)}
.suggestion-head .eyebrow{margin-bottom:7px;color:#bf586c}
.suggestion-head h2{margin:0;color:#173c55;font:700 clamp(28px,3.6vw,39px)/1.06 'Playfair Display',Georgia,serif}
.suggestion-head p:last-child{margin:9px 0 0;color:#687780;font-size:13px;max-width:540px}
.suggestion-form{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.4fr;gap:13px 16px;max-width:870px}
.suggestion-form label{display:grid;gap:6px;color:#455d6a;font-size:11px;font-weight:800}
.suggestion-form label small{display:inline;color:#859096;font-size:10px;font-weight:500}
.suggestion-form input,.suggestion-form textarea{width:100%;border:1px solid #eadbc9;border-radius:11px;background:#ffffffdb;padding:11px 12px;color:#20394a;font:13px 'DM Sans',Arial,sans-serif;box-shadow:0 3px 8px #44301108}
.suggestion-form input{min-height:44px}
.suggestion-form textarea{resize:vertical;min-height:88px}
.suggestion-form input:focus,.suggestion-form textarea:focus{outline:3px solid #f3c65b55;border-color:#e0a34d}
.suggestion-note-field{grid-column:1/-1}
.button-idea{align-self:end;justify-self:start;margin-top:3px;background:linear-gradient(110deg,#ed6c6d,#cf4e83);color:white;border-radius:12px;box-shadow:0 8px 18px #cf4e8332}
.button-idea:hover{background:linear-gradient(110deg,#df5a61,#bb3f75)}
.suggestion-disclaimer{position:relative;z-index:1;margin:13px 0 0;color:#7d7064;font-size:10px}
.suggestion-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0 12px;padding-top:19px;border-top:1px dashed #dfc69b}
.suggestion-list-heading h3{margin:0;color:#173c55;font:700 21px 'Playfair Display',Georgia,serif}
.suggestion-list-heading>span{color:#8d6b32;background:#fff4d9;border-radius:18px;padding:6px 10px;font-size:10px;font-weight:800}
.suggestion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.suggestion-card{display:flex;align-items:flex-start;gap:11px;padding:14px;background:#ffffffd9;border:1px solid #ebddc8;border-radius:14px;box-shadow:0 5px 14px #4030130b}
.suggestion-card-icon{flex:0 0 34px;height:34px;display:grid;place-items:center;background:#e8f6ee;border-radius:11px;font-size:16px}
.suggestion-card h4{margin:0;color:#225a6c;font:700 17px 'Playfair Display',Georgia,serif}
.suggestion-card p{margin:4px 0 7px;color:#65747a;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.suggestion-card small{font-size:10px;color:#8b7b6a}.suggestion-card small strong{color:#9a5b56}
@media(max-width:760px){.suggestion-section{padding:15px 20px 48px}.suggestion-panel{padding:21px 16px;border-radius:18px}.suggestion-panel:after{right:8px;top:8px;font-size:48px}.suggestion-head{gap:11px}.suggestion-confetti{flex-basis:42px;height:42px;border-radius:13px;font-size:23px}.suggestion-head h2{font-size:28px}.suggestion-head p:last-child{font-size:12px}.suggestion-form{grid-template-columns:1fr;gap:12px}.suggestion-note-field{grid-column:auto}.button-idea{width:100%;justify-content:space-between}.suggestion-list{grid-template-columns:1fr}.suggestion-list-heading h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){.suggestion-confetti{transform:none}}

/* Le compteur de votes mène directement au tableau récapitulatif */
html{scroll-behavior:smooth}
.vote-count-link{display:inline-flex;align-items:center;gap:9px;text-decoration:none;cursor:pointer;transition:transform .18s,box-shadow .18s}
.vote-count-link:after{content:"↓";font-size:16px;line-height:1;transition:transform .18s}
.vote-count-link:hover{transform:translateY(-2px);box-shadow:0 7px 16px #8d531222}
.vote-count-link:hover:after{transform:translateY(3px)}
.vote-count-link:focus-visible{outline:3px solid #cf4e83;outline-offset:3px}
#grand-recap,#classement-provisoire{scroll-margin-top:24px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.vote-count-link,.vote-count-link:after{transition:none}.vote-count-link:hover,.vote-count-link:hover:after{transform:none}}
