/* My Love Coach — système d'écrans MLC-01 (direction 1 « La conversación », registre magazine).
   Jetons = design/theme.json. Mobile d'abord (390 px), lisible de 30 à 65 ans : corps 18 px. */
:root{
  --bg:#FBF6F2;--text:#1E3B3A;--accent:#0F5F5C;--kicker:#A93E2B;--soft:#F9DCD2;--border:#E9DCD3;--muted:#4F6563;--focus:#0F5F5C;
  --surface:#FFFFFF;--accent-deep:#0A4745;--desk:#EFE4DC;
  --font-head:"Newsreader",Georgia,serif;--font-body:"Figtree",Arial,sans-serif;
  --shadow:0 1px 2px rgba(30,59,58,.06),0 12px 32px -12px rgba(30,59,58,.22);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--desk);color:var(--text);font-family:var(--font-body);font-size:18px;line-height:1.55}
/* Papier : lumière douce du haut à gauche + grain SVG très léger, à la place d'un aplat. */
.screen{position:relative;max-width:430px;margin:0 auto;min-height:100vh;overflow:hidden;
  background:
    radial-gradient(120% 60% at 15% 0%,#FFFFFF 0%,rgba(255,255,255,0) 60%),
    radial-gradient(90% 50% at 100% 25%,#F9E4DA 0%,rgba(249,228,218,0) 70%),
    var(--bg)}
.screen::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .4 0 0 0 .06 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>")}
.screen>*{position:relative;z-index:1}
@media (min-width:600px){.screen{margin:32px auto;border-radius:30px;box-shadow:0 30px 80px -30px rgba(30,59,58,.35)}}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
p{margin:0}
h1,h2,h3{font-family:var(--font-head);font-weight:500;margin:0;letter-spacing:-.015em;font-variation-settings:"opsz" 72}
/* Les signes ¿ ? d'un titre : corail profond, légèrement plus grands. */
.q{color:var(--kicker);font-weight:400}
.top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 10px}
.top img{height:30px;display:block}
.top a{font-size:16px;color:var(--text);text-decoration:none;padding:8px 0}
.wrap{padding:0 22px}
/* Chapeau de magazine : italique serif, petit, au-dessus du titre, uniquement quand il apporte un sens. */
.deck{font-family:var(--font-head);font-style:italic;font-size:20px;color:var(--muted);margin-bottom:8px}
h1{font-size:40px;line-height:1.06;margin-bottom:14px}
h2{font-size:30px;line-height:1.12;margin-bottom:14px}
h3{font-size:23px;line-height:1.2}
.lead{font-size:19px;color:var(--muted);margin-bottom:22px;max-width:34ch}
.rule{border:0;border-top:1px solid var(--border);margin:0}
section{padding:34px 22px 0}
.cta{display:block;width:100%;text-align:center;text-decoration:none;color:#fff;font-weight:600;font-size:18px;padding:17px 20px;border-radius:999px;
  background:linear-gradient(180deg,#167572 0%,var(--accent) 55%,var(--accent-deep) 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 10px 24px -10px rgba(15,95,92,.55)}
.cta:active{transform:translateY(1px)}
.cta-note{font-size:15px;color:var(--muted);text-align:center;margin-top:10px}
.cta-line{text-decoration:underline;text-underline-offset:3px}
/* Carte de conversation : halo corail derrière, surface blanche en léger relief. */
.chat-wrap{position:relative;margin:4px 0 24px}
.chat-wrap::before{content:"";position:absolute;inset:18px -8px -14px -8px;border-radius:32px;
  background:radial-gradient(60% 70% at 50% 60%,rgba(249,220,210,.9),rgba(249,220,210,0));filter:blur(8px)}
.chat{position:relative;background:linear-gradient(180deg,#FFFFFF,#FFFCFA);border:1px solid var(--border);border-radius:26px;padding:16px 16px 14px;box-shadow:var(--shadow)}
.who{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:14px}
.avatar{width:46px;height:46px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;text-align:center;font-size:0;color:var(--text);
  background:radial-gradient(circle at 35% 30%,#FDEBE4,#EFC9BC);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--border)}
.who b{display:block;font-size:16px}
.who small{font-size:14px;color:var(--muted)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#2E8B57;margin-right:6px;vertical-align:1px;box-shadow:0 0 0 0 rgba(46,139,87,.5);animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(46,139,87,.45)}70%{box-shadow:0 0 0 8px rgba(46,139,87,0)}100%{box-shadow:0 0 0 0 rgba(46,139,87,0)}}
.bubble{font-family:var(--font-head);font-size:23px;line-height:1.25;padding:12px 16px;margin:0 0 10px;max-width:88%;
  background:linear-gradient(135deg,#FCE6DD,var(--soft));border-radius:20px 20px 20px 6px;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 4px 12px -8px rgba(169,62,43,.35);
  opacity:0;transform:translateY(8px);animation:in .55s cubic-bezier(.2,.7,.2,1) forwards}
.bubble:nth-of-type(2){animation-delay:1s}.bubble:nth-of-type(3){animation-delay:2s}
.typing{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--muted);margin-top:4px;opacity:0;animation:in .4s ease 3s forwards}
.typing i{display:inline-flex;gap:3px}
.typing i::before,.typing i::after,.typing i span{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted);display:block;animation:blink 1.2s infinite}
.typing i span{animation-delay:.2s}.typing i::after{animation-delay:.4s}
@keyframes in{to{opacity:1;transform:none}}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.you{display:flex;justify-content:flex-end;margin-top:10px}
.you span{font-size:16px;color:var(--text);background:var(--surface);border:1px dashed var(--border);border-radius:20px 20px 6px 20px;padding:10px 14px;max-width:85%}
/* Sujets : deux cartes, lumière latérale. */
.topics{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.topic{display:block;text-decoration:none;color:var(--text);padding:18px 16px;border:1px solid var(--border);border-radius:18px;
  background:linear-gradient(160deg,#FFFFFF,#FBF3EE);box-shadow:var(--shadow)}
.topic strong{display:block;font-family:var(--font-head);font-size:24px;font-weight:500;margin-bottom:4px}
.topic span{font-size:15px;color:var(--muted);line-height:1.4;display:block}
/* Étapes : vraie séquence, numéros en serif corail. */
.steps{list-style:none;padding:0;margin:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--border)}
.steps li::before{content:counter(s);font-family:var(--font-head);font-size:30px;line-height:1;color:var(--kicker)}
.steps b{display:block;font-weight:600}
.steps span{color:var(--muted);font-size:16px}
/* Fiche coach : portrait réel en grand quand il existe (esprit direction 2) ; d'ici là, l'emplacement est signalé. */
.coach{border-radius:22px;overflow:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}
.coach .portrait{position:relative;height:300px;display:flex;align-items:flex-end;padding:16px;color:#fff;
  background:linear-gradient(to top,rgba(30,59,58,.88) 0%,rgba(30,59,58,.35) 45%,rgba(30,59,58,0) 70%),radial-gradient(circle at 50% 35%,#F6D9CC,#D9A890 70%,#B9836B)}
.coach .portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.coach .portrait .pending{position:absolute;top:14px;left:14px;right:14px;font-size:15px;line-height:1.3;color:var(--text);background:rgba(255,255,255,.9);border-radius:8px;padding:6px 10px}
.coach .portrait h3{color:#fff;font-size:28px}
.coach .portrait p{font-size:15px;opacity:.95}
.coach .body{padding:16px 18px 20px}
.coach .body p{color:var(--muted);font-size:16px;margin-bottom:10px}
.coach .body ul{margin:0 0 14px;padding-left:20px;font-size:16px}
.badge{display:inline-block;font-size:14px;color:var(--accent);background:#E8F1F0;border-radius:999px;padding:4px 10px;margin:0 6px 6px 0}
/* Prix */
.zone{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:3px;background:var(--surface);margin-bottom:18px}
.zone a{text-decoration:none;color:var(--muted);font-size:15px;padding:7px 14px;border-radius:999px}
.zone a[aria-current]{background:var(--accent);color:#fff}
.price{background:linear-gradient(160deg,#FFFFFF,#FBF3EE);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:12px;box-shadow:var(--shadow)}
.price .amount{font-family:var(--font-head);font-size:36px;line-height:1;margin:6px 0 4px}
.price .amount small{font-size:17px;font-family:var(--font-body);color:var(--muted)}
.price h3{font-size:21px}
.price p{font-size:16px;color:var(--muted)}
.price.hi{border-color:var(--accent);background:linear-gradient(160deg,#FFFFFF,#EAF3F2)}
/* Quiz */
.result{background:linear-gradient(160deg,#FFFFFF,#FBF3EE);border:1px solid var(--border);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.foot{padding:30px 22px 44px;font-size:16px;color:var(--muted);border-top:1px solid var(--border);margin-top:40px;line-height:1.5}
.demo{font-size:16px;color:var(--muted);margin-top:8px}
@media (prefers-reduced-motion:reduce){.bubble,.typing{opacity:1;transform:none;animation:none}.dot,.typing i::before,.typing i::after,.typing i span{animation:none}}
/* Couverture avec silhouette détourée (retour de Pierre, 2026-10-23) : la personne est posée sur le papier,
   le titre à gauche et la carte de conversation la chevauchent, comme une ouverture de magazine. */
.cover{position:relative;padding:6px 22px 0}
.cover .figure{position:absolute;right:-64px;top:14px;width:344px;height:470px;pointer-events:none;z-index:0}
.cover .figure img{width:100%;height:100%;object-fit:contain;object-position:top right;display:block;
  filter:drop-shadow(0 24px 30px rgba(30,59,58,.22))}
.cover .figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;
  background:linear-gradient(to top,var(--bg) 0%,rgba(251,246,242,0) 100%)}
.cover .deck,.cover h1,.cover .lead{position:relative;z-index:1}
.cover h1{font-size:38px;max-width:56%;text-wrap:balance}
.cover .lead{max-width:47%;font-size:17px;margin-bottom:0}
.cover .chat-wrap{position:relative;z-index:2;margin-top:34px}
.cover .credit{font-size:13px;color:var(--muted);text-align:right;margin:-14px 0 14px;position:relative;z-index:2}
/* Photos de la série (validée par Pierre le 2026-10-24). Deux registres, jamais le même partout :
   1) héros pleine page en décor réel, qui fond dans le papier ; une bulle de la coach posée dessus ;
   2) silhouette détourée posée sur le papier, chevauchée par le titre, une carte ou le texte. */
.hero{position:relative;margin:0;z-index:0}
.hero img{display:block;width:100%;height:min(64vh,560px);object-fit:cover;object-position:50% 22%}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:54%;
  background:linear-gradient(to top,var(--bg) 0%,var(--bg) 30%,rgba(251,246,242,.85) 52%,rgba(251,246,242,0) 100%)}
.hero .bubble{position:absolute;left:22px;top:24px;z-index:1;max-width:70%;animation-delay:.7s;box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 14px 30px -12px rgba(30,59,58,.45)}
.hero-text{position:relative;z-index:1;padding:0 22px;margin-top:-84px}
.credit{font-size:13px;color:var(--muted);text-align:right;margin:0 0 10px;position:relative;z-index:2}
.hero+.credit{margin:-26px 22px 8px 0}
/* Carte photo : image de décor dans une section, coins ronds, lumière par le haut. */
.photo-card{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);margin:0 0 8px;background:var(--surface)}
.photo-card img{display:block;width:100%;height:320px;object-fit:cover;object-position:50% 18%}
.photo-card .bubble{position:absolute;left:16px;bottom:16px;max-width:76%;animation-delay:.7s}
/* Silhouette détourée : variantes de .cover. .overlap = l'élément (carte, liste) qui la chevauche. */
.cover .overlap{position:relative;z-index:2;margin-top:34px}
.cover.compact .figure{width:290px;height:400px;right:-58px;top:0}
.cover.compact h1,.cover.compact h2{max-width:58%}
.cover.compact .lead{max-width:50%}
.cover.compact .overlap{margin-top:26px}
.cover .zone{position:relative;z-index:1}
/* Figure dans le texte (magazine) : le texte épouse la silhouette grâce à shape-outside. */
.wrapfig{float:right;width:228px;height:330px;margin:-8px -44px 4px 8px;shape-margin:16px;shape-image-threshold:.3}
.wrapfig img{width:100%;height:100%;object-fit:contain;object-position:top right;display:block;filter:drop-shadow(0 18px 24px rgba(30,59,58,.2))}
.clear{clear:both}
/* Crédit IA posé sur la photo (héros et cartes photo) : pastille papier en haut à droite, AA sur fond opaque. */
.hero .credit,.photo-card .credit{position:absolute;right:12px;top:12px;margin:0;z-index:2;background:rgba(251,246,242,.9);padding:3px 9px;border-radius:999px}
.hero .bubble{max-width:62%}
.cover .overlap+.credit{margin-top:8px}
/* Figure dans le texte : plus étroite, pour laisser 190 px au texte des étapes. */
.wrapfig{width:176px;height:256px;margin:-30px -40px 0 6px;shape-margin:12px}
/* Relecture : le chapeau ne doit pas passer sous la silhouette. */
.cover .lead{max-width:43%}
/* Réponse 1 de Pierre (2026-10-24) : la bulle posée sur une photo porte l'étiquette « Tu Love Coach », comme la carte de chat. */
.hero .say,.photo-card .say{position:absolute;left:22px;top:20px;z-index:1;max-width:64%}
.photo-card .say{left:16px;top:auto;bottom:16px;max-width:78%}
.say .tag{display:inline-block;font-size:13px;font-weight:600;color:var(--text);background:rgba(251,246,242,.92);padding:2px 9px;border-radius:999px;margin:0 0 6px 4px}
.say .bubble{position:static;max-width:100%;margin:0}
