/* Les polices Google Fonts sont chargées depuis header.php via <link>
   (preconnect + preload) plutôt que par @import ici, pour éviter une
   chaîne de requêtes bloquant le rendu (HTML -> CSS -> fonts.googleapis). */

:root{
  --paper:#f4ecdc; --card:#fffdf7; --ink:#221c14; --muted:#7a7060;
  --accent:#e8552d; --accent-ink:#fffdf7; --border:#221c14; --border-soft:rgba(34,28,20,0.12);
  --teal:#2f6f5e; --mustard:#e2a034; --pink:#7c5cd6; --gold:#e8b13c; --red:#e0473f; --green:#2f8f5f;
  --success:#2f6f5e;
  --shadow: 0 2px 4px rgba(20,18,16,0.04), 0 14px 34px rgba(20,18,16,0.08);
  --shadow-sm: 0 1px 3px rgba(20,18,16,0.05), 0 6px 16px rgba(20,18,16,0.06);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;background-color:#201E1C;}
body{
  margin:0;font-family:'Onest',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);position:relative;overflow-x:hidden;min-height:100vh;min-height:100dvh;
  background-color:var(--paper);
}
header,main,footer{position:relative;z-index:1;}

/* Toast de confirmation après une action (ajout, copie, tirage lancé...) */
.toast{
  position:fixed;left:50%;bottom:20px;transform:translateX(-50%);
  background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;
  font-size:0.9rem;font-weight:600;box-shadow:var(--shadow);z-index:100;
  max-width:calc(100vw - 32px);text-align:center;
  animation:toast-in 0.25s ease-out;
}
.toast-hide{animation:toast-out 0.3s ease-in forwards;}
@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
@keyframes toast-out{to{opacity:0;transform:translateX(-50%) translateY(10px);}}

/* Réservation d'un cadeau ("Je m'en occupe") pour éviter les doublons */
.claim-row{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:6px;}
.claim-form{width:100%;}
.claim-btn{
  font-family:inherit;font-size:0.82rem;font-weight:600;cursor:pointer;
  border-radius:8px;padding:8px 12px;border:1px solid var(--border-soft);
  background:var(--card);color:var(--ink);
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
}
.claim-btn:hover{background:var(--paper);}
.claim-btn.claimed-by-me{background:var(--success);color:#fff;border-color:var(--success);}
/* Case à cocher dessinée en CSS plutôt qu'un émoji ☑️/✅, qui rend souvent
   comme un petit carré grisâtre selon la police système - ici c'est fiable
   et cohérent avec le reste du design, coché ou non. */
.claim-btn-check{
  flex:0 0 auto;width:16px;height:16px;border-radius:4px;
  border:2px solid var(--border-soft);background:var(--paper);position:relative;
}
.claim-btn.claimed-by-me .claim-btn-check{background:#fff;border-color:#fff;}
.claim-btn.claimed-by-me .claim-btn-check::after{
  content:'';position:absolute;left:3px;top:0px;width:5px;height:9px;
  border:solid var(--success);border-width:0 2px 2px 0;transform:rotate(40deg);
}
.claim-status{font-size:0.8rem;color:var(--muted);}
.badge-shared{margin-left:0;}

/* Ligne "Plus d'infos" / "Voir sur Amazon" sous un article : un vrai rang
   flex avec un séparateur visuel (pas un caractère "·" au milieu d'un texte,
   qui se retrouve seul sur sa ligne quand le bouton passe à la ligne). */
.item-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:8px 0;}
.item-links .text-btn{padding:0;white-space:nowrap;}
.item-links a.link{white-space:nowrap;}

/* Dans une carte "Liste de souhaits du créateur" : que l'article affiche le
   bouton "C'est moi qui achète" ou juste un statut ("déjà pris en charge"),
   on veut la même hauteur/allure pour que toutes les cartes de la grille
   restent alignées entre elles. */
.gift-recipient-item .claim-status{
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:8px 12px;border-radius:8px;background:var(--paper);border:1px solid var(--border-soft);
  min-height:20px;line-height:1.35;
}

/* Zones cliquables un peu plus grandes pour le doigt sur mobile */
.icon-remove{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:none;border:none;color:#c0392b;cursor:pointer;font-weight:700;font-size:0.95rem;
  padding:0;line-height:1;
}
.icon-remove:hover{background:rgba(192,57,43,0.12);}
.leave-group-btn{
  display:inline-flex;align-items:center;gap:6px;background:#fdf0ef;color:#c0392b;border:1px solid #f2cdc9;
  border-radius:99px;padding:8px 16px;font-size:0.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background 0.12s ease,border-color 0.12s ease;
}
.leave-group-btn:hover{background:#fbe1de;border-color:#e6a8a2;}

.wishlist-hero-header{display:flex;align-items:center;gap:14px;}
.wishlist-hero-emoji{font-size:2.4rem;flex-shrink:0;animation:illustration-float 3.6s ease-in-out infinite;}
.wishlist-progress{margin-top:14px;display:flex;flex-direction:column;gap:6px;}
.wishlist-progress-bar{height:8px;border-radius:99px;background:rgba(166,103,44,0.15);overflow:hidden;}
.wishlist-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--accent));transition:width 0.3s ease;}

/* Suivi des listes de souhaits (qui a déjà noté des idées, qui relancer) */
.wishlist-progress-list{display:flex;flex-direction:column;gap:2px;margin-top:8px;}
.wishlist-progress-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap;}
.wishlist-progress-row:last-child{border-bottom:none;}
.wishlist-progress-name{font-weight:600;flex:1;min-width:100px;}
.wishlist-progress-dots{display:flex;gap:4px;flex-shrink:0;}
.wp-dot{width:9px;height:9px;border-radius:2px;background:var(--border);display:inline-block;}
.wp-dot.filled{background:var(--accent);}
.wishlist-progress-count{font-size:0.78rem;color:var(--muted);flex-shrink:0;min-width:60px;}
.wishlist-reminder-btn{font-size:0.78rem;padding:6px 11px;white-space:nowrap;}

/* Message de groupe (fil visible par tous les membres) */
.group-message-form .row{align-items:stretch;}
.group-message-form button{flex-shrink:0;width:44px;font-size:1rem;}
.group-message-list{margin-top:16px;display:flex;flex-direction:column;gap:12px;}
.group-message-item{padding-bottom:12px;border-bottom:1px solid var(--border-soft);}
.group-message-item:last-child{border-bottom:none;padding-bottom:0;}
.group-message-item.group-message-hidden{display:none;}
.group-message-meta{font-size:0.82rem;display:flex;gap:8px;align-items:baseline;}
.group-message-body{margin:4px 0 0;font-size:0.9rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;}
.group-message-toggle{display:block;margin-top:12px;background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font-size:0.85rem;font-weight:600;}
.group-message-toggle:hover{text-decoration:underline;}
.group-message-empty{margin-top:14px;font-size:0.85rem;}
header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 24px;background:rgba(16,14,12,0.92);position:sticky;top:0;z-index:30;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,0.1);
}
header .logo-wrap{display:flex;align-items:center;gap:12px;text-decoration:none;}
header .logo-full{height:46px;width:auto;display:block;}
header .tagline{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-style:italic;font-size:0.76rem;color:rgba(255,255,255,0.55);margin-top:-1px;white-space:nowrap;}
@media (max-width:520px){ header .tagline{display:none;} }
header nav{display:flex;gap:16px;align-items:center;}
header .btn{box-shadow:none;border-color:transparent;}
header .btn.secondary, header button.secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.3);box-shadow:none;}
header .btn.secondary:hover, header button.secondary:hover{background:rgba(255,255,255,0.08);}
header .muted{color:rgba(255,255,255,0.65);}

