/* PopTheDate — socle commun des pages d'univers (/elegance/, /famille/, /fetes/, /pro/), aussi chargé par l'accueil
   pour partager à l'identique le bandeau, la réglette, les cartes-intercalaires et le pied de page.

   Contrat :
   - Les pages d'univers sont générées par scripts/gen-univers.mjs ; leur <body class="page-univers" data-univers="<clé>">
     reçoit ici les jetons de son univers. Chaque univers n'écrit que son atmosphère dans univers-<clé>.css
     (scène d'entrée, matières, motifs), en redéfinissant au besoin les jetons ci-dessous.
   - Les composants partagés avec l'accueil (.bandeau, .reglette, .pastille, .intercalaire, .cote-bureau, .pied-page)
     n'ont besoin d'aucun style de page : ils portent leur police et leurs couleurs. Le bandeau et le pied de page sont
     la « maison » commune : toujours sur coton, encre bleu-noir, quel que soit l'univers (page de nuit comprise).
   - Jetons de couleur : --fond (page), --surface (cartes, FAQ, barre collante), --bande (bandes alternées),
     --encre (texte, titres), --encre-douce (paragraphes), --gris (légendes, surtitres ; ≥ 4,5:1 sur --fond et --surface),
     --accent (matière de l'univers : puce active, pastille), --accent-texte (petits textes d'accent, ≥ 4,5:1),
     --sur-accent (texte posé sur --accent), --souligne (soulignés de 3 px, puce active ; ≥ 3:1 sur --fond et --surface),
     --filet (séparateurs, décor seulement),
     --filet-fort (bordures d'ornement), --bouton-fond, --bouton-texte, --bouton-survol, --focus.
   - Jetons de forme et de police : --display (police des titres) avec --display-style, --display-poids,
     --display-interlettrage ; --texte (police du texte courant) avec --texte-taille, --texte-poids ;
     --mono (voix de PopTheDate, commune) ; --rayon-carte, --rayon-bouton (2 px partout), --rayon-puce ;
     --h1, --h2 (tailles) ; --courbe (courbe commune des gestes). --u-souligne : trait de l'univers courant dans la
     réglette du bandeau (sur coton #F6F2EA, ≥ 3:1).
   - Logo : vitrine/assets/img/logo-horizontal.svg en <img> (sceau en relief et signature à l'encre, ratio 530,8 × 168),
     le même sur les cinq pages ; 56 px de haut sur téléphone, 64 px dès 481 px, 88 px dès 1101 px.
   - Mouvement : la scène d'entrée (.scene, classe « joue » dans le HTML) et l'aperçu des modèles n'animent que si
     « réduire les animations » est désactivé ; sinon l'état final s'affiche d'emblée. */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.8197bf5361.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cormorant-garamond-latin-600-normal.ae062b6d5a.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.4fb55a7a6d.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(fonts/cormorant-garamond-latin-600-italic.0b6719b252.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.08949f728d.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.01d2854474.woff2) format('woff2')}
@font-face{font-family:'Parisienne';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/parisienne-latin-400-normal.cf3c285d1e.woff2) format('woff2')}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fredoka-latin-500-normal.7d76e44a94.woff2) format('woff2')}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fredoka-latin-600-normal.b62f2898de.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/nunito-latin-400-normal.a5906e15ce.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/nunito-latin-700-normal.fa89300b9b.woff2) format('woff2')}
@font-face{font-family:'Abril Fatface';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/abril-fatface-latin-400-normal.edf7a1f3bc.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/poppins-latin-400-normal.7d93459d86.woff2) format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/poppins-latin-600-normal.f4e80d9dfd.woff2) format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dm-serif-display-latin-400-normal.fdf61e20fd.woff2) format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/dm-serif-display-latin-400-italic.ed8b291611.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.8909904ab6.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-normal.f9a06e79cd.woff2) format('woff2')}

@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}

