/* Page invités — aux couleurs choisies par les mariés */
@font-face{font-family:"Cormorant Garamond";font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Lora";font-weight:500;font-display:swap;src:url(/assets/fonts/lora-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Lora";font-weight:700;font-display:swap;src:url(/assets/fonts/lora-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Great Vibes";font-weight:400;font-display:swap;src:url(/assets/fonts/great-vibes-latin-400-normal.woff2) format("woff2")}

body{background:var(--client-bg,#FBF7F1)}
.g{--p:var(--client-primary,#B5134B);--s:var(--client-secondary,#FAE6EC);--a:var(--client-accent,#5E8A1F);--t:var(--client-text,#191417);--b:var(--client-bg,#FBF7F1);--on:var(--client-on-primary,#fff);--lk:var(--client-link,#B5134B);
  --line:color-mix(in srgb,var(--t) 16%,transparent);--soft:color-mix(in srgb,var(--t) 62%,transparent);
  color:var(--t);background:var(--b);min-height:100vh;font-family:var(--texte)}
.g h1,.g h2,.g h3{font-family:var(--g-font),"Playfair Display",Georgia,serif;color:var(--t)}
.g a{color:var(--lk)}
.g .demo-band a{color:#fff}

/* En-tête */
.g-hero{text-align:center;padding:clamp(44px,9vw,96px) 20px clamp(34px,6vw,60px);border-bottom:1px solid var(--line);background-color:var(--s);background-size:cover;background-position:center;position:relative}
.g-hero.has-cover{color:#fff;min-height:min(70vh,560px);display:flex;align-items:flex-end;justify-content:center}
.g-hero.has-cover::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 30%,rgba(0,0,0,.62))}
.g-hero-in{position:relative;max-width:760px;margin:0 auto}
.g-logo{max-height:96px;max-width:200px;margin:0 auto 18px;display:block;border-radius:4px}
.g-kicker{margin:0 0 10px;font-size:1.02rem;color:var(--soft)}
.g-couple{font-size:clamp(2.4rem,8vw,4.6rem);line-height:1.04;margin:0 0 14px;font-weight:800;letter-spacing:-.01em}
.g-date{margin:0;font-size:1.15rem;line-height:1.5}
.g-hero.has-cover .g-kicker,.g-hero.has-cover .g-date{color:#fff}
.g-hero.has-cover .g-couple{color:#fff}

.g-wrap{max-width:720px;margin:0 auto;padding:clamp(26px,5vw,48px) 18px 40px}
.g-intro{margin:0 0 30px}
.g-lead{font-size:1.14rem;line-height:1.6;margin:0 0 20px}
.g-facts{display:grid;gap:0;margin:0 0 18px;border-top:1px solid var(--line)}
.g-facts > div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.g-facts dt{font-weight:700}
.g-facts dd{margin:0}
.g-deadline{margin:0;font-weight:700;color:var(--lk)}

/* Blocs */
.g-card{background:#fff;color:#191417;border:1px solid var(--line);border-radius:6px;padding:clamp(18px,3.4vw,28px);margin:0 0 18px}
.g-card h2,.g-card h3,.g-card h1{color:#191417}
.g-card a{color:var(--client-primary,#B5134B)}
.g-card h2{font-size:1.4rem;margin:0 0 14px}
.g-center{text-align:center}
.g-h1{font-size:clamp(1.7rem,5vw,2.3rem);margin:0 0 14px}
.g-hint{color:#655B61;margin:-6px 0 16px;font-size:.96rem}
.g-opt{font-family:var(--texte);font-weight:400;font-size:.86rem;color:#655B61;margin-left:6px}
.g-note{border-left:3px solid var(--p);background:#fff;padding:12px 16px;margin:0 0 18px;border-radius:4px;color:#191417}
.g-small{font-size:.9rem;color:#655B61}
.g-link{word-break:break-all;font-weight:600;color:#191417}
.g-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:18px 0 0}
.g .btn,.g button{background:var(--p);border-color:var(--p);color:var(--on)}
.g .btn:hover,.g button:hover{filter:brightness(.9);background:var(--p);border-color:var(--p);color:var(--on)}
.g .btn.secondary{background:#fff;color:#191417;border-color:#CDBFB3}
.g .btn.secondary:hover{filter:none;background:#F3ECE2;color:#191417;border-color:#191417}
.g input:focus,.g select:focus,.g textarea:focus{outline-color:var(--p);border-color:var(--p)}
.g input[type=checkbox],.g input[type=radio]{accent-color:var(--p)}
.g-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g .field{margin-bottom:14px}

/* Présence */
.g-presence{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g-presence label{margin:0;cursor:pointer;position:relative}
.g-presence input{position:absolute;opacity:0}
.g-presence span{display:block;border:1px solid #CDBFB3;border-radius:6px;padding:16px 18px;font-weight:400;color:#655B61;height:100%}
.g-presence strong{display:block;font-family:var(--g-font),"Playfair Display",Georgia,serif;font-size:1.2rem;color:#191417;margin-bottom:2px}
.g-presence input:checked + span{border-color:var(--p);box-shadow:inset 0 0 0 1px var(--p);background:color-mix(in srgb,var(--p) 7%,#fff)}
.g-presence input:focus-visible + span{outline:2px solid var(--p);outline-offset:2px}

/* Fiches personne */
.g-person{border:1px solid #E2D8CF;border-radius:6px;padding:16px 16px 6px;margin:0 0 14px;min-width:0}
.g-person legend{font-weight:700;padding:0 8px;font-size:.98rem}
.g-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.g-chip{margin:0;cursor:pointer;position:relative;font-weight:400}
.g-chip input{position:absolute;opacity:0}
.g-chip span{display:inline-block;border:1px solid #CDBFB3;border-radius:99px;padding:6px 14px;font-size:.94rem;background:#fff;color:#191417}
.g-chip input:checked + span{background:var(--p);border-color:var(--p);color:var(--on)}
.g-chip input:focus-visible + span{outline:2px solid var(--p);outline-offset:2px}
.g .g-remove{background:none;border:0;color:#655B61;font-weight:400;font-size:.9rem;padding:4px 0;margin:0 0 10px;text-decoration:underline}
.g .g-remove:hover{background:none;color:#A3221C;filter:none}

/* Moments */
.g-moments{display:grid;gap:8px}
.g-moment{display:flex;gap:12px;align-items:flex-start;margin:0;border:1px solid #E2D8CF;border-radius:6px;padding:12px 14px;cursor:pointer;font-weight:400}
.g-moment input{margin-top:3px}
.g-moment strong{display:block}
.g-moment em{display:block;font-style:normal;font-size:.9rem;color:#655B61}

.g-send{margin:24px 0 34px;display:grid;gap:16px}
.g .g-submit{font-size:1.08rem;padding:15px 22px;width:100%}

/* Programme */
.g-program h3{font-size:1.1rem;margin:18px 0 8px}
.g-timeline{list-style:none;margin:0;padding:0}
.g-timeline li{display:grid;grid-template-columns:74px 1fr;gap:16px;padding:12px 0;border-top:1px solid #E2D8CF}
.g-timeline li:first-child{border-top:0}
.g-time{font-weight:700;color:var(--client-primary,#B5134B);white-space:nowrap}
.g-timeline em{display:block;font-style:normal;color:#655B61;font-size:.94rem}
.g-timeline p{margin:4px 0 0;font-size:.94rem;color:#655B61}

.g-faq{border-top:1px solid #E2D8CF;padding:12px 0}
.g-faq summary{font-weight:700;cursor:pointer}
.g-faq p{margin:8px 0 0;color:#655B61}
.g-quote{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid #E2D8CF}
.g-quote p{margin:0 0 6px;font-style:italic}
.g-quote footer{font-size:.92rem;color:#655B61;font-weight:600}
.g-gb{margin-top:16px}
.g-foot{text-align:center;padding:10px 18px 40px;font-size:.88rem;color:var(--soft)}
.g-foot a{color:inherit}

@media (max-width:560px){
  .g-two,.g-presence{grid-template-columns:1fr}
  .g-facts > div{grid-template-columns:1fr;gap:2px}
  .g-timeline li{grid-template-columns:58px 1fr;gap:10px}
}


/* ---------- Étoiles (cachées dans l'ambiance sobre) ---------- */
.g-star,.g-ciel{display:none}
.g-couple{display:block}

/* ==========================================================================
   Ambiance festive : celle du site des 10 ans de mariage
   ========================================================================== */
.g--etoiles{background:linear-gradient(135deg,var(--b) 0%,color-mix(in srgb,var(--a) 70%,var(--b)) 100%) fixed}
.g--etoiles .g-hero{background-color:transparent;border-bottom:0;padding-bottom:clamp(18px,3vw,30px);overflow:hidden}
.g--etoiles .g-hero.has-cover{border-radius:0 0 28px 28px}
.g--etoiles .g-hero-in{animation:g-descend .9s ease both}
.g--etoiles .g-couple{color:var(--p);text-shadow:2px 2px 4px rgba(0,0,0,.1);display:flex;justify-content:center;align-items:center;gap:.28em;flex-wrap:nowrap}
.g--etoiles .g-hero.has-cover .g-couple{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.g--etoiles .g-star{display:inline-block;flex:none;width:.5em;height:.5em;color:var(--p);animation:g-scintille 2s ease-in-out infinite}
.g--etoiles .g-hero.has-cover .g-star{color:#fff}
.g--etoiles .g-star2{animation-delay:1s}
.g--etoiles .g-star svg,.g--etoiles .g-ciel svg{display:block;width:100%;height:100%;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--p) 55%,transparent))}
.g--etoiles .g-ciel{display:block;position:absolute;inset:0;pointer-events:none}
.g--etoiles .g-ciel i{position:absolute;aspect-ratio:1;color:var(--p);opacity:.55;animation:g-scintille 3.2s ease-in-out infinite}
.g--etoiles .g-hero.has-cover .g-ciel i{color:#fff}
.g--etoiles .g-kicker{font-size:1.12rem}
.g--etoiles .g-date{font-size:1.25rem}
.g--etoiles .g-intro,.g--etoiles .g-card{background:#fff;color:#2c2c2c;border:2px solid color-mix(in srgb,var(--a) 60%,#fff);border-radius:20px;box-shadow:0 10px 40px rgba(0,0,0,.1)}
.g--etoiles .g-intro{padding:clamp(20px,3.6vw,30px);margin-bottom:22px;animation:g-apparait .9s ease .25s both}
.g--etoiles .g-card{margin-bottom:22px}
.g--etoiles .g-lead{text-align:center}
.g--etoiles .g-facts{border-top:0;gap:12px}
.g--etoiles .g-facts > div{background:var(--b);border:0;border-left:4px solid var(--p);border-radius:10px;padding:14px 16px}
.g--etoiles .g-deadline{text-align:center;color:var(--t)}
.g--etoiles .g-card h2{color:var(--t);padding-bottom:12px;border-bottom:2px solid color-mix(in srgb,var(--a) 60%,#fff)}
.g--etoiles .btn,.g--etoiles button{border-radius:12px}
.g--etoiles .g-send button{font-size:1.1rem;padding:16px 22px;background:linear-gradient(135deg,var(--p),color-mix(in srgb,var(--p) 78%,#000));box-shadow:0 8px 22px color-mix(in srgb,var(--p) 35%,transparent)}
.g--etoiles input[type=text],.g--etoiles input[type=email],.g--etoiles input[type=tel],.g--etoiles input[type=number],.g--etoiles input:not([type]),.g--etoiles select,.g--etoiles textarea{border-radius:10px;border-width:2px;border-color:color-mix(in srgb,var(--a) 70%,#fff)}
@keyframes g-scintille{0%,100%{transform:scale(1) rotate(0);opacity:.95}50%{transform:scale(1.28) rotate(18deg);opacity:.45}}
@keyframes g-descend{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
@keyframes g-apparait{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){ .g--etoiles .g-star,.g--etoiles .g-ciel i,.g--etoiles .g-hero-in,.g--etoiles .g-intro{animation:none} }

/* Foyers : personne absente, moments par personne */
.g-absent{display:inline-flex;gap:8px;align-items:center;margin:0 0 10px;font-weight:600;font-size:.94rem;cursor:pointer}
.g-person.est-absent{background:#F6F2F0}
.g-person.est-absent .g-two+.g-two,.g-person.est-absent .field:not(:first-child),.g-person.est-absent [data-pm]{display:none}
.g-person.est-absent .g-two>.field:last-child{display:none}
.g-person.est-absent input[type=text]{text-decoration:line-through;color:#655B61}
.g-pp{margin-top:14px}
.g-pm .g-chips{margin-top:4px}
.g-perso{border-left:4px solid var(--p)}.g-perso-p{padding:10px 0;border-top:1px solid #E2D8CF}.g-perso-p:first-of-type{border-top:0}.g-perso-p h3{margin:0 0 4px;font-size:1.02rem}.g-perso-p p{margin:3px 0}

.g-apercu{position:sticky;top:0;z-index:50;background:#4A1238;color:#fff;text-align:center;font:600 .9rem/1.3 'Source Sans 3',system-ui,sans-serif;padding:9px 14px}

.g-std .g-kicker{letter-spacing:.02em}
.g-std-date{font-size:1.25rem;font-weight:600;margin:.2em 0 1em}
.g-std-form{text-align:left;max-width:440px;margin:1.2em auto 0}
.g-std-form .field{margin-bottom:12px}
.g-std-err{background:#FDECEC;border:1px solid #F3B8B8;color:#8A1C1C;border-radius:10px;padding:10px 14px;text-align:left}