header .nav-links{
  display:flex;gap:2px;align-items:center;
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);
  border-radius:999px;padding:5px;
}
header .nav-links a{
  position:relative;color:rgba(255,255,255,0.72);text-decoration:none;
  font-weight:600;font-size:0.84rem;white-space:nowrap;
  display:flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:999px;
  transition:color .18s ease,background .18s ease,transform .18s ease;
}
header .nav-links .nav-emoji{font-size:0.95rem;line-height:1;transform:translateY(-0.5px);}
header .nav-links a:hover{color:#fff;background:rgba(255,255,255,0.1);transform:translateY(-1px);}
header .nav-links a.active{color:#fff;background:var(--accent);box-shadow:0 4px 12px rgba(232,85,45,0.35);}
header .nav-links a.active:hover{transform:none;}
header .nav-account{display:flex;gap:10px;align-items:center;padding-left:16px;border-left:1px solid rgba(255,255,255,0.14);}
header .nav-account .greeting{display:none;}
@media (min-width:760px){ header .nav-account .greeting{display:inline;} }

/* Menu mobile : case à cocher cachée + label "hamburger", sans JS. En
   dessous de 760px, les liens et boutons de connexion/inscription ne
   tiennent plus sur une seule ligne à côté du logo (c'est ce qui cassait
   l'affichage sur mobile) : on les regroupe dans un panneau déroulant. */
.nav-toggle-checkbox{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;}
.nav-toggle-btn{display:none;}
header .nav-account .btn, header .nav-account button{white-space:nowrap;}
/* Écrans intermédiaires (petits portables) : menu resserré pour tout tenir sur une ligne. */
@media (min-width:1181px) and (max-width:1460px){
  header{gap:12px;}
  header .logo-full{height:38px;width:auto;}
  header .nav-links{padding:4px;}
  header .nav-links a{padding:8px 9px;font-size:0.8rem;gap:5px;}
  header .nav-links .nav-icon{display:none;}
  header .nav-account{gap:6px;padding-left:10px;}
  header .nav-account .btn, header .nav-account button{padding:9px 12px;font-size:0.82rem;}
}
@media (max-width:1180px){
  header{flex-wrap:wrap;position:sticky;}
  header .logo-wrap{flex:1;min-width:0;}
  .nav-toggle-btn{
    display:flex;align-items:center;justify-content:center;
    width:40px;height:40px;border-radius:10px;color:#fff;
    background:rgba(255,255,255,0.08);cursor:pointer;flex-shrink:0;order:2;
  }
  .nav-toggle-btn svg{width:22px;height:22px;}
  header nav{
    order:3;width:100%;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;
    max-height:0;overflow:hidden;opacity:0;position:relative;z-index:5;
    transition:max-height .28s ease,opacity .2s ease;
  }
  header .nav-links{flex-direction:column;align-items:stretch;gap:0;padding:0;margin-top:10px;background:none;border:none;border-radius:0;}
  header .nav-links a{display:flex;padding:12px 4px;border-top:1px solid rgba(255,255,255,0.1);font-size:0.95rem;border-radius:0;background:none !important;box-shadow:none !important;transform:none !important;}
  header .nav-links a.active{color:var(--gold);}
  header .nav-account{
    flex-direction:column;align-items:stretch;gap:8px;
    padding:14px 4px 4px;border-left:none;border-top:1px solid rgba(255,255,255,0.14);margin-top:4px;
  }
  header .nav-account .greeting{display:block;margin-bottom:2px;}
  header nav .btn, header nav button{width:100%;text-align:center;padding:11px;font-size:0.9rem;}
  .nav-toggle-checkbox:checked ~ nav{max-height:70vh;opacity:1;overflow-y:auto;}
  .nav-toggle-checkbox:checked ~ .nav-toggle-btn{background:rgba(255,255,255,0.18);}
}
@media (max-width:520px){
  header{padding:12px 16px;}
  header .logo-full{height:34px;}
}
@media (max-width:360px){
  header nav .btn, header nav button{padding:6px 8px;font-size:0.75rem;}
}

/* Fond animé désactivé au profit d'un papier pointillé + confettis fixes discrets dans le hero. */
.bg-fx{display:none;}

body.theme-noel{--accent:#c82f2f;}
body.theme-anniversaire{--accent:#7c5cd6;}
body.theme-mariage{--accent:#c9a15a;}
body.theme-naissance{--accent:#3d8fb0;}
body.theme-fete_religieuse{--accent:#c9a227;}
body.theme-autre{--accent:#6a4fc9;}

button, .btn{
  background:var(--accent);color:var(--accent-ink);border:1px solid var(--border-soft);
  padding:10px 18px;border-radius:8px;font-size:0.95rem;font-weight:600;
  font-family:'Onest',sans-serif;cursor:pointer;text-decoration:none;
  display:inline-block;box-shadow:var(--shadow-sm);
  transition:transform 0.12s ease, box-shadow 0.12s ease;
}
button:hover, .btn:hover{filter:brightness(1.06);box-shadow:0 4px 10px rgba(20,18,16,0.08), 0 10px 24px rgba(20,18,16,0.1);}
button:active, .btn:active{filter:brightness(0.97);box-shadow:var(--shadow-sm);}
button.secondary, .btn.secondary{background:var(--card);color:var(--ink);}
button.danger{background:#c0392b;color:#fff;}
button:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm);}

.btn-slide{
  position:relative;display:inline-flex;align-items:center;
  background:#15130f;color:#fff;border:none;border-radius:999px;
  padding:5px;height:54px;min-width:250px;font-size:1rem;font-weight:600;
  box-shadow:0 10px 26px rgba(0,0,0,0.3), inset 0 0 0 1px rgba(255,255,255,0.06);
  cursor:pointer;text-decoration:none;
}
.btn-slide .slide-label{text-decoration:none;}
.btn-slide .slide-knob{
  position:absolute;left:5px;top:5px;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;background:#fff;color:var(--accent);
  box-shadow:0 3px 8px rgba(0,0,0,0.3);flex-shrink:0;
  transition:left 0.5s cubic-bezier(.34,1.56,.64,1);
}
.btn-slide .slide-knob svg{width:18px;height:18px;transition:transform 0.5s cubic-bezier(.34,1.56,.64,1);}
.btn-slide .slide-label{
  flex:1;white-space:nowrap;text-align:left;
  padding-left:58px;padding-right:16px;
  transition:padding 0.5s cubic-bezier(.34,1.56,.64,1);
}
.btn-slide:hover .slide-knob, .btn-slide:focus-visible .slide-knob{
  left:calc(100% - 49px);
}
.btn-slide:hover .slide-knob svg, .btn-slide:focus-visible .slide-knob svg{transform:translateX(1px);}
.btn-slide:hover .slide-label, .btn-slide:focus-visible .slide-label{
  padding-left:16px;padding-right:58px;text-align:right;
}

main{max-width:720px;margin:0 auto;padding:24px;}
/* Deux vraies colonnes indépendantes (pas une grille par rangées) : la
   colonne de gauche (groupe + cadeaux déjà ajoutés) empile sa propre
   hauteur sans attendre que la grande zone de recherche Amazon à droite
   se termine. */
.group-main{max-width:1180px;display:flex;gap:24px;align-items:flex-start;padding-top:34px;}
.group-col-left{flex:0 1 420px;min-width:330px;display:flex;flex-direction:column;gap:24px;}
.group-col-right{flex:1 1 480px;min-width:0;}
/* Invité sur un évènement sans tirage : pas de "Ma wishlist" personnelle,
   donc la colonne de droite affiche à la place la wishlist du créateur - 
   ça lui donne une vraie grande zone pour comparer les cadeaux et choisir,
   plutôt que de laisser la colonne de gauche seule et raplapla. */
.gift-recipient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:14px;align-items:stretch;}
.group-main .card{margin:0;animation:group-card-in .55s cubic-bezier(.22,1,.36,1) both;}
.group-col-left > .card:nth-child(2){animation-delay:.12s}
.group-col-right > .card{animation-delay:.18s}
@keyframes group-card-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
/* Pas de position:sticky ici : un élément "positionné" peint toujours
   au-dessus de ses voisins non positionnés (comme .group-added-card juste
   en dessous), même s'il apparaît avant dans le code - en scrollant, la
   carte "collante" recouvrait donc le haut de "Tes cadeaux ajoutés". */
.group-overview-card{position:relative;overflow:hidden;}
.group-overview-card::before{content:'';position:absolute;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(243,178,58,.18),rgba(243,178,58,0));right:-96px;top:-115px;pointer-events:none;}
.group-titlebar{display:flex;align-items:flex-start;gap:13px;position:relative;}.group-title-illustration{width:58px;height:58px;color:#62402e;flex:0 0 auto;animation:illustration-float 4s ease-in-out infinite}.group-title-illustration svg{width:100%;height:100%;filter:drop-shadow(0 7px 7px rgba(129,72,29,.12))}.group-title-row{flex:1;align-items:flex-start;margin:0}.group-title-row h1{margin:2px 0 0;font-size:1.32rem;line-height:1.25}.group-kicker{display:block;color:var(--accent);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.group-meta{margin:14px 0 16px;padding:9px 11px;border-radius:9px;background:rgba(244,236,220,.75);display:inline-block}.invite-panel{padding:13px;border:1px solid var(--border-soft);border-radius:12px;background:#fffefa}.invite-panel label{margin-top:0;font-size:.78rem;font-weight:700;color:var(--muted)}.invite-row input{font-size:.78rem}.group-members{margin:17px 0 8px}.member-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--accent);color:#fff;font-size:.78rem}.group-members .pill{margin-top:7px}.gift-recipient-card{background:linear-gradient(135deg,#fff9ef,#fff4e5)!important;border-color:#f0dfc0!important;box-shadow:0 10px 23px rgba(166,103,44,.12)!important}.gift-recipient-card h2{font-size:1.08rem}.group-wishlist-card{min-width:0}.wishlist-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.wishlist-heading h2{margin:2px 0 0}.wishlist-sparkle{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#fff;background:linear-gradient(135deg,var(--gold),var(--accent));box-shadow:0 8px 18px rgba(224,71,63,.24);font-size:1.35rem;animation:illustration-float 3.8s ease-in-out .4s infinite}.wishlist-search-panel{position:relative;overflow:hidden;background:linear-gradient(135deg,#fbf3e2,#f7ecda);padding:20px}.wishlist-search-panel::after{content:'✦';position:absolute;right:18px;top:12px;color:rgba(226,160,52,.28);font-size:2rem;pointer-events:none}.wishlist-search-panel h3{position:relative;z-index:1}.amazon-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}.amazon-grid-item{min-height:235px;display:flex;flex-direction:column}.amazon-grid-item img,.amazon-grid-noimg{aspect-ratio:1/1}.amazon-grid-title{font-size:.83rem;min-height:2.5em}.amazon-grid-price{margin-top:auto;padding-top:8px}.group-wishlist-card .list-item{border-radius:10px;padding:12px 10px}.group-wishlist-card .list-item:hover{background:rgba(244,236,220,.55)}
.group-added-card{box-shadow:0 12px 28px rgba(59,37,18,.1)!important}.added-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid var(--border-soft)}.added-heading h2{margin:2px 0 0;font-size:1.1rem}.added-count{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-size:.85rem;font-weight:700}.added-gift-item{align-items:flex-start}.added-gift-item img,.added-gift-placeholder{width:58px;height:58px;flex:0 0 auto}.added-gift-placeholder{display:grid;place-items:center;background:var(--paper);border:1px solid var(--border-soft);border-radius:8px;font-size:1.35rem}
.card{
  background:var(--card);border:1px solid var(--border-soft);border-radius:14px;
  padding:20px;margin-bottom:18px;box-shadow:var(--shadow);
}
input, select, textarea{
  width:100%;padding:10px 12px;border:1px solid var(--border-soft);border-radius:8px;
  font-size:0.95rem;margin-bottom:12px;font-family:inherit;background:var(--card);color:var(--ink);
}
input:focus, select:focus, textarea:focus{outline:none;box-shadow:var(--shadow-sm);}
label{font-size:0.85rem;color:var(--muted);display:block;margin-bottom:4px;font-weight:500;}
h1,h2,h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;letter-spacing:-0.01em;}
h1{font-size:1.6rem;} h2{font-size:1.2rem;margin-top:0;}
.muted{color:var(--muted);font-size:0.9rem;}
.error{color:#c0392b;font-size:0.9rem;margin-bottom:10px;font-weight:600;}
/* Version plus voyante pour les erreurs qui méritent d'être vues tout de
   suite (ex : email déjà utilisé à la création d'un groupe) - un simple
   texte rouge se perdait au milieu de la mascotte et du reste du wizard. */
.error-banner{
  display:flex;gap:10px;align-items:flex-start;background:#fdecea;border:1px solid #f3b9b0;
  border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:0.88rem;line-height:1.5;
  color:#a02a1e;font-weight:600;
}
.error-banner .error-banner-icon{flex-shrink:0;font-size:1.1rem;line-height:1.5;}
.error-banner a.link{color:#a02a1e;text-decoration:underline;font-weight:700;}

/* Même principe que .error-banner mais pour une info importante et non une
   erreur (ex : rappel de vérifier les spams après l'envoi d'un code). */
.spam-banner{
  display:flex;gap:10px;align-items:flex-start;background:#fdf3e3;border:1px solid #eecf94;
  border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:0.85rem;line-height:1.5;
  color:#8a5a12;
}
.spam-banner .spam-banner-icon{flex-shrink:0;font-size:1.1rem;line-height:1.5;}
.spam-banner a.link{color:#8a5a12;text-decoration:underline;font-weight:700;}
.success{color:var(--success);font-size:0.9rem;margin-bottom:10px;font-weight:600;}
.list-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-soft);align-items:center;}
.list-item form{flex-shrink:0;margin:0;}
.list-item:last-child{border-bottom:none;}
.list-item img{width:64px;height:64px;object-fit:contain;border-radius:8px;background:var(--paper);border:1px solid var(--border-soft);}
.list-item .info{flex:1;}
.badge{display:inline-block;font-size:0.75rem;padding:2px 8px;border-radius:99px;background:#eee;color:#555;margin-left:6px;border:1px solid var(--border-soft);}
.badge.success{background:#e3f1ea;color:var(--success);}
/* Cartes de la grille "Liste de souhaits du créateur" (invité) : une vraie
   carte verticale de hauteur égale sur toute la ligne (align-items:stretch
   du parent grid s'en charge), avec le bouton toujours calé en bas - même
   si le titre du produit fait 1 ligne ou 5. */
.gift-recipient-item{
  flex-direction:column;align-items:stretch;text-align:center;
  border:1px solid var(--border-soft);border-radius:12px;padding:14px;
  background:var(--card);height:100%;
}
.gift-recipient-item img,
.gift-recipient-noimg{width:100%;height:150px;object-fit:contain;border-radius:8px;background:#fff;}
.gift-recipient-noimg{display:flex;align-items:center;justify-content:center;font-size:2.2rem;}
.gift-recipient-item .info{flex:1;display:flex;flex-direction:column;}
.gift-recipient-item .claim-row{margin-top:auto;padding-top:10px;}
.gift-recipient-item .badge-shared{margin-top:2px;}
.row{display:flex;gap:8px;align-items:center;}
.row input, .row select{width:auto;flex:1;min-width:0;margin-bottom:0;}
.row button, .row .btn{flex-shrink:0;white-space:nowrap;}
.top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
a.link{color:var(--accent);font-weight:600;}
details{border-bottom:1px solid var(--border-soft);padding:12px 0;}
details:last-of-type{border-bottom:none;}
details summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:'+';color:var(--accent);font-size:1.2rem;font-weight:700;flex-shrink:0;}
details[open] summary::after{content:'−';}
details .help-answer{margin-top:10px;color:var(--muted);line-height:1.6;}
details .help-answer p{margin:0 0 10px;}
details .help-answer p:last-child{margin-bottom:0;}

.amazon-panel{background:var(--paper);border:1px solid var(--border-soft);border-radius:12px;padding:16px;margin:14px 0 20px;}
.amazon-panel h3{margin:0 0 2px;font-size:1.05rem;}
.amazon-panel .muted{margin-top:0}
.amazon-panel .row{margin-top:10px}
.gift-reveal{
  position:relative;text-align:center;padding:28px 16px;min-height:120px;
  background:linear-gradient(155deg,#e8552d 0%,#c9391f 100%);
  border-radius:20px;box-shadow:0 10px 28px rgba(232,85,45,0.35);
  color:#fff;overflow:hidden;
}
.gift-reveal::before{
  content:'';position:absolute;inset:0;border-radius:20px;
  box-shadow:0 0 0 4px rgba(255,255,255,0.18) inset;pointer-events:none;
}
.gift-reveal .gift-reveal-box-label{color:#fff;}
.gift-reveal .gift-reveal-name{color:#fff;}
.gift-reveal-box-btn[hidden],.gift-reveal-name[hidden]{display:none !important;}

/* Le bouton "cadeau" lui-même : un gros emoji cadeau cliquable, qui vibre
   légèrement pour inviter au clic, puis "explose" (scale + rotation rapide)
   avant de laisser place au nom révélé. */
.gift-reveal-box-btn{
  background:none;border:none;box-shadow:none;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  margin:0 auto;padding:8px;color:#fff;position:relative;
}
.gift-reveal-box-btn:hover{filter:none;box-shadow:none;}
.gift-reveal-box-btn::before{
  content:'';position:absolute;top:-6px;left:50%;width:90px;height:90px;
  transform:translateX(-50%);border-radius:50%;
  background:rgba(255,255,255,0.35);
  animation:gift-reveal-pulse 1.8s ease-out infinite;
}
@keyframes gift-reveal-pulse{
  0%{transform:translateX(-50%) scale(0.7);opacity:0.7;}
  70%{transform:translateX(-50%) scale(1.35);opacity:0;}
  100%{transform:translateX(-50%) scale(1.35);opacity:0;}
}
.gift-reveal-box-emoji{
  font-size:4rem;line-height:1;display:inline-block;position:relative;z-index:1;
  animation:gift-reveal-wiggle 1.8s ease-in-out infinite;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,0.25));
}
.gift-reveal-box-label{
  font-size:1.05rem;font-weight:700;position:relative;z-index:1;
  text-shadow:0 1px 3px rgba(0,0,0,0.2);
}
.gift-reveal-box-label::after{content:' 👉';}
@keyframes gift-reveal-wiggle{
  0%,100%{transform:rotate(0deg) scale(1);}
  8%{transform:rotate(-8deg) scale(1.03);}
  16%{transform:rotate(7deg) scale(1.03);}
  24%{transform:rotate(-4deg) scale(1);}
  30%{transform:rotate(0deg) scale(1);}
}
.gift-reveal-box-btn--explode .gift-reveal-box-emoji{
  animation:gift-reveal-explode .22s ease-in forwards;
}
.gift-reveal-box-btn--explode .gift-reveal-box-label{animation:gift-reveal-fade-out .22s ease-in forwards;}
@keyframes gift-reveal-explode{0%{transform:scale(1) rotate(0);opacity:1;}100%{transform:scale(2.2) rotate(15deg);opacity:0;}}
@keyframes gift-reveal-fade-out{to{opacity:0;}}

.gift-reveal-name{margin:0;transform:scale(0.6) rotate(-4deg);opacity:0;}
.gift-reveal-name.gift-reveal-pop{animation:gift-reveal-pop .55s cubic-bezier(.22,1.4,.4,1) forwards;}
.gift-reveal-name.gift-reveal-shown{transform:none;opacity:1;}
@keyframes gift-reveal-pop{0%{transform:scale(0.6) rotate(-4deg);opacity:0;}60%{transform:scale(1.08) rotate(1deg);opacity:1;}100%{transform:scale(1) rotate(0);opacity:1;}}
.gift-reveal-confetti{position:absolute;inset:0;pointer-events:none;overflow:visible;}
.gift-reveal-confetti i{position:absolute;top:40%;width:7px;height:7px;border-radius:1px;opacity:0;animation:gift-reveal-burst ease-out forwards;}
@keyframes gift-reveal-burst{
  0%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);}
  100%{opacity:0;transform:translate(var(--dx,0px),var(--dy,120px)) rotate(360deg) scale(0.6);}
}
@media (prefers-reduced-motion:reduce){
  .gift-reveal-box-emoji{animation:none;}
  .gift-reveal-name{transform:none;opacity:1;}
  .gift-reveal-name.gift-reveal-pop{animation:none;}
  .gift-reveal-confetti{display:none;}
}
/* Page "Recherche d'idées cadeaux" : un bandeau chaleureux type héros, une
   grille de catégories illustrées, et une grille de résultats déjà remplie
   au chargement (façon page de résultats Amazon). */
.gift-finder-hero,.page-hero{
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:-24px;
  padding:56px 24px 64px;text-align:center;
  background:radial-gradient(120% 160% at 50% 0%, #3a2415 0%, #100e0c 70%);
  color:#fff;
}
.gift-finder-hero-inner,.page-hero-inner{max-width:680px;margin:0 auto;}
.gift-finder-hero h1,.page-hero h1{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:clamp(1.6rem,4vw,2.3rem);margin:0 0 12px;color:#fff;}
.gift-finder-hero p,.page-hero p{color:rgba(255,255,255,0.75);margin:0;font-size:1.02rem;}
.gift-finder-hero p{margin-bottom:26px;}
.gift-finder-searchbar{display:flex;gap:8px;flex-wrap:wrap;background:#fff;padding:6px;border-radius:16px;box-shadow:0 14px 34px rgba(0,0,0,0.3);}
.gift-finder-searchbar input{flex:1;min-width:200px;border:none;box-shadow:none;background:transparent;font-size:1rem;}
.gift-finder-searchbar input:focus{outline:none;box-shadow:none;}
.gift-finder-searchbar button{background:var(--accent);color:#fff;white-space:nowrap;}
/* Bandeau générique réutilisé sur les pages de contenu (calendrier, blog,
   aide, à propos, pages SEO Secret Santa/listes) pour un look uniforme avec
   la page "Idées cadeaux", plus petit car pas de barre de recherche. */
.page-hero{padding:40px 24px 44px;margin-bottom:32px;}
.page-hero-inner{max-width:760px;}
.page-hero h1{font-size:clamp(1.5rem,3.6vw,2.1rem);}
@media (max-width:520px){ .gift-finder-hero{padding:40px 16px 48px;} .page-hero{padding:32px 16px 36px;} }

.gift-finder-cats{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;
  margin-top:-40px;position:relative;z-index:2;
}
.gift-finder-cat{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  background:var(--card);border:2px solid transparent;border-radius:16px;
  padding:16px 8px;box-shadow:var(--shadow-sm);font-family:'Onest',sans-serif;
  font-weight:600;font-size:0.82rem;color:var(--ink);cursor:pointer;text-align:center;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.gift-finder-cat:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(20,18,16,0.12);}
.gift-finder-cat.active{border-color:var(--accent);background:#fff5ef;}
.gift-finder-cat-emoji{font-size:1.7rem;line-height:1;}
@media (max-width:520px){ .gift-finder-cats{margin-top:-30px;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));} }

.gift-finder-results-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1.2rem;}
.amazon-grid-skeleton{
  aspect-ratio:0.85;background:linear-gradient(100deg,var(--card) 30%,var(--paper) 50%,var(--card) 70%);
  background-size:200% 100%;animation:gift-skeleton-shimmer 1.3s ease-in-out infinite;border:1px solid var(--border-soft);
}
@keyframes gift-skeleton-shimmer{0%{background-position:150% 0;}100%{background-position:-50% 0;}}

.amazon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin:14px 0 2px;}
.amazon-grid-item{
  background:var(--card) !important;color:var(--ink) !important;border:1px solid var(--border-soft) !important;border-radius:10px;padding:10px;
  box-shadow:var(--shadow-sm);transition:transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;text-align:left;font-family:inherit;font-weight:400;
  display:flex;flex-direction:column;
}
.amazon-grid-item:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(20,18,16,0.1);border-color:var(--accent) !important;}
.amazon-grid-item img{width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:8px;background:#fff;display:block;margin-bottom:8px;}
.amazon-grid-noimg{width:100%;aspect-ratio:1/1;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:1.8rem;margin-bottom:8px;}
.amazon-grid-title{font-size:0.8rem;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.1em;}
.amazon-grid-price{font-size:0.85rem;font-weight:700;color:var(--accent);margin-top:6px;}
.amazon-grid-rating{font-size:0.76rem;color:var(--ink);margin-top:4px;}
.amazon-item-actions{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-soft);}
.amazon-item-btn{display:block;width:100%;text-align:center;font-size:0.76rem;font-weight:600;padding:7px 8px;border-radius:7px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit;cursor:pointer;box-shadow:none;}
.amazon-item-btn-view{background:var(--paper);color:var(--ink);border:1px solid var(--border-soft);}
.amazon-item-btn-view:hover{border-color:var(--accent);color:var(--accent);}
.amazon-item-btn-add{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);}
.amazon-item-btn-add:hover{filter:brightness(1.06);}
.amazon-item-btn-info{background:var(--card);color:var(--ink);border:1px solid var(--border-soft);}
.amazon-item-btn-info:hover{border-color:var(--accent);color:var(--accent);}

.pk-modal-overlay{position:fixed;inset:0;background:rgba(30,22,14,0.55);display:none;align-items:center;justify-content:center;padding:16px;z-index:1000;}
.pk-modal-overlay[hidden]{display:none !important;}
.pk-modal-overlay.is-open{display:flex;}
.pk-modal{background:var(--card);color:var(--ink);border-radius:16px;max-width:640px;width:100%;max-height:88vh;overflow-y:auto;position:relative;box-shadow:0 20px 50px rgba(0,0,0,0.3);display:block;}
/* Bouton de fermeture : on neutralise le style générique des <button>
   (padding, ombre, fond accent) qui décentrait la croix, et on le garde
   collé en haut à droite même quand on fait défiler la fiche. */
.pk-modal-close{
  position:sticky;top:12px;margin:12px 12px -52px auto;
  display:grid;place-items:center;width:40px;height:40px;padding:0;
  border-radius:50%;border:none;background:rgba(255,255,255,0.92);color:var(--ink);
  box-shadow:0 4px 14px rgba(20,18,16,0.18);cursor:pointer;z-index:5;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .15s ease,background .15s ease,color .15s ease;
}
.pk-modal-close svg{width:18px;height:18px;display:block;}
.pk-modal-close:hover{filter:none;background:var(--ink);color:#fff;transform:rotate(90deg);box-shadow:0 6px 18px rgba(20,18,16,0.25);}
.pk-modal-close:focus-visible{outline:3px solid rgba(232,85,45,0.45);outline-offset:2px;}
#pkProductModalBody{display:flex;flex-direction:column;width:100%;}
.pk-modal-gallery{flex:0 0 auto;padding:24px;display:flex;flex-direction:column;gap:10px;align-items:center;background:#fff;border-radius:16px 16px 0 0;}
.pk-modal-noimg{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:#fff;}

.pk-modal-slider{position:relative;width:100%;aspect-ratio:auto;height:280px;overflow:hidden;border-radius:8px;background:#fff;touch-action:pan-y;}
.pk-modal-slider-track{display:flex;height:100%;transition:transform 0.25s ease;}
.pk-modal-slide{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;}
.pk-modal-slide img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;}
.pk-modal-slider-arrow{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--border-soft);background:rgba(255,255,255,0.9);color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.pk-modal-slider-arrow:hover{border-color:var(--accent);color:var(--accent);}
.pk-modal-slider-prev{left:8px;}
.pk-modal-slider-next{right:8px;}
.pk-modal-slider-dots{position:absolute;bottom:8px;left:0;right:0;display:flex;gap:5px;justify-content:center;}
.pk-modal-slider-dot{width:7px;height:7px;border-radius:50%;background:rgba(0,0,0,0.25);cursor:pointer;}
.pk-modal-slider-dot.active{background:var(--accent);}

.pk-modal-thumbs{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}
.pk-modal-thumbs img{width:44px;height:44px;object-fit:contain;background:#fff;border:1px solid var(--border-soft);border-radius:6px;cursor:pointer;padding:2px;}
.pk-modal-thumbs img:hover{border-color:var(--accent);}
.pk-modal-thumbs img.active{border-color:var(--accent);border-width:2px;}
.pk-modal-info{flex:0 0 auto;padding:20px 24px 24px;}
.pk-modal-info h3{margin:0 0 8px;font-size:1.08rem;line-height:1.35;padding-right:26px;}
.pk-modal-rating{font-size:0.85rem;margin-bottom:6px;}
.pk-modal-price{font-size:1.15rem;font-weight:700;color:var(--accent);margin-bottom:10px;}
.pk-modal-bullets{margin:0 0 14px;padding-left:18px;font-size:0.85rem;line-height:1.5;color:var(--ink);}
.pk-modal-bullets li{margin-bottom:4px;}
.pk-modal-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:0.8rem;color:var(--muted);margin-bottom:10px;}
.pk-modal-description{font-size:0.85rem;line-height:1.5;color:var(--ink);margin:0 0 14px;}
.pk-modal-specs{width:100%;border-collapse:collapse;font-size:0.8rem;margin:0 0 14px;}
.pk-modal-specs td{padding:5px 8px;border-bottom:1px solid var(--border-soft);}
.pk-modal-specs td:first-child{color:var(--muted);width:40%;}
.pk-modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:6px;}
@media (max-width:520px){
  .pk-modal{max-height:92vh;}
  #pkProductModalBody{flex-direction:column;}
  .pk-modal-gallery{border-radius:16px 16px 0 0;padding:18px;}
  .pk-modal-info{padding:16px;}
}
.amazon-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;}
.amazon-chip{border:1px solid var(--border-soft) !important;background:var(--card) !important;color:var(--ink) !important;border-radius:999px;padding:6px 13px;font-size:0.8rem;font-weight:500;box-shadow:none;cursor:pointer;white-space:nowrap;}
.amazon-chip:hover{filter:none;border-color:var(--accent) !important;}
.amazon-chip.active{background:var(--accent) !important;border-color:var(--accent) !important;color:var(--accent-ink) !important;}
.amazon-search-status{margin:12px 0 2px;color:var(--muted);font-size:0.9rem;}

.checkbox-label{display:flex;align-items:flex-start;gap:8px;font-size:0.88rem;color:var(--ink);font-weight:500;margin:4px 0 14px;cursor:pointer;}
.checkbox-label input[type="checkbox"]{width:auto;margin:2px 0 0;flex-shrink:0;accent-color:var(--accent);}
footer{text-align:center;color:var(--muted);font-size:0.8rem;padding:24px;}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--border-soft);border-radius:99px;padding:4px 12px;font-size:0.85rem;margin:2px;font-weight:500;}
.pill a{color:#c0392b;text-decoration:none;font-weight:700;}
.group-card{cursor:pointer;display:block;color:inherit;text-decoration:none;transition:box-shadow 0.12s ease, transform 0.12s ease;}
.group-card:hover{box-shadow:0 6px 16px rgba(20,18,16,0.1);transform:translateY(-1px);}
.group-card .top-row{align-items:flex-start;gap:10px;}
.group-card .top-row > div:first-child{min-width:0;overflow-wrap:break-word;}
.group-card .top-row > span{flex-shrink:0;font-size:1.3rem;line-height:1.4;color:var(--muted);}
form.inline{display:inline;}
.field-row{display:flex;gap:12px;}
.field-row > div{flex:1;}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:12px;margin-bottom:6px;}
.product-card{border:1px solid var(--border-soft);border-radius:10px;padding:12px;background:var(--paper);display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);}
.product-card .p-emoji{font-size:1.8rem;height:60px;display:flex;align-items:center;justify-content:center;background:var(--card);border-radius:8px;border:1px solid var(--border-soft);}
.product-card .p-title{font-size:0.85rem;font-weight:700;line-height:1.3;min-height:2.6em;}
.product-card .p-price{color:var(--accent);font-weight:800;font-size:0.9rem;}
.product-card form{margin:0;}
.product-card .see-link{font-size:0.72rem;text-align:center;color:var(--muted);text-decoration:none;font-weight:600;}

/* ---------- Hero vidéo (page d'accueil) ---------- */
main.full-bleed{max-width:none;margin:0;padding:0;}
.hero-video{
  position:relative;min-height:80vh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;padding:70px 24px 60px;color:#fff;
  background:radial-gradient(120% 120% at 50% 0%, #2a1f16 0%, #100e0c 60%);
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:-24px;
}
.hero-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.hero-video::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(15,12,10,0.72) 0%, rgba(15,12,10,0.5) 45%, rgba(15,12,10,0.92) 100%);
}
.confetti{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;}
.confetti i{position:absolute;top:-5%;display:block;width:6px;height:6px;border-radius:1px;opacity:0;animation:confettiFall linear infinite;}
@keyframes confettiFall{
  0%{transform:translateY(-10vh) rotate(0deg);opacity:0;}
  10%{opacity:.9;} 90%{opacity:.9;}
  100%{transform:translateY(105vh) rotate(300deg);opacity:0;}
}
.confetti i:nth-child(1){left:6%;background:var(--gold);animation-duration:9s;animation-delay:0s;}
.confetti i:nth-child(2){left:16%;background:var(--red);animation-duration:11s;animation-delay:1.5s;width:5px;height:9px;}
.confetti i:nth-child(3){left:27%;background:var(--green);animation-duration:8s;animation-delay:3s;border-radius:50%;}
.confetti i:nth-child(4){left:39%;background:var(--gold);animation-duration:12s;animation-delay:0.7s;width:5px;height:9px;}
.confetti i:nth-child(5){left:51%;background:#fff;animation-duration:10s;animation-delay:4s;border-radius:50%;}
.confetti i:nth-child(6){left:63%;background:var(--red);animation-duration:9.5s;animation-delay:2.2s;}
.confetti i:nth-child(7){left:74%;background:var(--green);animation-duration:11.5s;animation-delay:5s;width:5px;height:9px;}
.confetti i:nth-child(8){left:85%;background:var(--gold);animation-duration:8.5s;animation-delay:1s;border-radius:50%;}
.confetti i:nth-child(9){left:93%;background:#fff;animation-duration:13s;animation-delay:3.5s;}
.confetti i:nth-child(10){left:20%;background:var(--gold);animation-duration:10.5s;animation-delay:6s;border-radius:50%;}
.hero-inner{position:relative;z-index:2;max-width:720px;margin:0 auto;}
.hero-logo{width:min(90%,480px);height:auto;display:block;margin:0 auto 16px;text-align:center;}
@media (max-width:520px){ .hero-logo{width:min(90%,320px);margin-bottom:10px;} }
.hero-video h1{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:clamp(2rem, 6vw, 3.6rem);
  line-height:1.12;margin:0 0 20px;letter-spacing:-0.02em;color:#fff;
}
.hero-video h1 .accent{
  background:linear-gradient(90deg, var(--gold), var(--red) 55%, var(--gold));
  background-size:200% auto;-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;animation:shine 5s linear infinite;
}
@keyframes shine{0%{background-position:0% center;}100%{background-position:200% center;}}
.hero-video p.sub{font-size:1.05rem;color:rgba(255,255,255,0.8);max-width:540px;margin:0 auto 30px;line-height:1.6;}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:36px;}
.hero-ctas .btn{font-size:1rem;padding:13px 26px;box-shadow:0 10px 34px rgba(224,71,63,0.4);}
.hero-ctas .btn.secondary{box-shadow:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.3);}
.hero-ctas .btn-slide{background:var(--accent);color:#fff;box-shadow:0 10px 34px rgba(224,71,63,0.45), inset 0 0 0 1px rgba(255,255,255,0.15);}
.hero-ctas .btn-slide .slide-knob{background:#fff;color:var(--accent);}
.trust-row{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;color:rgba(255,255,255,0.65);font-size:0.85rem;font-weight:500;}
.trust-row span{display:flex;align-items:center;gap:6px;}
@media (max-width:680px){
  .hero-video{min-height:0;padding:48px 20px 40px;}
  .hero-ctas{flex-direction:column;align-items:stretch;}
  .hero-ctas .btn{width:100%;text-align:center;}
  .hero-ctas .btn-slide{width:100%;min-width:0;}
  .trust-row{gap:10px 16px;font-size:0.78rem;}
}

.how-wrap{
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  padding:36px 24px;display:flex;justify-content:center;
}
.how-wrap .card{max-width:960px;width:100%;margin:0;padding:36px 32px;}
.how-wrap .card > h2{font-size:1.5rem;}
.how-wrap .card > p.muted{font-size:1rem;max-width:520px;margin-left:auto;margin-right:auto;}
.how-wrap .card > h2 + p.muted, .how-wrap .card > p.muted:first-of-type{text-align:center;}
.how-wrap .card{text-align:center;}
@media (max-width:680px){
  .how-wrap{padding:24px 16px;}
  .how-wrap .card{padding:28px 20px;}
}

.how-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:22px;margin-top:28px;text-align:left;}
.how-arrow{display:none;}
.how-step{
  background:var(--card);border-top:3px solid transparent;
  border-image:linear-gradient(90deg, var(--gold), var(--red)) 1;
  border-radius:14px;padding:26px 22px;position:relative;
  box-shadow:0 2px 4px rgba(20,18,16,0.04), 0 12px 30px rgba(20,18,16,0.07);
}
.how-num{
  width:26px;height:26px;border-radius:50%;margin-bottom:10px;
  background:linear-gradient(135deg, var(--red), var(--gold));color:#fff;font-size:0.78rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.how-icon{font-size:1.6rem;margin-bottom:6px;}
.how-step h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1rem;margin:0 0 4px;}
.how-step p{font-size:0.85rem;margin:0;color:var(--muted);}
.how-step{overflow:hidden;isolation:isolate;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.how-step::before,.how-step::after{content:'';position:absolute;z-index:-1;border-radius:50%;pointer-events:none;}
.how-step::before{width:92px;height:92px;right:-40px;top:-42px;background:rgba(243,178,58,.15);}
.how-step::after{width:10px;height:10px;right:22px;top:20px;background:var(--red);box-shadow:18px 14px 0 -2px var(--gold),-12px 23px 0 -3px var(--green);transform:rotate(18deg);}
.how-step:hover{transform:translateY(-7px) rotate(-.4deg);box-shadow:0 18px 34px rgba(59,37,18,.14);}
.how-step:nth-child(even):hover{transform:translateY(-7px) rotate(.4deg);}
.how-illustration{width:96px;height:72px;margin:3px 0 12px;color:var(--ink);position:relative;}
.how-illustration svg{display:block;width:100%;height:100%;filter:drop-shadow(0 7px 6px rgba(129,72,29,.10));}
.illustration-invite{color:#9a462d;}.illustration-draw{color:#62402e;}.illustration-wishlist{color:#6b513c;}
.illustration-group{animation:illustration-float 4s ease-in-out infinite;}.illustration-invite{animation:illustration-float 4.6s ease-in-out .4s infinite;}.illustration-draw{animation:illustration-float 4.2s ease-in-out .8s infinite;}.illustration-wishlist{animation:illustration-float 4.8s ease-in-out 1.2s infinite;}
@keyframes illustration-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(1deg)}}
.reveal-card{opacity:0;transform:translateY(20px);}.reveal-card.is-visible{animation:card-reveal .58s cubic-bezier(.22,1,.36,1) forwards;}.reveal-card:nth-child(2).is-visible{animation-delay:.1s}.reveal-card:nth-child(3).is-visible{animation-delay:.2s}.reveal-card:nth-child(4).is-visible{animation-delay:.3s}
@keyframes card-reveal{to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.how-step,.how-step:hover{transform:none;transition:none}.how-illustration{animation:none}.reveal-card{opacity:1;transform:none}.reveal-card.is-visible{animation:none}}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:32px;text-align:center;}
.feature-card{
  background:var(--card);border-radius:18px;padding:36px 26px;text-align:center;
  box-shadow:0 2px 4px rgba(20,18,16,0.04), 0 12px 30px rgba(20,18,16,0.07);
}
.feature-icon{
  width:64px;height:64px;border-radius:50%;margin:0 auto 20px;
  background:linear-gradient(135deg, var(--gold), var(--red));
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;
  box-shadow:0 8px 18px rgba(224,71,63,0.25);
}
.feature-card h3{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1.12rem;margin:0 0 10px;}
.feature-card p{font-size:0.9rem;color:var(--muted);margin:0;line-height:1.55;}
.feature-card{position:relative;overflow:hidden;isolation:isolate;transition:transform .28s ease,box-shadow .28s ease;}
.feature-card::after{content:'';position:absolute;z-index:-1;width:130px;height:130px;right:-62px;bottom:-70px;border-radius:50%;background:rgba(243,178,58,.13);transition:transform .4s ease;}
.feature-card:hover{transform:translateY(-7px);box-shadow:0 20px 38px rgba(59,37,18,.13);}.feature-card:hover::after{transform:scale(1.35)}
.feature-illustration{width:82px;height:82px;margin:0 auto 17px;color:#67442f;animation:illustration-float 4.5s ease-in-out infinite;}
.feature-illustration svg{width:100%;height:100%;display:block;filter:drop-shadow(0 8px 8px rgba(129,72,29,.13));}
.illustration-list{color:#8b4e32;animation-delay:.65s}.illustration-secret{color:#684b39;animation-delay:1.2s}

.occasions-wrap{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:64px 24px;display:flex;justify-content:center;}
.occasions-inner{max-width:960px;width:100%;text-align:center;}
.occasions-inner h2{margin-bottom:8px;font-size:1.5rem;}
.occasions-inner > p.muted{font-size:1rem;}
.occasions-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;text-align:left;}
@media (max-width:820px){.occasions-strip{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.occasions-strip{grid-template-columns:1fr;}}
/* Variante pour les cartes au texte plus long (ex: calendrier) : 2 colonnes
   plus larges plutôt que 3 colonnes étroites qui font trop retourner à la ligne. */
.occasions-strip-wide{grid-template-columns:repeat(2,1fr);}
.occasions-strip-wide .occasion-card{padding:26px;gap:18px;}
.occasions-strip-wide .occasion-card p{margin:0 0 4px;}
@media (max-width:700px){.occasions-strip-wide{grid-template-columns:1fr;}}
.occasion-card{
  background:var(--card);border-radius:16px;padding:24px;display:flex;gap:16px;align-items:flex-start;
  box-shadow:var(--shadow-sm);color:inherit;text-decoration:none;
}
.occasion-card{transition:transform .25s ease,box-shadow .25s ease;}.occasion-card:hover{transform:translateY(-5px);box-shadow:0 15px 28px rgba(59,37,18,.12);}
.occasion-date{
  flex-shrink:0;width:58px;height:58px;border-radius:14px;background:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.1;
}
.occasion-date .day{font-size:1.25rem;font-weight:700;color:var(--ink);}
.occasion-date .month{font-size:0.65rem;text-transform:uppercase;color:var(--muted);letter-spacing:0.04em;}
.occasion-icon{
  flex-shrink:0;width:58px;height:58px;border-radius:14px;background:var(--paper);
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;
}
.occasion-card h3{font-size:1rem;margin:0 0 6px;font-family:'Bricolage Grotesque',system-ui,sans-serif;}
.occasion-card p{font-size:0.85rem;color:var(--muted);margin:0;line-height:1.5;}
@media (max-width:680px){
  .occasions-wrap{padding:40px 16px;}
}

.cta-banner{
  width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:8px;
  background:radial-gradient(120% 160% at 50% 0%, #2a1f16 0%, #100e0c 65%);
  color:#fff;text-align:center;padding:88px 24px;position:relative;overflow:hidden;
}
.cta-banner h2{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:clamp(1.6rem,4vw,2.4rem);margin:0 0 14px;color:#fff;}
.cta-banner p{color:rgba(255,255,255,0.75);margin:0 0 34px;font-size:1.05rem;}
.cta-banner .btn-slide{margin:0 auto;background:var(--accent);box-shadow:0 10px 34px rgba(224,71,63,0.45), inset 0 0 0 1px rgba(255,255,255,0.15);}
.cta-banner .btn-slide .slide-knob{background:#fff;color:var(--accent);}
@media (max-width:680px){
  .cta-banner{padding:56px 20px;}
}

/* Bandeau "concours de lancement" affiché sur la page d'accueil, juste sous
   la vidéo hero, avec la photo de la carte cadeau Amazon à gagner. */
.launch-banner{
  display:flex;align-items:center;gap:20px;
  max-width:900px;margin:28px auto 0;padding:18px 22px;
  background:linear-gradient(155deg,#e8552d 0%,#c9391f 100%);
  border-radius:18px;color:#fff;text-decoration:none;
  box-shadow:0 14px 34px rgba(232,85,45,0.35);
  transition:transform .2s ease,box-shadow .2s ease;
}
.launch-banner:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(232,85,45,0.42);}
.launch-banner img{
  flex-shrink:0;width:110px;height:auto;border-radius:10px;
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}
.launch-banner-text{flex:1;min-width:0;}
.launch-banner-tag{
  display:inline-block;font-size:0.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:0.04em;background:rgba(255,255,255,0.2);padding:3px 10px;
  border-radius:999px;margin-bottom:6px;
}
.launch-banner h2{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:clamp(1.1rem,2.6vw,1.4rem);margin:0 0 4px;color:#fff;}
.launch-banner p{margin:0;font-size:0.88rem;color:rgba(255,255,255,0.85);}
.launch-banner-cta{
  flex-shrink:0;font-weight:700;font-size:0.9rem;white-space:nowrap;
  background:#fff;color:var(--accent);padding:10px 16px;border-radius:999px;
}
@media (max-width:680px){
  .launch-banner{flex-wrap:wrap;justify-content:center;text-align:center;margin:20px 16px 0;padding:20px;}
  .launch-banner img{width:90px;}
  .launch-banner-cta{width:100%;text-align:center;}
}

.share-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.share-btn{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--card);border:1px solid var(--border-soft);color:var(--ink);
  padding:8px 14px;border-radius:99px;font-size:0.85rem;font-weight:600;
  text-decoration:none;cursor:pointer;box-shadow:var(--shadow-sm);
  font-family:'Onest',sans-serif;
}
.share-btn:hover{filter:brightness(1.04);}

.wiz-choices{display:flex;flex-wrap:wrap;gap:8px;}
.wiz-choice{
  background:var(--card);color:var(--ink);border:1px solid var(--border-soft);padding:8px 14px;
  border-radius:99px;font-size:0.9rem;cursor:pointer;font-family:'Onest',sans-serif;font-weight:600;
  box-shadow:var(--shadow-sm);
}
.wiz-choice.selected{background:var(--accent);color:var(--accent-ink);}

/* Assistant 3 étapes sur la page d'invitation (voir invite.php). */
.invite-wiz-dots{display:flex;gap:8px;justify-content:center;margin-bottom:20px;}
.invite-wiz-dot{width:9px;height:9px;border-radius:50%;background:rgba(166,103,44,0.2);transition:background 0.2s ease,transform 0.2s ease;}
.invite-wiz-dot.active{background:var(--accent);transform:scale(1.15);}
.invite-wiz-step{animation:wiz-step-fade-in 0.3s ease;}
@keyframes wiz-step-fade-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.invite-wiz-hero-emoji{font-size:3rem;text-align:center;margin-bottom:6px;animation:illustration-float 3.6s ease-in-out infinite;}
.invite-wiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:10px;}
.text-btn{background:none;border:none;box-shadow:none;color:var(--accent);font-weight:600;text-decoration:underline;padding:6px 4px;}
.text-btn:hover{filter:none;color:var(--accent);text-decoration:underline;box-shadow:none;}

.blog-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:20px;}
.blog-card{display:block;text-decoration:none;color:inherit;}
.blog-article{max-width:720px;margin:0 auto;}
.blog-content{line-height:1.7;font-size:1rem;}
.blog-content h2{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1.25rem;margin:28px 0 10px;}
.blog-content p{margin:0 0 14px;}
.blog-content ul{margin:0 0 14px;padding-left:22px;}
.blog-content li{margin-bottom:6px;}

.gen-field{margin-bottom:18px;}
.gen-field label{display:block;margin-bottom:6px;font-weight:600;font-size:0.9rem;}
.gen-interests{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-top:2px;}
.gen-interest{
  display:flex;align-items:center;gap:8px;padding:10px 12px;
  background:var(--paper);color:var(--ink);border:1px solid var(--border-soft);border-radius:10px;
  font-size:0.88rem;font-weight:600;cursor:pointer;box-shadow:none;
  font-family:'Onest',sans-serif;line-height:1.25;transition:filter 0.1s ease;
}
.gen-interest:hover{filter:brightness(0.98);}
.gen-interest input[type="checkbox"]{margin:0;flex-shrink:0;width:16px;height:16px;accent-color:var(--accent);}
.gen-interest.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.gen-submit{margin-top:22px;width:100%;}
@media (min-width:520px){ .gen-submit{width:auto;} }

.notice{
  display:flex;gap:10px;align-items:flex-start;background:var(--paper);border:1px solid var(--border-soft);
  border-radius:10px;padding:12px 14px;margin:0 0 16px;font-size:0.83rem;line-height:1.5;color:var(--muted);
}
.notice .notice-icon{flex-shrink:0;font-size:1rem;line-height:1.5;}
.notice strong{color:var(--ink);}

/* Empêche le header collant de recouvrir le titre visé par une ancre (#how-it-works, etc). */
[id]{scroll-margin-top:88px;}
@media (max-width:520px){ [id]{scroll-margin-top:76px;} }

/* ---------- Confort mobile ---------- */
@media (max-width:600px){
  main{padding:16px 14px;}
  .group-main{display:block;max-width:720px;padding-top:18px;}
  .group-col-left, .group-col-right{display:block;gap:0;}
  .group-main .card{margin-bottom:14px;animation:none;}
  .group-title-illustration{width:48px;height:48px;}
  .group-title-row h1{font-size:1.16rem;}
  .wishlist-search-panel{padding:16px;}
  .amazon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .amazon-grid-item{min-height:0;padding:8px;}
  .card{padding:16px;border-radius:12px;margin-bottom:14px;}
  h1{font-size:1.3rem;line-height:1.32;}
  h2{font-size:1.1rem;}
  h3{font-size:0.98rem;}

  /* Les lignes input+bouton (lien d'invitation, recherche Amazon, ajout
     manuel, exclusions...) s'empilent verticalement plutôt que de se
     tasser côte à côte. */
  .row{flex-wrap:wrap;}
  .row > input, .row > select{flex:1 1 100%;width:100%;}
  .row > button, .row > .btn{flex:1 1 100%;width:100%;text-align:center;}
  form.row{gap:8px 8px;}
  form.row > span{flex:0 0 auto;width:auto;text-align:center;}

  .top-row{flex-wrap:wrap;gap:10px;}
  .top-row form{width:100%;}
  .top-row form button{width:100%;}
  /* Les cartes de groupe (liste "Mes tirages") gardent leur titre et le
     chevron ">" sur la même ligne : on ne veut PAS qu'ils s'empilent comme
     un titre + bouton "Supprimer" classique. */
  .group-card .top-row{flex-wrap:nowrap;}
  .group-card .top-row form{width:auto;}

  /* Les cartes de cadeaux (wishlist) gardent l'image et le texte côte à
     côte, mais le bouton "Retirer" passe sur sa propre ligne pour rester
     facile à toucher. */
  .list-item{flex-wrap:wrap;}
  .list-item form{width:100%;}
  .list-item form button{width:100%;}

  .share-row{gap:8px;}
  .share-btn{flex:1 1 calc(50% - 8px);justify-content:center;text-align:center;}

  .pill{font-size:0.82rem;padding:5px 11px;}

  .amazon-panel{padding:14px;}
  .amazon-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .amazon-chip-row{gap:6px 6px;}
  .amazon-chip{padding:6px 11px;font-size:0.78rem;}

  button, .btn{padding:11px 16px;}
}

/* Page "Ajouter ce produit" (quickadd.php) : carte centrée avec un aperçu
   produit plus grand, au lieu d'une petite carte collée à gauche. */
.quickadd-wrap{display:flex;justify-content:center;padding-top:12px;}
.quickadd-card{width:100%;max-width:440px;margin:0 auto;}
.quickadd-success-icon{font-size:2.6rem;line-height:1;margin-bottom:6px;}
.quickadd-product{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:8px;background:var(--paper);border:1px solid var(--border-soft);
  border-radius:12px;padding:18px;margin:16px 0 20px;
}
.quickadd-product-img{
  width:150px;height:150px;object-fit:contain;border-radius:10px;
  background:var(--card);border:1px solid var(--border-soft);
}
.quickadd-product-noimg{display:flex;align-items:center;justify-content:center;font-size:2.4rem;}
.quickadd-product-title{font-weight:600;font-size:0.98rem;line-height:1.4;}
.quickadd-product-price{color:var(--accent);font-weight:700;font-size:1.05rem;}
.quickadd-form label{text-align:center;margin-bottom:8px;}
.quickadd-form select{margin-bottom:16px;}
@media (max-width: 480px) {
  .quickadd-product-img{width:120px;height:120px;}
}

/* ---------- Générateur de cadeaux (idees-cadeaux.php / gift_generator.php) ---------- */
.gift-finder-cats-flat{margin-top:12px;}
@media (max-width:520px){ .gift-finder-cats-flat{margin-top:12px;} }
.gg-card{
  position:relative;z-index:2;max-width:960px;margin:-40px auto 0;
  background:var(--card);border:1px solid var(--border-soft);border-radius:20px;
  padding:26px 26px 24px;box-shadow:0 18px 44px rgba(20,18,16,0.14);
}
.gg-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.gg-head-icon{
  flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;font-size:1.6rem;
  background:linear-gradient(135deg,var(--gold),var(--accent));box-shadow:0 8px 18px rgba(232,85,45,0.25);
  animation:illustration-float 3.8s ease-in-out infinite;
}
.gg-kicker{display:block;color:var(--accent);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.gg-head h2{margin:2px 0 0;font-size:1.35rem;}
.gg-progress{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.gg-progress-bar{flex:1;height:8px;border-radius:99px;background:rgba(166,103,44,0.15);overflow:hidden;}
.gg-progress-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--accent));transition:width .35s ease;}
.gg-progress-label{font-size:.78rem;font-weight:700;color:var(--muted);white-space:nowrap;}

.gg-step{animation:wiz-step-fade-in .3s ease;}
.gg-step-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1.25rem;margin:0 0 4px;}
.gg-step-hint{color:var(--muted);font-size:.9rem;margin:0 0 16px;}
.gg-counter{font-size:.8rem;font-weight:700;color:var(--accent);margin:-8px 0 12px;transition:color .2s ease;}
.gg-counter-warn{color:#c0392b;}

.gg-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.gg-options-compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}
.gg-option{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:92px;
  background:#fff;color:var(--ink);border:2px solid var(--border-soft);border-radius:14px;
  padding:14px 10px;font-family:'Onest',sans-serif;font-weight:600;font-size:.88rem;text-align:center;line-height:1.25;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.gg-options-compact .gg-option{min-height:56px;flex-direction:row;}
.gg-option:hover{filter:none;transform:translateY(-2px);border-color:rgba(232,85,45,0.45);box-shadow:0 10px 22px rgba(20,18,16,0.1);}
.gg-option.selected{border-color:var(--accent);background:#fff3ec;color:var(--ink);box-shadow:0 0 0 3px rgba(232,85,45,0.15);}
.gg-option-emoji{font-size:1.75rem;line-height:1;}
.gg-option-label{display:block;}

.gg-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap;}
.gg-nav-right{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;}
.gg-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:var(--card);color:var(--ink);border:1px solid var(--border-soft);border-radius:10px;
  padding:10px 18px;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-sm);
}
.gg-btn:hover{border-color:var(--accent);color:var(--accent);filter:none;}
.gg-btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.gg-btn-primary:hover{color:var(--accent-ink);filter:brightness(1.06);}
.gg-btn-primary:disabled{opacity:.45;cursor:not-allowed;filter:none;}
.gg-btn-ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--muted);}
.gg-btn-ghost:hover{background:rgba(244,236,220,.7);border-color:transparent;color:var(--ink);}