/* ─── Jetons : l'accueil (papeterie commune), puis les quatre univers ─── */
:root{
  --fond:#F6F2EA; --surface:#FBF8F2; --bande:#F3EEE4;
  --encre:#1B2338; --encre-douce:#3A4152; --gris:#5E6272;
  --accent:#7A1F2B; --accent-texte:#7A1F2B; --sur-accent:#FFFFFF; --souligne:#7A1F2B;
  --filet:#D9D5CC; --filet-fort:#A8863F;
  --bouton-fond:#1B2338; --bouton-texte:#F6F2EA; --bouton-survol:#1B2338; --focus:#1B2338;
  --display:'Cormorant Garamond',Georgia,serif; --display-style:italic; --display-poids:600; --display-interlettrage:0;
  --texte:'Cormorant Garamond',Georgia,serif; --texte-taille:19px; --texte-poids:500;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --rayon-carte:4px; --rayon-bouton:2px; --rayon-puce:2px;
  --u-souligne:#7A1F2B;
  --h1:clamp(36px,3.4vw + 22px,62px); --h2:clamp(30px,1.6vw + 24px,44px);
  --courbe:cubic-bezier(.3,0,.2,1);
}
/* Élégance : papeterie de luxe, cire bordeaux et filets d'or */
[data-univers="elegance"]{
  --fond:#F6F2EA; --surface:#FBF8F2; --bande:#F1DDD3;
  --encre:#1B2338; --encre-douce:#3A4152; --gris:#5E6272;
  --accent:#7A1F2B; --accent-texte:#7D6329; --sur-accent:#FFFFFF; --souligne:#7A1F2B;
  --filet:#E0D6C4; --filet-fort:#A8863F; --or-texte:#7D6329; --sauge:#3A5542;
  --bouton-fond:#1B2338; --bouton-texte:#F6F2EA; --bouton-survol:#7A1F2B; --focus:#1B2338;
  --display:'Cormorant Garamond',Georgia,serif; --display-style:italic; --display-poids:600;
  --texte:'Cormorant Garamond',Georgia,serif; --texte-taille:19px; --texte-poids:500;
  --rayon-carte:0px;
  --u-souligne:#7A1F2B;
}
/* Famille & enfants : chambre d'enfant, papier « lait », lilas et pastels */
[data-univers="famille"]{
  --fond:#FFF8F0; --surface:#FFFFFF; --bande:#DCEEF8; --dragee:#F7D6E0; --menthe:#D6EDE2; --nuage:#DCEEF8;
  --encre:#4A3B5C; --encre-douce:#4A3B5C; --gris:#665879;
  --accent:#775BA1; --accent-texte:#775BA1; --sur-accent:#FFFFFF; --souligne:#775BA1;
  --filet:#E6DCEF; --filet-fort:#9CC3E6; --soleil:#FFD23F;
  --bouton-fond:#775BA1; --bouton-texte:#FFFFFF; --bouton-survol:#664C8F; --focus:#4A3B5C;
  --display:'Fredoka','Nunito',system-ui,sans-serif; --display-style:normal; --display-poids:600;
  --texte:'Nunito',system-ui,sans-serif; --texte-taille:17px; --texte-poids:400;
  --rayon-carte:20px; --rayon-puce:22px;
  --u-souligne:#775BA1;
  --h1:clamp(32px,2.6vw + 22px,52px); --h2:clamp(27px,1.4vw + 21px,38px);
}
/* Fêtes & amis : l'affiche de soirée, seule page de nuit */
[data-univers="fetes"]{
  color-scheme:dark;
  --fond:#121016; --surface:#1E1B24; --bande:#1E1B24; --creme:#F4EBDD; --sapin:#0F2A1F;
  --encre:#F7F1E6; --encre-douce:#E6DFD2; --gris:#A9A6B8;
  --accent:#E4C36A; --accent-texte:#E4C36A; --sur-accent:#121016; --souligne:#E4C36A;
  --rose-neon:#FF2E88; --rose-neon-clair:#FF5FA2; --cyan-neon:#00E5FF;
  --filet:rgba(228,195,106,.22); --filet-fort:#E4C36A;
  --bouton-fond:#E4C36A; --bouton-texte:#121016; --bouton-survol:#EFD48A; --focus:#00E5FF;
  --display:'Abril Fatface',Georgia,serif; --display-style:normal; --display-poids:400; --display-interlettrage:.005em;
  --texte:'Poppins',system-ui,sans-serif; --texte-taille:16px; --texte-poids:400;
  --rayon-carte:6px;
  --u-souligne:#7D6329; /* or foncé, 5,1:1 sur coton (le bandeau reste clair) */
  --h1:clamp(32px,2.8vw + 22px,56px); --h2:clamp(27px,1.5vw + 21px,40px);
}
/* Pro : papeterie d'affaires et hall d'embarquement */
[data-univers="pro"]{
  --fond:#FAF9F6; --surface:#F1F2F5; --bande:#F1F2F5;
  --encre:#1E2A44; --encre-douce:#2F3A55; --gris:#5B6170;
  --accent:#1E2A44; --accent-texte:#8A6A1F; --sur-accent:#FFFFFF; --souligne:#8A6A1F;
  --or-mat:#E9B44C; --or-texte:#8A6A1F; --lagon:#1F7A6F;
  --filet:#DADDE4; --filet-fort:#1E2A44;
  --bouton-fond:#1E2A44; --bouton-texte:#FFFFFF; --bouton-survol:#1E2A44; --focus:#1E2A44;
  --display:'DM Serif Display',Georgia,serif; --display-style:normal; --display-poids:400;
  --texte:'Inter',system-ui,sans-serif; --texte-taille:16px; --texte-poids:400;
  --rayon-carte:2px;
  --u-souligne:#8A6A1F; /* or texte, 4,5:1 sur coton comme sur --surface ; l'or mat #E9B44C reste au décor */
  --h1:clamp(32px,2.8vw + 22px,56px); --h2:clamp(27px,1.5vw + 21px,40px);
}