.gg-summary{margin-bottom:14px;}
.gg-chips{display:flex;flex-wrap:wrap;gap:8px;}
.gg-chip{
  background:#fff3ec;color:var(--ink);border:1px solid rgba(232,85,45,0.3);border-radius:99px;
  padding:6px 12px;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:none;
}
.gg-chip:hover{border-color:var(--accent);filter:none;}
.gg-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border-soft);}
.gg-tab{
  background:transparent;color:var(--muted);border:1px solid var(--border-soft);border-radius:99px;
  padding:7px 14px;font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:none;
}
.gg-tab span{display:inline-block;min-width:20px;margin-left:4px;padding:1px 6px;border-radius:99px;background:var(--paper);font-size:.72rem;}
.gg-tab.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.gg-tab.active span{background:rgba(255,255,255,0.18);}
.gg-loading{text-align:center;font-weight:600;color:var(--muted);margin:6px 0 14px;}
.gg-empty{text-align:center;padding:26px 10px;background:var(--paper);border-radius:14px;}
.gg-empty p{margin:4px 0;}
.gg-results-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:22px;}

@media (max-width:600px){
  .gg-card{margin:-30px 0 0;padding:18px 14px;border-radius:16px;}
  .gg-head h2{font-size:1.12rem;}
  .gg-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .gg-options-compact{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gg-option{min-height:84px;padding:12px 6px;font-size:.82rem;}
  .gg-nav .gg-btn{padding:10px 14px;}
  .gg-results-actions .gg-btn{flex:1 1 45%;}
}

/* ---------- Encart de mise en avant du générateur (gift_generator_promo.php) ---------- */
.gg-promo{
  position:relative;overflow:hidden;max-width:960px;margin:28px auto;
  display:flex;gap:22px;align-items:center;
  background:radial-gradient(120% 140% at 0% 0%,#3a2415 0%,#100e0c 75%);color:#fff;
  border-radius:22px;padding:30px 30px;box-shadow:0 18px 44px rgba(20,18,16,0.22);
}
.gg-promo::after{content:'✦';position:absolute;right:26px;top:14px;color:rgba(232,177,60,0.35);font-size:2.4rem;pointer-events:none;}
.gg-promo-deco{
  flex:0 0 auto;display:grid;place-items:center;width:96px;height:96px;border-radius:26px;font-size:3rem;
  background:linear-gradient(135deg,var(--gold),var(--accent));box-shadow:0 12px 28px rgba(232,85,45,0.4);
  animation:illustration-float 3.8s ease-in-out infinite;
}
.gg-promo-deco svg{width:54%;height:54%;color:#fff;}
.gg-promo-body{flex:1;min-width:0;position:relative;z-index:1;}
.gg-promo-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.gg-promo h2{font-family:'Bricolage Grotesque',system-ui,sans-serif;color:#fff;margin:0 0 8px;font-size:clamp(1.25rem,2.6vw,1.6rem);line-height:1.25;}
.gg-promo p{color:rgba(255,255,255,0.78);margin:0 0 16px;font-size:.95rem;}
.gg-promo-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;align-items:center;}
.gg-promo-chips-label{font-size:.8rem;color:rgba(255,255,255,0.6);font-weight:600;margin-right:2px;}
.gg-promo-chip{
  display:inline-flex;align-items:center;padding:8px 14px;border-radius:99px;font-size:.84rem;font-weight:600;text-decoration:none;
  background:#fff;color:var(--ink);box-shadow:0 4px 12px rgba(0,0,0,0.2);transition:transform .15s ease,box-shadow .15s ease;
}
.gg-promo-chip:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,0.28);color:var(--accent);}
.gg-promo-chip-light{background:rgba(255,255,255,0.1);color:#fff;border:1px solid rgba(255,255,255,0.22);box-shadow:none;}
.gg-promo-chip-light:hover{background:rgba(255,255,255,0.18);color:#fff;box-shadow:none;}
.gg-promo-cta{margin-top:6px;background:var(--accent);color:#fff;box-shadow:0 10px 30px rgba(224,71,63,0.45);}
.gg-promo-cta .slide-knob{background:#fff;color:var(--accent);}
.gg-promo-compact{padding:24px;}
.gg-promo-compact .gg-promo-deco{width:72px;height:72px;font-size:2.2rem;border-radius:20px;}
@media (max-width:640px){
  .gg-promo{flex-direction:column;align-items:flex-start;padding:24px 18px;border-radius:18px;margin:22px 0;}
  .gg-promo-deco{width:64px;height:64px;font-size:2rem;border-radius:18px;}
  .gg-promo-cta{width:100%;}
}

/* Petite pastille "Nouveau" dans le menu */
.nav-new{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:99px;background:var(--gold);color:#221c14;font-size:.6rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;}
.gg-seo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:14px 0 26px;}
.gg-seo-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:16px 10px;background:var(--card);border:1px solid var(--border-soft);border-radius:14px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .15s ease;}
.gg-seo-card:hover{transform:translateY(-2px);border-color:var(--accent);}
.gg-seo-card span{font-size:1.8rem;line-height:1;}
.gg-seo-card strong{font-size:.9rem;}
.gg-seo-card small{color:var(--muted);font-size:.76rem;}
.gg-seo-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 26px;}
.gg-seo-links a{padding:7px 13px;border-radius:99px;background:#fff3ec;border:1px solid rgba(232,85,45,0.25);color:var(--ink);font-size:.84rem;font-weight:600;text-decoration:none;}
.gg-seo-links a:hover{border-color:var(--accent);color:var(--accent);}

/* Chargement des infos supplémentaires dans le pop-up produit */
.pk-modal-loading{margin:14px 0 16px;padding:14px;border-radius:12px;background:#fff7ef;border:1px solid rgba(232,85,45,0.18);}
.pk-modal-loading-head{display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:12px;}
.pk-spinner{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:3px solid rgba(232,85,45,0.2);border-top-color:var(--accent);animation:pk-spin .8s linear infinite;}
@keyframes pk-spin{to{transform:rotate(360deg);}}
.pk-skel{height:10px;border-radius:99px;margin-top:8px;background:linear-gradient(100deg,rgba(166,103,44,0.1) 30%,rgba(166,103,44,0.22) 50%,rgba(166,103,44,0.1) 70%);background-size:200% 100%;animation:pk-shimmer 1.2s ease-in-out infinite;}
.pk-skel-w90{width:90%;} .pk-skel-w75{width:75%;} .pk-skel-w85{width:85%;} .pk-skel-w60{width:60%;}
@keyframes pk-shimmer{from{background-position:100% 0;}to{background-position:-100% 0;}}
@media (prefers-reduced-motion:reduce){.pk-spinner{animation-duration:2s;}.pk-skel{animation:none;}}

/* ---------- Générateur dans un groupe (group.php) ---------- */
.gg-card-inline{margin:14px 0 0;max-width:none;padding:18px;border-radius:14px;box-shadow:none;background:#fffefa;}
.gg-card-inline .gg-head h2{font-size:1.1rem;}
.gg-card-inline .gg-head-icon{width:42px;height:42px;font-size:1.3rem;border-radius:12px;}
.gg-card-inline .gg-options{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));}
.gg-card-inline .amazon-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}
.gg-group-details{margin:14px 0 18px;border-radius:14px;border:1px solid rgba(232,85,45,0.28);background:linear-gradient(135deg,#fff6ee,#fff1e4);padding:4px;}
.gg-group-details > summary{list-style:none;}
.gg-group-details > summary::-webkit-details-marker{display:none;}
.gg-group-details > summary,.gg-group-link{
  display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;cursor:pointer;color:var(--ink);text-decoration:none;
}
.gg-group-details > summary strong,.gg-group-link strong{display:block;font-size:.92rem;}
.gg-group-details > summary small,.gg-group-link small{display:block;color:var(--muted);font-size:.78rem;margin-top:2px;line-height:1.35;}
.gg-group-link-icon{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-size:1.25rem;background:linear-gradient(135deg,var(--gold),var(--accent));box-shadow:0 6px 14px rgba(232,85,45,0.25);}
.gg-group-details-chevron,.gg-group-link-arrow{margin-left:auto;flex:0 0 auto;font-weight:700;color:var(--accent);transition:transform .2s ease;}
.gg-group-details[open] .gg-group-details-chevron{transform:rotate(180deg);}
.gg-group-details > summary:hover{background:rgba(255,255,255,0.6);}
.gg-group-details .gg-card-inline{margin:4px 0 0;}
.gg-group-link{margin:12px 0 16px;border:1px solid rgba(232,85,45,0.28);background:linear-gradient(135deg,#fff6ee,#fff1e4);transition:transform .15s ease,box-shadow .15s ease;}
.gg-group-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(232,85,45,0.15);}
.gg-group-details > summary::after{content:none;display:none;}

/* ---------- Vue invité d'une liste de cadeaux : la liste en premier ---------- */
.group-main-guest{flex-direction:row-reverse;}
.group-main-guest .group-col-right{flex:1 1 560px;}
.wishlist-guest-hint{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,0.7);border:1px solid var(--border-soft);font-size:.9rem;line-height:1.5;color:var(--ink);}
@media (max-width:900px){
  .group-main-guest{display:flex;flex-direction:column;}
  .group-main-guest .group-col-right{order:-1;}
  .group-main-guest .group-col-left,.group-main-guest .group-col-right{width:100%;flex:none;min-width:0;}
}
/* Petit ruban "À plusieurs" en coin de carte pour les cadeaux partageables */
.gift-recipient-item{position:relative;overflow:hidden;}
.gift-ribbon{
  position:absolute;top:22px;right:-42px;z-index:2;width:160px;padding:5px 0;
  transform:rotate(45deg);text-align:center;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;background:var(--accent);box-shadow:0 3px 8px rgba(20,18,16,0.18);pointer-events:none;
}

/* Cadeau déjà réservé par quelqu'un d'autre : grisé, pour voir d'un coup
   d'oeil ce qu'il reste à offrir. */
.list-item.is-taken img,.list-item.is-taken .gift-recipient-noimg{filter:grayscale(1);opacity:.45;}
.list-item.is-taken .info > div:first-child,.list-item.is-taken .item-links{opacity:.5;}
.gift-recipient-item.is-taken{background:#f3efe7;border-style:dashed;}
.gift-recipient-item.is-mine{border-color:var(--green);box-shadow:0 0 0 3px rgba(47,143,95,0.15);}
.gift-taken-tag{position:absolute;top:12px;left:12px;z-index:2;padding:4px 10px;border-radius:99px;background:var(--ink);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.03em;}

/* =====================================================================
   V2 "Soir de fête" : réglages globaux (typo Bricolage Grotesque + Onest,
   arrondis plus généreux, boutons plus affirmés). S'applique à tout le site.
   ===================================================================== */
body{font-family:'Onest',-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;}
h1,h2,h3{font-weight:800;letter-spacing:-0.025em;line-height:1.08;}
h1{font-size:clamp(1.7rem,3.4vw,2.3rem);}
button, .btn{border-radius:12px;font-family:'Onest',sans-serif;font-weight:700;border-color:transparent;}
.card{border-radius:20px;border-color:rgba(34,28,20,0.08);box-shadow:0 1px 2px rgba(34,28,20,.05),0 18px 40px -18px rgba(34,28,20,.18);}
input, select, textarea{border-radius:12px;padding:12px 14px;font-family:'Onest',sans-serif;}
input:focus, select:focus, textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
button.secondary, .btn.secondary{border-color:var(--border-soft);}

/* ---------- V2 : cartes produits (recherche Amazon, idées cadeaux, générateur) ---------- */
.amazon-grid{gap:16px;}
.amazon-grid-item{border:0 !important;border-radius:18px;padding:0;overflow:hidden;background:#fff !important;box-shadow:0 1px 2px rgba(34,28,20,.06),0 12px 28px -14px rgba(34,28,20,.22);}
.amazon-grid-item:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(34,28,20,.06),0 20px 36px -14px rgba(34,28,20,.3);border-color:transparent !important;}
.amazon-grid-item img,.amazon-grid-noimg{border-radius:0;margin:0;padding:14px;background:#fff;aspect-ratio:1/1;object-fit:contain;}
.amazon-grid-item > a{padding-bottom:2px;}
.amazon-grid-title{font-size:.86rem;font-weight:600;line-height:1.3;margin:4px 14px 0;min-height:2.3em;}
.amazon-grid-rating{margin:6px 14px 0;font-size:.78rem;color:var(--muted);}
.amazon-grid-price{margin:8px 14px 0;padding-top:0;font-size:1.02rem;font-weight:800;color:var(--ink);font-family:'Bricolage Grotesque',system-ui,sans-serif;}
.amazon-item-actions{border-top:0;margin:auto 0 0;padding:12px 12px 12px;gap:6px;flex-direction:column-reverse;}
.amazon-item-btn{border-radius:11px;padding:10px 8px;font-size:.84rem;font-weight:700;}
.amazon-item-btn-add{box-shadow:0 6px 14px -6px color-mix(in srgb, var(--accent) 70%, transparent);}
.amazon-item-btn-info,.amazon-item-btn-view{background:transparent;border-color:transparent;color:var(--muted);padding:4px 8px;font-weight:600;}
.amazon-item-btn-info:hover,.amazon-item-btn-view:hover{background:transparent;border-color:transparent;color:var(--accent);}
.amazon-grid-skeleton{border-radius:18px;}

/* Bloc de recherche de cadeaux dans un groupe */
.wishlist-search-panel{background:#fff !important;border:0;border-radius:22px;padding:24px;box-shadow:inset 0 0 0 1.5px #efe6d8;}
.wishlist-search-panel::after{content:none;}
.wishlist-search-panel h3{font-size:1.3rem;margin:0 0 4px;}
.wishlist-search-panel .row input{font-size:1rem;padding:14px 16px;border-radius:14px;background:#fbf7f1;border-color:transparent;}
.wishlist-search-panel .row button{padding:14px 20px;border-radius:14px;background:var(--ink);color:#fff;border-color:var(--ink);}
.amazon-chip{border:1.5px solid #e6dccb !important;background:#fff !important;padding:8px 14px;font-size:.84rem;font-weight:600;}
.amazon-chip:hover{border-color:var(--accent) !important;}
.amazon-chip.active{box-shadow:0 6px 14px -6px color-mix(in srgb, var(--accent) 70%, transparent);}
@media (max-width:600px){
  .amazon-grid-item{padding:0;}
  .amazon-grid-title{margin:4px 10px 0;font-size:.8rem;}
  .amazon-grid-price,.amazon-grid-rating{margin-left:10px;margin-right:10px;}
  .amazon-item-actions{padding:10px 8px;}
  .wishlist-search-panel{padding:16px;}
}

/* ---------- V2 : icônes maison (voir icons.php) ---------- */
:root{--icon-tint:color-mix(in srgb, var(--accent) 24%, #fff);}
.pk-icon{width:1.25em;height:1.25em;display:inline-block;vertical-align:-.25em;flex:0 0 auto;}
.pk-icon-xl{width:56px;height:56px;}
header .nav-links .nav-icon{--icon-tint:rgba(232,177,60,.35);width:18px;height:18px;margin-right:2px;color:#f3e3cc;}
header .nav-links a.active .nav-icon{color:#fff;--icon-tint:rgba(255,255,255,.3);}
header .nav-links a:hover .nav-icon{animation:pk-wiggle .5s ease;}
@keyframes pk-wiggle{0%,100%{rotate:0deg}30%{rotate:-12deg}60%{rotate:10deg}}
.wiz-tile-icon .pk-icon{width:46px;height:46px;color:var(--ink);transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.wiz-tile:hover .wiz-tile-icon .pk-icon{transform:rotate(-6deg) scale(1.08);}
.wiz-tile.selected .wiz-tile-icon .pk-icon{--icon-tint:color-mix(in srgb, var(--accent) 45%, #fff);transform:scale(1.1);}
.wiz-mascot .pk-icon{width:64px;height:64px;color:var(--ink);}
.wp-emoji .pk-icon{width:34px;height:34px;color:var(--ink);}
.home-v2 .path .big .pk-icon{width:170px;height:170px;stroke-width:1.2;}
.home-v2 .path-list .big{color:var(--ink);--icon-tint:#ffc9a8;}
.home-v2 .path-draw .big{color:#f3e3cc;--icon-tint:rgba(232,177,60,.45);}
@media (prefers-reduced-motion:reduce){ header .nav-links a:hover .nav-icon{animation:none;} }

/* Harmonisation des icônes (V2) : même trait, même taille partout */
h1 > .pk-icon, h2 > .pk-icon, h3 > .pk-icon{width:1.05em;height:1.05em;vertical-align:-.14em;margin-right:.18em;color:var(--accent,#e8552d);}
button > .pk-icon, .btn > .pk-icon, a > .pk-icon{width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.1em;}
.pk-icon-lg{width:34px;height:34px;}
.occasion-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:#fbeedd;color:#e8552d;}

/* Évite tout décalage horizontal au scroll sur smartphone */
html,body{overflow-x:clip;max-width:100%;}
@supports not (overflow:clip){html,body{overflow-x:hidden;}}

/* Pop-up produit sur smartphone : fenêtre qui monte du bas, toujours
   entièrement visible (hauteur réelle de l'écran, barres Safari comprises),
   croix de fermeture toujours accessible. */
@media (max-width:640px){
  .pk-modal-overlay.is-open{align-items:flex-end;padding:0;}
  .pk-modal{max-width:100%;width:100%;max-height:88vh;max-height:calc(100dvh - 56px);border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain;}
  .pk-modal-close{top:10px;margin:10px 10px -50px auto;width:44px;height:44px;background:#fff;box-shadow:0 4px 16px rgba(20,18,16,.28);}
  .pk-modal-gallery{padding:14px 14px 10px;border-radius:22px 22px 0 0;}
  .pk-modal-slider{aspect-ratio:auto;height:min(300px,38vh);height:min(300px,38dvh);max-height:none;}
  .pk-modal-slide img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;}
  .pk-modal-thumbs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;width:100%;padding-bottom:4px;scrollbar-width:none;}
  .pk-modal-thumbs img{flex:none;width:40px;height:40px;}
  .pk-modal-info{padding:14px 16px 18px;}
  .pk-modal-info h3{font-size:1rem;line-height:1.3;font-weight:700;padding-right:0;}
  .pk-modal-price{font-size:1.2rem;}
  .pk-modal-bullets,.pk-modal-description{font-size:.84rem;}
  .pk-modal-actions{position:sticky;bottom:0;background:var(--card);padding:10px 0 4px;margin:0;box-shadow:0 -10px 16px -10px rgba(0,0,0,.15);}
  body.pk-modal-open{overflow:hidden;}
}

/* Compteur de confettis dans l'en-tête */
.cf-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(232,177,60,.14);border:1px solid rgba(232,177,60,.5);color:#f7d9a6 !important;border-radius:999px;padding:8px 14px;font-weight:700;text-decoration:none;white-space:nowrap;}
.cf-chip b{color:#e8b13c;}
.cf-chip:hover{background:rgba(232,177,60,.25);}
.nav-new-cf{background:transparent !important;padding:0 !important;font-size:1rem;}

/* Chargement de la recherche de produits */
.pk-search-loading{margin:14px 0 4px;}
.pk-skel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
@media (min-width:700px){.pk-skel-grid{grid-template-columns:repeat(4,1fr);}}
.pk-skel-card{background:#fff;border:1px solid rgba(232,85,45,0.12);border-radius:12px;padding:8px 8px 12px;}
.pk-skel-card .pk-skel{margin-top:8px;}
.pk-skel-img{height:84px !important;border-radius:8px !important;margin-top:0 !important;}

/* ==========================================================================
   Générateur de cadeaux V3 : "l'étiquette cadeau"
   Scène sombre, questions en grande typographie, réponses sans icônes, et
   une étiquette cadeau qui s'écrit à la main au fil des réponses.
   ========================================================================== */
.gg-card.gg-v3 .gg-option{flex-direction:row;min-height:0;gap:0;border-radius:999px;padding:11px 18px;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:700;font-size:1rem;line-height:1.15;text-align:left;animation:ggRise .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 22ms);}
.gg-card.gg-v3 .gg-options{display:flex;flex-wrap:wrap;gap:9px;}
.gg-card.gg-v3 .gg-options-cloud .gg-option{font-size:.9rem;padding:9px 14px;animation-delay:calc(var(--i,0) * 10ms);}
.gg-card.gg-v3 .gg-progress-bar{height:3px;}
.gg-card.gg-v3 .gg-progress-label{font-variant-numeric:tabular-nums;}
@keyframes ggRise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

/* --- Version immersive (page générateur et pages "idée cadeau ...") --- */
.gg-card.gg-immersive{max-width:none;margin:0;padding:0;border:0;border-radius:28px;overflow:hidden;color:#f4ecdc;background:radial-gradient(90% 70% at 18% 0%,#4a2c17 0%,rgba(74,44,23,0) 60%),radial-gradient(60% 60% at 100% 100%,#2a1a10 0%,rgba(42,26,16,0) 70%),#100e0c;box-shadow:0 40px 90px -30px rgba(16,14,12,.7);}
.gg-immersive .gg-stage{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:48px;padding:46px 46px 44px;min-height:520px;align-items:start;}
.gg-immersive .gg-head{display:none;}
.gg-immersive .gg-progress{margin-bottom:34px;gap:14px;}
.gg-immersive .gg-progress-bar{background:rgba(244,236,220,.14);}
.gg-immersive .gg-progress-fill{background:#e8b13c !important;transition:width .5s cubic-bezier(.2,.8,.2,1);}
.gg-immersive .gg-progress-label{color:#e8b13c;font-size:.9rem;}
.gg-card.gg-immersive .gg-step{animation:none;}
.gg-card.gg-immersive .gg-step-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:800;font-size:clamp(1.9rem,4vw,3.1rem);line-height:1.02;letter-spacing:-.035em;color:#fff;margin:0 0 10px;text-wrap:balance;animation:ggRise .45s cubic-bezier(.2,.8,.2,1) both;}
.gg-immersive .gg-step-hint{color:#c9b9a4;font-size:1rem;margin:0 0 26px;}
.gg-immersive .gg-counter{color:#e8b13c;font-weight:700;font-size:.88rem;margin:-14px 0 16px;}
.gg-card.gg-immersive .gg-option{background:rgba(244,236,220,.04);border:1.5px solid rgba(244,236,220,.22);color:#f4ecdc;box-shadow:none;font-size:1.12rem;padding:13px 22px;transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease;}
.gg-card.gg-immersive .gg-options-cloud .gg-option{font-size:.95rem;padding:9px 15px;}
.gg-card.gg-immersive .gg-option:hover{transform:translateY(-2px);border-color:#e8b13c;color:#e8b13c;background:rgba(232,177,60,.08);}
.gg-card.gg-immersive .gg-option.selected{background:#e8b13c;border-color:#e8b13c;color:#221c14;box-shadow:0 10px 26px -10px rgba(232,177,60,.7);}
.gg-card.gg-immersive .gg-option:focus-visible,.gg-immersive .gg-btn:focus-visible,.gg-tag-line:focus-visible{outline:3px solid #e8b13c;outline-offset:3px;}
.gg-immersive .gg-nav{margin-top:34px;}
.gg-immersive .gg-stage .gg-btn{border-radius:999px;padding:12px 24px;font-weight:700;background:transparent;border:1.5px solid rgba(244,236,220,.22);color:#f4ecdc;box-shadow:none;}
.gg-immersive .gg-stage .gg-btn-ghost{border-color:transparent;color:#c9b9a4;}
.gg-immersive .gg-stage .gg-btn-ghost:hover{background:rgba(244,236,220,.08);color:#fff;}
.gg-immersive .gg-stage .gg-btn-primary{background:#e8552d;border-color:#e8552d;color:#fff;}
.gg-immersive .gg-stage .gg-btn-primary:disabled{background:rgba(244,236,220,.1);border-color:transparent;color:#7a7060;opacity:1;}

/* L'étiquette */
.gg-tag-wrap{position:relative;padding-top:78px;filter:drop-shadow(0 26px 30px rgba(0,0,0,.5));}
.gg-tag-string{position:absolute;top:-34px;left:50%;width:96px;height:120px;transform:translateX(-50%);}
.gg-tag{position:relative;background:linear-gradient(180deg,#fbf5e9,#efe4cf);color:#221c14;padding:58px 22px 18px;clip-path:polygon(24% 0,76% 0,100% 13%,100% 100%,0 100%,0 13%);border-radius:0 0 14px 14px;transform:rotate(2.5deg);transform-origin:50% 0;}
.gg-tag.swing{animation:ggSwing 1s ease-out;}
@keyframes ggSwing{0%{transform:rotate(2.5deg);}25%{transform:rotate(6deg);}55%{transform:rotate(.5deg);}80%{transform:rotate(3.4deg);}100%{transform:rotate(2.5deg);}}
.gg-tag-hole{position:absolute;top:18px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#100e0c;box-shadow:0 0 0 4px #e8b13c;}
.gg-tag-title{margin:0 0 8px;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:800;font-size:1.05rem;letter-spacing:-.02em;text-align:center;}
.gg-tag-lines{list-style:none;margin:0;padding:0;}
.gg-tag-line{display:flex;align-items:flex-end;gap:8px;min-height:38px;padding:4px 0 5px;border-bottom:1.5px dotted #c2b196;}
.gg-tag-line.ok{cursor:pointer;}
.gg-tag-k{flex:none;width:62px;font-size:.72rem;font-weight:600;color:#7a7060;padding-bottom:3px;}
.gg-tag-line.cur .gg-tag-k{color:#e8552d;}
.gg-tag-v{font-family:'Caveat','Segoe Script','Bradley Hand',cursive;font-weight:700;font-size:1.5rem;line-height:.95;color:#b23a1e;min-width:0;overflow-wrap:anywhere;}
.gg-tag-line.fresh .gg-tag-v{animation:ggWrite .7s cubic-bezier(.4,0,.2,1) both;}
@keyframes ggWrite{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0);}}
.gg-tag-line.cur:not(.ok) .gg-tag-v::after{content:"";display:inline-block;width:2px;height:20px;background:#e8552d;animation:ggCaret 1s steps(2) infinite;}
@keyframes ggCaret{50%{opacity:0;}}
.gg-tag-line.ok:hover .gg-tag-v{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;}
.gg-tag-foot{margin:10px 0 0;font-size:.7rem;color:#7a7060;text-align:center;}

/* Résultats : la scène s'efface, les idées arrivent sur papier clair */
.gg-card.gg-is-results .gg-stage{display:none;}
.gg-card.gg-immersive.gg-is-results{background:#fffdf7;color:#221c14;}
.gg-immersive .gg-results{padding:30px 30px 26px;animation:ggRise .5s cubic-bezier(.2,.8,.2,1) both;}
.gg-card.gg-immersive .gg-results .gg-step-title{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-weight:800;font-size:1.8rem;letter-spacing:-.03em;color:#221c14;animation:none;}
.gg-immersive .gg-results .gg-step-hint{color:#7a7060;margin-bottom:10px;}
.gg-v3 .gg-results-actions .gg-btn{border-radius:999px;}

/* Chargement : le paquet qu'on ouvre */
.gg-wrap-loader{width:92px;margin:6px auto 0;}
.gg-wrap-loader svg{display:block;width:100%;overflow:visible;}
.gg-wl-box{fill:#fbeedd;stroke:#e8552d;stroke-width:3;}
.gg-wl-lid{fill:#e8552d;transform-origin:60px 43px;animation:ggLid 1.4s ease-in-out infinite;}
.gg-wl-rib{stroke:#e8b13c;stroke-width:8;}
.gg-wl-bow{fill:#e8b13c;transform-origin:60px 34px;animation:ggLid 1.4s ease-in-out infinite;}
@keyframes ggLid{0%,100%{transform:translateY(0) rotate(0);}50%{transform:translateY(-12px) rotate(-5deg);}}

/* --- Version intégrée dans un groupe : claire et compacte --- */
.gg-card-inline.gg-v3 .gg-option{background:#fff;border:1.5px solid #e6dccb;color:var(--ink);font-size:.92rem;padding:9px 15px;}
.gg-card-inline.gg-v3 .gg-option.selected{background:var(--accent);border-color:var(--accent);color:#fff;}
.gg-card-inline.gg-v3 .gg-options-cloud .gg-option{font-size:.84rem;padding:7px 12px;}

.ic-layout.ic-layout-single{grid-template-columns:minmax(0,1080px);}
.ic-main .gg-card.gg-immersive{padding:0;border-radius:28px;}

@media (max-width:900px){
  .gg-immersive .gg-stage{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px 16px 22px;min-height:0;}
  .gg-tag-wrap{order:-1;padding-top:0;filter:none;}
  .gg-tag-string,.gg-tag-hole,.gg-tag-title,.gg-tag-foot{display:none;}
  .gg-tag-wrap:not(:has(.gg-tag-line.ok)){display:none;}
  .gg-tag,.gg-tag.swing{transform:none;animation:none;clip-path:none;border-radius:12px;padding:6px 12px;}
  .gg-tag-lines{display:flex;flex-wrap:wrap;gap:0 12px;}
  .gg-tag-lines::-webkit-scrollbar{display:none;}
  .gg-tag-line{flex:0 1 auto;max-width:100%;border:0;min-height:26px;padding:0;gap:5px;align-items:baseline;}
  .gg-tag-line:not(.ok):not(.cur){display:none;}
  .gg-tag-k{width:auto;font-size:.68rem;padding:0;}
  .gg-tag-v{font-size:1.15rem;}
  .gg-tag-line.cur:not(.ok){display:none;}
  .gg-immersive .gg-progress{margin-bottom:20px;}
  .gg-card.gg-immersive .gg-step-title{font-size:1.75rem;}
  .gg-immersive .gg-step-hint{font-size:.92rem;margin-bottom:18px;}
  .gg-card.gg-immersive .gg-option{font-size:1rem;padding:11px 17px;}
  .gg-card.gg-immersive .gg-options-cloud .gg-option{font-size:.88rem;padding:8px 13px;}
  .gg-immersive .gg-nav{margin-top:22px;}
  .gg-immersive .gg-results{padding:18px 14px;}
  .ic-main .gg-card.gg-immersive{border-radius:22px;}
}
@media (prefers-reduced-motion:reduce){
  .gg-card.gg-v3 .gg-option,.gg-card.gg-immersive .gg-step-title,.gg-tag.swing,.gg-tag-line.fresh .gg-tag-v,.gg-wl-lid,.gg-wl-bow,.gg-immersive .gg-results{animation:none;}
}

/* Mention légale discrète en bas de toutes les pages */
.site-legal{margin:0;padding:14px 16px 18px;text-align:center;font-size:.68rem;line-height:1.4;color:#8f8272;}

/* Pied de page : plan du site discret (maillage interne) */
.site-foot{position:relative;z-index:1;max-width:1000px;margin:40px auto 0;padding:26px 20px 30px;border-top:1px solid rgba(34,28,20,.12);display:grid;grid-template-columns:repeat(4,1fr);gap:22px;font-size:.82rem;}
.site-foot b{display:block;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:.86rem;color:var(--ink,#221c14);margin-bottom:8px;}
.site-foot a{display:block;color:#7a7060;text-decoration:none;padding:3px 0;}
.site-foot a:hover{color:var(--accent);text-decoration:underline;}
@media (max-width:700px){.site-foot{grid-template-columns:1fr 1fr;gap:20px 14px;padding:22px 18px 26px;}}
/* Pages d'atterrissage (landing_template.php) */
.lp-answer{background:#fff7e6;border-left:4px solid var(--gold,#e8b13c);border-radius:0 14px 14px 0;padding:14px 16px;font-size:1.02rem;line-height:1.55;}
.lp-answer strong{font-weight:600;}
.lp-steps{padding-left:22px;margin:0 0 8px;}
.lp-steps li{margin-bottom:10px;line-height:1.55;}
.lp-q{font-size:1rem;margin:18px 0 4px;}
.lp-table-wrap{overflow-x:auto;margin:10px 0 6px;}
.lp-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:460px;}
.lp-table th,.lp-table td{padding:10px 12px;border-bottom:1px solid rgba(34,28,20,.12);text-align:left;vertical-align:top;}
.lp-table thead th{font-family:'Bricolage Grotesque',system-ui,sans-serif;background:#221c14;color:#fff;}
.lp-table thead th:first-child{border-radius:10px 0 0 0;}.lp-table thead th:last-child{border-radius:0 10px 0 0;background:var(--accent);}
.lp-table tbody td:last-child{font-weight:600;color:#1f7a55;}
@media (max-width:600px){.lp-table{min-width:0;font-size:.8rem;}.lp-table th,.lp-table td{padding:8px 7px;}}

/* Création de groupe : choix tirage au sort / liste de cadeaux */
.wiz-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;}
.wiz-mode{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:#fff;color:var(--ink,#221c14);border:2px solid #e6dccb;border-radius:20px;padding:18px 16px;box-shadow:none;cursor:pointer;transition:border-color .15s,transform .15s;}
.wiz-mode:hover{background:#fff;color:var(--ink,#221c14);border-color:var(--accent);transform:translateY(-1px);}
.wiz-mode.selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, #fff);}
.wiz-mode b{font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:1.08rem;line-height:1.15;}
.wiz-mode small{font-size:.82rem;font-weight:500;color:#7a7060;line-height:1.35;}
@media (max-width:480px){.wiz-modes{gap:8px;}.wiz-mode{padding:12px 10px;gap:4px;border-radius:16px;}.wiz-mode small{display:none;}.wiz-mode b{font-size:.98rem;}.wiz-mode .wiz-tile-icon .pk-icon{width:30px;height:30px;}}
.wiz-step[data-step="1"] label{margin-bottom:0;}
.wiz-mode.selected{border-color:#221c14;background:#fff;}
@media (max-width:480px){#wizOccasion .wiz-choices-tiles{grid-template-columns:repeat(3,1fr);gap:8px;}#wizOccasion .wiz-tile{padding:10px 4px;min-height:0;}#wizOccasion .wiz-tile small{display:none;}#wizOccasion .wiz-tile .pk-icon{width:34px;height:34px;}}