/* ─── Base des pages d'univers ─── */
html:has(> body.page-univers){background-color:var(--fond);scroll-padding-top:72px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html:has(> body[data-univers="fetes"]){background-color:#121016;color-scheme:dark}
@media (prefers-reduced-motion:no-preference){html:has(> body.page-univers){scroll-behavior:smooth}}
.page-univers,.page-univers *,.page-univers *::before,.page-univers *::after{box-sizing:border-box}
.page-univers{margin:0;background-color:var(--fond);color:var(--encre);font-family:var(--texte);font-weight:var(--texte-poids);font-size:var(--texte-taille);line-height:1.5;-webkit-font-smoothing:antialiased}
/* Styles de base sans poids (:where) : chaque composant les remplace sans surenchère. */
:where(.page-univers) img{display:block;max-width:100%;height:auto}
:where(.page-univers) a{color:inherit}
.page-univers :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
:where(.page-univers) :where(h1,h2,h3){margin:0;font-family:var(--display);font-style:var(--display-style);font-weight:var(--display-poids);letter-spacing:var(--display-interlettrage);color:var(--encre);text-wrap:balance}
:where(.page-univers) p{margin:0}
:where(.page-univers) button{font:inherit;color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.evitement{position:absolute;left:16px;top:-80px;z-index:60;padding:12px 16px;background:var(--bouton-fond);color:var(--bouton-texte);font:400 12px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.evitement:focus{top:12px}
.surtitre{font-family:var(--mono);font-size:11px;font-weight:400;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.chapo{max-width:40em;font-size:calc(var(--texte-taille) + 1px);line-height:1.5;color:var(--encre-douce)}

/* Boutons : gabarit unique (50 px, capitales mono, rayon 2 px) ; seule la couleur change */
.bouton,.bouton-ligne{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border-radius:var(--rayon-bouton);font:400 13px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;text-align:center;text-wrap:balance;text-decoration:none;cursor:pointer}
.bouton{background:var(--bouton-fond);color:var(--bouton-texte);border:1px solid var(--bouton-fond)}
.bouton:hover{background:var(--bouton-survol);border-color:var(--bouton-survol);text-decoration:underline;text-underline-offset:4px}
.bouton-ligne{background:transparent;color:var(--encre);border:1px solid var(--encre)}
.bouton-ligne:hover{text-decoration:underline;text-underline-offset:4px}
.bouton-petit{min-height:44px;padding:0 16px;font-size:12px}
.lien-fleche{display:inline-flex;align-items:center;min-height:44px;font:400 12px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--encre);text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--filet-fort)}
.lien-fleche:hover{text-decoration-color:currentColor}

/* ─── Logo (image : sceau en relief et signature à l'encre, identique sur les cinq pages) et pastilles ─── */
.logo-h{display:block;flex:none;width:auto;max-width:none;height:56px;aspect-ratio:530.8/168}
/* Compatibilité : l'ancien balisage (logo en <span>, encore dans vitrine/index.html tant que la page d'entrée ne l'a
   pas remplacée) affiche la même image en fond, jamais en masque. */
span.logo-h{background:url(img/logo-horizontal.bee0c45dfe.svg) 0 50%/contain no-repeat}
.pastille{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;vertical-align:middle}
.pastille[data-u="elegance"]{background:#7A1F2B}
.pastille[data-u="famille"]{background:linear-gradient(90deg,#F7C8C8 50%,#9CC3E6 50%);box-shadow:inset 0 0 0 1px #4A3B5C}
.pastille[data-u="fetes"]{background:#121016;box-shadow:inset 0 0 0 1.5px #E4C36A}
.pastille[data-u="pro"]{background:linear-gradient(#1E2A44 40%,#E9B44C 40% 60%,#1E2A44 60%);box-shadow:0 0 0 1px rgba(233,180,76,.55)}

/* ─── Bandeau commun ─── */
.bandeau{--encre:#1B2338;--gris:#5E6272;--filet:#D9D5CC;--filet-fort:#A8863F;--focus:#1B2338;--souligne:var(--u-souligne);position:relative;z-index:20;background:#F6F2EA;color:#1B2338;border-bottom:1px solid #D9D5CC;font-family:'IBM Plex Mono',ui-monospace,monospace;color-scheme:light}
.bandeau a{color:#1B2338;text-decoration:none}
.bandeau :focus-visible{outline:2px solid #1B2338;outline-offset:2px}
.bandeau ul{list-style:none;margin:0;padding:0}
.bandeau-ligne{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:68px;padding:4px 16px}
.bandeau-marque{display:inline-flex;flex:none;align-items:center;gap:14px;min-height:44px}
.bandeau-univers{display:none;align-items:center;gap:14px;font-size:11px;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);white-space:nowrap}
.bandeau-univers::before{content:'';width:1px;height:22px;background:var(--filet-fort)}
.bandeau-actions{display:flex;align-items:center;gap:4px}
.bandeau-lien,.bandeau-creer{display:inline-flex;align-items:center;min-height:44px;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.bandeau-lien{padding:0 8px}
.bandeau-creer{padding:0 12px;border:1px solid var(--encre);border-radius:var(--rayon-bouton);letter-spacing:.12em}
.bandeau-lien:hover,.bandeau-creer:hover{text-decoration:underline;text-underline-offset:4px}
.reglette{border-top:1px solid var(--filet)}
.reglette ul{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 16px}
.reglette li{display:flex;align-items:center}
.reglette a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 2px;font-size:11px;line-height:1;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.reglette a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:7px;text-decoration-color:var(--souligne)}
.reglette a:not([aria-current]):hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
.reglette-pro::before{content:'';flex:none;width:1px;height:18px;margin-right:12px;background:var(--encre)}

/* ─── Fil d'Ariane ─── */
.ariane{padding:0 16px;font:400 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.ariane ol{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}
.ariane li{display:flex;align-items:center;min-height:40px}
.ariane li + li::before{content:'›';margin:0 10px;color:var(--gris)}
.ariane a{display:inline-flex;align-items:center;min-height:44px;color:var(--gris);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--filet)}
.ariane [aria-current]{color:var(--encre)}

/* ─── Couverture ─── */
.couverture{padding:8px 16px 48px}
.formule{margin:4px 0 16px;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:20px;line-height:1.3;text-align:center;color:var(--encre-douce)}
.formule-verbe{white-space:nowrap}
.scene{position:relative;isolation:isolate;overflow:hidden;margin:0 -16px;height:min(55svh,520px);background:var(--surface)}
.scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene-duo .scene-ouvert{transform:scale(1.02)}
.scene.joue .scene-duo .scene-ouvert{animation:u-apparait .5s var(--courbe) .4s both}
@keyframes u-apparait{from{opacity:0;transform:scale(1)}to{opacity:1;transform:scale(1.02)}}
.scene-geste{position:absolute;z-index:5;left:50%;bottom:16px;transform:translateX(-50%);margin:0;padding:9px 14px;background:color-mix(in srgb,var(--fond) 88%,transparent);color:var(--encre);font:400 11px/1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
/* La consigne n'apparaît que si la scène se rejoue (univers.js lui donne role="button") : ni sans JavaScript, ni avec
   « réduire les animations ». */
.scene:not([role="button"]) .scene-geste{display:none}
.scene[role="button"]{cursor:pointer}
.scene[role="button"]:focus-visible{outline:2px solid var(--focus);outline-offset:-6px}
.couverture-texte{margin-top:28px}
.couverture-texte .surtitre{margin-bottom:12px}
.couverture h1{font-size:var(--h1);line-height:1.08}
.couverture .chapo{margin-top:16px}
.couverture-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-top:28px}
.couverture-actions .bouton{min-height:52px}
.couverture-actions .lien-fleche{align-self:flex-start}

/* ─── Barre « Quelle occasion ? » ─── */
.puces{position:sticky;top:0;z-index:30;background:var(--fond);border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.puces-titre{display:none}
.puces ul{position:relative;display:flex;gap:8px;margin:0;padding:8px 16px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:0 16px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
.puces ul::-webkit-scrollbar{display:none}
.puces li{flex:none;scroll-snap-align:start}
.puces li:last-child{padding-right:16px}
.puces a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--filet);border-radius:var(--rayon-puce);background:var(--surface);font:400 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--encre);text-decoration:none;white-space:nowrap}
.puce-compte{color:var(--accent-texte);font-size:11px}
.puces a:hover{border-color:var(--filet-fort)}
.puces a[aria-current="true"]{border-color:var(--souligne);box-shadow:inset 0 -3px 0 var(--souligne)}

/* ─── Rubriques ─── */
.rubrique,.invites,.etapes,.questions,.autres{padding:56px max(16px,calc((100% - 1120px) / 2)) 48px}
.rubrique + .rubrique{border-top:1px solid var(--filet)}
.rubrique.bande{background:var(--bande)}
.rubrique-tete{max-width:720px}
.folio{font:400 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-texte)}
.folio-num{font-weight:500}
.rubrique h2{margin-top:12px;font-size:var(--h2);line-height:1.1}
.rubrique-compte{margin-top:10px;font:400 11px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.rubrique-tete .chapo{margin-top:16px}
.contient{margin:28px 0 36px;padding:20px 20px 22px;background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon-carte);max-width:880px}
.contient-titre{margin-bottom:12px;font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.contient ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.contient li{position:relative;padding-left:22px;font-size:calc(var(--texte-taille) - 1px);line-height:1.4;color:var(--encre)}
.contient li::before{content:'—';position:absolute;left:0;color:var(--accent-texte)}

/* Galerie et carte de modèle */
.galerie{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px;margin:0;padding:0;list-style:none}
.modele{position:relative;display:flex;flex-direction:column;gap:5px}
.modele-scene{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:2/3;margin-bottom:6px;border-radius:var(--rayon-image,4px);background:var(--c-fond,var(--surface));outline:1px solid var(--filet);outline-offset:-1px}
.modele-scene img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;transition:opacity 0s linear calc((1 - var(--a,0)) * .7s),transform .45s var(--courbe)}
.modele-scene::after{content:'';position:absolute;inset:0;z-index:2;background:center/cover no-repeat;opacity:var(--a,0);transform:scale(calc(1 + var(--a,0) * .02));transition:opacity .5s var(--courbe),transform .5s var(--courbe);pointer-events:none}
.modele-carte{position:absolute;inset:16% 12%;z-index:0;opacity:var(--a,0);transition:opacity .3s linear;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;text-align:center;background:var(--c-fond);color:var(--c-encre);border:1px solid color-mix(in srgb,var(--c-encre) 22%,transparent)}
.modele-carte span{font:400 11px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.modele-carte b{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:600;font-size:20px;line-height:1.1}
.modele-pans{position:absolute;inset:0;z-index:2;display:flex;pointer-events:none;perspective:900px}
.modele-pans span{flex:1;background:0 0/200% 100% no-repeat;transition:transform .7s var(--courbe)}
.modele-pans span:nth-child(2){background-position:100% 0}
.modele-pans span:only-child{background-size:100% 100%}
/* L'aperçu ne charge sa seconde image qu'à l'approche (univers.js ajoute « pret ») ou au survol. */
.modele.pret .modele-scene::after,.modele:hover .modele-scene::after{background-image:var(--ouvert)}
.modele.pret .modele-pans span,.modele:hover .modele-pans span{background-image:var(--ferme)}
/* --a vaut 1 pendant l'aperçu : survol, focus clavier, ou passage à l'écran sur écran tactile (univers.js) */
.modele:focus-within,.modele.apercu{--a:1}
@media (hover:hover){.modele:hover{--a:1}}
.modele[data-ouverture="rideau"] .modele-scene img,.modele[data-ouverture^="porte"] .modele-scene img,.modele[data-ouverture="ballon"] .modele-scene img{opacity:calc(1 - var(--a,0))}
.modele[data-ouverture="rideau"] .modele-pans span:first-child{transform:translateX(calc(var(--a,0) * -82%))}
.modele[data-ouverture="rideau"] .modele-pans span:last-child{transform:translateX(calc(var(--a,0) * 82%))}
.modele[data-ouverture^="porte"] .modele-pans span:first-child{transform-origin:0 50%;transform:rotateY(calc(var(--a,0) * -78deg))}
.modele[data-ouverture="portes"] .modele-pans span:last-child{transform-origin:100% 50%;transform:rotateY(calc(var(--a,0) * 78deg))}
.modele[data-ouverture="ballon"] .modele-scene img{transform:scale(calc(1 + var(--a,0) * .14));transition:opacity .25s linear calc(var(--a,0) * .25s),transform .35s var(--courbe)}
.modele-cdc{position:absolute;top:8px;left:8px;z-index:3;padding:5px 8px;border-radius:var(--rayon-bouton);background:var(--accent);color:var(--sur-accent);font:400 11px/1.1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.modele-nom{font-size:20px;line-height:1.15}
.modele-accroche{font-size:calc(var(--texte-taille) - 3px);line-height:1.4;color:var(--encre-douce)}
.modele-ouverture{font:400 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.modele-lien{align-self:flex-start;display:inline-flex;align-items:center;min-height:32px;font:400 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--encre);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--filet-fort)}
.modele-lien::after{content:'';position:absolute;inset:0;z-index:4}
.modele-lien:focus-visible{outline:none}
.modele:has(.modele-lien:focus-visible){outline:2px solid var(--focus);outline-offset:4px}
.modele:hover .modele-lien{text-decoration-color:currentColor}
.galerie-suite{margin-top:32px}
.galerie-suite > summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:0 20px;border:1px solid var(--encre);border-radius:var(--rayon-bouton);font:400 13px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--encre);cursor:pointer;list-style:none}
.galerie-suite > summary::-webkit-details-marker{display:none}
.galerie-suite > summary::after{content:'+';font-size:18px}
.galerie-suite[open] > summary::after{content:'−'}
.galerie-suite > .galerie{margin-top:28px}

/* Idées de textes */
.idees{margin-top:48px}
.idees-titre{font-size:calc(var(--h2) * .72);line-height:1.15}
.idees-cartons{display:grid;gap:16px;margin-top:18px}
.idee{display:flex;flex-direction:column;gap:14px;margin:0;padding:24px 20px 20px;background:var(--surface);border:1px solid var(--filet);border-radius:var(--rayon-carte)}
.idee-titre{font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-texte)}
.idee-texte{flex:1;margin:0;font-size:var(--texte-taille);line-height:1.55;color:var(--encre)}
.idee-copier{align-self:flex-start}
.idee-copier[hidden]{display:none}

.rubrique-action{margin-top:40px}
.rubrique-action .bouton{width:100%;min-height:52px}
.passerelle{display:flex;align-items:center;gap:12px;max-width:640px;min-height:60px;margin-top:20px;padding:14px 18px;border:1px dashed var(--filet-fort);border-radius:var(--rayon-carte);color:var(--encre);text-decoration:none}
.passerelle-texte{flex:1;font-size:calc(var(--texte-taille) - 1px);line-height:1.35}
.passerelle-vers{font:400 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-texte);white-space:nowrap}
.passerelle:hover .passerelle-texte{text-decoration:underline;text-underline-offset:4px}
.retour{margin-top:20px}
.retour a{display:inline-flex;align-items:center;min-height:44px;font:400 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gris);text-decoration:none}
.retour a:hover{color:var(--encre);text-decoration:underline;text-underline-offset:4px}

/* ─── Sections communes ─── */
.invites,.etapes,.questions,.autres{border-top:1px solid var(--filet)}
.section-tete{max-width:720px;margin-bottom:32px}
.section-tete h2{margin-top:10px;font-size:var(--h2);line-height:1.1}
.section-tete .chapo{margin-top:14px}
.invites-liste,.etapes-liste{display:grid;gap:28px;margin:0;padding:0;list-style:none}
.invites-liste li,.etapes-liste li{padding-top:16px;border-top:1px solid var(--filet)}
.invites-num{display:block;margin-bottom:8px;font:400 11px/1 var(--mono);letter-spacing:.14em;color:var(--accent-texte)}
.invites-liste h3,.etapes-liste h3{font-size:22px;line-height:1.2}
.invites-liste p,.etapes-liste p{margin-top:8px;font-size:calc(var(--texte-taille) - 1px);line-height:1.5;color:var(--encre-douce)}
.etapes-num{display:block;margin-bottom:6px;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:34px;line-height:1;color:var(--accent-texte)}
.etapes-legende{margin-top:28px;font:400 11px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.questions-liste{max-width:800px;border-top:1px solid var(--filet)}
.questions-liste details{border-bottom:1px solid var(--filet)}
.questions-liste summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:14px 0;font-family:var(--display);font-style:var(--display-style);font-weight:var(--display-poids);font-size:21px;line-height:1.25;color:var(--encre);cursor:pointer;list-style:none}
.questions-liste summary::-webkit-details-marker{display:none}
.questions-liste summary::after{content:'+';flex:none;font:400 18px/1 var(--mono);color:var(--accent-texte)}
.questions-liste details[open] summary::after{content:'−'}
.questions-liste details p{padding:0 0 22px;max-width:40em;line-height:1.55;color:var(--encre-douce)}

/* ─── Cartes-intercalaires (accueil et « Vous préparez autre chose ? ») : chacune garde sa matière ─── */
.autres-cartes{display:flex;flex-direction:column;gap:12px;max-width:640px}
.intercalaire{position:relative;display:flex;align-items:center;gap:10px;min-height:96px;padding:12px 12px 12px 14px;background:var(--i-fond);color:var(--i-encre);border-left:3px solid var(--i-filet);border-radius:var(--i-rayon,0);box-shadow:inset 0 0 0 1px var(--i-contour,transparent);text-decoration:none;font-family:var(--mono);transition:transform .12s var(--courbe,ease)}
.intercalaire:active{transform:translateY(-4px)}
.intercalaire:hover .intercalaire-nom{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.intercalaire:focus-visible{outline:2px solid var(--focus,#1B2338);outline-offset:3px}
.intercalaire-num{margin-right:10px;font:italic 500 19px/1 'Cormorant Garamond',Georgia,serif;color:var(--i-num)}
.intercalaire-corps{display:flex;flex:1;min-width:0;flex-direction:column;gap:6px}
.intercalaire-nom{font-family:var(--i-police);font-style:var(--i-style,normal);font-weight:var(--i-poids,400);font-size:var(--i-taille,24px);line-height:1.1;color:var(--i-titre,var(--i-encre))}
.intercalaire-occasions{display:flex;flex-direction:column;font:400 11px/1.55 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--i-gris)}
.intercalaire-vignette{position:relative;flex:none;overflow:hidden;width:64px;height:64px}
.intercalaire-vignette img{width:100%;height:100%;object-fit:cover}
.vignette-cachet{border-radius:50%}
.vignette-cachet img{position:absolute;max-width:none;width:141px;height:211px;left:-38px;top:-112px}
.vignette-objet img{object-position:50% 54%;transform:scale(1.25);mix-blend-mode:multiply}
.vignette-bande{width:44px;height:76px;border-radius:2px}
.intercalaire[data-u="elegance"]{--i-fond:#FBF8F2;--i-encre:#1B2338;--i-gris:#5E6272;--i-filet:#A8863F;--i-num:#7D6329;--i-contour:#E6DDCC;--i-police:'Cormorant Garamond',Georgia,serif;--i-style:italic;--i-poids:600;--i-taille:26px}
.intercalaire[data-u="famille"]{--i-fond:#FFF8F0;--i-encre:#4A3B5C;--i-gris:#665879;--i-filet:#775BA1;--i-num:#775BA1;--i-contour:#EADFF0;--i-rayon:0 20px 20px 0;--i-police:'Fredoka','Nunito',system-ui,sans-serif;--i-poids:600;--i-taille:22px}
.intercalaire[data-u="fetes"]{--i-fond:#121016;--i-encre:#F7F1E6;--i-titre:#E4C36A;--i-gris:#A9A6B8;--i-filet:#E4C36A;--i-num:#E4C36A;--i-police:'Abril Fatface',Georgia,serif;--i-taille:24px}
.intercalaire[data-u="pro"]{--i-fond:#FAF9F6;--i-encre:#1E2A44;--i-gris:#5B6170;--i-filet:#1E2A44;--i-num:#8A6A1F;--i-police:'DM Serif Display',Georgia,serif;--i-taille:26px;border:1px solid #1E2A44;border-left-width:3px;padding-right:calc(28% + 8px)}
/* Billet Pro : talon à droite (28 %), séparé par une perforation ; aucun texte ne passe dessous. */
.intercalaire[data-u="pro"]::before{content:'';position:absolute;top:8px;bottom:8px;right:28%;width:4px;background:radial-gradient(circle,#1E2A44 1.3px,transparent 1.8px) 50% 0/4px 9px repeat-y}
.intercalaire[data-u="pro"] .intercalaire-vignette{position:absolute;top:50%;right:14%;transform:translate(50%,-50%)}
.cote-bureau{display:flex;align-items:center;gap:12px;margin:16px 0 4px;font:400 11px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
.cote-bureau::before,.cote-bureau::after{content:'';flex:1;height:1px;background:var(--filet-fort,#A8863F)}
.cote-bureau::before{flex:0 0 24px}
.autres-retour{margin-top:28px}
.autres-retour a{display:inline-flex;align-items:center;min-height:44px;font:400 12px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--encre);text-underline-offset:5px}

/* ─── Pied de page commun : toujours sur coton, encre bleu-noir, quel que soit l'univers ─── */
.pied-page{--focus:#1B2338;background:#F6F2EA;color:#1B2338;border-top:1px solid #D9D5CC;padding:48px 16px 32px;font-family:'IBM Plex Mono',ui-monospace,monospace;color-scheme:light}
.pied-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px;max-width:1200px;margin:0 auto}
.pied-logo{grid-column:1 / -1;justify-self:start}
.pied-logo img{display:block;width:160px;height:auto}
.pied-page nav{display:flex;flex-direction:column}
.pied-titre{margin:0 0 4px;font-size:11px;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;color:#5E6272}
.pied-page nav a{display:flex;align-items:center;min-height:44px;font-size:12px;line-height:1.35;letter-spacing:.06em;color:#1B2338;text-decoration:none}
.pied-page nav a:hover{color:#7A1F2B;text-decoration:underline;text-underline-offset:4px}
.pied-page :focus-visible{outline:2px solid #1B2338;outline-offset:2px}
.pied-legende{max-width:1200px;margin:32px auto 0;font-size:12px;line-height:1.5;letter-spacing:.06em;color:#5E6272}

/* ─── Barre collante (téléphone) ─── */
.barre-collante{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--filet);transform:translateY(110%);transition:transform .3s var(--courbe);visibility:hidden}
.barre-collante.visible{transform:none;visibility:visible}
.barre-collante[hidden]{display:none}
.barre-collante-texte{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.barre-collante-nom{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* Nom de l'occasion (deux lignes au plus, équilibrées) puis « · Coup de cœur », masqué sous 420 px */
.barre-collante-libelle{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font:400 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;text-wrap:balance;color:var(--accent-texte)}
.barre-collante-cdc[hidden]{display:none}
.barre-collante-nom{font-family:var(--display);font-style:var(--display-style);font-weight:var(--display-poids);font-size:18px;line-height:1.2;color:var(--encre)}
.barre-collante-lien{flex:none;min-height:44px;padding:0 16px;font-size:12px}

/* ─── Téléphone ─── */
/* Logo de 56 px : « Mes invitations » laisse la place (il reste dans le pied de page, colonne « Créer ») */
@media (max-width:480px){
  .bandeau-lien{display:none}
}
@media (max-width:419px){
  .barre-collante-cdc{display:none}
}
/* La barre collante ne cache jamais l'élément qui reçoit le focus : le défilement s'arrête au-dessus d'elle (WCAG 2.4.11).
   Sur un écran très bas (paysage, fort zoom), elle s'efface : les puces et le bouton de chaque rubrique suffisent. */
@media (max-width:759px) and (min-height:481px){
  html:has(> body.page-univers){scroll-padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}
@media (max-height:480px){
  .barre-collante{display:none}
}
@media (max-width:639px){
  /* Boutons pleine largeur : marge réduite pour que les libellés de 30 signes tiennent sur une ligne dès 360 px */
  .couverture-actions .bouton,.rubrique-action .bouton{padding-inline:14px}
  /* Passerelle : le nom de l'univers passe sous la phrase au lieu de l'étrangler */
  .passerelle{flex-wrap:wrap;row-gap:6px}
  .passerelle-texte{flex:1 1 calc(100% - 22px)}
  .passerelle-vers{margin-left:22px}
}
/* ─── Tablette ─── */
@media (min-width:481px){
  .logo-h{height:64px}
  .bandeau-lien{padding:0 10px}
  .bandeau-creer{padding:0 16px;letter-spacing:.14em}
}
@media (min-width:640px){
  .galerie{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 20px}
  .couverture-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 24px}
  .couverture-actions .lien-fleche{align-self:center}
  .rubrique-action .bouton{width:auto}
  .idees-cartons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invites-liste{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px}
  .etapes-liste{grid-template-columns:repeat(3,minmax(0,1fr))}
  .contient ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
  .pied-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:760px){
  .bandeau-ligne,.reglette ul,.ariane{padding-left:32px;padding-right:32px}
  .bandeau-univers{display:inline-flex}
  .bandeau-actions{gap:12px}
  .reglette ul{justify-content:flex-start;gap:28px}
  .couverture{padding:12px 32px 64px}
  .scene{margin:0 -32px}
  .puces ul{padding:8px 32px}
  .rubrique,.invites,.etapes,.questions,.autres{padding:80px max(32px,calc((100% - 1120px) / 2)) 64px}
  .barre-collante{display:none}
}
/* ─── Ordinateur ─── */
@media (min-width:1024px){
  .bandeau-ligne{min-height:84px;padding:0 48px;gap:24px}
  .bandeau{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:24px}
  .bandeau-ligne{display:contents}
  .bandeau-marque{grid-column:1;padding:8px 0 8px 48px}
  .bandeau-actions{grid-column:3;padding-right:48px}
  .reglette{grid-column:2;grid-row:1;border-top:0;min-height:84px;display:flex;align-items:center;justify-content:center}
  .reglette ul{padding:0}
  .ariane{padding:8px 48px 0}
  .couverture{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-areas:"formule scene" "texte scene";column-gap:72px;align-items:center;max-width:1280px;margin:0 auto;padding:24px 48px 88px}
  .formule{grid-area:formule;align-self:end;margin:0 0 20px;text-align:left;font-size:22px}
  .scene{grid-area:scene;justify-self:end;width:100%;margin:0;height:auto;aspect-ratio:4/5;max-height:min(720px,calc(100svh - 190px));border-radius:var(--rayon-image,4px)}
  .couverture-texte{grid-area:texte;align-self:start;margin-top:0}
  .puces{display:flex;align-items:center;gap:8px;padding-left:max(48px,calc((100% - 1120px) / 2))}
  .puces-titre{display:block;flex:none;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
  .puces ul{flex:1;padding:10px 16px 10px 8px}
  .galerie{grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 24px}
  .invites-liste{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pied-page{padding:56px 48px 40px}
  .pied-cols{grid-template-columns:180px repeat(5,minmax(0,1fr));gap:32px}
  .pied-logo{grid-column:auto}
  .pied-logo img{margin-top:-20px}
  .pied-page nav a{min-height:32px}
  .autres-cartes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:16px}
  .autres-cartes .cote-bureau,.autres-cartes .intercalaire[data-u="pro"]{grid-column:1 / -1}
  .autres-cartes .intercalaire[data-u="pro"]{max-width:calc(50% - 8px)}
}

@media (min-width:1024px) and (max-width:1279px){
  /* La réglette souligne déjà l'univers courant : le nom après le logo attend 1280 px pour ne rien serrer */
  .bandeau-univers{display:none}
}
@media (min-width:1101px){
  .logo-h{height:88px}
}

/* ─── Transition de vue depuis l'accueil : la vignette de la carte d'univers grandit jusqu'à la scène de couverture ─── */
@media (prefers-reduced-motion:no-preference){
  [data-univers="elegance"] .couverture .scene{view-transition-name:scene-elegance}
  [data-univers="famille"] .couverture .scene{view-transition-name:scene-famille}
  [data-univers="fetes"] .couverture .scene{view-transition-name:scene-fetes}
  [data-univers="pro"] .couverture .scene{view-transition-name:scene-pro}
}

/* ─── Mouvement réduit : l'état final, tout de suite ─── */
@media (prefers-reduced-motion:reduce){
  .page-univers *,.page-univers *::before,.page-univers *::after{animation-duration:1ms !important;animation-delay:0s !important;animation-iteration-count:1 !important;transition-duration:0s !important;transition-delay:0s !important}
  .intercalaire{transition:none}
}
